@data-slot/toggle-group 0.2.30 → 0.2.31
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 +1 -1
- package/dist/index.js +1 -1
- package/package.json +5 -5
package/dist/index.cjs
CHANGED
|
@@ -1 +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;
|
package/dist/index.js
CHANGED
|
@@ -1 +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};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@data-slot/toggle-group",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.31",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"main": "./dist/index.cjs",
|
|
@@ -24,9 +24,6 @@
|
|
|
24
24
|
"scripts": {
|
|
25
25
|
"build": "tsdown"
|
|
26
26
|
},
|
|
27
|
-
"devDependencies": {
|
|
28
|
-
"@data-slot/core": "workspace:*"
|
|
29
|
-
},
|
|
30
27
|
"repository": {
|
|
31
28
|
"type": "git",
|
|
32
29
|
"url": "https://github.com/bejamas/data-slot",
|
|
@@ -39,5 +36,8 @@
|
|
|
39
36
|
"vanilla",
|
|
40
37
|
"data-slot"
|
|
41
38
|
],
|
|
42
|
-
"license": "MIT"
|
|
39
|
+
"license": "MIT",
|
|
40
|
+
"dependencies": {
|
|
41
|
+
"@data-slot/core": "workspace:*"
|
|
42
|
+
}
|
|
43
43
|
}
|