@mastra/playground-ui 29.0.0 → 30.0.0-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 (45) hide show
  1. package/CHANGELOG.md +117 -0
  2. package/dist/index.cjs.js +288 -378
  3. package/dist/index.cjs.js.map +1 -1
  4. package/dist/index.css +110 -64
  5. package/dist/index.es.js +290 -371
  6. package/dist/index.es.js.map +1 -1
  7. package/dist/src/ds/components/Checkbox/checkbox.d.ts +18 -2
  8. package/dist/src/ds/components/DataList/ScoresDataList/scores-data-list.d.ts +6 -2
  9. package/dist/src/ds/components/DataList/TracesDataList/traces-data-list-cells.d.ts +0 -12
  10. package/dist/src/ds/components/DataList/TracesDataList/traces-data-list.d.ts +11 -6
  11. package/dist/src/ds/components/DataList/data-list-cells.d.ts +46 -3
  12. package/dist/src/ds/components/DataList/data-list-row-button.d.ts +3 -2
  13. package/dist/src/ds/components/DataList/data-list-row-link.d.ts +5 -3
  14. package/dist/src/ds/components/DataList/data-list-row.d.ts +7 -2
  15. package/dist/src/ds/components/DataList/data-list-top-cell.d.ts +24 -3
  16. package/dist/src/ds/components/DataList/data-list-top-cells.d.ts +35 -0
  17. package/dist/src/ds/components/DataList/data-list-top.d.ts +8 -1
  18. package/dist/src/ds/components/DataList/data-list.d.ts +18 -4
  19. package/dist/src/ds/components/DataList/data-list.stories.d.ts +26 -0
  20. package/dist/src/ds/components/DataList/shared.d.ts +44 -1
  21. package/dist/src/ds/components/Label/label.d.ts +1 -3
  22. package/dist/src/ds/components/LogsDataList/logs-data-list-cells.d.ts +0 -8
  23. package/dist/src/ds/components/LogsDataList/logs-data-list.d.ts +10 -5
  24. package/dist/src/ds/components/RadioGroup/radio-group.d.ts +10 -3
  25. package/dist/src/ds/components/Switch/switch.d.ts +7 -2
  26. package/dist/src/ds/components/ThemeToggle/theme-toggle.d.ts +4 -2
  27. package/dist/src/index.d.ts +0 -1
  28. package/package.json +6 -10
  29. package/dist/src/ds/components/EntryList/entry-list-entries-skeleton.d.ts +0 -6
  30. package/dist/src/ds/components/EntryList/entry-list-entries.d.ts +0 -5
  31. package/dist/src/ds/components/EntryList/entry-list-entry-col.d.ts +0 -9
  32. package/dist/src/ds/components/EntryList/entry-list-entry.d.ts +0 -10
  33. package/dist/src/ds/components/EntryList/entry-list-header.d.ts +0 -5
  34. package/dist/src/ds/components/EntryList/entry-list-message.d.ts +0 -7
  35. package/dist/src/ds/components/EntryList/entry-list-next-page-loading.d.ts +0 -8
  36. package/dist/src/ds/components/EntryList/entry-list-pagination.d.ts +0 -7
  37. package/dist/src/ds/components/EntryList/entry-list-root.d.ts +0 -5
  38. package/dist/src/ds/components/EntryList/entry-list-skeleton.d.ts +0 -2
  39. package/dist/src/ds/components/EntryList/entry-list-trim.d.ts +0 -5
  40. package/dist/src/ds/components/EntryList/entry-list.d.ts +0 -20
  41. package/dist/src/ds/components/EntryList/entry-list.stories.d.ts +0 -10
  42. package/dist/src/ds/components/EntryList/helpers.d.ts +0 -10
  43. package/dist/src/ds/components/EntryList/index.d.ts +0 -5
  44. package/dist/src/ds/components/EntryList/shared.d.ts +0 -2
  45. package/dist/src/ds/components/EntryList/types.d.ts +0 -5
package/dist/index.es.js CHANGED
@@ -14,11 +14,11 @@ import { tags } from '@lezer/highlight';
14
14
  import { draculaInit } from '@uiw/codemirror-theme-dracula';
15
15
  import ReactCodeMirror from '@uiw/react-codemirror';
16
16
  import { autocompletion } from '@codemirror/autocomplete';
17
- import { CheckIcon as CheckIcon$1, CopyIcon, Wand2, ShieldX, LogIn, Check, ChevronsUpDown, Search, X, ChevronDown, Circle, TriangleAlertIcon, SearchIcon, XIcon, TrendingUpIcon, TrendingDownIcon, EllipsisVerticalIcon, SaveIcon, Trash2Icon, LockIcon, ListFilterPlusIcon, ArrowLeftIcon, FilterIcon, PlusIcon, ChevronRightIcon, Monitor, Sun, Moon, CalendarIcon, CircleAlertIcon, InfoIcon as InfoIcon$1, ArrowRightIcon, Type, Hash, ToggleLeft, AlignLeft, Braces, List, MenuIcon, PanelRightIcon, KeyboardIcon, AlignLeftIcon, AlignJustifyIcon, ArrowUpIcon, ArrowDownIcon, ChevronsRightIcon, ChevronLeftIcon, ClockIcon, BanIcon, FileTextIcon, OctagonAlertIcon, LightbulbIcon, ChevronRight, Folder, File, ListTreeIcon, CornerDownRightIcon, AlertTriangle, CircleXIcon, ExpandIcon, ExternalLinkIcon, Link2Icon, Ban, ListX, ChevronsLeft, ChevronsRight, ChevronLeft, Text, TextSearch, EqualNot, Equal, Plus, Component, ArrowRight, ArrowLeft, LogsIcon as LogsIcon$1, EyeIcon, GaugeIcon, BrainIcon, ChevronUpIcon, ChevronDownIcon, ChevronsUpIcon, ChevronsDownIcon, FoldVerticalIcon, UnfoldVerticalIcon, ChevronsDownUpIcon, ChevronsUpDownIcon, CircleGaugeIcon, FileInputIcon, FileOutputIcon, BracesIcon, CircleSlashIcon } from 'lucide-react';
17
+ import { CheckIcon as CheckIcon$1, CopyIcon, Wand2, ShieldX, LogIn, Check, Minus, ChevronsUpDown, Search, X, ChevronDown, Circle, TriangleAlertIcon, SearchIcon, XIcon, TrendingUpIcon, TrendingDownIcon, EllipsisVerticalIcon, SaveIcon, Trash2Icon, LockIcon, ListFilterPlusIcon, ArrowLeftIcon, FilterIcon, PlusIcon, ChevronRightIcon, Monitor, Sun, Moon, CalendarIcon, CircleAlertIcon, Type, Hash, ToggleLeft, AlignLeft, Braces, List, MenuIcon, PanelRightIcon, KeyboardIcon, AlignLeftIcon, AlignJustifyIcon, ArrowUpIcon, ArrowDownIcon, ChevronsRightIcon, ChevronLeftIcon, InfoIcon as InfoIcon$1, ArrowRightIcon, ClockIcon, BanIcon, FileTextIcon, OctagonAlertIcon, LightbulbIcon, ChevronRight, Folder, File, ListTreeIcon, CornerDownRightIcon, AlertTriangle, CircleXIcon, ExpandIcon, ExternalLinkIcon, Link2Icon, Ban, ListX, ChevronsLeft, ChevronsRight, ChevronLeft, Text, TextSearch, EqualNot, Equal, Plus, Component, ArrowRight, ArrowLeft, LogsIcon as LogsIcon$1, EyeIcon, GaugeIcon, BrainIcon, ChevronUpIcon, ChevronDownIcon, ChevronsUpIcon, ChevronsDownIcon, FoldVerticalIcon, UnfoldVerticalIcon, ChevronsDownUpIcon, ChevronsUpDownIcon, CircleGaugeIcon, FileInputIcon, FileOutputIcon, BracesIcon, CircleSlashIcon } from 'lucide-react';
18
18
  import { toast as toast$1, Toaster as Toaster$1 } from 'sonner';
19
19
  import { useMastraClient } from '@mastra/react';
20
20
  import { AlertDialog as AlertDialog$1 } from '@base-ui/react/alert-dialog';
21
- import * as CheckboxPrimitive from '@radix-ui/react-checkbox';
21
+ import { Checkbox as Checkbox$1 } from '@base-ui/react/checkbox';
22
22
  import { Collapsible as Collapsible$1 } from '@base-ui/react/collapsible';
23
23
  import { Combobox as Combobox$1 } from '@base-ui/react/combobox';
24
24
  export { Combobox as ComboboxPrimitive } from '@base-ui/react/combobox';
@@ -29,15 +29,15 @@ import { Tabs as Tabs$1 } from '@base-ui/react/tabs';
29
29
  import { Menu } from '@base-ui/react/menu';
30
30
  import * as VisuallyHidden from '@radix-ui/react-visually-hidden';
31
31
  import { VisuallyHidden as VisuallyHidden$1 } from '@radix-ui/react-visually-hidden';
32
- import * as LabelPrimitive from '@radix-ui/react-label';
33
32
  import Markdown from 'react-markdown';
34
33
  import remarkGfm from 'remark-gfm';
35
34
  import { Popover as Popover$1 } from '@base-ui/react/popover';
36
- import * as RadioGroupPrimitive from '@radix-ui/react-radio-group';
35
+ import { Radio } from '@base-ui/react/radio';
36
+ import { RadioGroup as RadioGroup$1 } from '@base-ui/react/radio-group';
37
37
  import { ScrollArea as ScrollArea$1 } from '@base-ui/react/scroll-area';
38
38
  import { useDebouncedCallback } from 'use-debounce';
39
39
  import { Slider as Slider$1 } from '@base-ui/react/slider';
40
- import * as SwitchPrimitives from '@radix-ui/react-switch';
40
+ import { Switch as Switch$1 } from '@base-ui/react/switch';
41
41
  import { format, isValid, formatDate, isThisYear, isToday as isToday$1, parse } from 'date-fns';
42
42
  import { DayPicker } from 'react-day-picker';
43
43
  import * as HoverCard from '@radix-ui/react-hover-card';
@@ -6125,35 +6125,52 @@ AlertDialog.Description = AlertDialogDescription;
6125
6125
  AlertDialog.Action = AlertDialogAction;
6126
6126
  AlertDialog.Cancel = AlertDialogCancel;
6127
6127
 
6128
- const Checkbox = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
6129
- CheckboxPrimitive.Root,
6130
- {
6131
- ref,
6132
- className: cn(
6133
- "peer h-4 w-4 shrink-0 rounded-sm border border-neutral3",
6134
- "shadow-sm",
6135
- transitions.all,
6136
- "hover:border-neutral5 hover:shadow-md",
6137
- formElementFocus,
6138
- "disabled:cursor-not-allowed disabled:opacity-50 disabled:hover:border-neutral3 disabled:hover:shadow-sm",
6139
- "data-[state=checked]:bg-accent1 data-[state=checked]:border-accent1 data-[state=checked]:text-surface1",
6140
- "data-[state=checked]:shadow-glow-accent1",
6141
- className
6142
- ),
6143
- ...props,
6144
- children: /* @__PURE__ */ jsx(
6145
- CheckboxPrimitive.Indicator,
6128
+ const Checkbox = React.forwardRef(
6129
+ ({ className, checked, indeterminate, ...props }, ref) => {
6130
+ const isCheckedIndeterminate = checked === "indeterminate";
6131
+ return /* @__PURE__ */ jsx(
6132
+ Checkbox$1.Root,
6146
6133
  {
6134
+ ref,
6135
+ checked: isCheckedIndeterminate ? false : checked,
6136
+ indeterminate: indeterminate ?? isCheckedIndeterminate,
6147
6137
  className: cn(
6148
- "flex items-center justify-center text-current",
6149
- "data-[state=checked]:animate-in data-[state=checked]:zoom-in-50 data-[state=checked]:duration-150"
6138
+ "peer h-4 w-4 shrink-0 rounded-sm border border-neutral3",
6139
+ "flex items-center justify-center",
6140
+ "shadow-sm",
6141
+ transitions.all,
6142
+ "hover:border-neutral5 hover:shadow-md",
6143
+ formElementFocus,
6144
+ // Base UI's Checkbox.Root is a `<span>`, so `:disabled` never matches — target `data-disabled`.
6145
+ "data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50 data-[disabled]:hover:border-neutral3 data-[disabled]:hover:shadow-sm",
6146
+ "data-[checked]:bg-accent1 data-[checked]:border-accent1 data-[checked]:text-surface1",
6147
+ "data-[indeterminate]:bg-accent1 data-[indeterminate]:border-accent1 data-[indeterminate]:text-surface1",
6148
+ "data-[checked]:shadow-glow-accent1 data-[indeterminate]:shadow-glow-accent1",
6149
+ className
6150
6150
  ),
6151
- children: /* @__PURE__ */ jsx(Check, { className: "h-3.5 w-3.5 stroke-3" })
6151
+ ...props,
6152
+ children: /* @__PURE__ */ jsx(
6153
+ Checkbox$1.Indicator,
6154
+ {
6155
+ className: cn(
6156
+ "group/checkbox-indicator flex items-center justify-center text-current",
6157
+ "data-[checked]:animate-in data-[checked]:zoom-in-50 data-[checked]:duration-150",
6158
+ "data-[indeterminate]:animate-in data-[indeterminate]:zoom-in-50 data-[indeterminate]:duration-150"
6159
+ ),
6160
+ children: /* @__PURE__ */ jsx(CheckboxIndicatorIcon, {})
6161
+ }
6162
+ )
6152
6163
  }
6153
- )
6164
+ );
6154
6165
  }
6155
- ));
6156
- Checkbox.displayName = CheckboxPrimitive.Root.displayName;
6166
+ );
6167
+ Checkbox.displayName = "Checkbox";
6168
+ function CheckboxIndicatorIcon() {
6169
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
6170
+ /* @__PURE__ */ jsx(Check, { className: "h-3.5 w-3.5 stroke-3 group-data-[indeterminate]/checkbox-indicator:hidden" }),
6171
+ /* @__PURE__ */ jsx(Minus, { className: "hidden h-3.5 w-3.5 stroke-3 group-data-[indeterminate]/checkbox-indicator:block" })
6172
+ ] });
6173
+ }
6157
6174
 
6158
6175
  const Collapsible = Collapsible$1.Root;
6159
6176
  const CollapsibleTrigger = React__default.forwardRef(
@@ -7666,8 +7683,10 @@ const Kbd = ({ children, theme = "dark", className }) => {
7666
7683
  };
7667
7684
 
7668
7685
  const labelVariants = cva("text-sm leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70");
7669
- const Label = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(LabelPrimitive.Root, { ref, className: cn(labelVariants(), className), ...props }));
7670
- Label.displayName = LabelPrimitive.Root.displayName;
7686
+ const Label = React.forwardRef(
7687
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx("label", { ref, className: cn(labelVariants(), className), ...props })
7688
+ );
7689
+ Label.displayName = "Label";
7671
7690
 
7672
7691
  function MarkdownRenderer({ children }) {
7673
7692
  const processedText = children.replace(/\\n/g, "\n");
@@ -8181,31 +8200,37 @@ const ButtonsGroupText = React.forwardRef(
8181
8200
  ButtonsGroupText.displayName = "ButtonsGroupText";
8182
8201
 
8183
8202
  const RadioGroup = React.forwardRef(({ className, ...props }, ref) => {
8184
- return /* @__PURE__ */ jsx(RadioGroupPrimitive.Root, { className: cn("grid gap-2", className), ...props, ref });
8203
+ return /* @__PURE__ */ jsx(RadioGroup$1, { ref, className: cn("grid gap-2", className), ...props });
8185
8204
  });
8186
- RadioGroup.displayName = RadioGroupPrimitive.Root.displayName;
8205
+ RadioGroup.displayName = "RadioGroup";
8187
8206
  const RadioGroupItem = React.forwardRef(({ className, ...props }, ref) => {
8188
8207
  return /* @__PURE__ */ jsx(
8189
- RadioGroupPrimitive.Item,
8208
+ Radio.Root,
8190
8209
  {
8191
8210
  ref,
8192
8211
  className: cn(
8212
+ // Base UI's Radio.Root renders a `<span>` (inline) — unlike Radix's
8213
+ // `<button>`. `flex` + `shrink-0` make the sizing/centering classes
8214
+ // take effect and keep the control square inside flex rows.
8215
+ "flex shrink-0 items-center justify-center",
8193
8216
  "aspect-square h-4 w-4 rounded-full border border-neutral3 text-neutral6",
8194
8217
  "shadow-sm",
8195
8218
  transitions.all,
8196
8219
  "hover:border-neutral5 hover:shadow-md",
8197
8220
  formElementFocus,
8198
- "disabled:cursor-not-allowed disabled:opacity-50 disabled:hover:border-neutral3 disabled:hover:shadow-sm",
8199
- "data-[state=checked]:border-accent1 data-[state=checked]:shadow-glow-accent1",
8221
+ // Base UI's Radio.Root is a `<span>`, so `:disabled` never matches — target `data-disabled`.
8222
+ "data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50 data-[disabled]:hover:border-neutral3 data-[disabled]:hover:shadow-sm",
8223
+ // Base UI exposes `data-checked`/`data-unchecked` instead of Radix's `data-state`.
8224
+ "data-[checked]:border-accent1 data-[checked]:shadow-glow-accent1",
8200
8225
  className
8201
8226
  ),
8202
8227
  ...props,
8203
8228
  children: /* @__PURE__ */ jsx(
8204
- RadioGroupPrimitive.Indicator,
8229
+ Radio.Indicator,
8205
8230
  {
8206
8231
  className: cn(
8207
8232
  "flex items-center justify-center",
8208
- "data-[state=checked]:animate-in data-[state=checked]:zoom-in-50 data-[state=checked]:duration-150"
8233
+ "data-[checked]:animate-in data-[checked]:zoom-in-50 data-[checked]:duration-150"
8209
8234
  ),
8210
8235
  children: /* @__PURE__ */ jsx(Circle, { className: "h-2 w-2 fill-accent1 text-accent1" })
8211
8236
  }
@@ -8213,7 +8238,7 @@ const RadioGroupItem = React.forwardRef(({ className, ...props }, ref) => {
8213
8238
  }
8214
8239
  );
8215
8240
  });
8216
- RadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName;
8241
+ RadioGroupItem.displayName = "RadioGroupItem";
8217
8242
 
8218
8243
  function PickMultiPanel({ field, tokens, onChange }) {
8219
8244
  const [query, setQuery] = useState("");
@@ -9222,35 +9247,43 @@ function BrandLoader({ className, size = "md", "aria-label": ariaLabel = "Loadin
9222
9247
  );
9223
9248
  }
9224
9249
 
9225
- const Switch = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
9226
- SwitchPrimitives.Root,
9227
- {
9228
- className: cn(
9229
- "peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent",
9230
- transitions.all,
9231
- formElementFocus,
9232
- "hover:brightness-110",
9233
- "disabled:cursor-not-allowed disabled:opacity-50 disabled:hover:brightness-100",
9234
- "data-[state=checked]:bg-accent1 data-[state=checked]:shadow-glow-accent1",
9235
- "data-[state=unchecked]:bg-neutral2",
9236
- className
9237
- ),
9238
- ...props,
9239
- ref,
9240
- children: /* @__PURE__ */ jsx(
9241
- SwitchPrimitives.Thumb,
9242
- {
9243
- className: cn(
9244
- "pointer-events-none block h-4 w-4 rounded-full bg-white shadow-md",
9245
- "transition-all duration-normal ease-out-custom",
9246
- "data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0",
9247
- "data-[state=checked]:shadow-lg"
9250
+ const Switch = React.forwardRef(({ className, asChild, children, ...props }, ref) => {
9251
+ const renderProps = asChild && React.isValidElement(children) ? { render: children } : { render: /* @__PURE__ */ jsx("button", { type: "button" }), nativeButton: true };
9252
+ return /* @__PURE__ */ jsxs(
9253
+ Switch$1.Root,
9254
+ {
9255
+ ref,
9256
+ "data-slot": "switch",
9257
+ className: cn(
9258
+ "peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent",
9259
+ transitions.all,
9260
+ formElementFocus,
9261
+ "hover:brightness-110",
9262
+ "disabled:cursor-not-allowed disabled:opacity-50 disabled:hover:brightness-100",
9263
+ "data-[checked]:bg-accent1 data-[checked]:shadow-glow-accent1",
9264
+ "data-[unchecked]:bg-neutral2",
9265
+ className
9266
+ ),
9267
+ ...renderProps,
9268
+ ...props,
9269
+ children: [
9270
+ asChild ? void 0 : children,
9271
+ /* @__PURE__ */ jsx(
9272
+ Switch$1.Thumb,
9273
+ {
9274
+ className: cn(
9275
+ "pointer-events-none block h-4 w-4 rounded-full bg-white shadow-md",
9276
+ "transition-all duration-normal ease-out-custom",
9277
+ "data-[checked]:translate-x-4 data-[unchecked]:translate-x-0",
9278
+ "data-[checked]:shadow-lg"
9279
+ )
9280
+ }
9248
9281
  )
9249
- }
9250
- )
9251
- }
9252
- ));
9253
- Switch.displayName = SwitchPrimitives.Root.displayName;
9282
+ ]
9283
+ }
9284
+ );
9285
+ });
9286
+ Switch.displayName = "Switch";
9254
9287
 
9255
9288
  const DEFAULT_OPTIONS = [
9256
9289
  { value: "system", label: "System", icon: /* @__PURE__ */ jsx(Monitor, {}) },
@@ -9281,12 +9314,11 @@ const ThemeToggle = ({
9281
9314
  );
9282
9315
  const indicatorOffset = activeIndex * (ITEM_WIDTH + ITEM_GAP);
9283
9316
  return /* @__PURE__ */ jsxs(
9284
- RadioGroupPrimitive.Root,
9317
+ RadioGroup$1,
9285
9318
  {
9286
9319
  ...rest,
9287
9320
  value: effectiveCurrent,
9288
9321
  onValueChange: handleChange,
9289
- orientation: "horizontal",
9290
9322
  "aria-label": ariaLabel,
9291
9323
  className: cn(
9292
9324
  "relative inline-flex w-fit items-center gap-0.5 rounded-full border border-border1 bg-surface3 p-0.5",
@@ -9305,14 +9337,15 @@ const ThemeToggle = ({
9305
9337
  }
9306
9338
  ),
9307
9339
  options.map((option) => /* @__PURE__ */ jsx(
9308
- RadioGroupPrimitive.Item,
9340
+ Radio.Root,
9309
9341
  {
9310
9342
  value: option.value,
9311
9343
  "aria-label": option.label,
9312
9344
  style: { width: ITEM_WIDTH },
9313
9345
  className: cn(
9314
9346
  "relative inline-flex h-6 cursor-pointer items-center justify-center rounded-full",
9315
- "[&_svg]:size-3.5 text-icon3 hover:text-icon6 data-[state=checked]:text-icon6",
9347
+ // Base UI exposes `data-checked` instead of Radix's `data-state="checked"`.
9348
+ "[&_svg]:size-3.5 text-icon3 hover:text-icon6 data-[checked]:text-icon6",
9316
9349
  "focus-visible:outline-hidden",
9317
9350
  "active:scale-90 motion-reduce:transition-none",
9318
9351
  transitions.colors,
@@ -9869,221 +9902,6 @@ const DefaultTrigger = React.forwardRef(
9869
9902
  }
9870
9903
  );
9871
9904
 
9872
- function EntryListEntries({ children }) {
9873
- return /* @__PURE__ */ jsx("ul", { className: "grid bg-surface3 overflow-y-auto", children });
9874
- }
9875
-
9876
- function getColumnTemplate(columns) {
9877
- if (!columns || columns.length === 0) {
9878
- return "";
9879
- }
9880
- return columns?.map((column) => {
9881
- return column.size;
9882
- }).join(" ");
9883
- }
9884
-
9885
- function EntryListEntry({ entry, isSelected, onClick, children, columns }) {
9886
- const handleClick = () => {
9887
- onClick?.(entry?.id);
9888
- };
9889
- return /* @__PURE__ */ jsx(
9890
- "li",
9891
- {
9892
- className: cn(
9893
- "border-t text-neutral5 border-border1 last:border-b-0 text-ui-md",
9894
- "[&:last-child>button]:rounded-b-lg",
9895
- transitions.colors,
9896
- {
9897
- "bg-accent1Dark": isSelected
9898
- }
9899
- ),
9900
- children: /* @__PURE__ */ jsx(
9901
- "button",
9902
- {
9903
- onClick: handleClick,
9904
- className: cn("grid w-full px-6 gap-6 text-left items-center min-h-12", transitions.colors, focusRing.visible, {
9905
- // hover effect only not for skeleton and selected
9906
- "hover:bg-surface4": entry && !isSelected
9907
- }),
9908
- style: { gridTemplateColumns: getColumnTemplate(columns) },
9909
- disabled: !entry,
9910
- children
9911
- }
9912
- )
9913
- }
9914
- );
9915
- }
9916
-
9917
- function EntryListEntryTextCol({ children, isLoading }) {
9918
- return /* @__PURE__ */ jsx("div", { className: "text-neutral4 text-ui-md truncate ", children: isLoading ? /* @__PURE__ */ jsx("div", { className: "bg-surface4 rounded-md animate-pulse text-transparent h-4 select-none" }) : children });
9919
- }
9920
- function EntryListEntryStatusCol({ status }) {
9921
- return /* @__PURE__ */ jsxs("div", { className: cn("flex justify-center items-center w-full relative"), children: [
9922
- status ? /* @__PURE__ */ jsx(
9923
- "div",
9924
- {
9925
- className: cn("w-[0.6rem] h-[0.6rem] rounded-full", {
9926
- "bg-green-600": status === "success",
9927
- "bg-red-700": status === "failed"
9928
- })
9929
- }
9930
- ) : /* @__PURE__ */ jsx("div", { className: "text-neutral2 text-ui-sm leading-none", children: "-" }),
9931
- /* @__PURE__ */ jsxs(VisuallyHidden$1, { children: [
9932
- "Status: ",
9933
- status ? status : "not provided"
9934
- ] })
9935
- ] });
9936
- }
9937
-
9938
- function EntryListHeader({ columns }) {
9939
- return /* @__PURE__ */ jsx("div", { className: cn("sticky top-0 bg-surface4 z-10 rounded-t-lg px-6"), children: /* @__PURE__ */ jsx(
9940
- "div",
9941
- {
9942
- className: cn("grid gap-6 text-left uppercase py-3 text-neutral3 text-ui-sm"),
9943
- style: { gridTemplateColumns: getColumnTemplate(columns) },
9944
- children: columns?.map((col) => /* @__PURE__ */ jsx("span", { children: col.label || col.name }, col.name))
9945
- }
9946
- ) });
9947
- }
9948
-
9949
- function EntryListMessage({ children, message, className, type }) {
9950
- if (!children && !message) {
9951
- return null;
9952
- }
9953
- return /* @__PURE__ */ jsx("div", { className: cn("grid border-t border-border1", className), children: message ? /* @__PURE__ */ jsxs(
9954
- "p",
9955
- {
9956
- className: cn(
9957
- "text-neutral3 text-ui-md text-center grid p-8 justify-center justify-items-center gap-2",
9958
- "[&>svg]:w-[1.5em] [&>svg]:h-[1.5em] [&>svg]:opacity-75",
9959
- {
9960
- "[&>svg]:text-red-500": type === "error"
9961
- }
9962
- ),
9963
- children: [
9964
- type === "error" ? /* @__PURE__ */ jsx(TriangleAlertIcon, {}) : /* @__PURE__ */ jsx(InfoIcon$1, {}),
9965
- " ",
9966
- message
9967
- ]
9968
- }
9969
- ) : children });
9970
- }
9971
-
9972
- function EntryListNextPageLoading({
9973
- isLoading,
9974
- hasMore,
9975
- setEndOfListElement,
9976
- loadingText = "Loading more data...",
9977
- noMoreDataText = "No more data to load"
9978
- }) {
9979
- if (!setEndOfListElement) {
9980
- return null;
9981
- }
9982
- return /* @__PURE__ */ jsxs("div", { ref: setEndOfListElement, className: "text-ui-md text-neutral3 opacity-50 flex mt-8 justify-center", children: [
9983
- isLoading && loadingText,
9984
- !hasMore && !isLoading && noMoreDataText
9985
- ] });
9986
- }
9987
-
9988
- function EntryListPagination({ currentPage, hasMore, onNextPage, onPrevPage }) {
9989
- const showNavigation = typeof currentPage === "number" && currentPage > 0 || hasMore;
9990
- return /* @__PURE__ */ jsxs("div", { className: cn("flex pt-6 items-center justify-center text-neutral3 text-ui-md gap-8"), children: [
9991
- /* @__PURE__ */ jsxs("span", { children: [
9992
- "Page ",
9993
- /* @__PURE__ */ jsx("b", { children: currentPage ? currentPage + 1 : "1" })
9994
- ] }),
9995
- showNavigation && /* @__PURE__ */ jsxs(
9996
- "div",
9997
- {
9998
- className: cn(
9999
- "flex gap-4",
10000
- "[&>button]:flex [&>button]:items-center [&>button]:gap-2 [&>button]:text-neutral4 [&>button:hover]:text-neutral5 [&>button]:transition-colors [&>button]:border [&>button]:border-border1 [&>button]:p-1 [&>button]:px-2 [&>button]:rounded-md",
10001
- "[&_svg]:w-[1em] [&_svg]:h-[1em] [&_svg]:text-neutral3"
10002
- ),
10003
- children: [
10004
- typeof currentPage === "number" && currentPage > 0 && /* @__PURE__ */ jsxs("button", { onClick: onPrevPage, children: [
10005
- /* @__PURE__ */ jsx(ArrowLeftIcon, {}),
10006
- "Previous"
10007
- ] }),
10008
- hasMore && /* @__PURE__ */ jsxs("button", { onClick: onNextPage, children: [
10009
- "Next",
10010
- /* @__PURE__ */ jsx(ArrowRightIcon, {})
10011
- ] })
10012
- ]
10013
- }
10014
- )
10015
- ] });
10016
- }
10017
-
10018
- function EntryListRoot({ children }) {
10019
- return /* @__PURE__ */ jsx("div", { className: "grid", children });
10020
- }
10021
-
10022
- function EntryListTrim({ children }) {
10023
- return /* @__PURE__ */ jsx("div", { className: cn("rounded-lg border border-border1 overflow-clip"), children });
10024
- }
10025
-
10026
- const EntryList = Object.assign(EntryListRoot, {
10027
- Header: EntryListHeader,
10028
- Trim: EntryListTrim,
10029
- Entries: EntryListEntries,
10030
- Entry: EntryListEntry,
10031
- Message: EntryListMessage,
10032
- NextPageLoading: EntryListNextPageLoading,
10033
- Pagination: EntryListPagination,
10034
- EntryText: EntryListEntryTextCol,
10035
- EntryStatus: EntryListEntryStatusCol
10036
- });
10037
-
10038
- const widths$3 = ["75%", "50%", "65%", "90%", "60%", "80%"];
10039
- function EntryListEntriesSkeleton({ columns, numberOfRows = 3 }) {
10040
- const getPseudoRandomWidth = (rowIdx, colIdx) => {
10041
- const index = (rowIdx + colIdx + (columns?.length || 0) + (numberOfRows || 0)) % widths$3.length;
10042
- return widths$3[index];
10043
- };
10044
- return /* @__PURE__ */ jsx(EntryListEntries, { children: Array.from({ length: numberOfRows }).map((_, rowIdx) => /* @__PURE__ */ jsx(EntryListEntry, { columns, children: (columns || []).map((col, colIdx) => {
10045
- const key = `${col.name}-${colIdx}`;
10046
- return /* @__PURE__ */ jsx(
10047
- "div",
10048
- {
10049
- className: "bg-surface4 rounded-md animate-pulse text-transparent h-4 select-none",
10050
- style: { width: `${getPseudoRandomWidth(rowIdx, colIdx)}` }
10051
- },
10052
- key
10053
- );
10054
- }) }, rowIdx)) });
10055
- }
10056
-
10057
- function EntryListSkeleton({ columns, numberOfRows }) {
10058
- return /* @__PURE__ */ jsx(EntryList, { children: /* @__PURE__ */ jsxs(EntryListTrim, { children: [
10059
- /* @__PURE__ */ jsx(EntryListHeader, { columns }),
10060
- /* @__PURE__ */ jsx(EntryListEntriesSkeleton, { columns, numberOfRows })
10061
- ] }) });
10062
- }
10063
-
10064
- function getToNextEntryFn({ entries, id, update }) {
10065
- const currentIndex = entries.findIndex((entry) => entry.id === id);
10066
- const thereIsNextItem = currentIndex < entries.length - 1;
10067
- if (thereIsNextItem) {
10068
- return () => {
10069
- const nextItem = entries[currentIndex + 1];
10070
- update(nextItem.id);
10071
- };
10072
- }
10073
- return void 0;
10074
- }
10075
- function getToPreviousEntryFn({ entries, id, update }) {
10076
- const currentIndex = entries.findIndex((entry) => entry.id === id);
10077
- const thereIsPreviousItem = currentIndex > 0;
10078
- if (thereIsPreviousItem) {
10079
- return () => {
10080
- const previousItem = entries[currentIndex - 1];
10081
- update(previousItem.id);
10082
- };
10083
- }
10084
- return void 0;
10085
- }
10086
-
10087
9905
  const JSONSchemaFormContext = React.createContext(null);
10088
9906
  function JSONSchemaFormProvider({
10089
9907
  children,
@@ -13122,15 +12940,17 @@ function SelectDataFilter({
13122
12940
  ] });
13123
12941
  }
13124
12942
 
13125
- function DataListCell({ children, className, height = "default" }) {
12943
+ function DataListCell({ children, className, height = "default", as, ...rest }) {
12944
+ const Component = as || "span";
13126
12945
  return /* @__PURE__ */ jsx(
13127
- "span",
12946
+ Component,
13128
12947
  {
13129
12948
  className: cn(
13130
12949
  "relative grid items-center text-ui-md whitespace-nowrap text-neutral3",
13131
- height === "compact" ? "py-2" : "py-4",
12950
+ height === "compact" ? "py-2" : "py-3",
13132
12951
  className
13133
12952
  ),
12953
+ ...rest,
13134
12954
  children
13135
12955
  }
13136
12956
  );
@@ -13144,6 +12964,58 @@ function DataListNameCell({ children, className }) {
13144
12964
  function DataListDescriptionCell({ children, className }) {
13145
12965
  return /* @__PURE__ */ jsx(DataListCell, { className: cn("text-neutral2", className), children: /* @__PURE__ */ jsx("span", { className: "truncate", children }) });
13146
12966
  }
12967
+ function getShortId(id) {
12968
+ if (!id) return "";
12969
+ return id.length > 8 ? id.slice(0, 8) : id;
12970
+ }
12971
+ function DataListIdCell({ id }) {
12972
+ return /* @__PURE__ */ jsx(DataListCell, { height: "compact", className: "text-ui-smd font-mono text-neutral3", children: getShortId(id) });
12973
+ }
12974
+ function DataListSelectCell({ checked, onToggle, ...rest }) {
12975
+ return /* @__PURE__ */ jsx(
12976
+ DataListCell,
12977
+ {
12978
+ as: "label",
12979
+ height: "compact",
12980
+ className: "cursor-pointer justify-items-center rounded-lg transition-colors duration-200 hover:bg-surface4 px-4",
12981
+ onClick: (e) => e.stopPropagation(),
12982
+ children: /* @__PURE__ */ jsx(
12983
+ Checkbox,
12984
+ {
12985
+ checked,
12986
+ onCheckedChange: () => {
12987
+ },
12988
+ onClick: (e) => {
12989
+ e.stopPropagation();
12990
+ onToggle(e.shiftKey);
12991
+ },
12992
+ "aria-label": rest["aria-label"]
12993
+ }
12994
+ )
12995
+ }
12996
+ );
12997
+ }
12998
+ function DataListMonoCell({ children, className, height = "compact" }) {
12999
+ return /* @__PURE__ */ jsx(DataListCell, { height, className: "min-w-0", children: /* @__PURE__ */ jsx("span", { className: cn("block text-ui-smd font-mono text-neutral3 truncate", className), children }) });
13000
+ }
13001
+ function toDate$2(value) {
13002
+ const date = value instanceof Date ? value : new Date(value);
13003
+ return isNaN(date.getTime()) ? null : date;
13004
+ }
13005
+ function DataListDateCell({ timestamp }) {
13006
+ const date = toDate$2(timestamp);
13007
+ return /* @__PURE__ */ jsx(DataListCell, { height: "compact", className: "text-ui-smd text-neutral2", children: date ? isToday$1(date) ? "Today" : format(date, "MMM dd") : "-" });
13008
+ }
13009
+ function DataListTimeCell({ timestamp }) {
13010
+ const date = toDate$2(timestamp);
13011
+ return /* @__PURE__ */ jsx(DataListCell, { height: "compact", className: "text-ui-smd font-mono text-neutral3 flex", children: date ? /* @__PURE__ */ jsxs(Fragment, { children: [
13012
+ format(date, "HH:mm:ss"),
13013
+ /* @__PURE__ */ jsxs("span", { className: "text-neutral2", children: [
13014
+ ".",
13015
+ String(date.getMilliseconds()).padStart(3, "0")
13016
+ ] })
13017
+ ] }) : "-" });
13018
+ }
13147
13019
 
13148
13020
  function DataListNextPageLoading({
13149
13021
  isLoading,
@@ -13216,30 +13088,80 @@ function DataListRoot({ children, columns, className, scrollRef }) {
13216
13088
  );
13217
13089
  }
13218
13090
 
13219
- const dataListRowStyles = [
13220
- "mx-1 data-list-row grid grid-cols-subgrid gap-10 col-span-full px-5 outline-none cursor-pointer border-y border-b-border1 border-t-transparent",
13221
- "hover:bg-surface4 hover:border-transparent focus-visible:bg-surface4 focus-visible:border-transparent focus-visible:ring-1 focus-visible:ring-inset focus-visible:ring-accent1",
13091
+ const dataListRowOuterStyles = [
13092
+ "data-list-row col-span-full border-y border-b-border1 border-t-transparent",
13222
13093
  "[.data-list-row:hover+&]:border-t-transparent [.data-list-row:focus-visible+&]:border-t-transparent",
13223
13094
  "[.data-list-subheader+&]:border-t-transparent",
13224
13095
  "[&:has(+.data-list-subheader)]:border-b-transparent",
13225
13096
  "[&:not(:has(~.data-list-row))]:border-b-transparent",
13226
13097
  "transition-colors duration-200 rounded-lg"
13227
13098
  ];
13099
+ const dataListRowStyles = [
13100
+ "mx-1 grid grid-cols-subgrid gap-8 px-5 outline-none cursor-pointer",
13101
+ "hover:bg-surface4 hover:border-transparent focus-visible:bg-surface4 focus-visible:border-transparent focus-visible:ring-1 focus-visible:ring-inset focus-visible:ring-accent1",
13102
+ ...dataListRowOuterStyles
13103
+ ];
13228
13104
 
13229
13105
  const DataListRow = forwardRef(({ children, className, ...rest }, ref) => {
13230
- return /* @__PURE__ */ jsx("div", { ref, className: cn(...dataListRowStyles, className), ...rest, children });
13106
+ return /* @__PURE__ */ jsx("div", { ref, className: cn("grid grid-cols-subgrid gap-0 mx-1", ...dataListRowOuterStyles, className), ...rest, children });
13231
13107
  });
13232
13108
  DataListRow.displayName = "DataListRow";
13233
13109
 
13234
13110
  const DataListRowButton = forwardRef(
13235
- ({ children, className, type = "button", ...rest }, ref) => {
13236
- return /* @__PURE__ */ jsx("button", { ref, type, className: cn(...dataListRowStyles, "text-left", className), ...rest, children });
13111
+ ({ children, className, type = "button", flushLeft, flushRight, colStart, colEnd, featured, style, ...rest }, ref) => {
13112
+ const hasColumnOverride = colStart !== void 0 || colEnd !== void 0;
13113
+ const resolvedStyle = hasColumnOverride ? { ...style, gridColumn: `${colStart ?? 1} / ${colEnd ?? -1}` } : style;
13114
+ return /* @__PURE__ */ jsx(
13115
+ "button",
13116
+ {
13117
+ ref,
13118
+ type,
13119
+ className: cn(
13120
+ ...dataListRowStyles,
13121
+ "text-left",
13122
+ flushLeft && "ml-0!",
13123
+ flushRight && "mr-0!",
13124
+ featured && "bg-surface4",
13125
+ className
13126
+ ),
13127
+ style: resolvedStyle,
13128
+ ...rest,
13129
+ children
13130
+ }
13131
+ );
13237
13132
  }
13238
13133
  );
13239
13134
  DataListRowButton.displayName = "DataListRowButton";
13240
13135
 
13241
- function DataListRowLink({ children, to, className, LinkComponent: Link }) {
13242
- return /* @__PURE__ */ jsx(Link, { href: to, className: cn(...dataListRowStyles, className), children });
13136
+ function DataListRowLink({
13137
+ children,
13138
+ to,
13139
+ className,
13140
+ style,
13141
+ LinkComponent: Link,
13142
+ flushLeft,
13143
+ flushRight,
13144
+ colStart,
13145
+ colEnd,
13146
+ featured
13147
+ }) {
13148
+ const hasColumnOverride = colStart !== void 0 || colEnd !== void 0;
13149
+ const resolvedStyle = hasColumnOverride ? { ...style, gridColumn: `${colStart ?? 1} / ${colEnd ?? -1}` } : style;
13150
+ return /* @__PURE__ */ jsx(
13151
+ Link,
13152
+ {
13153
+ href: to,
13154
+ className: cn(
13155
+ ...dataListRowStyles,
13156
+ flushLeft && "ml-0!",
13157
+ flushRight && "mr-0!",
13158
+ featured && "bg-surface4",
13159
+ className
13160
+ ),
13161
+ style: resolvedStyle,
13162
+ children
13163
+ }
13164
+ );
13243
13165
  }
13244
13166
 
13245
13167
  function DataListSpacer({ height }) {
@@ -13270,12 +13192,13 @@ function DataListSubHeading({ children, className }) {
13270
13192
  return /* @__PURE__ */ jsx("span", { className: cn("text-ui-sm text-neutral2 font-normal", className), children });
13271
13193
  }
13272
13194
 
13273
- function DataListTop({ children, className }) {
13195
+ function DataListTop({ children, className, hasLeadingCell }) {
13274
13196
  return /* @__PURE__ */ jsx(
13275
13197
  "div",
13276
13198
  {
13277
13199
  className: cn(
13278
- "grid grid-cols-subgrid gap-6 lg:gap-8 xl:gap-10 2xl:gap-12 3xl:gap-14 col-span-full border-b border-border1 px-4 bg-surface2 sticky top-0 z-10",
13200
+ "mx-1 grid grid-cols-subgrid gap-8 col-span-full border-b border-border1 px-5 bg-surface2 sticky top-0 z-10",
13201
+ hasLeadingCell && "gap-0 pl-0!",
13279
13202
  className
13280
13203
  ),
13281
13204
  children
@@ -13283,19 +13206,23 @@ function DataListTop({ children, className }) {
13283
13206
  );
13284
13207
  }
13285
13208
 
13286
- const DataListTopCell = forwardRef(({ children, className }, ref) => {
13287
- return /* @__PURE__ */ jsx(
13288
- "span",
13289
- {
13290
- ref,
13291
- className: cn(
13292
- "h-8 py-1 flex items-center uppercase whitespace-nowrap text-neutral2 tracking-widest text-ui-xs",
13293
- className
13294
- ),
13295
- children
13296
- }
13297
- );
13298
- });
13209
+ const DataListTopCell = forwardRef(
13210
+ ({ children, className, as, ...rest }, ref) => {
13211
+ const Component = as || "span";
13212
+ return /* @__PURE__ */ jsx(
13213
+ Component,
13214
+ {
13215
+ ref,
13216
+ className: cn(
13217
+ "h-8 py-1 flex items-center uppercase whitespace-nowrap text-neutral2 tracking-widest text-ui-xs",
13218
+ className
13219
+ ),
13220
+ ...rest,
13221
+ children
13222
+ }
13223
+ );
13224
+ }
13225
+ );
13299
13226
  function DataListTopCellWithTooltip({ children, tooltip, className }) {
13300
13227
  return /* @__PURE__ */ jsxs(Tooltip, { children: [
13301
13228
  /* @__PURE__ */ jsx(TooltipTrigger, { children: /* @__PURE__ */ jsx(DataListTopCell, { className, children }) }),
@@ -13334,9 +13261,37 @@ function DataListTopCellSmart({
13334
13261
  }
13335
13262
  return /* @__PURE__ */ jsx(DataListTopCell, { className: cn("flex [&_svg]:w-[1.3em] [&_svg]:h-[1.3em]", className), children: content });
13336
13263
  }
13264
+ function DataListTopSelectCell({ checked, onToggle, ...rest }) {
13265
+ return /* @__PURE__ */ jsx(
13266
+ DataListTopCell,
13267
+ {
13268
+ as: "label",
13269
+ className: "cursor-pointer justify-center rounded-lg transition-colors duration-200 hover:bg-surface4 px-4",
13270
+ onClick: (e) => e.stopPropagation(),
13271
+ children: /* @__PURE__ */ jsx(Checkbox, { checked, onCheckedChange: () => onToggle(), "aria-label": rest["aria-label"] })
13272
+ }
13273
+ );
13274
+ }
13275
+
13276
+ const DataListTopCells = forwardRef(
13277
+ ({ children, className, flushLeft, colStart, style, ...rest }, ref) => {
13278
+ return /* @__PURE__ */ jsx(
13279
+ "div",
13280
+ {
13281
+ ref,
13282
+ className: cn("grid grid-cols-subgrid gap-8 col-span-full px-5", flushLeft && "pl-0!", className),
13283
+ style: colStart ? { ...style, gridColumn: `${colStart} / -1` } : style,
13284
+ ...rest,
13285
+ children
13286
+ }
13287
+ );
13288
+ }
13289
+ );
13290
+ DataListTopCells.displayName = "DataListTopCells";
13337
13291
 
13338
13292
  const DataList = Object.assign(DataListRoot, {
13339
13293
  Top: DataListTop,
13294
+ TopCells: DataListTopCells,
13340
13295
  TopCell: DataListTopCell,
13341
13296
  TopCellWithTooltip: DataListTopCellWithTooltip,
13342
13297
  TopCellSmart: DataListTopCellSmart,
@@ -13347,6 +13302,12 @@ const DataList = Object.assign(DataListRoot, {
13347
13302
  TextCell: DataListTextCell,
13348
13303
  NameCell: DataListNameCell,
13349
13304
  DescriptionCell: DataListDescriptionCell,
13305
+ IdCell: DataListIdCell,
13306
+ MonoCell: DataListMonoCell,
13307
+ DateCell: DataListDateCell,
13308
+ TimeCell: DataListTimeCell,
13309
+ SelectCell: DataListSelectCell,
13310
+ TopSelectCell: DataListTopSelectCell,
13350
13311
  NoMatch: DataListNoMatch,
13351
13312
  Subheader: DataListSubheader,
13352
13313
  SubHeading: DataListSubHeading,
@@ -13380,16 +13341,16 @@ function DataListSkeleton({ columns = "auto 1fr auto auto", numberOfRows = 3 })
13380
13341
  )) });
13381
13342
  }
13382
13343
 
13383
- function toDate$3(value) {
13344
+ function toDate$1(value) {
13384
13345
  const date = value instanceof Date ? value : new Date(value);
13385
13346
  return isNaN(date.getTime()) ? null : date;
13386
13347
  }
13387
13348
  function ScoresDataListDateCell({ timestamp }) {
13388
- const date = toDate$3(timestamp);
13349
+ const date = toDate$1(timestamp);
13389
13350
  return /* @__PURE__ */ jsx(DataListCell, { height: "compact", className: "text-ui-smd text-neutral2", children: date ? isToday$1(date) ? "Today" : format(date, "MMM dd") : "-" });
13390
13351
  }
13391
13352
  function ScoresDataListTimeCell({ timestamp }) {
13392
- const date = toDate$3(timestamp);
13353
+ const date = toDate$1(timestamp);
13393
13354
  return /* @__PURE__ */ jsx(DataListCell, { height: "compact", className: "text-ui-smd text-neutral3", children: date ? format(date, "h:mm:ss aaa") : "-" });
13394
13355
  }
13395
13356
  function ScoresDataListInputCell({ input }) {
@@ -13419,31 +13380,6 @@ const ScoresDataList = Object.assign(ScoresDataListRoot, {
13419
13380
  ScoreCell: ScoresDataListScoreCell
13420
13381
  });
13421
13382
 
13422
- function toDate$2(value) {
13423
- const date = value instanceof Date ? value : new Date(value);
13424
- return isNaN(date.getTime()) ? null : date;
13425
- }
13426
- function getShortId(id) {
13427
- if (!id) return "";
13428
- return id.length > 8 ? id.slice(0, 8) : id;
13429
- }
13430
- function TracesDataListIdCell({ traceId }) {
13431
- return /* @__PURE__ */ jsx(DataListCell, { height: "compact", className: "text-ui-smd font-mono text-neutral3", children: getShortId(traceId) });
13432
- }
13433
- function TracesDataListDateCell({ timestamp }) {
13434
- const date = toDate$2(timestamp);
13435
- return /* @__PURE__ */ jsx(DataListCell, { height: "compact", className: "text-ui-smd text-neutral2", children: date ? isToday$1(date) ? "Today" : format(date, "MMM dd") : "-" });
13436
- }
13437
- function TracesDataListTimeCell({ timestamp }) {
13438
- const date = toDate$2(timestamp);
13439
- return /* @__PURE__ */ jsx(DataListCell, { height: "compact", className: "text-ui-smd font-mono text-neutral3 flex", children: date ? /* @__PURE__ */ jsxs(Fragment, { children: [
13440
- format(date, "HH:mm:ss"),
13441
- /* @__PURE__ */ jsxs("span", { className: "text-neutral2", children: [
13442
- ".",
13443
- String(date.getMilliseconds()).padStart(3, "0")
13444
- ] })
13445
- ] }) : "-" });
13446
- }
13447
13383
  function TracesDataListNameCell({ name, parentSpanId, showLevelTooltip }) {
13448
13384
  const isRoot = parentSpanId == null;
13449
13385
  const Icon = isRoot ? ListTreeIcon : CornerDownRightIcon;
@@ -13458,7 +13394,7 @@ function TracesDataListNameCell({ name, parentSpanId, showLevelTooltip }) {
13458
13394
  ] });
13459
13395
  }
13460
13396
  function TracesDataListInputCell({ input }) {
13461
- return /* @__PURE__ */ jsx(DataListCell, { height: "compact", className: "min-w-0", children: /* @__PURE__ */ jsx("span", { className: "block text-neutral3 text-ui-smd font-mono truncate", children: input || "-" }) });
13397
+ return /* @__PURE__ */ jsx(DataListMonoCell, { children: input || "-" });
13462
13398
  }
13463
13399
  function EntityTypeIcon$1({ entityType, className }) {
13464
13400
  const iconClass = cn("size-3.5 shrink-0 text-neutral2", className);
@@ -13503,9 +13439,9 @@ const TracesDataList = Object.assign(TracesDataListRoot, {
13503
13439
  Subheader: DataListSubheader,
13504
13440
  SubHeading: DataListSubHeading,
13505
13441
  Spacer: DataListSpacer,
13506
- IdCell: TracesDataListIdCell,
13507
- DateCell: TracesDataListDateCell,
13508
- TimeCell: TracesDataListTimeCell,
13442
+ IdCell: DataListIdCell,
13443
+ DateCell: DataListDateCell,
13444
+ TimeCell: DataListTimeCell,
13509
13445
  NameCell: TracesDataListNameCell,
13510
13446
  InputCell: TracesDataListInputCell,
13511
13447
  EntityCell: TracesDataListEntityCell,
@@ -13728,10 +13664,6 @@ function EntityListSkeleton({ columns, numberOfRows = 3 }) {
13728
13664
  )) });
13729
13665
  }
13730
13666
 
13731
- function toDate$1(value) {
13732
- const date = value instanceof Date ? value : new Date(value);
13733
- return isNaN(date.getTime()) ? null : date;
13734
- }
13735
13667
  const LEVEL_CONFIG = {
13736
13668
  debug: { label: "DEBUG", color: "#71717a" },
13737
13669
  info: { label: "INFO", color: "#60a5fa" },
@@ -13743,20 +13675,6 @@ function LogsDataListLevelCell({ level }) {
13743
13675
  const config = LEVEL_CONFIG[level];
13744
13676
  return /* @__PURE__ */ jsx(DataListCell, { height: "compact", children: /* @__PURE__ */ jsx("span", { className: "uppercase text-ui-sm font-semibold", style: { color: config.color }, children: config.label }) });
13745
13677
  }
13746
- function LogsDataListDateCell({ timestamp }) {
13747
- const date = toDate$1(timestamp);
13748
- return /* @__PURE__ */ jsx(DataListCell, { height: "compact", className: "text-ui-smd text-neutral2", children: date ? isToday$1(date) ? "Today" : format(date, "MMM dd") : "-" });
13749
- }
13750
- function LogsDataListTimeCell({ timestamp }) {
13751
- const date = toDate$1(timestamp);
13752
- return /* @__PURE__ */ jsx(DataListCell, { height: "compact", className: "text-ui-smd font-mono text-neutral3 flex", children: date ? /* @__PURE__ */ jsxs(Fragment, { children: [
13753
- format(date, "HH:mm:ss"),
13754
- /* @__PURE__ */ jsxs("span", { className: "text-neutral2", children: [
13755
- ".",
13756
- String(date.getMilliseconds()).padStart(3, "0")
13757
- ] })
13758
- ] }) : "-" });
13759
- }
13760
13678
  function EntityTypeIcon({ entityType, className }) {
13761
13679
  const iconClass = cn("size-3.5 shrink-0 text-neutral2", className);
13762
13680
  switch (entityType) {
@@ -13792,7 +13710,7 @@ function LogsDataListDataCell({ data }) {
13792
13710
  return `${k}: <unserializable>`;
13793
13711
  }
13794
13712
  }).join(", ");
13795
- return /* @__PURE__ */ jsx(DataListCell, { height: "compact", className: "min-w-0", children: /* @__PURE__ */ jsx("span", { className: "block text-neutral3 text-ui-smd font-mono truncate", children: summary }) });
13713
+ return /* @__PURE__ */ jsx(DataListMonoCell, { children: summary });
13796
13714
  }
13797
13715
 
13798
13716
  const LogsDataList = Object.assign(DataListRoot, {
@@ -13805,8 +13723,8 @@ const LogsDataList = Object.assign(DataListRoot, {
13805
13723
  RowLink: DataListRowLink,
13806
13724
  Spacer: DataListSpacer,
13807
13725
  NoMatch: DataListNoMatch,
13808
- DateCell: LogsDataListDateCell,
13809
- TimeCell: LogsDataListTimeCell,
13726
+ DateCell: DataListDateCell,
13727
+ TimeCell: DataListTimeCell,
13810
13728
  LevelCell: LogsDataListLevelCell,
13811
13729
  EntityCell: LogsDataListEntityCell,
13812
13730
  MessageCell: LogsDataListMessageCell,
@@ -15165,8 +15083,8 @@ function MetricsDataTable({
15165
15083
  "span",
15166
15084
  {
15167
15085
  className: cn(
15168
- "h-9 py-1 flex items-center border-b border-surface5 uppercase whitespace-nowrap text-neutral2 tracking-widest text-ui-xs sticky top-0 z-10 bg-surface2",
15169
- i === 0 ? "text-left sticky left-0 z-20 bg-surface2 pr-4 after:absolute after:right-1 after:top-1/2 after:-translate-y-1/2 after:h-3/5 after:w-px after:bg-surface5" : "px-4 text-right"
15086
+ "h-9 py-1 flex items-center border-b border-surface5 uppercase whitespace-nowrap text-neutral2 tracking-widest text-ui-xs sticky top-0 z-10 bg-surface3",
15087
+ i === 0 ? "text-left sticky left-0 z-20 bg-surface3 pr-4 after:absolute after:right-1 after:top-1/2 after:-translate-y-1/2 after:h-3/5 after:w-px after:bg-surface5" : "px-4 text-right"
15170
15088
  ),
15171
15089
  children: col.label
15172
15090
  },
@@ -15183,7 +15101,7 @@ function MetricsDataTable({
15183
15101
  const cellClasses = cn(
15184
15102
  "h-10 flex items-center text-ui-sm whitespace-nowrap border-t border-surface5",
15185
15103
  rowIndex === 0 && "border-t-transparent",
15186
- i === 0 ? "text-left text-neutral3 sticky left-0 z-10 bg-surface2 pr-4 after:absolute after:right-1 after:top-1/2 after:-translate-y-1/2 after:h-3/5 after:w-px after:bg-surface5" : cn(
15104
+ i === 0 ? "text-left text-neutral3 sticky left-0 z-10 bg-surface3 pr-4 after:absolute after:right-1 after:top-1/2 after:-translate-y-1/2 after:h-3/5 after:w-px after:bg-surface5" : cn(
15187
15105
  "px-4 text-right tabular-nums",
15188
15106
  col.highlight ? "text-neutral4 font-semibold" : "text-neutral3"
15189
15107
  ),
@@ -20331,7 +20249,8 @@ function TracesListView({
20331
20249
  ref: virtualizer.measureElement,
20332
20250
  "data-index": vi.index,
20333
20251
  onClick: () => onTraceClick(trace),
20334
- className: cn(isFeatured && "bg-surface4", isRecentlyAdded && "animate-row-highlight"),
20252
+ featured: isFeatured,
20253
+ className: cn(isRecentlyAdded && "animate-row-highlight"),
20335
20254
  children: [
20336
20255
  /* @__PURE__ */ jsx(TracesDataList.DateCell, { timestamp: displayDate }),
20337
20256
  /* @__PURE__ */ jsx(TracesDataList.TimeCell, { timestamp: displayDate }),
@@ -21499,7 +21418,7 @@ function LogsListView({
21499
21418
  ref: virtualizer.measureElement,
21500
21419
  "data-index": vi.index,
21501
21420
  onClick: () => onLogClick(log),
21502
- className: cn(isFeatured && "bg-surface4"),
21421
+ featured: isFeatured,
21503
21422
  children: [
21504
21423
  /* @__PURE__ */ jsx(LogsDataList.DateCell, { timestamp: log.timestamp }),
21505
21424
  /* @__PURE__ */ jsx(LogsDataList.TimeCell, { timestamp: log.timestamp }),
@@ -21986,5 +21905,5 @@ function useLogsListNavigation(logs, featuredLogId, onFeaturedChange, featuredTr
21986
21905
  };
21987
21906
  }
21988
21907
 
21989
- export { AddField, AgentCoinIcon, AgentIcon, AgentNetworkCoinIcon, AiIcon, AlertDialog, AmazonIcon, AnthropicChatIcon, AnthropicMessagesIcon, ApiIcon, Avatar, AzureIcon, Badge, BarListContent, BorderColors, BorderRadius, BranchIcon, BrandLoader, Breadcrumb, Button, ButtonsGroup, ButtonsGroupSeparator, ButtonsGroupText, CHART_COLORS, CONTEXT_FIELD_IDS, Card, CardContent, CardDescription, CardFooter, CardHeader, CardHeading, CardTitle, Cell, CheckIcon, Checkbox, ChevronIcon, Chip, ChipsGroup, CodeBlock$1 as CodeBlock, CodeDiff, CodeEditor, CohereIcon, Collapsible, CollapsibleContent, CollapsiblePanel, CollapsibleTrigger, Colors, Column, Columns, Combobox, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, CommitIcon, ContentBlock, ContentBlocks, CopyButton, CrossIcon, Crumb, DATE_PRESETS, DEFAULT_LOGS_FILTERS_STORAGE_KEY, DEFAULT_TRACE_FILTERS_STORAGE_KEY, DashboardCard, DataCodeSection, DataDetailsPanel, DataKeysAndValues, DataList, DataListSkeleton, DataPanel, DatasetsIcon, DatePicker, DateRangeSelector, DateTimeCell, DateTimePicker, DateTimePickerContent, DateTimeRangePicker, DbIcon, DebugIcon, DefaultTrigger, DeploymentIcon, Dialog, DialogBody, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DividerIcon, DocsIcon, DropdownMenu, EXTENSION_TO_MIME, ElementSelect, EmptyState, Entity, EntityContent, EntityDescription, EntityHeader, EntityIcon, EntityList, EntityListPageLayout, EntityListSkeleton, EntityName, Entry, EntryCell, EntryList, EntryListSkeleton, EnvIcon, ErrorBoundary, ErrorState, ExperimentsIcon, Field, FieldBlock, FieldBlocksLayout, FieldDescription, FieldList, FieldName, FieldNullable, FieldOptional, FieldRemove, FieldType, FiltersIcon, FolderIcon, FontSizes, GithubCoinIcon, GithubIcon, Glows, GoogleIcon, GroqIcon, Header$1 as Header, HeaderAction, HeaderGroup, HeaderTitle, HomeIcon, HorizontalBars, HoverPopover, Icon, InfoIcon, Input, InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, ItemList, ItemListSkeleton, JSONSchemaForm, JudgeIcon, Kbd, KeyValueList, KpiCardView, LOGS_DATE_FROM_PARAM, LOGS_DATE_PRESET_PARAM, LOGS_DATE_PRESET_VALUES, LOGS_DATE_TO_PARAM, LOGS_PROPERTY_FILTER_FIELD_IDS, LOGS_PROPERTY_FILTER_PARAM_BY_FIELD, LOGS_ROOT_ENTITY_TYPES, LOGS_ROOT_ENTITY_TYPE_OPTIONS, LOGS_ROOT_ENTITY_TYPE_PARAM, LOG_LEVEL_OPTIONS, LOG_LEVEL_VALUES, Label, LatencyCardView, LatencyIcon, LineHeights, ListSearch, LogDetailsView, Logo, LogoWithoutText, LogsDataList, DataListSkeleton as LogsDataListSkeleton, LogsErrorContent, LogsIcon, LogsLayout, LogsListView, LogsToolbar, MainContentContent, MainContentLayout, MainHeader, MainSidebar, MainSidebarMobileTrigger, MainSidebarProvider, MainSidebarTrigger, MarkdownRenderer, MastraIcon, McpCoinIcon, McpServerIcon, MemoryCardView, MemoryIcon, MetricsCard, MetricsDataTable, MetricsFlexGrid, MetricsIcon, MetricsKpiCard, MetricsLineChart, MetricsLineChartTooltip, MetricsProvider, MistralIcon, ModelUsageCostCardView, MultiColumn, MultiCombobox, NestedFields, NetlifyIcon, NoDataPageLayout, NoLogsInfo, NoTracesInfo, Notice, OPERATORS, OPERATOR_LABELS, OpenAIIcon, OpenErrorsInLogsButton, OpenInTracesButton, OpenaiChatIcon, PageHeader, PageHeadingContext, PageLayout, PanelSeparator, PermissionDenied, PickMultiPanel, Popover, PopoverContent, PopoverTrigger, PrevNextNav, ProcessStepList, ProcessStepListItem, ProcessStepProgressBar, ProcessorIcon, PromptIcon, PropertyFilterActions, PropertyFilterApplied, PropertyFilterCreator, ROOT_ENTITY_TYPES, ROOT_ENTITY_TYPE_OPTIONS, RadioGroup, RadioGroupItem, RepoIcon, RequestContextIcon, Root$1 as Root, Row, RuleBuilder, RuleFieldSelect, RuleOperatorSelect, RuleRow, RuleValueInput, ScorersIcon, ScoresCardView, ScoresDataList, ScrollArea, ScrollBar, ScrollableContainer, SearchFieldBlock, Searchbar, SearchbarWrapper, Section, SectionCard, SectionRoot, Sections, Select, SelectContent, SelectDataFilter, SelectFieldBlock, SelectGroup, SelectItem, SelectTrigger, SelectValue, SessionExpired, SettingsIcon, SettingsRow, Shadows, SideDialog, Sizes, Skeleton, SkillIcon, SlashIcon, Slider, Spacings, SpanDataPanelView, SpanDetailsView, SpanTokenUsage, Spinner, StackedRunsBars, StatusBadge, SubSectionRoot, Switch, TRACE_ANCHOR_SPAN_ID_PARAM, TRACE_DATE_FROM_PARAM, TRACE_DATE_PRESET_PARAM, TRACE_DATE_PRESET_VALUES, TRACE_DATE_TO_PARAM, TRACE_LIST_MODE_OPTIONS, TRACE_LIST_MODE_PARAM, TRACE_LIST_MODE_VALUES, TRACE_PROPERTY_FILTER_FIELD_IDS, TRACE_PROPERTY_FILTER_PARAM_BY_FIELD, TRACE_ROOT_ENTITY_TYPE_PARAM, TRACE_STATUS_OPTIONS, TRACE_STATUS_PARAM, TRACE_STATUS_VALUES, TRACE_SYNTHETIC_FILTER_FIELD_IDS, Tab, TabContent, TabList, Table, Tabs, Tbody, TextAndIcon, TextFieldBlock, Textarea, Th, Thead, ThemeProvider, ThemeToggle, TimePicker, TimelineExpandCol, TimelineNameCol, TimelineStructureSign, TimelineTimingCol, Toaster, TokenUsageByAgentCardView, ToolCoinIcon, ToolsIcon, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, TraceDataPanelView, TraceDetailsView, TraceIcon, TraceKeysAndValues, TraceTimeline, TraceTimelineSpan, TracesDataList, TracesErrorContent, TracesLayout, TracesListModeToggle, TracesListView, TracesToolbar, TracesVolumeCardView, Tree, Truncate, TsIcon, Txt, TxtCell, VARIABLE_PATTERN, VariablesIcon, WorkflowCoinIcon, WorkflowIcon, WorkspacesIcon, XGroqIcon, applyLogsPropertyFilterTokens, applyMetricsPropertyFilterTokens, applyTracePropertyFilterTokens, buildLogsDrilldownUrl, buildLogsListFilters, buildMetricsDimensionalFilter, buildTraceListFilters, buildTracesDrilldownUrl, buttonVariants, buttonsGroupVariants, clearSavedLogsFilters, clearSavedMetricsFilters, clearSavedTraceFilters, cn, comboboxStyles, countLeafRules, createDefaultRule, createDefaultRuleGroup, createField, createLogsPropertyFilterFields, createMetricsPropertyFilterFields, createTracePropertyFilterFields, createVariableAutocomplete, fieldsToJSONSchema, fileToBase64, flattenSchemaToVariables, focusRing, formElementFocus, formElementFocusWithin, formElementRadius, formElementSizes, formElementTransition, formatCompact, formatCost, formatHierarchicalSpans, formatJSON, generateDefaultValues, getAllSpanIds, getChildFieldOptions, getColumnTemplate, getFieldOptionAtPath, getFieldOptionsFromSchema, getFileContentType, getInputPreview, getIsLinkActive, getItemListColumnTemplate, getLogsPropertyFilterTokens, getMainContentContentClassName, getMetricsPropertyFilterTokens, getPreservedLogsFilterParams, getPreservedTraceFilterParams, getShortId$1 as getShortId, getSpanDescendantIds, getSpanTypeUi, getStatusIcon, getToNextEntryFn, getToNextItemFn, getToPreviousEntryFn, getToPreviousItemFn, getTokenLimitMessage, getTracePropertyFilterTokens, hasAnyLogsFilterParams, hasAnyMetricsFilterParams, hasAnyTraceFilterParams, highlight, hoverEffects, inputVariants, is401UnauthorizedError, is403ForbiddenError, isBranchesNotSupportedError, isNonRetryableError, isObjectEmpty, isRule, isRuleGroup, isTokenLimitExceeded, isValidJson, isValidPreset, jsonSchemaToFields, loadLogsFiltersFromStorage, loadMetricsFiltersFromStorage, loadTraceFiltersFromStorage, lodashTitleCase, narrowWindowToBucket, navItemClasses, neutralizeFilterTokens, neutralizeLogsFilterTokens, parseError, parseFieldPath, saveLogsFiltersToStorage, saveMetricsFiltersToStorage, saveTraceFiltersToStorage, sharedFormElementDisabledStyle, sharedFormElementFocusStyle, sharedFormElementStyle, shouldRetryQuery, spanTypePrefixes, stringToColor, textareaVariants, toSigFigs, toast, transitions, truncateString, useActiveResourcesKpiMetrics, useActiveThreadsKpiMetrics, useAgentRunsKpiMetrics, useAutoscroll, useBranch, useCodemirrorTheme$3 as useCodemirrorTheme, useCopyToClipboard, useDrilldown, useEntityNames, useEnvironments, useInView, useJSONSchemaForm, useJSONSchemaFormField, useJSONSchemaFormNestedContext, useLatencyMetrics, useLogs, useLogsFilterPersistence, useLogsListNavigation, useLogsUrlState, useMainSidebar, useMaybeSidebar, useMetrics, useMetricsFilters, useModelCostKpiMetrics, useModelUsageCostMetrics, usePageHeading, usePlaygroundStore, useScoresMetrics, useServiceNames, useSpanDetail, useTableKeyboardNavigation, useTags, useTheme, useTokenUsageByAgentMetrics, useTopActiveThreadsMetrics, useTopResourcesByThreadsMetrics, useTotalTokensKpiMetrics, useTraceFilterPersistence, useTraceLightSpans, useTraceListNavigation, useTraceOrBranchSpans, useTraceSpanNavigation, useTraceSpans, useTraceUrlState, useTraceVolumeMetrics, useTraces, variableHighlight };
21908
+ export { AddField, AgentCoinIcon, AgentIcon, AgentNetworkCoinIcon, AiIcon, AlertDialog, AmazonIcon, AnthropicChatIcon, AnthropicMessagesIcon, ApiIcon, Avatar, AzureIcon, Badge, BarListContent, BorderColors, BorderRadius, BranchIcon, BrandLoader, Breadcrumb, Button, ButtonsGroup, ButtonsGroupSeparator, ButtonsGroupText, CHART_COLORS, CONTEXT_FIELD_IDS, Card, CardContent, CardDescription, CardFooter, CardHeader, CardHeading, CardTitle, Cell, CheckIcon, Checkbox, ChevronIcon, Chip, ChipsGroup, CodeBlock$1 as CodeBlock, CodeDiff, CodeEditor, CohereIcon, Collapsible, CollapsibleContent, CollapsiblePanel, CollapsibleTrigger, Colors, Column, Columns, Combobox, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, CommitIcon, ContentBlock, ContentBlocks, CopyButton, CrossIcon, Crumb, DATE_PRESETS, DEFAULT_LOGS_FILTERS_STORAGE_KEY, DEFAULT_TRACE_FILTERS_STORAGE_KEY, DashboardCard, DataCodeSection, DataDetailsPanel, DataKeysAndValues, DataList, DataListSkeleton, DataPanel, DatasetsIcon, DatePicker, DateRangeSelector, DateTimeCell, DateTimePicker, DateTimePickerContent, DateTimeRangePicker, DbIcon, DebugIcon, DefaultTrigger, DeploymentIcon, Dialog, DialogBody, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DividerIcon, DocsIcon, DropdownMenu, EXTENSION_TO_MIME, ElementSelect, EmptyState, Entity, EntityContent, EntityDescription, EntityHeader, EntityIcon, EntityList, EntityListPageLayout, EntityListSkeleton, EntityName, Entry, EntryCell, EnvIcon, ErrorBoundary, ErrorState, ExperimentsIcon, Field, FieldBlock, FieldBlocksLayout, FieldDescription, FieldList, FieldName, FieldNullable, FieldOptional, FieldRemove, FieldType, FiltersIcon, FolderIcon, FontSizes, GithubCoinIcon, GithubIcon, Glows, GoogleIcon, GroqIcon, Header$1 as Header, HeaderAction, HeaderGroup, HeaderTitle, HomeIcon, HorizontalBars, HoverPopover, Icon, InfoIcon, Input, InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, ItemList, ItemListSkeleton, JSONSchemaForm, JudgeIcon, Kbd, KeyValueList, KpiCardView, LOGS_DATE_FROM_PARAM, LOGS_DATE_PRESET_PARAM, LOGS_DATE_PRESET_VALUES, LOGS_DATE_TO_PARAM, LOGS_PROPERTY_FILTER_FIELD_IDS, LOGS_PROPERTY_FILTER_PARAM_BY_FIELD, LOGS_ROOT_ENTITY_TYPES, LOGS_ROOT_ENTITY_TYPE_OPTIONS, LOGS_ROOT_ENTITY_TYPE_PARAM, LOG_LEVEL_OPTIONS, LOG_LEVEL_VALUES, Label, LatencyCardView, LatencyIcon, LineHeights, ListSearch, LogDetailsView, Logo, LogoWithoutText, LogsDataList, DataListSkeleton as LogsDataListSkeleton, LogsErrorContent, LogsIcon, LogsLayout, LogsListView, LogsToolbar, MainContentContent, MainContentLayout, MainHeader, MainSidebar, MainSidebarMobileTrigger, MainSidebarProvider, MainSidebarTrigger, MarkdownRenderer, MastraIcon, McpCoinIcon, McpServerIcon, MemoryCardView, MemoryIcon, MetricsCard, MetricsDataTable, MetricsFlexGrid, MetricsIcon, MetricsKpiCard, MetricsLineChart, MetricsLineChartTooltip, MetricsProvider, MistralIcon, ModelUsageCostCardView, MultiColumn, MultiCombobox, NestedFields, NetlifyIcon, NoDataPageLayout, NoLogsInfo, NoTracesInfo, Notice, OPERATORS, OPERATOR_LABELS, OpenAIIcon, OpenErrorsInLogsButton, OpenInTracesButton, OpenaiChatIcon, PageHeader, PageHeadingContext, PageLayout, PanelSeparator, PermissionDenied, PickMultiPanel, Popover, PopoverContent, PopoverTrigger, PrevNextNav, ProcessStepList, ProcessStepListItem, ProcessStepProgressBar, ProcessorIcon, PromptIcon, PropertyFilterActions, PropertyFilterApplied, PropertyFilterCreator, ROOT_ENTITY_TYPES, ROOT_ENTITY_TYPE_OPTIONS, RadioGroup, RadioGroupItem, RepoIcon, RequestContextIcon, Root$1 as Root, Row, RuleBuilder, RuleFieldSelect, RuleOperatorSelect, RuleRow, RuleValueInput, ScorersIcon, ScoresCardView, ScoresDataList, ScrollArea, ScrollBar, ScrollableContainer, SearchFieldBlock, Searchbar, SearchbarWrapper, Section, SectionCard, SectionRoot, Sections, Select, SelectContent, SelectDataFilter, SelectFieldBlock, SelectGroup, SelectItem, SelectTrigger, SelectValue, SessionExpired, SettingsIcon, SettingsRow, Shadows, SideDialog, Sizes, Skeleton, SkillIcon, SlashIcon, Slider, Spacings, SpanDataPanelView, SpanDetailsView, SpanTokenUsage, Spinner, StackedRunsBars, StatusBadge, SubSectionRoot, Switch, TRACE_ANCHOR_SPAN_ID_PARAM, TRACE_DATE_FROM_PARAM, TRACE_DATE_PRESET_PARAM, TRACE_DATE_PRESET_VALUES, TRACE_DATE_TO_PARAM, TRACE_LIST_MODE_OPTIONS, TRACE_LIST_MODE_PARAM, TRACE_LIST_MODE_VALUES, TRACE_PROPERTY_FILTER_FIELD_IDS, TRACE_PROPERTY_FILTER_PARAM_BY_FIELD, TRACE_ROOT_ENTITY_TYPE_PARAM, TRACE_STATUS_OPTIONS, TRACE_STATUS_PARAM, TRACE_STATUS_VALUES, TRACE_SYNTHETIC_FILTER_FIELD_IDS, Tab, TabContent, TabList, Table, Tabs, Tbody, TextAndIcon, TextFieldBlock, Textarea, Th, Thead, ThemeProvider, ThemeToggle, TimePicker, TimelineExpandCol, TimelineNameCol, TimelineStructureSign, TimelineTimingCol, Toaster, TokenUsageByAgentCardView, ToolCoinIcon, ToolsIcon, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, TraceDataPanelView, TraceDetailsView, TraceIcon, TraceKeysAndValues, TraceTimeline, TraceTimelineSpan, TracesDataList, TracesErrorContent, TracesLayout, TracesListModeToggle, TracesListView, TracesToolbar, TracesVolumeCardView, Tree, Truncate, TsIcon, Txt, TxtCell, VARIABLE_PATTERN, VariablesIcon, WorkflowCoinIcon, WorkflowIcon, WorkspacesIcon, XGroqIcon, applyLogsPropertyFilterTokens, applyMetricsPropertyFilterTokens, applyTracePropertyFilterTokens, buildLogsDrilldownUrl, buildLogsListFilters, buildMetricsDimensionalFilter, buildTraceListFilters, buildTracesDrilldownUrl, buttonVariants, buttonsGroupVariants, clearSavedLogsFilters, clearSavedMetricsFilters, clearSavedTraceFilters, cn, comboboxStyles, countLeafRules, createDefaultRule, createDefaultRuleGroup, createField, createLogsPropertyFilterFields, createMetricsPropertyFilterFields, createTracePropertyFilterFields, createVariableAutocomplete, fieldsToJSONSchema, fileToBase64, flattenSchemaToVariables, focusRing, formElementFocus, formElementFocusWithin, formElementRadius, formElementSizes, formElementTransition, formatCompact, formatCost, formatHierarchicalSpans, formatJSON, generateDefaultValues, getAllSpanIds, getChildFieldOptions, getFieldOptionAtPath, getFieldOptionsFromSchema, getFileContentType, getInputPreview, getIsLinkActive, getItemListColumnTemplate, getLogsPropertyFilterTokens, getMainContentContentClassName, getMetricsPropertyFilterTokens, getPreservedLogsFilterParams, getPreservedTraceFilterParams, getShortId$1 as getShortId, getSpanDescendantIds, getSpanTypeUi, getStatusIcon, getToNextItemFn, getToPreviousItemFn, getTokenLimitMessage, getTracePropertyFilterTokens, hasAnyLogsFilterParams, hasAnyMetricsFilterParams, hasAnyTraceFilterParams, highlight, hoverEffects, inputVariants, is401UnauthorizedError, is403ForbiddenError, isBranchesNotSupportedError, isNonRetryableError, isObjectEmpty, isRule, isRuleGroup, isTokenLimitExceeded, isValidJson, isValidPreset, jsonSchemaToFields, loadLogsFiltersFromStorage, loadMetricsFiltersFromStorage, loadTraceFiltersFromStorage, lodashTitleCase, narrowWindowToBucket, navItemClasses, neutralizeFilterTokens, neutralizeLogsFilterTokens, parseError, parseFieldPath, saveLogsFiltersToStorage, saveMetricsFiltersToStorage, saveTraceFiltersToStorage, sharedFormElementDisabledStyle, sharedFormElementFocusStyle, sharedFormElementStyle, shouldRetryQuery, spanTypePrefixes, stringToColor, textareaVariants, toSigFigs, toast, transitions, truncateString, useActiveResourcesKpiMetrics, useActiveThreadsKpiMetrics, useAgentRunsKpiMetrics, useAutoscroll, useBranch, useCodemirrorTheme$3 as useCodemirrorTheme, useCopyToClipboard, useDrilldown, useEntityNames, useEnvironments, useInView, useJSONSchemaForm, useJSONSchemaFormField, useJSONSchemaFormNestedContext, useLatencyMetrics, useLogs, useLogsFilterPersistence, useLogsListNavigation, useLogsUrlState, useMainSidebar, useMaybeSidebar, useMetrics, useMetricsFilters, useModelCostKpiMetrics, useModelUsageCostMetrics, usePageHeading, usePlaygroundStore, useScoresMetrics, useServiceNames, useSpanDetail, useTableKeyboardNavigation, useTags, useTheme, useTokenUsageByAgentMetrics, useTopActiveThreadsMetrics, useTopResourcesByThreadsMetrics, useTotalTokensKpiMetrics, useTraceFilterPersistence, useTraceLightSpans, useTraceListNavigation, useTraceOrBranchSpans, useTraceSpanNavigation, useTraceSpans, useTraceUrlState, useTraceVolumeMetrics, useTraces, variableHighlight };
21990
21909
  //# sourceMappingURL=index.es.js.map