@react-hive/honey-layout 10.3.0 → 10.5.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.
@@ -7932,90 +7932,93 @@ function rectToClientRect(rect) {
7932
7932
  "use strict";
7933
7933
  __webpack_require__.r(__webpack_exports__);
7934
7934
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
7935
- /* harmony export */ FOCUSABLE_HTML_TAGS: () => (/* binding */ re),
7935
+ /* harmony export */ FOCUSABLE_HTML_TAGS: () => (/* binding */ ke),
7936
+ /* harmony export */ applyInertiaStep: () => (/* binding */ Ae),
7936
7937
  /* harmony export */ assert: () => (/* binding */ t),
7937
- /* harmony export */ blobToFile: () => (/* binding */ ke),
7938
- /* harmony export */ calculateCenterOffset: () => (/* binding */ ge),
7938
+ /* harmony export */ blobToFile: () => (/* binding */ pe),
7939
+ /* harmony export */ calculateCenterOffset: () => (/* binding */ de),
7939
7940
  /* harmony export */ calculateEuclideanDistance: () => (/* binding */ ee),
7940
7941
  /* harmony export */ calculateMovingSpeed: () => (/* binding */ te),
7941
7942
  /* harmony export */ calculatePercentage: () => (/* binding */ ne),
7942
- /* harmony export */ camelToDashCase: () => (/* binding */ q),
7943
- /* harmony export */ camelToWords: () => (/* binding */ J),
7944
- /* harmony export */ centerElementInContainer: () => (/* binding */ pe),
7945
- /* harmony export */ chunk: () => (/* binding */ k),
7943
+ /* harmony export */ camelToDashCase: () => (/* binding */ Z),
7944
+ /* harmony export */ camelToWords: () => (/* binding */ G),
7945
+ /* harmony export */ centerElementInContainer: () => (/* binding */ me),
7946
+ /* harmony export */ chunk: () => (/* binding */ O),
7946
7947
  /* harmony export */ cloneBlob: () => (/* binding */ ae),
7947
- /* harmony export */ compact: () => (/* binding */ M),
7948
- /* harmony export */ compose: () => (/* binding */ P),
7949
- /* harmony export */ definedProps: () => (/* binding */ _e),
7950
- /* harmony export */ delay: () => (/* binding */ R),
7948
+ /* harmony export */ compact: () => (/* binding */ A),
7949
+ /* harmony export */ compose: () => (/* binding */ X),
7950
+ /* harmony export */ definedProps: () => (/* binding */ Se),
7951
+ /* harmony export */ delay: () => (/* binding */ U),
7951
7952
  /* harmony export */ difference: () => (/* binding */ E),
7952
- /* harmony export */ downloadFile: () => (/* binding */ xe),
7953
- /* harmony export */ everyAsync: () => (/* binding */ Y),
7954
- /* harmony export */ fileListToFiles: () => (/* binding */ Oe),
7955
- /* harmony export */ filterParallel: () => (/* binding */ U),
7956
- /* harmony export */ filterSequential: () => (/* binding */ H),
7957
- /* harmony export */ findAsync: () => (/* binding */ D),
7958
- /* harmony export */ getDOMRectIntersectionRatio: () => (/* binding */ oe),
7953
+ /* harmony export */ downloadFile: () => (/* binding */ se),
7954
+ /* harmony export */ everyAsync: () => (/* binding */ I),
7955
+ /* harmony export */ fileListToFiles: () => (/* binding */ ge),
7956
+ /* harmony export */ filterParallel: () => (/* binding */ j),
7957
+ /* harmony export */ filterSequential: () => (/* binding */ N),
7958
+ /* harmony export */ findAsync: () => (/* binding */ H),
7959
+ /* harmony export */ getDOMRectIntersectionRatio: () => (/* binding */ Me),
7959
7960
  /* harmony export */ getElementOffsetRect: () => (/* binding */ le),
7960
- /* harmony export */ getFocusableHtmlElements: () => (/* binding */ ue),
7961
- /* harmony export */ getLocalStorageCapabilities: () => (/* binding */ Se),
7962
- /* harmony export */ getXOverflowWidth: () => (/* binding */ ye),
7963
- /* harmony export */ getYOverflowHeight: () => (/* binding */ de),
7964
- /* harmony export */ hasXOverflow: () => (/* binding */ me),
7965
- /* harmony export */ hasYOverflow: () => (/* binding */ we),
7966
- /* harmony export */ hashString: () => (/* binding */ Q),
7967
- /* harmony export */ intersection: () => (/* binding */ v),
7968
- /* harmony export */ invokeIfFunction: () => (/* binding */ C),
7969
- /* harmony export */ isAnchorHtmlElement: () => (/* binding */ se),
7970
- /* harmony export */ isArray: () => (/* binding */ x),
7971
- /* harmony export */ isBlob: () => (/* binding */ u),
7972
- /* harmony export */ isBool: () => (/* binding */ l),
7973
- /* harmony export */ isContentEditableHtmlElement: () => (/* binding */ ce),
7974
- /* harmony export */ isDate: () => (/* binding */ f),
7975
- /* harmony export */ isDecimal: () => (/* binding */ S),
7976
- /* harmony export */ isDefined: () => (/* binding */ i),
7977
- /* harmony export */ isEmptyArray: () => (/* binding */ A),
7961
+ /* harmony export */ getFocusableHtmlElements: () => (/* binding */ Te),
7962
+ /* harmony export */ getLocalStorageCapabilities: () => (/* binding */ Pe),
7963
+ /* harmony export */ getXOverflowWidth: () => (/* binding */ ue),
7964
+ /* harmony export */ getYOverflowHeight: () => (/* binding */ he),
7965
+ /* harmony export */ hasXOverflow: () => (/* binding */ ce),
7966
+ /* harmony export */ hasYOverflow: () => (/* binding */ fe),
7967
+ /* harmony export */ hashString: () => (/* binding */ re),
7968
+ /* harmony export */ intersection: () => (/* binding */ k),
7969
+ /* harmony export */ invokeIfFunction: () => (/* binding */ Q),
7970
+ /* harmony export */ isAnchorHtmlElement: () => (/* binding */ ie),
7971
+ /* harmony export */ isArray: () => (/* binding */ S),
7972
+ /* harmony export */ isBlob: () => (/* binding */ f),
7973
+ /* harmony export */ isBool: () => (/* binding */ o),
7974
+ /* harmony export */ isContentEditableHtmlElement: () => (/* binding */ oe),
7975
+ /* harmony export */ isDate: () => (/* binding */ u),
7976
+ /* harmony export */ isDecimal: () => (/* binding */ x),
7977
+ /* harmony export */ isDefined: () => (/* binding */ a),
7978
+ /* harmony export */ isEmptyArray: () => (/* binding */ v),
7978
7979
  /* harmony export */ isEmptyObject: () => (/* binding */ c),
7979
7980
  /* harmony export */ isError: () => (/* binding */ h),
7980
- /* harmony export */ isFile: () => (/* binding */ Ae),
7981
+ /* harmony export */ isFile: () => (/* binding */ we),
7981
7982
  /* harmony export */ isFiniteNumber: () => (/* binding */ p),
7982
- /* harmony export */ isFunction: () => (/* binding */ z),
7983
- /* harmony export */ isHtmlElementFocusable: () => (/* binding */ fe),
7983
+ /* harmony export */ isFunction: () => (/* binding */ P),
7984
+ /* harmony export */ isHtmlElementFocusable: () => (/* binding */ Ee),
7984
7985
  /* harmony export */ isInteger: () => (/* binding */ b),
7985
- /* harmony export */ isLocalStorageReadable: () => (/* binding */ be),
7986
- /* harmony export */ isMap: () => (/* binding */ w),
7986
+ /* harmony export */ isLocalStorageReadable: () => (/* binding */ _e),
7987
+ /* harmony export */ isMap: () => (/* binding */ y),
7987
7988
  /* harmony export */ isNil: () => (/* binding */ r),
7988
- /* harmony export */ isNilOrEmptyString: () => (/* binding */ G),
7989
+ /* harmony export */ isNilOrEmptyString: () => (/* binding */ J),
7989
7990
  /* harmony export */ isNull: () => (/* binding */ n),
7990
- /* harmony export */ isNumber: () => (/* binding */ o),
7991
+ /* harmony export */ isNumber: () => (/* binding */ i),
7991
7992
  /* harmony export */ isObject: () => (/* binding */ s),
7992
- /* harmony export */ isPromise: () => (/* binding */ I),
7993
- /* harmony export */ isRegExp: () => (/* binding */ y),
7994
- /* harmony export */ isSet: () => (/* binding */ d),
7995
- /* harmony export */ isString: () => (/* binding */ Z),
7993
+ /* harmony export */ isPromise: () => (/* binding */ Y),
7994
+ /* harmony export */ isRegExp: () => (/* binding */ m),
7995
+ /* harmony export */ isSet: () => (/* binding */ w),
7996
+ /* harmony export */ isString: () => (/* binding */ D),
7996
7997
  /* harmony export */ isSymbol: () => (/* binding */ g),
7997
- /* harmony export */ isUndefined: () => (/* binding */ a),
7998
- /* harmony export */ isValidDate: () => (/* binding */ m),
7999
- /* harmony export */ moveFocusWithinContainer: () => (/* binding */ he),
8000
- /* harmony export */ noop: () => (/* binding */ T),
8001
- /* harmony export */ not: () => (/* binding */ L),
8002
- /* harmony export */ once: () => (/* binding */ F),
8003
- /* harmony export */ parse2DMatrix: () => (/* binding */ ie),
8004
- /* harmony export */ parseFileName: () => (/* binding */ Me),
8005
- /* harmony export */ pipe: () => (/* binding */ _),
8006
- /* harmony export */ readFilesFromDataTransfer: () => (/* binding */ Ee),
8007
- /* harmony export */ reduceAsync: () => (/* binding */ B),
8008
- /* harmony export */ retry: () => (/* binding */ j),
8009
- /* harmony export */ runParallel: () => (/* binding */ $),
8010
- /* harmony export */ runSequential: () => (/* binding */ X),
8011
- /* harmony export */ someAsync: () => (/* binding */ W),
8012
- /* harmony export */ splitStringIntoWords: () => (/* binding */ K),
8013
- /* harmony export */ timeout: () => (/* binding */ N),
7998
+ /* harmony export */ isUndefined: () => (/* binding */ l),
7999
+ /* harmony export */ isValidDate: () => (/* binding */ d),
8000
+ /* harmony export */ moveFocusWithinContainer: () => (/* binding */ Xe),
8001
+ /* harmony export */ noop: () => (/* binding */ _),
8002
+ /* harmony export */ not: () => (/* binding */ z),
8003
+ /* harmony export */ once: () => (/* binding */ L),
8004
+ /* harmony export */ parse2DMatrix: () => (/* binding */ ye),
8005
+ /* harmony export */ parseFileName: () => (/* binding */ K),
8006
+ /* harmony export */ pipe: () => (/* binding */ T),
8007
+ /* harmony export */ readFilesFromDataTransfer: () => (/* binding */ xe),
8008
+ /* harmony export */ reduceAsync: () => (/* binding */ $),
8009
+ /* harmony export */ resolveAxisDelta: () => (/* binding */ Oe),
8010
+ /* harmony export */ resolveBoundedDelta: () => (/* binding */ ve),
8011
+ /* harmony export */ retry: () => (/* binding */ B),
8012
+ /* harmony export */ runParallel: () => (/* binding */ R),
8013
+ /* harmony export */ runSequential: () => (/* binding */ C),
8014
+ /* harmony export */ someAsync: () => (/* binding */ F),
8015
+ /* harmony export */ splitStringIntoWords: () => (/* binding */ q),
8016
+ /* harmony export */ timeout: () => (/* binding */ W),
8014
8017
  /* harmony export */ toKebabCase: () => (/* binding */ V),
8015
- /* harmony export */ traverseFileSystemDirectory: () => (/* binding */ ve),
8016
- /* harmony export */ unique: () => (/* binding */ O)
8018
+ /* harmony export */ traverseFileSystemDirectory: () => (/* binding */ be),
8019
+ /* harmony export */ unique: () => (/* binding */ M)
8017
8020
  /* harmony export */ });
8018
- 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,i=e=>null!=e,a=e=>void 0===e,o=e=>"number"==typeof e,l=e=>"boolean"==typeof e,s=e=>"object"==typeof e,c=e=>s(e)&&!n(e)&&0===Object.keys(e).length,f=e=>e instanceof Date,u=e=>e instanceof Blob,h=e=>e instanceof Error,m=e=>f(e)&&!isNaN(e.getTime()),y=e=>e instanceof RegExp,w=e=>e instanceof Map,d=e=>e instanceof Set,g=e=>"symbol"==typeof e,p=e=>o(e)&&isFinite(e),b=e=>o(e)&&Number.isInteger(e),S=e=>p(e)&&!Number.isInteger(e),x=e=>Array.isArray(e),A=e=>x(e)&&0===e.length,M=e=>e.filter(Boolean),O=e=>[...new Set(e)],k=(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))),v=(...e)=>{if(0===e.length)return[];if(1===e.length)return[...e[0]];const[t,...n]=e;return O(t).filter(e=>n.every(t=>t.includes(e)))},E=(e,t)=>e.filter(e=>!t.includes(e)),_=(...e)=>t=>e.reduce((e,t)=>t(e),t),P=(...e)=>t=>e.reduceRight((e,t)=>t(e),t),T=()=>{},z=e=>"function"==typeof e,L=e=>(...t)=>!e(...t),C=(e,...t)=>"function"==typeof e?e(...t):e,R=e=>new Promise(t=>setTimeout(t,e)),N=async(e,t,n="Operation timed out")=>{try{return await Promise.race([e,R(t).then(()=>Promise.reject(new Error(n)))])}finally{}},j=(e,{maxAttempts:t=3,delayMs:n=300,backoff:r=!0,onRetry:i}={})=>async(...a)=>{let o;for(let l=1;l<=t;l++)try{return await e(...a)}catch(e){if(o=e,l<t){i?.(l,e);const t=r?n*2**(l-1):n;await R(t)}}throw o},F=e=>{let t,n=!1;return function(...r){return n||(n=!0,t=e.apply(this,r)),t}},I=e=>z(e?.then),X=async(e,t)=>{const n=[];for(let r=0;r<e.length;r++)n.push(await t(e[r],r,e));return n},$=async(e,t)=>Promise.all(e.map(t)),H=async(e,t)=>{const n=[];for(let r=0;r<e.length;r++){const i=e[r];await t(i,r,e)&&n.push(i)}return n},U=async(e,t)=>{const n=await $(e,async(e,n,r)=>!!await t(e,n,r)&&e);return M(n)},W=async(e,t)=>{for(let n=0;n<e.length;n++)if(await t(e[n],n,e))return!0;return!1},Y=async(e,t)=>{for(let n=0;n<e.length;n++)if(!await t(e[n],n,e))return!1;return!0},B=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},D=async(e,t)=>{for(let n=0;n<e.length;n++)if(await t(e[n],n,e))return e[n];return null},Z=e=>"string"==typeof e,G=e=>""===e||r(e),V=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),q=e=>{const t=e.charAt(0),n=e.slice(1);return t.toLowerCase()+n.replace(/[A-Z]/g,e=>`-${e.toLowerCase()}`)},J=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1 $2"),K=e=>e.split(" ").filter(Boolean),Q=e=>{let t=5381;for(let n=0;n<e.length;n++)t=33*t^e.charCodeAt(n);return(t>>>0).toString(36)},ee=(e,t,n,r)=>{const i=n-e,a=r-t;return Math.hypot(i,a)},te=(e,t)=>Math.abs(e/t),ne=(e,t)=>e*t/100,re=["INPUT","SELECT","TEXTAREA","BUTTON","A"],ie=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,i,a,o,l]=t[1].split(", ").map(parseFloat);return{translateX:o,translateY:l,scaleX:n,scaleY:a,skewX:i,skewY:r}},ae=e=>new Blob([e],{type:e.type}),oe=(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),le=e=>new DOMRect(e.offsetLeft,e.offsetTop,e.clientWidth,e.clientHeight),se=e=>"A"===e.tagName,ce=e=>"true"===e.getAttribute("contenteditable"),fe=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&&(re.includes(e.tagName)?!se(e)||""!==e.href:!!ce(e)||null!==n)},ue=e=>Array.from(e.querySelectorAll("*")).filter(fe),he=(e,t=null,{wrap:n=!0,getNextIndex:r}={})=>{const i=document.activeElement,a=t??i?.parentElement;if(!i||!a)return;const o=ue(a);if(0===o.length)return;const l=o.indexOf(i);if(-1===l)return;let s;r?s=r(l,e,o):"next"===e?(s=l+1,s>=o.length&&(s=n?0:null)):(s=l-1,s<0&&(s=n?o.length-1:null)),null!==s&&o[s]?.focus()},me=e=>e.scrollWidth>e.clientWidth,ye=e=>Math.max(0,e.scrollWidth-e.clientWidth),we=e=>e.scrollHeight>e.clientHeight,de=e=>Math.max(0,e.scrollHeight-e.clientHeight),ge=({overflowSize:e,containerSize:t,elementOffset:n,elementSize:r})=>{if(e<=0)return 0;const i=n+r/2-t/2;return-Math.max(0,Math.min(i,e))},pe=(e,t,{axis:n="both"}={})=>{let r=0,i=0;"x"!==n&&"both"!==n||(r=ge({overflowSize:ye(e),containerSize:e.clientWidth,elementOffset:t.offsetLeft,elementSize:t.clientWidth})),"y"!==n&&"both"!==n||(i=ge({overflowSize:de(e),containerSize:e.clientHeight,elementOffset:t.offsetTop,elementSize:t.clientHeight})),e.style.transform=`translate(${r}px, ${i}px)`},be=()=>{if("undefined"==typeof window||!window.localStorage)return!1;try{return window.localStorage.getItem("__non_existing_key__"),!0}catch{return!1}},Se=()=>{if(!be())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}},xe=(e,{fileName:n,target:r}={})=>{if(a(document))return;const i=document.createElement("a");let o=null;try{const t=Z(e)?e:o=URL.createObjectURL(e);i.href=t,n&&(i.download=n),r&&(i.target=r),document.body.appendChild(i),i.click()}finally{i.remove(),o&&setTimeout(()=>{t(o,"Object URL should not be null"),URL.revokeObjectURL(o)},0)}},Ae=e=>e instanceof File,Me=e=>{const t=e.lastIndexOf(".");return t<=0||t===e.length-1?[e,""]:[e.slice(0,t),e.slice(t+1).toLowerCase()]},Oe=e=>{if(!e)return[];const t=[];for(let n=0;n<e.length;n++)t.push(e[n]);return t},ke=(e,t)=>new File([e],t,{type:e.type}),ve=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,async e=>e.isDirectory?ve(e,{skipFiles:t}):n.has(e.name)?[]:[await new Promise((t,n)=>{e.file(t,n)})])).flat()},Ee=async(e,t={})=>{const n=e?.items;if(!n)return[];const r=[];for(let e=0;e<n.length;e++){const i=n[e];if("webkitGetAsEntry"in i){const e=i.webkitGetAsEntry?.();if(e?.isDirectory){r.push(ve(e,t));continue}if(e?.isFile){r.push(new Promise((t,n)=>e.file(e=>t([e]),n)));continue}}const a=i.getAsFile();a&&r.push(Promise.resolve([a]))}return(await Promise.all(r)).flat()},_e=e=>Object.entries(e).reduce((e,[t,n])=>(void 0!==n&&(e[t]=n),e),{});
8021
+ 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,a=e=>null!=e,l=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,w=e=>e instanceof Set,g=e=>"symbol"==typeof e,p=e=>i(e)&&isFinite(e),b=e=>i(e)&&Number.isInteger(e),x=e=>p(e)&&!Number.isInteger(e),S=e=>Array.isArray(e),v=e=>S(e)&&0===e.length,A=e=>e.filter(Boolean),M=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 M(t).filter(e=>n.every(t=>t.includes(e)))},E=(e,t)=>e.filter(e=>!t.includes(e)),T=(...e)=>t=>e.reduce((e,t)=>t(e),t),X=(...e)=>t=>e.reduceRight((e,t)=>t(e),t),_=()=>{},P=e=>"function"==typeof e,z=e=>(...t)=>!e(...t),L=e=>{let t,n=!1;return function(...r){return n||(n=!0,t=e.apply(this,r)),t}},Y=e=>P(e?.then),C=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)),N=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 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},$=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},H=async(e,t)=>{for(let n=0;n<e.length;n++)if(await t(e[n],n,e))return e[n];return null},U=e=>new Promise(t=>setTimeout(t,e)),W=async(e,t,n="Operation timed out")=>{try{return await Promise.race([e,U(t).then(()=>Promise.reject(new Error(n)))])}finally{}},B=(e,{maxAttempts:t=3,delayMs:n=300,backoff:r=!0,onRetry:a}={})=>async(...l)=>{let i;for(let o=1;o<=t;o++)try{return await e(...l)}catch(e){if(i=e,o<t){a?.(o,e);const t=r?n*2**(o-1):n;await U(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=>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)=>"function"==typeof e?e(...t):e,ee=(e,t,n,r)=>{const a=n-e,l=r-t;return Math.hypot(a,l)},te=(e,t)=>Math.abs(e/t),ne=(e,t)=>e*t/100,re=e=>{let t=5381;for(let n=0;n<e.length;n++)t=33*t^e.charCodeAt(n);return(t>>>0).toString(36)},ae=e=>new Blob([e],{type:e.type}),le=e=>new DOMRect(e.offsetLeft,e.offsetTop,e.clientWidth,e.clientHeight),ie=e=>"A"===e.tagName,oe=e=>"true"===e.getAttribute("contenteditable"),se=(e,{fileName:n,target:r}={})=>{if(l(document))return;const a=document.createElement("a");let i=null;try{const t=D(e)?e:i=URL.createObjectURL(e);a.href=t,n&&(a.download=n),r&&(a.target=r),document.body.appendChild(a),a.click()}finally{a.remove(),i&&setTimeout(()=>{t(i,"Object URL should not be null"),URL.revokeObjectURL(i)},0)}},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=({overflowSize:e,containerSize:t,elementOffset:n,elementSize:r})=>{if(e<=0)return 0;const a=n+r/2-t/2;return-Math.max(0,Math.min(a,e))},me=(e,t,{axis:n="both"}={})=>{let r=0,a=0;"x"!==n&&"both"!==n||(r=de({overflowSize:ue(e),containerSize:e.clientWidth,elementOffset:t.offsetLeft,elementSize:t.clientWidth})),"y"!==n&&"both"!==n||(a=de({overflowSize:he(e),containerSize:e.clientHeight,elementOffset:t.offsetTop,elementSize:t.clientHeight})),e.style.transform=`translate(${r}px, ${a}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,i,o]=t[1].split(", ").map(parseFloat);return{translateX:i,translateY:o,scaleX:n,scaleY:l,skewX:a,skewY:r}},we=e=>e instanceof File,ge=e=>{if(!e)return[];const t=[];for(let n=0;n<e.length;n++)t.push(e[n]);return t},pe=(e,t)=>new File([e],t,{type:e.type}),be=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?be(e,{skipFiles:t}):n.has(e.name)?[]:[await new Promise((t,n)=>{e.file(t,n)})])).flat()},xe=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(be(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()},Se=e=>Object.entries(e).reduce((e,[t,n])=>(void 0!==n&&(e[t]=n),e),{}),ve=({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},Ae=({value:e,min:t,max:n,velocity:r,deltaTime:a,friction:l=.002,minVelocity:i=.01})=>{if(Math.abs(r)<i)return null;const o=ve({delta:r*a,value:e,min:t,max:n});return null===o?null:{value:o,velocity:r*Math.exp(-l*a)}},Me=(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),Oe=(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=["INPUT","SELECT","TEXTAREA","BUTTON","A"],Ee=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&&(ke.includes(e.tagName)?!ie(e)||""!==e.href:!!oe(e)||null!==n)},Te=e=>Array.from(e.querySelectorAll("*")).filter(Ee),Xe=(e,t=null,{wrap:n=!0,getNextIndex:r}={})=>{const a=document.activeElement,l=t??a?.parentElement;if(!a||!l)return;const i=Te(l);if(0===i.length)return;const o=i.indexOf(a);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()},_e=()=>{if("undefined"==typeof window||!window.localStorage)return!1;try{return window.localStorage.getItem("__non_existing_key__"),!0}catch{return!1}},Pe=()=>{if(!_e())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}};
8019
8022
  //# sourceMappingURL=index.mjs.map
8020
8023
 
8021
8024
  /***/ },
@@ -12674,9 +12677,9 @@ __webpack_require__.r(__webpack_exports__);
12674
12677
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react");
12675
12678
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
12676
12679
  /* harmony import */ var _react_hive_honey_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @react-hive/honey-utils */ "./node_modules/@react-hive/honey-utils/dist/index.mjs");
12677
- /* harmony import */ var _HoneyFlex__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./HoneyFlex */ "./src/components/HoneyFlex/index.ts");
12678
- /* harmony import */ var _hooks__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../hooks */ "./src/hooks/index.ts");
12679
- /* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../helpers */ "./src/helpers/index.ts");
12680
+ /* harmony import */ var _hooks__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../hooks */ "./src/hooks/index.ts");
12681
+ /* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../helpers */ "./src/helpers/index.ts");
12682
+ /* harmony import */ var _HoneyFlex__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./HoneyFlex */ "./src/components/HoneyFlex/index.ts");
12680
12683
 
12681
12684
 
12682
12685
 
@@ -12706,7 +12709,7 @@ __webpack_require__.r(__webpack_exports__);
12706
12709
  * ```
12707
12710
  */
12708
12711
  const HoneyOverlay = ({ ref, children, active, overlayId, onDeactivate, ...props }) => {
12709
- const overlay = (0,_hooks__WEBPACK_IMPORTED_MODULE_4__.useRegisterHoneyOverlay)(active, {
12712
+ const overlay = (0,_hooks__WEBPACK_IMPORTED_MODULE_3__.useRegisterHoneyOverlay)(active, {
12710
12713
  id: overlayId,
12711
12714
  onKeyUp: (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(keyCode => {
12712
12715
  if (keyCode === 'Escape') {
@@ -12714,8 +12717,8 @@ const HoneyOverlay = ({ ref, children, active, overlayId, onDeactivate, ...props
12714
12717
  }
12715
12718
  }, [onDeactivate]),
12716
12719
  });
12717
- const mergedRef = (0,_helpers__WEBPACK_IMPORTED_MODULE_5__.mergeRefs)(overlay?.setContainerRef, ref);
12718
- return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_HoneyFlex__WEBPACK_IMPORTED_MODULE_3__.HoneyFlex, { ref: mergedRef, inert: !active, ...props, children: (0,_react_hive_honey_utils__WEBPACK_IMPORTED_MODULE_2__.invokeIfFunction)(children, {
12720
+ const mergedRef = (0,_helpers__WEBPACK_IMPORTED_MODULE_4__.mergeRefs)(overlay?.setContainerRef, ref);
12721
+ return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_HoneyFlex__WEBPACK_IMPORTED_MODULE_5__.HoneyFlex, { ref: mergedRef, inert: !active, ...props, children: (0,_react_hive_honey_utils__WEBPACK_IMPORTED_MODULE_2__.invokeIfFunction)(children, {
12719
12722
  overlay,
12720
12723
  deactivateOverlay: onDeactivate,
12721
12724
  }) }));
@@ -13715,13 +13718,14 @@ const mergeRefs = (...refs) => value => {
13715
13718
  "use strict";
13716
13719
  __webpack_require__.r(__webpack_exports__);
13717
13720
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
13718
- /* harmony export */ applyAxisScroll: () => (/* reexport safe */ _use_honey_synthetic_scroll__WEBPACK_IMPORTED_MODULE_8__.applyAxisScroll),
13721
+ /* harmony export */ resolveAxisTranslate: () => (/* reexport safe */ _use_honey_synthetic_scroll__WEBPACK_IMPORTED_MODULE_8__.resolveAxisTranslate),
13719
13722
  /* harmony export */ useHoneyDocumentKeyUpHandler: () => (/* reexport safe */ _use_honey_document_key_up_handler__WEBPACK_IMPORTED_MODULE_3__.useHoneyDocumentKeyUpHandler),
13720
13723
  /* harmony export */ useHoneyDrag: () => (/* reexport safe */ _use_honey_drag__WEBPACK_IMPORTED_MODULE_2__.useHoneyDrag),
13721
13724
  /* harmony export */ useHoneyLayout: () => (/* reexport safe */ _use_honey_layout__WEBPACK_IMPORTED_MODULE_4__.useHoneyLayout),
13722
13725
  /* harmony export */ useHoneyMediaQuery: () => (/* reexport safe */ _use_honey_media_query__WEBPACK_IMPORTED_MODULE_1__.useHoneyMediaQuery),
13723
13726
  /* harmony export */ useHoneyOnChange: () => (/* reexport safe */ _use_honey_on_change__WEBPACK_IMPORTED_MODULE_0__.useHoneyOnChange),
13724
13727
  /* harmony export */ useHoneyOverlay: () => (/* reexport safe */ _use_honey_overlay__WEBPACK_IMPORTED_MODULE_6__.useHoneyOverlay),
13728
+ /* harmony export */ useHoneyRafLoop: () => (/* reexport safe */ _use_honey_raf_loop__WEBPACK_IMPORTED_MODULE_11__.useHoneyRafLoop),
13725
13729
  /* harmony export */ useHoneyResize: () => (/* reexport safe */ _use_honey_resize__WEBPACK_IMPORTED_MODULE_7__.useHoneyResize),
13726
13730
  /* harmony export */ useHoneySyntheticScroll: () => (/* reexport safe */ _use_honey_synthetic_scroll__WEBPACK_IMPORTED_MODULE_8__.useHoneySyntheticScroll),
13727
13731
  /* harmony export */ useHoneySyntheticScrollX: () => (/* reexport safe */ _use_honey_synthetic_scroll_x__WEBPACK_IMPORTED_MODULE_9__.useHoneySyntheticScrollX),
@@ -13739,6 +13743,8 @@ __webpack_require__.r(__webpack_exports__);
13739
13743
  /* harmony import */ var _use_honey_synthetic_scroll__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./use-honey-synthetic-scroll */ "./src/hooks/use-honey-synthetic-scroll.ts");
13740
13744
  /* harmony import */ var _use_honey_synthetic_scroll_x__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./use-honey-synthetic-scroll-x */ "./src/hooks/use-honey-synthetic-scroll-x.ts");
13741
13745
  /* harmony import */ var _use_honey_synthetic_scroll_y__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./use-honey-synthetic-scroll-y */ "./src/hooks/use-honey-synthetic-scroll-y.ts");
13746
+ /* harmony import */ var _use_honey_raf_loop__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./use-honey-raf-loop */ "./src/hooks/use-honey-raf-loop.ts");
13747
+
13742
13748
 
13743
13749
 
13744
13750
 
@@ -14163,6 +14169,149 @@ const useHoneyOverlay = (targetOverlayId, { onKeyUp } = {}) => {
14163
14169
  };
14164
14170
 
14165
14171
 
14172
+ /***/ },
14173
+
14174
+ /***/ "./src/hooks/use-honey-raf-loop.ts"
14175
+ /*!*****************************************!*\
14176
+ !*** ./src/hooks/use-honey-raf-loop.ts ***!
14177
+ \*****************************************/
14178
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
14179
+
14180
+ "use strict";
14181
+ __webpack_require__.r(__webpack_exports__);
14182
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
14183
+ /* harmony export */ useHoneyRafLoop: () => (/* binding */ useHoneyRafLoop)
14184
+ /* harmony export */ });
14185
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
14186
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
14187
+
14188
+ /**
14189
+ * A hook for running a controlled `requestAnimationFrame` loop.
14190
+ *
14191
+ * Features:
14192
+ * - Explicit RAF lifecycle control (`start` / `stop`)
14193
+ * - Delta time (`dt`) calculation with frame clamping
14194
+ * - Automatic cleanup on unmounting
14195
+ * - Conservative handling of tab visibility changes (mobile-safe)
14196
+ * - Safe error handling (stops loop on exception)
14197
+ *
14198
+ * Visibility behavior:
14199
+ * - The RAF loop is always stopped when the document becomes hidden
14200
+ * - Automatic resume is disabled by default and must be explicitly enabled
14201
+ *
14202
+ * This hook is designed for gesture handling, inertia, physics simulations,
14203
+ * and animation loops that must not trigger React re-renders on every frame.
14204
+ *
14205
+ * @param callback - Function invoked on each animation frame.
14206
+ * @param options - Optional configuration for the RAF loop.
14207
+ *
14208
+ * @returns Control helpers and RAF loop state.
14209
+ *
14210
+ * @example
14211
+ * ```ts
14212
+ * // Gesture-driven inertia (recommended usage)
14213
+ * // The RAF loop stops itself when motion decays.
14214
+ *
14215
+ * const velocityRef = useRef({ x: 12, y: 4 });
14216
+ *
14217
+ * const onFrame = useCallback<HoneyRafCallback>(
14218
+ * (dtMs, { stop }) => {
14219
+ * velocityRef.current.x *= 0.94;
14220
+ * velocityRef.current.y *= 0.94;
14221
+ *
14222
+ * setPosition(p => ({
14223
+ * x: p.x + velocityRef.current.x,
14224
+ * y: p.y + velocityRef.current.y,
14225
+ * }));
14226
+ *
14227
+ * if (
14228
+ * Math.abs(velocityRef.current.x) < 0.1 &&
14229
+ * Math.abs(velocityRef.current.y) < 0.1
14230
+ * ) {
14231
+ * stop(); // terminate RAF loop
14232
+ * }
14233
+ * },
14234
+ * [],
14235
+ * );
14236
+ *
14237
+ * useHoneyRafLoop(onFrame);
14238
+ * ```
14239
+ */
14240
+ const useHoneyRafLoop = (callback, { autoStart = false, resumeOnVisibility = false, maxDeltaMs = 32, // ~30fps clamp
14241
+ onError, } = {}) => {
14242
+ const rafIdRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);
14243
+ const lastTimeRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);
14244
+ const callbackRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(callback);
14245
+ // Always keep the latest callback without restarting RAF
14246
+ callbackRef.current = callback;
14247
+ const [isRafLoopRunning, setIsRafLoopRunning] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);
14248
+ const loop = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(time => {
14249
+ if (lastTimeRef.current === null) {
14250
+ lastTimeRef.current = time;
14251
+ }
14252
+ let dt = time - lastTimeRef.current;
14253
+ lastTimeRef.current = time;
14254
+ // Clamp delta (prevents jumps after background tab / lag)
14255
+ if (dt > maxDeltaMs) {
14256
+ dt = maxDeltaMs;
14257
+ }
14258
+ try {
14259
+ callbackRef.current(dt, {
14260
+ stop: stopRafLoop,
14261
+ });
14262
+ rafIdRef.current = requestAnimationFrame(loop);
14263
+ }
14264
+ catch (e) {
14265
+ stopRafLoop();
14266
+ onError?.(e);
14267
+ }
14268
+ }, [maxDeltaMs, onError]);
14269
+ const startRafLoop = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(() => {
14270
+ if (rafIdRef.current !== null) {
14271
+ return;
14272
+ }
14273
+ lastTimeRef.current = null;
14274
+ setIsRafLoopRunning(true);
14275
+ rafIdRef.current = requestAnimationFrame(loop);
14276
+ }, [loop]);
14277
+ const stopRafLoop = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(() => {
14278
+ if (rafIdRef.current === null) {
14279
+ return;
14280
+ }
14281
+ cancelAnimationFrame(rafIdRef.current);
14282
+ rafIdRef.current = null;
14283
+ lastTimeRef.current = null;
14284
+ setIsRafLoopRunning(false);
14285
+ }, []);
14286
+ (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
14287
+ if (autoStart) {
14288
+ startRafLoop();
14289
+ }
14290
+ return stopRafLoop;
14291
+ }, [autoStart, startRafLoop, stopRafLoop]);
14292
+ // Pause when a tab is hidden (important for mobile)
14293
+ (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
14294
+ const onVisibilityChange = () => {
14295
+ if (document.hidden) {
14296
+ stopRafLoop();
14297
+ }
14298
+ else if (resumeOnVisibility && autoStart) {
14299
+ startRafLoop();
14300
+ }
14301
+ };
14302
+ document.addEventListener('visibilitychange', onVisibilityChange);
14303
+ return () => {
14304
+ document.removeEventListener('visibilitychange', onVisibilityChange);
14305
+ };
14306
+ }, [autoStart, resumeOnVisibility, startRafLoop, stopRafLoop]);
14307
+ return {
14308
+ startRafLoop,
14309
+ stopRafLoop,
14310
+ isRafLoopRunning,
14311
+ };
14312
+ };
14313
+
14314
+
14166
14315
  /***/ },
14167
14316
 
14168
14317
  /***/ "./src/hooks/use-honey-resize.ts"
@@ -14309,7 +14458,7 @@ const useHoneySyntheticScrollY = (options) => (0,_use_honey_synthetic_scroll__WE
14309
14458
  "use strict";
14310
14459
  __webpack_require__.r(__webpack_exports__);
14311
14460
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
14312
- /* harmony export */ applyAxisScroll: () => (/* binding */ applyAxisScroll),
14461
+ /* harmony export */ resolveAxisTranslate: () => (/* binding */ resolveAxisTranslate),
14313
14462
  /* harmony export */ useHoneySyntheticScroll: () => (/* binding */ useHoneySyntheticScroll)
14314
14463
  /* harmony export */ });
14315
14464
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
@@ -14321,22 +14470,53 @@ __webpack_require__.r(__webpack_exports__);
14321
14470
 
14322
14471
 
14323
14472
 
14324
- /**
14325
- * Calculates the next translate value for a single scroll axis
14326
- * and determines whether movement is allowed within bounds.
14327
- *
14328
- * @returns The next translate value, or `null` if movement is not allowed.
14329
- */
14330
- const applyAxisScroll = ({ delta, currentTranslate, containerSize, overflowSize, overscrollPct, }) => {
14331
- if (overflowSize <= 0 || delta === 0) {
14473
+ const resolveAxisTranslate = ({ delta, translate, containerSize, overflowSize, overscrollPct, }) => {
14474
+ if (overflowSize <= 0) {
14332
14475
  return null;
14333
14476
  }
14334
14477
  const threshold = containerSize * (overscrollPct / 100);
14335
- const candidate = currentTranslate + delta;
14336
- const min = -(overflowSize + threshold);
14337
- const max = threshold;
14338
- const isWithinBounds = (delta < 0 && candidate >= min) || (delta > 0 && candidate <= max);
14339
- return isWithinBounds ? candidate : null;
14478
+ return (0,_react_hive_honey_utils__WEBPACK_IMPORTED_MODULE_1__.resolveBoundedDelta)({
14479
+ delta,
14480
+ value: translate,
14481
+ min: -(overflowSize + threshold),
14482
+ max: threshold,
14483
+ });
14484
+ };
14485
+ const applyScrollDelta = ({ axis, container, deltaX, deltaY, overscrollPct, }) => {
14486
+ const { translateX, translateY } = (0,_react_hive_honey_utils__WEBPACK_IMPORTED_MODULE_1__.parse2DMatrix)(container);
14487
+ let nextX = translateX;
14488
+ let nextY = translateY;
14489
+ let shouldScroll = false;
14490
+ if (axis === 'x' || axis === 'both') {
14491
+ const next = resolveAxisTranslate({
14492
+ delta: deltaX,
14493
+ translate: translateX,
14494
+ containerSize: container.clientWidth,
14495
+ overflowSize: (0,_react_hive_honey_utils__WEBPACK_IMPORTED_MODULE_1__.getXOverflowWidth)(container),
14496
+ overscrollPct,
14497
+ });
14498
+ if (next !== null) {
14499
+ nextX = next;
14500
+ shouldScroll = true;
14501
+ }
14502
+ }
14503
+ if (axis === 'y' || axis === 'both') {
14504
+ const next = resolveAxisTranslate({
14505
+ delta: deltaY,
14506
+ translate: translateY,
14507
+ containerSize: container.clientHeight,
14508
+ overflowSize: (0,_react_hive_honey_utils__WEBPACK_IMPORTED_MODULE_1__.getYOverflowHeight)(container),
14509
+ overscrollPct,
14510
+ });
14511
+ if (next !== null) {
14512
+ nextY = next;
14513
+ shouldScroll = true;
14514
+ }
14515
+ }
14516
+ if (shouldScroll) {
14517
+ container.style.transform = `translate(${nextX}px, ${nextY}px)`;
14518
+ }
14519
+ return shouldScroll;
14340
14520
  };
14341
14521
  /**
14342
14522
  * Enables synthetic scrolling for a container using pointer-based drag gestures.
@@ -14360,8 +14540,11 @@ const applyAxisScroll = ({ delta, currentTranslate, containerSize, overflowSize,
14360
14540
  *
14361
14541
  * @returns A ref that must be attached to the scrollable container element.
14362
14542
  */
14363
- const useHoneySyntheticScroll = ({ axis = 'both', overscrollPct = 0, onStartDrag, onEndDrag, resetOnResize = true, } = {}) => {
14364
- const scrollableContainerRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);
14543
+ const useHoneySyntheticScroll = ({ axis = 'both', overscrollPct = 0, onStartDrag, onEndDrag, resetOnResize = true, enablePointerScroll = true, } = {}) => {
14544
+ const containerRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);
14545
+ const handleOnStartDrag = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async (...args) => {
14546
+ return onStartDrag?.(...args) ?? true;
14547
+ }, [onStartDrag]);
14365
14548
  /**
14366
14549
  * Handles drag movement and applies clamped translation along the enabled axis or axes.
14367
14550
  *
@@ -14370,58 +14553,67 @@ const useHoneySyntheticScroll = ({ axis = 'both', overscrollPct = 0, onStartDrag
14370
14553
  * - Compute the candidate translate value from the drag delta.
14371
14554
  * - Clamp movement within calculated min / max bounds.
14372
14555
  */
14373
- const onMoveDrag = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(scrollableContainer => async ({ deltaX, deltaY }) => {
14374
- const { translateX, translateY } = (0,_react_hive_honey_utils__WEBPACK_IMPORTED_MODULE_1__.parse2DMatrix)(scrollableContainer);
14375
- let nextX = translateX;
14376
- let nextY = translateY;
14377
- let shouldScroll = false;
14378
- if (axis === 'x' || axis === 'both') {
14379
- const next = applyAxisScroll({
14380
- delta: deltaX,
14381
- currentTranslate: translateX,
14382
- containerSize: scrollableContainer.clientWidth,
14383
- overflowSize: (0,_react_hive_honey_utils__WEBPACK_IMPORTED_MODULE_1__.getXOverflowWidth)(scrollableContainer),
14384
- overscrollPct,
14385
- });
14386
- if (next !== null) {
14387
- nextX = next;
14388
- shouldScroll = true;
14389
- }
14390
- }
14391
- if (axis === 'y' || axis === 'both') {
14392
- const next = applyAxisScroll({
14393
- delta: deltaY,
14394
- currentTranslate: translateY,
14395
- containerSize: scrollableContainer.clientHeight,
14396
- overflowSize: (0,_react_hive_honey_utils__WEBPACK_IMPORTED_MODULE_1__.getYOverflowHeight)(scrollableContainer),
14397
- overscrollPct,
14398
- });
14399
- if (next !== null) {
14400
- nextY = next;
14401
- shouldScroll = true;
14402
- }
14403
- }
14404
- // Apply transform only when at least one axis was updated
14405
- if (shouldScroll) {
14406
- scrollableContainer.style.transform = `translate(${nextX}px, ${nextY}px)`;
14407
- }
14408
- return shouldScroll;
14409
- }, [overscrollPct]);
14410
- (0,_use_honey_drag__WEBPACK_IMPORTED_MODULE_2__.useHoneyDrag)(scrollableContainerRef, {
14411
- onStartDrag,
14412
- onMoveDrag,
14413
- onEndDrag,
14556
+ const handleOnMoveDrag = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(container => async ({ deltaX, deltaY }) => {
14557
+ return applyScrollDelta({
14558
+ container,
14559
+ deltaX,
14560
+ deltaY,
14561
+ axis,
14562
+ overscrollPct,
14563
+ });
14564
+ }, [axis, overscrollPct]);
14565
+ const handleOnEndDrag = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async (...args) => {
14566
+ onEndDrag?.(...args);
14567
+ }, [axis, overscrollPct, onEndDrag]);
14568
+ (0,_use_honey_drag__WEBPACK_IMPORTED_MODULE_2__.useHoneyDrag)(containerRef, {
14569
+ onStartDrag: handleOnStartDrag,
14570
+ onMoveDrag: handleOnMoveDrag,
14571
+ onEndDrag: handleOnEndDrag,
14414
14572
  });
14415
14573
  const resizeHandler = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(() => {
14416
- const scrollableContainer = scrollableContainerRef.current;
14417
- if (scrollableContainer) {
14418
- scrollableContainer.style.removeProperty('transform');
14574
+ const container = containerRef.current;
14575
+ if (container) {
14576
+ container.style.removeProperty('transform');
14419
14577
  }
14420
14578
  }, []);
14421
14579
  (0,_use_honey_resize__WEBPACK_IMPORTED_MODULE_3__.useHoneyResize)(resizeHandler, {
14422
14580
  enabled: resetOnResize,
14423
14581
  });
14424
- return scrollableContainerRef;
14582
+ (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
14583
+ const container = containerRef.current;
14584
+ if (!container) {
14585
+ return;
14586
+ }
14587
+ container.style.overscrollBehavior = 'contain';
14588
+ container.style.touchAction = 'none';
14589
+ const handleOnWheel = (event) => {
14590
+ const { deltaX, deltaY } = (0,_react_hive_honey_utils__WEBPACK_IMPORTED_MODULE_1__.resolveAxisDelta)({
14591
+ deltaX: event.deltaX,
14592
+ deltaY: event.deltaY,
14593
+ }, axis);
14594
+ const didScroll = applyScrollDelta({
14595
+ container,
14596
+ deltaX,
14597
+ deltaY,
14598
+ axis,
14599
+ overscrollPct,
14600
+ });
14601
+ if (didScroll) {
14602
+ event.preventDefault();
14603
+ }
14604
+ };
14605
+ if (enablePointerScroll) {
14606
+ container.addEventListener('wheel', handleOnWheel, { passive: false });
14607
+ }
14608
+ return () => {
14609
+ container.style.removeProperty('overscroll-behavior');
14610
+ container.style.removeProperty('touch-action');
14611
+ if (enablePointerScroll) {
14612
+ container.removeEventListener('wheel', handleOnWheel);
14613
+ }
14614
+ };
14615
+ }, [enablePointerScroll]);
14616
+ return containerRef;
14425
14617
  };
14426
14618
 
14427
14619
 
@@ -15192,7 +15384,6 @@ __webpack_require__.r(__webpack_exports__);
15192
15384
  /* harmony export */ HoneyPopupContext: () => (/* reexport safe */ _components__WEBPACK_IMPORTED_MODULE_3__.HoneyPopupContext),
15193
15385
  /* harmony export */ HoneyStatusContent: () => (/* reexport safe */ _components__WEBPACK_IMPORTED_MODULE_3__.HoneyStatusContent),
15194
15386
  /* harmony export */ __DEV__: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_1__.__DEV__),
15195
- /* harmony export */ applyAxisScroll: () => (/* reexport safe */ _hooks__WEBPACK_IMPORTED_MODULE_5__.applyAxisScroll),
15196
15387
  /* harmony export */ applyBreakpointStyles: () => (/* reexport safe */ _helpers__WEBPACK_IMPORTED_MODULE_7__.applyBreakpointStyles),
15197
15388
  /* harmony export */ bpMedia: () => (/* reexport safe */ _helpers__WEBPACK_IMPORTED_MODULE_7__.bpMedia),
15198
15389
  /* harmony export */ createStyles: () => (/* reexport safe */ _helpers__WEBPACK_IMPORTED_MODULE_7__.createStyles),
@@ -15202,6 +15393,7 @@ __webpack_require__.r(__webpack_exports__);
15202
15393
  /* harmony export */ getHoneyListItemId: () => (/* reexport safe */ _components__WEBPACK_IMPORTED_MODULE_3__.getHoneyListItemId),
15203
15394
  /* harmony export */ honeyVisibilityTransitionEffect: () => (/* reexport safe */ _effects__WEBPACK_IMPORTED_MODULE_8__.honeyVisibilityTransitionEffect),
15204
15395
  /* harmony export */ mergeRefs: () => (/* reexport safe */ _helpers__WEBPACK_IMPORTED_MODULE_7__.mergeRefs),
15396
+ /* harmony export */ resolveAxisTranslate: () => (/* reexport safe */ _hooks__WEBPACK_IMPORTED_MODULE_5__.resolveAxisTranslate),
15205
15397
  /* harmony export */ resolveScreenState: () => (/* reexport safe */ _helpers__WEBPACK_IMPORTED_MODULE_7__.resolveScreenState),
15206
15398
  /* harmony export */ resolveSpacing: () => (/* binding */ resolveSpacing),
15207
15399
  /* harmony export */ searchFlattenedItems: () => (/* reexport safe */ _utils__WEBPACK_IMPORTED_MODULE_6__.searchFlattenedItems),
@@ -15214,6 +15406,7 @@ __webpack_require__.r(__webpack_exports__);
15214
15406
  /* harmony export */ useHoneyOverlay: () => (/* reexport safe */ _hooks__WEBPACK_IMPORTED_MODULE_5__.useHoneyOverlay),
15215
15407
  /* harmony export */ useHoneyPopup: () => (/* reexport safe */ _components__WEBPACK_IMPORTED_MODULE_3__.useHoneyPopup),
15216
15408
  /* harmony export */ useHoneyPopupContext: () => (/* reexport safe */ _components__WEBPACK_IMPORTED_MODULE_3__.useHoneyPopupContext),
15409
+ /* harmony export */ useHoneyRafLoop: () => (/* reexport safe */ _hooks__WEBPACK_IMPORTED_MODULE_5__.useHoneyRafLoop),
15217
15410
  /* harmony export */ useHoneyResize: () => (/* reexport safe */ _hooks__WEBPACK_IMPORTED_MODULE_5__.useHoneyResize),
15218
15411
  /* harmony export */ useHoneySyntheticScroll: () => (/* reexport safe */ _hooks__WEBPACK_IMPORTED_MODULE_5__.useHoneySyntheticScroll),
15219
15412
  /* harmony export */ useHoneySyntheticScrollX: () => (/* reexport safe */ _hooks__WEBPACK_IMPORTED_MODULE_5__.useHoneySyntheticScrollX),