@mastra/playground-ui 6.1.0 → 6.1.1-alpha.0

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 (42) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/index.cjs.js +2950 -1185
  3. package/dist/index.cjs.js.map +1 -1
  4. package/dist/index.css +1477 -0
  5. package/dist/index.es.js +2923 -1190
  6. package/dist/index.es.js.map +1 -1
  7. package/dist/src/components/ui/elements/buttons/button.d.ts +1 -6
  8. package/dist/src/components/ui/elements/date-time-picker/date-picker.d.ts +4 -0
  9. package/dist/src/components/ui/elements/date-time-picker/date-time-picker.d.ts +31 -0
  10. package/dist/src/components/ui/elements/date-time-picker/index.d.ts +1 -0
  11. package/dist/src/components/ui/elements/date-time-picker/time-picker.d.ts +7 -0
  12. package/dist/src/components/ui/elements/entry-list/entry-list-cell.d.ts +5 -1
  13. package/dist/src/components/ui/elements/entry-list/entry-list-item.d.ts +4 -3
  14. package/dist/src/components/ui/elements/entry-list/entry-list.d.ts +5 -3
  15. package/dist/src/components/ui/elements/headers/index.d.ts +1 -0
  16. package/dist/src/components/ui/elements/headers/page-header.d.ts +8 -0
  17. package/dist/src/components/ui/elements/index.d.ts +5 -0
  18. package/dist/src/components/ui/elements/side-dialog/index.d.ts +2 -0
  19. package/dist/src/components/ui/elements/side-dialog/side-dialog-code-section.d.ts +5 -0
  20. package/dist/src/components/ui/elements/side-dialog/side-dialog-heading.d.ts +6 -0
  21. package/dist/src/components/ui/elements/side-dialog/side-dialog-top.d.ts +2 -1
  22. package/dist/src/components/ui/elements/side-dialog/side-dialog.d.ts +3 -1
  23. package/dist/src/components/ui/elements/text/formatters/get-short-id.d.ts +1 -0
  24. package/dist/src/components/ui/elements/text/index.d.ts +2 -0
  25. package/dist/src/components/ui/elements/text/text-and-icon.d.ts +6 -0
  26. package/dist/src/domains/observability/components/helpers.d.ts +17 -0
  27. package/dist/src/domains/observability/components/index.d.ts +6 -0
  28. package/dist/src/domains/observability/components/shared.d.ts +6 -0
  29. package/dist/src/domains/observability/components/span-details.d.ts +4 -0
  30. package/dist/src/domains/observability/components/span-dialog.d.ts +13 -0
  31. package/dist/src/domains/observability/components/trace-dialog.d.ts +13 -0
  32. package/dist/src/domains/observability/components/trace-span-usage.d.ts +12 -0
  33. package/dist/src/domains/observability/components/trace-timeline-legend.d.ts +6 -0
  34. package/dist/src/domains/observability/components/trace-timeline-span.d.ts +12 -0
  35. package/dist/src/domains/observability/components/trace-timeline.d.ts +12 -0
  36. package/dist/src/domains/observability/components/traces-tools.d.ts +17 -0
  37. package/dist/src/domains/observability/index.d.ts +3 -0
  38. package/dist/src/domains/observability/types.d.ts +9 -0
  39. package/dist/src/domains/observability/utils/format-hierarchical-spans.d.ts +3 -0
  40. package/dist/src/index.d.ts +2 -0
  41. package/package.json +4 -4
  42. package/dist/src/components/ui/elements/buttons/button.stories.d.ts +0 -13
@@ -1,12 +1,7 @@
1
1
  import { default as React } from '../../../../../node_modules/@types/react';
2
2
  export interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
3
- as?: React.ElementType;
4
3
  className?: string;
5
- href?: string;
6
- to?: string;
7
- prefetch?: boolean | null;
8
4
  children: React.ReactNode;
9
5
  variant?: 'primary' | 'outline' | 'ghost';
10
- target?: string;
11
6
  }
12
- export declare const Button: ({ className, as, variant, ...props }: ButtonProps) => import("react/jsx-runtime").JSX.Element;
7
+ export declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<HTMLButtonElement>>;
@@ -0,0 +1,4 @@
1
+ import { DayPicker } from 'react-day-picker';
2
+ import * as React from 'react';
3
+ export type CalendarProps = React.ComponentProps<typeof DayPicker>;
4
+ export declare function DatePicker({ className, classNames, showOutsideDays, ...props }: CalendarProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,31 @@
1
+ import { DayPickerSingleProps } from 'react-day-picker';
2
+ import * as React from 'react';
3
+ type CommonProps = Omit<DayPickerSingleProps, 'mode' | 'selected' | 'onSelect'> & {
4
+ value: Date | undefined | null;
5
+ minValue?: Date | null;
6
+ maxValue?: Date | null;
7
+ defaultTimeStrValue?: string;
8
+ onValueChange: (date: Date | undefined) => void;
9
+ };
10
+ export type DateTimePickerProps = (CommonProps & {
11
+ children?: never;
12
+ className?: string;
13
+ placeholder?: string;
14
+ }) | (CommonProps & {
15
+ children: React.ReactNode;
16
+ className?: never;
17
+ placeholder?: string;
18
+ });
19
+ export declare const DateTimePicker: React.FC<DateTimePickerProps>;
20
+ export declare const DateTimePickerContent: ({ value, minValue, maxValue, onValueChange, setOpenPopover, placeholder, className, defaultTimeStrValue, ...props }: CommonProps & {
21
+ setOpenPopover?: (open: boolean) => void;
22
+ placeholder?: string;
23
+ className?: string;
24
+ }) => import("react/jsx-runtime").JSX.Element;
25
+ type DefaultButtonProps = {
26
+ className?: string;
27
+ placeholder?: string;
28
+ value: Date | undefined | null;
29
+ };
30
+ export declare const DefaultTrigger: React.ForwardRefExoticComponent<DefaultButtonProps & React.RefAttributes<HTMLButtonElement>>;
31
+ export {};
@@ -0,0 +1 @@
1
+ export * from './date-time-picker';
@@ -0,0 +1,7 @@
1
+ type TimePickerProps = {
2
+ defaultValue?: string;
3
+ onValueChange: (value: string) => void;
4
+ className?: string;
5
+ };
6
+ export declare function TimePicker({ defaultValue, onValueChange, className }: TimePickerProps): import("react/jsx-runtime").JSX.Element;
7
+ export {};
@@ -1,3 +1,7 @@
1
- export declare function EntryListCell({ children }: {
1
+ export declare function EntryListTextCell({ children, isLoading }: {
2
2
  children: React.ReactNode;
3
+ isLoading?: boolean;
4
+ }): import("react/jsx-runtime").JSX.Element;
5
+ export declare function EntryListStatusCell({ status }: {
6
+ status?: 'success' | 'failed';
3
7
  }): import("react/jsx-runtime").JSX.Element;
@@ -1,8 +1,9 @@
1
1
  import { Column } from './shared';
2
- export declare function EntryListItem({ item, selectedItem, onClick, children, columns, }: {
2
+ export declare function EntryListItem({ item, selectedItemId, onClick, children, columns, isLoading, }: {
3
3
  item: any;
4
- selectedItem: any | null;
5
- onClick?: (score: string) => void;
4
+ selectedItemId?: string;
5
+ onClick?: (itemId: string) => void;
6
6
  children?: React.ReactNode;
7
7
  columns?: Column[];
8
+ isLoading?: boolean;
8
9
  }): import("react/jsx-runtime").JSX.Element;
@@ -1,9 +1,10 @@
1
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;
2
+ export declare function EntryList({ items: dataItems, selectedItemId, onItemClick, isLoading, isLoadingNextPage, total, page, hasMore, onNextPage, onPrevPage, perPage, columns, searchTerm, setEndOfListElement, }: {
3
+ items: Record<string, any>[];
4
+ selectedItemId?: string;
5
5
  onItemClick?: (item: string) => void;
6
6
  isLoading?: boolean;
7
+ isLoadingNextPage?: boolean;
7
8
  total?: number;
8
9
  page?: number;
9
10
  hasMore?: boolean;
@@ -12,4 +13,5 @@ export declare function EntryList({ items, selectedItem, onItemClick, isLoading,
12
13
  perPage?: number;
13
14
  columns?: Column[];
14
15
  searchTerm?: string;
16
+ setEndOfListElement: (element: HTMLDivElement | null) => void;
15
17
  }): import("react/jsx-runtime").JSX.Element;
@@ -1 +1,2 @@
1
1
  export * from './entity-main-header';
2
+ export * from './page-header';
@@ -0,0 +1,8 @@
1
+ type PageHeaderProps = {
2
+ title?: string;
3
+ description?: string;
4
+ icon?: React.ReactNode;
5
+ className?: string;
6
+ };
7
+ export declare function PageHeader({ title, description, icon, className }: PageHeaderProps): import("react/jsx-runtime").JSX.Element;
8
+ export {};
@@ -1,2 +1,7 @@
1
1
  export * from './form-fields';
2
2
  export * from './key-value-list';
3
+ export * from './entry-list';
4
+ export * from './side-dialog';
5
+ export * from './headers';
6
+ export * from './date-time-picker';
7
+ export * from './text';
@@ -3,3 +3,5 @@ export * from './side-dialog-header';
3
3
  export * from './side-dialog-footer';
4
4
  export * from './side-dialog-content';
5
5
  export * from './side-dialog-top';
6
+ export * from './side-dialog-code-section';
7
+ export * from './side-dialog-heading';
@@ -0,0 +1,5 @@
1
+ export type SideDialogCodeSectionProps = {
2
+ title: string;
3
+ codeStr?: string;
4
+ };
5
+ export declare function SideDialogCodeSection({ codeStr, title }: SideDialogCodeSectionProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,6 @@
1
+ export type SideDialogHeadingProps = {
2
+ children?: React.ReactNode;
3
+ className?: string;
4
+ as?: 'h1' | 'h2';
5
+ };
6
+ export declare function SideDialogHeading({ children, className, as }: SideDialogHeadingProps): import("react/jsx-runtime").JSX.Element;
@@ -3,5 +3,6 @@ export type SideDialogTopProps = {
3
3
  onNext?: (() => void) | null;
4
4
  onPrevious?: (() => void) | null;
5
5
  showInnerNav?: boolean;
6
+ className?: string;
6
7
  };
7
- export declare function SideDialogTop({ children, onNext, onPrevious, showInnerNav }: SideDialogTopProps): import("react/jsx-runtime").JSX.Element;
8
+ export declare function SideDialogTop({ children, onNext, onPrevious, showInnerNav, className }: SideDialogTopProps): import("react/jsx-runtime").JSX.Element;
@@ -1,10 +1,12 @@
1
- export declare function SideDialog({ dialogTitle, isOpen, onClose, children, variant, hasCloseButton, }: {
1
+ export declare function SideDialog({ dialogTitle, dialogDescription, isOpen, onClose, children, variant, hasCloseButton, className, }: {
2
2
  variant?: 'default' | 'confirmation';
3
3
  dialogTitle: string;
4
+ dialogDescription: string;
4
5
  isOpen: boolean;
5
6
  onClose?: () => void;
6
7
  onNext?: (() => void) | null;
7
8
  onPrevious?: (() => void) | null;
8
9
  children?: React.ReactNode;
9
10
  hasCloseButton?: boolean;
11
+ className?: string;
10
12
  }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export declare function getShortId(id: string | undefined): string | undefined;
@@ -0,0 +1,2 @@
1
+ export * from './text-and-icon';
2
+ export * from './formatters/get-short-id';
@@ -0,0 +1,6 @@
1
+ type TextAndIconProps = {
2
+ children: React.ReactNode;
3
+ className?: string;
4
+ };
5
+ export declare function TextAndIcon({ children, className }: TextAndIconProps): import("react/jsx-runtime").JSX.Element;
6
+ export {};
@@ -0,0 +1,17 @@
1
+ import { AISpanRecord } from '@mastra/core';
2
+ export declare function getTraceInfo(trace: AISpanRecord | undefined): {
3
+ key: string;
4
+ label: string;
5
+ value: any;
6
+ }[];
7
+ type getSpanInfoProps = {
8
+ span: AISpanRecord | undefined;
9
+ withTraceId?: boolean;
10
+ withSpanId?: boolean;
11
+ };
12
+ export declare function getSpanInfo({ span, withTraceId, withSpanId }: getSpanInfoProps): {
13
+ key: string;
14
+ label: string;
15
+ value: string;
16
+ }[];
17
+ export {};
@@ -0,0 +1,6 @@
1
+ export * from './trace-timeline';
2
+ export * from './trace-timeline-legend';
3
+ export * from './trace-timeline-span';
4
+ export * from './shared';
5
+ export * from './trace-dialog';
6
+ export * from './traces-tools';
@@ -0,0 +1,6 @@
1
+ export declare const spanTypePrefixes: string[];
2
+ export declare function getSpanTypeUi(type: string): {
3
+ icon: React.ReactNode;
4
+ color: string;
5
+ label: string;
6
+ } | null;
@@ -0,0 +1,4 @@
1
+ import { AISpanRecord } from '@mastra/core';
2
+ export declare function SpanDetails({ span }: {
3
+ span?: AISpanRecord;
4
+ }): import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,13 @@
1
+ import { KeyValueListItemData } from '../../../components/ui/elements';
2
+ import { AISpanRecord } from '@mastra/core';
3
+ type SpanDialogProps = {
4
+ span?: AISpanRecord;
5
+ spanInfo?: KeyValueListItemData[];
6
+ isOpen: boolean;
7
+ onClose?: () => void;
8
+ onNext?: () => void;
9
+ onPrevious?: () => void;
10
+ onViewToggle?: () => void;
11
+ };
12
+ export declare function SpanDialog({ span, isOpen, onClose, onNext, onPrevious, onViewToggle, spanInfo, }: SpanDialogProps): import("react/jsx-runtime").JSX.Element;
13
+ export {};
@@ -0,0 +1,13 @@
1
+ import { AISpanRecord } from '@mastra/core';
2
+ type TraceDialogProps = {
3
+ traceSpans?: AISpanRecord[];
4
+ traceId?: string;
5
+ traceDetails?: AISpanRecord;
6
+ isOpen: boolean;
7
+ onClose?: () => void;
8
+ onNext?: () => void;
9
+ onPrevious?: () => void;
10
+ isLoadingSpans?: boolean;
11
+ };
12
+ export declare function TraceDialog({ traceId, traceSpans, traceDetails, isOpen, onClose, onNext, onPrevious, isLoadingSpans, }: TraceDialogProps): import("react/jsx-runtime").JSX.Element;
13
+ export {};
@@ -0,0 +1,12 @@
1
+ type TraceSpanUsageProps = {
2
+ traceUsage?: {
3
+ [key: string]: any;
4
+ };
5
+ traceSpans?: any[];
6
+ className?: string;
7
+ spanUsage?: {
8
+ [key: string]: any;
9
+ };
10
+ };
11
+ export declare function TraceSpanUsage({ traceUsage, traceSpans, spanUsage, className }: TraceSpanUsageProps): import("react/jsx-runtime").JSX.Element | null;
12
+ export {};
@@ -0,0 +1,6 @@
1
+ import { AISpanRecord } from '@mastra/core';
2
+ type TraceTimelineLegendProps = {
3
+ spans?: AISpanRecord[];
4
+ };
5
+ export declare function TraceTimelineLegend({ spans }: TraceTimelineLegendProps): import("react/jsx-runtime").JSX.Element;
6
+ export {};
@@ -0,0 +1,12 @@
1
+ import { UISpan } from '../types';
2
+ type TraceTimelineSpanProps = {
3
+ span: UISpan;
4
+ depth?: number;
5
+ onSpanClick?: (id: string) => void;
6
+ selectedSpanId?: string;
7
+ isLastChild?: boolean;
8
+ overallLatency?: number;
9
+ overallStartTime?: string;
10
+ };
11
+ export declare function TraceTimelineSpan({ span, depth, onSpanClick, selectedSpanId, isLastChild, overallLatency, overallStartTime, }: TraceTimelineSpanProps): import("react/jsx-runtime").JSX.Element;
12
+ export {};
@@ -0,0 +1,12 @@
1
+ import { AISpanRecord } from '@mastra/core';
2
+ import { UISpan } from '../types';
3
+ type TraceTimelineProps = {
4
+ spans?: AISpanRecord[];
5
+ hierarchicalSpans: UISpan[];
6
+ onSpanClick: (id: string) => void;
7
+ selectedSpanId?: string;
8
+ isLoading?: boolean;
9
+ className?: string;
10
+ };
11
+ export declare function TraceTimeline({ spans, hierarchicalSpans, onSpanClick, selectedSpanId, isLoading, className, }: TraceTimelineProps): import("react/jsx-runtime").JSX.Element;
12
+ export {};
@@ -0,0 +1,17 @@
1
+ export type EntityOptions = {
2
+ value: string;
3
+ label: string;
4
+ type: 'agent' | 'workflow' | 'all';
5
+ };
6
+ type TracesToolsProps = {
7
+ selectedEntity?: EntityOptions;
8
+ entityOptions?: EntityOptions[];
9
+ onEntityChange: (val: EntityOptions) => void;
10
+ selectedDateFrom?: Date | undefined;
11
+ selectedDateTo?: Date | undefined;
12
+ onReset?: () => void;
13
+ onDateChange?: (value: Date | undefined, type: 'from' | 'to') => void;
14
+ isLoading?: boolean;
15
+ };
16
+ export declare function TracesTools({ onEntityChange, onReset, selectedEntity, entityOptions, onDateChange, selectedDateFrom, selectedDateTo, isLoading, }: TracesToolsProps): import("react/jsx-runtime").JSX.Element;
17
+ export {};
@@ -0,0 +1,3 @@
1
+ export * from './utils/format-hierarchical-spans';
2
+ export * from './types';
3
+ export * from './components';
@@ -0,0 +1,9 @@
1
+ export type UISpan = {
2
+ id: string;
3
+ name: string;
4
+ type: string;
5
+ latency: number;
6
+ startTime: string;
7
+ endTime?: string;
8
+ spans?: UISpan[];
9
+ };
@@ -0,0 +1,3 @@
1
+ import { AISpanRecord } from '@mastra/core';
2
+ import { UISpan } from '../types';
3
+ export declare const formatHierarchicalSpans: (spans: AISpanRecord[]) => UISpan[];
@@ -6,10 +6,12 @@ export * from './domains/tools/index';
6
6
  export * from './domains/workflows/index';
7
7
  export * from './domains/templates/index';
8
8
  export * from './domains/traces/index';
9
+ export * from './domains/observability/index';
9
10
  export * from './domains/resizable-panel';
10
11
  export * from './components/dynamic-form/index';
11
12
  export * from './components/ui/data-table';
12
13
  export * from './components/ui/containers';
14
+ export * from './components/ui/elements';
13
15
  export * from './components/threads';
14
16
  export * from './components/ui/entity-header';
15
17
  export * from './components/ui/playground-tabs';
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@mastra/playground-ui",
3
3
  "type": "module",
4
- "version": "6.1.0",
4
+ "version": "6.1.1-alpha.0",
5
5
  "description": "Mastra Playground components",
6
6
  "main": "dist/index.umd.js",
7
7
  "module": "dist/index.es.js",
@@ -99,7 +99,7 @@
99
99
  "use-debounce": "^10.0.5",
100
100
  "zod": "^4.1.5",
101
101
  "zustand": "^5.0.7",
102
- "@mastra/client-js": "^0.12.0"
102
+ "@mastra/client-js": "^0.12.1-alpha.0"
103
103
  },
104
104
  "peerDependencies": {
105
105
  "@mastra/core": ">=0.16.0-0 <0.17.0-0",
@@ -109,7 +109,7 @@
109
109
  "tailwindcss": "^3.0.0"
110
110
  },
111
111
  "devDependencies": {
112
- "@storybook/addon-docs": "^9.1.3",
112
+ "@storybook/addon-docs": "^9.1.4",
113
113
  "@storybook/react-vite": "^9.1.2",
114
114
  "@types/node": "^20.19.0",
115
115
  "@types/react": "^19.1.9",
@@ -127,7 +127,7 @@
127
127
  "vite": "^6.3.5",
128
128
  "vite-plugin-dts": "^4.5.4",
129
129
  "vite-plugin-lib-inject-css": "^2.2.2",
130
- "@mastra/core": "0.16.0"
130
+ "@mastra/core": "0.16.1-alpha.0"
131
131
  },
132
132
  "homepage": "https://mastra.ai",
133
133
  "repository": {
@@ -1,13 +0,0 @@
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;