@react-hive/honey-layout 9.15.0 → 10.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.
- package/dist/hooks/use-honey-synthetic-scroll-x.d.ts +17 -0
- package/dist/hooks/use-honey-synthetic-scroll-y.d.ts +17 -0
- package/dist/hooks/use-honey-synthetic-scroll.d.ts +33 -4
- package/dist/index.cjs +13 -13
- package/dist/index.cjs.map +1 -1
- package/dist/index.dev.cjs +109 -51
- package/dist/index.dev.cjs.map +1 -1
- package/dist/index.mjs +14 -14
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
package/dist/index.dev.cjs
CHANGED
|
@@ -7934,30 +7934,34 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
7934
7934
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
7935
7935
|
/* harmony export */ FOCUSABLE_HTML_TAGS: () => (/* binding */ ne),
|
|
7936
7936
|
/* harmony export */ assert: () => (/* binding */ t),
|
|
7937
|
-
/* harmony export */ blobToFile: () => (/* binding */
|
|
7937
|
+
/* harmony export */ blobToFile: () => (/* binding */ Se),
|
|
7938
7938
|
/* harmony export */ calculateEuclideanDistance: () => (/* binding */ ee),
|
|
7939
7939
|
/* harmony export */ calculateMovingSpeed: () => (/* binding */ te),
|
|
7940
7940
|
/* harmony export */ calculatePercentage: () => (/* binding */ re),
|
|
7941
|
-
/* harmony export */ camelToDashCase: () => (/* binding */
|
|
7941
|
+
/* harmony export */ camelToDashCase: () => (/* binding */ q),
|
|
7942
7942
|
/* harmony export */ camelToWords: () => (/* binding */ J),
|
|
7943
|
-
/* harmony export */ chunk: () => (/* binding */
|
|
7943
|
+
/* harmony export */ chunk: () => (/* binding */ x),
|
|
7944
7944
|
/* harmony export */ cloneBlob: () => (/* binding */ ie),
|
|
7945
|
-
/* harmony export */ compact: () => (/* binding */
|
|
7945
|
+
/* harmony export */ compact: () => (/* binding */ _),
|
|
7946
7946
|
/* harmony export */ compose: () => (/* binding */ C),
|
|
7947
|
-
/* harmony export */ definedProps: () => (/* binding */
|
|
7947
|
+
/* harmony export */ definedProps: () => (/* binding */ ke),
|
|
7948
7948
|
/* harmony export */ delay: () => (/* binding */ X),
|
|
7949
7949
|
/* harmony export */ difference: () => (/* binding */ E),
|
|
7950
|
-
/* harmony export */ everyAsync: () => (/* binding */
|
|
7951
|
-
/* harmony export */ fileListToFiles: () => (/* binding */
|
|
7950
|
+
/* harmony export */ everyAsync: () => (/* binding */ W),
|
|
7951
|
+
/* harmony export */ fileListToFiles: () => (/* binding */ Ae),
|
|
7952
7952
|
/* harmony export */ filterParallel: () => (/* binding */ D),
|
|
7953
7953
|
/* harmony export */ filterSequential: () => (/* binding */ B),
|
|
7954
|
-
/* harmony export */ findAsync: () => (/* binding */
|
|
7954
|
+
/* harmony export */ findAsync: () => (/* binding */ Z),
|
|
7955
7955
|
/* harmony export */ getDOMRectIntersectionRatio: () => (/* binding */ oe),
|
|
7956
7956
|
/* harmony export */ getElementOffsetRect: () => (/* binding */ se),
|
|
7957
7957
|
/* harmony export */ getFocusableHtmlElements: () => (/* binding */ fe),
|
|
7958
|
-
/* harmony export */ getLocalStorageCapabilities: () => (/* binding */
|
|
7958
|
+
/* harmony export */ getLocalStorageCapabilities: () => (/* binding */ me),
|
|
7959
|
+
/* harmony export */ getXOverflowWidth: () => (/* binding */ ye),
|
|
7960
|
+
/* harmony export */ getYOverflowHeight: () => (/* binding */ ge),
|
|
7961
|
+
/* harmony export */ hasXOverflow: () => (/* binding */ he),
|
|
7962
|
+
/* harmony export */ hasYOverflow: () => (/* binding */ we),
|
|
7959
7963
|
/* harmony export */ hashString: () => (/* binding */ Q),
|
|
7960
|
-
/* harmony export */ intersection: () => (/* binding */
|
|
7964
|
+
/* harmony export */ intersection: () => (/* binding */ P),
|
|
7961
7965
|
/* harmony export */ invokeIfFunction: () => (/* binding */ N),
|
|
7962
7966
|
/* harmony export */ isAnchorHtmlElement: () => (/* binding */ le),
|
|
7963
7967
|
/* harmony export */ isArray: () => (/* binding */ S),
|
|
@@ -7967,25 +7971,25 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
7967
7971
|
/* harmony export */ isDate: () => (/* binding */ u),
|
|
7968
7972
|
/* harmony export */ isDecimal: () => (/* binding */ A),
|
|
7969
7973
|
/* harmony export */ isDefined: () => (/* binding */ a),
|
|
7970
|
-
/* harmony export */ isEmptyArray: () => (/* binding */
|
|
7974
|
+
/* harmony export */ isEmptyArray: () => (/* binding */ M),
|
|
7971
7975
|
/* harmony export */ isEmptyObject: () => (/* binding */ c),
|
|
7972
7976
|
/* harmony export */ isError: () => (/* binding */ h),
|
|
7973
|
-
/* harmony export */ isFile: () => (/* binding */
|
|
7974
|
-
/* harmony export */ isFiniteNumber: () => (/* binding */
|
|
7977
|
+
/* harmony export */ isFile: () => (/* binding */ pe),
|
|
7978
|
+
/* harmony export */ isFiniteNumber: () => (/* binding */ p),
|
|
7975
7979
|
/* harmony export */ isFunction: () => (/* binding */ v),
|
|
7976
7980
|
/* harmony export */ isHtmlElementFocusable: () => (/* binding */ ue),
|
|
7977
7981
|
/* harmony export */ isInteger: () => (/* binding */ b),
|
|
7978
|
-
/* harmony export */ isLocalStorageReadable: () => (/* binding */
|
|
7979
|
-
/* harmony export */ isMap: () => (/* binding */
|
|
7982
|
+
/* harmony export */ isLocalStorageReadable: () => (/* binding */ de),
|
|
7983
|
+
/* harmony export */ isMap: () => (/* binding */ g),
|
|
7980
7984
|
/* harmony export */ isNil: () => (/* binding */ n),
|
|
7981
|
-
/* harmony export */ isNilOrEmptyString: () => (/* binding */
|
|
7985
|
+
/* harmony export */ isNilOrEmptyString: () => (/* binding */ U),
|
|
7982
7986
|
/* harmony export */ isNull: () => (/* binding */ r),
|
|
7983
7987
|
/* harmony export */ isNumber: () => (/* binding */ o),
|
|
7984
7988
|
/* harmony export */ isObject: () => (/* binding */ l),
|
|
7985
7989
|
/* harmony export */ isPromise: () => (/* binding */ R),
|
|
7986
7990
|
/* harmony export */ isRegExp: () => (/* binding */ w),
|
|
7987
|
-
/* harmony export */ isSet: () => (/* binding */
|
|
7988
|
-
/* harmony export */ isString: () => (/* binding */
|
|
7991
|
+
/* harmony export */ isSet: () => (/* binding */ d),
|
|
7992
|
+
/* harmony export */ isString: () => (/* binding */ G),
|
|
7989
7993
|
/* harmony export */ isSymbol: () => (/* binding */ m),
|
|
7990
7994
|
/* harmony export */ isUndefined: () => (/* binding */ i),
|
|
7991
7995
|
/* harmony export */ isValidDate: () => (/* binding */ y),
|
|
@@ -7993,21 +7997,21 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
7993
7997
|
/* harmony export */ not: () => (/* binding */ F),
|
|
7994
7998
|
/* harmony export */ once: () => (/* binding */ L),
|
|
7995
7999
|
/* harmony export */ parse2DMatrix: () => (/* binding */ ae),
|
|
7996
|
-
/* harmony export */ parseFileName: () => (/* binding */
|
|
8000
|
+
/* harmony export */ parseFileName: () => (/* binding */ be),
|
|
7997
8001
|
/* harmony export */ pipe: () => (/* binding */ T),
|
|
7998
|
-
/* harmony export */ readFilesFromDataTransfer: () => (/* binding */
|
|
7999
|
-
/* harmony export */ reduceAsync: () => (/* binding */
|
|
8002
|
+
/* harmony export */ readFilesFromDataTransfer: () => (/* binding */ _e),
|
|
8003
|
+
/* harmony export */ reduceAsync: () => (/* binding */ z),
|
|
8000
8004
|
/* harmony export */ retry: () => (/* binding */ j),
|
|
8001
8005
|
/* harmony export */ runParallel: () => (/* binding */ $),
|
|
8002
8006
|
/* harmony export */ runSequential: () => (/* binding */ Y),
|
|
8003
|
-
/* harmony export */ someAsync: () => (/* binding */
|
|
8007
|
+
/* harmony export */ someAsync: () => (/* binding */ H),
|
|
8004
8008
|
/* harmony export */ splitStringIntoWords: () => (/* binding */ K),
|
|
8005
8009
|
/* harmony export */ timeout: () => (/* binding */ I),
|
|
8006
|
-
/* harmony export */ toKebabCase: () => (/* binding */
|
|
8007
|
-
/* harmony export */ traverseFileSystemDirectory: () => (/* binding */
|
|
8008
|
-
/* harmony export */ unique: () => (/* binding */
|
|
8010
|
+
/* harmony export */ toKebabCase: () => (/* binding */ V),
|
|
8011
|
+
/* harmony export */ traverseFileSystemDirectory: () => (/* binding */ Me),
|
|
8012
|
+
/* harmony export */ unique: () => (/* binding */ k)
|
|
8009
8013
|
/* harmony export */ });
|
|
8010
|
-
var e={};function t(e,t){if(!e)throw new Error(t)}e.d=(t,r)=>{for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},e.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);const r=e=>null===e,n=e=>null==e,a=e=>null!=e,i=e=>void 0===e,o=e=>"number"==typeof e,s=e=>"boolean"==typeof e,l=e=>"object"==typeof e,c=e=>l(e)&&!r(e)&&0===Object.keys(e).length,u=e=>e instanceof Date,f=e=>e instanceof Blob,h=e=>e instanceof Error,y=e=>u(e)&&!isNaN(e.getTime()),w=e=>e instanceof RegExp,
|
|
8014
|
+
var e={};function t(e,t){if(!e)throw new Error(t)}e.d=(t,r)=>{for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},e.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);const r=e=>null===e,n=e=>null==e,a=e=>null!=e,i=e=>void 0===e,o=e=>"number"==typeof e,s=e=>"boolean"==typeof e,l=e=>"object"==typeof e,c=e=>l(e)&&!r(e)&&0===Object.keys(e).length,u=e=>e instanceof Date,f=e=>e instanceof Blob,h=e=>e instanceof Error,y=e=>u(e)&&!isNaN(e.getTime()),w=e=>e instanceof RegExp,g=e=>e instanceof Map,d=e=>e instanceof Set,m=e=>"symbol"==typeof e,p=e=>o(e)&&isFinite(e),b=e=>o(e)&&Number.isInteger(e),A=e=>p(e)&&!Number.isInteger(e),S=e=>Array.isArray(e),M=e=>S(e)&&0===e.length,_=e=>e.filter(Boolean),k=e=>[...new Set(e)],x=(e,r)=>(t(r>0,"Chunk size must be greater than 0"),Array.from({length:Math.ceil(e.length/r)},(t,n)=>e.slice(n*r,(n+1)*r))),P=(...e)=>{if(0===e.length)return[];if(1===e.length)return[...e[0]];const[t,...r]=e;return k(t).filter(e=>r.every(t=>t.includes(e)))},E=(e,t)=>e.filter(e=>!t.includes(e)),T=(...e)=>t=>e.reduce((e,t)=>t(e),t),C=(...e)=>t=>e.reduceRight((e,t)=>t(e),t),O=()=>{},v=e=>"function"==typeof e,F=e=>(...t)=>!e(...t),N=(e,...t)=>"function"==typeof e?e(...t):e,X=e=>new Promise(t=>setTimeout(t,e)),I=async(e,t,r="Operation timed out")=>{try{return await Promise.race([e,X(t).then(()=>Promise.reject(new Error(r)))])}finally{}},j=(e,{maxAttempts:t=3,delayMs:r=300,backoff:n=!0,onRetry:a}={})=>async(...i)=>{let o;for(let s=1;s<=t;s++)try{return await e(...i)}catch(e){if(o=e,s<t){a?.(s,e);const t=n?r*2**(s-1):r;await X(t)}}throw o},L=e=>{let t,r=!1;return function(...n){return r||(r=!0,t=e.apply(this,n)),t}},R=e=>v(e?.then),Y=async(e,t)=>{const r=[];for(let n=0;n<e.length;n++)r.push(await t(e[n],n,e));return r},$=async(e,t)=>Promise.all(e.map(t)),B=async(e,t)=>{const r=[];for(let n=0;n<e.length;n++){const a=e[n];await t(a,n,e)&&r.push(a)}return r},D=async(e,t)=>{const r=await $(e,async(e,r,n)=>!!await t(e,r,n)&&e);return _(r)},H=async(e,t)=>{for(let r=0;r<e.length;r++)if(await t(e[r],r,e))return!0;return!1},W=async(e,t)=>{for(let r=0;r<e.length;r++)if(!await t(e[r],r,e))return!1;return!0},z=async(e,t,r)=>{let n=r;for(let r=0;r<e.length;r++)n=await t(n,e[r],r,e);return n},Z=async(e,t)=>{for(let r=0;r<e.length;r++)if(await t(e[r],r,e))return e[r];return null},G=e=>"string"==typeof e,U=e=>""===e||n(e),V=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),q=e=>{const t=e.charAt(0),r=e.slice(1);return t.toLowerCase()+r.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 r=0;r<e.length;r++)t=33*t^e.charCodeAt(r);return(t>>>0).toString(36)},ee=(e,t,r,n)=>{const a=r-e,i=n-t;return Math.hypot(a,i)},te=(e,t)=>Math.abs(e/t),re=(e,t)=>e*t/100,ne=["INPUT","SELECT","TEXTAREA","BUTTON","A"],ae=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[r,n,a,i,o,s]=t[1].split(", ").map(parseFloat);return{translateX:o,translateY:s,scaleX:r,scaleY:i,skewX:a,skewY:n}},ie=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),se=e=>new DOMRect(e.offsetLeft,e.offsetTop,e.clientWidth,e.clientHeight),le=e=>"A"===e.tagName,ce=e=>"true"===e.getAttribute("contenteditable"),ue=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 r=e.getAttribute("tabindex");return"-1"!==r&&(ne.includes(e.tagName)?!le(e)||""!==e.href:!!ce(e)||null!==r)},fe=e=>Array.from(e.querySelectorAll("*")).filter(ue),he=e=>e.scrollWidth>e.clientWidth,ye=e=>Math.max(0,e.scrollWidth-e.clientWidth),we=e=>e.scrollHeight>e.clientHeight,ge=e=>Math.max(0,e.scrollHeight-e.clientHeight),de=()=>{if("undefined"==typeof window||!window.localStorage)return!1;try{return window.localStorage.getItem("__non_existing_key__"),!0}catch{return!1}},me=()=>{if(!de())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}},pe=e=>e instanceof File,be=e=>{const t=e.lastIndexOf(".");return t<=0||t===e.length-1?[e,""]:[e.slice(0,t),e.slice(t+1).toLowerCase()]},Ae=e=>{if(!e)return[];const t=[];for(let r=0;r<e.length;r++)t.push(e[r]);return t},Se=(e,t)=>new File([e],t,{type:e.type}),Me=async(e,{skipFiles:t=[".DS_Store","Thumbs.db","desktop.ini","ehthumbs.db",".Spotlight-V100",".Trashes",".fseventsd","__MACOSX"]}={})=>{const r=new Set(t),n=await(async e=>{const t=e.createReader(),r=async()=>new Promise((e,n)=>{t.readEntries(async t=>{if(t.length)try{const n=await r();e([...t,...n])}catch(e){n(e)}else e([])},n)});return r()})(e);return(await $(n,async e=>e.isDirectory?Me(e,{skipFiles:t}):r.has(e.name)?[]:[await new Promise((t,r)=>{e.file(t,r)})])).flat()},_e=async(e,t={})=>{const r=e?.items;if(!r)return[];const n=[];for(let e=0;e<r.length;e++){const a=r[e];if("webkitGetAsEntry"in a){const e=a.webkitGetAsEntry?.();if(e?.isDirectory){n.push(Me(e,t));continue}if(e?.isFile){n.push(new Promise((t,r)=>e.file(e=>t([e]),r)));continue}}const i=a.getAsFile();i&&n.push(Promise.resolve([i]))}return(await Promise.all(n)).flat()},ke=e=>Object.entries(e).reduce((e,[t,r])=>(void 0!==r&&(e[t]=r),e),{});
|
|
8011
8015
|
//# sourceMappingURL=index.mjs.map
|
|
8012
8016
|
|
|
8013
8017
|
/***/ },
|
|
@@ -13691,6 +13695,7 @@ const mergeRefs = (...refs) => value => {
|
|
|
13691
13695
|
"use strict";
|
|
13692
13696
|
__webpack_require__.r(__webpack_exports__);
|
|
13693
13697
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
13698
|
+
/* harmony export */ applyAxisScroll: () => (/* reexport safe */ _use_honey_synthetic_scroll__WEBPACK_IMPORTED_MODULE_8__.applyAxisScroll),
|
|
13694
13699
|
/* harmony export */ useHoneyDocumentKeyUpHandler: () => (/* reexport safe */ _use_honey_document_key_up_handler__WEBPACK_IMPORTED_MODULE_3__.useHoneyDocumentKeyUpHandler),
|
|
13695
13700
|
/* harmony export */ useHoneyDrag: () => (/* reexport safe */ _use_honey_drag__WEBPACK_IMPORTED_MODULE_2__.useHoneyDrag),
|
|
13696
13701
|
/* harmony export */ useHoneyLayout: () => (/* reexport safe */ _use_honey_layout__WEBPACK_IMPORTED_MODULE_4__.useHoneyLayout),
|
|
@@ -14212,6 +14217,23 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
14212
14217
|
/* harmony export */ });
|
|
14213
14218
|
/* harmony import */ var _use_honey_synthetic_scroll__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./use-honey-synthetic-scroll */ "./src/hooks/use-honey-synthetic-scroll.ts");
|
|
14214
14219
|
|
|
14220
|
+
/**
|
|
14221
|
+
* Enables synthetic horizontal (X-axis) scrolling for a container element
|
|
14222
|
+
* using pointer-based drag interactions.
|
|
14223
|
+
*
|
|
14224
|
+
* This is a convenience wrapper around {@link useHoneySyntheticScroll} with
|
|
14225
|
+
* the axis fixed to `'x'`.
|
|
14226
|
+
*
|
|
14227
|
+
* All behavior, boundaries, and lifecycle guarantees are identical to the
|
|
14228
|
+
* base hook, but limited to horizontal movement only.
|
|
14229
|
+
*
|
|
14230
|
+
* @template Element - The HTML element type of the scrollable container.
|
|
14231
|
+
*
|
|
14232
|
+
* @param options - Configuration options forwarded to
|
|
14233
|
+
* {@link useHoneySyntheticScroll}, excluding the `axis` option.
|
|
14234
|
+
*
|
|
14235
|
+
* @returns A ref that must be attached to the scrollable container element.
|
|
14236
|
+
*/
|
|
14215
14237
|
const useHoneySyntheticScrollX = (options) => (0,_use_honey_synthetic_scroll__WEBPACK_IMPORTED_MODULE_0__.useHoneySyntheticScroll)({
|
|
14216
14238
|
...options,
|
|
14217
14239
|
axis: 'x',
|
|
@@ -14233,6 +14255,23 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
14233
14255
|
/* harmony export */ });
|
|
14234
14256
|
/* harmony import */ var _use_honey_synthetic_scroll__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./use-honey-synthetic-scroll */ "./src/hooks/use-honey-synthetic-scroll.ts");
|
|
14235
14257
|
|
|
14258
|
+
/**
|
|
14259
|
+
* Enables synthetic vertical (Y-axis) scrolling for a container element
|
|
14260
|
+
* using pointer-based drag interactions.
|
|
14261
|
+
*
|
|
14262
|
+
* This is a convenience wrapper around {@link useHoneySyntheticScroll} with
|
|
14263
|
+
* the axis fixed to `'y'`.
|
|
14264
|
+
*
|
|
14265
|
+
* All behavior, boundaries, and lifecycle guarantees are identical to the
|
|
14266
|
+
* base hook, but limited to vertical movement only.
|
|
14267
|
+
*
|
|
14268
|
+
* @template Element - The HTML element type of the scrollable container.
|
|
14269
|
+
*
|
|
14270
|
+
* @param options - Configuration options forwarded to
|
|
14271
|
+
* {@link useHoneySyntheticScroll}, excluding the `axis` option.
|
|
14272
|
+
*
|
|
14273
|
+
* @returns A ref that must be attached to the scrollable container element.
|
|
14274
|
+
*/
|
|
14236
14275
|
const useHoneySyntheticScrollY = (options) => (0,_use_honey_synthetic_scroll__WEBPACK_IMPORTED_MODULE_0__.useHoneySyntheticScroll)({
|
|
14237
14276
|
...options,
|
|
14238
14277
|
axis: 'y',
|
|
@@ -14250,6 +14289,7 @@ const useHoneySyntheticScrollY = (options) => (0,_use_honey_synthetic_scroll__WE
|
|
|
14250
14289
|
"use strict";
|
|
14251
14290
|
__webpack_require__.r(__webpack_exports__);
|
|
14252
14291
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
14292
|
+
/* harmony export */ applyAxisScroll: () => (/* binding */ applyAxisScroll),
|
|
14253
14293
|
/* harmony export */ useHoneySyntheticScroll: () => (/* binding */ useHoneySyntheticScroll)
|
|
14254
14294
|
/* harmony export */ });
|
|
14255
14295
|
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
|
|
@@ -14261,6 +14301,23 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
14261
14301
|
|
|
14262
14302
|
|
|
14263
14303
|
|
|
14304
|
+
/**
|
|
14305
|
+
* Calculates the next translate value for a single scroll axis
|
|
14306
|
+
* and determines whether movement is allowed within bounds.
|
|
14307
|
+
*
|
|
14308
|
+
* @returns The next translate value, or `null` if movement is not allowed.
|
|
14309
|
+
*/
|
|
14310
|
+
const applyAxisScroll = ({ delta, currentTranslate, containerSize, overflowSize, overscrollPct, }) => {
|
|
14311
|
+
if (overflowSize <= 0 || delta === 0) {
|
|
14312
|
+
return null;
|
|
14313
|
+
}
|
|
14314
|
+
const threshold = containerSize * (overscrollPct / 100);
|
|
14315
|
+
const candidate = currentTranslate + delta;
|
|
14316
|
+
const min = -(overflowSize + threshold);
|
|
14317
|
+
const max = threshold;
|
|
14318
|
+
const isWithinBounds = (delta < 0 && candidate >= min) || (delta > 0 && candidate <= max);
|
|
14319
|
+
return isWithinBounds ? candidate : null;
|
|
14320
|
+
};
|
|
14264
14321
|
/**
|
|
14265
14322
|
* Enables synthetic scrolling for a container using pointer-based drag gestures.
|
|
14266
14323
|
*
|
|
@@ -14283,7 +14340,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
14283
14340
|
*
|
|
14284
14341
|
* @returns A ref that must be attached to the scrollable container element.
|
|
14285
14342
|
*/
|
|
14286
|
-
const useHoneySyntheticScroll = ({ axis = 'both',
|
|
14343
|
+
const useHoneySyntheticScroll = ({ axis = 'both', overscrollPct = 0, onStartDrag, onEndDrag, resetOnResize = true, } = {}) => {
|
|
14287
14344
|
const scrollableContainerRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);
|
|
14288
14345
|
/**
|
|
14289
14346
|
* Handles drag movement and applies clamped translation along the enabled axis or axes.
|
|
@@ -14297,39 +14354,39 @@ const useHoneySyntheticScroll = ({ axis = 'both', availableWindowPct = 0, onStar
|
|
|
14297
14354
|
const { translateX, translateY } = (0,_react_hive_honey_utils__WEBPACK_IMPORTED_MODULE_1__.parse2DMatrix)(scrollableContainer);
|
|
14298
14355
|
let nextX = translateX;
|
|
14299
14356
|
let nextY = translateY;
|
|
14300
|
-
let
|
|
14357
|
+
let shouldScroll = false;
|
|
14301
14358
|
if (axis === 'x' || axis === 'both') {
|
|
14302
|
-
const
|
|
14303
|
-
|
|
14304
|
-
|
|
14305
|
-
|
|
14306
|
-
|
|
14307
|
-
|
|
14308
|
-
|
|
14309
|
-
|
|
14310
|
-
|
|
14311
|
-
|
|
14359
|
+
const next = applyAxisScroll({
|
|
14360
|
+
delta: deltaX,
|
|
14361
|
+
currentTranslate: translateX,
|
|
14362
|
+
containerSize: scrollableContainer.clientWidth,
|
|
14363
|
+
overflowSize: (0,_react_hive_honey_utils__WEBPACK_IMPORTED_MODULE_1__.getXOverflowWidth)(scrollableContainer),
|
|
14364
|
+
overscrollPct,
|
|
14365
|
+
});
|
|
14366
|
+
if (next !== null) {
|
|
14367
|
+
nextX = next;
|
|
14368
|
+
shouldScroll = true;
|
|
14312
14369
|
}
|
|
14313
14370
|
}
|
|
14314
14371
|
if (axis === 'y' || axis === 'both') {
|
|
14315
|
-
const
|
|
14316
|
-
|
|
14317
|
-
|
|
14318
|
-
|
|
14319
|
-
|
|
14320
|
-
|
|
14321
|
-
|
|
14322
|
-
|
|
14323
|
-
|
|
14324
|
-
|
|
14372
|
+
const next = applyAxisScroll({
|
|
14373
|
+
delta: deltaY,
|
|
14374
|
+
currentTranslate: translateY,
|
|
14375
|
+
containerSize: scrollableContainer.clientHeight,
|
|
14376
|
+
overflowSize: (0,_react_hive_honey_utils__WEBPACK_IMPORTED_MODULE_1__.getYOverflowHeight)(scrollableContainer),
|
|
14377
|
+
overscrollPct,
|
|
14378
|
+
});
|
|
14379
|
+
if (next !== null) {
|
|
14380
|
+
nextY = next;
|
|
14381
|
+
shouldScroll = true;
|
|
14325
14382
|
}
|
|
14326
14383
|
}
|
|
14327
14384
|
// Apply transform only when at least one axis was updated
|
|
14328
|
-
if (
|
|
14385
|
+
if (shouldScroll) {
|
|
14329
14386
|
scrollableContainer.style.transform = `translate(${nextX}px, ${nextY}px)`;
|
|
14330
14387
|
}
|
|
14331
|
-
return
|
|
14332
|
-
}, [
|
|
14388
|
+
return shouldScroll;
|
|
14389
|
+
}, [overscrollPct]);
|
|
14333
14390
|
(0,_use_honey_drag__WEBPACK_IMPORTED_MODULE_2__.useHoneyDrag)(scrollableContainerRef, {
|
|
14334
14391
|
onStartDrag,
|
|
14335
14392
|
onMoveDrag,
|
|
@@ -15090,6 +15147,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
15090
15147
|
/* harmony export */ HoneyPopupContext: () => (/* reexport safe */ _components__WEBPACK_IMPORTED_MODULE_3__.HoneyPopupContext),
|
|
15091
15148
|
/* harmony export */ HoneyStatusContent: () => (/* reexport safe */ _components__WEBPACK_IMPORTED_MODULE_3__.HoneyStatusContent),
|
|
15092
15149
|
/* harmony export */ __DEV__: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_1__.__DEV__),
|
|
15150
|
+
/* harmony export */ applyAxisScroll: () => (/* reexport safe */ _hooks__WEBPACK_IMPORTED_MODULE_5__.applyAxisScroll),
|
|
15093
15151
|
/* harmony export */ applyBreakpointStyles: () => (/* reexport safe */ _helpers__WEBPACK_IMPORTED_MODULE_7__.applyBreakpointStyles),
|
|
15094
15152
|
/* harmony export */ bpMedia: () => (/* reexport safe */ _helpers__WEBPACK_IMPORTED_MODULE_7__.bpMedia),
|
|
15095
15153
|
/* harmony export */ createStyles: () => (/* reexport safe */ _helpers__WEBPACK_IMPORTED_MODULE_7__.createStyles),
|