@data-slot/accordion 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 CHANGED
@@ -1 +1 @@
1
- const e=(e,t)=>e.querySelector(`[data-slot="${t}"]`),t=(e,t)=>[...e.querySelectorAll(`[data-slot="${t}"]`)],n=(e,t)=>[...e.querySelectorAll(`[data-slot="${t}"]`)],r=new WeakMap;function i(e,t,n){if(typeof process<`u`&&process.env?.NODE_ENV===`production`)return;let i=r.get(e);i||(i=new Set,r.set(e,i)),!i.has(t)&&(i.add(t),console.warn(`[@data-slot] ${n}`))}function a(e){let t=`data-${e.replace(/([A-Z])/g,`-$1`).toLowerCase()}`,n=`data-${e}`;return t===n?[t]:[t,n]}function o(e,t){for(let n of a(t))if(e.hasAttribute(n))return e.getAttribute(n);return null}function s(e,t){return a(t).some(t=>e.hasAttribute(t))}const c=new Set([``,`true`,`1`,`yes`]),l=new Set([`false`,`0`,`no`]);function u(e,t){if(!s(e,t))return;let n=o(e,t);if(n===null)return;let r=n.toLowerCase();if(c.has(r))return!0;if(l.has(r))return!1;i(e,t,`Invalid boolean value "${n}" for data-${t}. Expected: true/false/1/0/yes/no or empty.`)}function d(e,t){if(s(e,t))return o(e,t)??void 0}const f=Symbol.for(`data-slot.portal-owner`);let p=0;const m=(e,t)=>e.id||=`${t}-${++p}`,h=(e,t,n)=>{n===null?e.removeAttribute(`aria-${t}`):e.setAttribute(`aria-${t}`,String(n))};function g(e,t,n,r){return e.addEventListener(t,n,r),()=>e.removeEventListener(t,n,r)}const _=(e,t,n)=>e.dispatchEvent(new CustomEvent(t,{bubbles:!0,detail:n}));function v(n,r={}){let i=t(n,`accordion-item`);if(i.length===0)throw Error(`Accordion requires at least one accordion-item`);let a=r.multiple??u(n,`multiple`)??!1,o=r.onValueChange,s=r.collapsible??u(n,`collapsible`)??!0,c=r.defaultValue??d(n,`defaultValue`),l=c?Array.isArray(c)?c:[c]:[],f=new Set(l),p=[],v=[];i.forEach(t=>{let r=t.dataset.value;if(!r)return;let i=e(t,`accordion-trigger`),c=e(t,`accordion-content`);if(!i||!c)return;v.push(i);let l=m(c,`accordion-content`),u=m(i,`accordion-trigger`);i.setAttribute(`aria-controls`,l),c.setAttribute(`aria-labelledby`,u),c.setAttribute(`role`,`region`),p.push(g(i,`click`,()=>{let e=f.has(r);if(e){if(!s&&!a&&f.size===1)return;f.delete(r)}else a?f.add(r):f=new Set([r]);y(),_(n,`accordion:change`,{value:[...f]}),o?.([...f])}))}),p.push(g(n,`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=()=>{i.forEach(t=>{let n=t.dataset.value;if(!n)return;let r=e(t,`accordion-trigger`),i=e(t,`accordion-content`);if(!r||!i)return;let a=f.has(n),o=r.getAttribute(`aria-expanded`)===`true`;if(h(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),i._accordionTimeout=null);else if(o){i._accordionTimeout&&clearTimeout(i._accordionTimeout);let e=i.parentElement,t=n=>{if(n.propertyName===`grid-template-rows`){let n=i.getAttribute(`data-state`);n===`closed`&&(i.hidden=!0),e?.removeEventListener(`transitionend`,t),i._accordionTimeout&&(clearTimeout(i._accordionTimeout),i._accordionTimeout=null)}};e?(e.addEventListener(`transitionend`,t),i._accordionTimeout=setTimeout(()=>{let n=i.getAttribute(`data-state`);n===`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})};y(),p.push(g(n,`accordion:set`,e=>{let t=e.detail,r=t?.value;if(r===void 0)return;let c=Array.isArray(r)?r:[r],l=c.filter(e=>i.some(t=>t.dataset.value===e)),u=a?new Set(l):new Set(l.slice(0,1));if(!a&&!s&&u.size===0&&f.size>0)return;let d=u.size!==f.size||[...u].some(e=>!f.has(e));d&&(f=u,y(),_(n,`accordion:change`,{value:[...f]}),o?.([...f]))}));let b={expand:e=>{f.has(e)||(a?f.add(e):f=new Set([e]),y(),_(n,`accordion:change`,{value:[...f]}),o?.([...f]))},collapse:e=>{f.has(e)&&(!s&&!a&&f.size===1||(f.delete(e),y(),_(n,`accordion:change`,{value:[...f]}),o?.([...f])))},toggle:e=>{f.has(e)?b.collapse(e):b.expand(e)},get value(){return[...f]},destroy:()=>{p.forEach(e=>e()),p.length=0,i.forEach(t=>{let n=e(t,`accordion-content`);n&&n._accordionTimeout&&(clearTimeout(n._accordionTimeout),n._accordionTimeout=null)})}};return b}const y=new WeakSet;function b(e=document){let t=[];for(let r of n(e,`accordion`)){if(y.has(r))continue;y.add(r),t.push(v(r))}return t}exports.create=b,exports.createAccordion=v;
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`));function l(e,t={}){let n=(0,c.getParts)(e,`accordion-item`);if(n.length===0)throw Error(`Accordion requires at least one accordion-item`);let r=t.multiple??(0,c.getDataBool)(e,`multiple`)??!1,i=t.onValueChange,a=t.collapsible??(0,c.getDataBool)(e,`collapsible`)??!0,o=t.defaultValue??(0,c.getDataString)(e,`defaultValue`),s=o?Array.isArray(o)?o:[o]:[],l=new Set(s),u=[],d=[];n.forEach(t=>{let n=t.dataset.value;if(!n)return;let o=(0,c.getPart)(t,`accordion-trigger`),s=(0,c.getPart)(t,`accordion-content`);if(!o||!s)return;d.push(o);let p=(0,c.ensureId)(s,`accordion-content`),m=(0,c.ensureId)(o,`accordion-trigger`);o.setAttribute(`aria-controls`,p),s.setAttribute(`aria-labelledby`,m),s.setAttribute(`role`,`region`),u.push((0,c.on)(o,`click`,()=>{let t=l.has(n);if(t){if(!a&&!r&&l.size===1)return;l.delete(n)}else r?l.add(n):l=new Set([n]);f(),(0,c.emit)(e,`accordion:change`,{value:[...l]}),i?.([...l])}))}),u.push((0,c.on)(e,`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=()=>{n.forEach(e=>{let t=e.dataset.value;if(!t)return;let n=(0,c.getPart)(e,`accordion-trigger`),r=(0,c.getPart)(e,`accordion-content`);if(!n||!r)return;let i=l.has(t),a=n.getAttribute(`aria-expanded`)===`true`;if((0,c.setAria)(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),r._accordionTimeout=null);else if(a){r._accordionTimeout&&clearTimeout(r._accordionTimeout);let e=r.parentElement,t=n=>{if(n.propertyName===`grid-template-rows`){let n=r.getAttribute(`data-state`);n===`closed`&&(r.hidden=!0),e?.removeEventListener(`transitionend`,t),r._accordionTimeout&&(clearTimeout(r._accordionTimeout),r._accordionTimeout=null)}};e?(e.addEventListener(`transitionend`,t),r._accordionTimeout=setTimeout(()=>{let n=r.getAttribute(`data-state`);n===`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})};f(),u.push((0,c.on)(e,`accordion:set`,t=>{let o=t.detail,s=o?.value;if(s===void 0)return;let u=Array.isArray(s)?s:[s],d=u.filter(e=>n.some(t=>t.dataset.value===e)),p=r?new Set(d):new Set(d.slice(0,1));if(!r&&!a&&p.size===0&&l.size>0)return;let m=p.size!==l.size||[...p].some(e=>!l.has(e));m&&(l=p,f(),(0,c.emit)(e,`accordion:change`,{value:[...l]}),i?.([...l]))}));let p={expand:t=>{l.has(t)||(r?l.add(t):l=new Set([t]),f(),(0,c.emit)(e,`accordion:change`,{value:[...l]}),i?.([...l]))},collapse:t=>{l.has(t)&&(!a&&!r&&l.size===1||(l.delete(t),f(),(0,c.emit)(e,`accordion:change`,{value:[...l]}),i?.([...l])))},toggle:e=>{l.has(e)?p.collapse(e):p.expand(e)},get value(){return[...l]},destroy:()=>{u.forEach(e=>e()),u.length=0,n.forEach(e=>{let t=(0,c.getPart)(e,`accordion-content`);t&&t._accordionTimeout&&(clearTimeout(t._accordionTimeout),t._accordionTimeout=null)})}};return p}const u=new WeakSet;function d(e=document){let t=[];for(let n of(0,c.getRoots)(e,`accordion`)){if(u.has(n))continue;u.add(n),t.push(l(n))}return t}exports.create=d,exports.createAccordion=l;
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- const e=(e,t)=>e.querySelector(`[data-slot="${t}"]`),t=(e,t)=>[...e.querySelectorAll(`[data-slot="${t}"]`)],n=(e,t)=>[...e.querySelectorAll(`[data-slot="${t}"]`)],r=new WeakMap;function i(e,t,n){if(typeof process<`u`&&process.env?.NODE_ENV===`production`)return;let i=r.get(e);i||(i=new Set,r.set(e,i)),!i.has(t)&&(i.add(t),console.warn(`[@data-slot] ${n}`))}function a(e){let t=`data-${e.replace(/([A-Z])/g,`-$1`).toLowerCase()}`,n=`data-${e}`;return t===n?[t]:[t,n]}function o(e,t){for(let n of a(t))if(e.hasAttribute(n))return e.getAttribute(n);return null}function s(e,t){return a(t).some(t=>e.hasAttribute(t))}const c=new Set([``,`true`,`1`,`yes`]),l=new Set([`false`,`0`,`no`]);function u(e,t){if(!s(e,t))return;let n=o(e,t);if(n===null)return;let r=n.toLowerCase();if(c.has(r))return!0;if(l.has(r))return!1;i(e,t,`Invalid boolean value "${n}" for data-${t}. Expected: true/false/1/0/yes/no or empty.`)}function d(e,t){if(s(e,t))return o(e,t)??void 0}const f=Symbol.for(`data-slot.portal-owner`);let p=0;const m=(e,t)=>e.id||=`${t}-${++p}`,h=(e,t,n)=>{n===null?e.removeAttribute(`aria-${t}`):e.setAttribute(`aria-${t}`,String(n))};function g(e,t,n,r){return e.addEventListener(t,n,r),()=>e.removeEventListener(t,n,r)}const _=(e,t,n)=>e.dispatchEvent(new CustomEvent(t,{bubbles:!0,detail:n}));function v(n,r={}){let i=t(n,`accordion-item`);if(i.length===0)throw Error(`Accordion requires at least one accordion-item`);let a=r.multiple??u(n,`multiple`)??!1,o=r.onValueChange,s=r.collapsible??u(n,`collapsible`)??!0,c=r.defaultValue??d(n,`defaultValue`),l=c?Array.isArray(c)?c:[c]:[],f=new Set(l),p=[],v=[];i.forEach(t=>{let r=t.dataset.value;if(!r)return;let i=e(t,`accordion-trigger`),c=e(t,`accordion-content`);if(!i||!c)return;v.push(i);let l=m(c,`accordion-content`),u=m(i,`accordion-trigger`);i.setAttribute(`aria-controls`,l),c.setAttribute(`aria-labelledby`,u),c.setAttribute(`role`,`region`),p.push(g(i,`click`,()=>{let e=f.has(r);if(e){if(!s&&!a&&f.size===1)return;f.delete(r)}else a?f.add(r):f=new Set([r]);y(),_(n,`accordion:change`,{value:[...f]}),o?.([...f])}))}),p.push(g(n,`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=()=>{i.forEach(t=>{let n=t.dataset.value;if(!n)return;let r=e(t,`accordion-trigger`),i=e(t,`accordion-content`);if(!r||!i)return;let a=f.has(n),o=r.getAttribute(`aria-expanded`)===`true`;if(h(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),i._accordionTimeout=null);else if(o){i._accordionTimeout&&clearTimeout(i._accordionTimeout);let e=i.parentElement,t=n=>{if(n.propertyName===`grid-template-rows`){let n=i.getAttribute(`data-state`);n===`closed`&&(i.hidden=!0),e?.removeEventListener(`transitionend`,t),i._accordionTimeout&&(clearTimeout(i._accordionTimeout),i._accordionTimeout=null)}};e?(e.addEventListener(`transitionend`,t),i._accordionTimeout=setTimeout(()=>{let n=i.getAttribute(`data-state`);n===`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})};y(),p.push(g(n,`accordion:set`,e=>{let t=e.detail,r=t?.value;if(r===void 0)return;let c=Array.isArray(r)?r:[r],l=c.filter(e=>i.some(t=>t.dataset.value===e)),u=a?new Set(l):new Set(l.slice(0,1));if(!a&&!s&&u.size===0&&f.size>0)return;let d=u.size!==f.size||[...u].some(e=>!f.has(e));d&&(f=u,y(),_(n,`accordion:change`,{value:[...f]}),o?.([...f]))}));let b={expand:e=>{f.has(e)||(a?f.add(e):f=new Set([e]),y(),_(n,`accordion:change`,{value:[...f]}),o?.([...f]))},collapse:e=>{f.has(e)&&(!s&&!a&&f.size===1||(f.delete(e),y(),_(n,`accordion:change`,{value:[...f]}),o?.([...f])))},toggle:e=>{f.has(e)?b.collapse(e):b.expand(e)},get value(){return[...f]},destroy:()=>{p.forEach(e=>e()),p.length=0,i.forEach(t=>{let n=e(t,`accordion-content`);n&&n._accordionTimeout&&(clearTimeout(n._accordionTimeout),n._accordionTimeout=null)})}};return b}const y=new WeakSet;function b(e=document){let t=[];for(let r of n(e,`accordion`)){if(y.has(r))continue;y.add(r),t.push(v(r))}return t}export{b as create,v as createAccordion};
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`,()=>{let t=g.has(r);if(t){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),r._accordionTimeout=null);else if(o){r._accordionTimeout&&clearTimeout(r._accordionTimeout);let e=r.parentElement,t=n=>{if(n.propertyName===`grid-template-rows`){let n=r.getAttribute(`data-state`);n===`closed`&&(r.hidden=!0),e?.removeEventListener(`transitionend`,t),r._accordionTimeout&&(clearTimeout(r._accordionTimeout),r._accordionTimeout=null)}};e?(e.addEventListener(`transitionend`,t),r._accordionTimeout=setTimeout(()=>{let n=r.getAttribute(`data-state`);n===`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,r=n?.value;if(r===void 0)return;let i=Array.isArray(r)?r:[r],a=i.filter(e=>u.some(t=>t.dataset.value===e)),s=d?new Set(a):new Set(a.slice(0,1));if(!d&&!p&&s.size===0&&g.size>0)return;let c=s.size!==g.size||[...s].some(e=>!g.has(e));c&&(g=s,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`)){if(u.has(n))continue;u.add(n),t.push(l(n))}return t}export{d as create,l as createAccordion};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@data-slot/accordion",
3
- "version": "0.2.30",
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
  }