@data-slot/slider 0.2.31 → 0.2.33

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 CHANGED
@@ -1 +1 @@
1
- var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},s=(n,r,a)=>(a=n==null?{}:e(i(n)),o(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));const c=s(require(`@data-slot/core`)),l=[`horizontal`,`vertical`];function u(e){if(!e)return;let t=e.split(`,`).map(e=>parseFloat(e.trim()));if(!t.some(e=>isNaN(e))){if(t.length===2)return[t[0],t[1]];if(t.length===1)return t[0]}}function d(e){return Array.isArray(e)}function f(e,t,n,r){let i=Math.round((e-t)/r)*r+t,a=r.toString().split(`.`)[1]?.length??0,o=parseFloat(i.toFixed(a));return Math.min(n,Math.max(t,o))}function p(e,t,n){return n===t?0:(e-t)/(n-t)*100}function m(e,t,n){return e/100*(n-t)+t}function h(e,t={}){let n=(0,c.getPart)(e,`slider-track`),r=(0,c.getParts)(e,`slider-thumb`),i=(0,c.getPart)(e,`slider-range`);if(!n||r.length===0)throw Error(`Slider requires slider-track and at least one slider-thumb`);let a=n.parentElement;if(!a)throw Error(`Slider track must have a parent element (control)`);let o=t.min??(0,c.getDataNumber)(e,`min`)??0,s=t.max??(0,c.getDataNumber)(e,`max`)??100;o>s&&([o,s]=[s,o]);let h=t.step??(0,c.getDataNumber)(e,`step`)??1;h<=0&&(h=1);let g=t.largeStep??(0,c.getDataNumber)(e,`largeStep`)??h*10,_=t.orientation??(0,c.getDataEnum)(e,`orientation`,l)??`horizontal`,v=t.disabled??(0,c.getDataBool)(e,`disabled`)??!1,y=t.onValueChange,b=t.onValueCommit,x=u((0,c.getDataString)(e,`defaultValue`)),S=t.defaultValue??x??o,C=r.length>=2;C&&!d(S)?S=[o,S]:!C&&d(S)&&(S=S[1]);let w=d(S)?[f(S[0],o,s,h),f(S[1],o,s,h)]:f(S,o,s,h),T=[],E=null,D=0,O=null,k=null;e.setAttribute(`data-orientation`,_);let A=t=>{t?e.setAttribute(`data-disabled`,``):e.removeAttribute(`data-disabled`);for(let e of r)(0,c.setAria)(e,`disabled`,t),e.tabIndex=t?-1:0};A(v);let j=(e,t)=>{e.setAttribute(`role`,`slider`),e.tabIndex=v?-1:0,(0,c.ensureId)(e,`slider-thumb`),(0,c.setAria)(e,`orientation`,_);let n=e.hasAttribute(`aria-label`)||e.hasAttribute(`aria-labelledby`),r=e.dataset.label;r?(0,c.setAria)(e,`label`,r):!n&&C&&(0,c.setAria)(e,`label`,t===0?`Minimum`:`Maximum`)};for(let e=0;e<r.length;e++)j(r[e],e);let M=_===`horizontal`,N=()=>{if(d(w)){let[e,t]=w,n=p(e,o,s),a=p(t,o,s);r[0]&&((0,c.setAria)(r[0],`valuenow`,String(e)),(0,c.setAria)(r[0],`valuemin`,String(o)),(0,c.setAria)(r[0],`valuemax`,String(t)),M?(r[0].style.left=`${n}%`,r[0].style.bottom=``):(r[0].style.bottom=`${n}%`,r[0].style.left=``)),r[1]&&((0,c.setAria)(r[1],`valuenow`,String(t)),(0,c.setAria)(r[1],`valuemin`,String(e)),(0,c.setAria)(r[1],`valuemax`,String(s)),M?(r[1].style.left=`${a}%`,r[1].style.bottom=``):(r[1].style.bottom=`${a}%`,r[1].style.left=``)),i&&(M?(i.style.left=`${n}%`,i.style.width=`${a-n}%`,i.style.bottom=``,i.style.height=``):(i.style.bottom=`${n}%`,i.style.height=`${a-n}%`,i.style.left=``,i.style.width=``))}else{let e=p(w,o,s);r[0]&&((0,c.setAria)(r[0],`valuenow`,String(w)),(0,c.setAria)(r[0],`valuemin`,String(o)),(0,c.setAria)(r[0],`valuemax`,String(s)),M?(r[0].style.left=`${e}%`,r[0].style.bottom=``):(r[0].style.bottom=`${e}%`,r[0].style.left=``)),i&&(M?(i.style.left=`0%`,i.style.width=`${e}%`,i.style.bottom=``,i.style.height=``):(i.style.bottom=`0%`,i.style.height=`${e}%`,i.style.left=``,i.style.width=``))}d(w)?e.setAttribute(`data-value`,`${w[0]},${w[1]}`):e.setAttribute(`data-value`,String(w))},P=(e,t)=>d(e)&&d(t)?e[0]===t[0]&&e[1]===t[1]:e===t,F=(t,n=!0)=>{let r;if(d(t)){let[e,n]=t;e=f(e,o,s,h),n=f(n,o,s,h),e>n&&([e,n]=[n,e]),r=[e,n]}else r=f(t,o,s,h);let i=!P(r,w);return i?(w=r,N(),n&&((0,c.emit)(e,`slider:change`,{value:w}),y?.(w)),!0):!1};N();let I=e=>{let t=n.getBoundingClientRect();if(M&&t.width===0||!M&&t.height===0)return null;let r;return r=M?(e.clientX-t.left)/t.width*100:(t.bottom-e.clientY)/t.height*100,r=Math.max(0,Math.min(100,r)),m(r,o,s)},L=e=>{if(!e||!(e instanceof HTMLElement))return null;let t=r.indexOf(e);if(t!==-1)return t;for(let t=0;t<r.length;t++)if(r[t].contains(e))return t;return null},R=e=>{if(!d(w))return 0;let[t,n]=w,r=Math.abs(e-t),i=Math.abs(e-n);return r===i?D:r<i?0:1},z=(e,t)=>{if(d(w)){let[n,r]=w;if(e===0){let e=f(t,o,r,h);return F([e,r])}else{let e=f(t,n,s,h);return F([n,e])}}else return F(t)},B=t=>{if(v)return;t.preventDefault();let n=I(t);if(n===null)return;let i=L(t.target);i===null&&(i=R(n)),E=i,D=i,e.setAttribute(`data-dragging`,``),r[i]?.setAttribute(`data-dragging`,``),r[i]?.focus(),k=a.style.touchAction,a.style.touchAction=`none`,z(i,n),a.setPointerCapture(t.pointerId)},V=e=>{if(E===null||v)return;e.preventDefault();let t=I(e);t!==null&&z(E,t)},H=t=>{if(E!==null){e.removeAttribute(`data-dragging`);for(let e of r)e.removeAttribute(`data-dragging`);a.style.touchAction=k??``,k=null,(0,c.emit)(e,`slider:commit`,{value:w}),b?.(w),E=null;try{a.releasePointerCapture(t.pointerId)}catch{}}};T.push((0,c.on)(a,`pointerdown`,B)),T.push((0,c.on)(a,`pointermove`,V)),T.push((0,c.on)(a,`pointerup`,H)),T.push((0,c.on)(a,`pointercancel`,H));let U=e=>{if(v)return;let t=e.target,n=r.indexOf(t);if(n===-1)return;let i=0,a=null;switch(e.key){case`ArrowRight`:if(!M)return;i=h;break;case`ArrowLeft`:if(!M)return;i=-h;break;case`ArrowUp`:if(M)return;i=h;break;case`ArrowDown`:if(M)return;i=-h;break;case`PageUp`:i=g;break;case`PageDown`:i=-g;break;case`Home`:a=o;break;case`End`:a=s;break;default:return}e.shiftKey&&e.key.startsWith(`Arrow`)&&(i=i>0?g:i<0?-g:0),e.preventDefault(),D=n,O===null&&(O=d(w)?[w[0],w[1]]:w);let c=d(w)?w[n]??w[0]:w,l=a===null?c+i:a;z(n,l)},W=()=>{O!==null&&(P(O,w)||((0,c.emit)(e,`slider:commit`,{value:w}),b?.(w)),O=null)};for(let e of r)T.push((0,c.on)(e,`keydown`,U)),T.push((0,c.on)(e,`blur`,W));let G=t=>{if(v)return;let n=t,r=n.detail,i;if(typeof r==`number`||Array.isArray(r)?i=r:r&&typeof r==`object`&&`value`in r&&(i=r.value),i!==void 0){let t=F(i);t&&((0,c.emit)(e,`slider:commit`,{value:w}),b?.(w))}};T.push((0,c.on)(e,`slider:set`,G));let K={setValue:e=>{F(e)},get value(){return w},get min(){return o},get max(){return s},get disabled(){return v},destroy:()=>{T.forEach(e=>e()),T.length=0}};return K}const g=new WeakSet;function _(e=document){let t=[];for(let n of(0,c.getRoots)(e,`slider`)){if(g.has(n))continue;g.add(n),t.push(h(n))}return t}exports.create=_,exports.createSlider=h;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require(`@data-slot/core`);const t=[`horizontal`,`vertical`];function n(e){if(!e)return;let t=e.split(`,`).map(e=>parseFloat(e.trim()));if(!t.some(e=>isNaN(e))){if(t.length===2)return[t[0],t[1]];if(t.length===1)return t[0]}}function r(e){return Array.isArray(e)}function i(e,t,n,r){let i=Math.round((e-t)/r)*r+t,a=r.toString().split(`.`)[1]?.length??0,o=parseFloat(i.toFixed(a));return Math.min(n,Math.max(t,o))}function a(e,t,n){return n===t?0:(e-t)/(n-t)*100}function o(e,t,n){return e/100*(n-t)+t}function s(s,c={}){let l=(0,e.getPart)(s,`slider-track`),u=(0,e.getParts)(s,`slider-thumb`),d=(0,e.getPart)(s,`slider-range`);if(!l||u.length===0)throw Error(`Slider requires slider-track and at least one slider-thumb`);let f=l.parentElement;if(!f)throw Error(`Slider track must have a parent element (control)`);let p=c.min??(0,e.getDataNumber)(s,`min`)??0,m=c.max??(0,e.getDataNumber)(s,`max`)??100;p>m&&([p,m]=[m,p]);let h=c.step??(0,e.getDataNumber)(s,`step`)??1;h<=0&&(h=1);let g=c.largeStep??(0,e.getDataNumber)(s,`largeStep`)??h*10,_=c.orientation??(0,e.getDataEnum)(s,`orientation`,t)??`horizontal`,v=c.disabled??(0,e.getDataBool)(s,`disabled`)??!1,y=c.onValueChange,b=c.onValueCommit,x=n((0,e.getDataString)(s,`defaultValue`)),S=c.defaultValue??x??p,C=u.length>=2;C&&!r(S)?S=[p,S]:!C&&r(S)&&(S=S[1]);let w=r(S)?[i(S[0],p,m,h),i(S[1],p,m,h)]:i(S,p,m,h),T=[],E=null,D=0,O=null,k=null;s.setAttribute(`data-orientation`,_),(t=>{t?s.setAttribute(`data-disabled`,``):s.removeAttribute(`data-disabled`);for(let n of u)(0,e.setAria)(n,`disabled`,t),n.tabIndex=t?-1:0})(v);let A=(t,n)=>{t.setAttribute(`role`,`slider`),t.tabIndex=v?-1:0,(0,e.ensureId)(t,`slider-thumb`),(0,e.setAria)(t,`orientation`,_);let r=t.hasAttribute(`aria-label`)||t.hasAttribute(`aria-labelledby`),i=t.dataset.label;i?(0,e.setAria)(t,`label`,i):!r&&C&&(0,e.setAria)(t,`label`,n===0?`Minimum`:`Maximum`)};for(let e=0;e<u.length;e++)A(u[e],e);let j=_===`horizontal`,M=()=>{if(r(w)){let[t,n]=w,r=a(t,p,m),i=a(n,p,m);u[0]&&((0,e.setAria)(u[0],`valuenow`,String(t)),(0,e.setAria)(u[0],`valuemin`,String(p)),(0,e.setAria)(u[0],`valuemax`,String(n)),j?(u[0].style.left=`${r}%`,u[0].style.bottom=``):(u[0].style.bottom=`${r}%`,u[0].style.left=``)),u[1]&&((0,e.setAria)(u[1],`valuenow`,String(n)),(0,e.setAria)(u[1],`valuemin`,String(t)),(0,e.setAria)(u[1],`valuemax`,String(m)),j?(u[1].style.left=`${i}%`,u[1].style.bottom=``):(u[1].style.bottom=`${i}%`,u[1].style.left=``)),d&&(j?(d.style.left=`${r}%`,d.style.width=`${i-r}%`,d.style.bottom=``,d.style.height=``):(d.style.bottom=`${r}%`,d.style.height=`${i-r}%`,d.style.left=``,d.style.width=``))}else{let t=a(w,p,m);u[0]&&((0,e.setAria)(u[0],`valuenow`,String(w)),(0,e.setAria)(u[0],`valuemin`,String(p)),(0,e.setAria)(u[0],`valuemax`,String(m)),j?(u[0].style.left=`${t}%`,u[0].style.bottom=``):(u[0].style.bottom=`${t}%`,u[0].style.left=``)),d&&(j?(d.style.left=`0%`,d.style.width=`${t}%`,d.style.bottom=``,d.style.height=``):(d.style.bottom=`0%`,d.style.height=`${t}%`,d.style.left=``,d.style.width=``))}r(w)?s.setAttribute(`data-value`,`${w[0]},${w[1]}`):s.setAttribute(`data-value`,String(w))},N=(e,t)=>r(e)&&r(t)?e[0]===t[0]&&e[1]===t[1]:e===t,P=(t,n=!0)=>{let a;if(r(t)){let[e,n]=t;e=i(e,p,m,h),n=i(n,p,m,h),e>n&&([e,n]=[n,e]),a=[e,n]}else a=i(t,p,m,h);return N(a,w)?!1:(w=a,M(),n&&((0,e.emit)(s,`slider:change`,{value:w}),y?.(w)),!0)};M();let F=e=>{let t=l.getBoundingClientRect();if(j&&t.width===0||!j&&t.height===0)return null;let n;return n=j?(e.clientX-t.left)/t.width*100:(t.bottom-e.clientY)/t.height*100,n=Math.max(0,Math.min(100,n)),o(n,p,m)},I=e=>{if(!e||!(e instanceof HTMLElement))return null;let t=u.indexOf(e);if(t!==-1)return t;for(let t=0;t<u.length;t++)if(u[t].contains(e))return t;return null},L=e=>{if(!r(w))return 0;let[t,n]=w,i=Math.abs(e-t),a=Math.abs(e-n);return i===a?D:i<a?0:1},R=(e,t)=>{if(r(w)){let[n,r]=w;return P(e===0?[i(t,p,r,h),r]:[n,i(t,n,m,h)])}else return P(t)},z=e=>{if(v)return;e.preventDefault();let t=F(e);if(t===null)return;let n=I(e.target);n===null&&(n=L(t)),E=n,D=n,s.setAttribute(`data-dragging`,``),u[n]?.setAttribute(`data-dragging`,``),u[n]?.focus(),k=f.style.touchAction,f.style.touchAction=`none`,R(n,t),f.setPointerCapture(e.pointerId)},B=e=>{if(E===null||v)return;e.preventDefault();let t=F(e);t!==null&&R(E,t)},V=t=>{if(E!==null){s.removeAttribute(`data-dragging`);for(let e of u)e.removeAttribute(`data-dragging`);f.style.touchAction=k??``,k=null,(0,e.emit)(s,`slider:commit`,{value:w}),b?.(w),E=null;try{f.releasePointerCapture(t.pointerId)}catch{}}};T.push((0,e.on)(f,`pointerdown`,z)),T.push((0,e.on)(f,`pointermove`,B)),T.push((0,e.on)(f,`pointerup`,V)),T.push((0,e.on)(f,`pointercancel`,V));let H=e=>{if(v)return;let t=e.target,n=u.indexOf(t);if(n===-1)return;let i=0,a=null;switch(e.key){case`ArrowRight`:if(!j)return;i=h;break;case`ArrowLeft`:if(!j)return;i=-h;break;case`ArrowUp`:if(j)return;i=h;break;case`ArrowDown`:if(j)return;i=-h;break;case`PageUp`:i=g;break;case`PageDown`:i=-g;break;case`Home`:a=p;break;case`End`:a=m;break;default:return}e.shiftKey&&e.key.startsWith(`Arrow`)&&(i=i>0?g:i<0?-g:0),e.preventDefault(),D=n,O===null&&(O=r(w)?[w[0],w[1]]:w);let o=r(w)?w[n]??w[0]:w;R(n,a===null?o+i:a)},U=()=>{O!==null&&(N(O,w)||((0,e.emit)(s,`slider:commit`,{value:w}),b?.(w)),O=null)};for(let t of u)T.push((0,e.on)(t,`keydown`,H)),T.push((0,e.on)(t,`blur`,U));return T.push((0,e.on)(s,`slider:set`,t=>{if(v)return;let n=t.detail,r;typeof n==`number`||Array.isArray(n)?r=n:n&&typeof n==`object`&&`value`in n&&(r=n.value),r!==void 0&&P(r)&&((0,e.emit)(s,`slider:commit`,{value:w}),b?.(w))})),{setValue:e=>{P(e)},get value(){return w},get min(){return p},get max(){return m},get disabled(){return v},destroy:()=>{T.forEach(e=>e()),T.length=0}}}const c=new WeakSet;function l(t=document){let n=[];for(let r of(0,e.getRoots)(t,`slider`))c.has(r)||(c.add(r),n.push(s(r)));return n}exports.create=l,exports.createSlider=s;
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- import{emit as e,ensureId as t,getDataBool as n,getDataEnum as r,getDataNumber as i,getDataString as a,getPart as o,getParts as s,getRoots as c,on as l,setAria as u}from"@data-slot/core";const d=[`horizontal`,`vertical`];function f(e){if(!e)return;let t=e.split(`,`).map(e=>parseFloat(e.trim()));if(!t.some(e=>isNaN(e))){if(t.length===2)return[t[0],t[1]];if(t.length===1)return t[0]}}function p(e){return Array.isArray(e)}function m(e,t,n,r){let i=Math.round((e-t)/r)*r+t,a=r.toString().split(`.`)[1]?.length??0,o=parseFloat(i.toFixed(a));return Math.min(n,Math.max(t,o))}function h(e,t,n){return n===t?0:(e-t)/(n-t)*100}function g(e,t,n){return e/100*(n-t)+t}function _(c,_={}){let v=o(c,`slider-track`),y=s(c,`slider-thumb`),b=o(c,`slider-range`);if(!v||y.length===0)throw Error(`Slider requires slider-track and at least one slider-thumb`);let x=v.parentElement;if(!x)throw Error(`Slider track must have a parent element (control)`);let S=_.min??i(c,`min`)??0,C=_.max??i(c,`max`)??100;S>C&&([S,C]=[C,S]);let w=_.step??i(c,`step`)??1;w<=0&&(w=1);let T=_.largeStep??i(c,`largeStep`)??w*10,E=_.orientation??r(c,`orientation`,d)??`horizontal`,D=_.disabled??n(c,`disabled`)??!1,O=_.onValueChange,k=_.onValueCommit,A=f(a(c,`defaultValue`)),j=_.defaultValue??A??S,M=y.length>=2;M&&!p(j)?j=[S,j]:!M&&p(j)&&(j=j[1]);let N=p(j)?[m(j[0],S,C,w),m(j[1],S,C,w)]:m(j,S,C,w),P=[],F=null,I=0,L=null,R=null;c.setAttribute(`data-orientation`,E);let z=e=>{e?c.setAttribute(`data-disabled`,``):c.removeAttribute(`data-disabled`);for(let t of y)u(t,`disabled`,e),t.tabIndex=e?-1:0};z(D);let B=(e,n)=>{e.setAttribute(`role`,`slider`),e.tabIndex=D?-1:0,t(e,`slider-thumb`),u(e,`orientation`,E);let r=e.hasAttribute(`aria-label`)||e.hasAttribute(`aria-labelledby`),i=e.dataset.label;i?u(e,`label`,i):!r&&M&&u(e,`label`,n===0?`Minimum`:`Maximum`)};for(let e=0;e<y.length;e++)B(y[e],e);let V=E===`horizontal`,H=()=>{if(p(N)){let[e,t]=N,n=h(e,S,C),r=h(t,S,C);y[0]&&(u(y[0],`valuenow`,String(e)),u(y[0],`valuemin`,String(S)),u(y[0],`valuemax`,String(t)),V?(y[0].style.left=`${n}%`,y[0].style.bottom=``):(y[0].style.bottom=`${n}%`,y[0].style.left=``)),y[1]&&(u(y[1],`valuenow`,String(t)),u(y[1],`valuemin`,String(e)),u(y[1],`valuemax`,String(C)),V?(y[1].style.left=`${r}%`,y[1].style.bottom=``):(y[1].style.bottom=`${r}%`,y[1].style.left=``)),b&&(V?(b.style.left=`${n}%`,b.style.width=`${r-n}%`,b.style.bottom=``,b.style.height=``):(b.style.bottom=`${n}%`,b.style.height=`${r-n}%`,b.style.left=``,b.style.width=``))}else{let e=h(N,S,C);y[0]&&(u(y[0],`valuenow`,String(N)),u(y[0],`valuemin`,String(S)),u(y[0],`valuemax`,String(C)),V?(y[0].style.left=`${e}%`,y[0].style.bottom=``):(y[0].style.bottom=`${e}%`,y[0].style.left=``)),b&&(V?(b.style.left=`0%`,b.style.width=`${e}%`,b.style.bottom=``,b.style.height=``):(b.style.bottom=`0%`,b.style.height=`${e}%`,b.style.left=``,b.style.width=``))}p(N)?c.setAttribute(`data-value`,`${N[0]},${N[1]}`):c.setAttribute(`data-value`,String(N))},U=(e,t)=>p(e)&&p(t)?e[0]===t[0]&&e[1]===t[1]:e===t,W=(t,n=!0)=>{let r;if(p(t)){let[e,n]=t;e=m(e,S,C,w),n=m(n,S,C,w),e>n&&([e,n]=[n,e]),r=[e,n]}else r=m(t,S,C,w);let i=!U(r,N);return i?(N=r,H(),n&&(e(c,`slider:change`,{value:N}),O?.(N)),!0):!1};H();let G=e=>{let t=v.getBoundingClientRect();if(V&&t.width===0||!V&&t.height===0)return null;let n;return n=V?(e.clientX-t.left)/t.width*100:(t.bottom-e.clientY)/t.height*100,n=Math.max(0,Math.min(100,n)),g(n,S,C)},K=e=>{if(!e||!(e instanceof HTMLElement))return null;let t=y.indexOf(e);if(t!==-1)return t;for(let t=0;t<y.length;t++)if(y[t].contains(e))return t;return null},q=e=>{if(!p(N))return 0;let[t,n]=N,r=Math.abs(e-t),i=Math.abs(e-n);return r===i?I:r<i?0:1},J=(e,t)=>{if(p(N)){let[n,r]=N;if(e===0){let e=m(t,S,r,w);return W([e,r])}else{let e=m(t,n,C,w);return W([n,e])}}else return W(t)},Y=e=>{if(D)return;e.preventDefault();let t=G(e);if(t===null)return;let n=K(e.target);n===null&&(n=q(t)),F=n,I=n,c.setAttribute(`data-dragging`,``),y[n]?.setAttribute(`data-dragging`,``),y[n]?.focus(),R=x.style.touchAction,x.style.touchAction=`none`,J(n,t),x.setPointerCapture(e.pointerId)},X=e=>{if(F===null||D)return;e.preventDefault();let t=G(e);t!==null&&J(F,t)},Z=t=>{if(F!==null){c.removeAttribute(`data-dragging`);for(let e of y)e.removeAttribute(`data-dragging`);x.style.touchAction=R??``,R=null,e(c,`slider:commit`,{value:N}),k?.(N),F=null;try{x.releasePointerCapture(t.pointerId)}catch{}}};P.push(l(x,`pointerdown`,Y)),P.push(l(x,`pointermove`,X)),P.push(l(x,`pointerup`,Z)),P.push(l(x,`pointercancel`,Z));let Q=e=>{if(D)return;let t=e.target,n=y.indexOf(t);if(n===-1)return;let r=0,i=null;switch(e.key){case`ArrowRight`:if(!V)return;r=w;break;case`ArrowLeft`:if(!V)return;r=-w;break;case`ArrowUp`:if(V)return;r=w;break;case`ArrowDown`:if(V)return;r=-w;break;case`PageUp`:r=T;break;case`PageDown`:r=-T;break;case`Home`:i=S;break;case`End`:i=C;break;default:return}e.shiftKey&&e.key.startsWith(`Arrow`)&&(r=r>0?T:r<0?-T:0),e.preventDefault(),I=n,L===null&&(L=p(N)?[N[0],N[1]]:N);let a=p(N)?N[n]??N[0]:N,o=i===null?a+r:i;J(n,o)},$=()=>{L!==null&&(U(L,N)||(e(c,`slider:commit`,{value:N}),k?.(N)),L=null)};for(let e of y)P.push(l(e,`keydown`,Q)),P.push(l(e,`blur`,$));let ee=t=>{if(D)return;let n=t,r=n.detail,i;if(typeof r==`number`||Array.isArray(r)?i=r:r&&typeof r==`object`&&`value`in r&&(i=r.value),i!==void 0){let t=W(i);t&&(e(c,`slider:commit`,{value:N}),k?.(N))}};P.push(l(c,`slider:set`,ee));let te={setValue:e=>{W(e)},get value(){return N},get min(){return S},get max(){return C},get disabled(){return D},destroy:()=>{P.forEach(e=>e()),P.length=0}};return te}const v=new WeakSet;function y(e=document){let t=[];for(let n of c(e,`slider`)){if(v.has(n))continue;v.add(n),t.push(_(n))}return t}export{y as create,_ as createSlider};
1
+ import{emit as e,ensureId as t,getDataBool as n,getDataEnum as r,getDataNumber as i,getDataString as a,getPart as o,getParts as s,getRoots as c,on as l,setAria as u}from"@data-slot/core";const d=[`horizontal`,`vertical`];function f(e){if(!e)return;let t=e.split(`,`).map(e=>parseFloat(e.trim()));if(!t.some(e=>isNaN(e))){if(t.length===2)return[t[0],t[1]];if(t.length===1)return t[0]}}function p(e){return Array.isArray(e)}function m(e,t,n,r){let i=Math.round((e-t)/r)*r+t,a=r.toString().split(`.`)[1]?.length??0,o=parseFloat(i.toFixed(a));return Math.min(n,Math.max(t,o))}function h(e,t,n){return n===t?0:(e-t)/(n-t)*100}function g(e,t,n){return e/100*(n-t)+t}function _(c,_={}){let v=o(c,`slider-track`),y=s(c,`slider-thumb`),b=o(c,`slider-range`);if(!v||y.length===0)throw Error(`Slider requires slider-track and at least one slider-thumb`);let x=v.parentElement;if(!x)throw Error(`Slider track must have a parent element (control)`);let S=_.min??i(c,`min`)??0,C=_.max??i(c,`max`)??100;S>C&&([S,C]=[C,S]);let w=_.step??i(c,`step`)??1;w<=0&&(w=1);let T=_.largeStep??i(c,`largeStep`)??w*10,E=_.orientation??r(c,`orientation`,d)??`horizontal`,D=_.disabled??n(c,`disabled`)??!1,O=_.onValueChange,k=_.onValueCommit,A=f(a(c,`defaultValue`)),j=_.defaultValue??A??S,M=y.length>=2;M&&!p(j)?j=[S,j]:!M&&p(j)&&(j=j[1]);let N=p(j)?[m(j[0],S,C,w),m(j[1],S,C,w)]:m(j,S,C,w),P=[],F=null,I=0,L=null,R=null;c.setAttribute(`data-orientation`,E),(e=>{e?c.setAttribute(`data-disabled`,``):c.removeAttribute(`data-disabled`);for(let t of y)u(t,`disabled`,e),t.tabIndex=e?-1:0})(D);let z=(e,n)=>{e.setAttribute(`role`,`slider`),e.tabIndex=D?-1:0,t(e,`slider-thumb`),u(e,`orientation`,E);let r=e.hasAttribute(`aria-label`)||e.hasAttribute(`aria-labelledby`),i=e.dataset.label;i?u(e,`label`,i):!r&&M&&u(e,`label`,n===0?`Minimum`:`Maximum`)};for(let e=0;e<y.length;e++)z(y[e],e);let B=E===`horizontal`,V=()=>{if(p(N)){let[e,t]=N,n=h(e,S,C),r=h(t,S,C);y[0]&&(u(y[0],`valuenow`,String(e)),u(y[0],`valuemin`,String(S)),u(y[0],`valuemax`,String(t)),B?(y[0].style.left=`${n}%`,y[0].style.bottom=``):(y[0].style.bottom=`${n}%`,y[0].style.left=``)),y[1]&&(u(y[1],`valuenow`,String(t)),u(y[1],`valuemin`,String(e)),u(y[1],`valuemax`,String(C)),B?(y[1].style.left=`${r}%`,y[1].style.bottom=``):(y[1].style.bottom=`${r}%`,y[1].style.left=``)),b&&(B?(b.style.left=`${n}%`,b.style.width=`${r-n}%`,b.style.bottom=``,b.style.height=``):(b.style.bottom=`${n}%`,b.style.height=`${r-n}%`,b.style.left=``,b.style.width=``))}else{let e=h(N,S,C);y[0]&&(u(y[0],`valuenow`,String(N)),u(y[0],`valuemin`,String(S)),u(y[0],`valuemax`,String(C)),B?(y[0].style.left=`${e}%`,y[0].style.bottom=``):(y[0].style.bottom=`${e}%`,y[0].style.left=``)),b&&(B?(b.style.left=`0%`,b.style.width=`${e}%`,b.style.bottom=``,b.style.height=``):(b.style.bottom=`0%`,b.style.height=`${e}%`,b.style.left=``,b.style.width=``))}p(N)?c.setAttribute(`data-value`,`${N[0]},${N[1]}`):c.setAttribute(`data-value`,String(N))},H=(e,t)=>p(e)&&p(t)?e[0]===t[0]&&e[1]===t[1]:e===t,U=(t,n=!0)=>{let r;if(p(t)){let[e,n]=t;e=m(e,S,C,w),n=m(n,S,C,w),e>n&&([e,n]=[n,e]),r=[e,n]}else r=m(t,S,C,w);return H(r,N)?!1:(N=r,V(),n&&(e(c,`slider:change`,{value:N}),O?.(N)),!0)};V();let W=e=>{let t=v.getBoundingClientRect();if(B&&t.width===0||!B&&t.height===0)return null;let n;return n=B?(e.clientX-t.left)/t.width*100:(t.bottom-e.clientY)/t.height*100,n=Math.max(0,Math.min(100,n)),g(n,S,C)},G=e=>{if(!e||!(e instanceof HTMLElement))return null;let t=y.indexOf(e);if(t!==-1)return t;for(let t=0;t<y.length;t++)if(y[t].contains(e))return t;return null},K=e=>{if(!p(N))return 0;let[t,n]=N,r=Math.abs(e-t),i=Math.abs(e-n);return r===i?I:r<i?0:1},q=(e,t)=>{if(p(N)){let[n,r]=N;return U(e===0?[m(t,S,r,w),r]:[n,m(t,n,C,w)])}else return U(t)},J=e=>{if(D)return;e.preventDefault();let t=W(e);if(t===null)return;let n=G(e.target);n===null&&(n=K(t)),F=n,I=n,c.setAttribute(`data-dragging`,``),y[n]?.setAttribute(`data-dragging`,``),y[n]?.focus(),R=x.style.touchAction,x.style.touchAction=`none`,q(n,t),x.setPointerCapture(e.pointerId)},Y=e=>{if(F===null||D)return;e.preventDefault();let t=W(e);t!==null&&q(F,t)},X=t=>{if(F!==null){c.removeAttribute(`data-dragging`);for(let e of y)e.removeAttribute(`data-dragging`);x.style.touchAction=R??``,R=null,e(c,`slider:commit`,{value:N}),k?.(N),F=null;try{x.releasePointerCapture(t.pointerId)}catch{}}};P.push(l(x,`pointerdown`,J)),P.push(l(x,`pointermove`,Y)),P.push(l(x,`pointerup`,X)),P.push(l(x,`pointercancel`,X));let Z=e=>{if(D)return;let t=e.target,n=y.indexOf(t);if(n===-1)return;let r=0,i=null;switch(e.key){case`ArrowRight`:if(!B)return;r=w;break;case`ArrowLeft`:if(!B)return;r=-w;break;case`ArrowUp`:if(B)return;r=w;break;case`ArrowDown`:if(B)return;r=-w;break;case`PageUp`:r=T;break;case`PageDown`:r=-T;break;case`Home`:i=S;break;case`End`:i=C;break;default:return}e.shiftKey&&e.key.startsWith(`Arrow`)&&(r=r>0?T:r<0?-T:0),e.preventDefault(),I=n,L===null&&(L=p(N)?[N[0],N[1]]:N);let a=p(N)?N[n]??N[0]:N;q(n,i===null?a+r:i)},Q=()=>{L!==null&&(H(L,N)||(e(c,`slider:commit`,{value:N}),k?.(N)),L=null)};for(let e of y)P.push(l(e,`keydown`,Z)),P.push(l(e,`blur`,Q));return P.push(l(c,`slider:set`,t=>{if(D)return;let n=t.detail,r;typeof n==`number`||Array.isArray(n)?r=n:n&&typeof n==`object`&&`value`in n&&(r=n.value),r!==void 0&&U(r)&&(e(c,`slider:commit`,{value:N}),k?.(N))})),{setValue:e=>{U(e)},get value(){return N},get min(){return S},get max(){return C},get disabled(){return D},destroy:()=>{P.forEach(e=>e()),P.length=0}}}const v=new WeakSet;function y(e=document){let t=[];for(let n of c(e,`slider`))v.has(n)||(v.add(n),t.push(_(n)));return t}export{y as create,_ as createSlider};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@data-slot/slider",
3
- "version": "0.2.31",
3
+ "version": "0.2.33",
4
4
  "type": "module",
5
5
  "sideEffects": false,
6
6
  "main": "./dist/index.cjs",
File without changes
File without changes