UNPKG

pithos

Version:

Advanced JavaScript/TypeScript superset providing performance, gestures, animations, and DOM utilities

75 lines 2.59 kB
// -- 2020+ ----------------------------------------------------------------------------- export function hasWebCodecs() { return "VideoEncoder" in window && "VideoDecoder" in window; } export function hasWebGPU() { return "gpu" in navigator; } export function hasWebTransport() { return "WebTransport" in window; } export function hasWebStreams() { return "ReadableStream" in window && "WritableStream" in window; } export function hasWebLocks() { return "locks" in navigator; } // --- Style deploying ------------------------------------------------------------------ export function hasViewTransitions() { return "startViewTransition" in document; } export function hasPopoverAPI() { return Object.prototype.hasOwnProperty.call(HTMLElement.prototype, "popover"); } export function hasFileSystemAccess() { return "showOpenFilePicker" in window; } export function hasWebAuthn() { return "credentials" in navigator && "create" in navigator.credentials; } export function hasSharedArrayBuffer() { return typeof SharedArrayBuffer !== "undefined"; } // -- CSS ------------------------------------------------------------------------------- export function hasBackdropFilter() { return CSS.supports("backdrop-filter", "blur(10px)"); } export function hasScrollSnapType() { return CSS.supports("scroll-snap-type", "x mandatory"); } export function hasOverscrollBehavior() { return CSS.supports("overscroll-behavior", "contain"); } export function hasContainerQueries() { return CSS.supports("container-type", "inline-size"); } export function hasCSSNesting() { return CSS.supports("selector(&)", "& .test"); } export function hasViewportUnits() { return CSS.supports("height", "100dvh"); } export function hasCSSZoom() { return typeof CSS !== "undefined" && CSS.supports("zoom", "1"); } // -- Javascript common failures API --------------------------------------------------- export function hasClipboardAPI() { return "clipboard" in navigator && "writeText" in navigator.clipboard; } export function hasNotifications() { return "Notification" in window && Notification.permission !== "denied"; } export function hasScreenWakeLock() { return "wakeLock" in navigator; } export function hasWebShare() { return "share" in navigator; } // -- Permission / Security ------------------------------------------------------------- export function canUseLocalFonts() { return "queryLocalFonts" in window; } export function hasWebUSB() { return "usb" in navigator; } //# sourceMappingURL=browser-support.js.map