@data-slot/accordion 0.2.123 → 0.2.125

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
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require(`@data-slot/core`);function t(t,n={}){let r=(0,e.getParts)(t,`accordion-item`);if(r.length===0)throw Error(`Accordion requires at least one accordion-item`);let i=n.multiple??(0,e.getDataBool)(t,`multiple`)??!1,a=n.onValueChange,o=n.collapsible??(0,e.getDataBool)(t,`collapsible`)??!0,s=n.defaultValue??(0,e.getDataString)(t,`defaultValue`),c=s?Array.isArray(s)?s:[s]:[],l=new Set(c),u=[],d=[];r.forEach(n=>{let r=n.dataset.value;if(!r)return;let s=(0,e.getPart)(n,`accordion-trigger`),c=(0,e.getPart)(n,`accordion-content`);if(!s||!c)return;d.push(s);let p=(0,e.ensureId)(c,`accordion-content`),m=(0,e.ensureId)(s,`accordion-trigger`);s.setAttribute(`aria-controls`,p),c.setAttribute(`aria-labelledby`,m),c.setAttribute(`role`,`region`),u.push((0,e.on)(s,`click`,()=>{if(l.has(r)){if(!o&&!i&&l.size===1)return;l.delete(r)}else i?l.add(r):l=new Set([r]);f(),(0,e.emit)(t,`accordion:change`,{value:[...l]}),a?.([...l])}))}),u.push((0,e.on)(t,`keydown`,e=>{let t=e.target,n=d.indexOf(t);if(n===-1)return;let r=n;switch(e.key){case`ArrowDown`:r=n+1,r>=d.length&&(r=0);break;case`ArrowUp`:r=n-1,r<0&&(r=d.length-1);break;case`Home`:r=0;break;case`End`:r=d.length-1;break;default:return}e.preventDefault(),d[r]?.focus()}));let f=()=>{r.forEach(t=>{let n=t.dataset.value;if(!n)return;let r=(0,e.getPart)(t,`accordion-trigger`),i=(0,e.getPart)(t,`accordion-content`);if(!r||!i)return;let a=l.has(n),o=r.getAttribute(`aria-expanded`)===`true`;if((0,e.setAria)(r,`expanded`,a),t.setAttribute(`data-state`,a?`open`:`closed`),i.setAttribute(`data-state`,a?`open`:`closed`),a)i.hidden=!1,i._accordionTimeout&&=(clearTimeout(i._accordionTimeout),null);else if(o){i._accordionTimeout&&clearTimeout(i._accordionTimeout);let e=i.parentElement,t=n=>{n.propertyName===`grid-template-rows`&&(i.getAttribute(`data-state`)===`closed`&&(i.hidden=!0),e?.removeEventListener(`transitionend`,t),i._accordionTimeout&&=(clearTimeout(i._accordionTimeout),null))};e?(e.addEventListener(`transitionend`,t),i._accordionTimeout=setTimeout(()=>{i.getAttribute(`data-state`)===`closed`&&(i.hidden=!0),e.removeEventListener(`transitionend`,t),i._accordionTimeout=null},350)):i._accordionTimeout=setTimeout(()=>{i.hidden=!0,i._accordionTimeout=null},300)}else i.hidden=!0})};f(),u.push((0,e.on)(t,`accordion:set`,n=>{let s=n.detail?.value;if(s===void 0)return;let c=(Array.isArray(s)?s:[s]).filter(e=>r.some(t=>t.dataset.value===e)),u=i?new Set(c):new Set(c.slice(0,1));!i&&!o&&u.size===0&&l.size>0||(u.size!==l.size||[...u].some(e=>!l.has(e)))&&(l=u,f(),(0,e.emit)(t,`accordion:change`,{value:[...l]}),a?.([...l]))}));let p={expand:n=>{l.has(n)||(i?l.add(n):l=new Set([n]),f(),(0,e.emit)(t,`accordion:change`,{value:[...l]}),a?.([...l]))},collapse:n=>{l.has(n)&&(!o&&!i&&l.size===1||(l.delete(n),f(),(0,e.emit)(t,`accordion:change`,{value:[...l]}),a?.([...l])))},toggle:e=>{l.has(e)?p.collapse(e):p.expand(e)},get value(){return[...l]},destroy:()=>{u.forEach(e=>e()),u.length=0,r.forEach(t=>{let n=(0,e.getPart)(t,`accordion-content`);n&&n._accordionTimeout&&(clearTimeout(n._accordionTimeout),n._accordionTimeout=null)})}};return p}const n=new WeakSet;function r(r=document){let i=[];for(let a of(0,e.getRoots)(r,`accordion`))n.has(a)||(n.add(a),i.push(t(a)));return i}exports.create=r,exports.createAccordion=t;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require(`@data-slot/core`);const t=`@data-slot/accordion`;function n(n,r={}){let i=(0,e.reuseRootBinding)(n,t,`[@data-slot/accordion] createAccordion() called more than once for the same root. Returning the existing controller. Destroy it before rebinding with new options.`);if(i)return i;let a=(0,e.getParts)(n,`accordion-item`);if(a.length===0)throw Error(`Accordion requires at least one accordion-item`);let o=r.multiple??(0,e.getDataBool)(n,`multiple`)??!1,s=r.onValueChange,c=r.collapsible??(0,e.getDataBool)(n,`collapsible`)??!0,l=r.defaultValue??(0,e.getDataString)(n,`defaultValue`),u=l?Array.isArray(l)?l:[l]:[],d=new Set(u),f=[],p=[];a.forEach(t=>{let r=t.dataset.value;if(!r)return;let i=(0,e.getPart)(t,`accordion-trigger`),a=(0,e.getPart)(t,`accordion-content`);if(!i||!a)return;p.push(i);let l=(0,e.ensureId)(a,`accordion-content`),u=(0,e.ensureId)(i,`accordion-trigger`);i.setAttribute(`aria-controls`,l),a.setAttribute(`aria-labelledby`,u),a.setAttribute(`role`,`region`),f.push((0,e.on)(i,`click`,()=>{if(d.has(r)){if(!c&&!o&&d.size===1)return;d.delete(r)}else o?d.add(r):d=new Set([r]);m(),(0,e.emit)(n,`accordion:change`,{value:[...d]}),s?.([...d])}))}),f.push((0,e.on)(n,`keydown`,e=>{let t=e.target,n=p.indexOf(t);if(n===-1)return;let r=n;switch(e.key){case`ArrowDown`:r=n+1,r>=p.length&&(r=0);break;case`ArrowUp`:r=n-1,r<0&&(r=p.length-1);break;case`Home`:r=0;break;case`End`:r=p.length-1;break;default:return}e.preventDefault(),p[r]?.focus()}));let m=()=>{a.forEach(t=>{let n=t.dataset.value;if(!n)return;let r=(0,e.getPart)(t,`accordion-trigger`),i=(0,e.getPart)(t,`accordion-content`);if(!r||!i)return;let a=d.has(n),o=r.getAttribute(`aria-expanded`)===`true`;if((0,e.setAria)(r,`expanded`,a),t.setAttribute(`data-state`,a?`open`:`closed`),i.setAttribute(`data-state`,a?`open`:`closed`),a)i.hidden=!1,i._accordionTimeout&&=(clearTimeout(i._accordionTimeout),null);else if(o){i._accordionTimeout&&clearTimeout(i._accordionTimeout);let e=i.parentElement,t=n=>{n.propertyName===`grid-template-rows`&&(i.getAttribute(`data-state`)===`closed`&&(i.hidden=!0),e?.removeEventListener(`transitionend`,t),i._accordionTimeout&&=(clearTimeout(i._accordionTimeout),null))};e?(e.addEventListener(`transitionend`,t),i._accordionTimeout=setTimeout(()=>{i.getAttribute(`data-state`)===`closed`&&(i.hidden=!0),e.removeEventListener(`transitionend`,t),i._accordionTimeout=null},350)):i._accordionTimeout=setTimeout(()=>{i.hidden=!0,i._accordionTimeout=null},300)}else i.hidden=!0})};m(),f.push((0,e.on)(n,`accordion:set`,t=>{let r=t.detail?.value;if(r===void 0)return;let i=(Array.isArray(r)?r:[r]).filter(e=>a.some(t=>t.dataset.value===e)),l=o?new Set(i):new Set(i.slice(0,1));!o&&!c&&l.size===0&&d.size>0||(l.size!==d.size||[...l].some(e=>!d.has(e)))&&(d=l,m(),(0,e.emit)(n,`accordion:change`,{value:[...d]}),s?.([...d]))}));let h={expand:t=>{d.has(t)||(o?d.add(t):d=new Set([t]),m(),(0,e.emit)(n,`accordion:change`,{value:[...d]}),s?.([...d]))},collapse:t=>{d.has(t)&&(!c&&!o&&d.size===1||(d.delete(t),m(),(0,e.emit)(n,`accordion:change`,{value:[...d]}),s?.([...d])))},toggle:e=>{d.has(e)?h.collapse(e):h.expand(e)},get value(){return[...d]},destroy:()=>{f.forEach(e=>e()),f.length=0,a.forEach(t=>{let n=(0,e.getPart)(t,`accordion-content`);n&&n._accordionTimeout&&(clearTimeout(n._accordionTimeout),n._accordionTimeout=null)}),(0,e.clearRootBinding)(n,t,h)}};return(0,e.setRootBinding)(n,t,h),h}function r(r=document){let i=[];for(let a of(0,e.getRoots)(r,`accordion`))(0,e.hasRootBinding)(a,t)||i.push(n(a));return i}exports.create=r,exports.createAccordion=n;
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- import{emit as e,ensureId as t,getDataBool as n,getDataString as r,getPart as i,getParts as a,getRoots as o,on as s,setAria as c}from"@data-slot/core";function l(o,l={}){let u=a(o,`accordion-item`);if(u.length===0)throw Error(`Accordion requires at least one accordion-item`);let d=l.multiple??n(o,`multiple`)??!1,f=l.onValueChange,p=l.collapsible??n(o,`collapsible`)??!0,m=l.defaultValue??r(o,`defaultValue`),h=m?Array.isArray(m)?m:[m]:[],g=new Set(h),_=[],v=[];u.forEach(n=>{let r=n.dataset.value;if(!r)return;let a=i(n,`accordion-trigger`),c=i(n,`accordion-content`);if(!a||!c)return;v.push(a);let l=t(c,`accordion-content`),u=t(a,`accordion-trigger`);a.setAttribute(`aria-controls`,l),c.setAttribute(`aria-labelledby`,u),c.setAttribute(`role`,`region`),_.push(s(a,`click`,()=>{if(g.has(r)){if(!p&&!d&&g.size===1)return;g.delete(r)}else d?g.add(r):g=new Set([r]);y(),e(o,`accordion:change`,{value:[...g]}),f?.([...g])}))}),_.push(s(o,`keydown`,e=>{let t=e.target,n=v.indexOf(t);if(n===-1)return;let r=n;switch(e.key){case`ArrowDown`:r=n+1,r>=v.length&&(r=0);break;case`ArrowUp`:r=n-1,r<0&&(r=v.length-1);break;case`Home`:r=0;break;case`End`:r=v.length-1;break;default:return}e.preventDefault(),v[r]?.focus()}));let y=()=>{u.forEach(e=>{let t=e.dataset.value;if(!t)return;let n=i(e,`accordion-trigger`),r=i(e,`accordion-content`);if(!n||!r)return;let a=g.has(t),o=n.getAttribute(`aria-expanded`)===`true`;if(c(n,`expanded`,a),e.setAttribute(`data-state`,a?`open`:`closed`),r.setAttribute(`data-state`,a?`open`:`closed`),a)r.hidden=!1,r._accordionTimeout&&=(clearTimeout(r._accordionTimeout),null);else if(o){r._accordionTimeout&&clearTimeout(r._accordionTimeout);let e=r.parentElement,t=n=>{n.propertyName===`grid-template-rows`&&(r.getAttribute(`data-state`)===`closed`&&(r.hidden=!0),e?.removeEventListener(`transitionend`,t),r._accordionTimeout&&=(clearTimeout(r._accordionTimeout),null))};e?(e.addEventListener(`transitionend`,t),r._accordionTimeout=setTimeout(()=>{r.getAttribute(`data-state`)===`closed`&&(r.hidden=!0),e.removeEventListener(`transitionend`,t),r._accordionTimeout=null},350)):r._accordionTimeout=setTimeout(()=>{r.hidden=!0,r._accordionTimeout=null},300)}else r.hidden=!0})};y(),_.push(s(o,`accordion:set`,t=>{let n=t.detail?.value;if(n===void 0)return;let r=(Array.isArray(n)?n:[n]).filter(e=>u.some(t=>t.dataset.value===e)),i=d?new Set(r):new Set(r.slice(0,1));!d&&!p&&i.size===0&&g.size>0||(i.size!==g.size||[...i].some(e=>!g.has(e)))&&(g=i,y(),e(o,`accordion:change`,{value:[...g]}),f?.([...g]))}));let b={expand:t=>{g.has(t)||(d?g.add(t):g=new Set([t]),y(),e(o,`accordion:change`,{value:[...g]}),f?.([...g]))},collapse:t=>{g.has(t)&&(!p&&!d&&g.size===1||(g.delete(t),y(),e(o,`accordion:change`,{value:[...g]}),f?.([...g])))},toggle:e=>{g.has(e)?b.collapse(e):b.expand(e)},get value(){return[...g]},destroy:()=>{_.forEach(e=>e()),_.length=0,u.forEach(e=>{let t=i(e,`accordion-content`);t&&t._accordionTimeout&&(clearTimeout(t._accordionTimeout),t._accordionTimeout=null)})}};return b}const u=new WeakSet;function d(e=document){let t=[];for(let n of o(e,`accordion`))u.has(n)||(u.add(n),t.push(l(n)));return t}export{d as create,l as createAccordion};
1
+ import{clearRootBinding as e,emit as t,ensureId as n,getDataBool as r,getDataString as i,getPart as a,getParts as o,getRoots as s,hasRootBinding as c,on as l,reuseRootBinding as u,setAria as d,setRootBinding as f}from"@data-slot/core";const p=`@data-slot/accordion`;function m(s,c={}){let m=u(s,p,`[@data-slot/accordion] createAccordion() called more than once for the same root. Returning the existing controller. Destroy it before rebinding with new options.`);if(m)return m;let h=o(s,`accordion-item`);if(h.length===0)throw Error(`Accordion requires at least one accordion-item`);let g=c.multiple??r(s,`multiple`)??!1,_=c.onValueChange,v=c.collapsible??r(s,`collapsible`)??!0,y=c.defaultValue??i(s,`defaultValue`),b=y?Array.isArray(y)?y:[y]:[],x=new Set(b),S=[],C=[];h.forEach(e=>{let r=e.dataset.value;if(!r)return;let i=a(e,`accordion-trigger`),o=a(e,`accordion-content`);if(!i||!o)return;C.push(i);let c=n(o,`accordion-content`),u=n(i,`accordion-trigger`);i.setAttribute(`aria-controls`,c),o.setAttribute(`aria-labelledby`,u),o.setAttribute(`role`,`region`),S.push(l(i,`click`,()=>{if(x.has(r)){if(!v&&!g&&x.size===1)return;x.delete(r)}else g?x.add(r):x=new Set([r]);w(),t(s,`accordion:change`,{value:[...x]}),_?.([...x])}))}),S.push(l(s,`keydown`,e=>{let t=e.target,n=C.indexOf(t);if(n===-1)return;let r=n;switch(e.key){case`ArrowDown`:r=n+1,r>=C.length&&(r=0);break;case`ArrowUp`:r=n-1,r<0&&(r=C.length-1);break;case`Home`:r=0;break;case`End`:r=C.length-1;break;default:return}e.preventDefault(),C[r]?.focus()}));let w=()=>{h.forEach(e=>{let t=e.dataset.value;if(!t)return;let n=a(e,`accordion-trigger`),r=a(e,`accordion-content`);if(!n||!r)return;let i=x.has(t),o=n.getAttribute(`aria-expanded`)===`true`;if(d(n,`expanded`,i),e.setAttribute(`data-state`,i?`open`:`closed`),r.setAttribute(`data-state`,i?`open`:`closed`),i)r.hidden=!1,r._accordionTimeout&&=(clearTimeout(r._accordionTimeout),null);else if(o){r._accordionTimeout&&clearTimeout(r._accordionTimeout);let e=r.parentElement,t=n=>{n.propertyName===`grid-template-rows`&&(r.getAttribute(`data-state`)===`closed`&&(r.hidden=!0),e?.removeEventListener(`transitionend`,t),r._accordionTimeout&&=(clearTimeout(r._accordionTimeout),null))};e?(e.addEventListener(`transitionend`,t),r._accordionTimeout=setTimeout(()=>{r.getAttribute(`data-state`)===`closed`&&(r.hidden=!0),e.removeEventListener(`transitionend`,t),r._accordionTimeout=null},350)):r._accordionTimeout=setTimeout(()=>{r.hidden=!0,r._accordionTimeout=null},300)}else r.hidden=!0})};w(),S.push(l(s,`accordion:set`,e=>{let n=e.detail?.value;if(n===void 0)return;let r=(Array.isArray(n)?n:[n]).filter(e=>h.some(t=>t.dataset.value===e)),i=g?new Set(r):new Set(r.slice(0,1));!g&&!v&&i.size===0&&x.size>0||(i.size!==x.size||[...i].some(e=>!x.has(e)))&&(x=i,w(),t(s,`accordion:change`,{value:[...x]}),_?.([...x]))}));let T={expand:e=>{x.has(e)||(g?x.add(e):x=new Set([e]),w(),t(s,`accordion:change`,{value:[...x]}),_?.([...x]))},collapse:e=>{x.has(e)&&(!v&&!g&&x.size===1||(x.delete(e),w(),t(s,`accordion:change`,{value:[...x]}),_?.([...x])))},toggle:e=>{x.has(e)?T.collapse(e):T.expand(e)},get value(){return[...x]},destroy:()=>{S.forEach(e=>e()),S.length=0,h.forEach(e=>{let t=a(e,`accordion-content`);t&&t._accordionTimeout&&(clearTimeout(t._accordionTimeout),t._accordionTimeout=null)}),e(s,p,T)}};return f(s,p,T),T}function h(e=document){let t=[];for(let n of s(e,`accordion`))c(n,p)||t.push(m(n));return t}export{h as create,m as createAccordion};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@data-slot/accordion",
3
- "version": "0.2.123",
3
+ "version": "0.2.125",
4
4
  "type": "module",
5
5
  "sideEffects": false,
6
6
  "main": "./dist/index.cjs",
@@ -34,6 +34,6 @@
34
34
  ],
35
35
  "license": "MIT",
36
36
  "dependencies": {
37
- "@data-slot/core": "0.2.123"
37
+ "@data-slot/core": "0.2.125"
38
38
  }
39
39
  }