UNPKG

@jengaui/slider

Version:

Jenga UI Slider component in React

17 lines (14 loc) 2.19 kB
import { a as a$3 } from './chunk-A22JSPE3.js'; import { a as a$1 } from './chunk-D375VNX4.js'; import { a as a$2 } from './chunk-2BZ7NODT.js'; import { a as a$4 } from './chunk-3A2DI5A3.js'; import { g, h, f } from './chunk-TWE3IXO2.js'; import { e, a, d } from './chunk-7MOG5BBP.js'; import { forwardRef, useRef } from 'react'; import { useSlider } from '@react-aria/slider'; import { useSliderState } from '@react-stately/slider'; import { FieldWrapper } from '@jengaui/form'; import { extractStyles, OUTER_STYLES } from 'tastycss'; import { jsxs, jsx } from 'react/jsx-runtime'; function se(a$5,A){let{labelPosition:y,label:D,extra:O,styles:n,isRequired:L,validationState:_,message:w,description:B,requiredMark:H,labelSuffix:W,labelStyles:q,necessityIndicator:G,defaultValue:s,value:d$1,gradation:J,step:c=1,isDisabled:i,orientation:j="horizontal",showInput:p,inputStyles:z,inputSuffix:N,minValue:U,maxValue:Y,onChange:P,onChangeEnd:R,...K}=a$5,[u,m]=e(U,Y,d$1||s),o=a(s||d$1||[0,1]),V=o.length<=1,S=useRef(null),Q=useRef(null),X=new Intl.NumberFormat,r={step:c,orientation:j,isDisabled:i,minValue:u,maxValue:m,value:d(d$1,u,m),defaultValue:d(s,u,m),onChange(e){P&&P(Array.isArray(e)?e:[e]);},onChangeEnd(e){R&&R(Array.isArray(e)?e:[e]);}},l=useSliderState({...a$5,...r,numberFormatter:X}),{groupProps:Z,trackProps:$,labelProps:ee}=useSlider({...a$5,...r},l,S),x={step:c,state:l,isDisabled:i,suffix:N,styles:z,min:r.minValue,max:r.maxValue},te=jsxs(g,{...Z,mods:{sideLabel:y==="side",inputs:p},children:[!V&&p&&jsx(a$1,{index:0,...x}),jsx(h,{children:jsxs(f,{...$,ref:S,children:[jsx(a$2,{state:l,ranges:o,isSingle:V,isDisabled:i}),jsx(a$3,{state:l,ranges:o,values:J}),o.map(e=>jsx(a$4,{index:e,state:l,inputRef:Q,trackRef:S,isDisabled:i,defaultValue:r.defaultValue&&r.defaultValue[e]},e))]})}),p&&jsx(a$1,{index:1,...x})]});return n=extractStyles(K,OUTER_STYLES,n),jsx(FieldWrapper,{labelPosition:y,label:D,extra:O,styles:n,isRequired:L,labelStyles:q,necessityIndicator:G,labelProps:ee,isDisabled:i,validationState:_,message:w,description:B,requiredMark:H,labelSuffix:W,Component:te,ref:A})}var de=forwardRef(se),Fe=Object.assign(de,{jengaInputType:"CheckboxGroup"}); export { Fe as a };