@mastra/playground-ui 64.0.0-alpha.7 → 64.0.0-alpha.9

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 (75) hide show
  1. package/dist/combobox-BNlVCFgY.cjs +718 -0
  2. package/dist/combobox-BNlVCFgY.cjs.map +1 -0
  3. package/dist/combobox-Bw13EcK0.js +676 -0
  4. package/dist/combobox-Bw13EcK0.js.map +1 -0
  5. package/dist/{combobox-styles-B3jftCXY.js → combobox-styles-Dr66ofEp.js} +2 -2
  6. package/dist/{combobox-styles-B3jftCXY.js.map → combobox-styles-Dr66ofEp.js.map} +1 -1
  7. package/dist/components/Combobox.cjs.js +22 -1
  8. package/dist/components/Combobox.cjs.js.map +1 -1
  9. package/dist/components/Combobox.es.js +2 -2
  10. package/dist/components/DateTimeRangePicker.cjs.js +1 -1
  11. package/dist/components/DateTimeRangePicker.es.js +1 -1
  12. package/dist/components/FilterBar.es.js +3 -3
  13. package/dist/components/PropertyFilter.cjs.js +1 -1
  14. package/dist/components/PropertyFilter.es.js +1 -1
  15. package/dist/components/SavedViews.es.js +1 -1
  16. package/dist/components/Section.cjs.js +1 -1
  17. package/dist/components/Section.es.js +1 -1
  18. package/dist/components/SideDialog.cjs.js +1 -1
  19. package/dist/components/SideDialog.es.js +1 -1
  20. package/dist/{date-time-range-picker-B3qORFfa.cjs → date-time-range-picker-BjQVCVUM.cjs} +12 -3
  21. package/dist/date-time-range-picker-BjQVCVUM.cjs.map +1 -0
  22. package/dist/{date-time-range-picker-CmtCmIrU.js → date-time-range-picker-D-EECKzz.js} +13 -4
  23. package/dist/date-time-range-picker-D-EECKzz.js.map +1 -0
  24. package/dist/domains/datasets/components/save-as-dataset-item-dialog.cjs.js +1 -1
  25. package/dist/domains/datasets/components/save-as-dataset-item-dialog.es.js +1 -1
  26. package/dist/domains/metrics/components/date-range-selector.cjs.js +1 -1
  27. package/dist/domains/metrics/components/date-range-selector.es.js +1 -1
  28. package/dist/domains/observability/components/add-trace-mocks-to-item-dialog.cjs.js +1 -1
  29. package/dist/domains/observability/components/add-trace-mocks-to-item-dialog.es.js +1 -1
  30. package/dist/domains/scores/components/span-scoring.cjs.js +1 -1
  31. package/dist/domains/scores/components/span-scoring.es.js +1 -1
  32. package/dist/domains/traces/components/trace-columns-menu.cjs.js +1 -1
  33. package/dist/domains/traces/components/trace-columns-menu.es.js +1 -1
  34. package/dist/domains/traces/components/trace-time-range-chip.cjs.js +1 -1
  35. package/dist/domains/traces/components/trace-time-range-chip.cjs.js.map +1 -1
  36. package/dist/domains/traces/components/trace-time-range-chip.es.js +2 -2
  37. package/dist/domains/traces/components/trace-time-range-chip.es.js.map +1 -1
  38. package/dist/domains/workflows/components/workflow-combobox.cjs.js +1 -1
  39. package/dist/domains/workflows/components/workflow-combobox.es.js +1 -1
  40. package/dist/{filter-bar-chip-BAqmNIeE.js → filter-bar-chip-BarAq1S2.js} +2 -2
  41. package/dist/{filter-bar-chip-BAqmNIeE.js.map → filter-bar-chip-BarAq1S2.js.map} +1 -1
  42. package/dist/layout/tabbed-container.cjs.js +1 -1
  43. package/dist/layout/tabbed-container.es.js +1 -1
  44. package/dist/new/settings.cjs.js +1 -1
  45. package/dist/new/settings.es.js +1 -1
  46. package/dist/{section-BPhTrzbk.cjs → section-CctlZIXp.cjs} +2 -2
  47. package/dist/{section-BPhTrzbk.cjs.map → section-CctlZIXp.cjs.map} +1 -1
  48. package/dist/{section-87-fGU29.js → section-D0hKTVXt.js} +2 -2
  49. package/dist/{section-87-fGU29.js.map → section-D0hKTVXt.js.map} +1 -1
  50. package/dist/{settings-row-DdLpZXM4.cjs → settings-row-m_4gDCwS.cjs} +16 -4
  51. package/dist/settings-row-m_4gDCwS.cjs.map +1 -0
  52. package/dist/{settings-row-Cm7IBGvT.js → settings-row-yuQjwWTl.js} +16 -4
  53. package/dist/settings-row-yuQjwWTl.js.map +1 -0
  54. package/dist/{side-dialog-qfaOhtjK.cjs → side-dialog-BzULMBaH.cjs} +2 -2
  55. package/dist/{side-dialog-qfaOhtjK.cjs.map → side-dialog-BzULMBaH.cjs.map} +1 -1
  56. package/dist/{side-dialog-QTPa70zU.js → side-dialog-bm8NPDXy.js} +2 -2
  57. package/dist/{side-dialog-QTPa70zU.js.map → side-dialog-bm8NPDXy.js.map} +1 -1
  58. package/dist/src/domains/traces/components/trace-time-range-chip.d.ts +1 -1
  59. package/dist/src/ds/components/Combobox/combobox-parts.d.ts +102 -0
  60. package/dist/src/ds/components/Combobox/combobox.d.ts +17 -3
  61. package/dist/src/ds/components/Combobox/index.d.ts +1 -0
  62. package/dist/src/ds/components/DateTimeRangePicker/custom-range-editor.d.ts +3 -1
  63. package/dist/src/ds/components/DateTimeRangePicker/date-time-range-picker.d.ts +3 -1
  64. package/dist/src/ds/new/settings/index.d.ts +1 -1
  65. package/dist/src/ds/new/settings/settings-container.d.ts +5 -1
  66. package/dist/style.css +113 -1
  67. package/package.json +9 -9
  68. package/dist/combobox-DlKD-Q3M.js +0 -208
  69. package/dist/combobox-DlKD-Q3M.js.map +0 -1
  70. package/dist/combobox-VHtZQcl9.cjs +0 -229
  71. package/dist/combobox-VHtZQcl9.cjs.map +0 -1
  72. package/dist/date-time-range-picker-B3qORFfa.cjs.map +0 -1
  73. package/dist/date-time-range-picker-CmtCmIrU.js.map +0 -1
  74. package/dist/settings-row-Cm7IBGvT.js.map +0 -1
  75. package/dist/settings-row-DdLpZXM4.cjs.map +0 -1
@@ -8,7 +8,7 @@ export declare const TRACE_TIME_RANGE_FIELD_ID = "timeRange";
8
8
  */
9
9
  export declare const TRACE_TIME_RANGE_FIELD: FilterBarField;
10
10
  export declare const TRACE_TIME_RANGE_ITEM: FilterBarItem;
11
- export type TraceTimeRangeChipProps = Pick<DateTimeRangePickerProps, 'preset' | 'onPresetChange' | 'dateFrom' | 'dateTo' | 'onDateChange' | 'onDateRangeChange' | 'disabled' | 'maxRangeMs' | 'presets'>;
11
+ export type TraceTimeRangeChipProps = Pick<DateTimeRangePickerProps, 'preset' | 'onPresetChange' | 'dateFrom' | 'dateTo' | 'onDateChange' | 'onDateRangeChange' | 'disabled' | 'maxRangeMs' | 'minDate' | 'presets'>;
12
12
  /**
13
13
  * The trace list's date range rendered as a FilterBar chip: `Time <preset>`. Always
14
14
  * present and non-removable; the value segment opens the regular DateTimeRangePicker
@@ -0,0 +1,102 @@
1
+ import { Combobox as BaseCombobox } from '@base-ui/react/combobox';
2
+ import { ComboboxVariant } from './combobox-styles';
3
+ import { ButtonSize, TextButtonSize } from '../Button/Button';
4
+ import { PortalContainer } from '../../primitives/portal-container';
5
+ import * as React from 'react';
6
+ /**
7
+ * Root. Same props as Base UI's `Combobox.Root` (`items`, `value`, `onValueChange`, `multiple`,
8
+ * `autoHighlight`, `filter`, ...). Pick one of three shapes:
9
+ * - Search in the field: `ComboboxInput` + `ComboboxContent`.
10
+ * - Multiple, chips in the field: `ComboboxChips` (chips + `ComboboxChipsInput`) + `ComboboxContent`.
11
+ * - Compact trigger, search in the popup: `ComboboxTrigger` + `ComboboxContent` starting with
12
+ * `ComboboxSearch`. For small triggers (an icon, a ghost button in a toolbar).
13
+ */
14
+ declare function ComboboxRoot<Value, Multiple extends boolean | undefined = false>(props: BaseCombobox.Root.Props<Value, Multiple>): React.JSX.Element;
15
+ /**
16
+ * The selected value, for a compact `ComboboxTrigger` or a custom display. `children` can be a
17
+ * function of the value; `placeholder` shows while nothing is selected.
18
+ */
19
+ declare function ComboboxValue(props: BaseCombobox.Value.Props): React.JSX.Element;
20
+ type ComboboxTriggerProps = Omit<BaseCombobox.Trigger.Props, 'className'> & {
21
+ className?: string;
22
+ /** The Button-recipe look, like Select: `default` (field surface), `outline` or `ghost`. */
23
+ variant?: ComboboxVariant;
24
+ /** Icon sizes (`icon-*`) show only `icon` (or the chevron); `children` stay as accessible text. */
25
+ size?: ButtonSize;
26
+ /** Shown before the value, or alone at icon sizes (e.g. a filter icon), replacing the chevron there. */
27
+ icon?: React.ReactNode;
28
+ showChevron?: boolean;
29
+ };
30
+ /**
31
+ * A compact trigger that opens the list, with the search inside the popup (`ComboboxSearch`). For
32
+ * small triggers such as an icon or a ghost button; a form field uses ComboboxInput instead.
33
+ * `children` is what the trigger shows, usually `<ComboboxValue placeholder="…" />`.
34
+ */
35
+ declare function ComboboxTrigger({ className, children, variant, size, icon, showChevron, ...props }: ComboboxTriggerProps): React.JSX.Element;
36
+ /** An × that clears the value. ComboboxInput renders it with `showClear`. */
37
+ declare function ComboboxClear({ className, ...props }: BaseCombobox.Clear.Props): React.JSX.Element;
38
+ type ComboboxInputProps = Omit<BaseCombobox.Input.Props, 'size'> & {
39
+ /** The field height, from the control sizes. `md` by default. */
40
+ size?: TextButtonSize;
41
+ /** Shown before the text, e.g. the selected item's icon. */
42
+ start?: React.ReactNode;
43
+ /** The chevron button at the end. On by default. */
44
+ showTrigger?: boolean;
45
+ /** An × before the chevron that clears the value. */
46
+ showClear?: boolean;
47
+ };
48
+ /**
49
+ * The field you type in to filter, showing the selected value while it's closed. `children` render
50
+ * inside the field before the chevron (e.g. a muted "4 items" detail). The list opens at the
51
+ * field's width. Inside a `Field`, the label and errors link to it.
52
+ */
53
+ declare function ComboboxInput({ className, children, showTrigger, showClear, size, start, onFocus, ...props }: ComboboxInputProps): React.JSX.Element;
54
+ /**
55
+ * The search row at the top of the popup, for a compact `ComboboxTrigger`. The same row as today's
56
+ * Combobox: a search icon, a borderless input and a hairline under it.
57
+ */
58
+ declare function ComboboxSearch({ className, ...props }: BaseCombobox.Input.Props): React.JSX.Element;
59
+ type ComboboxContentProps = BaseCombobox.Popup.Props & Pick<BaseCombobox.Positioner.Props, 'side' | 'align' | 'sideOffset' | 'alignOffset' | 'anchor'> & {
60
+ /** Where the popup portals to. Defaults to the nearest dialog or drawer, so it stays interactive there. */
61
+ container?: PortalContainer;
62
+ };
63
+ /**
64
+ * The popup. Under a field (ComboboxInput or ComboboxChips) it opens at the field's width; under a
65
+ * compact ComboboxTrigger it takes the trigger's width, at least 11rem. Either way the width never
66
+ * follows the filtered items, so it holds still while you type; long labels truncate.
67
+ */
68
+ declare function ComboboxContent({ className, side, sideOffset, align, alignOffset, anchor, container, ...props }: ComboboxContentProps): React.JSX.Element;
69
+ /** The scrolling list. Children: a render function per item (or per group), like Base UI's List. */
70
+ declare function ComboboxList({ className, ...props }: BaseCombobox.List.Props): React.JSX.Element;
71
+ /** One option. A check shows on the right while it's selected; the hover highlight slides between items. */
72
+ declare function ComboboxItem({ className, children, ref, ...props }: BaseCombobox.Item.Props): React.JSX.Element;
73
+ /** Title over a description inside an item (shadcn's Item / ItemTitle / ItemDescription). */
74
+ declare function ComboboxItemContent({ className, ...props }: React.ComponentProps<'span'>): React.JSX.Element;
75
+ declare function ComboboxItemTitle({ className, ...props }: React.ComponentProps<'span'>): React.JSX.Element;
76
+ /** Muted, up to two lines. */
77
+ declare function ComboboxItemDescription({ className, ...props }: React.ComponentProps<'span'>): React.JSX.Element;
78
+ /** Muted text at the end of an item, e.g. its kind ("Agent"). */
79
+ declare function ComboboxItemEnd({ className, ...props }: React.ComponentProps<'span'>): React.JSX.Element;
80
+ /** A section of items. Pass the section's `items`; render them with ComboboxCollection. */
81
+ declare function ComboboxGroup(props: BaseCombobox.Group.Props): React.JSX.Element;
82
+ /** A group's heading, styled like menu section labels. */
83
+ declare function ComboboxLabel({ className, ...props }: BaseCombobox.GroupLabel.Props): React.JSX.Element;
84
+ /** Renders a group's filtered items, one render function call per item. */
85
+ declare function ComboboxCollection(props: BaseCombobox.Collection.Props): React.JSX.Element;
86
+ /** Shows its children only when the filter matches nothing. */
87
+ declare function ComboboxEmpty({ className, ...props }: BaseCombobox.Empty.Props): React.JSX.Element;
88
+ declare function ComboboxSeparator({ className, ...props }: BaseCombobox.Separator.Props): React.JSX.Element;
89
+ /**
90
+ * Multi-select field: chips for the picked items, then ComboboxChipsInput. The chips and input wrap
91
+ * inside their own area so the chevron keeps its place on the first row. While the field is one
92
+ * line it keeps the pill shape of every other field; once chips wrap it takes the Textarea corner.
93
+ */
94
+ declare function ComboboxChips({ className, children, ...props }: BaseCombobox.Chips.Props): React.JSX.Element;
95
+ /** One picked item inside ComboboxChips. The × (or Backspace in the input) removes it. */
96
+ declare function ComboboxChip({ className, children, showRemove, ...props }: BaseCombobox.Chip.Props & {
97
+ showRemove?: boolean;
98
+ }): React.JSX.Element;
99
+ /** The text input after the chips in ComboboxChips. */
100
+ declare function ComboboxChipsInput({ className, onFocus, ...props }: BaseCombobox.Input.Props): React.JSX.Element;
101
+ export type { ComboboxTriggerProps, ComboboxInputProps, ComboboxContentProps };
102
+ export { ComboboxRoot, ComboboxInput, ComboboxTrigger, ComboboxSearch, ComboboxValue, ComboboxClear, ComboboxContent, ComboboxList, ComboboxItem, ComboboxItemContent, ComboboxItemTitle, ComboboxItemDescription, ComboboxItemEnd, ComboboxGroup, ComboboxLabel, ComboboxCollection, ComboboxEmpty, ComboboxSeparator, ComboboxChips, ComboboxChip, ComboboxChipsInput, };
@@ -1,5 +1,6 @@
1
1
  import { ComboboxVariant } from './combobox-styles';
2
2
  import { ButtonSize } from '../Button/Button';
3
+ import { PortalContainer } from '../../primitives/portal-container';
3
4
  import * as React from 'react';
4
5
  export type { ComboboxVariant } from './combobox-styles';
5
6
  export type ComboboxOption = {
@@ -15,16 +16,21 @@ export type ComboboxOption = {
15
16
  type ComboboxSharedProps = {
16
17
  options: ComboboxOption[];
17
18
  placeholder?: React.ReactNode;
19
+ /** The search row's placeholder for compact triggers. A field (inside a `Field`) searches in itself and shows `placeholder`. */
18
20
  searchPlaceholder?: string;
19
21
  emptyText?: string;
20
22
  className?: string;
21
23
  disabled?: boolean;
24
+ /**
25
+ * `default` inside a `Field` is a form field you type in to search. `ghost` (and the legacy `outline`/`link`),
26
+ * or any variant outside a `Field`, is a compact trigger with the search inside the popup.
27
+ */
22
28
  variant?: ComboboxVariant;
23
- /** Icon sizes (`icon-*`) render a chevron-only trigger; pass `aria-label` to name it. */
29
+ /** Icon sizes (`icon-*`) render a chevron-only trigger with the search in the popup; pass `aria-label` to name it. */
24
30
  size?: ButtonSize;
25
31
  open?: boolean;
26
32
  onOpenChange?: (open: boolean) => void;
27
- container?: HTMLElement | ShadowRoot | null | React.RefObject<HTMLElement | ShadowRoot | null>;
33
+ container?: PortalContainer;
28
34
  id?: string;
29
35
  'aria-label'?: string;
30
36
  'aria-describedby'?: string;
@@ -33,7 +39,7 @@ type ComboboxSharedProps = {
33
39
  showChevron?: boolean;
34
40
  iconOnlyValue?: boolean;
35
41
  allowCustomValue?: boolean;
36
- /** Called with the search input text as it changes (and with `''` after a single-mode selection resets it). */
42
+ /** Called with the search text as it changes (and with `''` after a compact trigger's selection resets it). */
37
43
  onInputValueChange?: (value: string) => void;
38
44
  /** @deprecated Wrap the combobox in `<Field invalid>` with a `FieldError`. */
39
45
  error?: string;
@@ -52,4 +58,12 @@ export type ComboboxMultipleProps = ComboboxSharedProps & {
52
58
  clearLabel?: string;
53
59
  };
54
60
  export type ComboboxProps = ComboboxSingleProps | ComboboxMultipleProps;
61
+ /**
62
+ * A searchable select driven by `options`, built on the Combobox parts.
63
+ *
64
+ * Inside a `Field`, a `default` combobox searches right in the field: a text field for a single value,
65
+ * removable chips for `multiple`. Everywhere else (outside a `Field`, `ghost` and icon-size triggers,
66
+ * custom non-text placeholders) it keeps a compact trigger with the search inside the popup. For anything
67
+ * these props don't cover (groups, rich items), compose the parts directly (`ComboboxRoot`, ...).
68
+ */
55
69
  export declare function Combobox(props: ComboboxProps): React.JSX.Element;
@@ -1,3 +1,4 @@
1
1
  export * from './combobox';
2
+ export * from './combobox-parts';
2
3
  export { comboboxStyles } from './combobox-styles';
3
4
  export { Combobox as ComboboxPrimitive } from '@base-ui/react/combobox';
@@ -4,6 +4,8 @@ export interface CustomRangeEditorProps {
4
4
  disabled?: boolean;
5
5
  /** Widest range that can be applied, in milliseconds. */
6
6
  maxRangeMs?: number;
7
+ /** Earliest day a range can start on. Days before it are disabled. */
8
+ minDate?: Date;
7
9
  onApply: (from: Date | undefined, to: Date | undefined) => void;
8
10
  onShowPresets: () => void;
9
11
  }
@@ -11,4 +13,4 @@ export interface CustomRangeEditorProps {
11
13
  * The custom range popover body. It mounts each time the popover opens, so its drafts
12
14
  * start from the current range without the picker resetting them.
13
15
  */
14
- export declare function CustomRangeEditor({ dateFrom, dateTo, disabled, maxRangeMs, onApply, onShowPresets, }: CustomRangeEditorProps): import("react").JSX.Element;
16
+ export declare function CustomRangeEditor({ dateFrom, dateTo, disabled, maxRangeMs, minDate, onApply, onShowPresets, }: CustomRangeEditorProps): import("react").JSX.Element;
@@ -15,6 +15,8 @@ export interface DateTimeRangePickerProps {
15
15
  disabled?: boolean;
16
16
  /** Widest custom range that can be applied, in milliseconds. Presets are unaffected. */
17
17
  maxRangeMs?: number;
18
+ /** Earliest day a custom range can start on, e.g. the oldest data still kept. Earlier days are disabled. */
19
+ minDate?: Date;
18
20
  /** Subset of presets to show. If omitted, all presets are shown. */
19
21
  presets?: readonly DateRangePreset[];
20
22
  /** Size passed through to the trigger Button. Defaults to 'md'. */
@@ -28,4 +30,4 @@ export interface DateTimeRangePickerProps {
28
30
  disabled?: boolean;
29
31
  }) => ReactElement;
30
32
  }
31
- export declare function DateTimeRangePicker({ preset, onPresetChange, dateFrom, dateTo, onDateChange, onDateRangeChange, disabled, maxRangeMs, presets, size, renderTrigger, }: DateTimeRangePickerProps): import("react").JSX.Element;
33
+ export declare function DateTimeRangePicker({ preset, onPresetChange, dateFrom, dateTo, onDateChange, onDateRangeChange, disabled, maxRangeMs, minDate, presets, size, renderTrigger, }: DateTimeRangePickerProps): import("react").JSX.Element;
@@ -1,4 +1,4 @@
1
- export { SettingsContainer } from './settings-container';
1
+ export { SettingsContainer, type SettingsContainerProps, type SettingsContainerVariant } from './settings-container';
2
2
  export { SettingsDescription, SettingsGroup, SettingsHeader, SettingsTitle } from './settings-header';
3
3
  export { SettingsFieldsetRow, SettingsRow, type SettingsFieldsetRowProps, type SettingsRowProps } from './settings-row';
4
4
  export { SettingsLayout, type SettingsLayoutProps } from './settings-layout';
@@ -2,4 +2,8 @@ import { ComponentProps } from 'react';
2
2
  export declare function SettingsContainerLayout({ layout, className, ...props }: ComponentProps<'div'> & {
3
3
  layout: 'factory' | 'section';
4
4
  }): import("react").JSX.Element;
5
- export declare function SettingsContainer(props: ComponentProps<'div'>): import("react").JSX.Element;
5
+ export type SettingsContainerVariant = 'default' | 'inset';
6
+ export type SettingsContainerProps = ComponentProps<'div'> & {
7
+ variant?: SettingsContainerVariant;
8
+ };
9
+ export declare function SettingsContainer({ variant, className, ...props }: SettingsContainerProps): import("react").JSX.Element;
package/dist/style.css CHANGED
@@ -1986,6 +1986,11 @@
1986
1986
  height: calc(var(--spacing) * 5);
1987
1987
  }
1988
1988
 
1989
+ .size-5\.5 {
1990
+ width: calc(var(--spacing) * 5.5);
1991
+ height: calc(var(--spacing) * 5.5);
1992
+ }
1993
+
1989
1994
  .size-6 {
1990
1995
  width: calc(var(--spacing) * 6);
1991
1996
  height: calc(var(--spacing) * 6);
@@ -2163,6 +2168,10 @@
2163
2168
  height: calc(var(--spacing) * 5);
2164
2169
  }
2165
2170
 
2171
+ .h-5\.5 {
2172
+ height: calc(var(--spacing) * 5.5);
2173
+ }
2174
+
2166
2175
  .h-6 {
2167
2176
  height: calc(var(--spacing) * 6);
2168
2177
  }
@@ -2731,6 +2740,10 @@
2731
2740
  min-height: 100vh;
2732
2741
  }
2733
2742
 
2743
+ .w-\(--anchor-width\) {
2744
+ width: var(--anchor-width);
2745
+ }
2746
+
2734
2747
  .w-\(--attachment-action-width\) {
2735
2748
  width: var(--attachment-action-width);
2736
2749
  }
@@ -3155,6 +3168,10 @@
3155
3168
  width: calc(var(--sidebar-width) - 1rem);
3156
3169
  }
3157
3170
 
3171
+ .w-\[max\(11rem\,var\(--anchor-width\)\)\] {
3172
+ width: max(11rem, var(--anchor-width));
3173
+ }
3174
+
3158
3175
  .w-\[min\(24rem\,calc\(100vw-2rem\)\)\] {
3159
3176
  width: min(24rem, 100vw - 2rem);
3160
3177
  }
@@ -4301,6 +4318,10 @@
4301
4318
  gap: .75em;
4302
4319
  }
4303
4320
 
4321
+ .gap-\[3px\] {
4322
+ gap: 3px;
4323
+ }
4324
+
4304
4325
  .gap-\[6px\] {
4305
4326
  gap: 6px;
4306
4327
  }
@@ -4656,6 +4677,11 @@
4656
4677
  border-bottom-right-radius: var(--radius-3xl);
4657
4678
  }
4658
4679
 
4680
+ .rounded-r-full {
4681
+ border-top-right-radius: 3.40282e38px;
4682
+ border-bottom-right-radius: 3.40282e38px;
4683
+ }
4684
+
4659
4685
  .rounded-r-md {
4660
4686
  border-top-right-radius: var(--radius-md);
4661
4687
  border-bottom-right-radius: var(--radius-md);
@@ -6298,6 +6324,10 @@
6298
6324
  padding-right: calc(var(--spacing) * 12);
6299
6325
  }
6300
6326
 
6327
+ .pr-\[5\.5px\] {
6328
+ padding-right: 5.5px;
6329
+ }
6330
+
6301
6331
  .pb-\(--chat-gutter\) {
6302
6332
  padding-bottom: var(--chat-gutter);
6303
6333
  }
@@ -6414,6 +6444,10 @@
6414
6444
  padding-left: .9em;
6415
6445
  }
6416
6446
 
6447
+ .pl-\[3\.5px\] {
6448
+ padding-left: 3.5px;
6449
+ }
6450
+
6417
6451
  .pl-\[18px\] {
6418
6452
  padding-left: 18px;
6419
6453
  }
@@ -6422,6 +6456,10 @@
6422
6456
  padding-left: 2.75em;
6423
6457
  }
6424
6458
 
6459
+ .pl-\[calc\(0\.9em_-_4px\)\] {
6460
+ padding-left: calc(.9em - 4px);
6461
+ }
6462
+
6425
6463
  .pl-\[calc\(var\(--text-label\)\*2\.75\+1px\)\] {
6426
6464
  padding-left: calc(var(--text-label) * 2.75 + 1px);
6427
6465
  }
@@ -9460,6 +9498,14 @@
9460
9498
  .not-disabled\:hover\:text-foreground:not(:disabled):hover {
9461
9499
  color: var(--foreground);
9462
9500
  }
9501
+
9502
+ .not-data-disabled\:hover\:bg-fill:not([data-disabled]):hover {
9503
+ background-color: var(--fill);
9504
+ }
9505
+
9506
+ .not-data-disabled\:hover\:text-foreground:not([data-disabled]):hover {
9507
+ color: var(--foreground);
9508
+ }
9463
9509
  }
9464
9510
 
9465
9511
  .focus\:border-border-focus:focus {
@@ -9949,6 +9995,14 @@
9949
9995
  cursor: pointer;
9950
9996
  }
9951
9997
 
9998
+ .has-\[input\:disabled\]\:cursor-not-allowed:has(:is(input:disabled)) {
9999
+ cursor: not-allowed;
10000
+ }
10001
+
10002
+ .has-\[input\:disabled\]\:bg-field-disabled:has(:is(input:disabled)) {
10003
+ background-color: var(--field-disabled);
10004
+ }
10005
+
9952
10006
  .has-\[textarea\]\:h-auto:has(:is(textarea)) {
9953
10007
  height: auto;
9954
10008
  }
@@ -10168,7 +10222,15 @@
10168
10222
  color: var(--destructive-foreground);
10169
10223
  }
10170
10224
 
10171
- .data-highlighted\:text-foreground[data-highlighted], .data-selected\:text-foreground[data-selected], .data-sorted\:text-foreground[data-sorted], .data-\[active\]\:text-foreground[data-active] {
10225
+ .data-highlighted\:text-foreground[data-highlighted] {
10226
+ color: var(--foreground);
10227
+ }
10228
+
10229
+ .data-multiline\:rounded-xl[data-multiline] {
10230
+ border-radius: var(--radius-xl);
10231
+ }
10232
+
10233
+ .data-selected\:text-foreground[data-selected], .data-sorted\:text-foreground[data-sorted], .data-\[active\]\:text-foreground[data-active] {
10172
10234
  color: var(--foreground);
10173
10235
  }
10174
10236
 
@@ -10330,6 +10392,14 @@
10330
10392
  --tw-exit-scale: .95;
10331
10393
  }
10332
10394
 
10395
+ .data-\[current\=true\]\:rounded-xl[data-current="true"] {
10396
+ border-radius: var(--radius-xl);
10397
+ }
10398
+
10399
+ .data-\[current\=true\]\:bg-fill-subtle[data-current="true"] {
10400
+ background-color: var(--fill-subtle);
10401
+ }
10402
+
10333
10403
  .data-\[direction\=end\]\:bottom-4[data-direction="end"] {
10334
10404
  bottom: calc(var(--spacing) * 4);
10335
10405
  }
@@ -11879,6 +11949,14 @@
11879
11949
  }
11880
11950
  }
11881
11951
 
11952
+ .has-\[input\:disabled\]\:\[\&_\*\]\:cursor-not-allowed:has(:is(input:disabled)) * {
11953
+ cursor: not-allowed;
11954
+ }
11955
+
11956
+ .has-\[input\:disabled\]\:\[\&_\*\]\:text-muted-foreground:has(:is(input:disabled)) * {
11957
+ color: var(--muted-foreground);
11958
+ }
11959
+
11882
11960
  .\[\&_\*\:focus\:not\(\:focus-visible\)\]\:outline-none :focus:not(:focus-visible) {
11883
11961
  --tw-outline-style: none;
11884
11962
  outline-style: none;
@@ -12172,6 +12250,10 @@
12172
12250
  .not-disabled\:hover\:\[\&_svg\]\:text-foreground:not(:disabled):hover svg {
12173
12251
  color: var(--foreground);
12174
12252
  }
12253
+
12254
+ .not-disabled\:hover\:\[\&_svg\]\:text-muted-foreground:not(:disabled):hover svg {
12255
+ color: var(--muted-foreground);
12256
+ }
12175
12257
  }
12176
12258
 
12177
12259
  .aria-disabled\:\[\&_svg\]\:text-muted-foreground[aria-disabled="true"] svg {
@@ -12515,6 +12597,10 @@
12515
12597
  pointer-events: auto;
12516
12598
  }
12517
12599
 
12600
+ .\[\&\>\*\]\:min-h-14 > * {
12601
+ min-height: calc(var(--spacing) * 14);
12602
+ }
12603
+
12518
12604
  .\[\&\>\*\]\:max-w-full > * {
12519
12605
  max-width: 100%;
12520
12606
  }
@@ -12527,6 +12613,18 @@
12527
12613
  overflow: hidden;
12528
12614
  }
12529
12615
 
12616
+ .\[\&\>\*\]\:bg-background > * {
12617
+ background-color: var(--background);
12618
+ }
12619
+
12620
+ .\[\&\>\*\]\:px-3\.5 > * {
12621
+ padding-inline: calc(var(--spacing) * 3.5);
12622
+ }
12623
+
12624
+ .\[\&\>\*\]\:py-2\.5 > * {
12625
+ padding-block: calc(var(--spacing) * 2.5);
12626
+ }
12627
+
12530
12628
  .\[\&\>\*\]\:text-ellipsis > * {
12531
12629
  text-overflow: ellipsis;
12532
12630
  }
@@ -12555,10 +12653,20 @@
12555
12653
  flex: 1;
12556
12654
  }
12557
12655
 
12656
+ .\[\&\>\:first-child\]\:rounded-t-lg > :first-child {
12657
+ border-top-left-radius: var(--radius-lg);
12658
+ border-top-right-radius: var(--radius-lg);
12659
+ }
12660
+
12558
12661
  .\[\&\>\:last-child\]\:mb-0 > :last-child {
12559
12662
  margin-bottom: 0;
12560
12663
  }
12561
12664
 
12665
+ .\[\&\>\:last-child\]\:rounded-b-lg > :last-child {
12666
+ border-bottom-right-radius: var(--radius-lg);
12667
+ border-bottom-left-radius: var(--radius-lg);
12668
+ }
12669
+
12562
12670
  .\[\&\>\:not\(\.data-list-row\)\]\:col-span-full > :not(.data-list-row) {
12563
12671
  grid-column: 1 / -1;
12564
12672
  }
@@ -13064,6 +13172,10 @@
13064
13172
  display: none;
13065
13173
  }
13066
13174
 
13175
+ [data-slot="combobox-chip"] ~ .\[\[data-slot\=combobox-chip\]\~\&\]\:pl-1 {
13176
+ padding-left: var(--spacing);
13177
+ }
13178
+
13067
13179
  .shiki-token {
13068
13180
  color: var(--shiki-light, var(--foreground));
13069
13181
  background-color: var(--shiki-light-bg, transparent);
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@mastra/playground-ui",
3
3
  "type": "module",
4
- "version": "64.0.0-alpha.7",
4
+ "version": "64.0.0-alpha.9",
5
5
  "description": "Mastra Playground components",
6
6
  "sideEffects": [
7
7
  "**/*.css"
@@ -202,9 +202,9 @@
202
202
  "react": ">=19.0.0",
203
203
  "react-dom": ">=19.0.0",
204
204
  "tailwindcss": "^4.0.0",
205
- "@mastra/ai-sdk": "^1.11.1",
206
- "@mastra/react": "1.10.1-alpha.7",
207
- "@mastra/client-js": "^1.55.0-alpha.7"
205
+ "@mastra/client-js": "^1.55.0-alpha.9",
206
+ "@mastra/react": "1.11.0-alpha.9",
207
+ "@mastra/ai-sdk": "^1.11.1"
208
208
  },
209
209
  "devDependencies": {
210
210
  "@modelcontextprotocol/sdk": "^1.32.1",
@@ -249,13 +249,13 @@
249
249
  "vite-plugin-dts": "^4.5.4",
250
250
  "vite-plugin-lib-inject-css": "^2.2.2",
251
251
  "vitest": "4.1.11",
252
+ "@mastra/client-js": "^1.55.0-alpha.9",
252
253
  "@internal/lint": "0.0.143",
253
- "@mastra/ai-sdk": "1.11.1",
254
- "@mastra/client-js": "^1.55.0-alpha.7",
255
- "@mastra/core": "1.78.0-alpha.7",
256
254
  "@mastra/memory": "1.38.0-alpha.0",
257
- "@mastra/react": "1.10.1-alpha.7",
258
- "@mastra/schema-compat": "1.3.15-alpha.0"
255
+ "@mastra/core": "1.78.0-alpha.9",
256
+ "@mastra/schema-compat": "1.3.15-alpha.0",
257
+ "@mastra/ai-sdk": "1.11.1",
258
+ "@mastra/react": "1.11.0-alpha.9"
259
259
  },
260
260
  "homepage": "https://mastra.ai",
261
261
  "repository": {