UNPKG

clickable-box

Version:

Add `onClick` to HTML elements without sacrificing accessibility.

3 lines (2 loc) 962 B
import e from"react";function r(){return r=Object.assign?Object.assign.bind():function(e){for(var r=1;r<arguments.length;r++){var t=arguments[r];for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])}return e},r.apply(this,arguments)}const t=["is","onClick","disabled","tabIndex","onKeyPress"],n=/*#__PURE__*/e.forwardRef((n,a)=>{const{is:i="span",onClick:o,disabled:s,tabIndex:c=0,onKeyPress:l}=n,d=function(e,r){if(null==e)return{};var t,n,a={},i=Object.keys(e);for(n=0;n<i.length;n++)r.indexOf(t=i[n])>=0||(a[t]=e[t]);return a}(n,t);/*#__PURE__*/return e.createElement(i,r({tabIndex:s?void 0:c,role:"button",onKeyPress:s?void 0:e=>{switch(e.key){case" ":case"Spacebar":e.preventDefault(),o&&l||l?l(e):o&&o(e);break;case"Enter":if(l&&(l(e),e.isDefaultPrevented()))return;o&&o(e)}},onClick:s?void 0:o,"aria-disabled":s?"true":void 0,ref:a},d))});n.displayName="ClickableBox";export{n as default}; //# sourceMappingURL=clickable-box.modern.js.map