@kubit-ui-web/react-components 2.0.0-beta.54 → 2.0.0-beta.56
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/CHANGELOG.md +12 -0
- package/dist/cjs/components/carousel/hooks/useCarouselSwipe.js +1 -1
- package/dist/cjs/components/inputSignature/hook/useDraw.js +1 -1
- package/dist/cjs/components/option/option.js +1 -1
- package/dist/cjs/components/slider/slider.js +1 -1
- package/dist/cjs/lib/hooks/useContentVisibility/useContentVisibility.js +1 -1
- package/dist/cjs/lib/hooks/useScrollDetection/useScrollDetection.js +1 -1
- package/dist/esm/components/carousel/hooks/useCarouselSwipe.js +1 -1
- package/dist/esm/components/inputSignature/hook/useDraw.js +1 -1
- package/dist/esm/components/option/option.js +1 -1
- package/dist/esm/components/slider/slider.js +1 -1
- package/dist/esm/lib/hooks/useContentVisibility/useContentVisibility.js +1 -1
- package/dist/esm/lib/hooks/useScrollDetection/useScrollDetection.js +1 -1
- package/dist/types/index.d.ts +6 -6
- package/package.json +8 -8
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# @kubit-ui-web/react-components
|
|
2
2
|
|
|
3
|
+
## 2.0.0-beta.56
|
|
4
|
+
|
|
5
|
+
### Major Changes
|
|
6
|
+
|
|
7
|
+
- Update to react 19 (#68)
|
|
8
|
+
|
|
9
|
+
## 2.0.0-beta.55
|
|
10
|
+
|
|
11
|
+
### Major Changes
|
|
12
|
+
|
|
13
|
+
- Move files and improve cssTypes declaration
|
|
14
|
+
|
|
3
15
|
## 2.0.0-beta.54
|
|
4
16
|
|
|
5
17
|
### Major Changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(`../../../lib/hooks/useScrollBlock/useScrollBlock.js`),t=require(`./utils/calc.utils.js`),n=require(`./utils/constants.js`);let r=require(`react`);exports.useCarouselSwipe=({allowShiftRef:i,centerExtremesWhenExtraPadding:a,changePage:o,circular:s,contentContainerRef:c,currentPageRef:l,disabled:u=!1,elements:d,extraPadding:f,numElementsPerPageRef:p,numPagesRef:m,viewerContainerRef:h})=>{let g=(0,r.useRef)(!1),_=(0,r.useRef)(!1),v=(0,r.useRef)(!1),y=(0,r.useRef)(),b=(0,r.useRef)(0),x=(0,r.useRef)(0),S=(0,r.useRef)(0),C=(0,r.useRef)(0),w=(0,r.useCallback)(()=>{i.current&&(s||l.current!==m.current-1)&&o({newPage:l.current+1})},[s,o]),T=(0,r.useCallback)(()=>{i.current&&(s||l.current!==0)&&o({newPage:l.current-1})},[s,o]),{allowScroll:E,blockScroll:D}=e.useScrollBlock(),O=(0,r.useCallback)(e=>{let t=c.current;!t||m.current<=1||(y.current=parseFloat(t.style.left||`0`),e.type===`touchstart`?(b.current=e.touches[0].clientX,S.current=e.touches[0].clientX,C.current=e.touches[0].clientY):(b.current=e.clientX,S.current=e.clientX,C.current=e.clientY),g.current=!0)},[]),k=(0,r.useCallback)(e=>{let r=c.current;if(!r||!g.current||!p?.current||m.current<=1)return;let i,o;e.type===`touchmove`?(x.current=b.current-e.touches[0].clientX,b.current=e.touches[0].clientX,i=e.touches[0].clientX-S.current,o=e.touches[0].clientY-C.current):(x.current=b.current-e.clientX,b.current=e.clientX,i=e.clientX-S.current,o=e.clientY-C.current);let u=parseFloat(r.style.left||`0`)-x.current;if(!_.current&&!v.current&&(Math.abs(i)>n.default.THRESHOLD_TO_DECIDE_IF_ALLOW_DRAGGING?(_.current=!0,D()):Math.abs(o)>n.default.THRESHOLD_TO_DECIDE_IF_ALLOW_DRAGGING&&(v.current=!0)),_.current)if(s&&d.length>p.current)r.style.left=`${u}px`;else{let e=t.default.calcXDistanceBetween2Elements(r.firstChild,r.children[r.children.length-p.current]);if(a)u-f<0&&-u<e-f&&(r.style.left=`${u}px`);else{let t=s?f:0;!s&&f&&l.current===m.current-1&&(t=f*2),u-t<0&&-u<e-t&&(r.style.left=`${u}px`)}}},[D,a,s,d,f]),A=(0,r.useCallback)(()=>{let e=c.current;if(v.current=!1,_.current&&E(),_.current=!1,!e||!g.current||y.current===void 0||m.current<=1)return;g.current=!1;let t=parseFloat(e.style.left||`0`);t-y.current<-n.default.THRESHOLD_TO_DECIDE_IF_SWIPE_ON_DRAG_ENDS?w():t-y.current>n.default.THRESHOLD_TO_DECIDE_IF_SWIPE_ON_DRAG_ENDS?T():e.style.left=`${y.current}px`},[E,w,T]);(0,r.useEffect)(()=>{if(u)return;let e=h.current,t={passive:!0};return e?.addEventListener(`touchstart`,O,t),e?.addEventListener(`touchend`,A,t),e?.addEventListener(`touchmove`,k,t),e?.addEventListener(`mousedown`,O,t),e?.addEventListener(`mouseup`,A,t),e?.addEventListener(`mousemove`,k,t),e?.addEventListener(`mouseleave`,A,t),()=>{e?.removeEventListener(`touchstart`,O,t),e?.removeEventListener(`touchend`,A,t),e?.removeEventListener(`touchmove`,k,t),e?.removeEventListener(`mousedown`,O,t),e?.removeEventListener(`mouseup`,A,t),e?.removeEventListener(`mousemove`,k,t),e?.removeEventListener(`mouseleave`,A,t)}},[O,A,k,u])};
|
|
1
|
+
const e=require(`../../../lib/hooks/useScrollBlock/useScrollBlock.js`),t=require(`./utils/calc.utils.js`),n=require(`./utils/constants.js`);let r=require(`react`);exports.useCarouselSwipe=({allowShiftRef:i,centerExtremesWhenExtraPadding:a,changePage:o,circular:s,contentContainerRef:c,currentPageRef:l,disabled:u=!1,elements:d,extraPadding:f,numElementsPerPageRef:p,numPagesRef:m,viewerContainerRef:h})=>{let g=(0,r.useRef)(!1),_=(0,r.useRef)(!1),v=(0,r.useRef)(!1),y=(0,r.useRef)(void 0),b=(0,r.useRef)(0),x=(0,r.useRef)(0),S=(0,r.useRef)(0),C=(0,r.useRef)(0),w=(0,r.useCallback)(()=>{i.current&&(s||l.current!==m.current-1)&&o({newPage:l.current+1})},[s,o]),T=(0,r.useCallback)(()=>{i.current&&(s||l.current!==0)&&o({newPage:l.current-1})},[s,o]),{allowScroll:E,blockScroll:D}=e.useScrollBlock(),O=(0,r.useCallback)(e=>{let t=c.current;!t||m.current<=1||(y.current=parseFloat(t.style.left||`0`),e.type===`touchstart`?(b.current=e.touches[0].clientX,S.current=e.touches[0].clientX,C.current=e.touches[0].clientY):(b.current=e.clientX,S.current=e.clientX,C.current=e.clientY),g.current=!0)},[]),k=(0,r.useCallback)(e=>{let r=c.current;if(!r||!g.current||!p?.current||m.current<=1)return;let i,o;e.type===`touchmove`?(x.current=b.current-e.touches[0].clientX,b.current=e.touches[0].clientX,i=e.touches[0].clientX-S.current,o=e.touches[0].clientY-C.current):(x.current=b.current-e.clientX,b.current=e.clientX,i=e.clientX-S.current,o=e.clientY-C.current);let u=parseFloat(r.style.left||`0`)-x.current;if(!_.current&&!v.current&&(Math.abs(i)>n.default.THRESHOLD_TO_DECIDE_IF_ALLOW_DRAGGING?(_.current=!0,D()):Math.abs(o)>n.default.THRESHOLD_TO_DECIDE_IF_ALLOW_DRAGGING&&(v.current=!0)),_.current)if(s&&d.length>p.current)r.style.left=`${u}px`;else{let e=t.default.calcXDistanceBetween2Elements(r.firstChild,r.children[r.children.length-p.current]);if(a)u-f<0&&-u<e-f&&(r.style.left=`${u}px`);else{let t=s?f:0;!s&&f&&l.current===m.current-1&&(t=f*2),u-t<0&&-u<e-t&&(r.style.left=`${u}px`)}}},[D,a,s,d,f]),A=(0,r.useCallback)(()=>{let e=c.current;if(v.current=!1,_.current&&E(),_.current=!1,!e||!g.current||y.current===void 0||m.current<=1)return;g.current=!1;let t=parseFloat(e.style.left||`0`);t-y.current<-n.default.THRESHOLD_TO_DECIDE_IF_SWIPE_ON_DRAG_ENDS?w():t-y.current>n.default.THRESHOLD_TO_DECIDE_IF_SWIPE_ON_DRAG_ENDS?T():e.style.left=`${y.current}px`},[E,w,T]);(0,r.useEffect)(()=>{if(u)return;let e=h.current,t={passive:!0};return e?.addEventListener(`touchstart`,O,t),e?.addEventListener(`touchend`,A,t),e?.addEventListener(`touchmove`,k,t),e?.addEventListener(`mousedown`,O,t),e?.addEventListener(`mouseup`,A,t),e?.addEventListener(`mousemove`,k,t),e?.addEventListener(`mouseleave`,A,t),()=>{e?.removeEventListener(`touchstart`,O,t),e?.removeEventListener(`touchend`,A,t),e?.removeEventListener(`touchmove`,k,t),e?.removeEventListener(`mousedown`,O,t),e?.removeEventListener(`mouseup`,A,t),e?.removeEventListener(`mousemove`,k,t),e?.removeEventListener(`mouseleave`,A,t)}},[O,A,k,u])};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
let e=require(`react`);function t(e,t){if(e.width!==t.width||e.height!==t.height)return!1;for(let n=0;n<e.data.length;n++)if(e.data[n]!==t.data[n])return!1;return!0}exports.useDraw=n=>{let r=(0,e.useRef)(null),i=(0,e.useRef)(),a=(0,e.useRef)(!1),o=(0,e.useRef)(!1),s=(0,e.useRef)({color:`black`,lineWidth:2}),c=(0,e.useRef)(null),l=()=>{r.current&&(o.current=!1,i.current.clearRect(0,0,r.current.width,r.current.height))},u=e=>{e&&(s.current.color=e.color,s.current.lineWidth=e.lineWidth)},d=e=>{let t,n;if(e.type===`touchstart`&&r.current){let{touches:i}=e,{clientX:a,clientY:o}=i[0],{left:s,top:c}=r.current.getBoundingClientRect();t=a-s,n=o-c}else t=e.offsetX,n=e.offsetY;c.current=i.current.getImageData(0,0,r.current?.width,r.current?.height),i.current.beginPath(),i.current.moveTo(t,n),a.current=!0},f=e=>{if(!a.current)return;let t,n;if(e.preventDefault(),e.type===`touchmove`&&r.current){let{touches:i}=e,{clientX:a,clientY:o}=i[0],{left:s,top:c}=r.current.getBoundingClientRect();t=a-s,n=o-c}else t=e.offsetX,n=e.offsetY;i.current.lineTo(t,n),i.current.stroke()},p=()=>{let e=i.current.getImageData(0,0,r.current?.width,r.current?.height);if(i.current.closePath(),a.current=!1,c.current&&!t(e,c.current)){let e=r.current?.toDataURL();n?.(e),o.current=!0}};return(0,e.useEffect)(()=>{if(r.current===null)return;let e=r.current;if(i.current=e?.getContext(`2d`,{willReadFrequently:!0}),i.current)return i.current.strokeStyle=s.current.color,i.current.lineWidth=s.current.lineWidth,i.current.lineCap=`round`,i.current.lineJoin=`round`,e?.addEventListener(`mousedown`,d),e?.addEventListener(`mousemove`,f),e?.addEventListener(`mouseup`,p),e?.addEventListener(`mouseleave`,p),e?.addEventListener(`touchstart`,d),e?.addEventListener(`touchmove`,f,{passive:!1}),e?.addEventListener(`touchend`,p),()=>{e?.removeEventListener(`mousedown`,d),e?.removeEventListener(`mousemove`,f),e?.removeEventListener(`mouseup`,p),e?.removeEventListener(`mouseleave`,p),e?.removeEventListener(`touchstart`,d),e?.removeEventListener(`touchmove`,f),e?.removeEventListener(`touchend`,p)}},[]),{canvasRef:r,filled:o.current,resetCanvas:l,setSignatureStyles:u}};
|
|
1
|
+
let e=require(`react`);function t(e,t){if(e.width!==t.width||e.height!==t.height)return!1;for(let n=0;n<e.data.length;n++)if(e.data[n]!==t.data[n])return!1;return!0}exports.useDraw=n=>{let r=(0,e.useRef)(null),i=(0,e.useRef)(null),a=(0,e.useRef)(!1),o=(0,e.useRef)(!1),s=(0,e.useRef)({color:`black`,lineWidth:2}),c=(0,e.useRef)(null),l=()=>{r.current&&(o.current=!1,i.current.clearRect(0,0,r.current.width,r.current.height))},u=e=>{e&&(s.current.color=e.color,s.current.lineWidth=e.lineWidth)},d=e=>{let t,n;if(e.type===`touchstart`&&r.current){let{touches:i}=e,{clientX:a,clientY:o}=i[0],{left:s,top:c}=r.current.getBoundingClientRect();t=a-s,n=o-c}else t=e.offsetX,n=e.offsetY;c.current=i.current.getImageData(0,0,r.current?.width,r.current?.height),i.current.beginPath(),i.current.moveTo(t,n),a.current=!0},f=e=>{if(!a.current)return;let t,n;if(e.preventDefault(),e.type===`touchmove`&&r.current){let{touches:i}=e,{clientX:a,clientY:o}=i[0],{left:s,top:c}=r.current.getBoundingClientRect();t=a-s,n=o-c}else t=e.offsetX,n=e.offsetY;i.current.lineTo(t,n),i.current.stroke()},p=()=>{let e=i.current.getImageData(0,0,r.current?.width,r.current?.height);if(i.current.closePath(),a.current=!1,c.current&&!t(e,c.current)){let e=r.current?.toDataURL();n?.(e),o.current=!0}};return(0,e.useEffect)(()=>{if(r.current===null)return;let e=r.current;if(i.current=e?.getContext(`2d`,{willReadFrequently:!0}),i.current)return i.current.strokeStyle=s.current.color,i.current.lineWidth=s.current.lineWidth,i.current.lineCap=`round`,i.current.lineJoin=`round`,e?.addEventListener(`mousedown`,d),e?.addEventListener(`mousemove`,f),e?.addEventListener(`mouseup`,p),e?.addEventListener(`mouseleave`,p),e?.addEventListener(`touchstart`,d),e?.addEventListener(`touchmove`,f,{passive:!1}),e?.addEventListener(`touchend`,p),()=>{e?.removeEventListener(`mousedown`,d),e?.removeEventListener(`mousemove`,f),e?.removeEventListener(`mouseup`,p),e?.removeEventListener(`mouseleave`,p),e?.removeEventListener(`touchstart`,d),e?.removeEventListener(`touchmove`,f),e?.removeEventListener(`touchend`,p)}},[]),{canvasRef:r,filled:o.current,resetCanvas:l,setSignatureStyles:u}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(`../../lib/provider/genericComponentsProvider/genericComponentsProvider.js`),t=require(`../../lib/hooks/useClassName/useClassName.js`),n=require(`./optionStandAlone.js`);let r=require(`react`),i=require(`react/jsx-runtime`);const a=(0,r.forwardRef)(({additionalClasses:a,focus:o,onBlur:s,onFocus:c,variant:l,...u},d)=>{let f=t.useClassName({additionalClassNames:a,component:`OPTION`,variant:l}),{LINK:p}=e.useGenericComponents(),m=(0,r.useRef)(),[h,g]=(0,r.useState)(!1),[_,v]=(0,r.useState)(!1);(0,r.useImperativeHandle)(d,()=>m.current,[]),(0,r.useEffect)(()=>{o&&m.current?.focus()},[o]);let y=e=>{c?.(e),v(!0)},b=e=>{s?.(e),v(!1)};return(0,i.jsx)(n.OptionStandAlone,{...u,ref:m,componentLink:p,cssClasses:f,focus:_,hover:h,onBlur:b,onFocus:y,onMouseEnter:()=>g(!0),onMouseLeave:()=>g(!1)})});exports.Option=a;
|
|
1
|
+
const e=require(`../../lib/provider/genericComponentsProvider/genericComponentsProvider.js`),t=require(`../../lib/hooks/useClassName/useClassName.js`),n=require(`./optionStandAlone.js`);let r=require(`react`),i=require(`react/jsx-runtime`);const a=(0,r.forwardRef)(({additionalClasses:a,focus:o,onBlur:s,onFocus:c,variant:l,...u},d)=>{let f=t.useClassName({additionalClassNames:a,component:`OPTION`,variant:l}),{LINK:p}=e.useGenericComponents(),m=(0,r.useRef)(null),[h,g]=(0,r.useState)(!1),[_,v]=(0,r.useState)(!1);(0,r.useImperativeHandle)(d,()=>m.current,[]),(0,r.useEffect)(()=>{o&&m.current?.focus()},[o]);let y=e=>{c?.(e),v(!0)},b=e=>{s?.(e),v(!1)};return(0,i.jsx)(n.OptionStandAlone,{...u,ref:m,componentLink:p,cssClasses:f,focus:_,hover:h,onBlur:b,onFocus:y,onMouseEnter:()=>g(!0),onMouseLeave:()=>g(!1)})});exports.Option=a;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(`../../lib/hooks/useClassName/useClassName.js`),t=require(`./utils/accessibility.utils.js`),n=require(`./sliderStandAlone.js`),r=require(`./utils/slider.utils.js`);let i=require(`react`),a=require(`react/jsx-runtime`);var o=50;const s=(0,i.forwardRef)(({additionalClasses:s,ariaLabel:c,ariaLabelBy:l,decrementButton:u,defaultValue:d,disabled:f=!1,incrementButton:p,initialStepOffset:m,label:h,leftHelperText:g,max:_=100,min:v=0,onChange:y,onDragEnd:b,onDragStart:x,range:S=!1,rightAriaLabel:C,rightAriaLabelBy:w,rightHelperText:T,rightThumbIcon:ee,rightTooltip:E,step:D=1,thumbExceedsTrack:O=!0,thumbIcon:k,tooltip:A,type:te=`discrete`,value:j,variant:M},N)=>{let P=e=>r.calcDefaultValue({initialStepOffset:m,max:_,min:v,range:S,step:D,value:e}),F=(0,i.useRef)(null),[I,L]=(0,i.useState)(P(j??d)),[R,z]=(0,i.useState)(!1),[B,V]=(0,i.useState)(!1),H=(0,i.useRef)(`left`),[U,W]=(0,i.useState)({max:100,min:0}),G=(0,i.useRef)();r.focusThumb({container:F.current,currentActivePointer:H.current,range:S});let K=(0,i.useCallback)(e=>{y&&(clearTimeout(G.current),G.current=setTimeout(()=>{y(e)},o))},[y]),q=e=>{if(!F.current||f)return;let t=r.calcScaleValue({initialStepOffset:m,max:_,min:v,step:D,value:r.calcValueByOffset({max:_,min:v,offset:r.calculateChange({container:F.current,event:e,offsetBoundaries:U}),offsetBoundaries:U,step:D})});L(e=>{let n=t;return S&&(n=r.calcNewRangeValue({activePointer:H,newValue:t,prevValue:e})),K(n),n})},J=e=>{if(f)return;let n=t.calcNewValueAfterKeyPress({activePointer:H.current,event:e,max:_,min:v,range:S,step:D,value:I});n!==void 0&&(L(n),K(n))},Y=e=>{let n=t.incrementValue({activePointer:H.current,max:_,range:S,step:D,value:I});n!==void 0&&(L(n),K(n)),p?.onClick?.(e)},X=e=>{let n=t.decrementValue({activePointer:H.current,min:v,range:S,step:D,value:I});n!==void 0&&(L(n),K(n)),u?.onClick?.(e)},Z=()=>{b?.(),V(!1),Q()},{scaleOffsets:ne,showScale:re}=r.getScale({initialStepOffset:m,max:_,min:v,step:D,type:te}),{offset:ie,offsetLeft:ae,offsetRight:oe}=r.getOffset({max:_,min:v,offsetBoundaries:U,range:S,value:I}),Q=()=>{window.removeEventListener(`mousemove`,q),window.removeEventListener(`mouseup`,Z),window.removeEventListener(`touchend`,Z)},se=e.useClassName({additionalClassNames:s,component:`SLIDER`,variant:M}),$=(0,i.useCallback)(()=>{if(O){W({max:100,min:0});return}if(!F.current)return;let e=F.current.querySelector(`[role="slider"]`);if(!e)return;let t=F.current.getBoundingClientRect().width,n=e.getBoundingClientRect().width/t*100/2;W({max:100-n,min:n})},[O]);(0,i.useEffect)(()=>($(),O||window.addEventListener(`resize`,$),()=>{O||window.removeEventListener(`resize`,$)}),[O]),(0,i.useEffect)(()=>{j!==void 0&&(S&&!r.equalsRangeValues({values1:j,values2:I})||!S&&j!==I)&&L(P(j))},[j]),(0,i.useEffect)(()=>Q,[]);let ce=e=>{x?.(),V(!0),q(e),window.addEventListener(`mousemove`,q),window.addEventListener(`mouseup`,Z)},le=e=>{x?.(),V(!0),q(e),window.addEventListener(`touchend`,Z)};return(0,a.jsx)(n.SliderStandAlone,{ref:N,activePointer:H,ariaLabel:c,ariaLabelBy:l,containerRef:F,cssClasses:se,decrementButton:{...u,disabled:f||u?.disabled,onClick:X},disabled:f,hover:R,incrementButton:{...p,disabled:f||p?.disabled,onClick:Y},label:h,leftHelperText:g,max:_,min:v,offset:ie,offsetLeft:ae,offsetRight:oe,pressed:B,range:S,rightAriaLabel:C,rightAriaLabelBy:w,rightHelperText:T,rightThumbIcon:ee,rightTooltip:E,scaleOffsets:ne,setHover:z,showScale:re,step:D,thumbIcon:k,tooltip:A,value:I,onChange:q,onKeyPress:J,onMouseDown:ce,onTouchStart:le})});exports.Slider=s;
|
|
1
|
+
const e=require(`../../lib/hooks/useClassName/useClassName.js`),t=require(`./utils/accessibility.utils.js`),n=require(`./sliderStandAlone.js`),r=require(`./utils/slider.utils.js`);let i=require(`react`),a=require(`react/jsx-runtime`);var o=50;const s=(0,i.forwardRef)(({additionalClasses:s,ariaLabel:c,ariaLabelBy:l,decrementButton:u,defaultValue:d,disabled:f=!1,incrementButton:p,initialStepOffset:m,label:h,leftHelperText:g,max:_=100,min:v=0,onChange:y,onDragEnd:b,onDragStart:x,range:S=!1,rightAriaLabel:C,rightAriaLabelBy:w,rightHelperText:T,rightThumbIcon:ee,rightTooltip:E,step:D=1,thumbExceedsTrack:O=!0,thumbIcon:k,tooltip:A,type:te=`discrete`,value:j,variant:M},N)=>{let P=e=>r.calcDefaultValue({initialStepOffset:m,max:_,min:v,range:S,step:D,value:e}),F=(0,i.useRef)(null),[I,L]=(0,i.useState)(P(j??d)),[R,z]=(0,i.useState)(!1),[B,V]=(0,i.useState)(!1),H=(0,i.useRef)(`left`),[U,W]=(0,i.useState)({max:100,min:0}),G=(0,i.useRef)(void 0);r.focusThumb({container:F.current,currentActivePointer:H.current,range:S});let K=(0,i.useCallback)(e=>{y&&(clearTimeout(G.current),G.current=setTimeout(()=>{y(e)},o))},[y]),q=e=>{if(!F.current||f)return;let t=r.calcScaleValue({initialStepOffset:m,max:_,min:v,step:D,value:r.calcValueByOffset({max:_,min:v,offset:r.calculateChange({container:F.current,event:e,offsetBoundaries:U}),offsetBoundaries:U,step:D})});L(e=>{let n=t;return S&&(n=r.calcNewRangeValue({activePointer:H,newValue:t,prevValue:e})),K(n),n})},J=e=>{if(f)return;let n=t.calcNewValueAfterKeyPress({activePointer:H.current,event:e,max:_,min:v,range:S,step:D,value:I});n!==void 0&&(L(n),K(n))},Y=e=>{let n=t.incrementValue({activePointer:H.current,max:_,range:S,step:D,value:I});n!==void 0&&(L(n),K(n)),p?.onClick?.(e)},X=e=>{let n=t.decrementValue({activePointer:H.current,min:v,range:S,step:D,value:I});n!==void 0&&(L(n),K(n)),u?.onClick?.(e)},Z=()=>{b?.(),V(!1),Q()},{scaleOffsets:ne,showScale:re}=r.getScale({initialStepOffset:m,max:_,min:v,step:D,type:te}),{offset:ie,offsetLeft:ae,offsetRight:oe}=r.getOffset({max:_,min:v,offsetBoundaries:U,range:S,value:I}),Q=()=>{window.removeEventListener(`mousemove`,q),window.removeEventListener(`mouseup`,Z),window.removeEventListener(`touchend`,Z)},se=e.useClassName({additionalClassNames:s,component:`SLIDER`,variant:M}),$=(0,i.useCallback)(()=>{if(O){W({max:100,min:0});return}if(!F.current)return;let e=F.current.querySelector(`[role="slider"]`);if(!e)return;let t=F.current.getBoundingClientRect().width,n=e.getBoundingClientRect().width/t*100/2;W({max:100-n,min:n})},[O]);(0,i.useEffect)(()=>($(),O||window.addEventListener(`resize`,$),()=>{O||window.removeEventListener(`resize`,$)}),[O]),(0,i.useEffect)(()=>{j!==void 0&&(S&&!r.equalsRangeValues({values1:j,values2:I})||!S&&j!==I)&&L(P(j))},[j]),(0,i.useEffect)(()=>Q,[]);let ce=e=>{x?.(),V(!0),q(e),window.addEventListener(`mousemove`,q),window.addEventListener(`mouseup`,Z)},le=e=>{x?.(),V(!0),q(e),window.addEventListener(`touchend`,Z)};return(0,a.jsx)(n.SliderStandAlone,{ref:N,activePointer:H,ariaLabel:c,ariaLabelBy:l,containerRef:F,cssClasses:se,decrementButton:{...u,disabled:f||u?.disabled,onClick:X},disabled:f,hover:R,incrementButton:{...p,disabled:f||p?.disabled,onClick:Y},label:h,leftHelperText:g,max:_,min:v,offset:ie,offsetLeft:ae,offsetRight:oe,pressed:B,range:S,rightAriaLabel:C,rightAriaLabelBy:w,rightHelperText:T,rightThumbIcon:ee,rightTooltip:E,scaleOffsets:ne,setHover:z,showScale:re,step:D,thumbIcon:k,tooltip:A,value:I,onChange:q,onKeyPress:J,onMouseDown:ce,onTouchStart:le})});exports.Slider=s;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(`./utils/contentVisibility.js`);let t=require(`react`);exports.useContentVisibility=({minVisibleHeight:n=100,onContentInvisible:r,onContentVisible:i})=>{let a=(0,t.useRef)(null),o=(0,t.useRef)(null),s=(0,t.useRef)(),c=(0,t.useRef)(),l=(0,t.useRef)(void 0),u=(0,t.useCallback)(()=>{let e=a.current,t=o.current;!e||!t||(i?i():(e.style.overflowY=``,t.style.overflowY=``))},[i]),d=(0,t.useCallback)(()=>{let e=a.current,t=o.current;!e||!t||(r?r():(e.style.overflowY=`auto`,t.style.overflowY=`visible`))},[r]);return{handleContentVisibility:(0,t.useCallback)(({container:t,content:r})=>{if(a.current=t,o.current=r,t&&r){let i=()=>{let i=e.isContentVisibleEnough({container:t,content:r,minVisibleHeight:n});i!==l.current&&(i?u():d()),l.current=i};i(),s.current=new ResizeObserver(()=>{i()}),c.current=new ResizeObserver(()=>{i()}),s.current.observe(r),s.current.observe(t)}else s.current?.disconnect(),c.current?.disconnect()},[n,u,d])}};
|
|
1
|
+
const e=require(`./utils/contentVisibility.js`);let t=require(`react`);exports.useContentVisibility=({minVisibleHeight:n=100,onContentInvisible:r,onContentVisible:i})=>{let a=(0,t.useRef)(null),o=(0,t.useRef)(null),s=(0,t.useRef)(void 0),c=(0,t.useRef)(void 0),l=(0,t.useRef)(void 0),u=(0,t.useCallback)(()=>{let e=a.current,t=o.current;!e||!t||(i?i():(e.style.overflowY=``,t.style.overflowY=``))},[i]),d=(0,t.useCallback)(()=>{let e=a.current,t=o.current;!e||!t||(r?r():(e.style.overflowY=`auto`,t.style.overflowY=`visible`))},[r]);return{handleContentVisibility:(0,t.useCallback)(({container:t,content:r})=>{if(a.current=t,o.current=r,t&&r){let i=()=>{let i=e.isContentVisibleEnough({container:t,content:r,minVisibleHeight:n});i!==l.current&&(i?u():d()),l.current=i};i(),s.current=new ResizeObserver(()=>{i()}),c.current=new ResizeObserver(()=>{i()}),s.current.observe(r),s.current.observe(t)}else s.current?.disconnect(),c.current?.disconnect()},[n,u,d])}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(`../../utils/scroll/hasScroll.js`);let t=require(`react`);exports.useScrollDetection=({autoFocus:n=!1}={})=>{let[r,i]=(0,t.useState)(!1),a=(0,t.useRef)(),o=(0,t.useRef)(!1);return{handleScrollDetection:(0,t.useCallback)(t=>{if(t){let r=t=>{let r=e.hasScroll(t);i(r),n&&r&&!o.current&&(t.focus(),o.current=!0)};r(t),a.current=new ResizeObserver(()=>{r(t)}),a.current.observe(t)}else a.current?.disconnect()},[n]),hasScroll:r}};
|
|
1
|
+
const e=require(`../../utils/scroll/hasScroll.js`);let t=require(`react`);exports.useScrollDetection=({autoFocus:n=!1}={})=>{let[r,i]=(0,t.useState)(!1),a=(0,t.useRef)(void 0),o=(0,t.useRef)(!1);return{handleScrollDetection:(0,t.useCallback)(t=>{if(t){let r=t=>{let r=e.hasScroll(t);i(r),n&&r&&!o.current&&(t.focus(),o.current=!0)};r(t),a.current=new ResizeObserver(()=>{r(t)}),a.current.observe(t)}else a.current?.disconnect()},[n]),hasScroll:r}};
|
|
@@ -3,7 +3,7 @@ import calc_utils_default from "./utils/calc.utils.js";
|
|
|
3
3
|
import constants_default from "./utils/constants.js";
|
|
4
4
|
import { useCallback, useEffect, useRef } from "react";
|
|
5
5
|
const useCarouselSwipe = ({ allowShiftRef: a, centerExtremesWhenExtraPadding: o, changePage: s, circular: c, contentContainerRef: l, currentPageRef: u, disabled: d = !1, elements: f, extraPadding: p, numElementsPerPageRef: m, numPagesRef: h, viewerContainerRef: g }) => {
|
|
6
|
-
let _ = useRef(!1), v = useRef(!1), y = useRef(!1), b = useRef(), x = useRef(0), S = useRef(0), C = useRef(0), w = useRef(0), T = useCallback(() => {
|
|
6
|
+
let _ = useRef(!1), v = useRef(!1), y = useRef(!1), b = useRef(void 0), x = useRef(0), S = useRef(0), C = useRef(0), w = useRef(0), T = useCallback(() => {
|
|
7
7
|
a.current && (c || u.current !== h.current - 1) && s({ newPage: u.current + 1 });
|
|
8
8
|
}, [c, s]), E = useCallback(() => {
|
|
9
9
|
a.current && (c || u.current !== 0) && s({ newPage: u.current - 1 });
|
|
@@ -5,7 +5,7 @@ function isImageDataEqual(e, t) {
|
|
|
5
5
|
return !0;
|
|
6
6
|
}
|
|
7
7
|
const useDraw = (r) => {
|
|
8
|
-
let i = useRef(null), a = useRef(), o = useRef(!1), s = useRef(!1), c = useRef({
|
|
8
|
+
let i = useRef(null), a = useRef(null), o = useRef(!1), s = useRef(!1), c = useRef({
|
|
9
9
|
color: "black",
|
|
10
10
|
lineWidth: 2
|
|
11
11
|
}), l = useRef(null), u = () => {
|
|
@@ -8,7 +8,7 @@ const Option = forwardRef(({ additionalClasses: t, focus: n, onBlur: r, onFocus:
|
|
|
8
8
|
additionalClassNames: t,
|
|
9
9
|
component: "OPTION",
|
|
10
10
|
variant: a
|
|
11
|
-
}), { LINK: l } = useGenericComponents(), u = useRef(), [d, f] = useState(!1), [p, m] = useState(!1);
|
|
11
|
+
}), { LINK: l } = useGenericComponents(), u = useRef(null), [d, f] = useState(!1), [p, m] = useState(!1);
|
|
12
12
|
useImperativeHandle(s, () => u.current, []), useEffect(() => {
|
|
13
13
|
n && u.current?.focus();
|
|
14
14
|
}, [n]);
|
|
@@ -16,7 +16,7 @@ const Slider = forwardRef(({ additionalClasses: r, ariaLabel: i, ariaLabelBy: a,
|
|
|
16
16
|
}), j = useRef(null), [M, N] = useState(A(D ?? s)), [P, F] = useState(!1), [I, L] = useState(!1), R = useRef("left"), [z, B] = useState({
|
|
17
17
|
max: 100,
|
|
18
18
|
min: 0
|
|
19
|
-
}), V = useRef();
|
|
19
|
+
}), V = useRef(void 0);
|
|
20
20
|
focusThumb({
|
|
21
21
|
container: j.current,
|
|
22
22
|
currentActivePointer: R.current,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { isContentVisibleEnough } from "./utils/contentVisibility.js";
|
|
2
2
|
import { useCallback, useRef } from "react";
|
|
3
3
|
const useContentVisibility = ({ minVisibleHeight: r = 100, onContentInvisible: i, onContentVisible: a }) => {
|
|
4
|
-
let o = useRef(null), s = useRef(null), c = useRef(), l = useRef(), u = useRef(void 0), d = useCallback(() => {
|
|
4
|
+
let o = useRef(null), s = useRef(null), c = useRef(void 0), l = useRef(void 0), u = useRef(void 0), d = useCallback(() => {
|
|
5
5
|
let e = o.current, t = s.current;
|
|
6
6
|
!e || !t || (a ? a() : (e.style.overflowY = "", t.style.overflowY = ""));
|
|
7
7
|
}, [a]), f = useCallback(() => {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { hasScroll } from "../../utils/scroll/hasScroll.js";
|
|
2
2
|
import { useCallback, useRef, useState } from "react";
|
|
3
3
|
const useScrollDetection = ({ autoFocus: n = !1 } = {}) => {
|
|
4
|
-
let [r, i] = useState(!1), a = useRef(), o = useRef(!1);
|
|
4
|
+
let [r, i] = useState(!1), a = useRef(void 0), o = useRef(!1);
|
|
5
5
|
return {
|
|
6
6
|
handleScrollDetection: useCallback((e) => {
|
|
7
7
|
if (e) {
|
package/dist/types/index.d.ts
CHANGED
|
@@ -2562,8 +2562,8 @@ export declare interface ICarousel extends Omit<ICarouselStandAlone, 'cssClasses
|
|
|
2562
2562
|
|
|
2563
2563
|
declare interface ICarouselStandAlone extends DataAttributes {
|
|
2564
2564
|
cssClasses?: CarouselCssClasses;
|
|
2565
|
-
viewerContainerRef: React.RefObject<HTMLDivElement>;
|
|
2566
|
-
contentContainerRef: React.RefObject<HTMLDivElement>;
|
|
2565
|
+
viewerContainerRef: React.RefObject<HTMLDivElement | null>;
|
|
2566
|
+
contentContainerRef: React.RefObject<HTMLDivElement | null>;
|
|
2567
2567
|
elements: JSX.Element[];
|
|
2568
2568
|
screenReaderOnly?: CarouselScreenReaderOnlyType;
|
|
2569
2569
|
allowModifySliceWidth?: boolean;
|
|
@@ -2951,7 +2951,7 @@ export declare interface InputSignatureLineStyles {
|
|
|
2951
2951
|
*/
|
|
2952
2952
|
export declare interface InputSignatureStandAloneProps extends DataAttributes {
|
|
2953
2953
|
state: InputSignatureState;
|
|
2954
|
-
canvasRef: React.RefObject<HTMLCanvasElement>;
|
|
2954
|
+
canvasRef: React.RefObject<HTMLCanvasElement | null>;
|
|
2955
2955
|
placeholder: CommonTextProps;
|
|
2956
2956
|
errorText?: CommonTextProps;
|
|
2957
2957
|
onClickContainer: (e: React.MouseEvent<HTMLDivElement>) => void;
|
|
@@ -4306,13 +4306,13 @@ export declare interface SelectStandAloneProps extends DataAttributes {
|
|
|
4306
4306
|
listOptions: SelectListOptionsProps;
|
|
4307
4307
|
optionSelected?: string;
|
|
4308
4308
|
onOptionClick: (value: string) => void;
|
|
4309
|
-
listOptionsRef: RefObject<HTMLDivElement>;
|
|
4309
|
+
listOptionsRef: RefObject<HTMLDivElement | null>;
|
|
4310
4310
|
closePopoverOnScroll?: boolean;
|
|
4311
4311
|
openAndCloseOnHover?: boolean;
|
|
4312
4312
|
url?: string;
|
|
4313
4313
|
urlTarget?: HTMLAttributeAnchorTarget;
|
|
4314
4314
|
component: 'button' | GenericLinkType;
|
|
4315
|
-
buttonOrLinkRef?: RefObject<HTMLButtonElement>;
|
|
4315
|
+
buttonOrLinkRef?: RefObject<HTMLButtonElement | null>;
|
|
4316
4316
|
onFocus?: FocusEventHandler<HTMLDivElement>;
|
|
4317
4317
|
onBlur?: FocusEventHandler<HTMLDivElement>;
|
|
4318
4318
|
onKeyDown?: KeyboardEventHandler<HTMLDivElement>;
|
|
@@ -4513,7 +4513,7 @@ export declare interface SliderStandAloneProps extends DataAttributes {
|
|
|
4513
4513
|
hover: boolean;
|
|
4514
4514
|
pressed: boolean;
|
|
4515
4515
|
activePointer: React.MutableRefObject<string>;
|
|
4516
|
-
containerRef: React.RefObject<HTMLDivElement>;
|
|
4516
|
+
containerRef: React.RefObject<HTMLDivElement | null>;
|
|
4517
4517
|
onMouseDown: React.MouseEventHandler<HTMLDivElement>;
|
|
4518
4518
|
onChange: (event: MouseEvent | React.TouchEvent | React.MouseEvent) => void;
|
|
4519
4519
|
onTouchStart: React.TouchEventHandler<HTMLDivElement>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kubit-ui-web/react-components",
|
|
3
|
-
"version": "2.0.0-beta.
|
|
3
|
+
"version": "2.0.0-beta.56",
|
|
4
4
|
"description": "Kubit React Components is a customizable, accessible library of React web components, designed to enhance your application's user experience",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Kubit",
|
|
@@ -138,8 +138,8 @@
|
|
|
138
138
|
}
|
|
139
139
|
},
|
|
140
140
|
"peerDependencies": {
|
|
141
|
-
"react": "
|
|
142
|
-
"react-dom": "
|
|
141
|
+
"react": "^18.3.0 || ^19.0.0",
|
|
142
|
+
"react-dom": "^18.3.0 || ^19.0.0"
|
|
143
143
|
},
|
|
144
144
|
"dependencies": {
|
|
145
145
|
"@floating-ui/dom": "^1.7.5"
|
|
@@ -151,8 +151,8 @@
|
|
|
151
151
|
"@testing-library/user-event": "^14.6.1",
|
|
152
152
|
"@trivago/prettier-plugin-sort-imports": "^6.0.2",
|
|
153
153
|
"@types/node": "^25.2.3",
|
|
154
|
-
"@types/react": "^
|
|
155
|
-
"@types/react-dom": "^
|
|
154
|
+
"@types/react": "^19.2.14",
|
|
155
|
+
"@types/react-dom": "^19.2.3",
|
|
156
156
|
"@types/testing-library__jest-dom": "^6.0.0",
|
|
157
157
|
"@vitejs/plugin-react": "^5.1.4",
|
|
158
158
|
"@vitest/coverage-v8": "^4.0.18",
|
|
@@ -164,15 +164,15 @@
|
|
|
164
164
|
"html-validate": "^10.7.0",
|
|
165
165
|
"jsdom": "^28.0.0",
|
|
166
166
|
"prettier": "^3.8.1",
|
|
167
|
-
"react": "
|
|
168
|
-
"react-dom": "
|
|
167
|
+
"react": "^19.2.4",
|
|
168
|
+
"react-dom": "^19.2.4",
|
|
169
169
|
"typescript": "^5.9.3",
|
|
170
170
|
"typescript-eslint": "^8.55.0",
|
|
171
171
|
"vite": "8.0.0-beta.10",
|
|
172
172
|
"vite-plugin-dts": "^4.5.4",
|
|
173
173
|
"vitest": "^4.0.18",
|
|
174
174
|
"vitest-axe": "^0.1.0",
|
|
175
|
-
"@kubit-ui-web/design-system": "2.0.0-beta.
|
|
175
|
+
"@kubit-ui-web/design-system": "2.0.0-beta.15"
|
|
176
176
|
},
|
|
177
177
|
"publishConfig": {
|
|
178
178
|
"access": "public",
|