react-abohook-fullpage 1.1.2 → 1.1.3

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/index.cjs.js CHANGED
@@ -1,6 +1,6 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const d=require("react");var N={exports:{}},k={};var q;function oe(){if(q)return k;q=1;var r=Symbol.for("react.transitional.element"),o=Symbol.for("react.fragment");function i(f,n,a){var l=null;if(a!==void 0&&(l=""+a),n.key!==void 0&&(l=""+n.key),"key"in n){a={};for(var p in n)p!=="key"&&(a[p]=n[p])}else a=n;return n=a.ref,{$$typeof:r,type:f,key:l,ref:n!==void 0?n:null,props:a}}return k.Fragment=o,k.jsx=i,k.jsxs=i,k}var A={};var J;function ae(){return J||(J=1,process.env.NODE_ENV!=="production"&&(function(){function r(e){if(e==null)return null;if(typeof e=="function")return e.$$typeof===te?null:e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case m:return"Fragment";case S:return"Profiler";case x:return"StrictMode";case Z:return"Suspense";case Q:return"SuspenseList";case ee:return"Activity"}if(typeof e=="object")switch(typeof e.tag=="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),e.$$typeof){case R:return"Portal";case j:return e.displayName||"Context";case O:return(e._context.displayName||"Context")+".Consumer";case v:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case K:return t=e.displayName||null,t!==null?t:r(e.type)||"Memo";case L:t=e._payload,e=e._init;try{return r(e(t))}catch{}}return null}function o(e){return""+e}function i(e){try{o(e);var t=!1}catch{t=!0}if(t){t=console;var s=t.error,u=typeof Symbol=="function"&&Symbol.toStringTag&&e[Symbol.toStringTag]||e.constructor.name||"Object";return s.call(t,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",u),o(e)}}function f(e){if(e===m)return"<>";if(typeof e=="object"&&e!==null&&e.$$typeof===L)return"<...>";try{var t=r(e);return t?"<"+t+">":"<...>"}catch{return"<...>"}}function n(){var e=Y.A;return e===null?null:e.getOwner()}function a(){return Error("react-stack-top-frame")}function l(e){if(M.call(e,"key")){var t=Object.getOwnPropertyDescriptor(e,"key").get;if(t&&t.isReactWarning)return!1}return e.key!==void 0}function p(e,t){function s(){U||(U=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",t))}s.isReactWarning=!0,Object.defineProperty(e,"key",{get:s,configurable:!0})}function h(){var e=r(this.type);return W[e]||(W[e]=!0,console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.")),e=this.props.ref,e!==void 0?e:null}function g(e,t,s,u,F,I){var c=s.ref;return e={$$typeof:w,type:e,key:t,props:s,_owner:u},(c!==void 0?c:null)!==null?Object.defineProperty(e,"ref",{enumerable:!1,get:h}):Object.defineProperty(e,"ref",{enumerable:!1,value:null}),e._store={},Object.defineProperty(e._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(e,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(e,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:F}),Object.defineProperty(e,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:I}),Object.freeze&&(Object.freeze(e.props),Object.freeze(e)),e}function T(e,t,s,u,F,I){var c=t.children;if(c!==void 0)if(u)if(re(c)){for(u=0;u<c.length;u++)y(c[u]);Object.freeze&&Object.freeze(c)}else console.error("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else y(c);if(M.call(t,"key")){c=r(e);var P=Object.keys(t).filter(function(ne){return ne!=="key"});u=0<P.length?"{key: someKey, "+P.join(": ..., ")+": ...}":"{key: someKey}",V[c+u]||(P=0<P.length?"{"+P.join(": ..., ")+": ...}":"{}",console.error(`A props object containing a "key" prop is being spread into JSX:
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("react");var C={exports:{}},O={};var H;function oe(){if(H)return O;H=1;var r=Symbol.for("react.transitional.element"),n=Symbol.for("react.fragment");function l(d,s,o){var a=null;if(o!==void 0&&(a=""+o),s.key!==void 0&&(a=""+s.key),"key"in s){o={};for(var m in s)m!=="key"&&(o[m]=s[m])}else o=s;return s=o.ref,{$$typeof:r,type:d,key:a,ref:s!==void 0?s:null,props:o}}return O.Fragment=n,O.jsx=l,O.jsxs=l,O}var j={};var X;function ae(){return X||(X=1,process.env.NODE_ENV!=="production"&&(function(){function r(e){if(e==null)return null;if(typeof e=="function")return e.$$typeof===te?null:e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case p:return"Fragment";case v:return"Profiler";case h:return"StrictMode";case N:return"Suspense";case E:return"SuspenseList";case ee:return"Activity"}if(typeof e=="object")switch(typeof e.tag=="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),e.$$typeof){case P:return"Portal";case T:return e.displayName||"Context";case y:return(e._context.displayName||"Context")+".Consumer";case F:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case K:return t=e.displayName||null,t!==null?t:r(e.type)||"Memo";case Y:t=e._payload,e=e._init;try{return r(e(t))}catch{}}return null}function n(e){return""+e}function l(e){try{n(e);var t=!1}catch{t=!0}if(t){t=console;var i=t.error,c=typeof Symbol=="function"&&Symbol.toStringTag&&e[Symbol.toStringTag]||e.constructor.name||"Object";return i.call(t,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",c),n(e)}}function d(e){if(e===p)return"<>";if(typeof e=="object"&&e!==null&&e.$$typeof===Y)return"<...>";try{var t=r(e);return t?"<"+t+">":"<...>"}catch{return"<...>"}}function s(){var e=I.A;return e===null?null:e.getOwner()}function o(){return Error("react-stack-top-frame")}function a(e){if(W.call(e,"key")){var t=Object.getOwnPropertyDescriptor(e,"key").get;if(t&&t.isReactWarning)return!1}return e.key!==void 0}function m(e,t){function i(){z||(z=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",t))}i.isReactWarning=!0,Object.defineProperty(e,"key",{get:i,configurable:!0})}function g(){var e=r(this.type);return G[e]||(G[e]=!0,console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.")),e=this.props.ref,e!==void 0?e:null}function b(e,t,i,c,L,D){var f=i.ref;return e={$$typeof:x,type:e,key:t,props:i,_owner:c},(f!==void 0?f:null)!==null?Object.defineProperty(e,"ref",{enumerable:!1,get:g}):Object.defineProperty(e,"ref",{enumerable:!1,value:null}),e._store={},Object.defineProperty(e._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(e,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(e,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:L}),Object.defineProperty(e,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:D}),Object.freeze&&(Object.freeze(e.props),Object.freeze(e)),e}function w(e,t,i,c,L,D){var f=t.children;if(f!==void 0)if(c)if(re(f)){for(c=0;c<f.length;c++)S(f[c]);Object.freeze&&Object.freeze(f)}else console.error("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else S(f);if(W.call(t,"key")){f=r(e);var A=Object.keys(t).filter(function(ne){return ne!=="key"});c=0<A.length?"{key: someKey, "+A.join(": ..., ")+": ...}":"{key: someKey}",J[f+c]||(A=0<A.length?"{"+A.join(": ..., ")+": ...}":"{}",console.error(`A props object containing a "key" prop is being spread into JSX:
2
2
  let props = %s;
3
3
  <%s {...props} />
4
4
  React keys must be passed directly to JSX without using spread:
5
5
  let props = %s;
6
- <%s key={someKey} {...props} />`,u,c,P,c),V[c+u]=!0)}if(c=null,s!==void 0&&(i(s),c=""+s),l(t)&&(i(t.key),c=""+t.key),"key"in t){s={};for(var $ in t)$!=="key"&&(s[$]=t[$])}else s=t;return c&&p(s,typeof e=="function"?e.displayName||e.name||"Unknown":e),g(e,c,s,n(),F,I)}function y(e){b(e)?e._store&&(e._store.validated=1):typeof e=="object"&&e!==null&&e.$$typeof===L&&(e._payload.status==="fulfilled"?b(e._payload.value)&&e._payload.value._store&&(e._payload.value._store.validated=1):e._store&&(e._store.validated=1))}function b(e){return typeof e=="object"&&e!==null&&e.$$typeof===w}var _=d,w=Symbol.for("react.transitional.element"),R=Symbol.for("react.portal"),m=Symbol.for("react.fragment"),x=Symbol.for("react.strict_mode"),S=Symbol.for("react.profiler"),O=Symbol.for("react.consumer"),j=Symbol.for("react.context"),v=Symbol.for("react.forward_ref"),Z=Symbol.for("react.suspense"),Q=Symbol.for("react.suspense_list"),K=Symbol.for("react.memo"),L=Symbol.for("react.lazy"),ee=Symbol.for("react.activity"),te=Symbol.for("react.client.reference"),Y=_.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,M=Object.prototype.hasOwnProperty,re=Array.isArray,C=console.createTask?console.createTask:function(){return null};_={react_stack_bottom_frame:function(e){return e()}};var U,W={},z=_.react_stack_bottom_frame.bind(_,a)(),G=C(f(a)),V={};A.Fragment=m,A.jsx=function(e,t,s){var u=1e4>Y.recentlyCreatedOwnerStacks++;return T(e,t,s,!1,u?Error("react-stack-top-frame"):z,u?C(f(e)):G)},A.jsxs=function(e,t,s){var u=1e4>Y.recentlyCreatedOwnerStacks++;return T(e,t,s,!0,u?Error("react-stack-top-frame"):z,u?C(f(e)):G)}})()),A}var H;function se(){return H||(H=1,process.env.NODE_ENV==="production"?N.exports=oe():N.exports=ae()),N.exports}var E=se();const ie=50,le=(r,o,i,f=700)=>{const[n,a]=d.useState(0),[l,p]=d.useState(!0),h=d.useRef(!1),[g,T]=d.useState(0),y=o&&n+1===r,b=d.useRef(0),_=d.useRef(0),w=d.useRef(!1),R=(m,x)=>{if(m<0||m>=r||h.current)return;const S=x===2;h.current=!0,T(n),a(m),y?m===3||n===r-1?a(S?g:m):a(g):a(m),o&&r===m+1?p(!1):p(!0),setTimeout(()=>{h.current=!1},f)};return d.useEffect(()=>{i&&i(n);const m=v=>{if(h.current)return v.preventDefault();v.deltaY>0?R(n+1,2):R(n-1,2)},x=v=>{h.current||(v.key==="ArrowDown"&&R(n+1,2),v.key==="ArrowUp"&&R(n-1,2))},S=v=>{b.current=v.touches[0].clientY,w.current=!1},O=v=>{_.current=v.touches[0].clientY,w.current=!0},j=()=>{if(!w.current)return;const v=b.current-_.current;Math.abs(v)>=ie&&(v>0?R(n+1,2):R(n-1,2))};return window.addEventListener("wheel",m,{passive:!1}),window.addEventListener("keydown",x),window.addEventListener("touchstart",S,{passive:!0}),window.addEventListener("touchmove",O,{passive:!0}),window.addEventListener("touchend",j),()=>{window.removeEventListener("wheel",m),window.removeEventListener("keydown",x),window.removeEventListener("touchstart",S),window.removeEventListener("touchmove",O),window.removeEventListener("touchend",j)}},[n,r,o,i]),{active:n,goToSection:R,isHiddenFooter:l}},ue=(r=!1)=>{d.useEffect(()=>{if(r)return;const o=i=>i.preventDefault();return window.addEventListener("contextmenu",o),()=>{window.removeEventListener("contextmenu",o)}},[r])};function ce({children:r,index:o,active:i,isHiddenFooter:f}){return E.jsx("section",{style:{position:"relative",width:"100%",height:"100vh",overflow:"hidden",filter:o===i||f?"blur(0px)":"blur(6px)"},children:r})}const fe=d.memo(ce);function de({sectionsLen:r,active:o,goToSection:i,direction:f="right"}){const n=f==="bottom";return E.jsx("div",{style:{position:"fixed",right:f==="right"?24:f==="bottom"?"50%":void 0,left:f==="left"?24:void 0,top:n?void 0:"50%",bottom:n?"5%":void 0,transform:"translateY(-50%)",display:"flex",flexDirection:n?"row":"column",gap:"16px",zIndex:50},children:Array.from({length:r}).map((a,l)=>E.jsx("button",{disabled:l===o,"aria-label":"navigation dot",onClick:()=>i(l,1),style:{width:"16px",height:"16px",display:"flex",alignItems:"center",justifyContent:"center",padding:0,border:"none",background:"none",cursor:"pointer",userSelect:"none"},children:E.jsx("span",{style:{width:"10px",height:"10px",borderRadius:"50%",backgroundColor:o===l?"white":"rgba(255,255,255,0.4)",transform:o===l?"scale(1.25)":"scale(1)",transition:"all 0.3s ease"}})},l))})}const me=d.memo(de);function ve({children:r}){return E.jsx("div",{style:{position:"relative",width:"100%",height:"100vh",overflow:"hidden",background:"transparent"},children:r})}const X=d.memo(ve);X.__FULLPAGE_SECTION__=!0;function Ee({children:r,styles:o,height:i="30%",backgroundColor:f="yellow"}){return E.jsx("div",{style:{position:"absolute",width:"100%",height:i,backgroundColor:f,bottom:0,zIndex:50,...o},children:r},"fullpage-footer")}const B=d.memo(Ee);B.__FULLPAGE_FOOTER__=!0;function _e(r){process.env.NODE_ENV!=="production"&&r.forEach(o=>{if(d.isValidElement(o)&&!o.type.__FULLPAGE_SECTION__)throw console.warn("[FullPage] You must wrap content inside <FullPage.Section />"),new Error("[FullPage] You must wrap content inside <FullPage.Section />")})}function pe({children:r,isHiddenFooter:o}){const i=o?2500:600;return E.jsx("div",{style:{position:"absolute",left:0,bottom:0,width:"100%",height:"100vh",zIndex:50,transform:o?"translateY(100%)":"translateY(0)",transition:`transform ${i}ms cubic-bezier(0.22,1,0.36,1)`,willChange:"transform",pointerEvents:o?"none":"auto"},children:r})}const he=d.memo(pe);function D({children:r,onChange:o,directionDots:i="right",enableContextMenu:f=!1,duration:n=700}){const a=d.Children.toArray(r),l=a.filter(_=>_.type.__FULLPAGE_SECTION__),p=a.find(_=>_.type.__FULLPAGE_FOOTER__);ue(f),d.useEffect(()=>(_e(l),()=>{}),[l]);const h=!!p,g=l.length+(h?1:0),{active:T,goToSection:y,isHiddenFooter:b}=le(g,h,o,n);return E.jsxs(E.Fragment,{children:[E.jsxs("div",{style:{position:"relative",height:"100vh",width:"100%",overflow:"hidden"},children:[E.jsx("div",{style:{height:`${l.length*100}vh`,transform:b?`translateY(-${T*100}vh)`:`translateY(-${l.length-100}vh)`,transition:"transform 700ms cubic-bezier(0.22,1,0.36,1)"},children:l.map((_,w)=>E.jsx(fe,{index:w,active:T,isHiddenFooter:b,children:_},w))}),p&&E.jsx(he,{isHiddenFooter:b,children:p})]}),E.jsx(me,{sectionsLen:g,active:T,goToSection:y,direction:i})]})}D.Section=X;D.Footer=B;exports.FullPage=D;
6
+ <%s key={someKey} {...props} />`,c,f,A,f),J[f+c]=!0)}if(f=null,i!==void 0&&(l(i),f=""+i),a(t)&&(l(t.key),f=""+t.key),"key"in t){i={};for(var M in t)M!=="key"&&(i[M]=t[M])}else i=t;return f&&m(i,typeof e=="function"?e.displayName||e.name||"Unknown":e),b(e,f,i,s(),L,D)}function S(e){k(e)?e._store&&(e._store.validated=1):typeof e=="object"&&e!==null&&e.$$typeof===Y&&(e._payload.status==="fulfilled"?k(e._payload.value)&&e._payload.value._store&&(e._payload.value._store.validated=1):e._store&&(e._store.validated=1))}function k(e){return typeof e=="object"&&e!==null&&e.$$typeof===x}var R=u,x=Symbol.for("react.transitional.element"),P=Symbol.for("react.portal"),p=Symbol.for("react.fragment"),h=Symbol.for("react.strict_mode"),v=Symbol.for("react.profiler"),y=Symbol.for("react.consumer"),T=Symbol.for("react.context"),F=Symbol.for("react.forward_ref"),N=Symbol.for("react.suspense"),E=Symbol.for("react.suspense_list"),K=Symbol.for("react.memo"),Y=Symbol.for("react.lazy"),ee=Symbol.for("react.activity"),te=Symbol.for("react.client.reference"),I=R.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,W=Object.prototype.hasOwnProperty,re=Array.isArray,$=console.createTask?console.createTask:function(){return null};R={react_stack_bottom_frame:function(e){return e()}};var z,G={},V=R.react_stack_bottom_frame.bind(R,o)(),q=$(d(o)),J={};j.Fragment=p,j.jsx=function(e,t,i){var c=1e4>I.recentlyCreatedOwnerStacks++;return w(e,t,i,!1,c?Error("react-stack-top-frame"):V,c?$(d(e)):q)},j.jsxs=function(e,t,i){var c=1e4>I.recentlyCreatedOwnerStacks++;return w(e,t,i,!0,c?Error("react-stack-top-frame"):V,c?$(d(e)):q)}})()),j}var B;function se(){return B||(B=1,process.env.NODE_ENV==="production"?C.exports=oe():C.exports=ae()),C.exports}var _=se();const ie=50,le=(r,n,l,d=700,s)=>{const[o,a]=u.useState(0),[m,g]=u.useState(!0),b=u.useRef(!1),[w,S]=u.useState(0),k=n&&o+1===r,R=u.useRef(0),x=u.useRef(0),P=u.useRef(!1),p=u.useRef(null),h=(v,y)=>{if(v<0||v>=r||b.current)return;const T=y===2;b.current=!0,S(o),a(v),k?v===3||o===r-1?a(T?w:v):a(w):a(v),n&&r===v+1?g(!1):g(!0),setTimeout(()=>{b.current=!1},d)};return u.useEffect(()=>{l&&l(o);const v=E=>{if(b.current)return E.preventDefault();E.deltaY>0?h(o+1,2):h(o-1,2)},y=E=>{b.current||(E.key==="ArrowDown"&&h(o+1,2),E.key==="ArrowUp"&&h(o-1,2))},T=E=>{R.current=E.touches[0].clientY,P.current=!1},F=E=>{x.current=E.touches[0].clientY,P.current=!0},N=()=>{if(!P.current)return;const E=R.current-x.current;Math.abs(E)>=ie&&(E>0?h(o+1,2):h(o-1,2))};return window.addEventListener("wheel",v,{passive:!1}),window.addEventListener("keydown",y),window.addEventListener("touchstart",T,{passive:!0}),window.addEventListener("touchmove",F,{passive:!0}),window.addEventListener("touchend",N),()=>{window.removeEventListener("wheel",v),window.removeEventListener("keydown",y),window.removeEventListener("touchstart",T),window.removeEventListener("touchmove",F),window.removeEventListener("touchend",N)}},[o,r,n,l]),u.useEffect(()=>{if(!s)return;const v=y=>{if(b.current&&m)return;const T=y.target;p.current&&!p.current.contains(T)&&!m&&(a(w),g(!0))};return setTimeout(()=>{document.addEventListener("click",v)},300),()=>{document.removeEventListener("click",v)}},[w,m,s]),{active:o,goToSection:h,isHiddenFooter:m,footerRef:p}},ue=(r=!1)=>{u.useEffect(()=>{if(r)return;const n=l=>l.preventDefault();return window.addEventListener("contextmenu",n),()=>{window.removeEventListener("contextmenu",n)}},[r])};function ce({children:r,index:n,active:l,isHiddenFooter:d}){return _.jsx("section",{style:{position:"relative",width:"100%",height:"100vh",overflow:"hidden",filter:n===l||d?"blur(0px)":"blur(6px)"},children:r})}const fe=u.memo(ce);function de({sectionsLen:r,active:n,goToSection:l,direction:d="right"}){const s=d==="bottom";return _.jsx("div",{style:{position:"fixed",right:d==="right"?24:d==="bottom"?"50%":void 0,left:d==="left"?24:void 0,top:s?void 0:"50%",bottom:s?"5%":void 0,transform:"translateY(-50%)",display:"flex",flexDirection:s?"row":"column",gap:"16px",zIndex:50},children:Array.from({length:r}).map((o,a)=>_.jsx("button",{disabled:a===n,"aria-label":"navigation dot",onClick:()=>l(a,1),style:{width:"16px",height:"16px",display:"flex",alignItems:"center",justifyContent:"center",padding:0,border:"none",background:"none",cursor:"pointer",userSelect:"none"},children:_.jsx("span",{style:{width:"10px",height:"10px",borderRadius:"50%",backgroundColor:n===a?"white":"rgba(255,255,255,0.4)",transform:n===a?"scale(1.25)":"scale(1)",transition:"all 0.3s ease"}})},a))})}const me=u.memo(de);function ve({children:r}){return _.jsx("div",{style:{position:"relative",width:"100%",height:"100vh",overflow:"hidden",background:"transparent"},children:r})}const Z=u.memo(ve);Z.__FULLPAGE_SECTION__=!0;function Ee({children:r,styles:n,height:l="30%",backgroundColor:d="yellow",footerRef:s}){return _.jsx("div",{ref:s,style:{position:"absolute",width:"100%",height:l,backgroundColor:d,bottom:0,zIndex:50,...n},children:r},"fullpage-footer")}const Q=u.memo(Ee);Q.__FULLPAGE_FOOTER__=!0;function _e(r){process.env.NODE_ENV!=="production"&&r.forEach(n=>{if(u.isValidElement(n)&&!n.type.__FULLPAGE_SECTION__)throw console.warn("[FullPage] You must wrap content inside <FullPage.Section />"),new Error("[FullPage] You must wrap content inside <FullPage.Section />")})}function pe({children:r,isHiddenFooter:n}){const l=n?2500:600;return _.jsx("div",{style:{position:"absolute",left:0,bottom:0,width:"100%",height:"100vh",zIndex:50,transform:n?"translateY(100%)":"translateY(0)",transition:`transform ${l}ms cubic-bezier(0.22,1,0.36,1)`,willChange:"transform",pointerEvents:n?"none":"auto"},children:r})}const he=u.memo(pe);function U({children:r,onChange:n,directionDots:l="right",enableContextMenu:d=!1,duration:s=700,closeOutside:o=!1}){const a=u.Children.toArray(r),m=a.filter(p=>p.type.__FULLPAGE_SECTION__),g=a.find(p=>p.type.__FULLPAGE_FOOTER__);ue(d),u.useEffect(()=>(_e(m),()=>{}),[m]);const b=!!g,w=m.length+(b?1:0),{active:S,goToSection:k,isHiddenFooter:R,footerRef:x}=le(w,b,n,s,o),P=g?u.cloneElement(g,{footerRef:x}):null;return _.jsxs(_.Fragment,{children:[_.jsxs("div",{style:{position:"relative",height:"100vh",width:"100%",overflow:"hidden"},children:[_.jsx("div",{style:{height:`${m.length*100}vh`,transform:R?`translateY(-${S*100}vh)`:`translateY(-${m.length-100}vh)`,transition:"transform 700ms cubic-bezier(0.22,1,0.36,1)"},children:m.map((p,h)=>_.jsx(fe,{index:h,active:S,isHiddenFooter:R,children:p},h))}),g&&_.jsx(he,{isHiddenFooter:R,children:P})]}),_.jsx(me,{sectionsLen:w,active:S,goToSection:k,direction:l})]})}U.Section=Z;U.Footer=Q;exports.FullPage=U;
package/dist/index.d.ts CHANGED
@@ -3,7 +3,7 @@ import { JSX as JSX_2 } from 'react/jsx-runtime';
3
3
 
4
4
  declare type DirectionDotsType = "left" | "right" | "bottom";
5
5
 
6
- export declare function FullPage({ children, onChange, directionDots, enableContextMenu, duration, }: FullPageProps): JSX_2.Element;
6
+ export declare function FullPage({ children, onChange, directionDots, enableContextMenu, duration, closeOutside, }: FullPageProps): JSX_2.Element;
7
7
 
8
8
  export declare namespace FullPage {
9
9
  var Section: default_2.FC<FullPageSectionProps>;
@@ -15,12 +15,14 @@ declare interface FullPageFooterProps {
15
15
  styles?: React.CSSProperties;
16
16
  height?: number | string;
17
17
  backgroundColor?: string;
18
+ footerRef?: React.RefObject<HTMLDivElement | null>;
18
19
  }
19
20
 
20
21
  declare interface FullPageProps {
21
22
  children: React.ReactNode;
22
23
  onChange?: (currentSection: number) => void;
23
24
  directionDots?: DirectionDotsType;
25
+ closeOutside?: boolean;
24
26
  enableContextMenu?: boolean;
25
27
  duration: number;
26
28
  }
package/dist/index.es.js CHANGED
@@ -1,46 +1,46 @@
1
- import U, { useEffect as W, useState as M, useRef as F, memo as A } from "react";
2
- var L = { exports: {} }, P = {};
3
- var X;
1
+ import I, { useEffect as $, useState as G, useRef as A, memo as N } from "react";
2
+ var Y = { exports: {} }, O = {};
3
+ var Z;
4
4
  function le() {
5
- if (X) return P;
6
- X = 1;
7
- var r = /* @__PURE__ */ Symbol.for("react.transitional.element"), o = /* @__PURE__ */ Symbol.for("react.fragment");
8
- function i(f, n, a) {
9
- var l = null;
10
- if (a !== void 0 && (l = "" + a), n.key !== void 0 && (l = "" + n.key), "key" in n) {
11
- a = {};
12
- for (var _ in n)
13
- _ !== "key" && (a[_] = n[_]);
14
- } else a = n;
15
- return n = a.ref, {
5
+ if (Z) return O;
6
+ Z = 1;
7
+ var r = /* @__PURE__ */ Symbol.for("react.transitional.element"), n = /* @__PURE__ */ Symbol.for("react.fragment");
8
+ function l(f, s, o) {
9
+ var a = null;
10
+ if (o !== void 0 && (a = "" + o), s.key !== void 0 && (a = "" + s.key), "key" in s) {
11
+ o = {};
12
+ for (var d in s)
13
+ d !== "key" && (o[d] = s[d]);
14
+ } else o = s;
15
+ return s = o.ref, {
16
16
  $$typeof: r,
17
17
  type: f,
18
- key: l,
19
- ref: n !== void 0 ? n : null,
20
- props: a
18
+ key: a,
19
+ ref: s !== void 0 ? s : null,
20
+ props: o
21
21
  };
22
22
  }
23
- return P.Fragment = o, P.jsx = i, P.jsxs = i, P;
23
+ return O.Fragment = n, O.jsx = l, O.jsxs = l, O;
24
24
  }
25
- var k = {};
26
- var B;
25
+ var j = {};
26
+ var Q;
27
27
  function ue() {
28
- return B || (B = 1, process.env.NODE_ENV !== "production" && (function() {
28
+ return Q || (Q = 1, process.env.NODE_ENV !== "production" && (function() {
29
29
  function r(e) {
30
30
  if (e == null) return null;
31
31
  if (typeof e == "function")
32
32
  return e.$$typeof === ae ? null : e.displayName || e.name || null;
33
33
  if (typeof e == "string") return e;
34
34
  switch (e) {
35
- case d:
35
+ case _:
36
36
  return "Fragment";
37
- case g:
37
+ case m:
38
38
  return "Profiler";
39
- case y:
39
+ case p:
40
40
  return "StrictMode";
41
- case te:
41
+ case L:
42
42
  return "Suspense";
43
- case re:
43
+ case v:
44
44
  return "SuspenseList";
45
45
  case oe:
46
46
  return "Activity";
@@ -49,18 +49,18 @@ function ue() {
49
49
  switch (typeof e.tag == "number" && console.error(
50
50
  "Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."
51
51
  ), e.$$typeof) {
52
- case w:
52
+ case S:
53
53
  return "Portal";
54
- case j:
54
+ case g:
55
55
  return e.displayName || "Context";
56
- case O:
56
+ case x:
57
57
  return (e._context.displayName || "Context") + ".Consumer";
58
- case v:
58
+ case F:
59
59
  var t = e.render;
60
60
  return e = e.displayName, e || (e = t.displayName || t.name || "", e = e !== "" ? "ForwardRef(" + e + ")" : "ForwardRef"), e;
61
61
  case ne:
62
62
  return t = e.displayName || null, t !== null ? t : r(e.type) || "Memo";
63
- case Y:
63
+ case D:
64
64
  t = e._payload, e = e._init;
65
65
  try {
66
66
  return r(e(t));
@@ -69,29 +69,29 @@ function ue() {
69
69
  }
70
70
  return null;
71
71
  }
72
- function o(e) {
72
+ function n(e) {
73
73
  return "" + e;
74
74
  }
75
- function i(e) {
75
+ function l(e) {
76
76
  try {
77
- o(e);
77
+ n(e);
78
78
  var t = !1;
79
79
  } catch {
80
80
  t = !0;
81
81
  }
82
82
  if (t) {
83
83
  t = console;
84
- var s = t.error, u = typeof Symbol == "function" && Symbol.toStringTag && e[Symbol.toStringTag] || e.constructor.name || "Object";
85
- return s.call(
84
+ var i = t.error, u = typeof Symbol == "function" && Symbol.toStringTag && e[Symbol.toStringTag] || e.constructor.name || "Object";
85
+ return i.call(
86
86
  t,
87
87
  "The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",
88
88
  u
89
- ), o(e);
89
+ ), n(e);
90
90
  }
91
91
  }
92
92
  function f(e) {
93
- if (e === d) return "<>";
94
- if (typeof e == "object" && e !== null && e.$$typeof === Y)
93
+ if (e === _) return "<>";
94
+ if (typeof e == "object" && e !== null && e.$$typeof === D)
95
95
  return "<...>";
96
96
  try {
97
97
  var t = r(e);
@@ -100,49 +100,49 @@ function ue() {
100
100
  return "<...>";
101
101
  }
102
102
  }
103
- function n() {
104
- var e = C.A;
103
+ function s() {
104
+ var e = M.A;
105
105
  return e === null ? null : e.getOwner();
106
106
  }
107
- function a() {
107
+ function o() {
108
108
  return Error("react-stack-top-frame");
109
109
  }
110
- function l(e) {
111
- if (z.call(e, "key")) {
110
+ function a(e) {
111
+ if (V.call(e, "key")) {
112
112
  var t = Object.getOwnPropertyDescriptor(e, "key").get;
113
113
  if (t && t.isReactWarning) return !1;
114
114
  }
115
115
  return e.key !== void 0;
116
116
  }
117
- function _(e, t) {
118
- function s() {
119
- G || (G = !0, console.error(
117
+ function d(e, t) {
118
+ function i() {
119
+ J || (J = !0, console.error(
120
120
  "%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",
121
121
  t
122
122
  ));
123
123
  }
124
- s.isReactWarning = !0, Object.defineProperty(e, "key", {
125
- get: s,
124
+ i.isReactWarning = !0, Object.defineProperty(e, "key", {
125
+ get: i,
126
126
  configurable: !0
127
127
  });
128
128
  }
129
- function p() {
129
+ function R() {
130
130
  var e = r(this.type);
131
- return V[e] || (V[e] = !0, console.error(
131
+ return q[e] || (q[e] = !0, console.error(
132
132
  "Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release."
133
133
  )), e = this.props.ref, e !== void 0 ? e : null;
134
134
  }
135
- function R(e, t, s, u, N, $) {
136
- var c = s.ref;
135
+ function h(e, t, i, u, C, W) {
136
+ var c = i.ref;
137
137
  return e = {
138
- $$typeof: b,
138
+ $$typeof: y,
139
139
  type: e,
140
140
  key: t,
141
- props: s,
141
+ props: i,
142
142
  _owner: u
143
143
  }, (c !== void 0 ? c : null) !== null ? Object.defineProperty(e, "ref", {
144
144
  enumerable: !1,
145
- get: p
145
+ get: R
146
146
  }) : Object.defineProperty(e, "ref", { enumerable: !1, value: null }), e._store = {}, Object.defineProperty(e._store, "validated", {
147
147
  configurable: !1,
148
148
  enumerable: !1,
@@ -157,33 +157,33 @@ function ue() {
157
157
  configurable: !1,
158
158
  enumerable: !1,
159
159
  writable: !0,
160
- value: N
160
+ value: C
161
161
  }), Object.defineProperty(e, "_debugTask", {
162
162
  configurable: !1,
163
163
  enumerable: !1,
164
164
  writable: !0,
165
- value: $
165
+ value: W
166
166
  }), Object.freeze && (Object.freeze(e.props), Object.freeze(e)), e;
167
167
  }
168
- function T(e, t, s, u, N, $) {
168
+ function b(e, t, i, u, C, W) {
169
169
  var c = t.children;
170
170
  if (c !== void 0)
171
171
  if (u)
172
172
  if (se(c)) {
173
173
  for (u = 0; u < c.length; u++)
174
- x(c[u]);
174
+ T(c[u]);
175
175
  Object.freeze && Object.freeze(c);
176
176
  } else
177
177
  console.error(
178
178
  "React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead."
179
179
  );
180
- else x(c);
181
- if (z.call(t, "key")) {
180
+ else T(c);
181
+ if (V.call(t, "key")) {
182
182
  c = r(e);
183
- var S = Object.keys(t).filter(function(ie) {
183
+ var P = Object.keys(t).filter(function(ie) {
184
184
  return ie !== "key";
185
185
  });
186
- u = 0 < S.length ? "{key: someKey, " + S.join(": ..., ") + ": ...}" : "{key: someKey}", H[c + u] || (S = 0 < S.length ? "{" + S.join(": ..., ") + ": ...}" : "{}", console.error(
186
+ u = 0 < P.length ? "{key: someKey, " + P.join(": ..., ") + ": ...}" : "{key: someKey}", B[c + u] || (P = 0 < P.length ? "{" + P.join(": ..., ") + ": ...}" : "{}", console.error(
187
187
  `A props object containing a "key" prop is being spread into JSX:
188
188
  let props = %s;
189
189
  <%s {...props} />
@@ -192,117 +192,129 @@ React keys must be passed directly to JSX without using spread:
192
192
  <%s key={someKey} {...props} />`,
193
193
  u,
194
194
  c,
195
- S,
195
+ P,
196
196
  c
197
- ), H[c + u] = !0);
197
+ ), B[c + u] = !0);
198
198
  }
199
- if (c = null, s !== void 0 && (i(s), c = "" + s), l(t) && (i(t.key), c = "" + t.key), "key" in t) {
200
- s = {};
201
- for (var D in t)
202
- D !== "key" && (s[D] = t[D]);
203
- } else s = t;
204
- return c && _(
205
- s,
199
+ if (c = null, i !== void 0 && (l(i), c = "" + i), a(t) && (l(t.key), c = "" + t.key), "key" in t) {
200
+ i = {};
201
+ for (var z in t)
202
+ z !== "key" && (i[z] = t[z]);
203
+ } else i = t;
204
+ return c && d(
205
+ i,
206
206
  typeof e == "function" ? e.displayName || e.name || "Unknown" : e
207
- ), R(
207
+ ), h(
208
208
  e,
209
209
  c,
210
- s,
211
- n(),
212
- N,
213
- $
210
+ i,
211
+ s(),
212
+ C,
213
+ W
214
214
  );
215
215
  }
216
- function x(e) {
217
- h(e) ? e._store && (e._store.validated = 1) : typeof e == "object" && e !== null && e.$$typeof === Y && (e._payload.status === "fulfilled" ? h(e._payload.value) && e._payload.value._store && (e._payload.value._store.validated = 1) : e._store && (e._store.validated = 1));
216
+ function T(e) {
217
+ k(e) ? e._store && (e._store.validated = 1) : typeof e == "object" && e !== null && e.$$typeof === D && (e._payload.status === "fulfilled" ? k(e._payload.value) && e._payload.value._store && (e._payload.value._store.validated = 1) : e._store && (e._store.validated = 1));
218
218
  }
219
- function h(e) {
220
- return typeof e == "object" && e !== null && e.$$typeof === b;
219
+ function k(e) {
220
+ return typeof e == "object" && e !== null && e.$$typeof === y;
221
221
  }
222
- var E = U, b = /* @__PURE__ */ Symbol.for("react.transitional.element"), w = /* @__PURE__ */ Symbol.for("react.portal"), d = /* @__PURE__ */ Symbol.for("react.fragment"), y = /* @__PURE__ */ Symbol.for("react.strict_mode"), g = /* @__PURE__ */ Symbol.for("react.profiler"), O = /* @__PURE__ */ Symbol.for("react.consumer"), j = /* @__PURE__ */ Symbol.for("react.context"), v = /* @__PURE__ */ Symbol.for("react.forward_ref"), te = /* @__PURE__ */ Symbol.for("react.suspense"), re = /* @__PURE__ */ Symbol.for("react.suspense_list"), ne = /* @__PURE__ */ Symbol.for("react.memo"), Y = /* @__PURE__ */ Symbol.for("react.lazy"), oe = /* @__PURE__ */ Symbol.for("react.activity"), ae = /* @__PURE__ */ Symbol.for("react.client.reference"), C = E.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, z = Object.prototype.hasOwnProperty, se = Array.isArray, I = console.createTask ? console.createTask : function() {
222
+ var w = I, y = /* @__PURE__ */ Symbol.for("react.transitional.element"), S = /* @__PURE__ */ Symbol.for("react.portal"), _ = /* @__PURE__ */ Symbol.for("react.fragment"), p = /* @__PURE__ */ Symbol.for("react.strict_mode"), m = /* @__PURE__ */ Symbol.for("react.profiler"), x = /* @__PURE__ */ Symbol.for("react.consumer"), g = /* @__PURE__ */ Symbol.for("react.context"), F = /* @__PURE__ */ Symbol.for("react.forward_ref"), L = /* @__PURE__ */ Symbol.for("react.suspense"), v = /* @__PURE__ */ Symbol.for("react.suspense_list"), ne = /* @__PURE__ */ Symbol.for("react.memo"), D = /* @__PURE__ */ Symbol.for("react.lazy"), oe = /* @__PURE__ */ Symbol.for("react.activity"), ae = /* @__PURE__ */ Symbol.for("react.client.reference"), M = w.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, V = Object.prototype.hasOwnProperty, se = Array.isArray, U = console.createTask ? console.createTask : function() {
223
223
  return null;
224
224
  };
225
- E = {
225
+ w = {
226
226
  react_stack_bottom_frame: function(e) {
227
227
  return e();
228
228
  }
229
229
  };
230
- var G, V = {}, J = E.react_stack_bottom_frame.bind(
231
- E,
232
- a
233
- )(), q = I(f(a)), H = {};
234
- k.Fragment = d, k.jsx = function(e, t, s) {
235
- var u = 1e4 > C.recentlyCreatedOwnerStacks++;
236
- return T(
230
+ var J, q = {}, H = w.react_stack_bottom_frame.bind(
231
+ w,
232
+ o
233
+ )(), X = U(f(o)), B = {};
234
+ j.Fragment = _, j.jsx = function(e, t, i) {
235
+ var u = 1e4 > M.recentlyCreatedOwnerStacks++;
236
+ return b(
237
237
  e,
238
238
  t,
239
- s,
239
+ i,
240
240
  !1,
241
- u ? Error("react-stack-top-frame") : J,
242
- u ? I(f(e)) : q
241
+ u ? Error("react-stack-top-frame") : H,
242
+ u ? U(f(e)) : X
243
243
  );
244
- }, k.jsxs = function(e, t, s) {
245
- var u = 1e4 > C.recentlyCreatedOwnerStacks++;
246
- return T(
244
+ }, j.jsxs = function(e, t, i) {
245
+ var u = 1e4 > M.recentlyCreatedOwnerStacks++;
246
+ return b(
247
247
  e,
248
248
  t,
249
- s,
249
+ i,
250
250
  !0,
251
- u ? Error("react-stack-top-frame") : J,
252
- u ? I(f(e)) : q
251
+ u ? Error("react-stack-top-frame") : H,
252
+ u ? U(f(e)) : X
253
253
  );
254
254
  };
255
- })()), k;
255
+ })()), j;
256
256
  }
257
- var Z;
257
+ var K;
258
258
  function ce() {
259
- return Z || (Z = 1, process.env.NODE_ENV === "production" ? L.exports = le() : L.exports = ue()), L.exports;
259
+ return K || (K = 1, process.env.NODE_ENV === "production" ? Y.exports = le() : Y.exports = ue()), Y.exports;
260
260
  }
261
- var m = ce();
262
- const fe = 50, de = (r, o, i, f = 700) => {
263
- const [n, a] = M(0), [l, _] = M(!0), p = F(!1), [R, T] = M(0), x = o && n + 1 === r, h = F(0), E = F(0), b = F(!1), w = (d, y) => {
264
- if (d < 0 || d >= r || p.current) return;
265
- const g = y === 2;
266
- p.current = !0, T(n), a(d), x ? d === 3 || n === r - 1 ? a(g ? R : d) : a(R) : a(d), o && r === d + 1 ? _(!1) : _(!0), setTimeout(() => {
267
- p.current = !1;
261
+ var E = ce();
262
+ const fe = 50, de = (r, n, l, f = 700, s) => {
263
+ const [o, a] = G(0), [d, R] = G(!0), h = A(!1), [b, T] = G(0), k = n && o + 1 === r, w = A(0), y = A(0), S = A(!1), _ = A(null), p = (m, x) => {
264
+ if (m < 0 || m >= r || h.current) return;
265
+ const g = x === 2;
266
+ h.current = !0, T(o), a(m), k ? m === 3 || o === r - 1 ? a(g ? b : m) : a(b) : a(m), n && r === m + 1 ? R(!1) : R(!0), setTimeout(() => {
267
+ h.current = !1;
268
268
  }, f);
269
269
  };
270
- return W(() => {
271
- i && i(n);
272
- const d = (v) => {
273
- if (p.current) return v.preventDefault();
274
- v.deltaY > 0 ? w(n + 1, 2) : w(n - 1, 2);
275
- }, y = (v) => {
276
- p.current || (v.key === "ArrowDown" && w(n + 1, 2), v.key === "ArrowUp" && w(n - 1, 2));
270
+ return $(() => {
271
+ l && l(o);
272
+ const m = (v) => {
273
+ if (h.current) return v.preventDefault();
274
+ v.deltaY > 0 ? p(o + 1, 2) : p(o - 1, 2);
275
+ }, x = (v) => {
276
+ h.current || (v.key === "ArrowDown" && p(o + 1, 2), v.key === "ArrowUp" && p(o - 1, 2));
277
277
  }, g = (v) => {
278
- h.current = v.touches[0].clientY, b.current = !1;
279
- }, O = (v) => {
280
- E.current = v.touches[0].clientY, b.current = !0;
281
- }, j = () => {
282
- if (!b.current) return;
283
- const v = h.current - E.current;
284
- Math.abs(v) >= fe && (v > 0 ? w(n + 1, 2) : w(n - 1, 2));
278
+ w.current = v.touches[0].clientY, S.current = !1;
279
+ }, F = (v) => {
280
+ y.current = v.touches[0].clientY, S.current = !0;
281
+ }, L = () => {
282
+ if (!S.current) return;
283
+ const v = w.current - y.current;
284
+ Math.abs(v) >= fe && (v > 0 ? p(o + 1, 2) : p(o - 1, 2));
285
285
  };
286
- return window.addEventListener("wheel", d, { passive: !1 }), window.addEventListener("keydown", y), window.addEventListener("touchstart", g, { passive: !0 }), window.addEventListener("touchmove", O, { passive: !0 }), window.addEventListener("touchend", j), () => {
287
- window.removeEventListener("wheel", d), window.removeEventListener("keydown", y), window.removeEventListener("touchstart", g), window.removeEventListener("touchmove", O), window.removeEventListener("touchend", j);
286
+ return window.addEventListener("wheel", m, { passive: !1 }), window.addEventListener("keydown", x), window.addEventListener("touchstart", g, { passive: !0 }), window.addEventListener("touchmove", F, { passive: !0 }), window.addEventListener("touchend", L), () => {
287
+ window.removeEventListener("wheel", m), window.removeEventListener("keydown", x), window.removeEventListener("touchstart", g), window.removeEventListener("touchmove", F), window.removeEventListener("touchend", L);
288
288
  };
289
- }, [n, r, o, i]), { active: n, goToSection: w, isHiddenFooter: l };
290
- }, ve = (r = !1) => {
291
- W(() => {
289
+ }, [o, r, n, l]), $(() => {
290
+ if (!s) return;
291
+ const m = (x) => {
292
+ if (h.current && d) return;
293
+ const g = x.target;
294
+ _.current && !_.current.contains(g) && !d && (a(b), R(!0));
295
+ };
296
+ return setTimeout(() => {
297
+ document.addEventListener("click", m);
298
+ }, 300), () => {
299
+ document.removeEventListener("click", m);
300
+ };
301
+ }, [b, d, s]), { active: o, goToSection: p, isHiddenFooter: d, footerRef: _ };
302
+ }, me = (r = !1) => {
303
+ $(() => {
292
304
  if (r) return;
293
- const o = (i) => i.preventDefault();
294
- return window.addEventListener("contextmenu", o), () => {
295
- window.removeEventListener("contextmenu", o);
305
+ const n = (l) => l.preventDefault();
306
+ return window.addEventListener("contextmenu", n), () => {
307
+ window.removeEventListener("contextmenu", n);
296
308
  };
297
309
  }, [r]);
298
310
  };
299
- function me({
311
+ function ve({
300
312
  children: r,
301
- index: o,
302
- active: i,
313
+ index: n,
314
+ active: l,
303
315
  isHiddenFooter: f
304
316
  }) {
305
- return /* @__PURE__ */ m.jsx(
317
+ return /* @__PURE__ */ E.jsx(
306
318
  "section",
307
319
  {
308
320
  style: {
@@ -310,41 +322,41 @@ function me({
310
322
  width: "100%",
311
323
  height: "100vh",
312
324
  overflow: "hidden",
313
- filter: o === i || f ? "blur(0px)" : "blur(6px)"
325
+ filter: n === l || f ? "blur(0px)" : "blur(6px)"
314
326
  },
315
327
  children: r
316
328
  }
317
329
  );
318
330
  }
319
- const Ee = A(me);
331
+ const Ee = N(ve);
320
332
  function _e({
321
333
  sectionsLen: r,
322
- active: o,
323
- goToSection: i,
334
+ active: n,
335
+ goToSection: l,
324
336
  direction: f = "right"
325
337
  }) {
326
- const n = f === "bottom";
327
- return /* @__PURE__ */ m.jsx(
338
+ const s = f === "bottom";
339
+ return /* @__PURE__ */ E.jsx(
328
340
  "div",
329
341
  {
330
342
  style: {
331
343
  position: "fixed",
332
344
  right: f === "right" ? 24 : f === "bottom" ? "50%" : void 0,
333
345
  left: f === "left" ? 24 : void 0,
334
- top: n ? void 0 : "50%",
335
- bottom: n ? "5%" : void 0,
346
+ top: s ? void 0 : "50%",
347
+ bottom: s ? "5%" : void 0,
336
348
  transform: "translateY(-50%)",
337
349
  display: "flex",
338
- flexDirection: n ? "row" : "column",
350
+ flexDirection: s ? "row" : "column",
339
351
  gap: "16px",
340
352
  zIndex: 50
341
353
  },
342
- children: Array.from({ length: r }).map((a, l) => /* @__PURE__ */ m.jsx(
354
+ children: Array.from({ length: r }).map((o, a) => /* @__PURE__ */ E.jsx(
343
355
  "button",
344
356
  {
345
- disabled: l === o,
357
+ disabled: a === n,
346
358
  "aria-label": "navigation dot",
347
- onClick: () => i(l, 1),
359
+ onClick: () => l(a, 1),
348
360
  style: {
349
361
  width: "16px",
350
362
  height: "16px",
@@ -357,28 +369,28 @@ function _e({
357
369
  cursor: "pointer",
358
370
  userSelect: "none"
359
371
  },
360
- children: /* @__PURE__ */ m.jsx(
372
+ children: /* @__PURE__ */ E.jsx(
361
373
  "span",
362
374
  {
363
375
  style: {
364
376
  width: "10px",
365
377
  height: "10px",
366
378
  borderRadius: "50%",
367
- backgroundColor: o === l ? "white" : "rgba(255,255,255,0.4)",
368
- transform: o === l ? "scale(1.25)" : "scale(1)",
379
+ backgroundColor: n === a ? "white" : "rgba(255,255,255,0.4)",
380
+ transform: n === a ? "scale(1.25)" : "scale(1)",
369
381
  transition: "all 0.3s ease"
370
382
  }
371
383
  }
372
384
  )
373
385
  },
374
- l
386
+ a
375
387
  ))
376
388
  }
377
389
  );
378
390
  }
379
- const pe = A(_e);
391
+ const pe = N(_e);
380
392
  function he({ children: r }) {
381
- return /* @__PURE__ */ m.jsx(
393
+ return /* @__PURE__ */ E.jsx(
382
394
  "div",
383
395
  {
384
396
  style: {
@@ -392,36 +404,38 @@ function he({ children: r }) {
392
404
  }
393
405
  );
394
406
  }
395
- const Q = A(he);
396
- Q.__FULLPAGE_SECTION__ = !0;
407
+ const ee = N(he);
408
+ ee.__FULLPAGE_SECTION__ = !0;
397
409
  function be({
398
410
  children: r,
399
- styles: o,
400
- height: i = "30%",
401
- backgroundColor: f = "yellow"
411
+ styles: n,
412
+ height: l = "30%",
413
+ backgroundColor: f = "yellow",
414
+ footerRef: s
402
415
  }) {
403
- return /* @__PURE__ */ m.jsx(
416
+ return /* @__PURE__ */ E.jsx(
404
417
  "div",
405
418
  {
419
+ ref: s,
406
420
  style: {
407
421
  position: "absolute",
408
422
  width: "100%",
409
- height: i,
423
+ height: l,
410
424
  backgroundColor: f,
411
425
  bottom: 0,
412
426
  zIndex: 50,
413
- ...o
427
+ ...n
414
428
  },
415
429
  children: r
416
430
  },
417
431
  "fullpage-footer"
418
432
  );
419
433
  }
420
- const K = A(be);
421
- K.__FULLPAGE_FOOTER__ = !0;
434
+ const te = N(be);
435
+ te.__FULLPAGE_FOOTER__ = !0;
422
436
  function we(r) {
423
- process.env.NODE_ENV !== "production" && r.forEach((o) => {
424
- if (U.isValidElement(o) && !o.type.__FULLPAGE_SECTION__)
437
+ process.env.NODE_ENV !== "production" && r.forEach((n) => {
438
+ if (I.isValidElement(n) && !n.type.__FULLPAGE_SECTION__)
425
439
  throw console.warn(
426
440
  "[FullPage] You must wrap content inside <FullPage.Section />"
427
441
  ), new Error(
@@ -429,9 +443,9 @@ function we(r) {
429
443
  );
430
444
  });
431
445
  }
432
- function Re({ children: r, isHiddenFooter: o }) {
433
- const i = o ? 2500 : 600;
434
- return /* @__PURE__ */ m.jsx(
446
+ function Re({ children: r, isHiddenFooter: n }) {
447
+ const l = n ? 2500 : 600;
448
+ return /* @__PURE__ */ E.jsx(
435
449
  "div",
436
450
  {
437
451
  style: {
@@ -441,38 +455,40 @@ function Re({ children: r, isHiddenFooter: o }) {
441
455
  width: "100%",
442
456
  height: "100vh",
443
457
  zIndex: 50,
444
- transform: o ? "translateY(100%)" : "translateY(0)",
445
- transition: `transform ${i}ms cubic-bezier(0.22,1,0.36,1)`,
458
+ transform: n ? "translateY(100%)" : "translateY(0)",
459
+ transition: `transform ${l}ms cubic-bezier(0.22,1,0.36,1)`,
446
460
  willChange: "transform",
447
- pointerEvents: o ? "none" : "auto"
461
+ pointerEvents: n ? "none" : "auto"
448
462
  },
449
463
  children: r
450
464
  }
451
465
  );
452
466
  }
453
- const Te = A(Re);
454
- function ee({
467
+ const ge = N(Re);
468
+ function re({
455
469
  children: r,
456
- onChange: o,
457
- directionDots: i = "right",
470
+ onChange: n,
471
+ directionDots: l = "right",
458
472
  enableContextMenu: f = !1,
459
- duration: n = 700
473
+ duration: s = 700,
474
+ closeOutside: o = !1
460
475
  }) {
461
- const a = U.Children.toArray(r), l = a.filter(
462
- (E) => E.type.__FULLPAGE_SECTION__
463
- ), _ = a.find(
464
- (E) => E.type.__FULLPAGE_FOOTER__
465
- );
466
- ve(f), W(() => (we(l), () => {
467
- }), [l]);
468
- const p = !!_, R = l.length + (p ? 1 : 0), { active: T, goToSection: x, isHiddenFooter: h } = de(
469
- R,
470
- p,
471
- o,
472
- n
476
+ const a = I.Children.toArray(r), d = a.filter(
477
+ (_) => _.type.__FULLPAGE_SECTION__
478
+ ), R = a.find(
479
+ (_) => _.type.__FULLPAGE_FOOTER__
473
480
  );
474
- return /* @__PURE__ */ m.jsxs(m.Fragment, { children: [
475
- /* @__PURE__ */ m.jsxs(
481
+ me(f), $(() => (we(d), () => {
482
+ }), [d]);
483
+ const h = !!R, b = d.length + (h ? 1 : 0), { active: T, goToSection: k, isHiddenFooter: w, footerRef: y } = de(
484
+ b,
485
+ h,
486
+ n,
487
+ s,
488
+ o
489
+ ), S = R ? I.cloneElement(R, { footerRef: y }) : null;
490
+ return /* @__PURE__ */ E.jsxs(E.Fragment, { children: [
491
+ /* @__PURE__ */ E.jsxs(
476
492
  "div",
477
493
  {
478
494
  style: {
@@ -482,43 +498,43 @@ function ee({
482
498
  overflow: "hidden"
483
499
  },
484
500
  children: [
485
- /* @__PURE__ */ m.jsx(
501
+ /* @__PURE__ */ E.jsx(
486
502
  "div",
487
503
  {
488
504
  style: {
489
- height: `${l.length * 100}vh`,
490
- transform: h ? `translateY(-${T * 100}vh)` : `translateY(-${l.length - 100}vh)`,
505
+ height: `${d.length * 100}vh`,
506
+ transform: w ? `translateY(-${T * 100}vh)` : `translateY(-${d.length - 100}vh)`,
491
507
  transition: "transform 700ms cubic-bezier(0.22,1,0.36,1)"
492
508
  },
493
- children: l.map((E, b) => /* @__PURE__ */ m.jsx(
509
+ children: d.map((_, p) => /* @__PURE__ */ E.jsx(
494
510
  Ee,
495
511
  {
496
- index: b,
512
+ index: p,
497
513
  active: T,
498
- isHiddenFooter: h,
499
- children: E
514
+ isHiddenFooter: w,
515
+ children: _
500
516
  },
501
- b
517
+ p
502
518
  ))
503
519
  }
504
520
  ),
505
- _ && /* @__PURE__ */ m.jsx(Te, { isHiddenFooter: h, children: _ })
521
+ R && /* @__PURE__ */ E.jsx(ge, { isHiddenFooter: w, children: S })
506
522
  ]
507
523
  }
508
524
  ),
509
- /* @__PURE__ */ m.jsx(
525
+ /* @__PURE__ */ E.jsx(
510
526
  pe,
511
527
  {
512
- sectionsLen: R,
528
+ sectionsLen: b,
513
529
  active: T,
514
- goToSection: x,
515
- direction: i
530
+ goToSection: k,
531
+ direction: l
516
532
  }
517
533
  )
518
534
  ] });
519
535
  }
520
- ee.Section = Q;
521
- ee.Footer = K;
536
+ re.Section = ee;
537
+ re.Footer = te;
522
538
  export {
523
- ee as FullPage
539
+ re as FullPage
524
540
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-abohook-fullpage",
3
- "version": "1.1.2",
3
+ "version": "1.1.3",
4
4
  "description": "React FullPage scroll component with parallax and navigation dots",
5
5
  "author": "Mostafa Ahmed",
6
6
  "license": "MIT",