onExecute–
(action: ActionSpec) => void | Promise<void>Customers view: runs a recommendation's action once it is confirmed (and approved, if it requires approval). ActionSpec carries label, changes, affected, risks, reversible and requiresApproval. Throw or reject to report a failure.
funnel–
Partial<FlowFunnelProps>Overview's trial funnel: stages, sources, counts[source][stage], config, unit and the rest of Flow Funnel's props. Without it the funnel shows only while customers is the sample; with your customers and no funnel it is left out, never drawn with sample numbers.
teamsample members, 10 seats
TeamView propsTeam view: members / defaultMembers (Member = { id, name, email, role: "owner" | "admin" | "member" | "viewer", status?: "active" | "invited" }), onMembersChange(members), onInvite(email, role), onRoleChange(member, role), onRemove(member), seats. The async callbacks run before the list changes; throw to show the error and keep the list.
billinga sample Growth plan
BillingView propsBilling view: plan { name, price, interval: "month" | "year", renews }, seats { used, included }, usage (UsageMeter[]: { id, label, used, limit, unit }; a meter warns at 80%), invoices (Invoice[]: { id, date, amount, status: "paid" | "due" | "failed", url? }; url adds a download link), currency (default "USD"), onChangePlan(), onManagePayment().
settingsname "Lumen", UTC, both alerts on
SettingsView propsSettings view: defaultValue (WorkspaceSettings = { name, timeZone, weeklyDigest, anomalyAlerts }), onSave(settings), onDelete() after the person types the workspace name. Throw to show "Not saved: …" or keep the delete dialog open.
className / …div props–
React.ComponentProps<"div">On the root (data-slot="saas-analytics"); give it a height, e.g. h-svh.