@react-hive/honey-layout 11.0.0 → 11.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.
@@ -7945,9 +7945,9 @@ __webpack_require__.r(__webpack_exports__);
7945
7945
  /* harmony export */ centerElementInContainer: () => (/* binding */ we),
7946
7946
  /* harmony export */ chunk: () => (/* binding */ O),
7947
7947
  /* harmony export */ cloneBlob: () => (/* binding */ oe),
7948
- /* harmony export */ compact: () => (/* binding */ v),
7948
+ /* harmony export */ compact: () => (/* binding */ A),
7949
7949
  /* harmony export */ compose: () => (/* binding */ E),
7950
- /* harmony export */ definedProps: () => (/* binding */ Ae),
7950
+ /* harmony export */ definedProps: () => (/* binding */ ve),
7951
7951
  /* harmony export */ delay: () => (/* binding */ H),
7952
7952
  /* harmony export */ difference: () => (/* binding */ C),
7953
7953
  /* harmony export */ downloadFile: () => (/* binding */ fe),
@@ -8007,7 +8007,7 @@ __webpack_require__.r(__webpack_exports__);
8007
8007
  /* harmony export */ parse2DMatrix: () => (/* binding */ pe),
8008
8008
  /* harmony export */ parseFileName: () => (/* binding */ K),
8009
8009
  /* harmony export */ pipe: () => (/* binding */ P),
8010
- /* harmony export */ readFilesFromDataTransfer: () => (/* binding */ ve),
8010
+ /* harmony export */ readFilesFromDataTransfer: () => (/* binding */ Ae),
8011
8011
  /* harmony export */ reduceAsync: () => (/* binding */ U),
8012
8012
  /* harmony export */ resolveAxisDelta: () => (/* binding */ Pe),
8013
8013
  /* harmony export */ resolveBoundedDelta: () => (/* binding */ Oe),
@@ -8019,9 +8019,9 @@ __webpack_require__.r(__webpack_exports__);
8019
8019
  /* harmony export */ timeout: () => (/* binding */ W),
8020
8020
  /* harmony export */ toKebabCase: () => (/* binding */ V),
8021
8021
  /* harmony export */ traverseFileSystemDirectory: () => (/* binding */ Se),
8022
- /* harmony export */ unique: () => (/* binding */ A)
8022
+ /* harmony export */ unique: () => (/* binding */ v)
8023
8023
  /* harmony export */ });
8024
- var e={};function t(e,t){if(!e)throw new Error(t)}e.d=(t,n)=>{for(var r in n)e.o(n,r)&&!e.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:n[r]})},e.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);const n=e=>null===e,r=e=>null==e,l=e=>null!=e,a=e=>void 0===e,i=e=>"number"==typeof e,o=e=>"boolean"==typeof e,s=e=>"object"==typeof e,c=e=>s(e)&&!n(e)&&0===Object.keys(e).length,u=e=>e instanceof Date,f=e=>e instanceof Blob,h=e=>e instanceof Error,d=e=>u(e)&&!isNaN(e.getTime()),m=e=>e instanceof RegExp,y=e=>e instanceof Map,g=e=>e instanceof Set,w=e=>"symbol"==typeof e,p=e=>i(e)&&isFinite(e),b=e=>i(e)&&Number.isInteger(e),x=e=>p(e)&&!Number.isInteger(e),M=e=>Array.isArray(e),S=e=>M(e)&&0===e.length,v=e=>e.filter(Boolean),A=e=>[...new Set(e)],O=(e,n)=>(t(n>0,"Chunk size must be greater than 0"),Array.from({length:Math.ceil(e.length/n)},(t,r)=>e.slice(r*n,(r+1)*n))),k=(...e)=>{if(0===e.length)return[];if(1===e.length)return[...e[0]];const[t,...n]=e;return A(t).filter(e=>n.every(t=>t.includes(e)))},C=(e,t)=>e.filter(e=>!t.includes(e)),P=(...e)=>t=>e.reduce((e,t)=>t(e),t),E=(...e)=>t=>e.reduceRight((e,t)=>t(e),t),T=()=>{},X=e=>"function"==typeof e,_=e=>(...t)=>!e(...t),z=e=>{let t,n=!1;return function(...r){return n||(n=!0,t=e.apply(this,r)),t}},L=e=>X(e?.then),Y=async(e,t)=>{const n=[];for(let r=0;r<e.length;r++)n.push(await t(e[r],r,e));return n},R=async(e,t)=>Promise.all(e.map(t)),j=async(e,t)=>{const n=[];for(let r=0;r<e.length;r++){const l=e[r];await t(l,r,e)&&n.push(l)}return n},N=async(e,t)=>{const n=await R(e,async(e,n,r)=>!!await t(e,n,r)&&e);return v(n)},F=async(e,t)=>{for(let n=0;n<e.length;n++)if(await t(e[n],n,e))return!0;return!1},I=async(e,t)=>{for(let n=0;n<e.length;n++)if(!await t(e[n],n,e))return!1;return!0},U=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},$=async(e,t)=>{for(let n=0;n<e.length;n++)if(await t(e[n],n,e))return e[n];return null},H=e=>new Promise(t=>setTimeout(t,e)),W=async(e,t,n="Operation timed out")=>{try{return await Promise.race([e,H(t).then(()=>Promise.reject(new Error(n)))])}finally{}},B=(e,{maxAttempts:t=3,delayMs:n=300,backoff:r=!0,onRetry:l}={})=>async(...a)=>{let i;for(let o=1;o<=t;o++)try{return await e(...a)}catch(e){if(i=e,o<t){l?.(o,e);const t=r?n*2**(o-1):n;await H(t)}}throw i},D=e=>"string"==typeof e,V=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),Z=e=>{const t=e.charAt(0),n=e.slice(1);return t.toLowerCase()+n.replace(/[A-Z]/g,e=>`-${e.toLowerCase()}`)},G=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1 $2"),q=e=>0===e.length?[]:e.split(" ").filter(Boolean),J=e=>""===e||r(e),K=e=>{const t=e.lastIndexOf(".");return t<=0||t===e.length-1?[e,""]:[e.slice(0,t),e.slice(t+1).toLowerCase()]},Q=(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},ee=(e,t,n)=>{if(0===e.length)return;const r=e.length;for(let l=0;l<r;l++){const a=e[l],i={charIndex:l,prevChar:l>0?e[l-1]:null,nextChar:l<r-1?e[l+1]:null};n?.(a,i)||t(a,i)}},te=(e,t=1/0)=>0===e.length?"":q(e).slice(0,t).map(e=>e[0]).join("").toUpperCase(),ne=(e,...t)=>"function"==typeof e?e(...t):e,re=(e,t,n,r)=>{const l=n-e,a=r-t;return Math.hypot(l,a)},le=(e,t)=>Math.abs(e/t),ae=(e,t)=>e*t/100,ie=e=>{let t=5381;for(let n=0;n<e.length;n++)t=33*t^e.charCodeAt(n);return(t>>>0).toString(36)},oe=e=>new Blob([e],{type:e.type}),se=e=>new DOMRect(e.offsetLeft,e.offsetTop,e.clientWidth,e.clientHeight),ce=e=>"A"===e.tagName,ue=e=>"true"===e.getAttribute("contenteditable"),fe=(e,{fileName:n,target:r}={})=>{if(a(document))return;const l=document.createElement("a");let i=null;try{const t=D(e)?e:i=URL.createObjectURL(e);l.href=t,n&&(l.download=n),r&&(l.target=r),document.body.appendChild(l),l.click()}finally{l.remove(),i&&setTimeout(()=>{t(i,"Object URL should not be null"),URL.revokeObjectURL(i)},0)}},he=e=>e.scrollWidth>e.clientWidth,de=e=>Math.max(0,e.scrollWidth-e.clientWidth),me=e=>e.scrollHeight>e.clientHeight,ye=e=>Math.max(0,e.scrollHeight-e.clientHeight),ge=({overflowSize:e,containerSize:t,elementOffset:n,elementSize:r})=>{if(e<=0)return 0;const l=n+r/2-t/2;return-Math.max(0,Math.min(l,e))},we=(e,t,{axis:n="both"}={})=>{let r=0,l=0;"x"!==n&&"both"!==n||(r=ge({overflowSize:de(e),containerSize:e.clientWidth,elementOffset:t.offsetLeft,elementSize:t.clientWidth})),"y"!==n&&"both"!==n||(l=ge({overflowSize:ye(e),containerSize:e.clientHeight,elementOffset:t.offsetTop,elementSize:t.clientHeight})),e.style.transform=`translate(${r}px, ${l}px)`},pe=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,l,a,i,o]=t[1].split(", ").map(parseFloat);return{translateX:i,translateY:o,scaleX:n,scaleY:a,skewX:l,skewY:r}},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},Me=(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 R(r,async e=>e.isDirectory?Se(e,{skipFiles:t}):n.has(e.name)?[]:[await new Promise((t,n)=>{e.file(t,n)})])).flat()},ve=async(e,t={})=>{const n=e?.items;if(!n)return[];const r=[];for(let e=0;e<n.length;e++){const l=n[e];if("webkitGetAsEntry"in l){const e=l.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 a=l.getAsFile();a&&r.push(Promise.resolve([a]))}return(await Promise.all(r)).flat()},Ae=e=>Object.entries(e).reduce((e,[t,n])=>(void 0!==n&&(e[t]=n),e),{}),Oe=({delta:e,value:t,min:n,max:r})=>{if(0===e)return null;const l=t+e;return e<0?t<=n?null:Math.max(l,n):e>0?t>=r?null:Math.min(l,r):null},ke=({value:e,min:t,max:n,velocityPxMs:r,deltaTimeMs:l,friction:a=.002,minVelocityPxMs:i=.01})=>{if(Math.abs(r)<i)return null;const o=Oe({delta:r*l,value:e,min:t,max:n});return null===o?null:{value:o,velocityPxMs:r*Math.exp(-a*l)}},Ce=(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),Pe=(e,t,{allowFallback:n=!0,invert:r=!0}={})=>{const l=r?-1:1;switch(t){case"x":return{deltaX:l*(0!==e.deltaX?e.deltaX:n?e.deltaY:0),deltaY:0};case"y":return{deltaX:0,deltaY:l*e.deltaY};default:return{deltaX:l*e.deltaX,deltaY:l*e.deltaY}}},Ee=["INPUT","SELECT","TEXTAREA","BUTTON","A"],Te=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 n=e.getAttribute("tabindex");return"-1"!==n&&(Ee.includes(e.tagName)?!ce(e)||""!==e.href:!!ue(e)||null!==n)},Xe=e=>Array.from(e.querySelectorAll("*")).filter(Te),_e=(e,t=null,{wrap:n=!0,getNextIndex:r}={})=>{const l=document.activeElement,a=t??l?.parentElement;if(!l||!a)return;const i=Xe(a);if(0===i.length)return;const o=i.indexOf(l);if(-1===o)return;let s;r?s=r(o,e,i):"next"===e?(s=o+1,s>=i.length&&(s=n?0:null)):(s=o-1,s<0&&(s=n?i.length-1:null)),null!==s&&i[s]?.focus()},ze=()=>{if("undefined"==typeof window||!window.localStorage)return!1;try{return window.localStorage.getItem("__non_existing_key__"),!0}catch{return!1}},Le=()=>{if(!ze())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}};
8024
+ var e={};function t(e,t){if(!e)throw new Error(t)}e.d=(t,n)=>{for(var r in n)e.o(n,r)&&!e.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:n[r]})},e.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);const n=e=>null===e,r=e=>null==e,l=e=>null!=e,a=e=>void 0===e,i=e=>"number"==typeof e,o=e=>"boolean"==typeof e,s=e=>"object"==typeof e,c=e=>s(e)&&!n(e)&&0===Object.keys(e).length,u=e=>e instanceof Date,f=e=>e instanceof Blob,h=e=>e instanceof Error,d=e=>u(e)&&!isNaN(e.getTime()),m=e=>e instanceof RegExp,y=e=>e instanceof Map,g=e=>e instanceof Set,w=e=>"symbol"==typeof e,p=e=>i(e)&&isFinite(e),b=e=>i(e)&&Number.isInteger(e),x=e=>p(e)&&!Number.isInteger(e),M=e=>Array.isArray(e),S=e=>M(e)&&0===e.length,A=e=>e.filter(Boolean),v=e=>[...new Set(e)],O=(e,n)=>(t(n>0,"Chunk size must be greater than 0"),Array.from({length:Math.ceil(e.length/n)},(t,r)=>e.slice(r*n,(r+1)*n))),k=(...e)=>{if(0===e.length)return[];if(1===e.length)return[...e[0]];const[t,...n]=e;return v(t).filter(e=>n.every(t=>t.includes(e)))},C=(e,t)=>e.filter(e=>!t.includes(e)),P=(...e)=>t=>e.reduce((e,t)=>t(e),t),E=(...e)=>t=>e.reduceRight((e,t)=>t(e),t),T=()=>{},X=e=>"function"==typeof e,_=e=>(...t)=>!e(...t),z=e=>{let t,n=!1;return function(...r){return n||(n=!0,t=e.apply(this,r)),t}},L=e=>X(e?.then),Y=async(e,t)=>{const n=[];for(let r=0;r<e.length;r++)n.push(await t(e[r],r,e));return n},R=async(e,t)=>Promise.all(e.map(t)),j=async(e,t)=>{const n=[];for(let r=0;r<e.length;r++){const l=e[r];await t(l,r,e)&&n.push(l)}return n},N=async(e,t)=>{const n=await R(e,async(e,n,r)=>!!await t(e,n,r)&&e);return A(n)},F=async(e,t)=>{for(let n=0;n<e.length;n++)if(await t(e[n],n,e))return!0;return!1},I=async(e,t)=>{for(let n=0;n<e.length;n++)if(!await t(e[n],n,e))return!1;return!0},U=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},$=async(e,t)=>{for(let n=0;n<e.length;n++)if(await t(e[n],n,e))return e[n];return null},H=e=>new Promise(t=>setTimeout(t,e)),W=async(e,t,n="Operation timed out")=>{try{return await Promise.race([e,H(t).then(()=>Promise.reject(new Error(n)))])}finally{}},B=(e,{maxAttempts:t=3,delayMs:n=300,backoff:r=!0,onRetry:l}={})=>async(...a)=>{let i;for(let o=1;o<=t;o++)try{return await e(...a)}catch(e){if(i=e,o<t){l?.(o,e);const t=r?n*2**(o-1):n;await H(t)}}throw i},D=e=>"string"==typeof e,V=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),Z=e=>{const t=e.charAt(0),n=e.slice(1);return t.toLowerCase()+n.replace(/[A-Z]/g,e=>`-${e.toLowerCase()}`)},G=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1 $2"),q=e=>0===e.length?[]:e.split(" ").filter(Boolean),J=e=>""===e||r(e),K=e=>{const t=e.lastIndexOf(".");return t<=0||t===e.length-1?[e,""]:[e.slice(0,t),e.slice(t+1).toLowerCase()]},Q=(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},ee=(e,t,n)=>{if(0===e.length)return;const r=e.length;for(let l=0;l<r;l++){const a=e[l],i={charIndex:l,prevChar:l>0?e[l-1]:null,nextChar:l<r-1?e[l+1]:null};n?.(a,i)||t(a,i)}},te=(e,t=1/0)=>0===e.length?"":q(e).slice(0,t).map(e=>e[0]).join("").toUpperCase(),ne=(e,...t)=>"function"==typeof e?e(...t):e,re=(e,t,n,r)=>{const l=n-e,a=r-t;return Math.hypot(l,a)},le=(e,t)=>Math.abs(e/t),ae=(e,t)=>e*t/100,ie=e=>{let t=5381;for(let n=0;n<e.length;n++)t=33*t^e.charCodeAt(n);return(t>>>0).toString(36)},oe=e=>new Blob([e],{type:e.type}),se=e=>new DOMRect(e.offsetLeft,e.offsetTop,e.clientWidth,e.clientHeight),ce=e=>"A"===e.tagName,ue=e=>"true"===e.getAttribute("contenteditable"),fe=(e,{fileName:n,target:r}={})=>{if(a(document))return;const l=document.createElement("a");let i=null;try{const t=D(e)?e:i=URL.createObjectURL(e);l.href=t,n&&(l.download=n),r&&(l.target=r),document.body.appendChild(l),l.click()}finally{l.remove(),i&&setTimeout(()=>{t(i,"Object URL should not be null"),URL.revokeObjectURL(i)},0)}},he=e=>e.scrollWidth>e.clientWidth,de=e=>Math.max(0,e.scrollWidth-e.clientWidth),me=e=>e.scrollHeight>e.clientHeight,ye=e=>Math.max(0,e.scrollHeight-e.clientHeight),ge=({overflowSize:e,containerSize:t,elementOffset:n,elementSize:r})=>{if(e<=0)return 0;const l=n+r/2-t/2;return-Math.max(0,Math.min(l,e))},we=(e,t,{axis:n="both"}={})=>{let r=0,l=0;"x"!==n&&"both"!==n||(r=ge({overflowSize:de(e),containerSize:e.clientWidth,elementOffset:t.offsetLeft,elementSize:t.clientWidth})),"y"!==n&&"both"!==n||(l=ge({overflowSize:ye(e),containerSize:e.clientHeight,elementOffset:t.offsetTop,elementSize:t.clientHeight})),e.style.transform=`translate(${r}px, ${l}px)`},pe=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,l,a,i,o]=t[1].split(", ").map(parseFloat);return{translateX:i,translateY:o,scaleX:n,scaleY:a,skewX:l,skewY:r}},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},Me=(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 R(r,async e=>e.isDirectory?Se(e,{skipFiles:t}):n.has(e.name)?[]:[await new Promise((t,n)=>{e.file(t,n)})])).flat()},Ae=async(e,t={})=>{const n=e?.items;if(!n)return[];const r=[];for(let e=0;e<n.length;e++){const l=n[e];if("webkitGetAsEntry"in l){const e=l.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 a=l.getAsFile();a&&r.push(Promise.resolve([a]))}return(await Promise.all(r)).flat()},ve=e=>Object.entries(e).reduce((e,[t,n])=>(void 0!==n&&(e[t]=n),e),{}),Oe=({delta:e,value:t,min:n,max:r})=>{if(0===e)return null;const l=t+e;return e<0?t<=n?null:Math.max(l,n):e>0?t>=r?null:Math.min(l,r):null},ke=({value:e,min:t,max:n,velocityPxMs:r,deltaTimeMs:l,friction:a=.002,minVelocityPxMs:i=.01,emaAlpha:o=.2})=>{if(Math.abs(r)<i)return null;const s=Oe({delta:r*l,value:e,min:t,max:n});if(null===s)return null;const c=r*Math.exp(-a*l),u=o>0?r*(1-o)+c*o:c;return Math.abs(u)<i?null:{value:s,velocityPxMs:u}},Ce=(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),Pe=(e,t,{allowFallback:n=!0,invert:r=!0}={})=>{const l=r?-1:1;switch(t){case"x":return{deltaX:l*(0!==e.deltaX?e.deltaX:n?e.deltaY:0),deltaY:0};case"y":return{deltaX:0,deltaY:l*e.deltaY};default:return{deltaX:l*e.deltaX,deltaY:l*e.deltaY}}},Ee=["INPUT","SELECT","TEXTAREA","BUTTON","A"],Te=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 n=e.getAttribute("tabindex");return"-1"!==n&&(Ee.includes(e.tagName)?!ce(e)||""!==e.href:!!ue(e)||null!==n)},Xe=e=>Array.from(e.querySelectorAll("*")).filter(Te),_e=(e,t=null,{wrap:n=!0,getNextIndex:r}={})=>{const l=document.activeElement,a=t??l?.parentElement;if(!l||!a)return;const i=Xe(a);if(0===i.length)return;const o=i.indexOf(l);if(-1===o)return;let s;r?s=r(o,e,i):"next"===e?(s=o+1,s>=i.length&&(s=n?0:null)):(s=o-1,s<0&&(s=n?i.length-1:null)),null!==s&&i[s]?.focus()},ze=()=>{if("undefined"==typeof window||!window.localStorage)return!1;try{return window.localStorage.getItem("__non_existing_key__"),!0}catch{return!1}},Le=()=>{if(!ze())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}};
8025
8025
  //# sourceMappingURL=index.mjs.map
8026
8026
 
8027
8027
  /***/ },
@@ -13725,6 +13725,7 @@ __webpack_require__.r(__webpack_exports__);
13725
13725
  /* harmony export */ useHoneyDecay: () => (/* reexport safe */ _use_honey_decay__WEBPACK_IMPORTED_MODULE_13__.useHoneyDecay),
13726
13726
  /* harmony export */ useHoneyDocumentKeyUpHandler: () => (/* reexport safe */ _use_honey_document_key_up_handler__WEBPACK_IMPORTED_MODULE_3__.useHoneyDocumentKeyUpHandler),
13727
13727
  /* harmony export */ useHoneyDrag: () => (/* reexport safe */ _use_honey_drag__WEBPACK_IMPORTED_MODULE_2__.useHoneyDrag),
13728
+ /* harmony export */ useHoneyLatest: () => (/* reexport safe */ _use_honey_latest__WEBPACK_IMPORTED_MODULE_14__.useHoneyLatest),
13728
13729
  /* harmony export */ useHoneyLayout: () => (/* reexport safe */ _use_honey_layout__WEBPACK_IMPORTED_MODULE_4__.useHoneyLayout),
13729
13730
  /* harmony export */ useHoneyMediaQuery: () => (/* reexport safe */ _use_honey_media_query__WEBPACK_IMPORTED_MODULE_1__.useHoneyMediaQuery),
13730
13731
  /* harmony export */ useHoneyOnChange: () => (/* reexport safe */ _use_honey_on_change__WEBPACK_IMPORTED_MODULE_0__.useHoneyOnChange),
@@ -13751,6 +13752,8 @@ __webpack_require__.r(__webpack_exports__);
13751
13752
  /* harmony import */ var _use_honey_raf_loop__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./use-honey-raf-loop */ "./src/hooks/use-honey-raf-loop.ts");
13752
13753
  /* harmony import */ var _use_honey_timer__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./use-honey-timer */ "./src/hooks/use-honey-timer.ts");
13753
13754
  /* harmony import */ var _use_honey_decay__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./use-honey-decay */ "./src/hooks/use-honey-decay.ts");
13755
+ /* harmony import */ var _use_honey_latest__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./use-honey-latest */ "./src/hooks/use-honey-latest.ts");
13756
+
13754
13757
 
13755
13758
 
13756
13759
 
@@ -13783,12 +13786,13 @@ __webpack_require__.r(__webpack_exports__);
13783
13786
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
13784
13787
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
13785
13788
  /* harmony import */ var _react_hive_honey_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @react-hive/honey-utils */ "./node_modules/@react-hive/honey-utils/dist/index.mjs");
13786
- /* harmony import */ var _use_honey_raf_loop__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./use-honey-raf-loop */ "./src/hooks/use-honey-raf-loop.ts");
13789
+ /* harmony import */ var _hooks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ~/hooks */ "./src/hooks/index.ts");
13787
13790
 
13788
13791
 
13789
13792
 
13790
13793
  /**
13791
- * A bounded, velocity-based inertia (decay) hook built on top of {@link useHoneyRafLoop} and {@link applyInertiaStep}.
13794
+ * A bounded, velocity-based inertia (decay) hook built on top
13795
+ * of {@link useHoneyRafLoop} and {@link applyInertiaStep}.
13792
13796
  *
13793
13797
  * This hook models **momentum-driven motion** where:
13794
13798
  * - Motion starts with an initial velocity
@@ -13846,50 +13850,87 @@ __webpack_require__.r(__webpack_exports__);
13846
13850
  * );
13847
13851
  * ```
13848
13852
  */
13849
- const useHoneyDecay = ({ initialValue, min, max, friction, minVelocityPxMs, }) => {
13853
+ const useHoneyDecay = ({ initialValue, min, max, friction = 0.002, minVelocityPxMs = 0.01, emaAlpha = 0.2, onStop, }) => {
13850
13854
  const [value, setValue] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(initialValue);
13851
13855
  const valueRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(initialValue);
13852
13856
  const velocityPxMsRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(0);
13853
- const onFrameHandler = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((deltaTimeMs, frameContext) => {
13857
+ const hasActiveInertiaRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(false);
13858
+ const minRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(min);
13859
+ const maxRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(max);
13860
+ const onStopRef = (0,_hooks__WEBPACK_IMPORTED_MODULE_2__.useHoneyLatest)(onStop);
13861
+ const frameHandler = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((deltaTimeMs, frameContext) => {
13862
+ // Ignore the first RAF tick
13863
+ if (deltaTimeMs === 0) {
13864
+ return;
13865
+ }
13854
13866
  const result = (0,_react_hive_honey_utils__WEBPACK_IMPORTED_MODULE_1__.applyInertiaStep)({
13855
13867
  value: valueRef.current,
13856
13868
  velocityPxMs: velocityPxMsRef.current,
13857
- min,
13858
- max,
13869
+ min: minRef.current,
13870
+ max: maxRef.current,
13859
13871
  deltaTimeMs,
13860
13872
  friction,
13861
13873
  minVelocityPxMs,
13874
+ emaAlpha,
13862
13875
  });
13863
- if (!result) {
13876
+ if (result === null) {
13864
13877
  velocityPxMsRef.current = 0;
13878
+ if (hasActiveInertiaRef.current) {
13879
+ hasActiveInertiaRef.current = false;
13880
+ onStopRef.current?.();
13881
+ }
13865
13882
  frameContext.stop();
13866
13883
  return;
13867
13884
  }
13885
+ hasActiveInertiaRef.current = true;
13868
13886
  valueRef.current = result.value;
13869
13887
  velocityPxMsRef.current = result.velocityPxMs;
13870
13888
  setValue(result.value);
13871
- }, [min, max, friction, minVelocityPxMs]);
13872
- const rafLoop = (0,_use_honey_raf_loop__WEBPACK_IMPORTED_MODULE_2__.useHoneyRafLoop)(onFrameHandler);
13889
+ }, [friction, minVelocityPxMs, emaAlpha]);
13890
+ const rafLoop = (0,_hooks__WEBPACK_IMPORTED_MODULE_2__.useHoneyRafLoop)(frameHandler);
13891
+ const setBounds = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((nextMin, nextMax) => {
13892
+ minRef.current = nextMin;
13893
+ maxRef.current = nextMax;
13894
+ const currentValue = valueRef.current;
13895
+ if (currentValue < nextMin || currentValue > nextMax) {
13896
+ const nextValue = Math.min(Math.max(currentValue, nextMin), nextMax);
13897
+ valueRef.current = nextValue;
13898
+ velocityPxMsRef.current = 0;
13899
+ setValue(nextValue);
13900
+ if (hasActiveInertiaRef.current) {
13901
+ hasActiveInertiaRef.current = false;
13902
+ onStopRef.current?.();
13903
+ }
13904
+ rafLoop.stop();
13905
+ }
13906
+ }, [rafLoop.stop]);
13873
13907
  const start = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((velocityPxMs) => {
13874
13908
  velocityPxMsRef.current = velocityPxMs;
13909
+ hasActiveInertiaRef.current = true;
13910
+ rafLoop.start();
13911
+ }, [rafLoop.start]);
13912
+ const startFrom = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((nextValue, velocityPxMs) => {
13913
+ valueRef.current = nextValue;
13914
+ velocityPxMsRef.current = velocityPxMs;
13915
+ hasActiveInertiaRef.current = true;
13916
+ setValue(nextValue);
13875
13917
  rafLoop.start();
13876
13918
  }, [rafLoop.start]);
13877
13919
  const stop = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(() => {
13920
+ if (hasActiveInertiaRef.current) {
13921
+ hasActiveInertiaRef.current = false;
13922
+ onStopRef.current?.();
13923
+ }
13878
13924
  velocityPxMsRef.current = 0;
13879
13925
  rafLoop.stop();
13880
13926
  }, [rafLoop.stop]);
13881
- const snapTo = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((nextValue) => {
13882
- velocityPxMsRef.current = 0;
13883
- valueRef.current = nextValue;
13884
- rafLoop.stop();
13885
- setValue(nextValue);
13886
- }, [rafLoop.stop]);
13887
13927
  return {
13888
13928
  value,
13889
13929
  isRunning: rafLoop.isRunning,
13930
+ setBounds,
13890
13931
  start,
13932
+ startFrom,
13891
13933
  stop,
13892
- snapTo,
13893
13934
  };
13894
13935
  };
13895
13936
 
@@ -14113,6 +14154,40 @@ const useHoneyDrag = (draggableElementRef, { skipOnEndDragWhenStopped = false, e
14113
14154
  };
14114
14155
 
14115
14156
 
14157
+ /***/ },
14158
+
14159
+ /***/ "./src/hooks/use-honey-latest.ts"
14160
+ /*!***************************************!*\
14161
+ !*** ./src/hooks/use-honey-latest.ts ***!
14162
+ \***************************************/
14163
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
14164
+
14165
+ "use strict";
14166
+ __webpack_require__.r(__webpack_exports__);
14167
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
14168
+ /* harmony export */ useHoneyLatest: () => (/* binding */ useHoneyLatest)
14169
+ /* harmony export */ });
14170
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
14171
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
14172
+
14173
+ /**
14174
+ * Stores the latest value in a stable ref.
14175
+ *
14176
+ * Guarantees that:
14177
+ * - `ref.current` always points to the latest value
14178
+ * - the ref object identity never changes
14179
+ *
14180
+ * Overload behavior:
14181
+ * - If a non-optional value is provided, `.current` is non-optional
14182
+ * - If an optional value is provided, `.current` is optional
14183
+ */
14184
+ const useHoneyLatest = (value) => {
14185
+ const ref = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(value);
14186
+ ref.current = value;
14187
+ return ref;
14188
+ };
14189
+
14190
+
14116
14191
  /***/ },
14117
14192
 
14118
14193
  /***/ "./src/hooks/use-honey-layout.ts"
@@ -14329,6 +14404,10 @@ __webpack_require__.r(__webpack_exports__);
14329
14404
  /* harmony export */ });
14330
14405
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
14331
14406
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
14407
+ /* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ~/constants */ "./src/constants.ts");
14408
+ /* harmony import */ var _hooks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ~/hooks */ "./src/hooks/index.ts");
14409
+
14410
+
14332
14411
 
14333
14412
  /**
14334
14413
  * A hook for running a controlled `requestAnimationFrame` loop.
@@ -14386,11 +14465,25 @@ const useHoneyRafLoop = (onFrame, { autoStart = false, resumeOnVisibility = fals
14386
14465
  onError, } = {}) => {
14387
14466
  const rafIdRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);
14388
14467
  const lastTimeMsRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);
14389
- const onFrameRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(onFrame);
14390
- // Always keep the latest callback without restarting RAF
14391
- onFrameRef.current = onFrame;
14468
+ const onFrameRef = (0,_hooks__WEBPACK_IMPORTED_MODULE_2__.useHoneyLatest)(onFrame);
14392
14469
  const [isRunning, setIsRunning] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);
14470
+ const isRunningRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(false);
14471
+ const stop = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(() => {
14472
+ if (!isRunningRef.current) {
14473
+ return;
14474
+ }
14475
+ isRunningRef.current = false;
14476
+ if (rafIdRef.current !== null) {
14477
+ cancelAnimationFrame(rafIdRef.current);
14478
+ rafIdRef.current = null;
14479
+ }
14480
+ lastTimeMsRef.current = null;
14481
+ setIsRunning(false);
14482
+ }, []);
14393
14483
  const loop = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(timeMs => {
14484
+ if (!isRunningRef.current) {
14485
+ return;
14486
+ }
14394
14487
  if (lastTimeMsRef.current === null) {
14395
14488
  lastTimeMsRef.current = timeMs;
14396
14489
  }
@@ -14404,36 +14497,33 @@ onError, } = {}) => {
14404
14497
  onFrameRef.current(deltaTimeMs, {
14405
14498
  stop,
14406
14499
  });
14407
- rafIdRef.current = requestAnimationFrame(loop);
14500
+ if (isRunningRef.current) {
14501
+ rafIdRef.current = requestAnimationFrame(loop);
14502
+ }
14408
14503
  }
14409
14504
  catch (e) {
14505
+ if (_constants__WEBPACK_IMPORTED_MODULE_1__.__DEV__) {
14506
+ console.error(e);
14507
+ }
14410
14508
  stop();
14411
14509
  onError?.(e);
14412
14510
  }
14413
- }, [maxDeltaMs, onError]);
14511
+ }, [maxDeltaMs, stop, onError]);
14414
14512
  const start = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(() => {
14415
- if (rafIdRef.current !== null) {
14513
+ if (isRunningRef.current) {
14416
14514
  return;
14417
14515
  }
14418
14516
  lastTimeMsRef.current = null;
14517
+ isRunningRef.current = true;
14419
14518
  setIsRunning(true);
14420
14519
  rafIdRef.current = requestAnimationFrame(loop);
14421
14520
  }, [loop]);
14422
- const stop = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(() => {
14423
- if (rafIdRef.current === null) {
14424
- return;
14425
- }
14426
- cancelAnimationFrame(rafIdRef.current);
14427
- rafIdRef.current = null;
14428
- lastTimeMsRef.current = null;
14429
- setIsRunning(false);
14430
- }, []);
14431
14521
  (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
14432
14522
  if (autoStart) {
14433
14523
  start();
14434
14524
  }
14435
14525
  return stop;
14436
- }, [autoStart, start, stop]);
14526
+ }, [autoStart]);
14437
14527
  // Pause when a tab is hidden (important for mobile)
14438
14528
  (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
14439
14529
  const onVisibilityChange = () => {
@@ -14777,7 +14867,7 @@ __webpack_require__.r(__webpack_exports__);
14777
14867
  /* harmony export */ });
14778
14868
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
14779
14869
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
14780
- /* harmony import */ var _use_honey_raf_loop__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./use-honey-raf-loop */ "./src/hooks/use-honey-raf-loop.ts");
14870
+ /* harmony import */ var _hooks__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ~/hooks */ "./src/hooks/index.ts");
14781
14871
 
14782
14872
 
14783
14873
  /**
@@ -14808,10 +14898,8 @@ __webpack_require__.r(__webpack_exports__);
14808
14898
  */
14809
14899
  const useHoneyTimer = ({ initialTimeMs, targetTimeMs = 0, mode = 'countdown', autoStart = false, onEnd, }) => {
14810
14900
  const [timeMs, setTimeMs] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(initialTimeMs);
14811
- const timeRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(timeMs);
14812
- timeRef.current = timeMs;
14813
- const onEndRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(onEnd);
14814
- onEndRef.current = onEnd;
14901
+ const timeRef = (0,_hooks__WEBPACK_IMPORTED_MODULE_1__.useHoneyLatest)(timeMs);
14902
+ const onEndRef = (0,_hooks__WEBPACK_IMPORTED_MODULE_1__.useHoneyLatest)(onEnd);
14815
14903
  /**
14816
14904
  * RAF frame handler responsible for advancing the timer.
14817
14905
  *
@@ -14819,7 +14907,7 @@ const useHoneyTimer = ({ initialTimeMs, targetTimeMs = 0, mode = 'countdown', au
14819
14907
  * - Detects completion and stops the RAF loop
14820
14908
  * - Updates React state with the derived value
14821
14909
  */
14822
- const onFrameHandler = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((deltaTimeMs, frameContext) => {
14910
+ const frameHandler = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((deltaTimeMs, frameContext) => {
14823
14911
  let nextTime = mode === 'countdown' ? timeRef.current - deltaTimeMs : timeRef.current + deltaTimeMs;
14824
14912
  let finished = false;
14825
14913
  if (mode === 'countdown') {
@@ -14839,7 +14927,7 @@ const useHoneyTimer = ({ initialTimeMs, targetTimeMs = 0, mode = 'countdown', au
14839
14927
  onEndRef.current?.();
14840
14928
  }
14841
14929
  }, [mode, targetTimeMs]);
14842
- const rafLoop = (0,_use_honey_raf_loop__WEBPACK_IMPORTED_MODULE_1__.useHoneyRafLoop)(onFrameHandler);
14930
+ const rafLoop = (0,_hooks__WEBPACK_IMPORTED_MODULE_1__.useHoneyRafLoop)(frameHandler);
14843
14931
  const start = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(() => {
14844
14932
  timeRef.current = initialTimeMs;
14845
14933
  setTimeMs(initialTimeMs);
@@ -14862,7 +14950,7 @@ const useHoneyTimer = ({ initialTimeMs, targetTimeMs = 0, mode = 'countdown', au
14862
14950
  if (autoStart) {
14863
14951
  start();
14864
14952
  }
14865
- }, [autoStart, start]);
14953
+ }, [autoStart]);
14866
14954
  return {
14867
14955
  timeMs,
14868
14956
  isRunning: rafLoop.isRunning,
@@ -15658,6 +15746,7 @@ __webpack_require__.r(__webpack_exports__);
15658
15746
  /* harmony export */ useHoneyDocumentKeyUpHandler: () => (/* reexport safe */ _hooks__WEBPACK_IMPORTED_MODULE_5__.useHoneyDocumentKeyUpHandler),
15659
15747
  /* harmony export */ useHoneyDrag: () => (/* reexport safe */ _hooks__WEBPACK_IMPORTED_MODULE_5__.useHoneyDrag),
15660
15748
  /* harmony export */ useHoneyGridContext: () => (/* reexport safe */ _components__WEBPACK_IMPORTED_MODULE_3__.useHoneyGridContext),
15749
+ /* harmony export */ useHoneyLatest: () => (/* reexport safe */ _hooks__WEBPACK_IMPORTED_MODULE_5__.useHoneyLatest),
15661
15750
  /* harmony export */ useHoneyLayout: () => (/* reexport safe */ _hooks__WEBPACK_IMPORTED_MODULE_5__.useHoneyLayout),
15662
15751
  /* harmony export */ useHoneyMediaQuery: () => (/* reexport safe */ _hooks__WEBPACK_IMPORTED_MODULE_5__.useHoneyMediaQuery),
15663
15752
  /* harmony export */ useHoneyOnChange: () => (/* reexport safe */ _hooks__WEBPACK_IMPORTED_MODULE_5__.useHoneyOnChange),