@data-slot/toggle-group 0.2.31 → 0.2.32

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,t={}){let n=(0,c.getParts)(e,`toggle-group-item`);if(n.length===0)throw Error(`ToggleGroup requires at least one toggle-group-item`);let r=t.multiple??(0,c.getDataBool)(e,`multiple`)??!1,i=t.orientation??(0,c.getDataEnum)(e,`orientation`,l)??`horizontal`,a=t.loop??(0,c.getDataBool)(e,`loop`)??!0,o=t.disabled??(0,c.getDataBool)(e,`disabled`)??!1,s=t.onValueChange,u=()=>{if(t.defaultValue!==void 0)return Array.isArray(t.defaultValue)?t.defaultValue:t.defaultValue.split(/\s+/).filter(Boolean);let n=(0,c.getDataString)(e,`defaultValue`);return n?n.split(/\s+/).filter(Boolean):[]},f=u(),p=[],m=new Map,h=new Map,g=[];for(let e of n){let t=(e.dataset.value||``).trim();if(!t){g.push(e);continue}let n=e.hasAttribute(`disabled`)||e.hasAttribute(`data-disabled`)||e.getAttribute(`aria-disabled`)===`true`,r={el:e,value:t,disabled:n};p.push(r),m.set(t,r),h.set(e,r)}for(let e of g)e.tabIndex=-1,e.setAttribute(`aria-disabled`,`true`);if(p.length===0)throw Error(`ToggleGroup requires at least one toggle-group-item with a data-value attribute`);let _=new Set;for(let e of f)if(m.has(e)&&(_.add(e),!r))break;let v=[],y=()=>e.hasAttribute(`disabled`)||e.hasAttribute(`data-disabled`)||e.getAttribute(`aria-disabled`)===`true`,b=e=>e.el.hasAttribute(`disabled`)||e.el.hasAttribute(`data-disabled`)||e.el.getAttribute(`aria-disabled`)===`true`,x=()=>p.filter(e=>!b(e));e.setAttribute(`role`,`group`),o&&e.setAttribute(`aria-disabled`,`true`),i===`vertical`&&(0,c.setAria)(e,`orientation`,`vertical`),r&&(e.dataset.multiple=``);for(let e of p){let{el:t,disabled:n}=e;(0,c.ensureId)(t,`toggle-group-item`),t.tagName===`BUTTON`&&!t.hasAttribute(`type`)&&(t.type=`button`),n&&(t.setAttribute(`aria-disabled`,`true`),t.tagName===`BUTTON`&&(t.disabled=!0))}let S=(t,n=!1)=>{let r=!n&&(t.size!==_.size||[...t].some(e=>!_.has(e)));_=t;for(let e of p){let t=_.has(e.value);(0,c.setAria)(e.el,`pressed`,t),e.el.dataset.state=t?`on`:`off`}C();let i=[..._];e.setAttribute(`data-value`,i.join(` `)),r&&((0,c.emit)(e,`toggle-group:change`,{value:i}),s?.(i))},C=()=>{let e=x(),t;for(let n of e)if(_.has(n.value)){t=n;break}!t&&e.length>0&&(t=e[0]);for(let e of p)e.el.tabIndex=e===t?0:-1};S(_,!0);let w=e=>{let t=new Set(_);r?t.has(e)?t.delete(e):t.add(e):t.has(e)?t.clear():(t.clear(),t.add(e)),S(t)},T=e=>{let t=Array.isArray(e)?e:e.split(/\s+/).filter(Boolean),n=new Set;for(let e of t)if(m.has(e)&&(n.add(e),!r))break;S(n)};v.push((0,c.on)(e,`click`,e=>{if(y())return;let t=e.target.closest?.(`[data-slot="toggle-group-item"]`);if(!t)return;let n=h.get(t);!n||b(n)||w(n.value)}));let E=i===`horizontal`,D=E?`ArrowLeft`:`ArrowUp`,O=E?`ArrowRight`:`ArrowDown`;return v.push((0,c.on)(e,`keydown`,e=>{if(y())return;let t=e.target.closest?.(`[data-slot="toggle-group-item"]`);if(!t)return;let n=h.get(t);if(!n)return;if(e.key===`Enter`||e.key===` `){b(n)&&e.preventDefault();return}let r=x();if(r.length===0)return;let i=r.findIndex(e=>e.el===t);i===-1&&(i=0);let o=i;switch(e.key){case D:o=i-1,o<0&&(o=a?r.length-1:0);break;case O:o=i+1,o>=r.length&&(o=a?0:r.length-1);break;case`Home`:o=0;break;case`End`:o=r.length-1;break;default:return}e.preventDefault();let s=r[o];if(s){for(let e of p)e.el.tabIndex=e===s?0:-1;s.el.focus()}})),v.push((0,c.on)(e,`toggle-group:set`,e=>{if(y())return;let t=e,n=t.detail,r;typeof n==`string`||Array.isArray(n)?r=n:n&&typeof n==`object`&&`value`in n&&(r=n.value),r!==void 0&&T(r)})),{setValue:e=>T(e),toggle:e=>w(e),get value(){return[..._]},destroy:()=>{v.forEach(e=>e()),v.length=0,d.delete(e)}}}const d=new WeakSet;function f(e=document){let t=[];for(let n of(0,c.getRoots)(e,`toggle-group`)){if(d.has(n))continue;d.add(n),t.push(u(n))}return t}exports.create=f,exports.createToggleGroup=u;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require(`@data-slot/core`);const t=[`horizontal`,`vertical`];function n(n,i={}){let a=(0,e.getParts)(n,`toggle-group-item`);if(a.length===0)throw Error(`ToggleGroup requires at least one toggle-group-item`);let o=i.multiple??(0,e.getDataBool)(n,`multiple`)??!1,s=i.orientation??(0,e.getDataEnum)(n,`orientation`,t)??`horizontal`,c=i.loop??(0,e.getDataBool)(n,`loop`)??!0,l=i.disabled??(0,e.getDataBool)(n,`disabled`)??!1,u=i.onValueChange,d=(()=>{if(i.defaultValue!==void 0)return Array.isArray(i.defaultValue)?i.defaultValue:i.defaultValue.split(/\s+/).filter(Boolean);let t=(0,e.getDataString)(n,`defaultValue`);return t?t.split(/\s+/).filter(Boolean):[]})(),f=[],p=new Map,m=new Map,h=[];for(let e of a){let t=(e.dataset.value||``).trim();if(!t){h.push(e);continue}let n={el:e,value:t,disabled:e.hasAttribute(`disabled`)||e.hasAttribute(`data-disabled`)||e.getAttribute(`aria-disabled`)===`true`};f.push(n),p.set(t,n),m.set(e,n)}for(let e of h)e.tabIndex=-1,e.setAttribute(`aria-disabled`,`true`);if(f.length===0)throw Error(`ToggleGroup requires at least one toggle-group-item with a data-value attribute`);let g=new Set;for(let e of d)if(p.has(e)&&(g.add(e),!o))break;let _=[],v=()=>n.hasAttribute(`disabled`)||n.hasAttribute(`data-disabled`)||n.getAttribute(`aria-disabled`)===`true`,y=e=>e.el.hasAttribute(`disabled`)||e.el.hasAttribute(`data-disabled`)||e.el.getAttribute(`aria-disabled`)===`true`,b=()=>f.filter(e=>!y(e));n.setAttribute(`role`,`group`),l&&n.setAttribute(`aria-disabled`,`true`),s===`vertical`&&(0,e.setAria)(n,`orientation`,`vertical`),o&&(n.dataset.multiple=``);for(let t of f){let{el:n,disabled:r}=t;(0,e.ensureId)(n,`toggle-group-item`),n.tagName===`BUTTON`&&!n.hasAttribute(`type`)&&(n.type=`button`),r&&(n.setAttribute(`aria-disabled`,`true`),n.tagName===`BUTTON`&&(n.disabled=!0))}let x=(t,r=!1)=>{let i=!r&&(t.size!==g.size||[...t].some(e=>!g.has(e)));g=t;for(let t of f){let n=g.has(t.value);(0,e.setAria)(t.el,`pressed`,n),t.el.dataset.state=n?`on`:`off`}S();let a=[...g];n.setAttribute(`data-value`,a.join(` `)),i&&((0,e.emit)(n,`toggle-group:change`,{value:a}),u?.(a))},S=()=>{let e=b(),t;for(let n of e)if(g.has(n.value)){t=n;break}!t&&e.length>0&&(t=e[0]);for(let e of f)e.el.tabIndex=e===t?0:-1};x(g,!0);let C=e=>{let t=new Set(g);o?t.has(e)?t.delete(e):t.add(e):t.has(e)?t.clear():(t.clear(),t.add(e)),x(t)},w=e=>{let t=Array.isArray(e)?e:e.split(/\s+/).filter(Boolean),n=new Set;for(let e of t)if(p.has(e)&&(n.add(e),!o))break;x(n)};_.push((0,e.on)(n,`click`,e=>{if(v())return;let t=e.target.closest?.(`[data-slot="toggle-group-item"]`);if(!t)return;let n=m.get(t);!n||y(n)||C(n.value)}));let T=s===`horizontal`,E=T?`ArrowLeft`:`ArrowUp`,D=T?`ArrowRight`:`ArrowDown`;return _.push((0,e.on)(n,`keydown`,e=>{if(v())return;let t=e.target.closest?.(`[data-slot="toggle-group-item"]`);if(!t)return;let n=m.get(t);if(!n)return;if(e.key===`Enter`||e.key===` `){y(n)&&e.preventDefault();return}let r=b();if(r.length===0)return;let i=r.findIndex(e=>e.el===t);i===-1&&(i=0);let a=i;switch(e.key){case E:a=i-1,a<0&&(a=c?r.length-1:0);break;case D:a=i+1,a>=r.length&&(a=c?0:r.length-1);break;case`Home`:a=0;break;case`End`:a=r.length-1;break;default:return}e.preventDefault();let o=r[a];if(o){for(let e of f)e.el.tabIndex=e===o?0:-1;o.el.focus()}})),_.push((0,e.on)(n,`toggle-group:set`,e=>{if(v())return;let t=e.detail,n;typeof t==`string`||Array.isArray(t)?n=t:t&&typeof t==`object`&&`value`in t&&(n=t.value),n!==void 0&&w(n)})),{setValue:e=>w(e),toggle:e=>C(e),get value(){return[...g]},destroy:()=>{_.forEach(e=>e()),_.length=0,r.delete(n)}}}const r=new WeakSet;function i(t=document){let i=[];for(let a of(0,e.getRoots)(t,`toggle-group`))r.has(a)||(r.add(a),i.push(n(a)));return i}exports.create=i,exports.createToggleGroup=n;
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- import{emit as e,ensureId as t,getDataBool as n,getDataEnum as r,getDataString as i,getParts as a,getRoots as o,on as s,setAria as c}from"@data-slot/core";const l=[`horizontal`,`vertical`];function u(o,u={}){let f=a(o,`toggle-group-item`);if(f.length===0)throw Error(`ToggleGroup requires at least one toggle-group-item`);let p=u.multiple??n(o,`multiple`)??!1,m=u.orientation??r(o,`orientation`,l)??`horizontal`,h=u.loop??n(o,`loop`)??!0,g=u.disabled??n(o,`disabled`)??!1,_=u.onValueChange,v=()=>{if(u.defaultValue!==void 0)return Array.isArray(u.defaultValue)?u.defaultValue:u.defaultValue.split(/\s+/).filter(Boolean);let e=i(o,`defaultValue`);return e?e.split(/\s+/).filter(Boolean):[]},y=v(),b=[],x=new Map,S=new Map,C=[];for(let e of f){let t=(e.dataset.value||``).trim();if(!t){C.push(e);continue}let n=e.hasAttribute(`disabled`)||e.hasAttribute(`data-disabled`)||e.getAttribute(`aria-disabled`)===`true`,r={el:e,value:t,disabled:n};b.push(r),x.set(t,r),S.set(e,r)}for(let e of C)e.tabIndex=-1,e.setAttribute(`aria-disabled`,`true`);if(b.length===0)throw Error(`ToggleGroup requires at least one toggle-group-item with a data-value attribute`);let w=new Set;for(let e of y)if(x.has(e)&&(w.add(e),!p))break;let T=[],E=()=>o.hasAttribute(`disabled`)||o.hasAttribute(`data-disabled`)||o.getAttribute(`aria-disabled`)===`true`,D=e=>e.el.hasAttribute(`disabled`)||e.el.hasAttribute(`data-disabled`)||e.el.getAttribute(`aria-disabled`)===`true`,O=()=>b.filter(e=>!D(e));o.setAttribute(`role`,`group`),g&&o.setAttribute(`aria-disabled`,`true`),m===`vertical`&&c(o,`orientation`,`vertical`),p&&(o.dataset.multiple=``);for(let e of b){let{el:n,disabled:r}=e;t(n,`toggle-group-item`),n.tagName===`BUTTON`&&!n.hasAttribute(`type`)&&(n.type=`button`),r&&(n.setAttribute(`aria-disabled`,`true`),n.tagName===`BUTTON`&&(n.disabled=!0))}let k=(t,n=!1)=>{let r=!n&&(t.size!==w.size||[...t].some(e=>!w.has(e)));w=t;for(let e of b){let t=w.has(e.value);c(e.el,`pressed`,t),e.el.dataset.state=t?`on`:`off`}A();let i=[...w];o.setAttribute(`data-value`,i.join(` `)),r&&(e(o,`toggle-group:change`,{value:i}),_?.(i))},A=()=>{let e=O(),t;for(let n of e)if(w.has(n.value)){t=n;break}!t&&e.length>0&&(t=e[0]);for(let e of b)e.el.tabIndex=e===t?0:-1};k(w,!0);let j=e=>{let t=new Set(w);p?t.has(e)?t.delete(e):t.add(e):t.has(e)?t.clear():(t.clear(),t.add(e)),k(t)},M=e=>{let t=Array.isArray(e)?e:e.split(/\s+/).filter(Boolean),n=new Set;for(let e of t)if(x.has(e)&&(n.add(e),!p))break;k(n)};T.push(s(o,`click`,e=>{if(E())return;let t=e.target.closest?.(`[data-slot="toggle-group-item"]`);if(!t)return;let n=S.get(t);!n||D(n)||j(n.value)}));let N=m===`horizontal`,P=N?`ArrowLeft`:`ArrowUp`,F=N?`ArrowRight`:`ArrowDown`;return T.push(s(o,`keydown`,e=>{if(E())return;let t=e.target.closest?.(`[data-slot="toggle-group-item"]`);if(!t)return;let n=S.get(t);if(!n)return;if(e.key===`Enter`||e.key===` `){D(n)&&e.preventDefault();return}let r=O();if(r.length===0)return;let i=r.findIndex(e=>e.el===t);i===-1&&(i=0);let a=i;switch(e.key){case P:a=i-1,a<0&&(a=h?r.length-1:0);break;case F:a=i+1,a>=r.length&&(a=h?0:r.length-1);break;case`Home`:a=0;break;case`End`:a=r.length-1;break;default:return}e.preventDefault();let o=r[a];if(o){for(let e of b)e.el.tabIndex=e===o?0:-1;o.el.focus()}})),T.push(s(o,`toggle-group:set`,e=>{if(E())return;let t=e,n=t.detail,r;typeof n==`string`||Array.isArray(n)?r=n:n&&typeof n==`object`&&`value`in n&&(r=n.value),r!==void 0&&M(r)})),{setValue:e=>M(e),toggle:e=>j(e),get value(){return[...w]},destroy:()=>{T.forEach(e=>e()),T.length=0,d.delete(o)}}}const d=new WeakSet;function f(e=document){let t=[];for(let n of o(e,`toggle-group`)){if(d.has(n))continue;d.add(n),t.push(u(n))}return t}export{f as create,u as createToggleGroup};
1
+ import{emit as e,ensureId as t,getDataBool as n,getDataEnum as r,getDataString as i,getParts as a,getRoots as o,on as s,setAria as c}from"@data-slot/core";const l=[`horizontal`,`vertical`];function u(o,u={}){let f=a(o,`toggle-group-item`);if(f.length===0)throw Error(`ToggleGroup requires at least one toggle-group-item`);let p=u.multiple??n(o,`multiple`)??!1,m=u.orientation??r(o,`orientation`,l)??`horizontal`,h=u.loop??n(o,`loop`)??!0,g=u.disabled??n(o,`disabled`)??!1,_=u.onValueChange,v=(()=>{if(u.defaultValue!==void 0)return Array.isArray(u.defaultValue)?u.defaultValue:u.defaultValue.split(/\s+/).filter(Boolean);let e=i(o,`defaultValue`);return e?e.split(/\s+/).filter(Boolean):[]})(),y=[],b=new Map,x=new Map,S=[];for(let e of f){let t=(e.dataset.value||``).trim();if(!t){S.push(e);continue}let n={el:e,value:t,disabled:e.hasAttribute(`disabled`)||e.hasAttribute(`data-disabled`)||e.getAttribute(`aria-disabled`)===`true`};y.push(n),b.set(t,n),x.set(e,n)}for(let e of S)e.tabIndex=-1,e.setAttribute(`aria-disabled`,`true`);if(y.length===0)throw Error(`ToggleGroup requires at least one toggle-group-item with a data-value attribute`);let C=new Set;for(let e of v)if(b.has(e)&&(C.add(e),!p))break;let w=[],T=()=>o.hasAttribute(`disabled`)||o.hasAttribute(`data-disabled`)||o.getAttribute(`aria-disabled`)===`true`,E=e=>e.el.hasAttribute(`disabled`)||e.el.hasAttribute(`data-disabled`)||e.el.getAttribute(`aria-disabled`)===`true`,D=()=>y.filter(e=>!E(e));o.setAttribute(`role`,`group`),g&&o.setAttribute(`aria-disabled`,`true`),m===`vertical`&&c(o,`orientation`,`vertical`),p&&(o.dataset.multiple=``);for(let e of y){let{el:n,disabled:r}=e;t(n,`toggle-group-item`),n.tagName===`BUTTON`&&!n.hasAttribute(`type`)&&(n.type=`button`),r&&(n.setAttribute(`aria-disabled`,`true`),n.tagName===`BUTTON`&&(n.disabled=!0))}let O=(t,n=!1)=>{let r=!n&&(t.size!==C.size||[...t].some(e=>!C.has(e)));C=t;for(let e of y){let t=C.has(e.value);c(e.el,`pressed`,t),e.el.dataset.state=t?`on`:`off`}k();let i=[...C];o.setAttribute(`data-value`,i.join(` `)),r&&(e(o,`toggle-group:change`,{value:i}),_?.(i))},k=()=>{let e=D(),t;for(let n of e)if(C.has(n.value)){t=n;break}!t&&e.length>0&&(t=e[0]);for(let e of y)e.el.tabIndex=e===t?0:-1};O(C,!0);let A=e=>{let t=new Set(C);p?t.has(e)?t.delete(e):t.add(e):t.has(e)?t.clear():(t.clear(),t.add(e)),O(t)},j=e=>{let t=Array.isArray(e)?e:e.split(/\s+/).filter(Boolean),n=new Set;for(let e of t)if(b.has(e)&&(n.add(e),!p))break;O(n)};w.push(s(o,`click`,e=>{if(T())return;let t=e.target.closest?.(`[data-slot="toggle-group-item"]`);if(!t)return;let n=x.get(t);!n||E(n)||A(n.value)}));let M=m===`horizontal`,N=M?`ArrowLeft`:`ArrowUp`,P=M?`ArrowRight`:`ArrowDown`;return w.push(s(o,`keydown`,e=>{if(T())return;let t=e.target.closest?.(`[data-slot="toggle-group-item"]`);if(!t)return;let n=x.get(t);if(!n)return;if(e.key===`Enter`||e.key===` `){E(n)&&e.preventDefault();return}let r=D();if(r.length===0)return;let i=r.findIndex(e=>e.el===t);i===-1&&(i=0);let a=i;switch(e.key){case N:a=i-1,a<0&&(a=h?r.length-1:0);break;case P:a=i+1,a>=r.length&&(a=h?0:r.length-1);break;case`Home`:a=0;break;case`End`:a=r.length-1;break;default:return}e.preventDefault();let o=r[a];if(o){for(let e of y)e.el.tabIndex=e===o?0:-1;o.el.focus()}})),w.push(s(o,`toggle-group:set`,e=>{if(T())return;let t=e.detail,n;typeof t==`string`||Array.isArray(t)?n=t:t&&typeof t==`object`&&`value`in t&&(n=t.value),n!==void 0&&j(n)})),{setValue:e=>j(e),toggle:e=>A(e),get value(){return[...C]},destroy:()=>{w.forEach(e=>e()),w.length=0,d.delete(o)}}}const d=new WeakSet;function f(e=document){let t=[];for(let n of o(e,`toggle-group`))d.has(n)||(d.add(n),t.push(u(n)));return t}export{f as create,u as createToggleGroup};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@data-slot/toggle-group",
3
- "version": "0.2.31",
3
+ "version": "0.2.32",
4
4
  "type": "module",
5
5
  "sideEffects": false,
6
6
  "main": "./dist/index.cjs",
File without changes
File without changes