UNPKG

@styleless-ui/react

Version:

Completely unstyled, headless and accessible React UI components.

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