@mastra/playground-ui 5.1.20 → 5.1.21-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 (44) hide show
  1. package/dist/index.cjs.js +379 -83
  2. package/dist/index.cjs.js.map +1 -1
  3. package/dist/index.es.js +378 -82
  4. package/dist/index.es.js.map +1 -1
  5. package/dist/src/components/ui/elements/buttons/button.d.ts +12 -0
  6. package/dist/src/components/ui/elements/buttons/button.stories.d.ts +13 -0
  7. package/dist/src/components/ui/elements/buttons/index.d.ts +1 -0
  8. package/dist/src/components/ui/elements/entry-list/entry-list-cell.d.ts +3 -0
  9. package/dist/src/components/ui/elements/entry-list/entry-list-item.d.ts +8 -0
  10. package/dist/src/components/ui/elements/entry-list/entry-list-page-header.d.ts +8 -0
  11. package/dist/src/components/ui/elements/entry-list/entry-list-toolbar.d.ts +6 -0
  12. package/dist/src/components/ui/elements/entry-list/entry-list.d.ts +15 -0
  13. package/dist/src/components/ui/elements/entry-list/index.d.ts +6 -0
  14. package/dist/src/components/ui/elements/entry-list/shared.d.ts +6 -0
  15. package/dist/src/components/ui/elements/form-fields/form-actions.d.ts +12 -0
  16. package/dist/src/components/ui/elements/form-fields/index.d.ts +7 -0
  17. package/dist/src/components/ui/elements/form-fields/input-field.d.ts +14 -0
  18. package/dist/src/components/ui/elements/form-fields/input-field.stories.d.ts +15 -0
  19. package/dist/src/components/ui/elements/form-fields/radio-group-field.d.ts +21 -0
  20. package/dist/src/components/ui/elements/form-fields/search-field.d.ts +2 -0
  21. package/dist/src/components/ui/elements/form-fields/select-field.d.ts +19 -0
  22. package/dist/src/components/ui/elements/form-fields/select-field.stories.d.ts +13 -0
  23. package/dist/src/components/ui/elements/form-fields/slider-field.d.ts +15 -0
  24. package/dist/src/components/ui/elements/form-fields/textarea-field.d.ts +11 -0
  25. package/dist/src/components/ui/elements/headers/entity-main-header.d.ts +11 -0
  26. package/dist/src/components/ui/elements/headers/index.d.ts +1 -0
  27. package/dist/src/components/ui/elements/index.d.ts +2 -0
  28. package/dist/src/components/ui/elements/key-value-list/index.d.ts +1 -0
  29. package/dist/src/components/ui/elements/key-value-list/key-value-list.d.ts +24 -0
  30. package/dist/src/components/ui/elements/key-value-list/key-value-list.stories.d.ts +12 -0
  31. package/dist/src/components/ui/elements/select/index.d.ts +1 -0
  32. package/dist/src/components/ui/elements/select/select.d.ts +10 -0
  33. package/dist/src/components/ui/elements/side-dialog/index.d.ts +5 -0
  34. package/dist/src/components/ui/elements/side-dialog/side-dialog-content.d.ts +21 -0
  35. package/dist/src/components/ui/elements/side-dialog/side-dialog-footer.d.ts +10 -0
  36. package/dist/src/components/ui/elements/side-dialog/side-dialog-header.d.ts +5 -0
  37. package/dist/src/components/ui/elements/side-dialog/side-dialog-top.d.ts +7 -0
  38. package/dist/src/components/ui/elements/side-dialog/side-dialog.d.ts +10 -0
  39. package/dist/src/components/ui/elements/tabs/index.d.ts +1 -0
  40. package/dist/src/components/ui/elements/tabs/tabs.d.ts +40 -0
  41. package/dist/src/domains/agents/components/agent-metadata/agent-metadata-model-switcher.d.ts +11 -0
  42. package/dist/src/domains/agents/components/agent-metadata/agent-metadata.d.ts +4 -1
  43. package/dist/src/domains/agents/components/agent-metadata/models.d.ts +5 -0
  44. package/package.json +12 -5
@@ -0,0 +1,12 @@
1
+ import { default as React } from '../../../../../node_modules/@types/react';
2
+ export interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
3
+ as?: React.ElementType;
4
+ className?: string;
5
+ href?: string;
6
+ to?: string;
7
+ prefetch?: boolean | null;
8
+ children: React.ReactNode;
9
+ variant?: 'primary' | 'outline' | 'ghost';
10
+ target?: string;
11
+ }
12
+ export declare const Button: ({ className, as, variant, ...props }: ButtonProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,13 @@
1
+ import { Meta, StoryObj } from '@storybook/react-vite';
2
+ import { Button } from './button';
3
+ declare const meta: Meta<typeof Button>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof Button>;
6
+ export declare const Default: Story;
7
+ export declare const Primary: Story;
8
+ export declare const Outline: Story;
9
+ export declare const Ghost: Story;
10
+ export declare const WithIcon: Story;
11
+ export declare const IconOnly: Story;
12
+ export declare const Disabled: Story;
13
+ export declare const AsLink: Story;
@@ -0,0 +1 @@
1
+ export * from './button';
@@ -0,0 +1,3 @@
1
+ export declare function EntryListCell({ children }: {
2
+ children: React.ReactNode;
3
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,8 @@
1
+ import { Column } from './shared';
2
+ export declare function EntryListItem({ item, selectedItem, onClick, children, columns, }: {
3
+ item: any;
4
+ selectedItem: any | null;
5
+ onClick?: (score: string) => void;
6
+ children?: React.ReactNode;
7
+ columns?: Column[];
8
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,8 @@
1
+ type EntryListPageHeaderProps = {
2
+ title: string;
3
+ description?: string;
4
+ children?: React.ReactNode;
5
+ icon?: React.ReactNode;
6
+ };
7
+ export declare function EntryListPageHeader({ title, description, icon, children }: EntryListPageHeaderProps): import("react/jsx-runtime").JSX.Element;
8
+ export {};
@@ -0,0 +1,6 @@
1
+ type EntryListToolbarProps = {
2
+ children?: React.ReactNode;
3
+ className?: string;
4
+ };
5
+ export declare function EntryListToolbar({ children, className }: EntryListToolbarProps): import("react/jsx-runtime").JSX.Element;
6
+ export {};
@@ -0,0 +1,15 @@
1
+ import { Column } from './shared';
2
+ export declare function EntryList({ items, selectedItem, onItemClick, isLoading, total, page, hasMore, onNextPage, onPrevPage, perPage, columns, searchTerm, }: {
3
+ items: any[];
4
+ selectedItem: Record<string, any> | null;
5
+ onItemClick?: (item: string) => void;
6
+ isLoading?: boolean;
7
+ total?: number;
8
+ page?: number;
9
+ hasMore?: boolean;
10
+ onNextPage?: () => void;
11
+ onPrevPage?: () => void;
12
+ perPage?: number;
13
+ columns?: Column[];
14
+ searchTerm?: string;
15
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,6 @@
1
+ export * from './entry-list';
2
+ export * from './entry-list-item';
3
+ export * from './entry-list-cell';
4
+ export * from './entry-list-toolbar';
5
+ export * from './entry-list-page-header';
6
+ export * from './shared';
@@ -0,0 +1,6 @@
1
+ export type Column = {
2
+ name: string;
3
+ label: string;
4
+ size: string;
5
+ };
6
+ export declare function getColumnTemplate(columns?: Column[]): string;
@@ -0,0 +1,12 @@
1
+ type FormActionsProps = {
2
+ children?: React.ReactNode;
3
+ onSubmit?: () => void;
4
+ onCancel?: () => void;
5
+ className?: string;
6
+ submitLabel?: string;
7
+ cancelLabel?: string;
8
+ isSubmitting?: boolean;
9
+ variant?: 'toLeft' | 'toRight' | 'stretch';
10
+ };
11
+ export declare function FormActions({ children, onSubmit, onCancel, className, submitLabel, cancelLabel, isSubmitting, variant, }: FormActionsProps): import("react/jsx-runtime").JSX.Element | null;
12
+ export {};
@@ -0,0 +1,7 @@
1
+ export * from './search-field';
2
+ export * from './input-field';
3
+ export * from './textarea-field';
4
+ export * from './form-actions';
5
+ export * from './select-field';
6
+ export * from './slider-field';
7
+ export * from './radio-group-field';
@@ -0,0 +1,14 @@
1
+ import * as React from 'react';
2
+ export type InputFieldProps = React.InputHTMLAttributes<HTMLInputElement> & {
3
+ name?: string;
4
+ testId?: string;
5
+ label?: string;
6
+ labelIsHidden?: boolean;
7
+ required?: boolean;
8
+ disabled?: boolean;
9
+ value?: string;
10
+ helpMsg?: string;
11
+ error?: boolean;
12
+ errorMsg?: string;
13
+ };
14
+ export declare function InputField({ name, value, label, labelIsHidden, className, testId, required, disabled, helpMsg, error, errorMsg, ...props }: InputFieldProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,15 @@
1
+ import { Meta, StoryObj } from '@storybook/react-vite';
2
+ import { InputField } from './input-field';
3
+ declare const meta: Meta<typeof InputField>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof InputField>;
6
+ export declare const Default: Story;
7
+ export declare const WithValue: Story;
8
+ export declare const Required: Story;
9
+ export declare const WithHelpMessage: Story;
10
+ export declare const WithError: Story;
11
+ export declare const Disabled: Story;
12
+ export declare const HiddenLabel: Story;
13
+ export declare const Email: Story;
14
+ export declare const Password: Story;
15
+ export declare const Number: Story;
@@ -0,0 +1,21 @@
1
+ import * as React from 'react';
2
+ import * as RadixRadioGroup from '@radix-ui/react-radio-group';
3
+ type RadioGroupFieldProps = React.ComponentProps<typeof RadixRadioGroup.Root> & {
4
+ name?: string;
5
+ testId?: string;
6
+ label?: React.ReactNode;
7
+ required?: boolean;
8
+ disabled?: boolean;
9
+ value?: number[];
10
+ helpMsg?: string;
11
+ errorMsg?: string;
12
+ className?: string;
13
+ options?: {
14
+ value: string;
15
+ label: string;
16
+ }[];
17
+ layout?: 'horizontal' | 'vertical';
18
+ onChange?: (value: string) => void;
19
+ };
20
+ export declare function RadioGroupField({ name, value, label, className, testId, required, disabled, helpMsg, errorMsg, onChange, options, layout, onValueChange, ...props }: RadioGroupFieldProps): import("react/jsx-runtime").JSX.Element;
21
+ export {};
@@ -0,0 +1,2 @@
1
+ import { InputFieldProps } from '..';
2
+ export declare function SearchField(props: InputFieldProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,19 @@
1
+ import * as React from 'react';
2
+ type SelectFieldProps = React.SelectHTMLAttributes<HTMLSelectElement> & {
3
+ name?: string;
4
+ testId?: string;
5
+ label?: React.ReactNode;
6
+ required?: boolean;
7
+ disabled?: boolean;
8
+ value?: string;
9
+ helpMsg?: string;
10
+ errorMsg?: string;
11
+ options: {
12
+ value: string;
13
+ label: string;
14
+ }[];
15
+ placeholder?: string;
16
+ onValueChange: (value: string) => void;
17
+ };
18
+ export declare function SelectField({ name, value, label, className, required, disabled, helpMsg, options, onValueChange, placeholder, }: SelectFieldProps): import("react/jsx-runtime").JSX.Element;
19
+ export {};
@@ -0,0 +1,13 @@
1
+ import { Meta, StoryObj } from '@storybook/react-vite';
2
+ import { SelectField } from './select-field';
3
+ declare const meta: Meta<typeof SelectField>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof SelectField>;
6
+ export declare const Default: Story;
7
+ export declare const WithValue: Story;
8
+ export declare const Required: Story;
9
+ export declare const WithHelpMessage: Story;
10
+ export declare const Disabled: Story;
11
+ export declare const NoLabel: Story;
12
+ export declare const FruitSelector: Story;
13
+ export declare const LongOptions: Story;
@@ -0,0 +1,15 @@
1
+ import * as React from 'react';
2
+ import * as RadixSlider from '@radix-ui/react-slider';
3
+ type SliderFieldProps = React.ComponentProps<typeof RadixSlider.Root> & {
4
+ name?: string;
5
+ testId?: string;
6
+ label?: React.ReactNode;
7
+ required?: boolean;
8
+ disabled?: boolean;
9
+ value?: number[];
10
+ helpMsg?: string;
11
+ errorMsg?: string;
12
+ className?: string;
13
+ };
14
+ export declare function SliderField({ name, value, label, className, testId, required, disabled, helpMsg, errorMsg, onChange, ...props }: SliderFieldProps): import("react/jsx-runtime").JSX.Element;
15
+ export {};
@@ -0,0 +1,11 @@
1
+ import * as React from 'react';
2
+ type TextareaFieldProps = React.InputHTMLAttributes<HTMLTextAreaElement> & {
3
+ testId?: string;
4
+ label?: React.ReactNode;
5
+ helpText?: string;
6
+ value?: string;
7
+ disabled?: boolean;
8
+ className?: string;
9
+ };
10
+ export declare function TextareaField({ value, label, helpText, className, testId, type, disabled, ...props }: TextareaFieldProps): import("react/jsx-runtime").JSX.Element;
11
+ export {};
@@ -0,0 +1,11 @@
1
+ type EntityMainHeaderProps = {
2
+ title?: string;
3
+ description?: string;
4
+ children?: React.ReactNode;
5
+ icon?: React.ReactNode;
6
+ isLoading?: boolean;
7
+ className?: string;
8
+ placement?: 'page' | 'sidebar';
9
+ };
10
+ export declare function EntityMainHeader({ title, description, icon, children, isLoading, className, placement, }: EntityMainHeaderProps): import("react/jsx-runtime").JSX.Element;
11
+ export {};
@@ -0,0 +1 @@
1
+ export * from './entity-main-header';
@@ -0,0 +1,2 @@
1
+ export * from './form-fields';
2
+ export * from './key-value-list';
@@ -0,0 +1 @@
1
+ export * from './key-value-list';
@@ -0,0 +1,24 @@
1
+ import { default as React } from '../../../../../node_modules/@types/react';
2
+ export type KeyValueListItemValue = {
3
+ id: string;
4
+ name: React.ReactNode;
5
+ path?: string;
6
+ description?: React.ReactNode;
7
+ };
8
+ export type KeyValueListItemData = {
9
+ key: string;
10
+ label: string;
11
+ value: Value;
12
+ icon?: React.ReactNode;
13
+ separator?: React.ReactNode;
14
+ };
15
+ type Value = React.ReactNode | KeyValueListItemValue[];
16
+ type KeyValueListProps = {
17
+ data: KeyValueListItemData[];
18
+ LinkComponent: React.ComponentType;
19
+ labelsAreHidden?: boolean;
20
+ className?: string;
21
+ isLoading?: boolean;
22
+ };
23
+ export declare function KeyValueList({ data, LinkComponent, className, labelsAreHidden, isLoading }: KeyValueListProps): import("react/jsx-runtime").JSX.Element | null;
24
+ export {};
@@ -0,0 +1,12 @@
1
+ import { Meta, StoryObj } from '@storybook/react-vite';
2
+ import { KeyValueList } from './key-value-list';
3
+ declare const meta: Meta<typeof KeyValueList>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof KeyValueList>;
6
+ export declare const Default: Story;
7
+ export declare const WithLinks: Story;
8
+ export declare const EmptyValues: Story;
9
+ export declare const Loading: Story;
10
+ export declare const HiddenLabels: Story;
11
+ export declare const CustomClassName: Story;
12
+ export declare const SingleItem: Story;
@@ -0,0 +1 @@
1
+ export * from './select';
@@ -0,0 +1,10 @@
1
+ type SelectProps = {
2
+ name: string;
3
+ onChange?: (value: string) => void;
4
+ defaultValue?: string;
5
+ value?: string;
6
+ options?: string[];
7
+ placeholder?: string;
8
+ };
9
+ export declare function Select({ name, onChange, defaultValue, value, options, placeholder }: SelectProps): import("react/jsx-runtime").JSX.Element;
10
+ export {};
@@ -0,0 +1,5 @@
1
+ export * from './side-dialog';
2
+ export * from './side-dialog-header';
3
+ export * from './side-dialog-footer';
4
+ export * from './side-dialog-content';
5
+ export * from './side-dialog-top';
@@ -0,0 +1,21 @@
1
+ export type SideDialogContentProps = {
2
+ children?: React.ReactNode;
3
+ className?: string;
4
+ isCentered?: boolean;
5
+ isFullHeight?: boolean;
6
+ variant?: 'default' | 'confirmation';
7
+ };
8
+ export declare function SideDialogContent({ children, className, isCentered, isFullHeight, variant }: SideDialogContentProps): import("react/jsx-runtime").JSX.Element;
9
+ export type SideDialogSectionProps = {
10
+ children?: React.ReactNode;
11
+ };
12
+ export declare function SideDialogSection({ children }: SideDialogSectionProps): import("react/jsx-runtime").JSX.Element;
13
+ type SideDialogKeyValueListProps = {
14
+ items: {
15
+ key: string;
16
+ value: React.ReactNode;
17
+ }[];
18
+ className?: string;
19
+ };
20
+ export declare function SideDialogKeyValueList({ items, className }: SideDialogKeyValueListProps): import("react/jsx-runtime").JSX.Element;
21
+ export {};
@@ -0,0 +1,10 @@
1
+ export type SideDialogFooterProps = {
2
+ children?: React.ReactNode;
3
+ onNext?: (() => void) | null;
4
+ onPrevious?: (() => void) | null;
5
+ showInnerNav?: boolean;
6
+ };
7
+ export declare function SideDialogFooter({ children, onNext, onPrevious, showInnerNav }: SideDialogFooterProps): import("react/jsx-runtime").JSX.Element;
8
+ export declare function SideDialogFooterGroup({ children }: {
9
+ children: React.ReactNode;
10
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,5 @@
1
+ export type SideDialogHeaderProps = {
2
+ children?: React.ReactNode;
3
+ className?: string;
4
+ };
5
+ export declare function SideDialogHeader({ children, className }: SideDialogHeaderProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,7 @@
1
+ export type SideDialogTopProps = {
2
+ children?: React.ReactNode;
3
+ onNext?: (() => void) | null;
4
+ onPrevious?: (() => void) | null;
5
+ showInnerNav?: boolean;
6
+ };
7
+ export declare function SideDialogTop({ children, onNext, onPrevious, showInnerNav }: SideDialogTopProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,10 @@
1
+ export declare function SideDialog({ dialogTitle, isOpen, onClose, children, variant, hasCloseButton, }: {
2
+ variant?: 'default' | 'confirmation';
3
+ dialogTitle: string;
4
+ isOpen: boolean;
5
+ onClose?: () => void;
6
+ onNext?: (() => void) | null;
7
+ onPrevious?: (() => void) | null;
8
+ children?: React.ReactNode;
9
+ hasCloseButton?: boolean;
10
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export * from './tabs';
@@ -0,0 +1,40 @@
1
+ type TabsProps<T extends string> = {
2
+ children: React.ReactNode;
3
+ defaultTab: T;
4
+ value?: T;
5
+ onValueChange?: (value: T) => void;
6
+ className?: string;
7
+ };
8
+ type TabListProps = {
9
+ children: React.ReactNode;
10
+ className?: string;
11
+ variant?: 'default' | 'buttons';
12
+ };
13
+ type TabProps = {
14
+ children: React.ReactNode;
15
+ value: string;
16
+ onClick?: () => void;
17
+ className?: string;
18
+ };
19
+ type TabContentProps = {
20
+ children: React.ReactNode;
21
+ value: string;
22
+ className?: string;
23
+ };
24
+ declare const Tabs: {
25
+ <T extends string>({ children, defaultTab, value, onValueChange, className }: TabsProps<T>): import("react/jsx-runtime").JSX.Element;
26
+ displayName: string;
27
+ Tab: {
28
+ ({ children, value, onClick, className }: TabProps): import("react/jsx-runtime").JSX.Element;
29
+ displayName: string;
30
+ };
31
+ List: {
32
+ ({ children, variant, className }: TabListProps): import("react/jsx-runtime").JSX.Element;
33
+ displayName: string;
34
+ };
35
+ Content: {
36
+ ({ children, value, className }: TabContentProps): import("react/jsx-runtime").JSX.Element;
37
+ displayName: string;
38
+ };
39
+ };
40
+ export { Tabs };
@@ -0,0 +1,11 @@
1
+ import { UpdateModelParams } from '@mastra/client-js';
2
+ export interface AgentMetadataModelSwitcherProps {
3
+ defaultProvider: string;
4
+ defaultModel: string;
5
+ updateModel: (newModel: UpdateModelParams) => Promise<{
6
+ message: string;
7
+ }>;
8
+ closeEditor: () => void;
9
+ modelProviders: string[];
10
+ }
11
+ export declare const AgentMetadataModelSwitcher: ({ defaultProvider, defaultModel, updateModel, closeEditor, modelProviders, }: AgentMetadataModelSwitcherProps) => import("react/jsx-runtime").JSX.Element;
@@ -1,13 +1,16 @@
1
1
  import { GetAgentResponse, GetToolResponse, GetWorkflowResponse } from '@mastra/client-js';
2
2
  import { ReactNode } from '../../../../../node_modules/@types/react';
3
+ import { AgentMetadataModelSwitcherProps } from './agent-metadata-model-switcher';
3
4
  export interface AgentMetadataProps {
4
5
  agent: GetAgentResponse;
5
6
  promptSlot: ReactNode;
6
7
  hasMemoryEnabled: boolean;
7
8
  computeToolLink: (tool: GetToolResponse) => string;
8
9
  computeWorkflowLink: (workflow: GetWorkflowResponse) => string;
10
+ modelProviders: string[];
11
+ updateModel: AgentMetadataModelSwitcherProps['updateModel'];
9
12
  }
10
- export declare const AgentMetadata: ({ agent, promptSlot, hasMemoryEnabled, computeToolLink, computeWorkflowLink, }: AgentMetadataProps) => import("react/jsx-runtime").JSX.Element;
13
+ export declare const AgentMetadata: ({ agent, promptSlot, hasMemoryEnabled, computeToolLink, computeWorkflowLink, updateModel, modelProviders, }: AgentMetadataProps) => import("react/jsx-runtime").JSX.Element;
11
14
  export interface AgentMetadataToolListProps {
12
15
  tools: GetToolResponse[];
13
16
  computeToolLink: (tool: GetToolResponse) => string;
@@ -0,0 +1,5 @@
1
+ export declare const openaiModels: string[];
2
+ export declare const anthropicModels: string[];
3
+ export declare const googleModels: string[];
4
+ export declare const xAIModels: string[];
5
+ export declare const groqModels: string[];
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@mastra/playground-ui",
3
3
  "type": "module",
4
- "version": "5.1.20",
4
+ "version": "5.1.21-alpha.1",
5
5
  "description": "Mastra Playground components",
6
6
  "main": "dist/index.umd.js",
7
7
  "module": "dist/index.es.js",
@@ -48,11 +48,12 @@
48
48
  "@hookform/resolvers": "^3.10.0",
49
49
  "@lezer/highlight": "^1.2.1",
50
50
  "@lukeed/uuid": "^2.0.1",
51
+ "@radix-ui/react-alert-dialog": "^1.1.14",
51
52
  "@radix-ui/react-avatar": "^1.1.10",
52
53
  "@radix-ui/react-checkbox": "^1.3.2",
53
54
  "@radix-ui/react-collapsible": "^1.1.11",
54
- "@radix-ui/react-alert-dialog": "^1.1.14",
55
55
  "@radix-ui/react-dialog": "^1.1.14",
56
+ "@radix-ui/react-hover-card": "^1.1.14",
56
57
  "@radix-ui/react-label": "^2.1.7",
57
58
  "@radix-ui/react-popover": "^1.1.14",
58
59
  "@radix-ui/react-radio-group": "^1.3.7",
@@ -64,6 +65,7 @@
64
65
  "@radix-ui/react-tabs": "^1.1.12",
65
66
  "@radix-ui/react-toggle": "^1.1.9",
66
67
  "@radix-ui/react-tooltip": "^1.2.7",
68
+ "@radix-ui/react-visually-hidden": "^1.2.3",
67
69
  "@tanstack/react-query": "^5.81.5",
68
70
  "@tanstack/react-table": "^8.21.3",
69
71
  "@types/react-syntax-highlighter": "^15.5.13",
@@ -95,7 +97,7 @@
95
97
  "use-debounce": "^10.0.5",
96
98
  "zod": "^3.25.67",
97
99
  "zustand": "^5.0.7",
98
- "@mastra/client-js": "^0.10.21"
100
+ "@mastra/client-js": "^0.10.22-alpha.1"
99
101
  },
100
102
  "peerDependencies": {
101
103
  "@mastra/core": ">=0.11.0-0 <0.14.0-0",
@@ -105,6 +107,8 @@
105
107
  "tailwindcss": "^3.0.0"
106
108
  },
107
109
  "devDependencies": {
110
+ "@storybook/addon-docs": "^9.1.2",
111
+ "@storybook/react-vite": "^9.1.2",
108
112
  "@types/node": "^20.19.0",
109
113
  "@types/react": "^19.1.9",
110
114
  "@types/react-dom": "^19.1.7",
@@ -114,18 +118,21 @@
114
118
  "clsx": "^2.1.1",
115
119
  "postcss": "^8.5.6",
116
120
  "rollup-plugin-node-externals": "^8.0.1",
121
+ "storybook": "^9.1.2",
117
122
  "tailwind-merge": "^3.3.1",
118
123
  "tailwindcss": "^3.4.17",
119
124
  "typescript": "^5.8.3",
120
125
  "vite": "^6.3.5",
121
126
  "vite-plugin-dts": "^4.5.4",
122
127
  "vite-plugin-lib-inject-css": "^2.2.2",
123
- "@mastra/core": "0.13.2"
128
+ "@mastra/core": "0.14.0-alpha.1"
124
129
  },
125
130
  "scripts": {
126
131
  "build": "tsc && vite build",
127
132
  "dev:playground": "vite build --watch",
128
133
  "build:publish": "pnpm build && yalc push",
129
- "preview": "vite preview"
134
+ "preview": "vite preview",
135
+ "storybook": "storybook dev -p 6006 --no-open",
136
+ "build-storybook": "storybook build"
130
137
  }
131
138
  }