Skip to main content
Hooks, bridge types, and runtime contracts come from the package root. One UI primitives come from the dedicated /ui entry:
Each symbol’s page below is generated from the SDK’s own TypeScript declarations, so the signature you read is the signature you compile against.

Hooks

The three data hooks take TapQueryOptions and hand back TapQueryResult or TapStorageResult.

UI kit

Cards compose CardHeader, CardTitle, CardDescription, CardAction, CardContent, and CardFooter. Dialogs compose DialogContent, DialogHeader, DialogTitle, DialogDescription, DialogBody, DialogFooter, and DialogClose. Fields compose FieldLabel, FieldDescription, and FieldError. Tables compose TableHeader, TableBody, TableRow, TableHead, and TableCell.

UI kit props

The component-specific props are ButtonProps, CardProps, PageHeaderProps, MetricProps, TableRowProps, CheckboxProps, SchemaFormProps, DialogProps, DialogContentProps, SkeletonProps, EmptyStateProps, ErrorStateProps, StackProps, and InlineProps. The supporting option types are ButtonSize, ButtonVariant, DialogSize, InlineAlign, InlineJustify, and Space. SchemaForm and schemaFields use SchemaField and SchemaFieldKind. cn takes a ClassValue.

Errors

TapError, TapServerError, TAP_ERROR_CODES, TapErrorCode. Every code with its fix is on Errors.

Component props

TapWidgetProps, TapTabProps, TapPageProps, TapRowActionProps, TapSettingsProps.

The bridge

Tap is the object useTap() returns. Its members: extension, env, host, auth, project, filters, theme, locale, timezone, format, nav, data, server, state, ui, context, storage, telemetry, actions, invalidate. format is TapFormatters; nav moves along a TapPath, which names a HostPage; ui raises toasts of a TapToastTone, asks with TapConfirmOptions and sends a TapChatCard; actions returns a TapActionRun; auth.can takes a ScopeKey. A widget is anchored at a SlotId. TapInternals is the host’s own channel and is not for vendors.

Filters and units

TapFilters carries a TapDateRange, a TapPlatformFilter over TapPlatform, and a country. A comparison carries a TapComparisonSide and a TapChangeKey. A metric is a TapSeriesMetric; a mount renders at a TapSize.

Queries and results

TapQuery and TapResult, keyed by a DataQueryKind, with one result type per kind: TapProjectResult, TapSeriesResult, TapKeywordsResult, TapListingResult, TapReviewsResult, TapCrashesResult, TapRevenueResult. The rows they carry are TapApp, TapRelease, TapKeyword, TapListing, TapReview, TapCrashIssue, TapSeriesPoint. Host table metadata uses TapTableColumn.

Storage, procedures, actions and events

TapStorage reaches a TapSingleton or a TapCollection by TapSingletonName, typed as TapSingletonDocument. TapProcedures, TapProcedureName, TapProcedureInput, TapProcedureOutput; ActionId, ActionInput, ToolId, ToolInput, PromptId, PromptInput; WebhookName, WebhookPayload, TapHostEvents, HostEventName, TelemetryEvent; TapSettingsValues, TapCredentialValues. These read the interfaces tappify extension types fills in: TapStorageMap, TapProcedureMap, TapActionMap, TapToolMap, TapPromptMap, TapWebhookMap, TapHostEventMap, TapTelemetryEvents, TapSettings, TapCredentials. Before you generate, each falls back to a permissive shape.

Query keys

dataQueryKey, procedureQueryKey, storageQueryKey, procedurePrefix and installPrefix build the cache keys the host uses. You need them only when you reach the query cache directly.

Also shipped

@tappify/extension-sdk/ui/styles.css is the UI kit’s stylesheet. Import it once per entry file. @tappify/extension-sdk/vite exports tappifyExtension(), which wires a Vite build for the host, and collectEntryStyles. @tappify/extension-sdk/manifest exports the schema, the registry constants and defineManifest — see Manifest schema. @tappify/extension-sdk/host is Tappify’s own entry and is not for vendors.