Lemma Action Surface
lemma/lemma-action-surfaceUnverifiedBlock
A first-class long-running action launcher for direct actions, functions, workflows, and agents with button, line, and panel variants plus inspectable progress surfaces.
Install it
npx shadcn@latest add https://raw.githubusercontent.com/lemma-work/lemma-platform/main/lemma-typescript/lemma-action-surface.jsonSource
1"use client";23import { useCallback, useEffect, useMemo, useState, type ReactNode } from "react";4import { LemmaClient, type Conversation, type ConversationMessage, type FlowRun, type FunctionRun } from "lemma-sdk";5import { useConversationMessages, useFunctionRun, useWorkflowStart } from "lemma-sdk/react";6import { AlertCircle, Bot, CheckCircle2, ChevronRight, Loader2, Play, Sparkles, Workflow, XCircle } from "lucide-react";7import { cn } from "@/components/lemma/lib/utils";8import { Badge } from "@/components/lemma/ui/badge";9import { Button } from "@/components/lemma/ui/button";10import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/lemma/ui/card";11import {12 Dialog,13 DialogContent,14 DialogDescription,15 DialogFooter,16 DialogHeader,17 DialogTitle,18} from "@/components/lemma/ui/dialog";19import { Separator } from "@/components/lemma/ui/separator";20import { Textarea } from "@/components/lemma/ui/textarea";2122export type LemmaActionSurfaceAppearance = "default" | "minimal" | "borderless" | "contained";23export type LemmaActionSurfaceDensity = "compact" | "comfortable" | "spacious";24export type LemmaActionSurfaceRadius = "none" | "sm" | "md" | "lg" | "xl";25export type LemmaActionSurfaceVariant = "button" | "line" | "panel";26export type LemmaActionProgressSurface = "modal" | "inline" | "none";2728export interface LemmaActionContext {29 [key: string]: unknown;30}3132type ActionInputValue =33 | Record<string, unknown>34 | ((context: LemmaActionContext) => Record<string, unknown>);3536interface BaseLemmaActionDefinition {37 label: ReactNode;38 description?: ReactNode;39 input?: ActionInputValue;40 runningLabels?: string[];41 waitingLabel?: ReactNode;42 successLabel?: ReactNode;43 failureLabel?: ReactNode;44}4546export interface LemmaDirectActionDefinition extends BaseLemmaActionDefinition {47 kind: "direct";48 run: (input: Record<string, unknown>, context: LemmaActionContext) => Promise<unknown> | unknown;49}5051export interface LemmaFunctionActionDefinition extends BaseLemmaActionDefinition {52 kind: "function";53 functionName: string;54}5556export interface LemmaWorkflowActionDefinition extends BaseLemmaActionDefinition {57 kind: "workflow";58 workflowName: string;59}6061export interface LemmaAgentActionDefinition extends BaseLemmaActionDefinition {62 kind: "agent";63 agentName: string;64 instructions?: string | null;65 messageMetadata?: Record<string, unknown> | null;66}6768export type LemmaActionDefinition =69 | LemmaDirectActionDefinition70// … truncated
What it pulls in
npm packages
Other registry items
Files it writes
More from lemma
All 20 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| Lemma Activity Feedlemma-activity-feed | lemma | Blocks | Unverified | 4 deps · 3 files | |
| Lemma Agent Conversation Experiencelemma-assistant-experience | lemma | Blocks | Unverified | 7 deps · 3 files | |
| Lemma Breadcrumbslemma-breadcrumbs | lemma | Blocks | Unverified | 3 deps | |
| Lemma Commentslemma-comments | lemma | Blocks | Unverified | 4 deps · 3 files | |
| Lemma Detail Panellemma-detail-panel | lemma | Blocks | Unverified | 4 deps · 7 files | |
| Lemma Document Workspacelemma-document-workspace | lemma | Blocks | Unverified | 6 deps | |
| Lemma File Browserlemma-file-browser | lemma | Blocks | Unverified | 4 deps | |
| Lemma Global Searchlemma-global-search | lemma | Blocks | Unverified | 4 deps |
