@react-hive/honey-utils 4.2.0 → 5.0.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.
Files changed (55) hide show
  1. package/README.md +56 -12
  2. package/dist/README.md +56 -12
  3. package/dist/a11y/focus/is-html-element-focusable.d.ts +8 -6
  4. package/dist/a11y/focus/move-focus-within-container.d.ts +1 -1
  5. package/dist/array/chunk.d.ts +4 -1
  6. package/dist/array/compose.d.ts +7 -3
  7. package/dist/array/get-adjacent-items.d.ts +1 -1
  8. package/dist/array/index.d.ts +1 -0
  9. package/dist/array/intersection.d.ts +2 -1
  10. package/dist/array/is-array.d.ts +6 -0
  11. package/dist/array/is-empty-array.d.ts +7 -0
  12. package/dist/array/pipe.d.ts +5 -2
  13. package/dist/array/to-map-by.d.ts +48 -0
  14. package/dist/async/async.d.ts +10 -1
  15. package/dist/async/retry.d.ts +4 -3
  16. package/dist/dom/data-transfer.d.ts +22 -4
  17. package/dist/dom/dom.d.ts +7 -5
  18. package/dist/dom/transform/parse-2d-matrix.d.ts +5 -0
  19. package/dist/encoding/decode-base64-json.d.ts +22 -1
  20. package/dist/encoding/decode-base64.d.ts +23 -1
  21. package/dist/encoding/encode-base64-json.d.ts +16 -0
  22. package/dist/encoding/encode-base64.d.ts +20 -0
  23. package/dist/env/storage/index.d.ts +1 -0
  24. package/dist/env/storage/local-storage-json.d.ts +29 -0
  25. package/dist/env/storage/local-storage.d.ts +1 -6
  26. package/dist/file.d.ts +3 -2
  27. package/dist/function/function.d.ts +12 -0
  28. package/dist/geometry/apply-inertia-step.d.ts +1 -1
  29. package/dist/geometry/layout/calculate-center-offset.d.ts +11 -1
  30. package/dist/geometry/layout/clamp-offset-to-overflow.d.ts +6 -0
  31. package/dist/geometry/resolve-bounded-delta.d.ts +1 -1
  32. package/dist/guards.d.ts +24 -3
  33. package/dist/index.cjs +1 -1
  34. package/dist/index.cjs.map +1 -1
  35. package/dist/index.dev.cjs +474 -100
  36. package/dist/index.dev.cjs.map +1 -1
  37. package/dist/index.mjs +1 -1
  38. package/dist/index.mjs.map +1 -1
  39. package/dist/intersection/get-dom-rect-intersection-ratio.d.ts +8 -1
  40. package/dist/intersection/resolve-axis-delta.d.ts +7 -0
  41. package/dist/json/parse-json.d.ts +22 -1
  42. package/dist/math/hash-string.d.ts +1 -1
  43. package/dist/math/math.d.ts +17 -1
  44. package/dist/object.d.ts +7 -1
  45. package/dist/string/for-each-char.d.ts +1 -1
  46. package/dist/string/is-nil-or-empty-string.d.ts +1 -1
  47. package/dist/string/parse-file-name.d.ts +1 -1
  48. package/dist/tree/flatten-tree.d.ts +2 -2
  49. package/dist/tree/get-tree-children.d.ts +2 -2
  50. package/dist/tree/search-tree.d.ts +2 -2
  51. package/dist/tree/tree.types.d.ts +1 -1
  52. package/package.json +8 -7
  53. package/dist/geometry/apply-inertia-step.spec.d.ts +0 -1
  54. package/dist/geometry/resolve-bounded-delta.spec.d.ts +0 -1
  55. package/dist/id/generate-ephemeral-id.spec.d.ts +0 -1
package/dist/index.mjs CHANGED
@@ -1,2 +1,2 @@
1
- const e=e=>new Blob([e],{type:e.type}),t=e=>new DOMRect(e.offsetLeft,e.offsetTop,e.clientWidth,e.clientHeight),n=e=>"A"===e.tagName,r=e=>"true"===e.getAttribute("contenteditable"),a=["INPUT","SELECT","TEXTAREA","BUTTON","A"],l=e=>{if(!e)return!1;const t=window.getComputedStyle(e);if("hidden"===t.visibility||"none"===t.display)return!1;if("disabled"in e&&e.disabled)return!1;const l=e.getAttribute("tabindex");return"-1"!==l&&(a.includes(e.tagName)?!n(e)||""!==e.href:!!r(e)||null!==l)},o=e=>Array.from(e.querySelectorAll("*")).filter(l),i=(e,t=null,{wrap:n=!0,getNextIndex:r}={})=>{const a=document.activeElement,l=t??a?.parentElement;if(!a||!l)return;const i=o(l);if(0===i.length)return;const s=i.indexOf(a);if(-1===s)return;let c;r?c=r(s,e,i):"next"===e?(c=s+1,c>=i.length&&(c=n?0:null)):(c=s-1,c<0&&(c=n?i.length-1:null)),null!==c&&i[c]?.focus()},s=(...e)=>t=>e.reduce((e,t)=>t(e),t),c=(...e)=>t=>e.reduceRight((e,t)=>t(e),t),u=(e,t)=>e.filter(e=>!t.includes(e)),f=e=>[...new Set(e)],h=(...e)=>{if(0===e.length)return[];if(1===e.length)return[...e[0]];const[t,...n]=e;return f(t).filter(e=>n.every(t=>t.includes(e)))};function d(e,t){if(!e)throw new Error(t)}const m=e=>null===e,p=e=>null==e,y=e=>null!=e,g=e=>void 0===e,w=e=>"number"==typeof e,b=e=>"boolean"==typeof e,x=e=>"object"==typeof e,A=e=>x(e)&&!m(e)&&0===Object.keys(e).length,S=e=>e instanceof Date,M=e=>e instanceof Blob,v=e=>e instanceof Error,I=e=>S(e)&&!isNaN(e.getTime()),C=e=>e instanceof RegExp,O=e=>e instanceof Map,$=e=>e instanceof Set,E=e=>"symbol"==typeof e,k=e=>w(e)&&isFinite(e),L=e=>w(e)&&Number.isInteger(e),T=e=>k(e)&&!Number.isInteger(e),P=(e,t)=>Object.values(e).includes(t),B=(e,t)=>(d(t>0,"Chunk size must be greater than 0"),Array.from({length:Math.ceil(e.length/t)},(n,r)=>e.slice(r*t,(r+1)*t))),X=e=>e.filter(Boolean),_=e=>Array.isArray(e),N=e=>_(e)&&0===e.length,z=(e,t,n)=>{if(!e?.length||!t)return{previousItem:null,currentItem:null,nextItem:null};const r=e.findIndex(e=>n(e,t));return-1===r?{previousItem:null,currentItem:null,nextItem:null}:{previousItem:r>0?e[r-1]:null,currentItem:e[r],nextItem:r<e.length-1?e[r+1]:null}},U=(e,t,n)=>{const r=e.includes(t);return r===(n??!r)?e:r?u(e,[t]):[...e,t]},Y=()=>{},j=e=>"function"==typeof e,F=e=>(...t)=>!e(...t),R=e=>{let t,n=!1;return function(...r){return n||(n=!0,t=e.apply(this,r)),t}},D=e=>j(e?.then),W=async(e,t)=>{const n=[];for(let r=0;r<e.length;r++)n.push(await t(e[r],r,e));return n},H=async(e,t)=>Promise.all(e.map(t)),Z=async(e,t)=>{const n=[];for(let r=0;r<e.length;r++){const a=e[r];await t(a,r,e)&&n.push(a)}return n},J=async(e,t)=>{const n=await H(e,async(e,n,r)=>!!await t(e,n,r)&&e);return X(n)},V=async(e,t)=>{for(let n=0;n<e.length;n++)if(await t(e[n],n,e))return!0;return!1},G=async(e,t)=>{for(let n=0;n<e.length;n++)if(!await t(e[n],n,e))return!1;return!0},q=async(e,t,n)=>{let r=n;for(let n=0;n<e.length;n++)r=await t(r,e[n],n,e);return r},K=async(e,t)=>{for(let n=0;n<e.length;n++)if(await t(e[n],n,e))return e[n];return null},Q=e=>new Promise(t=>setTimeout(t,e)),ee=async(e,t,n="Operation timed out")=>{try{return await Promise.race([e,Q(t).then(()=>Promise.reject(new Error(n)))])}finally{}},te=(e,{maxAttempts:t=3,delayMs:n=300,backoff:r=!0,onRetry:a}={})=>async(...l)=>{let o;for(let i=1;i<=t;i++)try{return await e(...l)}catch(e){if(o=e,i<t){a?.(i,e);const t=r?n*2**(i-1):n;await Q(t)}}throw o},ne=e=>{try{return JSON.parse(e)}catch{return null}},re="application/json",ae=(e,t)=>{e.setData(re,JSON.stringify(t))},le=e=>{const t=e.getData(re);return t?ne(t):null},oe=e=>"string"==typeof e,ie=(e,{fileName:t,target:n}={})=>{if(g(document))return;const r=document.createElement("a");let a=null;try{const l=oe(e)?e:a=URL.createObjectURL(e);r.href=l,t&&(r.download=t),n&&(r.target=n),document.body.appendChild(r),r.click()}finally{r.remove(),a&&setTimeout(()=>{d(a,"Object URL should not be null"),URL.revokeObjectURL(a)},0)}},se=e=>{const t=e.toString();window.history.replaceState(window.history.state,"",`${window.location.pathname}${t?`?${t}`:""}${window.location.hash}`)},ce=e=>e.scrollWidth>e.clientWidth,ue=e=>Math.max(0,e.scrollWidth-e.clientWidth),fe=e=>e.scrollHeight>e.clientHeight,he=e=>Math.max(0,e.scrollHeight-e.clientHeight),de=({containerSize:e,elementOffset:t,elementSize:n})=>-(t+n/2-e/2),me=(e,t)=>t<=0?0:Math.max(-t,Math.min(e,0)),pe=(e,t,{axis:n="both",shouldClamp:r=!0}={})=>{let a=0,l=0;if("x"===n||"both"===n){const n=de({containerSize:e.clientWidth,elementOffset:t.offsetLeft,elementSize:t.clientWidth});a=r?me(n,ue(e)):n}if("y"===n||"both"===n){const n=de({containerSize:e.clientHeight,elementOffset:t.offsetTop,elementSize:t.clientHeight});l=r?me(n,he(e)):n}e.style.transform=`translate(${a}px, ${l}px)`},ye=e=>{const t=window.getComputedStyle(e).getPropertyValue("transform").match(/^matrix\((.+)\)$/);if(!t)return{translateX:0,translateY:0,scaleX:1,scaleY:1,skewX:0,skewY:0};const[n,r,a,l,o,i]=t[1].split(", ").map(parseFloat);return{translateX:o,translateY:i,scaleX:n,scaleY:l,skewX:a,skewY:r}},ge=()=>{if("undefined"==typeof window||!window.localStorage)return!1;try{return window.localStorage.getItem("__non_existing_key__"),!0}catch{return!1}},we=()=>{if(!ge())return{readable:!1,writable:!1};try{const e="__test_write__";return window.localStorage.setItem(e,"1"),window.localStorage.removeItem(e),{readable:!0,writable:!0}}catch{}return{readable:!0,writable:!1}},be=e=>e instanceof File,xe=e=>{if(!e)return[];const t=[];for(let n=0;n<e.length;n++)t.push(e[n]);return t},Ae=(e,t)=>new File([e],t,{type:e.type}),Se=async(e,{skipFiles:t=[".DS_Store","Thumbs.db","desktop.ini","ehthumbs.db",".Spotlight-V100",".Trashes",".fseventsd","__MACOSX"]}={})=>{const n=new Set(t),r=await(async e=>{const t=e.createReader(),n=async()=>new Promise((e,r)=>{t.readEntries(async t=>{if(t.length)try{const r=await n();e([...t,...r])}catch(e){r(e)}else e([])},r)});return n()})(e);return(await H(r,async e=>e.isDirectory?Se(e,{skipFiles:t}):n.has(e.name)?[]:[await new Promise((t,n)=>{e.file(t,n)})])).flat()},Me=async(e,t={})=>{const n=e?.items;if(!n)return[];const r=[];for(let e=0;e<n.length;e++){const a=n[e];if("webkitGetAsEntry"in a){const e=a.webkitGetAsEntry?.();if(e?.isDirectory){r.push(Se(e,t));continue}if(e?.isFile){r.push(new Promise((t,n)=>e.file(e=>t([e]),n)));continue}}const l=a.getAsFile();l&&r.push(Promise.resolve([l]))}return(await Promise.all(r)).flat()},ve=(e,...t)=>"function"==typeof e?e(...t):e,Ie=({delta:e,value:t,min:n,max:r})=>{if(0===e)return null;const a=t+e;return e<0?t<=n?null:Math.max(a,n):e>0?t>=r?null:Math.min(a,r):null},Ce=({value:e,min:t,max:n,velocityPxMs:r,deltaTimeMs:a,friction:l=.002,minVelocityPxMs:o=.01,emaAlpha:i=.2})=>{if(Math.abs(r)<o)return null;const s=Ie({delta:r*a,value:e,min:t,max:n});if(null===s)return null;const c=r*Math.exp(-l*a),u=i>0?r*(1-i)+c*i:c;return Math.abs(u)<o?null:{value:s,velocityPxMs:u}},Oe=()=>`${Math.floor(1e3*performance.now()).toString(36)}${Math.random().toString(36).slice(2,10)}`,$e=(e,t)=>Math.max(0,Math.min(e.right,t.right)-Math.max(e.left,t.left))*Math.max(0,Math.min(e.bottom,t.bottom)-Math.max(e.top,t.top))/(t.width*t.height),Ee=(e,t,{allowFallback:n=!0,invert:r=!0}={})=>{const a=r?-1:1;switch(t){case"x":return{deltaX:a*(0!==e.deltaX?e.deltaX:n?e.deltaY:0),deltaY:0};case"y":return{deltaX:0,deltaY:a*e.deltaY};default:return{deltaX:a*e.deltaX,deltaY:a*e.deltaY}}},ke=(e,t,n,r)=>{const a=n-e,l=r-t;return Math.hypot(a,l)},Le=(e,t)=>Math.abs(e/t),Te=(e,t)=>e*t/100,Pe=e=>{let t=5381;for(let n=0;n<e.length;n++)t=33*t^e.charCodeAt(n);return(t>>>0).toString(36)},Be=(e,t,n)=>Math.min(Math.max(e,t),n),Xe=e=>Object.entries(e).reduce((e,[t,n])=>(void 0!==n&&(e[t]=n),e),{}),_e=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),Ne=e=>{const t=e.charAt(0),n=e.slice(1);return t.toLowerCase()+n.replace(/[A-Z]/g,e=>`-${e.toLowerCase()}`)},ze=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1 $2"),Ue=e=>0===e.length?[]:e.split(" ").filter(Boolean),Ye=e=>""===e||p(e),je=e=>{const t=e.lastIndexOf(".");return t<=0||t===e.length-1?[e,""]:[e.slice(0,t),e.slice(t+1).toLowerCase()]},Fe=(e,t)=>{if(0===e.length)return[];const n=t.charCodeAt(0),r=[];for(let t=0;t<e.length;t++)e.charCodeAt(t)===n&&r.push(t);return r},Re=(e,t,n)=>{if(0===e.length)return;const r=e.length;for(let a=0;a<r;a++){const l=e[a],o={charIndex:a,prevChar:a>0?e[a-1]:null,nextChar:a<r-1?e[a+1]:null};n?.(l,o)||t(l,o)}},De=(e,t=1/0)=>0===e.length?"":Ue(e).slice(0,t).map(e=>e[0]).join("").toUpperCase(),We=(e,t,n,r=t)=>e.split(t).map((e,t)=>n(e.trim(),t)).join(r),He=(e,t,n,r=[],a=void 0,l=0)=>(e?.forEach(e=>{const{[n]:o,...i}=e,s=e[n],c=Array.isArray(s);if(r.push({...i,parentId:a,depthLevel:l,childCount:c?s.length:0}),c){const a=e[t];He(s,t,n,r,a,l+1)}}),r),Ze=(e,t,n)=>e.filter(e=>e.parentId===t&&(!n||n(e))),Je=(e,t,n,r)=>{const a=Ue(r.toLowerCase());if(!a.length)return e;const l=e.reduce((e,n,r)=>(e[n[t]]=r,e),{});return e.reduce((r,o)=>{const i=o[n];if(!i)return r;if(r.some(e=>e[t]===o[t]))return r;const s=Ue(i.toLowerCase());if(a.every(e=>s.some(t=>t.startsWith(e))))if(g(o.parentId)){r.push(o);const n=a=>{a.childCount&&e.forEach(e=>{e.parentId===a[t]&&(r.push(e),n(e))})};n(o)}else{const t=n=>{const a=l[n.parentId],o=e[a];g(o.parentId)||t(o);const i=r.length?r[r.length-1].parentId:null;(m(i)||i!==n.parentId)&&(d(o,"[@react-hive/honey-utils]: Parent node was not found."),r.push(o))};t(o),r.push(o)}return r},[])},Ve=(e,t)=>{d(t>=0&&t<=1,`[@react-hive/honey-utils]: Alpha "${t}" must be a number between 0 and 1.`);const n=e.match(/^#?([0-9A-Fa-f]{3}|[0-9A-Fa-f]{6})$/);d(n,`[@react-hive/honey-utils]: Invalid hex format: ${e}`);const r=n[1];return`#${(3===r.length?r[0]+r[0]+r[1]+r[1]+r[2]+r[2]:r)+Math.round(255*t).toString(16).toUpperCase().padStart(2,"0")}`},Ge=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/,qe=e=>{if(!Ge.test(e))return null;try{return new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0}).decode((e=>{if("function"==typeof Uint8Array.fromBase64)return Uint8Array.fromBase64(e);if("undefined"!=typeof Buffer)return Buffer.from(e,"base64");const t=atob(e),n=new Uint8Array(t.length);for(let e=0;e<t.length;e++)n[e]=t.charCodeAt(e);return n})(e))}catch{return null}},Ke=e=>{const t=qe(e);return null===t?null:ne(t)},Qe=e=>(e=>{if("function"==typeof e.toBase64)return e.toBase64();if("undefined"!=typeof Buffer)return Buffer.from(e.buffer,e.byteOffset,e.byteLength).toString("base64");let t="";for(let n=0;n<e.length;n++)t+=String.fromCharCode(e[n]);return btoa(t)})((new TextEncoder).encode(e)),et=e=>Qe(JSON.stringify(e));export{re as DATA_TRANSFER_JSON_MIME,a as FOCUSABLE_HTML_TAGS,Ce as applyInertiaStep,d as assert,Ae as blobToFile,de as calculateCenterOffset,ke as calculateEuclideanDistance,Le as calculateMovingSpeed,Te as calculatePercentage,Ne as camelToDashCase,ze as camelToWords,pe as centerElementInContainer,B as chunk,Be as clamp,me as clampOffsetToOverflow,e as cloneBlob,X as compact,c as compose,qe as decodeBase64,Ke as decodeBase64Json,Xe as definedProps,Q as delay,u as difference,ie as downloadFile,Qe as encodeBase64,et as encodeBase64Json,G as everyAsync,xe as fileListToFiles,J as filterParallel,Z as filterSequential,K as findAsync,Fe as findCharIndices,He as flattenTree,Re as forEachChar,Oe as generateEphemeralId,z as getAdjacentItems,$e as getDOMRectIntersectionRatio,le as getDataTransferJson,t as getElementOffsetRect,o as getFocusableHtmlElements,we as getLocalStorageCapabilities,Ze as getTreeChildren,De as getWordsInitials,ue as getXOverflowWidth,he as getYOverflowHeight,ce as hasXOverflow,fe as hasYOverflow,Pe as hashString,Ve as hexWithAlpha,h as intersection,ve as invokeIfFunction,n as isAnchorHtmlElement,_ as isArray,M as isBlob,b as isBool,r as isContentEditableHtmlElement,S as isDate,T as isDecimal,y as isDefined,N as isEmptyArray,A as isEmptyObject,P as isEnumValue,v as isError,be as isFile,k as isFiniteNumber,j as isFunction,l as isHtmlElementFocusable,L as isInteger,ge as isLocalStorageReadable,O as isMap,p as isNil,Ye as isNilOrEmptyString,m as isNull,w as isNumber,x as isObject,D as isPromise,C as isRegExp,$ as isSet,oe as isString,E as isSymbol,g as isUndefined,I as isValidDate,i as moveFocusWithinContainer,Y as noop,F as not,R as once,ye as parse2DMatrix,je as parseFileName,ne as parseJson,s as pipe,Me as readFilesFromDataTransfer,q as reduceAsync,se as replaceHistorySearchParams,Ee as resolveAxisDelta,Ie as resolveBoundedDelta,te as retry,H as runParallel,W as runSequential,Je as searchTree,ae as setDataTransferJson,V as someAsync,We as splitMapJoin,Ue as splitStringIntoWords,ee as timeout,_e as toKebabCase,U as toggleArrayItem,Se as traverseFileSystemDirectory,f as unique};
1
+ const t=t=>new Blob([t],{type:t.type}),e=t=>new DOMRect(t.offsetLeft,t.offsetTop,t.clientWidth,t.clientHeight),n=t=>"A"===t.tagName,r=t=>{const e=t.getAttribute("contenteditable");return null!==e&&["","true","plaintext-only"].includes(e.toLowerCase())},l=["INPUT","SELECT","TEXTAREA","BUTTON","A"],a=t=>{if(!t)return!1;if("hidden"===window.getComputedStyle(t).visibility)return!1;for(let e=t;e;e=e.parentElement)if("none"===window.getComputedStyle(e).display)return!1;if(t.matches(":disabled"))return!1;const e=(t=>{const e=null===t?null:/^\s*([+-]?\d+)/.exec(t);return e?parseInt(e[1],10):null})(t.getAttribute("tabindex"));return null!==e?e>=0:l.includes(t.tagName)?!n(t)||""!==t.href:r(t)},o=t=>Array.from(t.querySelectorAll("*")).filter(a),i=(t,e=null,{wrap:n=!0,getNextIndex:r}={})=>{const l=document.activeElement,a=e??l?.parentElement;if(!l||!a)return;const i=o(a);if(0===i.length)return;const s=i.indexOf(l);if(-1===s)return;let u;r?u=r(s,t,i):"next"===t?(u=s+1,u>=i.length&&(u=n?0:null)):(u=s-1,u<0&&(u=n?i.length-1:null)),null!==u&&i[u]?.focus()},s=(...t)=>e=>t.reduce((t,e)=>e(t),e),u=(...t)=>e=>t.reduceRight((t,e)=>e(t),e),c=(t,e)=>t.filter(t=>!e.includes(t)),f=t=>[...new Set(t)],h=(...t)=>{if(0===t.length)return[];const[e,...n]=t;return f(e).filter(t=>n.every(e=>e.includes(t)))};function d(t,e){if(!t)throw new Error(e)}const m=t=>null===t,p=t=>null==t,y=t=>null!=t,g=t=>void 0===t,w=t=>"number"==typeof t,b=t=>"boolean"==typeof t,x=t=>"object"==typeof t&&null!==t,S=t=>x(t)&&Reflect.ownKeys(t).every(e=>!Object.prototype.propertyIsEnumerable.call(t,e)),A=t=>t instanceof Date,I=t=>t instanceof Blob,M=t=>t instanceof Error,v=t=>A(t)&&!isNaN(t.getTime()),C=t=>t instanceof RegExp,L=t=>t instanceof Map,E=t=>t instanceof Set,O=t=>"symbol"==typeof t,$=t=>w(t)&&isFinite(t),T=t=>w(t)&&Number.isInteger(t),N=t=>$(t)&&!Number.isInteger(t),P=(t,e)=>Object.values(t).includes(e),k=(t,e)=>(d(Number.isInteger(e)&&e>0,"Chunk size must be a positive whole number"),Array.from({length:Math.ceil(t.length/e)},(n,r)=>t.slice(r*e,(r+1)*e))),B=t=>t.filter(Boolean),X=t=>Array.isArray(t),_=t=>X(t)&&0===t.length,R=(t,e,n)=>{if(!t?.length||!e)return{previousItem:null,currentItem:null,nextItem:null};const r=t.findIndex(t=>n(t,e));return-1===r?{previousItem:null,currentItem:null,nextItem:null}:{previousItem:r>0?t[r-1]:null,currentItem:t[r],nextItem:r<t.length-1?t[r+1]:null}},U=(t,e,n)=>{const r=t.includes(e);return r===(n??!r)?t:r?c(t,[e]):[...t,e]};function Y(t,e,n){const r=new Map;return t.forEach((t,l)=>{r.set(e(t,l),n?n(t,l):t)}),r}const F=()=>{},j=t=>"function"==typeof t,z=t=>(...e)=>!t(...e),D=t=>{let e,n,r=!1,l=!1;return function(...a){if(!r){r=!0;try{e=t.apply(this,a)}catch(t){l=!0,n=t}}if(l)throw n;return e}},W=t=>j(t?.then),H=async(t,e)=>{const n=[];for(let r=0;r<t.length;r++)n.push(await e(t[r],r,t));return n},J=async(t,e)=>Promise.all(t.map(e)),V=async(t,e)=>{const n=[];for(let r=0;r<t.length;r++){const l=t[r];await e(l,r,t)&&n.push(l)}return n},Z=async(t,e)=>{const n=await J(t,e);return t.filter((t,e)=>n[e])},G=async(t,e)=>{for(let n=0;n<t.length;n++)if(await e(t[n],n,t))return!0;return!1},K=async(t,e)=>{for(let n=0;n<t.length;n++)if(!await e(t[n],n,t))return!1;return!0},q=async(t,e,n)=>{let r=n;for(let n=0;n<t.length;n++)r=await e(r,t[n],n,t);return r},Q=async(t,e)=>{for(let n=0;n<t.length;n++)if(await e(t[n],n,t))return t[n];return null},tt=t=>new Promise(e=>setTimeout(e,t)),et=async(t,e,n="Operation timed out")=>{let r=null;try{return await Promise.race([t,new Promise((t,l)=>{r=setTimeout(()=>l(new Error(n)),e)})])}finally{null!==r&&clearTimeout(r)}},nt=(t,{maxAttempts:e=3,delayMs:n=300,backoff:r=!0,onRetry:l}={})=>{const a=Math.max(1,e);return async(...e)=>{let o;for(let i=1;i<=a;i++)try{return await t(...e)}catch(t){if(o=t,i<a){l?.(i,t);const e=r?n*2**(i-1):n;await tt(e)}}throw o}},rt=t=>{try{return JSON.parse(t)}catch{return null}},lt="application/json",at=(t,e)=>{t.setData(lt,JSON.stringify(e))},ot=t=>{const e=t.getData(lt);return e?rt(e):null},it=t=>"string"==typeof t,st=(t,{fileName:e,target:n}={})=>{if("undefined"==typeof document)return;const r=document.createElement("a");let l=null;try{const a=it(t)?t:l=URL.createObjectURL(t);r.href=a,e&&(r.download=e),n&&(r.target=n),document.body.appendChild(r),r.click()}finally{r.remove(),l&&setTimeout(()=>{d(l,"Object URL should not be null"),URL.revokeObjectURL(l)},0)}},ut=t=>{const e=t.toString();window.history.replaceState(window.history.state,"",`${window.location.pathname}${e?`?${e}`:""}${window.location.hash}`)},ct=t=>t.scrollWidth>t.clientWidth,ft=t=>Math.max(0,t.scrollWidth-t.clientWidth),ht=t=>t.scrollHeight>t.clientHeight,dt=t=>Math.max(0,t.scrollHeight-t.clientHeight),mt=({containerSize:t,elementOffset:e,elementSize:n})=>-(e+n/2-t/2)||0,pt=(t,e)=>e<=0?0:Math.max(-e,Math.min(t,0)),yt=(t,e,{axis:n="both",shouldClamp:r=!0}={})=>{let l=0,a=0;if("x"===n||"both"===n){const n=mt({containerSize:t.clientWidth,elementOffset:e.offsetLeft,elementSize:e.clientWidth});l=r?pt(n,ft(t)):n}if("y"===n||"both"===n){const n=mt({containerSize:t.clientHeight,elementOffset:e.offsetTop,elementSize:e.clientHeight});a=r?pt(n,dt(t)):n}t.style.transform=`translate(${l}px, ${a}px)`},gt=t=>{const e=window.getComputedStyle(t).getPropertyValue("transform").match(/^matrix\((.+)\)$/);if(!e)return{translateX:0,translateY:0,scaleX:1,scaleY:1,skewX:0,skewY:0};const[n,r,l,a,o,i]=e[1].split(", ").map(parseFloat);return{translateX:o,translateY:i,scaleX:n,scaleY:a,skewX:l,skewY:r}},wt=()=>{if("undefined"==typeof window)return!1;try{return!!window.localStorage&&(window.localStorage.getItem("__non_existing_key__"),!0)}catch{return!1}},bt=()=>{if(!wt())return{readable:!1,writable:!1};try{const t="__test_write__";return window.localStorage.setItem(t,"1"),window.localStorage.removeItem(t),{readable:!0,writable:!0}}catch{}return{readable:!0,writable:!1}},xt=t=>{try{const e=window.localStorage.getItem(t);return null===e?null:rt(e)}catch{return null}},St=(t,e)=>{try{return window.localStorage.setItem(t,JSON.stringify(e)),!0}catch{return!1}},At=t=>t instanceof File,It=t=>{if(!t)return[];const e=[];for(let n=0;n<t.length;n++)e.push(t[n]);return e},Mt=(t,e)=>new File([t],e,{type:t.type}),vt=async(t,{skipFiles:e=[".DS_Store","Thumbs.db","desktop.ini","ehthumbs.db",".Spotlight-V100",".Trashes",".fseventsd","__MACOSX"]}={})=>{const n=new Set(e),r=await(async t=>{const e=t.createReader(),n=async()=>new Promise((t,r)=>{e.readEntries(async e=>{if(e.length)try{const r=await n();t([...e,...r])}catch(t){r(t)}else t([])},r)});return n()})(t);return(await J(r,async t=>n.has(t.name)?[]:t.isDirectory?vt(t,{skipFiles:e}):[await new Promise((e,n)=>{t.file(e,n)})])).flat()},Ct=async(t,e={})=>{const n=t?.items;if(!n)return[];const r=[];for(let t=0;t<n.length;t++){const l=n[t];if("webkitGetAsEntry"in l){const t=l.webkitGetAsEntry?.();if(t?.isDirectory){r.push(vt(t,e));continue}if(t?.isFile){r.push(new Promise((e,n)=>t.file(t=>e([t]),n)));continue}}const a=l.getAsFile();a&&r.push(Promise.resolve([a]))}return(await Promise.all(r)).flat()},Lt=(t,...e)=>"function"==typeof t?t(...e):t,Et=({delta:t,value:e,min:n,max:r})=>{if(0===t)return null;const l=e+t;return t<0?e<=n?null:Math.max(l,n):t>0?e>=r?null:Math.min(l,r):null},Ot=({value:t,min:e,max:n,velocityPxMs:r,deltaTimeMs:l,friction:a=.002,minVelocityPxMs:o=.01,emaAlpha:i=.2})=>{if(Math.abs(r)<o)return null;const s=Et({delta:r*l,value:t,min:e,max:n});if(null===s)return null;const u=r*Math.exp(-a*l),c=i>0?r*(1-i)+u*i:u;return Math.abs(c)<o?null:{value:s,velocityPxMs:c}},$t=()=>`${Math.floor(1e3*performance.now()).toString(36)}${Math.random().toString(36).slice(2,10)}`,Tt=(t,e)=>{const n=Math.max(0,Math.min(t.right,e.right)-Math.max(t.left,e.left))*Math.max(0,Math.min(t.bottom,e.bottom)-Math.max(t.top,e.top)),r=e.width*e.height;return r<=0?0:n/r},Nt=(t,e,{allowFallback:n=!0,invert:r=!0}={})=>{const l=r?-1:1,a=t=>l*t||0;switch(e){case"x":return{deltaX:a(0!==t.deltaX?t.deltaX:n?t.deltaY:0),deltaY:0};case"y":return{deltaX:0,deltaY:a(t.deltaY)};default:return{deltaX:a(t.deltaX),deltaY:a(t.deltaY)}}},Pt=(t,e,n,r)=>{const l=n-t,a=r-e;return Math.hypot(l,a)},kt=(t,e)=>Math.abs(t/e),Bt=(t,e)=>t*e/100,Xt=t=>{let e=5381;for(let n=0;n<t.length;n++)e=33*e^t.charCodeAt(n);return(e>>>0).toString(36)},_t=(t,e,n)=>Math.min(Math.max(t,e),n),Rt=t=>{const e={};return Reflect.ownKeys(t).forEach(n=>{if(!Object.prototype.propertyIsEnumerable.call(t,n))return;const r=t[n];void 0!==r&&(e[n]=r)}),e},Ut=t=>t.replace(/([\p{Ll}\p{N}])(\p{Lu})/gu,"$1-$2").toLowerCase(),Yt=t=>{const e=t.charAt(0),n=t.slice(1);return e.toLowerCase()+n.replace(/\p{Lu}/gu,t=>`-${t.toLowerCase()}`)},Ft=t=>t.replace(/([\p{Ll}\p{N}])(\p{Lu})/gu,"$1 $2").replace(/(\p{Lu})(\p{Lu}\p{Ll})/gu,"$1 $2"),jt=t=>0===t.length?[]:t.split(" ").filter(Boolean),zt=t=>""===t||p(t),Dt=t=>{const e=t.lastIndexOf(".");return e<=0||e===t.length-1?[t,""]:[t.slice(0,e),t.slice(e+1).toLowerCase()]},Wt=(t,e)=>{if(0===t.length)return[];const n=e.charCodeAt(0),r=[];for(let e=0;e<t.length;e++)t.charCodeAt(e)===n&&r.push(e);return r},Ht=(t,e,n)=>{if(0===t.length)return;const r=t.length;for(let l=0;l<r;l++){const a=t[l],o={charIndex:l,prevChar:l>0?t[l-1]:null,nextChar:l<r-1?t[l+1]:null};n?.(a,o)||e(a,o)}},Jt=(t,e=1/0)=>0===t.length?"":jt(t).slice(0,e).map(t=>String.fromCodePoint(t.codePointAt(0))).join("").toUpperCase(),Vt=(t,e,n,r=e)=>t.split(e).map((t,e)=>n(t.trim(),e)).join(r),Zt=(t,e,n,r=[],l=void 0,a=0)=>(t?.forEach(t=>{const{[n]:o,...i}=t,s=t[n],u=Array.isArray(s);if(r.push({...i,parentId:l,depthLevel:a,childCount:u?s.length:0}),u){const l=t[e];Zt(s,e,n,r,l,a+1)}}),r),Gt=(t,e,n)=>t.filter(t=>t.parentId===e&&(!n||n(t))),Kt=(t,e,n,r)=>{const l=jt(r.toLowerCase());if(!l.length)return t;const a=t.reduce((t,n,r)=>(t[n[e]]=r,t),{});return t.reduce((r,o)=>{const i=o[n];if(!i)return r;if(r.some(t=>t[e]===o[e]))return r;const s=jt(i.toLowerCase());if(l.every(t=>s.some(e=>e.startsWith(t))))if(g(o.parentId)){r.push(o);const n=l=>{l.childCount&&t.forEach(t=>{t.parentId===l[e]&&(r.push(t),n(t))})};n(o)}else{const e=n=>{const l=a[n.parentId],o=t[l];g(o.parentId)||e(o);const i=r.length?r[r.length-1].parentId:null;(m(i)||i!==n.parentId)&&(d(o,"[@react-hive/honey-utils]: Parent node was not found."),r.push(o))};e(o),r.push(o)}return r},[])},qt=(t,e)=>{d(e>=0&&e<=1,`[@react-hive/honey-utils]: Alpha "${e}" must be a number between 0 and 1.`);const n=t.match(/^#?([0-9A-Fa-f]{3}|[0-9A-Fa-f]{6})$/);d(n,`[@react-hive/honey-utils]: Invalid hex format: ${t}`);const r=n[1];return`#${(3===r.length?r[0]+r[0]+r[1]+r[1]+r[2]+r[2]:r)+Math.round(255*e).toString(16).toUpperCase().padStart(2,"0")}`},Qt=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/,te=t=>{if(!Qt.test(t))return null;try{return new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0}).decode((t=>{if("function"==typeof Uint8Array.fromBase64)return Uint8Array.fromBase64(t);if("undefined"!=typeof Buffer)return Buffer.from(t,"base64");const e=atob(t),n=new Uint8Array(e.length);for(let t=0;t<e.length;t++)n[t]=e.charCodeAt(t);return n})(t))}catch{return null}},ee=t=>{const e=te(t);return null===e?null:rt(e)},ne=t=>(t=>{if("function"==typeof t.toBase64)return t.toBase64();if("undefined"!=typeof Buffer)return Buffer.from(t.buffer,t.byteOffset,t.byteLength).toString("base64");let e="";for(let n=0;n<t.length;n++)e+=String.fromCharCode(t[n]);return btoa(e)})((new TextEncoder).encode(t)),re=t=>ne(JSON.stringify(t));export{lt as DATA_TRANSFER_JSON_MIME,l as FOCUSABLE_HTML_TAGS,Ot as applyInertiaStep,d as assert,Mt as blobToFile,mt as calculateCenterOffset,Pt as calculateEuclideanDistance,kt as calculateMovingSpeed,Bt as calculatePercentage,Yt as camelToDashCase,Ft as camelToWords,yt as centerElementInContainer,k as chunk,_t as clamp,pt as clampOffsetToOverflow,t as cloneBlob,B as compact,u as compose,te as decodeBase64,ee as decodeBase64Json,Rt as definedProps,tt as delay,c as difference,st as downloadFile,ne as encodeBase64,re as encodeBase64Json,K as everyAsync,It as fileListToFiles,Z as filterParallel,V as filterSequential,Q as findAsync,Wt as findCharIndices,Zt as flattenTree,Ht as forEachChar,$t as generateEphemeralId,R as getAdjacentItems,Tt as getDOMRectIntersectionRatio,ot as getDataTransferJson,e as getElementOffsetRect,o as getFocusableHtmlElements,bt as getLocalStorageCapabilities,Gt as getTreeChildren,Jt as getWordsInitials,ft as getXOverflowWidth,dt as getYOverflowHeight,ct as hasXOverflow,ht as hasYOverflow,Xt as hashString,qt as hexWithAlpha,h as intersection,Lt as invokeIfFunction,n as isAnchorHtmlElement,X as isArray,I as isBlob,b as isBool,r as isContentEditableHtmlElement,A as isDate,N as isDecimal,y as isDefined,_ as isEmptyArray,S as isEmptyObject,P as isEnumValue,M as isError,At as isFile,$ as isFiniteNumber,j as isFunction,a as isHtmlElementFocusable,T as isInteger,wt as isLocalStorageReadable,L as isMap,p as isNil,zt as isNilOrEmptyString,m as isNull,w as isNumber,x as isObject,W as isPromise,C as isRegExp,E as isSet,it as isString,O as isSymbol,g as isUndefined,v as isValidDate,i as moveFocusWithinContainer,F as noop,z as not,D as once,gt as parse2DMatrix,Dt as parseFileName,rt as parseJson,s as pipe,Ct as readFilesFromDataTransfer,xt as readLocalStorageJson,q as reduceAsync,ut as replaceHistorySearchParams,Nt as resolveAxisDelta,Et as resolveBoundedDelta,nt as retry,J as runParallel,H as runSequential,Kt as searchTree,at as setDataTransferJson,G as someAsync,Vt as splitMapJoin,jt as splitStringIntoWords,et as timeout,Ut as toKebabCase,Y as toMapBy,U as toggleArrayItem,vt as traverseFileSystemDirectory,f as unique,St as writeLocalStorageJson};
2
2
  //# sourceMappingURL=index.mjs.map