@mastra/playground-ui 40.0.0-alpha.3 → 40.0.0-alpha.4
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.
- package/CHANGELOG.md +43 -0
- package/dist/components/CodeBlock.cjs.js +1 -1
- package/dist/components/CodeBlock.es.js +1 -1
- package/dist/components/MessageScroller.cjs.js +538 -0
- package/dist/components/MessageScroller.cjs.js.map +1 -0
- package/dist/components/MessageScroller.d.ts +2 -0
- package/dist/components/MessageScroller.es.js +505 -0
- package/dist/components/MessageScroller.es.js.map +1 -0
- package/dist/components/Tabs.cjs.js +1 -1
- package/dist/components/Tabs.es.js +1 -1
- package/dist/components/ThreadRail.cjs.js +432 -0
- package/dist/components/ThreadRail.cjs.js.map +1 -0
- package/dist/components/ThreadRail.d.ts +2 -0
- package/dist/components/ThreadRail.es.js +407 -0
- package/dist/components/ThreadRail.es.js.map +1 -0
- package/dist/components/Tree.cjs.js +2 -2
- package/dist/components/Tree.cjs.js.map +1 -1
- package/dist/components/Tree.es.js +1 -1
- package/dist/components/Tree.es.js.map +1 -1
- package/dist/domains/metrics/components/latency-card-view.cjs.js +64 -42
- package/dist/domains/metrics/components/latency-card-view.cjs.js.map +1 -1
- package/dist/domains/metrics/components/latency-card-view.es.js +65 -43
- package/dist/domains/metrics/components/latency-card-view.es.js.map +1 -1
- package/dist/domains/metrics/components/memory-card-view.cjs.js +1 -1
- package/dist/domains/metrics/components/memory-card-view.es.js +1 -1
- package/dist/domains/metrics/components/scores-card-view.cjs.js +1 -1
- package/dist/domains/metrics/components/scores-card-view.es.js +1 -1
- package/dist/domains/metrics/components/token-usage-by-agent-card-view.cjs.js +1 -1
- package/dist/domains/metrics/components/token-usage-by-agent-card-view.es.js +1 -1
- package/dist/domains/metrics/components/token-usage-timeline-card-view.cjs.js +1 -1
- package/dist/domains/metrics/components/token-usage-timeline-card-view.es.js +1 -1
- package/dist/domains/metrics/components/traces-volume-card-view.cjs.js +1 -1
- package/dist/domains/metrics/components/traces-volume-card-view.es.js +1 -1
- package/dist/domains/traces/components/span-data-panel-view.cjs.js +1 -1
- package/dist/domains/traces/components/span-data-panel-view.es.js +1 -1
- package/dist/ee/signals/components/signal-details-page.cjs.js +1 -1
- package/dist/ee/signals/components/signal-details-page.es.js +1 -1
- package/dist/hooks/use-isomorphic-layout-effect.cjs.js +29 -0
- package/dist/hooks/use-isomorphic-layout-effect.cjs.js.map +1 -0
- package/dist/hooks/use-isomorphic-layout-effect.d.ts +2 -0
- package/dist/hooks/use-isomorphic-layout-effect.es.js +6 -0
- package/dist/hooks/use-isomorphic-layout-effect.es.js.map +1 -0
- package/dist/hooks/use-measured-auto-height.cjs.js +75 -0
- package/dist/hooks/use-measured-auto-height.cjs.js.map +1 -0
- package/dist/hooks/use-measured-auto-height.d.ts +2 -0
- package/dist/hooks/use-measured-auto-height.es.js +52 -0
- package/dist/hooks/use-measured-auto-height.es.js.map +1 -0
- package/dist/message-scroller-hooks-CdsHnth6.js +62 -0
- package/dist/message-scroller-hooks-CdsHnth6.js.map +1 -0
- package/dist/message-scroller-hooks-DdXqrmC2.cjs +98 -0
- package/dist/message-scroller-hooks-DdXqrmC2.cjs.map +1 -0
- package/dist/src/ds/components/MessageScroller/index.d.ts +2 -0
- package/dist/src/ds/components/MessageScroller/message-scroller-context.d.ts +38 -0
- package/dist/src/ds/components/MessageScroller/message-scroller-hooks.d.ts +26 -0
- package/dist/src/ds/components/MessageScroller/message-scroller.d.ts +44 -0
- package/dist/src/ds/components/Tabs/tabs-tab.d.ts +2 -1
- package/dist/src/ds/components/ThreadRail/index.d.ts +2 -0
- package/dist/src/ds/components/ThreadRail/thread-rail-turns.d.ts +11 -0
- package/dist/src/ds/components/ThreadRail/thread-rail.d.ts +12 -0
- package/dist/src/hooks/use-isomorphic-layout-effect.d.ts +2 -0
- package/dist/src/hooks/use-measured-auto-height.d.ts +8 -0
- package/dist/style.css +249 -5
- package/dist/{tabs-tab-CaZnZdY8.js → tabs-tab-1KGOybMG.js} +27 -17
- package/dist/tabs-tab-1KGOybMG.js.map +1 -0
- package/dist/{tabs-tab-BeUPTvaP.cjs → tabs-tab-DkeS2Iv0.cjs} +27 -17
- package/dist/tabs-tab-DkeS2Iv0.cjs.map +1 -0
- package/package.json +7 -7
- package/dist/tabs-tab-BeUPTvaP.cjs.map +0 -1
- package/dist/tabs-tab-CaZnZdY8.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mastra/playground-ui",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "40.0.0-alpha.
|
|
4
|
+
"version": "40.0.0-alpha.4",
|
|
5
5
|
"description": "Mastra Playground components",
|
|
6
6
|
"sideEffects": [
|
|
7
7
|
"**/*.css"
|
|
@@ -150,8 +150,8 @@
|
|
|
150
150
|
"react": ">=19.0.0",
|
|
151
151
|
"react-dom": ">=19.0.0",
|
|
152
152
|
"tailwindcss": "^4.0.0",
|
|
153
|
-
"@mastra/
|
|
154
|
-
"@mastra/
|
|
153
|
+
"@mastra/react": "1.2.3-alpha.4",
|
|
154
|
+
"@mastra/client-js": "^1.31.0-alpha.4"
|
|
155
155
|
},
|
|
156
156
|
"devDependencies": {
|
|
157
157
|
"@storybook/addon-a11y": "^10.4.1",
|
|
@@ -188,11 +188,11 @@
|
|
|
188
188
|
"vite-plugin-dts": "^4.5.4",
|
|
189
189
|
"vite-plugin-lib-inject-css": "^2.2.2",
|
|
190
190
|
"vitest": "4.1.8",
|
|
191
|
-
"@
|
|
192
|
-
"@mastra/client-js": "^1.31.0-alpha.
|
|
193
|
-
"@mastra/core": "1.50.0-alpha.3",
|
|
191
|
+
"@mastra/core": "1.50.0-alpha.4",
|
|
192
|
+
"@mastra/client-js": "^1.31.0-alpha.4",
|
|
194
193
|
"@mastra/memory": "1.22.1",
|
|
195
|
-
"@mastra/react": "1.2.3-alpha.
|
|
194
|
+
"@mastra/react": "1.2.3-alpha.4",
|
|
195
|
+
"@internal/lint": "0.0.111"
|
|
196
196
|
},
|
|
197
197
|
"homepage": "https://mastra.ai",
|
|
198
198
|
"repository": {
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tabs-tab-BeUPTvaP.cjs","sources":["../src/ds/components/Tabs/tabs-root.tsx","../src/ds/components/Tabs/tabs-list.tsx","../src/ds/components/Tabs/tabs-tab.tsx"],"sourcesContent":["import { Tabs as BaseTabs } from '@base-ui/react/tabs';\nimport { cn } from '@/lib/utils';\n\nexport type TabsRootProps<T extends string> = {\n children: React.ReactNode;\n defaultTab: T;\n value?: T;\n onValueChange?: (value: T) => void;\n className?: string;\n};\n\nexport const Tabs = <T extends string>({ children, defaultTab, value, onValueChange, className }: TabsRootProps<T>) => {\n return (\n <BaseTabs.Root\n defaultValue={defaultTab}\n value={value}\n onValueChange={onValueChange ? next => onValueChange(next as T) : undefined}\n className={cn('overflow-y-auto', className)}\n >\n {children}\n </BaseTabs.Root>\n );\n};\n","import { Tabs as BaseTabs } from '@base-ui/react/tabs';\nimport { cva } from 'class-variance-authority';\nimport type { VariantProps } from 'class-variance-authority';\nimport { cn } from '@/lib/utils';\n\nconst tabListVariants = cva('flex items-center relative text-ui-lg', {\n variants: {\n variant: {\n line: 'w-max min-w-full border-b border-border1',\n pill: 'w-fit gap-1 rounded-full bg-surface2 p-1',\n 'pill-ghost': 'w-fit gap-1 rounded-full p-1',\n },\n },\n defaultVariants: {\n variant: 'line',\n },\n});\n\ntype TabListVariantsProps = VariantProps<typeof tabListVariants>;\ntype TabListVariantValue = NonNullable<TabListVariantsProps['variant']>;\n\n/**\n * @deprecated `line` remains the omitted fallback for backward compatibility.\n * Pass `variant=\"pill\"` or `variant=\"pill-ghost\"` for new tabs.\n */\nexport type DeprecatedLineTabListVariant = Extract<TabListVariantValue, 'line'>;\n\nexport type TabListVariant = DeprecatedLineTabListVariant | Exclude<TabListVariantValue, DeprecatedLineTabListVariant>;\n\nexport type TabListProps = Omit<TabListVariantsProps, 'variant'> & {\n children: React.ReactNode;\n className?: string;\n sticky?: boolean;\n /**\n * Visual treatment for the tab list.\n *\n * Defaults to `line` only for backward compatibility. New tabs should pass\n * `variant=\"pill\"` or `variant=\"pill-ghost\"` explicitly.\n */\n variant?: TabListVariant | null;\n /**\n * Optional inline styles applied to the underlying tab list element.\n * To override the active tab indicator color, set the `--tab-indicator-color`\n * CSS variable, e.g. `style={{ '--tab-indicator-color': 'var(--accent5)' } as React.CSSProperties}`.\n */\n style?: React.CSSProperties;\n};\n\nexport const TabList = ({ children, className, variant, sticky, style }: TabListProps) => {\n const resolvedVariant = variant ?? 'line';\n\n return (\n <div className={cn('w-full overflow-x-auto', sticky && 'sticky top-0 z-10 bg-surface2')}>\n <BaseTabs.List\n data-variant={resolvedVariant}\n className={cn('group/tabs-list', tabListVariants({ variant: resolvedVariant }), className)}\n style={style}\n >\n {children}\n {resolvedVariant === 'line' && (\n <BaseTabs.Indicator\n className={cn(\n 'absolute bottom-0 left-0 bg-[var(--tab-indicator-color,var(--neutral3))]',\n 'w-[var(--active-tab-width)] h-0.5',\n 'transition-all duration-200 ease-in-out',\n )}\n style={{ transform: 'translateX(var(--active-tab-left))' }}\n />\n )}\n {(resolvedVariant === 'pill' || resolvedVariant === 'pill-ghost') && (\n <BaseTabs.Indicator\n className={cn(\n 'absolute top-1/2 left-0 z-0 rounded-full bg-[var(--tab-indicator-color,var(--surface4))]',\n 'w-[var(--active-tab-width)] h-[calc(100%-0.5rem)]',\n 'transition-all duration-200 ease-in-out',\n )}\n style={{ transform: 'translateY(-50%) translateX(var(--active-tab-left))' }}\n />\n )}\n </BaseTabs.List>\n </div>\n );\n};\n","import { Tabs as BaseTabs } from '@base-ui/react/tabs';\nimport { X } from 'lucide-react';\nimport { transitions, focusRing } from '@/ds/primitives/transitions';\nimport { cn } from '@/lib/utils';\n\nexport type TabProps = {\n children: React.ReactNode;\n value: string;\n onClick?: () => void;\n onClose?: () => void;\n disabled?: boolean;\n className?: string;\n};\n\nexport const Tab = ({ children, value, onClick, onClose, disabled, className }: TabProps) => {\n return (\n <BaseTabs.Tab\n value={value}\n disabled={disabled}\n className={cn(\n 'text-ui-md font-normal text-neutral3',\n 'whitespace-nowrap shrink-0 flex items-center justify-center gap-1.5 outline-none cursor-pointer',\n transitions.colors,\n focusRing.visible,\n 'hover:text-neutral4',\n 'data-[active]:text-neutral5',\n 'data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50 data-[disabled]:hover:text-neutral3',\n // Line variant legacy fallback — active state drawn by <Tabs.Indicator> in TabList\n 'group-data-[variant=line]/tabs-list:py-2 group-data-[variant=line]/tabs-list:px-5',\n 'group-data-[variant=line]/tabs-list:border-b-2 group-data-[variant=line]/tabs-list:border-transparent',\n // Pill variant\n 'group-data-[variant=pill]/tabs-list:relative group-data-[variant=pill]/tabs-list:z-10',\n 'group-data-[variant=pill]/tabs-list:py-1 group-data-[variant=pill]/tabs-list:px-3',\n 'group-data-[variant=pill]/tabs-list:rounded-full',\n // Pill-ghost variant (pill without list background)\n 'group-data-[variant=pill-ghost]/tabs-list:relative group-data-[variant=pill-ghost]/tabs-list:z-10',\n 'group-data-[variant=pill-ghost]/tabs-list:py-1 group-data-[variant=pill-ghost]/tabs-list:px-3',\n 'group-data-[variant=pill-ghost]/tabs-list:rounded-full',\n className,\n )}\n onClick={onClick}\n >\n {children}\n {onClose && (\n <button\n type=\"button\"\n onClick={e => {\n e.stopPropagation();\n onClose();\n }}\n className={cn('p-0.5 hover:bg-surface4 rounded', transitions.colors, 'hover:text-neutral5')}\n aria-label=\"Close tab\"\n >\n <X className=\"w-3 h-3\" />\n </button>\n )}\n </BaseTabs.Tab>\n );\n};\n"],"names":["jsx","BaseTabs","cn","cva","jsxs","transitions","focusRing","X"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tabs-tab-CaZnZdY8.js","sources":["../src/ds/components/Tabs/tabs-root.tsx","../src/ds/components/Tabs/tabs-list.tsx","../src/ds/components/Tabs/tabs-tab.tsx"],"sourcesContent":["import { Tabs as BaseTabs } from '@base-ui/react/tabs';\nimport { cn } from '@/lib/utils';\n\nexport type TabsRootProps<T extends string> = {\n children: React.ReactNode;\n defaultTab: T;\n value?: T;\n onValueChange?: (value: T) => void;\n className?: string;\n};\n\nexport const Tabs = <T extends string>({ children, defaultTab, value, onValueChange, className }: TabsRootProps<T>) => {\n return (\n <BaseTabs.Root\n defaultValue={defaultTab}\n value={value}\n onValueChange={onValueChange ? next => onValueChange(next as T) : undefined}\n className={cn('overflow-y-auto', className)}\n >\n {children}\n </BaseTabs.Root>\n );\n};\n","import { Tabs as BaseTabs } from '@base-ui/react/tabs';\nimport { cva } from 'class-variance-authority';\nimport type { VariantProps } from 'class-variance-authority';\nimport { cn } from '@/lib/utils';\n\nconst tabListVariants = cva('flex items-center relative text-ui-lg', {\n variants: {\n variant: {\n line: 'w-max min-w-full border-b border-border1',\n pill: 'w-fit gap-1 rounded-full bg-surface2 p-1',\n 'pill-ghost': 'w-fit gap-1 rounded-full p-1',\n },\n },\n defaultVariants: {\n variant: 'line',\n },\n});\n\ntype TabListVariantsProps = VariantProps<typeof tabListVariants>;\ntype TabListVariantValue = NonNullable<TabListVariantsProps['variant']>;\n\n/**\n * @deprecated `line` remains the omitted fallback for backward compatibility.\n * Pass `variant=\"pill\"` or `variant=\"pill-ghost\"` for new tabs.\n */\nexport type DeprecatedLineTabListVariant = Extract<TabListVariantValue, 'line'>;\n\nexport type TabListVariant = DeprecatedLineTabListVariant | Exclude<TabListVariantValue, DeprecatedLineTabListVariant>;\n\nexport type TabListProps = Omit<TabListVariantsProps, 'variant'> & {\n children: React.ReactNode;\n className?: string;\n sticky?: boolean;\n /**\n * Visual treatment for the tab list.\n *\n * Defaults to `line` only for backward compatibility. New tabs should pass\n * `variant=\"pill\"` or `variant=\"pill-ghost\"` explicitly.\n */\n variant?: TabListVariant | null;\n /**\n * Optional inline styles applied to the underlying tab list element.\n * To override the active tab indicator color, set the `--tab-indicator-color`\n * CSS variable, e.g. `style={{ '--tab-indicator-color': 'var(--accent5)' } as React.CSSProperties}`.\n */\n style?: React.CSSProperties;\n};\n\nexport const TabList = ({ children, className, variant, sticky, style }: TabListProps) => {\n const resolvedVariant = variant ?? 'line';\n\n return (\n <div className={cn('w-full overflow-x-auto', sticky && 'sticky top-0 z-10 bg-surface2')}>\n <BaseTabs.List\n data-variant={resolvedVariant}\n className={cn('group/tabs-list', tabListVariants({ variant: resolvedVariant }), className)}\n style={style}\n >\n {children}\n {resolvedVariant === 'line' && (\n <BaseTabs.Indicator\n className={cn(\n 'absolute bottom-0 left-0 bg-[var(--tab-indicator-color,var(--neutral3))]',\n 'w-[var(--active-tab-width)] h-0.5',\n 'transition-all duration-200 ease-in-out',\n )}\n style={{ transform: 'translateX(var(--active-tab-left))' }}\n />\n )}\n {(resolvedVariant === 'pill' || resolvedVariant === 'pill-ghost') && (\n <BaseTabs.Indicator\n className={cn(\n 'absolute top-1/2 left-0 z-0 rounded-full bg-[var(--tab-indicator-color,var(--surface4))]',\n 'w-[var(--active-tab-width)] h-[calc(100%-0.5rem)]',\n 'transition-all duration-200 ease-in-out',\n )}\n style={{ transform: 'translateY(-50%) translateX(var(--active-tab-left))' }}\n />\n )}\n </BaseTabs.List>\n </div>\n );\n};\n","import { Tabs as BaseTabs } from '@base-ui/react/tabs';\nimport { X } from 'lucide-react';\nimport { transitions, focusRing } from '@/ds/primitives/transitions';\nimport { cn } from '@/lib/utils';\n\nexport type TabProps = {\n children: React.ReactNode;\n value: string;\n onClick?: () => void;\n onClose?: () => void;\n disabled?: boolean;\n className?: string;\n};\n\nexport const Tab = ({ children, value, onClick, onClose, disabled, className }: TabProps) => {\n return (\n <BaseTabs.Tab\n value={value}\n disabled={disabled}\n className={cn(\n 'text-ui-md font-normal text-neutral3',\n 'whitespace-nowrap shrink-0 flex items-center justify-center gap-1.5 outline-none cursor-pointer',\n transitions.colors,\n focusRing.visible,\n 'hover:text-neutral4',\n 'data-[active]:text-neutral5',\n 'data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50 data-[disabled]:hover:text-neutral3',\n // Line variant legacy fallback — active state drawn by <Tabs.Indicator> in TabList\n 'group-data-[variant=line]/tabs-list:py-2 group-data-[variant=line]/tabs-list:px-5',\n 'group-data-[variant=line]/tabs-list:border-b-2 group-data-[variant=line]/tabs-list:border-transparent',\n // Pill variant\n 'group-data-[variant=pill]/tabs-list:relative group-data-[variant=pill]/tabs-list:z-10',\n 'group-data-[variant=pill]/tabs-list:py-1 group-data-[variant=pill]/tabs-list:px-3',\n 'group-data-[variant=pill]/tabs-list:rounded-full',\n // Pill-ghost variant (pill without list background)\n 'group-data-[variant=pill-ghost]/tabs-list:relative group-data-[variant=pill-ghost]/tabs-list:z-10',\n 'group-data-[variant=pill-ghost]/tabs-list:py-1 group-data-[variant=pill-ghost]/tabs-list:px-3',\n 'group-data-[variant=pill-ghost]/tabs-list:rounded-full',\n className,\n )}\n onClick={onClick}\n >\n {children}\n {onClose && (\n <button\n type=\"button\"\n onClick={e => {\n e.stopPropagation();\n onClose();\n }}\n className={cn('p-0.5 hover:bg-surface4 rounded', transitions.colors, 'hover:text-neutral5')}\n aria-label=\"Close tab\"\n >\n <X className=\"w-3 h-3\" />\n </button>\n )}\n </BaseTabs.Tab>\n );\n};\n"],"names":["BaseTabs"],"mappings":"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"}
|