UNPKG

@styleless-ui/react

Version:

Completely unstyled, headless and accessible React UI components.

1 lines 2.19 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.isFragment=exports.isFocusable=exports.isContainingBlock=exports.isOverflowElement=exports.isShadowRoot=exports.isNode=exports.isHTMLInputElement=exports.isHTMLElement=exports.isElement=exports.isWindow=void 0;var dom_1=require("./dom"),isWindow=function(e){var t,o;return!!e&&"[object Window]"===(null===(o=(t=e).toString)||void 0===o?void 0:o.call(t))};exports.isWindow=isWindow;var isElement=function(e){return e instanceof(0,dom_1.getWindow)(e).Element};exports.isElement=isElement;var isHTMLElement=function(e){return e instanceof(0,dom_1.getWindow)(e).HTMLElement};exports.isHTMLElement=isHTMLElement;var isHTMLInputElement=function(e){return e instanceof(0,dom_1.getWindow)(e).HTMLInputElement};exports.isHTMLInputElement=isHTMLInputElement;var isNode=function(e){return e instanceof(0,dom_1.getWindow)(e).Node};exports.isNode=isNode;var isShadowRoot=function(e){return e instanceof(0,dom_1.getWindow)(e).ShadowRoot||e instanceof ShadowRoot};exports.isShadowRoot=isShadowRoot;var isOverflowElement=function(e){var t=(0,dom_1.getWindow)(e).getComputedStyle(e),o=t.overflow,n=t.overflowX,r=t.overflowY;return/auto|scroll|overlay|hidden/.test(o+r+n)};exports.isOverflowElement=isOverflowElement;var isContainingBlock=function(e){var t=(0,dom_1.getWindow)(e),o=t.getComputedStyle(e),n=t.navigator.userAgent.toLowerCase().includes("firefox");return"none"!==o.backdropFilter||"none"!==o.transform||"none"!==o.perspective||"paint"===o.contain||["transform","perspective"].includes(o.willChange)||n&&"filter"===o.willChange||n&&!!o.filter&&"none"!==o.filter};exports.isContainingBlock=isContainingBlock;var isFocusable=function(e){if(!e)return!1;if((0,exports.isHTMLElement)(e)&&e.tabIndex<0)return!1;if((0,exports.isHTMLInputElement)(e)&&e.disabled)return!1;switch((0,dom_1.getNodeName)(e)){case"a":return!!e.href&&"ignore"!==e.rel;case"input":return"hidden"!==e.type;case"button":case"select":case"textarea":return!0;default:return!1}};exports.isFocusable=isFocusable;var react_is_1=require("react-is");Object.defineProperty(exports,"isFragment",{enumerable:!0,get:function(){return react_is_1.isFragment}});