diff --git a/CHANGELOG.md b/CHANGELOG.md index bcc04fc..b1b7bf6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,11 @@ +## 4.1.9 - Released on 2025-09-24 + +### Features + +- Added support for the `data-prismium-prevent` selector to prevent interaction with the accordion. + +
+ ## 4.1.8 - Released on 2025-07-10 ### Fixes diff --git a/package-lock.json b/package-lock.json index 7f77760..09cb46b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "prismium-src", - "version": "4.1.7", + "version": "4.1.9", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "prismium-src", - "version": "4.1.7", + "version": "4.1.9", "license": "MIT", "devDependencies": { "@csstools/postcss-is-pseudo-class": "5.0.1", diff --git a/package.json b/package.json index 11c891d..de686fa 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "prismium-src", - "version": "4.1.8", + "version": "4.1.9", "description": "A modern JavaScript accordion library with smooth animations. Easily integrates with React, Vue, and vanilla JavaScript.", "type": "module", "scripts": { diff --git a/src/core/core.mjs b/src/core/core.mjs index d713c10..9131f61 100644 --- a/src/core/core.mjs +++ b/src/core/core.mjs @@ -355,6 +355,17 @@ class Prismium { if (this.$current && !this.$current._hasClickHandler) { const handler = (event) => { event.preventDefault(); + + const preventSelectors = Array.isArray( + this.options.preventSelectors + ) + ? this.options.preventSelectors + : [this.options.preventSelectors]; + const isInPreventSelector = preventSelectors.some((selector) => + event.target.closest(selector) + ); + if (isInPreventSelector) return; + if (!this.destroyed) { this.toggle(el, true); } diff --git a/src/core/options.mjs b/src/core/options.mjs index 88fc2f9..f7d06fe 100644 --- a/src/core/options.mjs +++ b/src/core/options.mjs @@ -11,6 +11,7 @@ export default { // NS iconAttribute: 'data-prismium-icon', containerSelectors: ['[data-prismium-container]'], + preventSelectors: ['[data-prismium-prevent]'], currentSelector: '[data-prismium-current]', contentSelector: '[data-prismium-content]', hiddenSelector: '[data-prismium-hidden]',