UNPKG

clickable-box

Version:

Add `onClick` to HTML elements without sacrificing accessibility.

3 lines (2 loc) 1.3 kB
!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n(require("react")):"function"==typeof define&&define.amd?define(["react"],n):(e||self).clickableBox=n(e.react)}(this,function(e){function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var t=/*#__PURE__*/n(e);function r(){return r=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e},r.apply(this,arguments)}var i=["is","onClick","disabled","tabIndex","onKeyPress"],a=/*#__PURE__*/t.default.forwardRef(function(e,n){var a=e.is,o=void 0===a?"span":a,f=e.onClick,d=e.disabled,l=e.tabIndex,c=void 0===l?0:l,s=e.onKeyPress,u=function(e,n){if(null==e)return{};var t,r,i={},a=Object.keys(e);for(r=0;r<a.length;r++)n.indexOf(t=a[r])>=0||(i[t]=e[t]);return i}(e,i);/*#__PURE__*/return t.default.createElement(o,r({tabIndex:d?void 0:c,role:"button",onKeyPress:d?void 0:function(e){switch(e.key){case" ":case"Spacebar":e.preventDefault(),f&&s||s?s(e):f&&f(e);break;case"Enter":if(s&&(s(e),e.isDefaultPrevented()))return;f&&f(e)}},onClick:d?void 0:f,"aria-disabled":d?"true":void 0,ref:n},u))});return a.displayName="ClickableBox",a}); //# sourceMappingURL=clickable-box.umd.js.map