/ui entry:
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 areButtonProps,
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.