tekivex-ui 3.0.4 → 3.2.0

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.
@@ -0,0 +1 @@
1
+ require("./chunk-DmRB1Blb.js");const e=require("./chunk-BpuJ3-K8.js"),t=require("./chunk-D7-yknXg.js"),n=require("./i18n.cjs");let r=require("react"),o=require("react/jsx-runtime");var l=(0,r.createContext)(null),i={required:"This field is required",invalidFormat:"Invalid format",minLength:e=>`Must be at least ${e} characters`,maxLength:e=>`Must be no more than ${e} characters`,minValue:e=>`Must be at least ${e}`,maxValue:e=>`Must be no more than ${e}`};async function s(e,t,n=i){for(const r of t){if(r.required&&(null==e||""===e||Array.isArray(e)&&0===e.length))return r.message??n.required;if(null!=e&&""!==e){if(void 0!==r.min){if("string"==typeof e&&e.length<r.min)return r.message??n.minLength(r.min);if("number"==typeof e&&e<r.min)return r.message??n.minValue(r.min)}if(void 0!==r.max){if("string"==typeof e&&e.length>r.max)return r.message??n.maxLength(r.max);if("number"==typeof e&&e>r.max)return r.message??n.maxValue(r.max)}if(r.pattern&&"string"==typeof e&&!r.pattern.test(e))return r.message??n.invalidFormat;if(r.validator){const t=await r.validator(e);if(t)return t}}}return null}function u(){const e=(0,r.useContext)(l),t=(0,r.useRef)({}),n=(0,r.useRef)({}),o=(0,r.useRef)({}),i=(0,r.useMemo)(()=>({getFieldValue:e=>t.current[e],setFieldValue:(e,n)=>{t.current[e]=n},getFieldsValue:()=>({...t.current}),setFieldsValue:e=>{Object.assign(t.current,e)},validateFields:()=>Promise.resolve({...t.current}),validateField:e=>Promise.resolve(!0),resetFields:()=>{t.current={},n.current={},o.current={}},getFieldError:e=>n.current[e]??null,isFieldTouched:e=>o.current[e]??!1}),[]);return e?e.instance:i}function c({onSubmit:u,onValuesChange:c,initialValues:a={},layout:d="vertical",disabled:f=!1,children:m,className:h,style:g,form:b}){const p=e.useTheme(),y=n.useLocale(),v=(0,r.useMemo)(()=>({required:y.fieldRequired??i.required,invalidFormat:y.invalidFormat??i.invalidFormat,minLength:y.minLength??i.minLength,maxLength:y.maxLength??i.maxLength,minValue:y.minValue??i.minValue,maxValue:y.maxValue??i.maxValue}),[y]),[x,w]=(0,r.useState)({values:{...a},errors:{},touched:{}}),F=(0,r.useRef)(a),O=(0,r.useRef)({}),S=(0,r.useRef)(x);S.current=x;const j=(0,r.useCallback)((e,t)=>{O.current[e]=t},[]),V=(0,r.useCallback)(e=>{delete O.current[e]},[]),T=(0,r.useCallback)((e,t)=>{w(n=>{const r={...n,values:{...n.values,[e]:t}};return c?.({[e]:t},r.values),r})},[c]),k=(0,r.useCallback)((e,t)=>{w(n=>({...n,errors:{...n.errors,[e]:t}}))},[]),M=(0,r.useCallback)(e=>{w(t=>({...t,touched:{...t.touched,[e]:!0}}))},[]),N=(0,r.useCallback)(async e=>{const t=O.current[e];if(!t)return!0;const n=S.current.values[e],r=await s(n,t.rules,v);return w(t=>({...t,errors:{...t.errors,[e]:r},touched:{...t.touched,[e]:!0}})),null===r},[v]),I=(0,r.useCallback)(async()=>{const e=Object.keys(O.current),t=await Promise.all(e.map(async e=>{const t=O.current[e],n=S.current.values[e];return{name:e,error:await s(n,t.rules,v)}})),n={},r={};let o=!1;for(const{name:l,error:i}of t)n[l]=i,r[l]=!0,i&&(o=!0);if(w(e=>({...e,errors:{...e.errors,...n},touched:{...e.touched,...r}})),o){const e=Object.fromEntries(t.filter(e=>e.error).map(e=>[e.name,e.error]));return Promise.reject(e)}return{...S.current.values}},[]),q=(0,r.useCallback)(()=>{w({values:{...F.current},errors:{},touched:{}})},[]),E=(0,r.useMemo)(()=>({getFieldValue:e=>S.current.values[e],setFieldValue:T,getFieldsValue:()=>({...S.current.values}),setFieldsValue:e=>{w(t=>{const n={...t.values,...e};return c?.(e,n),{...t,values:n}})},validateFields:I,validateField:N,resetFields:q,getFieldError:e=>S.current.errors[e]??null,isFieldTouched:e=>!!S.current.touched[e]}),[T,I,N,q,c]),A=(0,r.useCallback)(async e=>{e.preventDefault();try{const e=await I();await(u?.(e))}catch{}},[I,u]),C="inline"===d?t.tkx("flex flex-row flex-wrap items-end gap-4"):t.tkx("flex flex-col gap-5");(0,r.useEffect)(()=>{if(!b)return;const e=b;e.getFieldValue=E.getFieldValue,e.setFieldValue=E.setFieldValue,e.getFieldsValue=E.getFieldsValue,e.setFieldsValue=E.setFieldsValue,e.validateFields=E.validateFields,e.validateField=E.validateField,e.resetFields=E.resetFields,e.getFieldError=E.getFieldError,e.isFieldTouched=E.isFieldTouched},[b,E]);const D=b??E,L=(0,r.useMemo)(()=>({state:x,initialValues:F.current,layout:d,disabled:f,fieldMeta:O,setFieldValue:T,setFieldError:k,setFieldTouched:M,registerField:j,unregisterField:V,validateField:N,instance:D}),[x,d,f,T,k,M,j,V,N,D]);return(0,o.jsx)(l.Provider,{value:L,children:(0,o.jsx)("form",{noValidate:!0,role:"form","aria-label":"Form",onSubmit:A,className:t.cx(C,h),style:{color:p.text,...g},children:m})})}function a({name:n,label:s,rules:u,help:c,required:a,children:d,className:f,style:m}){const h=e.useTheme(),g=function(){const e=(0,r.useContext)(l);if(!e)throw new Error("TkxFormField must be used inside a <TkxForm>. Wrap your fields in a TkxForm component.");return e}(),{state:b,layout:p,disabled:y}=g,v=(0,r.useMemo)(()=>function(e,t,n=i.required){const r=e?[...e]:[];return t&&!r.some(e=>e.required)&&r.unshift({required:!0,message:n}),r}(u,a),[u,a]),x=function(e){return e.some(e=>e.required)}(v),w=(0,r.useRef)({rules:v});w.current.rules=v;const F=(0,r.useRef)(!1);F.current||(g.registerField(n,w.current),F.current=!0),(0,r.useMemo)(()=>{g.registerField(n,w.current)},[v,n,g]);const O=b.values[n],S=b.touched[n]?b.errors[n]??null:null,j=S?t.sanitizeString(S):null,V=s?t.sanitizeString(s):void 0,T=c?t.sanitizeString(c):void 0,k=(0,r.useCallback)(e=>{let t;if(null!==e&&"object"==typeof e&&"target"in e){const n=e.target;t="checkbox"===n.type?n.checked:n.value}else t=e;g.setFieldValue(n,t)},[g,n]),M=(0,r.useCallback)(()=>{g.setFieldTouched(n),g.validateField(n)},[g,n]),N=d,I=(0,r.cloneElement)(N,{value:O??"",onChange:k,onBlur:M,error:j??void 0,isInvalid:!!j,isRequired:x,disabled:y||N.props.disabled,name:n}),q="horizontal"===p,E="inline"===p,A=(0,o.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true",children:(0,o.jsx)("path",{d:"M12 2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z"})}),C=V?(0,o.jsxs)("label",{className:t.tkx("text-sm font-medium font-sans",q?"min-w-[140px] pt-2.5":""),style:{color:h.text},children:[V,x&&(0,o.jsx)("span",{"aria-hidden":"true",className:t.tkx("ml-1"),style:{color:h.danger},children:"*"})]}):null,D=(0,o.jsxs)(o.Fragment,{children:[T&&!j&&(0,o.jsx)("span",{className:t.tkx("text-xs mt-0.5"),style:{color:h.textMuted},children:T}),j&&(0,o.jsxs)("span",{role:"alert",className:t.tkx("text-xs flex items-center gap-1 mt-0.5"),style:{color:h.danger,animation:"tkxFormErrorReveal 200ms ease-out"},children:[A,j]})]});return E?(0,o.jsxs)("div",{className:t.cx(t.tkx("flex flex-col gap-1"),f),style:m,children:[C,I,D]}):q?(0,o.jsxs)("div",{className:t.cx(t.tkx("flex flex-row gap-4 items-start"),f),style:m,children:[C,(0,o.jsxs)("div",{className:t.tkx("flex flex-col gap-1 flex-1 min-w-0"),children:[I,D]})]}):(0,o.jsxs)("div",{className:t.cx(t.tkx("flex flex-col gap-1"),f),style:m,children:[C,I,D]})}c.displayName="TkxForm",a.displayName="TkxFormField";var d=!1;function f(e=!1){const[t,n]=(0,r.useState)(e);return{isOpen:t,open:(0,r.useCallback)(()=>n(!0),[]),close:(0,r.useCallback)(()=>n(!1),[]),toggle:(0,r.useCallback)(()=>n(e=>!e),[])}}function m({count:e,initialIndex:t=0,orientation:n="horizontal",loop:o=!0}){const[l,i]=(0,r.useState)(t),s=(0,r.useRef)([]),u=(0,r.useCallback)(t=>{i(n=>{let r=n+t;return r=o?(r%e+e)%e:Math.max(0,Math.min(e-1,r)),requestAnimationFrame(()=>{s.current[r]?.focus()}),r})},[e,o]);return{focusedIndex:l,setFocusedIndex:i,getItemProps:(0,r.useCallback)(t=>({tabIndex:t===l?0:-1,"data-focused":t===l,onFocus:()=>i(t),onKeyDown:t=>{const r="horizontal"===n||"both"===n,o="vertical"===n||"both"===n;r&&"ArrowRight"===t.key&&(t.preventDefault(),u(1)),r&&"ArrowLeft"===t.key&&(t.preventDefault(),u(-1)),o&&"ArrowDown"===t.key&&(t.preventDefault(),u(1)),o&&"ArrowUp"===t.key&&(t.preventDefault(),u(-1)),"Home"===t.key&&(t.preventDefault(),i(0),requestAnimationFrame(()=>s.current[0]?.focus())),"End"===t.key&&(t.preventDefault(),i(e-1),requestAnimationFrame(()=>s.current[e-1]?.focus()))}}),[l,u,n,e])}}function h({initialValues:e,validate:t}){const[n,o]=(0,r.useState)({...e}),[l,i]=(0,r.useState)({}),[s,u]=(0,r.useState)({}),c=(0,r.useRef)(e),a=(0,r.useCallback)((e,t)=>{o(n=>({...n,[e]:t}))},[]),d=(0,r.useCallback)(e=>{o(t=>({...t,...e}))},[]),f=(0,r.useCallback)(e=>{u(t=>({...t,[e]:!0}))},[]),m=(0,r.useCallback)(()=>{if(!t)return!0;const e=t(n),r=Object.fromEntries(Object.entries(e).filter(([,e])=>null!=e));return i(r),u(Object.fromEntries(Object.keys(n).map(e=>[e,!0]))),0===Object.keys(r).length},[n,t]),h=(0,r.useCallback)(()=>{o({...c.current}),i({}),u({})},[]);return{values:n,errors:l,touched:s,dirty:Object.keys(n).some(e=>n[e]!==c.current[e]),isValid:0===Object.keys(l).length,setValue:a,setValues:d,touchField:f,validate:m,reset:h,getFieldProps:(0,r.useCallback)(e=>({value:n[e],onChange:t=>{a(e,t.target.value)},onBlur:()=>f(e),"aria-invalid":!(!s[e]||!l[e])||void 0,"aria-describedby":l[e]?`${String(e)}-error`:void 0}),[n,l,s,a,f])}}function g({items:e,initialSelected:t=[],multiple:n=!0}){const[o,l]=(0,r.useState)(()=>new Set(t)),i=(0,r.useCallback)(e=>{l(t=>{const r=new Set(t);return r.has(e)?r.delete(e):(n||r.clear(),r.add(e)),r})},[n]),s=(0,r.useCallback)(e=>{l(t=>{if(t.has(e))return t;const r=n?new Set(t):new Set;return r.add(e),r})},[n]),u=(0,r.useCallback)(e=>{l(t=>{if(!t.has(e))return t;const n=new Set(t);return n.delete(e),n})},[]),c=(0,r.useCallback)(()=>{n&&l(new Set(e))},[e,n]),a=(0,r.useCallback)(()=>l(new Set),[]),d=(0,r.useCallback)(()=>{l(t=>e.every(e=>t.has(e))?new Set:new Set(e))},[e]),f=e.length>0&&e.every(e=>o.has(e)),m=e.some(e=>o.has(e)),h=(0,r.useMemo)(()=>Array.from(o),[o]);return{selected:o,isSelected:(0,r.useCallback)(e=>o.has(e),[o]),toggle:i,select:s,deselect:u,selectAll:c,deselectAll:a,toggleAll:d,allSelected:f,someSelected:m,selectedCount:o.size,selectedArray:h}}function b(e,t){const[n,o]=(0,r.useState)(e);return(0,r.useEffect)(()=>{const n=setTimeout(()=>o(e),t);return()=>clearTimeout(n)},[e,t]),n}function p(e,t){const[n,o]=(0,r.useState)(e),l=(0,r.useRef)(Date.now());return(0,r.useEffect)(()=>{const n=Date.now(),r=t-(n-l.current);if(!(r<=0)){const t=setTimeout(()=>{l.current=Date.now(),o(e)},r);return()=>clearTimeout(t)}l.current=n,o(e)},[e,t]),n}function y({value:e,onChange:t,defaultValue:n}){const o=void 0!==e,[l,i]=(0,r.useState)(n),s=(0,r.useRef)(t);s.current=t;const u=(0,r.useCallback)(e=>{o||i(e),s.current?.(e)},[o]);return[o?e:l,u]}function v(e){const[t,n]=(0,r.useState)(()=>"undefined"!=typeof window&&window.matchMedia(e).matches);return(0,r.useEffect)(()=>{if("undefined"==typeof window)return;const t=window.matchMedia(e);n(t.matches);const r=e=>n(e.matches);return t.addEventListener("change",r),()=>t.removeEventListener("change",r)},[e]),t}function x(e,t){const[n,o]=(0,r.useState)(()=>{if("undefined"==typeof window)return t;try{const n=window.localStorage.getItem(e);return null!==n?JSON.parse(n):t}catch{return t}});return[n,(0,r.useCallback)(t=>{o(n=>{const r="function"==typeof t?t(n):t;if("undefined"!=typeof window)try{window.localStorage.setItem(e,JSON.stringify(r))}catch{}return r})},[e]),(0,r.useCallback)(()=>{if(o(t),"undefined"!=typeof window)try{window.localStorage.removeItem(e)}catch{}},[e,t])]}function w({threshold:e=0,rootMargin:t="0px",root:n=null,once:o=!1}={}){const l=(0,r.useRef)(null),[i,s]=(0,r.useState)(null),u=(0,r.useRef)(null);return(0,r.useEffect)(()=>{const r=l.current;if(r&&"undefined"!=typeof IntersectionObserver)return u.current=new IntersectionObserver(([e])=>{s(e),o&&e.isIntersecting&&u.current?.unobserve(r)},{threshold:e,rootMargin:t,root:n}),u.current.observe(r),()=>u.current?.disconnect()},[e,t,n,o]),{ref:l,isIntersecting:i?.isIntersecting??!1,entry:i}}function F(e){const{url:t,protocols:n,reconnect:o=!0,reconnectDelay:l=1e3,reconnectAttempts:i=10,heartbeatInterval:s=3e4,heartbeatMessage:u="ping",onOpen:c,onClose:a,onError:d,onMessage:f}=e,[m,h]=(0,r.useState)("disconnected"),[g,b]=(0,r.useState)(null),[p,y]=(0,r.useState)([]),[v,x]=(0,r.useState)(0),[w,F]=(0,r.useState)(null),O=(0,r.useRef)(null),S=(0,r.useRef)(0),j=(0,r.useRef)(null),V=(0,r.useRef)(null),T=(0,r.useRef)(null),k=(0,r.useRef)([]),M=(0,r.useRef)(!0),N=(0,r.useRef)(!1),I=(0,r.useRef)(c),q=(0,r.useRef)(a),E=(0,r.useRef)(d),A=(0,r.useRef)(f);I.current=c,q.current=a,E.current=d,A.current=f;const C=(0,r.useCallback)(()=>{j.current&&(clearTimeout(j.current),j.current=null),V.current&&(clearInterval(V.current),V.current=null)},[]),D=(0,r.useCallback)(e=>{for(;k.current.length>0;){const t=k.current.shift();void 0!==t&&e.send("string"==typeof t?t:JSON.stringify(t))}},[]),L=(0,r.useCallback)(()=>{if(O.current&&O.current.readyState===WebSocket.OPEN)return;N.current=!1,C(),M.current&&h("connecting");const e=new WebSocket(t,n);O.current=e,e.onopen=t=>{M.current&&(h("connected"),S.current=0,x(0),I.current?.(t),D(e),V.current=setInterval(()=>{if(e.readyState===WebSocket.OPEN){T.current=Date.now();try{e.send(JSON.stringify({type:"ping",t:T.current}))}catch{}}},s))},e.onmessage=e=>{if(!M.current)return;let t;try{t=JSON.parse(e.data)}catch{t=e.data}const n=t;if(n&&"object"==typeof n&&"pong"===n.type&&"number"==typeof n.t)F(Date.now()-n.t);else{if(t===u&&null!==T.current)return F(Date.now()-T.current),void(T.current=null);b(t),y(e=>{const n=[...e,t];return n.length>100?n.slice(n.length-100):n}),A.current?.(t)}},e.onerror=e=>{M.current&&(h("error"),E.current?.(e))},e.onclose=e=>{if(M.current&&(C(),h("disconnected"),q.current?.(e),!N.current&&o&&S.current<i)){const e=S.current,t=l*Math.pow(1.5,e);S.current+=1,x(S.current),j.current=setTimeout(()=>{M.current&&L()},t)}}},[t,n,o,l,i,s,u,C,D]),J=(0,r.useCallback)(()=>{N.current=!0,C(),O.current&&(O.current.close(),O.current=null),M.current&&h("disconnected")},[C]),z=(0,r.useCallback)(e=>{O.current&&O.current.readyState===WebSocket.OPEN?O.current.send("string"==typeof e?e:JSON.stringify(e)):k.current.push(e)},[]);return(0,r.useEffect)(()=>(M.current=!0,L(),()=>{M.current=!1,N.current=!0,C(),O.current&&(O.current.close(),O.current=null)}),[]),{status:m,lastMessage:g,messages:p,send:z,connect:L,disconnect:J,reconnectCount:v,latency:w}}function O(e){const{url:t,events:n=["message"],withCredentials:o=!1,reconnect:l=!0,reconnectDelay:i=3e3,onOpen:s,onError:u}=e,[c,a]=(0,r.useState)("connecting"),[d,f]=(0,r.useState)(null),[m,h]=(0,r.useState)([]),[g,b]=(0,r.useState)(0),p=(0,r.useRef)(null),y=(0,r.useRef)(null),v=(0,r.useRef)(!0),x=(0,r.useRef)(!1),w=(0,r.useRef)(s),F=(0,r.useRef)(u);w.current=s,F.current=u;const O=(0,r.useCallback)(()=>{y.current&&(clearTimeout(y.current),y.current=null)},[]),S=(0,r.useCallback)(()=>{if("undefined"==typeof EventSource)return void(v.current&&a("error"));x.current=!1,O(),p.current&&(p.current.close(),p.current=null),v.current&&a("connecting");const e=new EventSource(t,{withCredentials:o});p.current=e,e.onopen=()=>{v.current&&(a("connected"),w.current?.())},e.onerror=e=>{v.current&&(a("error"),F.current?.(e),!x.current&&l&&(O(),y.current=setTimeout(()=>{v.current&&S()},i)))};const r=e=>t=>{if(!v.current)return;let n;try{n=JSON.parse(t.data)}catch{n=t.data}const r={type:e,data:n,timestamp:Date.now(),...t.lastEventId?{id:t.lastEventId}:{}};f({type:r.type,data:r.data,id:r.id}),h(e=>{const t=[...e,r];return t.length>200?t.slice(t.length-200):t}),b(e=>e+1)};for(const t of n)e.addEventListener(t,r(t))},[t,o,l,i,O]),j=(0,r.useCallback)(()=>{x.current=!0,O(),p.current&&(p.current.close(),p.current=null),v.current&&a("closed")},[O]);return(0,r.useEffect)(()=>(v.current=!0,S(),()=>{v.current=!1,x.current=!0,O(),p.current&&(p.current.close(),p.current=null)}),[]),{status:c,lastEvent:d,events:m,connect:S,disconnect:j,eventCount:g}}function S(e){const{queryFn:t,initialCursor:n=null,enabled:o=!0,dedupKey:l}=e,[i,s]=(0,r.useState)([]),[u,c]=(0,r.useState)("idle"),[a,d]=(0,r.useState)(null),[f,m]=(0,r.useState)(!1),[h,g]=(0,r.useState)(0),b=(0,r.useRef)(n??null),p=(0,r.useRef)(!1),y=(0,r.useRef)(!0),v=(0,r.useRef)(void 0),x=(0,r.useRef)(t);x.current=t;const w=(0,r.useCallback)(async(e,t,n)=>{if(p.current)return;if(void 0!==l&&l===v.current)return;p.current=!0;let r=!1;y.current&&(c(n?"loading":"fetching-more"),d(null));try{const o=await x.current(e,t);if(r||!y.current)return;void 0!==l&&(v.current=l),b.current=o.nextCursor,s(e=>n?[o.data]:[...e,o.data]),m(o.hasMore),g(t),c("success")}catch(o){if(r||!y.current)return;d(o instanceof Error?o:new Error(String(o))),c("error")}finally{r||(p.current=!1)}return()=>{r=!0}},[l]),F=(0,r.useCallback)(()=>{f&&!p.current&&w(b.current,h+1,!1)},[f,h,w]),O=(0,r.useCallback)(()=>{p.current=!1,v.current=void 0,b.current=n??null,s([]),c("idle"),d(null),m(!1),g(0)},[n]);(0,r.useEffect)(()=>(y.current=!0,o&&w(n??null,0,!0),()=>{y.current=!1}),[o]);const S=i.flat();return{data:S,pages:i,status:u,error:a,hasMore:f,isFetchingMore:"fetching-more"===u,fetchMore:F,reset:O,pageIndex:h,totalLoaded:S.length}}!function(){if(d)return;if("undefined"==typeof document)return;d=!0;const e=document.createElement("style");e.setAttribute("data-tkx-form",""),e.textContent="\n @keyframes tkxFormErrorReveal {\n from {\n opacity: 0;\n transform: translateY(-4px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n }\n ",document.head.appendChild(e)}(),Object.defineProperty(exports,"TkxForm",{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,"TkxFormField",{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,"useControllable",{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,"useDebounce",{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,"useDisclosure",{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,"useFormState",{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,"useInfiniteQuery",{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,"useIntersectionObserver",{enumerable:!0,get:function(){return w}}),Object.defineProperty(exports,"useListSelection",{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,"useLocalStorage",{enumerable:!0,get:function(){return x}}),Object.defineProperty(exports,"useMediaQuery",{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,"useRovingTabIndex",{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,"useSSE",{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,"useThrottle",{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,"useTkxForm",{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,"useWebSocket",{enumerable:!0,get:function(){return F}});
@@ -0,0 +1,3 @@
1
+ import{p as e}from"./chunk-DdHSYetV.js";import{E as t,a as n,t as r}from"./chunk-DcVMayoM.js";import{useLocale as o}from"./i18n.js";import{cloneElement as l,createContext as i,useCallback as s,useContext as a,useEffect as c,useMemo as u,useRef as d,useState as f}from"react";import{Fragment as m,jsx as h,jsxs as p}from"react/jsx-runtime";var y=i(null),g={required:"This field is required",invalidFormat:"Invalid format",minLength:e=>`Must be at least ${e} characters`,maxLength:e=>`Must be no more than ${e} characters`,minValue:e=>`Must be at least ${e}`,maxValue:e=>`Must be no more than ${e}`};async function v(e,t,n=g){for(const r of t){if(r.required&&(null==e||""===e||Array.isArray(e)&&0===e.length))return r.message??n.required;if(null!=e&&""!==e){if(void 0!==r.min){if("string"==typeof e&&e.length<r.min)return r.message??n.minLength(r.min);if("number"==typeof e&&e<r.min)return r.message??n.minValue(r.min)}if(void 0!==r.max){if("string"==typeof e&&e.length>r.max)return r.message??n.maxLength(r.max);if("number"==typeof e&&e>r.max)return r.message??n.maxValue(r.max)}if(r.pattern&&"string"==typeof e&&!r.pattern.test(e))return r.message??n.invalidFormat;if(r.validator){const t=await r.validator(e);if(t)return t}}}return null}function w(){const e=a(y),t=d({}),n=d({}),r=d({}),o=u(()=>({getFieldValue:e=>t.current[e],setFieldValue:(e,n)=>{t.current[e]=n},getFieldsValue:()=>({...t.current}),setFieldsValue:e=>{Object.assign(t.current,e)},validateFields:()=>Promise.resolve({...t.current}),validateField:e=>Promise.resolve(!0),resetFields:()=>{t.current={},n.current={},r.current={}},getFieldError:e=>n.current[e]??null,isFieldTouched:e=>r.current[e]??!1}),[]);return e?e.instance:o}function F({onSubmit:t,onValuesChange:l,initialValues:i={},layout:a="vertical",disabled:m=!1,children:p,className:w,style:F,form:b}){const x=e(),S=o(),V=u(()=>({required:S.fieldRequired??g.required,invalidFormat:S.invalidFormat??g.invalidFormat,minLength:S.minLength??g.minLength,maxLength:S.maxLength??g.maxLength,minValue:S.minValue??g.minValue,maxValue:S.maxValue??g.maxValue}),[S]),[O,N]=f({values:{...i},errors:{},touched:{}}),M=d(i),T=d({}),j=d(O);j.current=O;const k=s((e,t)=>{T.current[e]=t},[]),E=s(e=>{delete T.current[e]},[]),A=s((e,t)=>{N(n=>{const r={...n,values:{...n.values,[e]:t}};return l?.({[e]:t},r.values),r})},[l]),I=s((e,t)=>{N(n=>({...n,errors:{...n.errors,[e]:t}}))},[]),C=s(e=>{N(t=>({...t,touched:{...t.touched,[e]:!0}}))},[]),D=s(async e=>{const t=T.current[e];if(!t)return!0;const n=j.current.values[e],r=await v(n,t.rules,V);return N(t=>({...t,errors:{...t.errors,[e]:r},touched:{...t.touched,[e]:!0}})),null===r},[V]),q=s(async()=>{const e=Object.keys(T.current),t=await Promise.all(e.map(async e=>{const t=T.current[e],n=j.current.values[e];return{name:e,error:await v(n,t.rules,V)}})),n={},r={};let o=!1;for(const{name:l,error:i}of t)n[l]=i,r[l]=!0,i&&(o=!0);if(N(e=>({...e,errors:{...e.errors,...n},touched:{...e.touched,...r}})),o){const e=Object.fromEntries(t.filter(e=>e.error).map(e=>[e.name,e.error]));return Promise.reject(e)}return{...j.current.values}},[]),J=s(()=>{N({values:{...M.current},errors:{},touched:{}})},[]),z=u(()=>({getFieldValue:e=>j.current.values[e],setFieldValue:A,getFieldsValue:()=>({...j.current.values}),setFieldsValue:e=>{N(t=>{const n={...t.values,...e};return l?.(e,n),{...t,values:n}})},validateFields:q,validateField:D,resetFields:J,getFieldError:e=>j.current.errors[e]??null,isFieldTouched:e=>!!j.current.touched[e]}),[A,q,D,J,l]),L=s(async e=>{e.preventDefault();try{const e=await q();await(t?.(e))}catch{}},[q,t]),P=n("inline"===a?"flex flex-row flex-wrap items-end gap-4":"flex flex-col gap-5");c(()=>{if(!b)return;const e=b;e.getFieldValue=z.getFieldValue,e.setFieldValue=z.setFieldValue,e.getFieldsValue=z.getFieldsValue,e.setFieldsValue=z.setFieldsValue,e.validateFields=z.validateFields,e.validateField=z.validateField,e.resetFields=z.resetFields,e.getFieldError=z.getFieldError,e.isFieldTouched=z.isFieldTouched},[b,z]);const W=b??z,$=u(()=>({state:O,initialValues:M.current,layout:a,disabled:m,fieldMeta:T,setFieldValue:A,setFieldError:I,setFieldTouched:C,registerField:k,unregisterField:E,validateField:D,instance:W}),[O,a,m,A,I,C,k,E,D,W]);/* @__PURE__ */
2
+ return h(y.Provider,{value:$,children:/* @__PURE__ */h("form",{noValidate:!0,role:"form","aria-label":"Form",onSubmit:L,className:r(P,w),style:{color:x.text,...F},children:p})})}function b({name:o,label:i,rules:c,help:f,required:v,children:w,className:F,style:b}){const x=e(),S=function(){const e=a(y);if(!e)throw new Error("TkxFormField must be used inside a <TkxForm>. Wrap your fields in a TkxForm component.");return e}(),{state:V,layout:O,disabled:N}=S,M=u(()=>function(e,t,n=g.required){const r=e?[...e]:[];return t&&!r.some(e=>e.required)&&r.unshift({required:!0,message:n}),r}(c,v),[c,v]),T=function(e){return e.some(e=>e.required)}(M),j=d({rules:M});j.current.rules=M;const k=d(!1);k.current||(S.registerField(o,j.current),k.current=!0),u(()=>{S.registerField(o,j.current)},[M,o,S]);const E=V.values[o],A=V.touched[o]?V.errors[o]??null:null,I=A?t(A):null,C=i?t(i):void 0,D=f?t(f):void 0,q=s(e=>{let t;if(null!==e&&"object"==typeof e&&"target"in e){const n=e.target;t="checkbox"===n.type?n.checked:n.value}else t=e;S.setFieldValue(o,t)},[S,o]),J=s(()=>{S.setFieldTouched(o),S.validateField(o)},[S,o]),z=l(w,{value:E??"",onChange:q,onBlur:J,error:I??void 0,isInvalid:!!I,isRequired:T,disabled:N||w.props.disabled,name:o}),L="horizontal"===O,P="inline"===O,W=/* @__PURE__ */h("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true",children:/* @__PURE__ */h("path",{d:"M12 2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z"})}),$=C?/* @__PURE__ */p("label",{className:n("text-sm font-medium font-sans",L?"min-w-[140px] pt-2.5":""),style:{color:x.text},children:[C,T&&/* @__PURE__ */h("span",{"aria-hidden":"true",className:n("ml-1"),style:{color:x.danger},children:"*"})]}):null,R=/* @__PURE__ */p(m,{children:[D&&!I&&/* @__PURE__ */h("span",{className:n("text-xs mt-0.5"),style:{color:x.textMuted},children:D}),I&&/* @__PURE__ */p("span",{role:"alert",className:n("text-xs flex items-center gap-1 mt-0.5"),style:{color:x.danger,animation:"tkxFormErrorReveal 200ms ease-out"},children:[W,I]})]});/* @__PURE__ */
3
+ return p("div",P?{className:r(n("flex flex-col gap-1"),F),style:b,children:[$,z,R]}:L?{className:r(n("flex flex-row gap-4 items-start"),F),style:b,children:[$,/* @__PURE__ */p("div",{className:n("flex flex-col gap-1 flex-1 min-w-0"),children:[z,R]})]}:{className:r(n("flex flex-col gap-1"),F),style:b,children:[$,z,R]})}F.displayName="TkxForm",b.displayName="TkxFormField";var x=!1;function S(e=!1){const[t,n]=f(e);return{isOpen:t,open:s(()=>n(!0),[]),close:s(()=>n(!1),[]),toggle:s(()=>n(e=>!e),[])}}function V({count:e,initialIndex:t=0,orientation:n="horizontal",loop:r=!0}){const[o,l]=f(t),i=d([]),a=s(t=>{l(n=>{let o=n+t;return o=r?(o%e+e)%e:Math.max(0,Math.min(e-1,o)),requestAnimationFrame(()=>{i.current[o]?.focus()}),o})},[e,r]);return{focusedIndex:o,setFocusedIndex:l,getItemProps:s(t=>({tabIndex:t===o?0:-1,"data-focused":t===o,onFocus:()=>l(t),onKeyDown:t=>{const r="horizontal"===n||"both"===n,o="vertical"===n||"both"===n;r&&"ArrowRight"===t.key&&(t.preventDefault(),a(1)),r&&"ArrowLeft"===t.key&&(t.preventDefault(),a(-1)),o&&"ArrowDown"===t.key&&(t.preventDefault(),a(1)),o&&"ArrowUp"===t.key&&(t.preventDefault(),a(-1)),"Home"===t.key&&(t.preventDefault(),l(0),requestAnimationFrame(()=>i.current[0]?.focus())),"End"===t.key&&(t.preventDefault(),l(e-1),requestAnimationFrame(()=>i.current[e-1]?.focus()))}}),[o,a,n,e])}}function O({initialValues:e,validate:t}){const[n,r]=f({...e}),[o,l]=f({}),[i,a]=f({}),c=d(e),u=s((e,t)=>{r(n=>({...n,[e]:t}))},[]),m=s(e=>{r(t=>({...t,...e}))},[]),h=s(e=>{a(t=>({...t,[e]:!0}))},[]),p=s(()=>{if(!t)return!0;const e=t(n),r=Object.fromEntries(Object.entries(e).filter(([,e])=>null!=e));return l(r),a(Object.fromEntries(Object.keys(n).map(e=>[e,!0]))),0===Object.keys(r).length},[n,t]),y=s(()=>{r({...c.current}),l({}),a({})},[]);return{values:n,errors:o,touched:i,dirty:Object.keys(n).some(e=>n[e]!==c.current[e]),isValid:0===Object.keys(o).length,setValue:u,setValues:m,touchField:h,validate:p,reset:y,getFieldProps:s(e=>({value:n[e],onChange:t=>{u(e,t.target.value)},onBlur:()=>h(e),"aria-invalid":!(!i[e]||!o[e])||void 0,"aria-describedby":o[e]?`${String(e)}-error`:void 0}),[n,o,i,u,h])}}function N({items:e,initialSelected:t=[],multiple:n=!0}){const[r,o]=f(()=>new Set(t)),l=s(e=>{o(t=>{const r=new Set(t);return r.has(e)?r.delete(e):(n||r.clear(),r.add(e)),r})},[n]),i=s(e=>{o(t=>{if(t.has(e))return t;const r=n?new Set(t):/* @__PURE__ */new Set;return r.add(e),r})},[n]),a=s(e=>{o(t=>{if(!t.has(e))return t;const n=new Set(t);return n.delete(e),n})},[]),c=s(()=>{n&&o(new Set(e))},[e,n]),d=s(()=>o(/* @__PURE__ */new Set),[]),m=s(()=>{o(t=>e.every(e=>t.has(e))?/* @__PURE__ */new Set:new Set(e))},[e]),h=e.length>0&&e.every(e=>r.has(e)),p=e.some(e=>r.has(e)),y=u(()=>Array.from(r),[r]);return{selected:r,isSelected:s(e=>r.has(e),[r]),toggle:l,select:i,deselect:a,selectAll:c,deselectAll:d,toggleAll:m,allSelected:h,someSelected:p,selectedCount:r.size,selectedArray:y}}function M(e,t){const[n,r]=f(e);return c(()=>{const n=setTimeout(()=>r(e),t);return()=>clearTimeout(n)},[e,t]),n}function T(e,t){const[n,r]=f(e),o=d(Date.now());return c(()=>{const n=Date.now(),l=t-(n-o.current);if(!(l<=0)){const t=setTimeout(()=>{o.current=Date.now(),r(e)},l);return()=>clearTimeout(t)}o.current=n,r(e)},[e,t]),n}function j({value:e,onChange:t,defaultValue:n}){const r=void 0!==e,[o,l]=f(n),i=d(t);i.current=t;const a=s(e=>{r||l(e),i.current?.(e)},[r]);return[r?e:o,a]}function k(e){const[t,n]=f(()=>"undefined"!=typeof window&&window.matchMedia(e).matches);return c(()=>{if("undefined"==typeof window)return;const t=window.matchMedia(e);n(t.matches);const r=e=>n(e.matches);return t.addEventListener("change",r),()=>t.removeEventListener("change",r)},[e]),t}function E(e,t){const[n,r]=f(()=>{if("undefined"==typeof window)return t;try{const n=window.localStorage.getItem(e);return null!==n?JSON.parse(n):t}catch{return t}});return[n,s(t=>{r(n=>{const r="function"==typeof t?t(n):t;if("undefined"!=typeof window)try{window.localStorage.setItem(e,JSON.stringify(r))}catch{}return r})},[e]),s(()=>{if(r(t),"undefined"!=typeof window)try{window.localStorage.removeItem(e)}catch{}},[e,t])]}function A({threshold:e=0,rootMargin:t="0px",root:n=null,once:r=!1}={}){const o=d(null),[l,i]=f(null),s=d(null);return c(()=>{const l=o.current;if(l&&"undefined"!=typeof IntersectionObserver)return s.current=new IntersectionObserver(([e])=>{i(e),r&&e.isIntersecting&&s.current?.unobserve(l)},{threshold:e,rootMargin:t,root:n}),s.current.observe(l),()=>s.current?.disconnect()},[e,t,n,r]),{ref:o,isIntersecting:l?.isIntersecting??!1,entry:l}}function I(e){const{url:t,protocols:n,reconnect:r=!0,reconnectDelay:o=1e3,reconnectAttempts:l=10,heartbeatInterval:i=3e4,heartbeatMessage:a="ping",onOpen:u,onClose:m,onError:h,onMessage:p}=e,[y,g]=f("disconnected"),[v,w]=f(null),[F,b]=f([]),[x,S]=f(0),[V,O]=f(null),N=d(null),M=d(0),T=d(null),j=d(null),k=d(null),E=d([]),A=d(!0),I=d(!1),C=d(u),D=d(m),q=d(h),J=d(p);C.current=u,D.current=m,q.current=h,J.current=p;const z=s(()=>{T.current&&(clearTimeout(T.current),T.current=null),j.current&&(clearInterval(j.current),j.current=null)},[]),L=s(e=>{for(;E.current.length>0;){const t=E.current.shift();void 0!==t&&e.send("string"==typeof t?t:JSON.stringify(t))}},[]),P=s(()=>{if(N.current&&N.current.readyState===WebSocket.OPEN)return;I.current=!1,z(),A.current&&g("connecting");const e=new WebSocket(t,n);N.current=e,e.onopen=t=>{A.current&&(g("connected"),M.current=0,S(0),C.current?.(t),L(e),j.current=setInterval(()=>{if(e.readyState===WebSocket.OPEN){k.current=Date.now();try{e.send(JSON.stringify({type:"ping",t:k.current}))}catch{}}},i))},e.onmessage=e=>{if(!A.current)return;let t;try{t=JSON.parse(e.data)}catch{t=e.data}const n=t;if(n&&"object"==typeof n&&"pong"===n.type&&"number"==typeof n.t)O(Date.now()-n.t);else{if(t===a&&null!==k.current)return O(Date.now()-k.current),void(k.current=null);w(t),b(e=>{const n=[...e,t];return n.length>100?n.slice(n.length-100):n}),J.current?.(t)}},e.onerror=e=>{A.current&&(g("error"),q.current?.(e))},e.onclose=e=>{if(A.current&&(z(),g("disconnected"),D.current?.(e),!I.current&&r&&M.current<l)){const e=M.current,t=o*Math.pow(1.5,e);M.current+=1,S(M.current),T.current=setTimeout(()=>{A.current&&P()},t)}}},[t,n,r,o,l,i,a,z,L]),W=s(()=>{I.current=!0,z(),N.current&&(N.current.close(),N.current=null),A.current&&g("disconnected")},[z]),$=s(e=>{N.current&&N.current.readyState===WebSocket.OPEN?N.current.send("string"==typeof e?e:JSON.stringify(e)):E.current.push(e)},[]);return c(()=>(A.current=!0,P(),()=>{A.current=!1,I.current=!0,z(),N.current&&(N.current.close(),N.current=null)}),[]),{status:y,lastMessage:v,messages:F,send:$,connect:P,disconnect:W,reconnectCount:x,latency:V}}function C(e){const{url:t,events:n=["message"],withCredentials:r=!1,reconnect:o=!0,reconnectDelay:l=3e3,onOpen:i,onError:a}=e,[u,m]=f("connecting"),[h,p]=f(null),[y,g]=f([]),[v,w]=f(0),F=d(null),b=d(null),x=d(!0),S=d(!1),V=d(i),O=d(a);V.current=i,O.current=a;const N=s(()=>{b.current&&(clearTimeout(b.current),b.current=null)},[]),M=s(()=>{if("undefined"==typeof EventSource)return void(x.current&&m("error"));S.current=!1,N(),F.current&&(F.current.close(),F.current=null),x.current&&m("connecting");const e=new EventSource(t,{withCredentials:r});F.current=e,e.onopen=()=>{x.current&&(m("connected"),V.current?.())},e.onerror=e=>{x.current&&(m("error"),O.current?.(e),!S.current&&o&&(N(),b.current=setTimeout(()=>{x.current&&M()},l)))};const i=e=>t=>{if(!x.current)return;let n;try{n=JSON.parse(t.data)}catch{n=t.data}const r={type:e,data:n,timestamp:Date.now(),...t.lastEventId?{id:t.lastEventId}:{}};p({type:r.type,data:r.data,id:r.id}),g(e=>{const t=[...e,r];return t.length>200?t.slice(t.length-200):t}),w(e=>e+1)};for(const t of n)e.addEventListener(t,i(t))},[t,r,o,l,N]),T=s(()=>{S.current=!0,N(),F.current&&(F.current.close(),F.current=null),x.current&&m("closed")},[N]);return c(()=>(x.current=!0,M(),()=>{x.current=!1,S.current=!0,N(),F.current&&(F.current.close(),F.current=null)}),[]),{status:u,lastEvent:h,events:y,connect:M,disconnect:T,eventCount:v}}function D(e){const{queryFn:t,initialCursor:n=null,enabled:r=!0,dedupKey:o}=e,[l,i]=f([]),[a,u]=f("idle"),[m,h]=f(null),[p,y]=f(!1),[g,v]=f(0),w=d(n??null),F=d(!1),b=d(!0),x=d(void 0),S=d(t);S.current=t;const V=s(async(e,t,n)=>{if(F.current)return;if(void 0!==o&&o===x.current)return;F.current=!0;let r=!1;b.current&&(u(n?"loading":"fetching-more"),h(null));try{const l=await S.current(e,t);if(r||!b.current)return;void 0!==o&&(x.current=o),w.current=l.nextCursor,i(e=>n?[l.data]:[...e,l.data]),y(l.hasMore),v(t),u("success")}catch(l){if(r||!b.current)return;h(l instanceof Error?l:new Error(String(l))),u("error")}finally{r||(F.current=!1)}return()=>{r=!0}},[o]),O=s(()=>{p&&!F.current&&V(w.current,g+1,!1)},[p,g,V]),N=s(()=>{F.current=!1,x.current=void 0,w.current=n??null,i([]),u("idle"),h(null),y(!1),v(0)},[n]);c(()=>(b.current=!0,r&&V(n??null,0,!0),()=>{b.current=!1}),[r]);const M=l.flat();return{data:M,pages:l,status:a,error:m,hasMore:p,isFetchingMore:"fetching-more"===a,fetchMore:O,reset:N,pageIndex:g,totalLoaded:M.length}}!function(){if(x)return;if("undefined"==typeof document)return;x=!0;const e=document.createElement("style");e.setAttribute("data-tkx-form",""),e.textContent="\n @keyframes tkxFormErrorReveal {\n from {\n opacity: 0;\n transform: translateY(-4px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n }\n ",document.head.appendChild(e)}();export{E as a,T as c,O as d,V as f,w as g,b as h,A as i,M as l,F as m,C as n,k as o,S as p,I as r,j as s,D as t,N as u};
package/dist/headless.cjs CHANGED
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"}),require("./chunk-DmRB1Blb.js");const e=require("./chunk-BpuJ3-K8.js"),t=require("./chunk-D7-yknXg.js"),n=require("./chunk-C8Wy8P59.js"),r=require("./chunk-VUD-TF9j.js");let o=require("react");exports.contrastRatio=e.contrastRatio,exports.cssVar=e.cssVar,exports.cx=t.cx,exports.extractAtomicCSS=t.extractAtomicCSS,exports.extractCSS=e.extractCSS,exports.injectStyles=e.injectStyles,exports.meetsAA=e.meetsAA,exports.meetsAAA=e.meetsAAA,exports.resetAtomicCSS=t.resetAtomicCSS,exports.resetStyles=e.resetStyles,exports.sanitizeProps=t.sanitizeProps,exports.sanitizeString=t.sanitizeString,exports.tkxListPlugins=t.tkxListPlugins,exports.tkxPlugin=t.tkxPlugin,exports.tkxRemovePlugin=t.tkxRemovePlugin,exports.useAnnounce=n.useAnnounce,exports.useClickOutside=n.useClickOutside,exports.useControllable=function({value:e,onChange:t,defaultValue:n}){const r=void 0!==e,[s,c]=(0,o.useState)(n),i=(0,o.useRef)(t);i.current=t;const u=(0,o.useCallback)(e=>{r||c(e),i.current?.(e)},[r]);return[r?e:s,u]},exports.useDebounce=function(e,t){const[n,r]=(0,o.useState)(e);return(0,o.useEffect)(()=>{const n=setTimeout(()=>r(e),t);return()=>clearTimeout(n)},[e,t]),n},exports.useDisclosure=function(e=!1){const[t,n]=(0,o.useState)(e);return{isOpen:t,open:(0,o.useCallback)(()=>n(!0),[]),close:(0,o.useCallback)(()=>n(!1),[]),toggle:(0,o.useCallback)(()=>n(e=>!e),[])}},exports.useEscapeKey=n.useEscapeKey,exports.useFocusTrap=n.useFocusTrap,exports.useFormState=function({initialValues:e,validate:t}){const[n,r]=(0,o.useState)({...e}),[s,c]=(0,o.useState)({}),[i,u]=(0,o.useState)({}),l=(0,o.useRef)(e),a=(0,o.useCallback)((e,t)=>{r(n=>({...n,[e]:t}))},[]),d=(0,o.useCallback)(e=>{r(t=>({...t,...e}))},[]),p=(0,o.useCallback)(e=>{u(t=>({...t,[e]:!0}))},[]),f=(0,o.useCallback)(()=>{if(!t)return!0;const e=t(n),r=Object.fromEntries(Object.entries(e).filter(([,e])=>null!=e));return c(r),u(Object.fromEntries(Object.keys(n).map(e=>[e,!0]))),0===Object.keys(r).length},[n,t]),w=(0,o.useCallback)(()=>{r({...l.current}),c({}),u({})},[]);return{values:n,errors:s,touched:i,dirty:Object.keys(n).some(e=>n[e]!==l.current[e]),isValid:0===Object.keys(s).length,setValue:a,setValues:d,touchField:p,validate:f,reset:w,getFieldProps:(0,o.useCallback)(e=>({value:n[e],onChange:t=>{a(e,t.target.value)},onBlur:()=>p(e),"aria-invalid":!(!i[e]||!s[e])||void 0,"aria-describedby":s[e]?`${String(e)}-error`:void 0}),[n,s,i,a,p])}},exports.useHighContrast=n.useHighContrast,exports.useInfiniteQuery=function(e){const{queryFn:t,initialCursor:n=null,enabled:r=!0,dedupKey:s}=e,[c,i]=(0,o.useState)([]),[u,l]=(0,o.useState)("idle"),[a,d]=(0,o.useState)(null),[p,f]=(0,o.useState)(!1),[w,x]=(0,o.useState)(0),h=(0,o.useRef)(n??null),g=(0,o.useRef)(!1),y=(0,o.useRef)(!0),v=(0,o.useRef)(void 0),S=(0,o.useRef)(t);S.current=t;const m=(0,o.useCallback)(async(e,t,n)=>{if(g.current)return;if(void 0!==s&&s===v.current)return;g.current=!0;let r=!1;y.current&&(l(n?"loading":"fetching-more"),d(null));try{const o=await S.current(e,t);if(r||!y.current)return;void 0!==s&&(v.current=s),h.current=o.nextCursor,i(e=>n?[o.data]:[...e,o.data]),f(o.hasMore),x(t),l("success")}catch(o){if(r||!y.current)return;d(o instanceof Error?o:new Error(String(o))),l("error")}finally{r||(g.current=!1)}return()=>{r=!0}},[s]),b=(0,o.useCallback)(()=>{p&&!g.current&&m(h.current,w+1,!1)},[p,w,m]),O=(0,o.useCallback)(()=>{g.current=!1,v.current=void 0,h.current=n??null,i([]),l("idle"),d(null),f(!1),x(0)},[n]);(0,o.useEffect)(()=>(y.current=!0,r&&m(n??null,0,!0),()=>{y.current=!1}),[r]);const j=c.flat();return{data:j,pages:c,status:u,error:a,hasMore:p,isFetchingMore:"fetching-more"===u,fetchMore:b,reset:O,pageIndex:w,totalLoaded:j.length}},exports.useIntersectionObserver=function({threshold:e=0,rootMargin:t="0px",root:n=null,once:r=!1}={}){const s=(0,o.useRef)(null),[c,i]=(0,o.useState)(null),u=(0,o.useRef)(null);return(0,o.useEffect)(()=>{const o=s.current;if(o&&"undefined"!=typeof IntersectionObserver)return u.current=new IntersectionObserver(([e])=>{i(e),r&&e.isIntersecting&&u.current?.unobserve(o)},{threshold:e,rootMargin:t,root:n}),u.current.observe(o),()=>u.current?.disconnect()},[e,t,n,r]),{ref:s,isIntersecting:c?.isIntersecting??!1,entry:c}},exports.useListSelection=function({items:e,initialSelected:t=[],multiple:n=!0}){const[r,s]=(0,o.useState)(()=>new Set(t)),c=(0,o.useCallback)(e=>{s(t=>{const r=new Set(t);return r.has(e)?r.delete(e):(n||r.clear(),r.add(e)),r})},[n]),i=(0,o.useCallback)(e=>{s(t=>{if(t.has(e))return t;const r=n?new Set(t):new Set;return r.add(e),r})},[n]),u=(0,o.useCallback)(e=>{s(t=>{if(!t.has(e))return t;const n=new Set(t);return n.delete(e),n})},[]),l=(0,o.useCallback)(()=>{n&&s(new Set(e))},[e,n]),a=(0,o.useCallback)(()=>s(new Set),[]),d=(0,o.useCallback)(()=>{s(t=>e.every(e=>t.has(e))?new Set:new Set(e))},[e]),p=e.length>0&&e.every(e=>r.has(e)),f=e.some(e=>r.has(e)),w=(0,o.useMemo)(()=>Array.from(r),[r]);return{selected:r,isSelected:(0,o.useCallback)(e=>r.has(e),[r]),toggle:c,select:i,deselect:u,selectAll:l,deselectAll:a,toggleAll:d,allSelected:p,someSelected:f,selectedCount:r.size,selectedArray:w}},exports.useLocalStorage=function(e,t){const[n,r]=(0,o.useState)(()=>{if("undefined"==typeof window)return t;try{const n=window.localStorage.getItem(e);return null!==n?JSON.parse(n):t}catch{return t}});return[n,(0,o.useCallback)(t=>{r(n=>{const r="function"==typeof t?t(n):t;if("undefined"!=typeof window)try{window.localStorage.setItem(e,JSON.stringify(r))}catch{}return r})},[e]),(0,o.useCallback)(()=>{if(r(t),"undefined"!=typeof window)try{window.localStorage.removeItem(e)}catch{}},[e,t])]},exports.useMediaQuery=function(e){const[t,n]=(0,o.useState)(()=>"undefined"!=typeof window&&window.matchMedia(e).matches);return(0,o.useEffect)(()=>{if("undefined"==typeof window)return;const t=window.matchMedia(e);n(t.matches);const r=e=>n(e.matches);return t.addEventListener("change",r),()=>t.removeEventListener("change",r)},[e]),t},exports.useReducedMotion=n.useReducedMotion,exports.useRovingTabIndex=function({count:e,initialIndex:t=0,orientation:n="horizontal",loop:r=!0}){const[s,c]=(0,o.useState)(t),i=(0,o.useRef)([]),u=(0,o.useCallback)(t=>{c(n=>{let o=n+t;return o=r?(o%e+e)%e:Math.max(0,Math.min(e-1,o)),requestAnimationFrame(()=>{i.current[o]?.focus()}),o})},[e,r]);return{focusedIndex:s,setFocusedIndex:c,getItemProps:(0,o.useCallback)(t=>({tabIndex:t===s?0:-1,"data-focused":t===s,onFocus:()=>c(t),onKeyDown:t=>{const r="horizontal"===n||"both"===n,o="vertical"===n||"both"===n;r&&"ArrowRight"===t.key&&(t.preventDefault(),u(1)),r&&"ArrowLeft"===t.key&&(t.preventDefault(),u(-1)),o&&"ArrowDown"===t.key&&(t.preventDefault(),u(1)),o&&"ArrowUp"===t.key&&(t.preventDefault(),u(-1)),"Home"===t.key&&(t.preventDefault(),c(0),requestAnimationFrame(()=>i.current[0]?.focus())),"End"===t.key&&(t.preventDefault(),c(e-1),requestAnimationFrame(()=>i.current[e-1]?.focus()))}}),[s,u,n,e])}},exports.useSSE=function(e){const{url:t,events:n=["message"],withCredentials:r=!1,reconnect:s=!0,reconnectDelay:c=3e3,onOpen:i,onError:u}=e,[l,a]=(0,o.useState)("connecting"),[d,p]=(0,o.useState)(null),[f,w]=(0,o.useState)([]),[x,h]=(0,o.useState)(0),g=(0,o.useRef)(null),y=(0,o.useRef)(null),v=(0,o.useRef)(!0),S=(0,o.useRef)(!1),m=(0,o.useRef)(i),b=(0,o.useRef)(u);m.current=i,b.current=u;const O=(0,o.useCallback)(()=>{y.current&&(clearTimeout(y.current),y.current=null)},[]),j=(0,o.useCallback)(()=>{if("undefined"==typeof EventSource)return void(v.current&&a("error"));S.current=!1,O(),g.current&&(g.current.close(),g.current=null),v.current&&a("connecting");const e=new EventSource(t,{withCredentials:r});g.current=e,e.onopen=()=>{v.current&&(a("connected"),m.current?.())},e.onerror=e=>{v.current&&(a("error"),b.current?.(e),!S.current&&s&&(O(),y.current=setTimeout(()=>{v.current&&j()},c)))};const o=e=>t=>{if(!v.current)return;let n;try{n=JSON.parse(t.data)}catch{n=t.data}const r={type:e,data:n,timestamp:Date.now(),...t.lastEventId?{id:t.lastEventId}:{}};p({type:r.type,data:r.data,id:r.id}),w(e=>{const t=[...e,r];return t.length>200?t.slice(t.length-200):t}),h(e=>e+1)};for(const t of n)e.addEventListener(t,o(t))},[t,r,s,c,O]),A=(0,o.useCallback)(()=>{S.current=!0,O(),g.current&&(g.current.close(),g.current=null),v.current&&a("closed")},[O]);return(0,o.useEffect)(()=>(v.current=!0,j(),()=>{v.current=!1,S.current=!0,O(),g.current&&(g.current.close(),g.current=null)}),[]),{status:l,lastEvent:d,events:f,connect:j,disconnect:A,eventCount:x}},exports.useThrottle=function(e,t){const[n,r]=(0,o.useState)(e),s=(0,o.useRef)(Date.now());return(0,o.useEffect)(()=>{const n=Date.now(),o=t-(n-s.current);if(!(o<=0)){const t=setTimeout(()=>{s.current=Date.now(),r(e)},o);return()=>clearTimeout(t)}s.current=n,r(e)},[e,t]),n},exports.useTkxForm=r.useTkxForm,exports.useWebSocket=function(e){const{url:t,protocols:n,reconnect:r=!0,reconnectDelay:s=1e3,reconnectAttempts:c=10,heartbeatInterval:i=3e4,heartbeatMessage:u="ping",onOpen:l,onClose:a,onError:d,onMessage:p}=e,[f,w]=(0,o.useState)("disconnected"),[x,h]=(0,o.useState)(null),[g,y]=(0,o.useState)([]),[v,S]=(0,o.useState)(0),[m,b]=(0,o.useState)(null),O=(0,o.useRef)(null),j=(0,o.useRef)(0),A=(0,o.useRef)(null),I=(0,o.useRef)(null),M=(0,o.useRef)(null),D=(0,o.useRef)([]),q=(0,o.useRef)(!0),k=(0,o.useRef)(!1),C=(0,o.useRef)(l),F=(0,o.useRef)(a),E=(0,o.useRef)(d),T=(0,o.useRef)(p);C.current=l,F.current=a,E.current=d,T.current=p;const J=(0,o.useCallback)(()=>{A.current&&(clearTimeout(A.current),A.current=null),I.current&&(clearInterval(I.current),I.current=null)},[]),N=(0,o.useCallback)(e=>{for(;D.current.length>0;){const t=D.current.shift();void 0!==t&&e.send("string"==typeof t?t:JSON.stringify(t))}},[]),V=(0,o.useCallback)(()=>{if(O.current&&O.current.readyState===WebSocket.OPEN)return;k.current=!1,J(),q.current&&w("connecting");const e=new WebSocket(t,n);O.current=e,e.onopen=t=>{q.current&&(w("connected"),j.current=0,S(0),C.current?.(t),N(e),I.current=setInterval(()=>{if(e.readyState===WebSocket.OPEN){M.current=Date.now();try{e.send(JSON.stringify({type:"ping",t:M.current}))}catch{}}},i))},e.onmessage=e=>{if(!q.current)return;let t;try{t=JSON.parse(e.data)}catch{t=e.data}const n=t;if(n&&"object"==typeof n&&"pong"===n.type&&"number"==typeof n.t)b(Date.now()-n.t);else{if(t===u&&null!==M.current)return b(Date.now()-M.current),void(M.current=null);h(t),y(e=>{const n=[...e,t];return n.length>100?n.slice(n.length-100):n}),T.current?.(t)}},e.onerror=e=>{q.current&&(w("error"),E.current?.(e))},e.onclose=e=>{if(q.current&&(J(),w("disconnected"),F.current?.(e),!k.current&&r&&j.current<c)){const e=j.current,t=s*Math.pow(1.5,e);j.current+=1,S(j.current),A.current=setTimeout(()=>{q.current&&V()},t)}}},[t,n,r,s,c,i,u,J,N]),W=(0,o.useCallback)(()=>{k.current=!0,J(),O.current&&(O.current.close(),O.current=null),q.current&&w("disconnected")},[J]),z=(0,o.useCallback)(e=>{O.current&&O.current.readyState===WebSocket.OPEN?O.current.send("string"==typeof e?e:JSON.stringify(e)):D.current.push(e)},[]);return(0,o.useEffect)(()=>(q.current=!0,V(),()=>{q.current=!1,k.current=!0,J(),O.current&&(O.current.close(),O.current=null)}),[]),{status:f,lastMessage:x,messages:g,send:z,connect:V,disconnect:W,reconnectCount:v,latency:m}};
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./chunk-BpuJ3-K8.js"),r=require("./chunk-D7-yknXg.js"),s=require("./chunk-C8Wy8P59.js"),o=require("./chunk-Bze40nDX.js");exports.contrastRatio=e.contrastRatio,exports.cssVar=e.cssVar,exports.cx=r.cx,exports.extractAtomicCSS=r.extractAtomicCSS,exports.extractCSS=e.extractCSS,exports.injectStyles=e.injectStyles,exports.meetsAA=e.meetsAA,exports.meetsAAA=e.meetsAAA,exports.resetAtomicCSS=r.resetAtomicCSS,exports.resetStyles=e.resetStyles,exports.sanitizeProps=r.sanitizeProps,exports.sanitizeString=r.sanitizeString,exports.tkxListPlugins=r.tkxListPlugins,exports.tkxPlugin=r.tkxPlugin,exports.tkxRemovePlugin=r.tkxRemovePlugin,exports.useAnnounce=s.useAnnounce,exports.useClickOutside=s.useClickOutside,exports.useControllable=o.useControllable,exports.useDebounce=o.useDebounce,exports.useDisclosure=o.useDisclosure,exports.useEscapeKey=s.useEscapeKey,exports.useFocusTrap=s.useFocusTrap,exports.useFormState=o.useFormState,exports.useHighContrast=s.useHighContrast,exports.useInfiniteQuery=o.useInfiniteQuery,exports.useIntersectionObserver=o.useIntersectionObserver,exports.useListSelection=o.useListSelection,exports.useLocalStorage=o.useLocalStorage,exports.useMediaQuery=o.useMediaQuery,exports.useReducedMotion=s.useReducedMotion,exports.useRovingTabIndex=o.useRovingTabIndex,exports.useSSE=o.useSSE,exports.useThrottle=o.useThrottle,exports.useTkxForm=o.useTkxForm,exports.useWebSocket=o.useWebSocket;
package/dist/headless.js CHANGED
@@ -1 +1 @@
1
- import{A as e,D as t,M as n,O as o,S as r,g as c,x as s}from"./chunk-DdHSYetV.js";import{E as i,T as l,c as u,n as a,o as d,r as f,s as w,t as p}from"./chunk-DcVMayoM.js";import{a as g,i as h,n as m,o as y,r as S,t as v}from"./chunk-BHX35YDv.js";import{r as b}from"./chunk-CDGrC2Wo.js";import{useCallback as O,useEffect as A,useMemo as j,useRef as D,useState as I}from"react";function M(e=!1){const[t,n]=I(e);return{isOpen:t,open:O(()=>n(!0),[]),close:O(()=>n(!1),[]),toggle:O(()=>n(e=>!e),[])}}function C({count:e,initialIndex:t=0,orientation:n="horizontal",loop:o=!0}){const[r,c]=I(t),s=D([]),i=O(t=>{c(n=>{let r=n+t;return r=o?(r%e+e)%e:Math.max(0,Math.min(e-1,r)),requestAnimationFrame(()=>{s.current[r]?.focus()}),r})},[e,o]);return{focusedIndex:r,setFocusedIndex:c,getItemProps:O(t=>({tabIndex:t===r?0:-1,"data-focused":t===r,onFocus:()=>c(t),onKeyDown:t=>{const o="horizontal"===n||"both"===n,r="vertical"===n||"both"===n;o&&"ArrowRight"===t.key&&(t.preventDefault(),i(1)),o&&"ArrowLeft"===t.key&&(t.preventDefault(),i(-1)),r&&"ArrowDown"===t.key&&(t.preventDefault(),i(1)),r&&"ArrowUp"===t.key&&(t.preventDefault(),i(-1)),"Home"===t.key&&(t.preventDefault(),c(0),requestAnimationFrame(()=>s.current[0]?.focus())),"End"===t.key&&(t.preventDefault(),c(e-1),requestAnimationFrame(()=>s.current[e-1]?.focus()))}}),[r,i,n,e])}}function E({initialValues:e,validate:t}){const[n,o]=I({...e}),[r,c]=I({}),[s,i]=I({}),l=D(e),u=O((e,t)=>{o(n=>({...n,[e]:t}))},[]),a=O(e=>{o(t=>({...t,...e}))},[]),d=O(e=>{i(t=>({...t,[e]:!0}))},[]),f=O(()=>{if(!t)return!0;const e=t(n),o=Object.fromEntries(Object.entries(e).filter(([,e])=>null!=e));return c(o),i(Object.fromEntries(Object.keys(n).map(e=>[e,!0]))),0===Object.keys(o).length},[n,t]),w=O(()=>{o({...l.current}),c({}),i({})},[]);return{values:n,errors:r,touched:s,dirty:Object.keys(n).some(e=>n[e]!==l.current[e]),isValid:0===Object.keys(r).length,setValue:u,setValues:a,touchField:d,validate:f,reset:w,getFieldProps:O(e=>({value:n[e],onChange:t=>{u(e,t.target.value)},onBlur:()=>d(e),"aria-invalid":!(!s[e]||!r[e])||void 0,"aria-describedby":r[e]?`${String(e)}-error`:void 0}),[n,r,s,u,d])}}function F({items:e,initialSelected:t=[],multiple:n=!0}){const[o,r]=I(()=>new Set(t)),c=O(e=>{r(t=>{const o=new Set(t);return o.has(e)?o.delete(e):(n||o.clear(),o.add(e)),o})},[n]),s=O(e=>{r(t=>{if(t.has(e))return t;const o=n?new Set(t):/* @__PURE__ */new Set;return o.add(e),o})},[n]),i=O(e=>{r(t=>{if(!t.has(e))return t;const n=new Set(t);return n.delete(e),n})},[]),l=O(()=>{n&&r(new Set(e))},[e,n]),u=O(()=>r(/* @__PURE__ */new Set),[]),a=O(()=>{r(t=>e.every(e=>t.has(e))?/* @__PURE__ */new Set:new Set(e))},[e]),d=e.length>0&&e.every(e=>o.has(e)),f=e.some(e=>o.has(e)),w=j(()=>Array.from(o),[o]);return{selected:o,isSelected:O(e=>o.has(e),[o]),toggle:c,select:s,deselect:i,selectAll:l,deselectAll:u,toggleAll:a,allSelected:d,someSelected:f,selectedCount:o.size,selectedArray:w}}function T(e,t){const[n,o]=I(e);return A(()=>{const n=setTimeout(()=>o(e),t);return()=>clearTimeout(n)},[e,t]),n}function k(e,t){const[n,o]=I(e),r=D(Date.now());return A(()=>{const n=Date.now(),c=t-(n-r.current);if(!(c<=0)){const t=setTimeout(()=>{r.current=Date.now(),o(e)},c);return()=>clearTimeout(t)}r.current=n,o(e)},[e,t]),n}function x({value:e,onChange:t,defaultValue:n}){const o=void 0!==e,[r,c]=I(n),s=D(t);s.current=t;const i=O(e=>{o||c(e),s.current?.(e)},[o]);return[o?e:r,i]}function J(e){const[t,n]=I(()=>"undefined"!=typeof window&&window.matchMedia(e).matches);return A(()=>{if("undefined"==typeof window)return;const t=window.matchMedia(e);n(t.matches);const o=e=>n(e.matches);return t.addEventListener("change",o),()=>t.removeEventListener("change",o)},[e]),t}function N(e,t){const[n,o]=I(()=>{if("undefined"==typeof window)return t;try{const n=window.localStorage.getItem(e);return null!==n?JSON.parse(n):t}catch{return t}});return[n,O(t=>{o(n=>{const o="function"==typeof t?t(n):t;if("undefined"!=typeof window)try{window.localStorage.setItem(e,JSON.stringify(o))}catch{}return o})},[e]),O(()=>{if(o(t),"undefined"!=typeof window)try{window.localStorage.removeItem(e)}catch{}},[e,t])]}function V({threshold:e=0,rootMargin:t="0px",root:n=null,once:o=!1}={}){const r=D(null),[c,s]=I(null),i=D(null);return A(()=>{const c=r.current;if(c&&"undefined"!=typeof IntersectionObserver)return i.current=new IntersectionObserver(([e])=>{s(e),o&&e.isIntersecting&&i.current?.unobserve(c)},{threshold:e,rootMargin:t,root:n}),i.current.observe(c),()=>i.current?.disconnect()},[e,t,n,o]),{ref:r,isIntersecting:c?.isIntersecting??!1,entry:c}}function q(e){const{url:t,protocols:n,reconnect:o=!0,reconnectDelay:r=1e3,reconnectAttempts:c=10,heartbeatInterval:s=3e4,heartbeatMessage:i="ping",onOpen:l,onClose:u,onError:a,onMessage:d}=e,[f,w]=I("disconnected"),[p,g]=I(null),[h,m]=I([]),[y,S]=I(0),[v,b]=I(null),j=D(null),M=D(0),C=D(null),E=D(null),F=D(null),T=D([]),k=D(!0),x=D(!1),J=D(l),N=D(u),V=D(a),q=D(d);J.current=l,N.current=u,V.current=a,q.current=d;const W=O(()=>{C.current&&(clearTimeout(C.current),C.current=null),E.current&&(clearInterval(E.current),E.current=null)},[]),z=O(e=>{for(;T.current.length>0;){const t=T.current.shift();void 0!==t&&e.send("string"==typeof t?t:JSON.stringify(t))}},[]),K=O(()=>{if(j.current&&j.current.readyState===WebSocket.OPEN)return;x.current=!1,W(),k.current&&w("connecting");const e=new WebSocket(t,n);j.current=e,e.onopen=t=>{k.current&&(w("connected"),M.current=0,S(0),J.current?.(t),z(e),E.current=setInterval(()=>{if(e.readyState===WebSocket.OPEN){F.current=Date.now();try{e.send(JSON.stringify({type:"ping",t:F.current}))}catch{}}},s))},e.onmessage=e=>{if(!k.current)return;let t;try{t=JSON.parse(e.data)}catch{t=e.data}const n=t;if(n&&"object"==typeof n&&"pong"===n.type&&"number"==typeof n.t)b(Date.now()-n.t);else{if(t===i&&null!==F.current)return b(Date.now()-F.current),void(F.current=null);g(t),m(e=>{const n=[...e,t];return n.length>100?n.slice(n.length-100):n}),q.current?.(t)}},e.onerror=e=>{k.current&&(w("error"),V.current?.(e))},e.onclose=e=>{if(k.current&&(W(),w("disconnected"),N.current?.(e),!x.current&&o&&M.current<c)){const e=M.current,t=r*Math.pow(1.5,e);M.current+=1,S(M.current),C.current=setTimeout(()=>{k.current&&K()},t)}}},[t,n,o,r,c,s,i,W,z]),L=O(()=>{x.current=!0,W(),j.current&&(j.current.close(),j.current=null),k.current&&w("disconnected")},[W]),P=O(e=>{j.current&&j.current.readyState===WebSocket.OPEN?j.current.send("string"==typeof e?e:JSON.stringify(e)):T.current.push(e)},[]);return A(()=>(k.current=!0,K(),()=>{k.current=!1,x.current=!0,W(),j.current&&(j.current.close(),j.current=null)}),[]),{status:f,lastMessage:p,messages:h,send:P,connect:K,disconnect:L,reconnectCount:y,latency:v}}function W(e){const{url:t,events:n=["message"],withCredentials:o=!1,reconnect:r=!0,reconnectDelay:c=3e3,onOpen:s,onError:i}=e,[l,u]=I("connecting"),[a,d]=I(null),[f,w]=I([]),[p,g]=I(0),h=D(null),m=D(null),y=D(!0),S=D(!1),v=D(s),b=D(i);v.current=s,b.current=i;const j=O(()=>{m.current&&(clearTimeout(m.current),m.current=null)},[]),M=O(()=>{if("undefined"==typeof EventSource)return void(y.current&&u("error"));S.current=!1,j(),h.current&&(h.current.close(),h.current=null),y.current&&u("connecting");const e=new EventSource(t,{withCredentials:o});h.current=e,e.onopen=()=>{y.current&&(u("connected"),v.current?.())},e.onerror=e=>{y.current&&(u("error"),b.current?.(e),!S.current&&r&&(j(),m.current=setTimeout(()=>{y.current&&M()},c)))};const s=e=>t=>{if(!y.current)return;let n;try{n=JSON.parse(t.data)}catch{n=t.data}const o={type:e,data:n,timestamp:Date.now(),...t.lastEventId?{id:t.lastEventId}:{}};d({type:o.type,data:o.data,id:o.id}),w(e=>{const t=[...e,o];return t.length>200?t.slice(t.length-200):t}),g(e=>e+1)};for(const t of n)e.addEventListener(t,s(t))},[t,o,r,c,j]),C=O(()=>{S.current=!0,j(),h.current&&(h.current.close(),h.current=null),y.current&&u("closed")},[j]);return A(()=>(y.current=!0,M(),()=>{y.current=!1,S.current=!0,j(),h.current&&(h.current.close(),h.current=null)}),[]),{status:l,lastEvent:a,events:f,connect:M,disconnect:C,eventCount:p}}function z(e){const{queryFn:t,initialCursor:n=null,enabled:o=!0,dedupKey:r}=e,[c,s]=I([]),[i,l]=I("idle"),[u,a]=I(null),[d,f]=I(!1),[w,p]=I(0),g=D(n??null),h=D(!1),m=D(!0),y=D(void 0),S=D(t);S.current=t;const v=O(async(e,t,n)=>{if(h.current)return;if(void 0!==r&&r===y.current)return;h.current=!0;let o=!1;m.current&&(l(n?"loading":"fetching-more"),a(null));try{const c=await S.current(e,t);if(o||!m.current)return;void 0!==r&&(y.current=r),g.current=c.nextCursor,s(e=>n?[c.data]:[...e,c.data]),f(c.hasMore),p(t),l("success")}catch(c){if(o||!m.current)return;a(c instanceof Error?c:new Error(String(c))),l("error")}finally{o||(h.current=!1)}return()=>{o=!0}},[r]),b=O(()=>{d&&!h.current&&v(g.current,w+1,!1)},[d,w,v]),j=O(()=>{h.current=!1,y.current=void 0,g.current=n??null,s([]),l("idle"),a(null),f(!1),p(0)},[n]);A(()=>(m.current=!0,o&&v(n??null,0,!0),()=>{m.current=!1}),[o]);const M=c.flat();return{data:M,pages:c,status:i,error:u,hasMore:d,isFetchingMore:"fetching-more"===i,fetchMore:b,reset:j,pageIndex:w,totalLoaded:M.length}}export{c as contrastRatio,t as cssVar,p as cx,a as extractAtomicCSS,o as extractCSS,e as injectStyles,s as meetsAA,r as meetsAAA,f as resetAtomicCSS,n as resetStyles,l as sanitizeProps,i as sanitizeString,d as tkxListPlugins,w as tkxPlugin,u as tkxRemovePlugin,v as useAnnounce,m as useClickOutside,x as useControllable,T as useDebounce,M as useDisclosure,S as useEscapeKey,h as useFocusTrap,E as useFormState,g as useHighContrast,z as useInfiniteQuery,V as useIntersectionObserver,F as useListSelection,N as useLocalStorage,J as useMediaQuery,y as useReducedMotion,C as useRovingTabIndex,W as useSSE,k as useThrottle,b as useTkxForm,q as useWebSocket};
1
+ import{A as s,D as a,M as o,O as r,S as m,g as t,x as n}from"./chunk-DdHSYetV.js";import{E as c,T as i,c as p,n as f,o as u,r as h,s as j,t as k}from"./chunk-DcVMayoM.js";import{a as g,i as x,n as d,o as e,r as l,t as A}from"./chunk-BHX35YDv.js";import{a as D,c as E,d as M,f as O,g as S,i as T,l as b,n as q,o as v,p as w,r as y,s as z,t as B,u as C}from"./chunk-DTO-RrPx.js";export{t as contrastRatio,a as cssVar,k as cx,f as extractAtomicCSS,r as extractCSS,s as injectStyles,n as meetsAA,m as meetsAAA,h as resetAtomicCSS,o as resetStyles,i as sanitizeProps,c as sanitizeString,u as tkxListPlugins,j as tkxPlugin,p as tkxRemovePlugin,A as useAnnounce,d as useClickOutside,z as useControllable,b as useDebounce,w as useDisclosure,l as useEscapeKey,x as useFocusTrap,M as useFormState,g as useHighContrast,B as useInfiniteQuery,T as useIntersectionObserver,C as useListSelection,D as useLocalStorage,v as useMediaQuery,e as useReducedMotion,O as useRovingTabIndex,q as useSSE,E as useThrottle,S as useTkxForm,y as useWebSocket};