@mastra/react 0.0.5 → 0.0.6-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/dist/index.cjs +1554 -0
  3. package/dist/index.cjs.map +1 -0
  4. package/dist/index.js +1491 -0
  5. package/dist/index.js.map +1 -0
  6. package/dist/react.css +719 -0
  7. package/dist/src/agent/hooks.d.ts +25 -17
  8. package/dist/src/index.d.ts +1 -0
  9. package/dist/src/lib/ai-sdk/index.d.ts +3 -3
  10. package/dist/src/lib/ai-sdk/memory/resolveInitialMessages.d.ts +2 -0
  11. package/dist/src/lib/ai-sdk/transformers/AISdkNetworkTransformer.d.ts +10 -0
  12. package/dist/src/lib/ai-sdk/transformers/types.d.ts +10 -0
  13. package/dist/src/lib/ai-sdk/types.d.ts +14 -0
  14. package/dist/src/lib/ai-sdk/{toAssistantUIMessage.d.ts → utils/toAssistantUIMessage.d.ts} +1 -1
  15. package/dist/src/lib/ai-sdk/{toUIMessage.d.ts → utils/toUIMessage.d.ts} +6 -5
  16. package/dist/src/mastra-client-context.d.ts +1 -0
  17. package/dist/src/ui/Code/Code.d.ts +13 -0
  18. package/dist/src/ui/Code/highlight.d.ts +3 -0
  19. package/dist/src/ui/Code/index.d.ts +1 -0
  20. package/dist/src/ui/Entity/Entity.d.ts +13 -0
  21. package/dist/src/ui/Entity/Entity.stories.d.ts +22 -0
  22. package/dist/src/ui/Entity/Entry.d.ts +9 -0
  23. package/dist/src/ui/Entity/ToolApproval.d.ts +10 -0
  24. package/dist/src/ui/Entity/context.d.ts +10 -0
  25. package/dist/src/ui/Entity/index.d.ts +4 -0
  26. package/dist/src/ui/Entity/types.d.ts +1 -0
  27. package/dist/src/ui/Icon/Icon.d.ts +11 -0
  28. package/dist/src/ui/Icon/index.d.ts +1 -0
  29. package/dist/src/ui/IconButton/IconButton.d.ts +8 -0
  30. package/dist/src/ui/IconButton/IconButton.stories.d.ts +12 -0
  31. package/dist/src/ui/IconButton/index.d.ts +1 -0
  32. package/dist/src/ui/Icons/AgentIcon.d.ts +2 -0
  33. package/dist/src/ui/Icons/ToolsIcon.d.ts +2 -0
  34. package/dist/src/ui/Icons/WorkflowIcon.d.ts +2 -0
  35. package/dist/src/ui/Icons/index.d.ts +3 -0
  36. package/dist/src/ui/Message/Message.d.ts +25 -0
  37. package/dist/src/ui/Message/Message.stories.d.ts +13 -0
  38. package/dist/src/ui/Message/index.d.ts +1 -0
  39. package/dist/src/ui/Tooltip/Tooltip.d.ts +8 -0
  40. package/dist/src/ui/Tooltip/Tooltip.stories.d.ts +12 -0
  41. package/dist/src/ui/Tooltip/index.d.ts +1 -0
  42. package/dist/src/ui/index.d.ts +7 -0
  43. package/package.json +45 -11
  44. package/dist/index.cjs.js +0 -947
  45. package/dist/index.cjs.js.map +0 -1
  46. package/dist/index.es.js +0 -937
  47. package/dist/index.es.js.map +0 -1
  48. package/dist/src/lib/ai-sdk/toNetworkUIMessage.d.ts +0 -6
  49. package/dist/src/lib/ai-sdk/toNetworkUIMessage.test.d.ts +0 -1
  50. package/dist/src/lib/ai-sdk/toUIMessage.test.d.ts +0 -1
  51. /package/dist/src/lib/ai-sdk/{toAssistantUIMessage.test.d.ts → utils/toAssistantUIMessage.test.d.ts} +0 -0
@@ -1,11 +1,12 @@
1
1
  import { ModelSettings } from './types';
2
2
  import { UIMessage } from '@ai-sdk/react';
3
+ import { MastraUIMessage } from '../lib/ai-sdk';
3
4
  import { CoreUserMessage } from '@mastra/core/llm';
4
5
  import { RuntimeContext } from '@mastra/core/runtime-context';
5
6
  import { ChunkType, NetworkChunkType } from '@mastra/core/stream';
6
- export interface MastraChatProps<TMessage> {
7
+ export interface MastraChatProps {
7
8
  agentId: string;
8
- initializeMessages?: () => TMessage[];
9
+ initializeMessages?: () => MastraUIMessage[];
9
10
  }
10
11
  interface SharedArgs {
11
12
  coreUserMessages: CoreUserMessage[];
@@ -14,25 +15,32 @@ interface SharedArgs {
14
15
  modelSettings?: ModelSettings;
15
16
  signal?: AbortSignal;
16
17
  }
17
- export type GenerateArgs<TMessage> = SharedArgs & {
18
- onFinish: ({ messages, tripwireReason }: {
19
- messages: UIMessage[];
20
- tripwireReason: string;
21
- }) => TMessage[];
18
+ export type SendMessageArgs = {
19
+ message: string;
20
+ coreUserMessages?: CoreUserMessage[];
21
+ } & (({
22
+ mode: 'generate';
23
+ } & Omit<GenerateArgs, 'coreUserMessages'>) | ({
24
+ mode: 'stream';
25
+ } & Omit<StreamArgs, 'coreUserMessages'>) | ({
26
+ mode: 'network';
27
+ } & Omit<NetworkArgs, 'coreUserMessages'>) | ({
28
+ mode?: undefined;
29
+ } & Omit<StreamArgs, 'coreUserMessages'>));
30
+ export type GenerateArgs = SharedArgs & {
31
+ onFinish?: (messages: UIMessage[]) => Promise<void>;
22
32
  };
23
- export type StreamArgs<TMessage> = SharedArgs & {
24
- onChunk: (chunk: ChunkType, conversation: TMessage[]) => TMessage[];
33
+ export type StreamArgs = SharedArgs & {
34
+ onChunk?: (chunk: ChunkType) => Promise<void>;
25
35
  };
26
- export type NetworkArgs<TMessage> = SharedArgs & {
27
- onNetworkChunk: (chunk: NetworkChunkType, conversation: TMessage[]) => TMessage[];
36
+ export type NetworkArgs = SharedArgs & {
37
+ onNetworkChunk?: (chunk: NetworkChunkType) => Promise<void>;
28
38
  };
29
- export declare const useChat: <TMessage>({ agentId, initializeMessages }: MastraChatProps<TMessage>) => {
30
- network: ({ coreUserMessages, runtimeContext, threadId, onNetworkChunk, modelSettings, signal, }: NetworkArgs<TMessage>) => Promise<void>;
31
- stream: ({ coreUserMessages, runtimeContext, threadId, onChunk, modelSettings, signal, }: StreamArgs<TMessage>) => Promise<void>;
32
- generate: ({ coreUserMessages, runtimeContext, threadId, modelSettings, signal, onFinish, }: GenerateArgs<TMessage>) => Promise<void>;
39
+ export declare const useChat: ({ agentId, initializeMessages }: MastraChatProps) => {
40
+ setMessages: import('react').Dispatch<import('react').SetStateAction<MastraUIMessage[]>>;
41
+ sendMessage: ({ mode, ...args }: SendMessageArgs) => Promise<void>;
33
42
  isRunning: boolean;
34
- messages: TMessage[];
35
- setMessages: import('react').Dispatch<import('react').SetStateAction<TMessage[]>>;
43
+ messages: MastraUIMessage[];
36
44
  cancelRun: () => void;
37
45
  };
38
46
  export {};
@@ -3,3 +3,4 @@ export * from './agent/hooks';
3
3
  export * from './agent/types';
4
4
  export { useMastraClient } from './mastra-client-context';
5
5
  export * from './lib/ai-sdk';
6
+ export * from './ui';
@@ -1,3 +1,3 @@
1
- export * from './toUIMessage';
2
- export * from './toNetworkUIMessage';
3
- export * from './toAssistantUIMessage';
1
+ export * from './types';
2
+ export * from './utils/toUIMessage';
3
+ export * from './utils/toAssistantUIMessage';
@@ -0,0 +1,2 @@
1
+ import { MastraUIMessage } from '../types';
2
+ export declare const resolveInitialMessages: (messages: MastraUIMessage[]) => MastraUIMessage[];
@@ -0,0 +1,10 @@
1
+ import { NetworkChunkType } from '@mastra/core/stream';
2
+ import { Transformer, TransformerArgs } from './types';
3
+ import { MastraUIMessage } from '../types';
4
+ export declare class AISdkNetworkTransformer implements Transformer<NetworkChunkType> {
5
+ transform({ chunk, conversation, metadata }: TransformerArgs<NetworkChunkType>): MastraUIMessage[];
6
+ private handleRoutingAgentConversation;
7
+ private handleAgentConversation;
8
+ private handleWorkflowConversation;
9
+ private handleToolConversation;
10
+ }
@@ -0,0 +1,10 @@
1
+ import { NetworkChunkType } from '@mastra/core/stream';
2
+ import { MastraUIMessage, MastraUIMessageMetadata } from '../types';
3
+ export interface TransformerArgs<T> {
4
+ chunk: NetworkChunkType;
5
+ conversation: MastraUIMessage[];
6
+ metadata: MastraUIMessageMetadata;
7
+ }
8
+ export interface Transformer<T> {
9
+ transform: (args: TransformerArgs<T>) => MastraUIMessage[];
10
+ }
@@ -0,0 +1,14 @@
1
+ import { UIMessage } from '@ai-sdk/react';
2
+ export type MastraUIMessageMetadata = {
3
+ status?: 'warning' | 'error';
4
+ } & ({
5
+ mode: 'generate';
6
+ } | {
7
+ mode: 'stream';
8
+ } | {
9
+ mode: 'network';
10
+ from?: 'AGENT' | 'WORKFLOW';
11
+ selectionReason?: string;
12
+ agentInput?: string | object | Array<object>;
13
+ });
14
+ export type MastraUIMessage = UIMessage<MastraUIMessageMetadata, any, any>;
@@ -1,5 +1,5 @@
1
1
  import { ThreadMessageLike } from '@assistant-ui/react';
2
- import { MastraUIMessage } from './toUIMessage';
2
+ import { MastraUIMessage } from '../types';
3
3
  /**
4
4
  * Converts a Mastra UIMessage (from AI SDK) to a ThreadMessageLike format compatible with @assistant-ui/react.
5
5
  *
@@ -1,7 +1,6 @@
1
1
  import { ChunkType } from '@mastra/core/stream';
2
- import { UIMessage } from '@ai-sdk/react';
2
+ import { MastraUIMessage, MastraUIMessageMetadata } from '../types';
3
3
  import { WorkflowStreamResult } from '@mastra/core/workflows';
4
- export type MastraUIMessage = UIMessage<any, any, any>;
5
4
  type StreamChunk = {
6
5
  type: string;
7
6
  payload: any;
@@ -9,8 +8,10 @@ type StreamChunk = {
9
8
  from: 'AGENT' | 'WORKFLOW';
10
9
  };
11
10
  export declare const mapWorkflowStreamChunkToWatchResult: (prev: WorkflowStreamResult<any, any, any, any>, chunk: StreamChunk) => WorkflowStreamResult<any, any, any, any>;
12
- export declare const toUIMessage: ({ chunk, conversation, }: {
11
+ export interface ToUIMessageArgs {
13
12
  chunk: ChunkType;
14
- conversation: UIMessage[];
15
- }) => MastraUIMessage[];
13
+ conversation: MastraUIMessage[];
14
+ metadata: MastraUIMessageMetadata;
15
+ }
16
+ export declare const toUIMessage: ({ chunk, conversation, metadata }: ToUIMessageArgs) => MastraUIMessage[];
16
17
  export {};
@@ -1,5 +1,6 @@
1
1
  import { ReactNode } from 'react';
2
2
  import { MastraClient } from '@mastra/client-js';
3
+ export type MastraClientContextType = MastraClient;
3
4
  export interface MastraClientProviderProps {
4
5
  children: ReactNode;
5
6
  baseUrl?: string;
@@ -0,0 +1,13 @@
1
+ import { BundledLanguage } from 'shiki/bundle/web';
2
+ export interface CodeBlockProps {
3
+ code: string;
4
+ language: BundledLanguage;
5
+ className?: string;
6
+ cta?: React.ReactNode;
7
+ }
8
+ export declare const CodeBlockClass = "mastra:rounded-lg mastra:[&>pre]:p-4 mastra:overflow-hidden mastra:[&>pre]:!bg-surface4 mastra:[&>pre>code]:leading-5 mastra:relative";
9
+ export declare const CodeBlock: ({ code, language, className, cta }: CodeBlockProps) => import("react/jsx-runtime").JSX.Element;
10
+ export interface CodeCopyButtonProps {
11
+ code: string;
12
+ }
13
+ export declare const CodeCopyButton: ({ code }: CodeCopyButtonProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,3 @@
1
+ import { JSX } from 'react';
2
+ import { BundledLanguage } from 'shiki/bundle/web';
3
+ export declare function highlight(code: string, lang: BundledLanguage): Promise<JSX.Element>;
@@ -0,0 +1 @@
1
+ export * from './Code';
@@ -0,0 +1,13 @@
1
+ import { EntityVariant } from './types';
2
+ export interface EntityProps extends React.ComponentPropsWithoutRef<'div'> {
3
+ variant?: EntityVariant;
4
+ initialExpanded?: boolean;
5
+ disabled?: boolean;
6
+ }
7
+ export declare const Entity: ({ className, variant, initialExpanded, disabled, ...props }: EntityProps) => import("react/jsx-runtime").JSX.Element;
8
+ export declare const EntityTriggerClass: string;
9
+ export declare const EntityTriggerVariantClasses: Record<EntityVariant, string>;
10
+ export declare const EntityTrigger: ({ className, children, ...props }: React.ComponentPropsWithoutRef<"button">) => import("react/jsx-runtime").JSX.Element;
11
+ export declare const EntityContentClass: string;
12
+ export declare const EntityContent: ({ className, ...props }: React.ComponentPropsWithoutRef<"div">) => import("react/jsx-runtime").JSX.Element | null;
13
+ export declare const EntityCaret: ({ className, ...props }: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,22 @@
1
+ import { StoryObj } from '@storybook/react-vite';
2
+ import { EntityVariant } from './types';
3
+ interface ComponentProps {
4
+ className?: string;
5
+ additionalClass?: string;
6
+ variant?: EntityVariant;
7
+ requireApproval?: boolean;
8
+ }
9
+ declare const meta: {
10
+ title: string;
11
+ component: ({ className, additionalClass, variant, requireApproval }: ComponentProps) => import("react/jsx-runtime").JSX.Element;
12
+ parameters: {};
13
+ tags: string[];
14
+ argTypes: {};
15
+ args: {};
16
+ };
17
+ export default meta;
18
+ type Story = StoryObj<typeof meta>;
19
+ export declare const Default: Story;
20
+ export declare const OverrideByCustomClass: Story;
21
+ export declare const ExtandedByAdditionalClass: Story;
22
+ export declare const Disabled: Story;
@@ -0,0 +1,9 @@
1
+ import { ElementType } from 'react';
2
+ export declare const EntryClass = "mastra:space-y-2";
3
+ export declare const Entry: ({ className, ...props }: React.ComponentPropsWithoutRef<"div">) => import("react/jsx-runtime").JSX.Element;
4
+ type EntryTitleProps = React.ComponentPropsWithoutRef<'div'> & {
5
+ as?: ElementType;
6
+ };
7
+ export declare const EntryTitleClass = "mastra:font-mono mastra:text-sm mastra:text-text3";
8
+ export declare const EntryTitle: ({ className, as: Root, ...props }: EntryTitleProps) => import("react/jsx-runtime").JSX.Element;
9
+ export {};
@@ -0,0 +1,10 @@
1
+ export declare const ToolApprovalClass: string;
2
+ export declare const ToolApproval: ({ className, ...props }: React.ComponentPropsWithoutRef<"div">) => import("react/jsx-runtime").JSX.Element;
3
+ export declare const ToolApprovalTitleClass: string;
4
+ export declare const ToolApprovalTitle: ({ className, ...props }: React.ComponentPropsWithoutRef<"div">) => import("react/jsx-runtime").JSX.Element;
5
+ export declare const ToolApprovalHeaderClass: string;
6
+ export declare const ToolApprovalHeader: ({ className, ...props }: React.ComponentPropsWithoutRef<"div">) => import("react/jsx-runtime").JSX.Element;
7
+ export declare const ToolApprovalContentClass: string;
8
+ export declare const ToolApprovalContent: ({ className, ...props }: React.ComponentPropsWithoutRef<"div">) => import("react/jsx-runtime").JSX.Element;
9
+ export declare const ToolApprovalActionsClass: string;
10
+ export declare const ToolApprovalActions: ({ className, ...props }: React.ComponentPropsWithoutRef<"div">) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,10 @@
1
+ import { EntityVariant } from './types';
2
+ export type EntityContextType = {
3
+ expanded: boolean;
4
+ setExpanded: (expanded: boolean) => void;
5
+ variant: EntityVariant;
6
+ disabled: boolean;
7
+ };
8
+ export declare const EntityContext: import('react').Context<EntityContextType>;
9
+ export declare const EntityProvider: import('react').Provider<EntityContextType>;
10
+ export declare const useEntity: () => EntityContextType;
@@ -0,0 +1,4 @@
1
+ export * from './Entity';
2
+ export { useEntity } from './context';
3
+ export * from './ToolApproval';
4
+ export * from './Entry';
@@ -0,0 +1 @@
1
+ export type EntityVariant = 'initial' | 'agent' | 'workflow' | 'tool' | 'memory';
@@ -0,0 +1,11 @@
1
+ import { default as React } from 'react';
2
+ export interface IconProps extends React.ComponentPropsWithoutRef<'div'> {
3
+ children: React.ReactNode;
4
+ size?: 'sm' | 'md' | 'lg';
5
+ }
6
+ export declare const IconSizes: {
7
+ sm: string;
8
+ md: string;
9
+ lg: string;
10
+ };
11
+ export declare const Icon: ({ children, className, size, ...props }: IconProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export * from './Icon';
@@ -0,0 +1,8 @@
1
+ import { IconProps } from '../Icon/Icon';
2
+ export interface IconButtonProps extends React.ComponentPropsWithoutRef<'button'> {
3
+ children: React.ReactNode;
4
+ tooltip: React.ReactNode;
5
+ size?: IconProps['size'];
6
+ }
7
+ export declare const IconButtonClass = "mastra:text-text3 mastra:hover:text-text6 mastra:active:text-text6 mastra:hover:bg-surface4 mastra:active:bg-surface5 mastra:rounded-md mastra:cursor-pointer";
8
+ export declare const IconButton: ({ children, tooltip, size, className, ...props }: IconButtonProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,12 @@
1
+ import { StoryObj } from '@storybook/react-vite';
2
+ declare const meta: {
3
+ title: string;
4
+ component: () => import("react/jsx-runtime").JSX.Element;
5
+ parameters: {};
6
+ tags: string[];
7
+ argTypes: {};
8
+ args: {};
9
+ };
10
+ export default meta;
11
+ type Story = StoryObj<typeof meta>;
12
+ export declare const Default: Story;
@@ -0,0 +1 @@
1
+ export * from './IconButton';
@@ -0,0 +1,2 @@
1
+ import { default as React } from 'react';
2
+ export declare const AgentIcon: ({ className, ...props }: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import { default as React } from 'react';
2
+ export declare const ToolsIcon: ({ className, ...props }: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import { default as React } from 'react';
2
+ export declare const WorkflowIcon: ({ className, ...props }: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,3 @@
1
+ export * from './AgentIcon';
2
+ export * from './ToolsIcon';
3
+ export * from './WorkflowIcon';
@@ -0,0 +1,25 @@
1
+ import { HTMLAttributes } from 'react';
2
+ export interface MessageProps extends HTMLAttributes<HTMLDivElement> {
3
+ position: 'left' | 'right';
4
+ }
5
+ export declare const MessageClass = "mastra:flex mastra:flex-col mastra:w-full mastra:py-4 mastra:gap-2 mastra:group";
6
+ export declare const Message: ({ position, className, children, ...props }: MessageProps) => import("react/jsx-runtime").JSX.Element;
7
+ export interface MessageContentProps extends HTMLAttributes<HTMLDivElement> {
8
+ isStreaming?: boolean;
9
+ }
10
+ export declare const MessageContentClass = "mastra:max-w-4/5 mastra:py-2 mastra:text-text6 mastra:rounded-lg mastra-message-content mastra:text-md";
11
+ export declare const MessageContent: ({ children, className, isStreaming, ...props }: MessageContentProps) => import("react/jsx-runtime").JSX.Element;
12
+ export declare const MessageActionsClass = "mastra:gap-2 mastra:flex mastra:opacity-0 mastra:group-hover:opacity-100 mastra:group-focus-within:opacity-100 mastra:items-center";
13
+ export declare const MessageActions: ({ children, className, ...props }: HTMLAttributes<HTMLDivElement>) => import("react/jsx-runtime").JSX.Element;
14
+ export declare const MessageUsagesClass = "mastra:flex mastra:gap-2 mastra:items-center";
15
+ export declare const MessageUsages: ({ children, className, ...props }: HTMLAttributes<HTMLDivElement>) => import("react/jsx-runtime").JSX.Element;
16
+ export declare const MessageUsageClass = "mastra:flex mastra:gap-2 mastra:items-center mastra:font-mono mastra:text-xs mastra:bg-surface3 mastra:rounded-lg mastra:px-2 mastra:py-1";
17
+ export declare const MessageUsage: ({ children, className, ...props }: HTMLAttributes<HTMLDListElement>) => import("react/jsx-runtime").JSX.Element;
18
+ export declare const MessageUsageEntryClass = "mastra:text-text3 mastra:text-xs mastra:flex mastra:gap-1 mastra:items-center";
19
+ export declare const MessageUsageEntry: ({ children, className, ...props }: HTMLAttributes<HTMLSpanElement>) => import("react/jsx-runtime").JSX.Element;
20
+ export declare const MessageUsageValueClass = "mastra:text-text6 mastra:text-xs";
21
+ export declare const MessageUsageValue: ({ children, className, ...props }: HTMLAttributes<HTMLSpanElement>) => import("react/jsx-runtime").JSX.Element;
22
+ export declare const MessageListClass = "mastra:overflow-y-auto mastra:h-full mastra-list";
23
+ export declare const MessageList: ({ children, className, ...props }: HTMLAttributes<HTMLDivElement>) => import("react/jsx-runtime").JSX.Element;
24
+ export declare const MessageStreamingClass = "mastra:inline-block mastra:w-[2px] mastra:h-[1em] mastra:bg-text5 mastra:ml-0.5 mastra:align-text-bottom mastra:animate-pulse";
25
+ export declare const MessageStreaming: ({ className, ...props }: HTMLAttributes<HTMLSpanElement>) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,13 @@
1
+ import { StoryObj } from '@storybook/react-vite';
2
+ declare const meta: {
3
+ title: string;
4
+ component: () => import("react/jsx-runtime").JSX.Element;
5
+ parameters: {};
6
+ tags: string[];
7
+ argTypes: {};
8
+ args: {};
9
+ };
10
+ export default meta;
11
+ type Story = StoryObj<typeof meta>;
12
+ export declare const Default: Story;
13
+ export declare const Streaming: Story;
@@ -0,0 +1 @@
1
+ export * from './Message';
@@ -0,0 +1,8 @@
1
+ import { TooltipTriggerProps, TooltipContentProps } from '@radix-ui/react-tooltip';
2
+ export interface TooltipProps extends React.ComponentPropsWithoutRef<'div'> {
3
+ children: React.ReactNode;
4
+ }
5
+ export declare const Tooltip: ({ children }: TooltipProps) => import("react/jsx-runtime").JSX.Element;
6
+ export declare const TooltipContentClass = "mastra:bg-surface4 mastra:text-text6 mastra mastra:rounded-lg mastra:py-1 mastra:px-2 mastra:text-xs mastra:border mastra:border-border1 mastra-tooltip-enter";
7
+ export declare const TooltipContent: ({ children, className, ...props }: TooltipContentProps) => import("react/jsx-runtime").JSX.Element;
8
+ export declare const TooltipTrigger: (props: TooltipTriggerProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,12 @@
1
+ import { StoryObj } from '@storybook/react-vite';
2
+ declare const meta: {
3
+ title: string;
4
+ component: () => import("react/jsx-runtime").JSX.Element;
5
+ parameters: {};
6
+ tags: string[];
7
+ argTypes: {};
8
+ args: {};
9
+ };
10
+ export default meta;
11
+ type Story = StoryObj<typeof meta>;
12
+ export declare const Default: Story;
@@ -0,0 +1 @@
1
+ export * from './Tooltip';
@@ -0,0 +1,7 @@
1
+ export * from './Entity';
2
+ export * from './Code';
3
+ export * from './Icon';
4
+ export * from './IconButton';
5
+ export * from './Icons';
6
+ export * from './Tooltip';
7
+ export * from './Message';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mastra/react",
3
- "version": "0.0.5",
3
+ "version": "0.0.6-alpha.1",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/mastra-ai/mastra.git",
@@ -12,32 +12,64 @@
12
12
  "homepage": "https://mastra.ai",
13
13
  "license": "Apache-2.0",
14
14
  "type": "module",
15
- "main": "dist/index.cjs.js",
16
- "module": "dist/index.es.js",
15
+ "main": "dist/index.cjs",
16
+ "module": "dist/index.js",
17
17
  "types": "dist/index.d.ts",
18
+ "exports": {
19
+ ".": {
20
+ "import": {
21
+ "types": "./dist/index.d.ts",
22
+ "default": "./dist/index.js"
23
+ },
24
+ "require": {
25
+ "types": "./dist/index.d.ts",
26
+ "default": "./dist/index.cjs"
27
+ }
28
+ },
29
+ "./styles.css": "./dist/react.css"
30
+ },
18
31
  "files": [
19
32
  "dist",
20
33
  "CHANGELOG.md"
21
34
  ],
22
35
  "dependencies": {
23
- "react": "^19.1.1",
24
- "react-dom": "^19.1.1",
25
- "@mastra/client-js": "0.15.2"
36
+ "@radix-ui/react-tooltip": "^1.2.7",
37
+ "hast-util-to-jsx-runtime": "^2.3.6",
38
+ "lucide-react": "^0.522.0",
39
+ "shiki": "^1.29.2",
40
+ "tailwind-merge": "^3.3.1",
41
+ "@mastra/client-js": "0.16.0-alpha.1"
42
+ },
43
+ "peerDependencies": {
44
+ "react": ">=19.0.0",
45
+ "react-dom": ">=19.0.0"
26
46
  },
27
47
  "devDependencies": {
28
48
  "@ai-sdk/react": "^2.0.57",
29
49
  "@assistant-ui/react": "^0.10.45",
50
+ "@storybook/react-vite": "^9.1.10",
51
+ "@tailwindcss/vite": "^4.1.13",
30
52
  "@types/react": "^19.1.13",
31
53
  "@types/react-dom": "^19.1.9",
32
- "@vitejs/plugin-react": "^5.0.3",
54
+ "@vitejs/plugin-react": "^5.0.4",
33
55
  "@vitest/ui": "^3.2.4",
34
- "eslint": "^9.35.0",
56
+ "eslint": "^9.36.0",
57
+ "eslint-plugin-storybook": "^9.1.10",
35
58
  "rollup-plugin-node-externals": "^8.0.1",
59
+ "storybook": "^9.1.10",
60
+ "tailwindcss": "^4",
36
61
  "typescript": "^5.8.3",
37
- "vite": "^7.1.7",
62
+ "vite": "^7.1.9",
38
63
  "vite-plugin-dts": "^4.5.4",
39
64
  "vitest": "^3.2.4",
40
- "@mastra/core": "0.20.2"
65
+ "react": ">=19.0.0",
66
+ "react-dom": ">=19.0.0",
67
+ "@mastra/core": "0.21.0-alpha.1"
68
+ },
69
+ "eslintConfig": {
70
+ "extends": [
71
+ "plugin:storybook/recommended"
72
+ ]
41
73
  },
42
74
  "scripts": {
43
75
  "build": "vite build",
@@ -45,6 +77,8 @@
45
77
  "test": "vitest",
46
78
  "test:watch": "vitest --watch",
47
79
  "test:ui": "vitest --ui",
48
- "test:coverage": "vitest --coverage"
80
+ "test:coverage": "vitest --coverage",
81
+ "storybook": "storybook dev -p 6006",
82
+ "build-storybook": "storybook build"
49
83
  }
50
84
  }