npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

@coxwave/tap-kit-types

v2.1.1

Published

Shared TypeScript types for TapKit SDK packages

Readme

@coxwave/tap-kit-types

TypeScript types for the TapKit SDK and <tap-button> Web Component.

Purpose

This package serves as the single source of truth for all TapKit type definitions, eliminating duplication between:

  • @coxwave/tap-sdk - npm wrapper package
  • @coxwave/tap-kit-core - CDN implementation

Installation

npm install @coxwave/tap-kit-types
# or
pnpm add @coxwave/tap-kit-types

Setup

Once you install the package, the global type definitions are automatically available. No additional configuration is needed!

The package exports global type declarations that TypeScript automatically picks up from node_modules. This includes:

  • Web Component: <tap-button> element with type-safe attributes
  • Window extensions: Window.TapKit, loader flags, and debug properties
  • Browser APIs: requestIdleCallback / cancelIdleCallback types

Manual Setup (Optional)

If the global types are not automatically picked up, you can explicitly include them in your tsconfig.json:

{
  "include": [
    "src/**/*",
    "node_modules/@coxwave/tap-kit-types/dist/index.d.ts"
  ]
}

Note: Do NOT add this package to compilerOptions.types - that option is only for @types/* packages. Adding non-@types packages there will cause TypeScript errors.

What Gets Registered

When you install this package, the following global types are automatically available:

  • Web Component: <tap-button> element with type-safe attributes
  • Window extensions: Window.TapKit, loader flags, and debug properties
  • Browser APIs: requestIdleCallback / cancelIdleCallback types

This allows you to use the Web Component in JSX/TSX without type errors:

// ✅ TypeScript knows about <tap-button>
<tap-button floating={true} position="bottom-right" size="medium" />

Usage

import type {
  TapKitConfig,
  TapKitInitParams,
  Course,
  ContainerStyle,
} from "@coxwave/tap-kit-types";

const config: TapKitConfig = {
  apiKey: "your-api-key",
};

const params: TapKitInitParams = {
  buttonId: "tap-button",
  course: {
    userId: "user-1",
    courseId: "course-1",
    clipId: "clip-1",
  },
};

Exported Types

Core Configuration

  • TapKitConfig - SDK configuration
  • TapKitInitParams - Initialization parameters
  • Course - Course information

Styling

  • ContainerConfig - Container configuration
  • ContainerMode - Container display mode
  • FloatingConfig - Floating container settings
  • SidebarConfig - Sidebar container settings
  • PositionType - Position configuration
  • ContainerLayoutState - Container layout state

Events

  • SeekTimelineParamsType - Timeline seek parameters
  • ShortcutKeyPropertiesType - Keyboard shortcut configuration
  • ContainerVisibility - Visibility state

Web Component

  • ITapButtonElement - Public API interface for <tap-button> Web Component
  • TapButtonAttributes - Props/Attributes for <tap-button> element
// Example usage in React
<tap-button
  floating={true}
  position="bottom-right"
  size="medium"
>
  Custom content
</tap-button>

Errors

  • TapKitError - Base error class
  • TapKitInitializationError - Initialization errors
  • TapKitMessageError - Message communication errors
  • TapKitConfigurationError - Configuration errors
  • TapKitLoaderError - Loader errors
  • TapKitIframeError - iframe operation errors

Instance

  • TapKitInstance - TapKit SDK instance interface
  • TapKitConstructor - TapKit class constructor type

Video

  • VideoPlayerAdapter - Video player adapter interface
  • VideoPlayerConfig - Video player configuration

Re-exports from @coxwave/tap-messages

  • AlarmMessageInstanceType
  • AlarmType

License

MIT