@jump-section/react 1.0.9 → 1.0.10

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.d.mts CHANGED
@@ -1,4 +1,4 @@
1
- import { FC, ReactNode } from 'react';
1
+ import React, { FC, ReactNode, ElementType } from 'react';
2
2
  import { ScrollManager } from '@jump-section/core';
3
3
 
4
4
  interface ScrollSectionProviderProps {
@@ -16,4 +16,11 @@ declare const useScrollSection: (sectionId?: string) => {
16
16
  isActive: boolean;
17
17
  };
18
18
 
19
- export { ScrollSectionProvider, useScrollManager, useScrollSection };
19
+ interface SectionProps extends React.HTMLAttributes<HTMLElement> {
20
+ id: string;
21
+ as?: ElementType;
22
+ children?: React.ReactNode;
23
+ }
24
+ declare const Section: React.ForwardRefExoticComponent<SectionProps & React.RefAttributes<HTMLElement>>;
25
+
26
+ export { ScrollSectionProvider, Section, type SectionProps, useScrollManager, useScrollSection };
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { FC, ReactNode } from 'react';
1
+ import React, { FC, ReactNode, ElementType } from 'react';
2
2
  import { ScrollManager } from '@jump-section/core';
3
3
 
4
4
  interface ScrollSectionProviderProps {
@@ -16,4 +16,11 @@ declare const useScrollSection: (sectionId?: string) => {
16
16
  isActive: boolean;
17
17
  };
18
18
 
19
- export { ScrollSectionProvider, useScrollManager, useScrollSection };
19
+ interface SectionProps extends React.HTMLAttributes<HTMLElement> {
20
+ id: string;
21
+ as?: ElementType;
22
+ children?: React.ReactNode;
23
+ }
24
+ declare const Section: React.ForwardRefExoticComponent<SectionProps & React.RefAttributes<HTMLElement>>;
25
+
26
+ export { ScrollSectionProvider, Section, type SectionProps, useScrollManager, useScrollSection };
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- 'use strict';var v=require('react'),core=require('@jump-section/core'),jsxRuntime=require('react/jsx-runtime');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var v__default=/*#__PURE__*/_interopDefault(v);var c=v.createContext(null),R=({children:r,offset:e,behavior:n})=>{let t=v.useRef(null);return t.current||(t.current=new core.ScrollManager({offset:e,behavior:n})),v.useEffect(()=>()=>{var l;(l=t.current)==null||l.destroy();},[]),jsxRuntime.jsx(c.Provider,{value:t.current,children:r})},i=()=>{let r=v.useContext(c);if(!r)throw new Error("useScrollManager must be used within a ScrollSectionProvider");return r};var E=r=>{let e=i(),[n,t]=v.useState(null);return v.useEffect(()=>{let o=e.onActiveChange(s=>{t(s);});return ()=>{o();}},[e]),{registerRef:v__default.default.useCallback(o=>{r&&o?e.registerSection(r,o):r&&!o&&e.unregisterSection(r);},[r,e]),scrollTo:o=>e.scrollTo(o),activeId:n,isActive:r?n===r:false}};exports.ScrollSectionProvider=R;exports.useScrollManager=i;exports.useScrollSection=E;
2
+ 'use strict';var H=require('react'),core=require('@jump-section/core'),jsxRuntime=require('react/jsx-runtime');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var H__default=/*#__PURE__*/_interopDefault(H);var v=Object.defineProperty,x=Object.defineProperties;var E=Object.getOwnPropertyDescriptors;var i=Object.getOwnPropertySymbols;var u=Object.prototype.hasOwnProperty,f=Object.prototype.propertyIsEnumerable;var a=(e,r,t)=>r in e?v(e,r,{enumerable:true,configurable:true,writable:true,value:t}):e[r]=t,S=(e,r)=>{for(var t in r||(r={}))u.call(r,t)&&a(e,t,r[t]);if(i)for(var t of i(r))f.call(r,t)&&a(e,t,r[t]);return e},p=(e,r)=>x(e,E(r));var m=(e,r)=>{var t={};for(var o in e)u.call(e,o)&&r.indexOf(o)<0&&(t[o]=e[o]);if(e!=null&&i)for(var o of i(e))r.indexOf(o)<0&&f.call(e,o)&&(t[o]=e[o]);return t};var g=H.createContext(null),D=({children:e,offset:r,behavior:t})=>{let o=H.useRef(null);return o.current||(o.current=new core.ScrollManager({offset:r,behavior:t})),H.useEffect(()=>()=>{var n;(n=o.current)==null||n.destroy();},[]),jsxRuntime.jsx(g.Provider,{value:o.current,children:e})},R=()=>{let e=H.useContext(g);if(!e)throw new Error("useScrollManager must be used within a ScrollSectionProvider");return e};var M=e=>{let r=R(),[t,o]=H.useState(null);return H.useEffect(()=>{let l=r.onActiveChange(c=>{o(c);});return ()=>{l();}},[r]),{registerRef:H__default.default.useCallback(l=>{e&&l?r.registerSection(e,l):e&&!l&&r.unregisterSection(e);},[e,r]),scrollTo:l=>r.scrollTo(l),activeId:t,isActive:e?t===e:false}};var N=H.forwardRef((l,n)=>{var c=l,{id:e,as:r="section",children:t}=c,o=m(c,["id","as","children"]);let{registerRef:d}=M(e);return jsxRuntime.jsx(r,p(S({id:e,ref:s=>{d(s),typeof n=="function"?n(s):n&&(n.current=s);}},o),{children:t}))});N.displayName="Section";exports.ScrollSectionProvider=D;exports.Section=N;exports.useScrollManager=R;exports.useScrollSection=M;
package/dist/index.mjs CHANGED
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- import v,{createContext,useRef,useEffect,useContext,useState}from'react';import {ScrollManager}from'@jump-section/core';import {jsx}from'react/jsx-runtime';var c=createContext(null),R=({children:r,offset:e,behavior:n})=>{let t=useRef(null);return t.current||(t.current=new ScrollManager({offset:e,behavior:n})),useEffect(()=>()=>{var l;(l=t.current)==null||l.destroy();},[]),jsx(c.Provider,{value:t.current,children:r})},i=()=>{let r=useContext(c);if(!r)throw new Error("useScrollManager must be used within a ScrollSectionProvider");return r};var E=r=>{let e=i(),[n,t]=useState(null);return useEffect(()=>{let o=e.onActiveChange(s=>{t(s);});return ()=>{o();}},[e]),{registerRef:v.useCallback(o=>{r&&o?e.registerSection(r,o):r&&!o&&e.unregisterSection(r);},[r,e]),scrollTo:o=>e.scrollTo(o),activeId:n,isActive:r?n===r:false}};export{R as ScrollSectionProvider,i as useScrollManager,E as useScrollSection};
2
+ import H,{createContext,forwardRef,useState,useEffect,useContext,useRef}from'react';import {ScrollManager}from'@jump-section/core';import {jsx}from'react/jsx-runtime';var v=Object.defineProperty,x=Object.defineProperties;var E=Object.getOwnPropertyDescriptors;var i=Object.getOwnPropertySymbols;var u=Object.prototype.hasOwnProperty,f=Object.prototype.propertyIsEnumerable;var a=(e,r,t)=>r in e?v(e,r,{enumerable:true,configurable:true,writable:true,value:t}):e[r]=t,S=(e,r)=>{for(var t in r||(r={}))u.call(r,t)&&a(e,t,r[t]);if(i)for(var t of i(r))f.call(r,t)&&a(e,t,r[t]);return e},p=(e,r)=>x(e,E(r));var m=(e,r)=>{var t={};for(var o in e)u.call(e,o)&&r.indexOf(o)<0&&(t[o]=e[o]);if(e!=null&&i)for(var o of i(e))r.indexOf(o)<0&&f.call(e,o)&&(t[o]=e[o]);return t};var g=createContext(null),D=({children:e,offset:r,behavior:t})=>{let o=useRef(null);return o.current||(o.current=new ScrollManager({offset:r,behavior:t})),useEffect(()=>()=>{var n;(n=o.current)==null||n.destroy();},[]),jsx(g.Provider,{value:o.current,children:e})},R=()=>{let e=useContext(g);if(!e)throw new Error("useScrollManager must be used within a ScrollSectionProvider");return e};var M=e=>{let r=R(),[t,o]=useState(null);return useEffect(()=>{let l=r.onActiveChange(c=>{o(c);});return ()=>{l();}},[r]),{registerRef:H.useCallback(l=>{e&&l?r.registerSection(e,l):e&&!l&&r.unregisterSection(e);},[e,r]),scrollTo:l=>r.scrollTo(l),activeId:t,isActive:e?t===e:false}};var N=forwardRef((l,n)=>{var c=l,{id:e,as:r="section",children:t}=c,o=m(c,["id","as","children"]);let{registerRef:d}=M(e);return jsx(r,p(S({id:e,ref:s=>{d(s),typeof n=="function"?n(s):n&&(n.current=s);}},o),{children:t}))});N.displayName="Section";export{D as ScrollSectionProvider,N as Section,R as useScrollManager,M as useScrollSection};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jump-section/react",
3
- "version": "1.0.9",
3
+ "version": "1.0.10",
4
4
  "description": "React hooks for jump-section scroll management",
5
5
  "keywords": [
6
6
  "scroll",