@mastra/playground-ui 63.1.0-alpha.2 → 63.1.0-alpha.3

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 (168) hide show
  1. package/dist/components/ContentBlocks.cjs.js +6 -2
  2. package/dist/components/ContentBlocks.cjs.js.map +1 -1
  3. package/dist/components/ContentBlocks.es.js +6 -2
  4. package/dist/components/ContentBlocks.es.js.map +1 -1
  5. package/dist/components/DataList.cjs.js +17 -15
  6. package/dist/components/DataList.cjs.js.map +1 -1
  7. package/dist/components/DataList.es.js +5 -4
  8. package/dist/components/DataList.es.js.map +1 -1
  9. package/dist/components/DateTimeRangePicker.cjs.js +1 -1
  10. package/dist/components/DateTimeRangePicker.es.js +1 -1
  11. package/dist/components/EnvironmentVariablesEditor.cjs.js +1 -1
  12. package/dist/components/EnvironmentVariablesEditor.es.js +1 -1
  13. package/dist/components/FilterBar.cjs.js +3 -1
  14. package/dist/components/FilterBar.cjs.js.map +1 -1
  15. package/dist/components/FilterBar.es.js +4 -2
  16. package/dist/components/FilterBar.es.js.map +1 -1
  17. package/dist/components/LogsDataList.cjs.js +2 -5
  18. package/dist/components/LogsDataList.cjs.js.map +1 -1
  19. package/dist/components/LogsDataList.es.js +2 -5
  20. package/dist/components/LogsDataList.es.js.map +1 -1
  21. package/dist/components/SavedViews.cjs.js +1 -1
  22. package/dist/components/SavedViews.es.js +1 -1
  23. package/dist/components/Sidebar.cjs.js +33 -0
  24. package/dist/components/Sidebar.cjs.js.map +1 -1
  25. package/dist/components/Sidebar.es.js +33 -1
  26. package/dist/components/Sidebar.es.js.map +1 -1
  27. package/dist/data-list-CsS-lf01.js +138 -0
  28. package/dist/data-list-CsS-lf01.js.map +1 -0
  29. package/dist/data-list-D6J5xPq9.cjs +142 -0
  30. package/dist/data-list-D6J5xPq9.cjs.map +1 -0
  31. package/dist/{data-list-skeleton-C9Zm5XMX.js → data-list-skeleton-BytOffUO.js} +2 -2
  32. package/dist/{data-list-skeleton-C9Zm5XMX.js.map → data-list-skeleton-BytOffUO.js.map} +1 -1
  33. package/dist/{data-list-skeleton-C-j6Sf0F.cjs → data-list-skeleton-HmAfNH0v.cjs} +6 -6
  34. package/dist/{data-list-skeleton-C-j6Sf0F.cjs.map → data-list-skeleton-HmAfNH0v.cjs.map} +1 -1
  35. package/dist/data-list-spacer-BFA58pwr.cjs +218 -0
  36. package/dist/data-list-spacer-BFA58pwr.cjs.map +1 -0
  37. package/dist/data-list-spacer-BO-O0H6O.js +209 -0
  38. package/dist/data-list-spacer-BO-O0H6O.js.map +1 -0
  39. package/dist/{data-list-2svaWtkq.cjs → data-list-top-DOSUdqnN.cjs} +17 -340
  40. package/dist/data-list-top-DOSUdqnN.cjs.map +1 -0
  41. package/dist/{data-list-BbOYiz4B.js → data-list-top-vN4fkFqY.js} +9 -333
  42. package/dist/data-list-top-vN4fkFqY.js.map +1 -0
  43. package/dist/{date-time-range-picker-BT9qan60.js → date-time-range-picker-B9me2TUa.js} +21 -4
  44. package/dist/date-time-range-picker-B9me2TUa.js.map +1 -0
  45. package/dist/{date-time-range-picker-DQa5XLST.cjs → date-time-range-picker-CyoaOAsi.cjs} +21 -4
  46. package/dist/date-time-range-picker-CyoaOAsi.cjs.map +1 -0
  47. package/dist/domains/chat/tools/badges/workflow-badge.cjs.js +1 -2
  48. package/dist/domains/chat/tools/badges/workflow-badge.cjs.js.map +1 -1
  49. package/dist/domains/chat/tools/badges/workflow-badge.es.js +1 -2
  50. package/dist/domains/chat/tools/badges/workflow-badge.es.js.map +1 -1
  51. package/dist/domains/logs/components/logs-list-view.cjs.js +2 -3
  52. package/dist/domains/logs/components/logs-list-view.cjs.js.map +1 -1
  53. package/dist/domains/logs/components/logs-list-view.es.js +2 -3
  54. package/dist/domains/logs/components/logs-list-view.es.js.map +1 -1
  55. package/dist/domains/metrics/components/date-range-selector.cjs.js +1 -1
  56. package/dist/domains/metrics/components/date-range-selector.es.js +1 -1
  57. package/dist/domains/metrics/drilldown.cjs.js +1 -1
  58. package/dist/domains/metrics/drilldown.es.js +1 -1
  59. package/dist/domains/metrics/metrics-filters.cjs.js +1 -1
  60. package/dist/domains/metrics/metrics-filters.es.js +1 -1
  61. package/dist/domains/scores/components/trace-scores-tab.cjs.js +1 -2
  62. package/dist/domains/scores/components/trace-scores-tab.cjs.js.map +1 -1
  63. package/dist/domains/scores/components/trace-scores-tab.es.js +1 -2
  64. package/dist/domains/scores/components/trace-scores-tab.es.js.map +1 -1
  65. package/dist/domains/traces/components/thread-view-by-trace.cjs.js +3 -2
  66. package/dist/domains/traces/components/thread-view-by-trace.cjs.js.map +1 -1
  67. package/dist/domains/traces/components/thread-view-by-trace.es.js +3 -2
  68. package/dist/domains/traces/components/thread-view-by-trace.es.js.map +1 -1
  69. package/dist/domains/traces/components/trace-data-panel.cjs.js +1 -2
  70. package/dist/domains/traces/components/trace-data-panel.cjs.js.map +1 -1
  71. package/dist/domains/traces/components/trace-data-panel.es.js +1 -2
  72. package/dist/domains/traces/components/trace-data-panel.es.js.map +1 -1
  73. package/dist/domains/traces/components/trace-time-range-chip.cjs.js +3 -3
  74. package/dist/domains/traces/components/trace-time-range-chip.cjs.js.map +1 -1
  75. package/dist/domains/traces/components/trace-time-range-chip.es.js +3 -3
  76. package/dist/domains/traces/components/trace-time-range-chip.es.js.map +1 -1
  77. package/dist/domains/traces/components/traces-error-content.cjs.js +1 -1
  78. package/dist/domains/traces/components/traces-error-content.es.js +1 -1
  79. package/dist/domains/traces/components/traces-list-view.cjs.js +5 -4
  80. package/dist/domains/traces/components/traces-list-view.cjs.js.map +1 -1
  81. package/dist/domains/traces/components/traces-list-view.es.js +4 -3
  82. package/dist/domains/traces/components/traces-list-view.es.js.map +1 -1
  83. package/dist/domains/traces/components/traces-page-skeleton.cjs.js +1 -4
  84. package/dist/domains/traces/components/traces-page-skeleton.cjs.js.map +1 -1
  85. package/dist/domains/traces/components/traces-page-skeleton.es.js +1 -4
  86. package/dist/domains/traces/components/traces-page-skeleton.es.js.map +1 -1
  87. package/dist/domains/traces/hooks/use-trace-filter-persistence.cjs.js +1 -1
  88. package/dist/domains/traces/hooks/use-trace-filter-persistence.es.js +1 -1
  89. package/dist/domains/traces/hooks/use-trace-url-state.cjs.js +1 -1
  90. package/dist/domains/traces/hooks/use-trace-url-state.es.js +1 -1
  91. package/dist/domains/traces/hooks/use-traces-list-source.cjs.js +15 -3
  92. package/dist/domains/traces/hooks/use-traces-list-source.cjs.js.map +1 -1
  93. package/dist/domains/traces/hooks/use-traces-list-source.es.js +13 -4
  94. package/dist/domains/traces/hooks/use-traces-list-source.es.js.map +1 -1
  95. package/dist/domains/traces/trace-filters.cjs.js +1 -1
  96. package/dist/domains/traces/trace-filters.es.js +1 -1
  97. package/dist/domains/traces/trace-query-filters.cjs.js +1 -3
  98. package/dist/domains/traces/trace-query-filters.cjs.js.map +1 -1
  99. package/dist/domains/traces/trace-query-filters.es.js +1 -1
  100. package/dist/domains/traces.cjs.js +1 -3
  101. package/dist/domains/traces.cjs.js.map +1 -1
  102. package/dist/domains/traces.es.js +1 -1
  103. package/dist/domains/workflows/components/workflows-list/workflows-list.cjs.js +2 -2
  104. package/dist/domains/workflows/components/workflows-list/workflows-list.es.js +2 -2
  105. package/dist/ee/signals/components/entity-index-list.cjs.js +1 -3
  106. package/dist/ee/signals/components/entity-index-list.cjs.js.map +1 -1
  107. package/dist/ee/signals/components/entity-index-list.es.js +1 -3
  108. package/dist/ee/signals/components/entity-index-list.es.js.map +1 -1
  109. package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js +1 -3
  110. package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js.map +1 -1
  111. package/dist/ee/signals/components/trace-intelligence-entity-index.es.js +1 -3
  112. package/dist/ee/signals/components/trace-intelligence-entity-index.es.js.map +1 -1
  113. package/dist/ee/topics/components/topic-trace-summary-list.cjs.js +1 -1
  114. package/dist/ee/topics/components/topic-trace-summary-list.es.js +1 -1
  115. package/dist/{errors-BiY55qIh.cjs → errors-7WFF-9EC.cjs} +3 -2
  116. package/dist/errors-7WFF-9EC.cjs.map +1 -0
  117. package/dist/{errors-CDTokuME.js → errors-BFVXW8Dr.js} +3 -2
  118. package/dist/errors-BFVXW8Dr.js.map +1 -0
  119. package/dist/{filter-bar-chip-BBErw_aR.cjs → filter-bar-chip-CYCOeX1B.cjs} +8 -4
  120. package/dist/filter-bar-chip-CYCOeX1B.cjs.map +1 -0
  121. package/dist/{filter-bar-chip-DvRTWRwT.js → filter-bar-chip-U55TxGOw.js} +8 -4
  122. package/dist/filter-bar-chip-U55TxGOw.js.map +1 -0
  123. package/dist/hooks/use-local-storage-store.cjs.js +71 -0
  124. package/dist/hooks/use-local-storage-store.cjs.js.map +1 -0
  125. package/dist/hooks/use-local-storage-store.d.ts +2 -0
  126. package/dist/hooks/use-local-storage-store.es.js +66 -0
  127. package/dist/hooks/use-local-storage-store.es.js.map +1 -0
  128. package/dist/layout/tabbed-container.cjs.js +1 -1
  129. package/dist/layout/tabbed-container.es.js +1 -1
  130. package/dist/{logs-data-list-0_z4s0Sj.js → logs-data-list-BqUgmvMm.js} +3 -2
  131. package/dist/{logs-data-list-0_z4s0Sj.js.map → logs-data-list-BqUgmvMm.js.map} +1 -1
  132. package/dist/{logs-data-list-D4sVbF23.cjs → logs-data-list-CCrhko5Z.cjs} +22 -21
  133. package/dist/{logs-data-list-D4sVbF23.cjs.map → logs-data-list-CCrhko5Z.cjs.map} +1 -1
  134. package/dist/src/domains/traces/components/trace-time-range-chip.d.ts +1 -1
  135. package/dist/src/domains/traces/hooks/use-traces-list-source.d.ts +6 -0
  136. package/dist/src/domains/traces/trace-query-filters.d.ts +0 -11
  137. package/dist/src/ds/components/ContentBlocks/content-blocks.d.ts +3 -2
  138. package/dist/src/ds/components/DataList/shared.d.ts +4 -4
  139. package/dist/src/ds/components/DateTimeRangePicker/custom-range-editor.d.ts +3 -1
  140. package/dist/src/ds/components/DateTimeRangePicker/date-time-range-picker.d.ts +3 -1
  141. package/dist/src/ds/components/FilterBar/filter-bar-context.d.ts +11 -1
  142. package/dist/src/ds/components/FilterBar/filter-bar.d.ts +6 -1
  143. package/dist/src/ds/components/Sidebar/index.d.ts +1 -0
  144. package/dist/src/ds/components/Sidebar/nav/sidebar-nav-show-more.d.ts +9 -0
  145. package/dist/src/ds/components/Sidebar/sidebar.d.ts +2 -0
  146. package/dist/src/hooks/use-local-storage-store.d.ts +15 -0
  147. package/dist/style.css +20 -0
  148. package/dist/{trace-filters-C71gmCq4.js → trace-filters-C91h9X86.js} +2 -10
  149. package/dist/trace-filters-C91h9X86.js.map +1 -0
  150. package/dist/{trace-filters-Bh4dVNPX.cjs → trace-filters-Dz4oj8yV.cjs} +1 -11
  151. package/dist/trace-filters-Dz4oj8yV.cjs.map +1 -0
  152. package/dist/{traces-data-list-C05UwTiE.js → traces-data-list-B7Dzi7oZ.js} +4 -2
  153. package/dist/{traces-data-list-C05UwTiE.js.map → traces-data-list-B7Dzi7oZ.js.map} +1 -1
  154. package/dist/{traces-data-list-DPA5T14k.cjs → traces-data-list-Caf2XZDu.cjs} +19 -17
  155. package/dist/{traces-data-list-DPA5T14k.cjs.map → traces-data-list-Caf2XZDu.cjs.map} +1 -1
  156. package/dist/utils/errors.cjs.js +1 -1
  157. package/dist/utils/errors.es.js +1 -1
  158. package/package.json +8 -8
  159. package/dist/data-list-2svaWtkq.cjs.map +0 -1
  160. package/dist/data-list-BbOYiz4B.js.map +0 -1
  161. package/dist/date-time-range-picker-BT9qan60.js.map +0 -1
  162. package/dist/date-time-range-picker-DQa5XLST.cjs.map +0 -1
  163. package/dist/errors-BiY55qIh.cjs.map +0 -1
  164. package/dist/errors-CDTokuME.js.map +0 -1
  165. package/dist/filter-bar-chip-BBErw_aR.cjs.map +0 -1
  166. package/dist/filter-bar-chip-DvRTWRwT.js.map +0 -1
  167. package/dist/trace-filters-Bh4dVNPX.cjs.map +0 -1
  168. package/dist/trace-filters-C71gmCq4.js.map +0 -1
@@ -1,6 +1,7 @@
1
1
  'use strict';
2
2
 
3
- const dataList = require('./data-list-2svaWtkq.cjs');
3
+ const dataListTop = require('./data-list-top-DOSUdqnN.cjs');
4
+ const dataListSpacer = require('./data-list-spacer-BFA58pwr.cjs');
4
5
  const jsxRuntime = require('react/jsx-runtime');
5
6
  const Badge = require('./Badge-BF6FbLH_.cjs');
6
7
  const Txt = require('./Txt-DXjXpX9r.cjs');
@@ -17,7 +18,7 @@ const LEVEL_VARIANT = {
17
18
  fatal: "destructive"
18
19
  };
19
20
  function LogsDataListLevelCell({ level }) {
20
- return /* @__PURE__ */ jsxRuntime.jsx(dataList.DataListCell, { children: /* @__PURE__ */ jsxRuntime.jsx(Badge.Badge, { variant: LEVEL_VARIANT[level], children: level }) });
21
+ return /* @__PURE__ */ jsxRuntime.jsx(dataListTop.DataListCell, { children: /* @__PURE__ */ jsxRuntime.jsx(Badge.Badge, { variant: LEVEL_VARIANT[level], children: level }) });
21
22
  }
22
23
  function EntityTypeIcon({ entityType, className }) {
23
24
  const iconClass = utils_cn.cn("size-3.5 shrink-0 text-placeholder", className);
@@ -36,17 +37,17 @@ function EntityTypeIcon({ entityType, className }) {
36
37
  }
37
38
  function LogsDataListEntityCell({ entityType, entityName }) {
38
39
  const type = entityType ?? "";
39
- return /* @__PURE__ */ jsxRuntime.jsxs(dataList.DataListCell, { className: "flex min-w-0 items-center gap-2", children: [
40
+ return /* @__PURE__ */ jsxRuntime.jsxs(dataListTop.DataListCell, { className: "flex min-w-0 items-center gap-2", children: [
40
41
  /* @__PURE__ */ jsxRuntime.jsx(EntityTypeIcon, { entityType: type }),
41
42
  entityName ? /* @__PURE__ */ jsxRuntime.jsx(Txt.Txt, { as: "span", variant: "body-sm", className: "min-w-0 truncate", children: entityName }) : "-"
42
43
  ] });
43
44
  }
44
45
  function LogsDataListMessageCell({ message }) {
45
- return /* @__PURE__ */ jsxRuntime.jsx(dataList.DataListCell, { className: "min-w-0 truncate font-mono text-body-sm text-muted-foreground", children: message });
46
+ return /* @__PURE__ */ jsxRuntime.jsx(dataListTop.DataListCell, { className: "min-w-0 truncate font-mono text-body-sm text-muted-foreground", children: message });
46
47
  }
47
48
  function LogsDataListDataCell({ data }) {
48
49
  if (!data || Object.keys(data).length === 0) {
49
- return /* @__PURE__ */ jsxRuntime.jsx(dataList.DataListCell, { children: null });
50
+ return /* @__PURE__ */ jsxRuntime.jsx(dataListTop.DataListCell, { children: null });
50
51
  }
51
52
  const summary = Object.entries(data).map(([k, v]) => {
52
53
  if (typeof v === "string") return `${k}: ${v}`;
@@ -56,28 +57,28 @@ function LogsDataListDataCell({ data }) {
56
57
  return `${k}: <unserializable>`;
57
58
  }
58
59
  }).join(", ");
59
- return /* @__PURE__ */ jsxRuntime.jsx(dataList.DataListTextCell, { font: "mono", children: summary });
60
+ return /* @__PURE__ */ jsxRuntime.jsx(dataListTop.DataListTextCell, { font: "mono", children: summary });
60
61
  }
61
62
 
62
- const LogsDataList = Object.assign(dataList.DataListRoot, {
63
- Top: dataList.DataListTop,
64
- TopCell: dataList.DataListTopCell,
65
- SortableTopCell: dataList.DataListSortableTopCell,
66
- TopCellWithTooltip: dataList.DataListTopCellWithTooltip,
67
- TopCellSmart: dataList.DataListTopCellSmart,
68
- RowWrapper: dataList.DataListRowWrapper,
69
- RowButton: dataList.DataListRowButton,
70
- RowLink: dataList.DataListRowLink,
71
- Spacer: dataList.DataListSpacer,
72
- NoMatch: dataList.DataListNoMatch,
73
- DateCell: dataList.DataListDateCell,
74
- TimeCell: dataList.DataListTimeCell,
63
+ const LogsDataList = Object.assign(dataListTop.DataListRoot, {
64
+ Top: dataListTop.DataListTop,
65
+ TopCell: dataListTop.DataListTopCell,
66
+ SortableTopCell: dataListSpacer.DataListSortableTopCell,
67
+ TopCellWithTooltip: dataListTop.DataListTopCellWithTooltip,
68
+ TopCellSmart: dataListTop.DataListTopCellSmart,
69
+ RowWrapper: dataListSpacer.DataListRowWrapper,
70
+ RowButton: dataListSpacer.DataListRowButton,
71
+ RowLink: dataListSpacer.DataListRowLink,
72
+ Spacer: dataListSpacer.DataListSpacer,
73
+ NoMatch: dataListSpacer.DataListNoMatch,
74
+ DateCell: dataListTop.DataListDateCell,
75
+ TimeCell: dataListTop.DataListTimeCell,
75
76
  LevelCell: LogsDataListLevelCell,
76
77
  EntityCell: LogsDataListEntityCell,
77
78
  MessageCell: LogsDataListMessageCell,
78
79
  DataCell: LogsDataListDataCell,
79
- NextPageLoading: dataList.DataListNextPageLoading
80
+ NextPageLoading: dataListSpacer.DataListNextPageLoading
80
81
  });
81
82
 
82
83
  exports.LogsDataList = LogsDataList;
83
- //# sourceMappingURL=logs-data-list-D4sVbF23.cjs.map
84
+ //# sourceMappingURL=logs-data-list-CCrhko5Z.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"logs-data-list-D4sVbF23.cjs","sources":["../src/ds/components/LogsDataList/logs-data-list-cells.tsx","../src/ds/components/LogsDataList/logs-data-list.tsx"],"sourcesContent":["import { Badge } from '../Badge';\nimport type { BadgeVariant } from '../Badge';\nimport { DataListCell, DataListTextCell } from '../DataList/data-list-cells';\nimport { Txt } from '@/ds/components/Txt';\nimport { AgentIcon } from '@/ds/icons/AgentIcon';\nimport { ToolsIcon } from '@/ds/icons/ToolsIcon';\nimport { WorkflowIcon } from '@/ds/icons/WorkflowIcon';\nimport { cn } from '@/lib/utils';\n\ntype LogLevel = 'debug' | 'info' | 'warn' | 'error' | 'fatal';\n\nconst LEVEL_VARIANT: Record<LogLevel, BadgeVariant> = {\n debug: 'neutral',\n info: 'info',\n warn: 'warning',\n error: 'destructive',\n fatal: 'destructive',\n};\n\n// ---------------------------------------------------------------------------\n// LevelCell\n// ---------------------------------------------------------------------------\n\nexport interface LogsDataListLevelCellProps {\n level: LogLevel;\n}\n\nexport function LogsDataListLevelCell({ level }: LogsDataListLevelCellProps) {\n return (\n <DataListCell>\n <Badge variant={LEVEL_VARIANT[level]}>{level}</Badge>\n </DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// EntityCell\n// ---------------------------------------------------------------------------\n\nfunction EntityTypeIcon({ entityType, className }: { entityType: string; className?: string }) {\n const iconClass = cn('size-3.5 shrink-0 text-placeholder', className);\n const normalizedEntityType = entityType.toLowerCase();\n\n switch (normalizedEntityType) {\n case 'agent':\n return <AgentIcon className={iconClass} aria-hidden />;\n case 'workflow':\n case 'workflow_run':\n return <WorkflowIcon className={iconClass} aria-hidden />;\n case 'tool':\n return <ToolsIcon className={iconClass} aria-hidden />;\n default:\n return null;\n }\n}\n\nexport interface LogsDataListEntityCellProps {\n entityType?: string | null;\n entityName?: string | null;\n}\n\nexport function LogsDataListEntityCell({ entityType, entityName }: LogsDataListEntityCellProps) {\n const type = entityType ?? '';\n\n return (\n <DataListCell className=\"flex min-w-0 items-center gap-2\">\n <EntityTypeIcon entityType={type} />\n {entityName ? (\n <Txt as=\"span\" variant=\"body-sm\" className=\"min-w-0 truncate\">\n {entityName}\n </Txt>\n ) : (\n '-'\n )}\n </DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// MessageCell\n// ---------------------------------------------------------------------------\n\nexport interface LogsDataListMessageCellProps {\n message: string;\n}\n\nexport function LogsDataListMessageCell({ message }: LogsDataListMessageCellProps) {\n return (\n <DataListCell className=\"min-w-0 truncate font-mono text-body-sm text-muted-foreground\">{message}</DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// DataCell\n// ---------------------------------------------------------------------------\n\nexport interface LogsDataListDataCellProps {\n data?: Record<string, unknown> | null;\n}\n\nexport function LogsDataListDataCell({ data }: LogsDataListDataCellProps) {\n if (!data || Object.keys(data).length === 0) {\n return <DataListCell>{null}</DataListCell>;\n }\n\n const summary = Object.entries(data)\n .map(([k, v]) => {\n if (typeof v === 'string') return `${k}: ${v}`;\n try {\n return `${k}: ${JSON.stringify(v)}`;\n } catch {\n return `${k}: <unserializable>`;\n }\n })\n .join(', ');\n\n return <DataListTextCell font=\"mono\">{summary}</DataListTextCell>;\n}\n","import { DataListDateCell, DataListTimeCell } from '../DataList/data-list-cells';\nimport { DataListNextPageLoading } from '../DataList/data-list-next-page-loading';\nimport { DataListNoMatch } from '../DataList/data-list-no-match';\nimport { DataListRoot } from '../DataList/data-list-root';\nimport { DataListRowButton } from '../DataList/data-list-row-button';\nimport { DataListRowLink } from '../DataList/data-list-row-link';\nimport { DataListRowWrapper } from '../DataList/data-list-row-wrapper';\nimport { DataListSortableTopCell } from '../DataList/data-list-sortable-top-cell';\nimport { DataListSpacer } from '../DataList/data-list-spacer';\nimport { DataListTop } from '../DataList/data-list-top';\nimport { DataListTopCell, DataListTopCellWithTooltip, DataListTopCellSmart } from '../DataList/data-list-top-cell';\nimport {\n LogsDataListLevelCell,\n LogsDataListEntityCell,\n LogsDataListMessageCell,\n LogsDataListDataCell,\n} from './logs-data-list-cells';\n\nexport const LogsDataList = Object.assign(DataListRoot, {\n Top: DataListTop,\n TopCell: DataListTopCell,\n SortableTopCell: DataListSortableTopCell,\n TopCellWithTooltip: DataListTopCellWithTooltip,\n TopCellSmart: DataListTopCellSmart,\n RowWrapper: DataListRowWrapper,\n RowButton: DataListRowButton,\n RowLink: DataListRowLink,\n Spacer: DataListSpacer,\n NoMatch: DataListNoMatch,\n DateCell: DataListDateCell,\n TimeCell: DataListTimeCell,\n LevelCell: LogsDataListLevelCell,\n EntityCell: LogsDataListEntityCell,\n MessageCell: LogsDataListMessageCell,\n DataCell: LogsDataListDataCell,\n NextPageLoading: DataListNextPageLoading,\n});\n"],"names":["jsx","DataListCell","Badge","cn","AgentIcon","WorkflowIcon","ToolsIcon","jsxs","Txt","DataListTextCell","DataListRoot","DataListTop","DataListTopCell","DataListSortableTopCell","DataListTopCellWithTooltip","DataListTopCellSmart","DataListRowWrapper","DataListRowButton","DataListRowLink","DataListSpacer","DataListNoMatch","DataListDateCell","DataListTimeCell","DataListNextPageLoading"],"mappings":"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"}
1
+ {"version":3,"file":"logs-data-list-CCrhko5Z.cjs","sources":["../src/ds/components/LogsDataList/logs-data-list-cells.tsx","../src/ds/components/LogsDataList/logs-data-list.tsx"],"sourcesContent":["import { Badge } from '../Badge';\nimport type { BadgeVariant } from '../Badge';\nimport { DataListCell, DataListTextCell } from '../DataList/data-list-cells';\nimport { Txt } from '@/ds/components/Txt';\nimport { AgentIcon } from '@/ds/icons/AgentIcon';\nimport { ToolsIcon } from '@/ds/icons/ToolsIcon';\nimport { WorkflowIcon } from '@/ds/icons/WorkflowIcon';\nimport { cn } from '@/lib/utils';\n\ntype LogLevel = 'debug' | 'info' | 'warn' | 'error' | 'fatal';\n\nconst LEVEL_VARIANT: Record<LogLevel, BadgeVariant> = {\n debug: 'neutral',\n info: 'info',\n warn: 'warning',\n error: 'destructive',\n fatal: 'destructive',\n};\n\n// ---------------------------------------------------------------------------\n// LevelCell\n// ---------------------------------------------------------------------------\n\nexport interface LogsDataListLevelCellProps {\n level: LogLevel;\n}\n\nexport function LogsDataListLevelCell({ level }: LogsDataListLevelCellProps) {\n return (\n <DataListCell>\n <Badge variant={LEVEL_VARIANT[level]}>{level}</Badge>\n </DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// EntityCell\n// ---------------------------------------------------------------------------\n\nfunction EntityTypeIcon({ entityType, className }: { entityType: string; className?: string }) {\n const iconClass = cn('size-3.5 shrink-0 text-placeholder', className);\n const normalizedEntityType = entityType.toLowerCase();\n\n switch (normalizedEntityType) {\n case 'agent':\n return <AgentIcon className={iconClass} aria-hidden />;\n case 'workflow':\n case 'workflow_run':\n return <WorkflowIcon className={iconClass} aria-hidden />;\n case 'tool':\n return <ToolsIcon className={iconClass} aria-hidden />;\n default:\n return null;\n }\n}\n\nexport interface LogsDataListEntityCellProps {\n entityType?: string | null;\n entityName?: string | null;\n}\n\nexport function LogsDataListEntityCell({ entityType, entityName }: LogsDataListEntityCellProps) {\n const type = entityType ?? '';\n\n return (\n <DataListCell className=\"flex min-w-0 items-center gap-2\">\n <EntityTypeIcon entityType={type} />\n {entityName ? (\n <Txt as=\"span\" variant=\"body-sm\" className=\"min-w-0 truncate\">\n {entityName}\n </Txt>\n ) : (\n '-'\n )}\n </DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// MessageCell\n// ---------------------------------------------------------------------------\n\nexport interface LogsDataListMessageCellProps {\n message: string;\n}\n\nexport function LogsDataListMessageCell({ message }: LogsDataListMessageCellProps) {\n return (\n <DataListCell className=\"min-w-0 truncate font-mono text-body-sm text-muted-foreground\">{message}</DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// DataCell\n// ---------------------------------------------------------------------------\n\nexport interface LogsDataListDataCellProps {\n data?: Record<string, unknown> | null;\n}\n\nexport function LogsDataListDataCell({ data }: LogsDataListDataCellProps) {\n if (!data || Object.keys(data).length === 0) {\n return <DataListCell>{null}</DataListCell>;\n }\n\n const summary = Object.entries(data)\n .map(([k, v]) => {\n if (typeof v === 'string') return `${k}: ${v}`;\n try {\n return `${k}: ${JSON.stringify(v)}`;\n } catch {\n return `${k}: <unserializable>`;\n }\n })\n .join(', ');\n\n return <DataListTextCell font=\"mono\">{summary}</DataListTextCell>;\n}\n","import { DataListDateCell, DataListTimeCell } from '../DataList/data-list-cells';\nimport { DataListNextPageLoading } from '../DataList/data-list-next-page-loading';\nimport { DataListNoMatch } from '../DataList/data-list-no-match';\nimport { DataListRoot } from '../DataList/data-list-root';\nimport { DataListRowButton } from '../DataList/data-list-row-button';\nimport { DataListRowLink } from '../DataList/data-list-row-link';\nimport { DataListRowWrapper } from '../DataList/data-list-row-wrapper';\nimport { DataListSortableTopCell } from '../DataList/data-list-sortable-top-cell';\nimport { DataListSpacer } from '../DataList/data-list-spacer';\nimport { DataListTop } from '../DataList/data-list-top';\nimport { DataListTopCell, DataListTopCellWithTooltip, DataListTopCellSmart } from '../DataList/data-list-top-cell';\nimport {\n LogsDataListLevelCell,\n LogsDataListEntityCell,\n LogsDataListMessageCell,\n LogsDataListDataCell,\n} from './logs-data-list-cells';\n\nexport const LogsDataList = Object.assign(DataListRoot, {\n Top: DataListTop,\n TopCell: DataListTopCell,\n SortableTopCell: DataListSortableTopCell,\n TopCellWithTooltip: DataListTopCellWithTooltip,\n TopCellSmart: DataListTopCellSmart,\n RowWrapper: DataListRowWrapper,\n RowButton: DataListRowButton,\n RowLink: DataListRowLink,\n Spacer: DataListSpacer,\n NoMatch: DataListNoMatch,\n DateCell: DataListDateCell,\n TimeCell: DataListTimeCell,\n LevelCell: LogsDataListLevelCell,\n EntityCell: LogsDataListEntityCell,\n MessageCell: LogsDataListMessageCell,\n DataCell: LogsDataListDataCell,\n NextPageLoading: DataListNextPageLoading,\n});\n"],"names":["jsx","DataListCell","Badge","cn","AgentIcon","WorkflowIcon","ToolsIcon","jsxs","Txt","DataListTextCell","DataListRoot","DataListTop","DataListTopCell","DataListSortableTopCell","DataListTopCellWithTooltip","DataListTopCellSmart","DataListRowWrapper","DataListRowButton","DataListRowLink","DataListSpacer","DataListNoMatch","DataListDateCell","DataListTimeCell","DataListNextPageLoading"],"mappings":"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"}
@@ -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' | 'presets'>;
11
+ export type TraceTimeRangeChipProps = Pick<DateTimeRangePickerProps, 'preset' | 'onPresetChange' | 'dateFrom' | 'dateTo' | 'onDateChange' | 'onDateRangeChange' | 'disabled' | 'maxRangeMs' | '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
@@ -1,4 +1,8 @@
1
1
  import { TraceQueryArgs, UseTraceQueryArgs } from '@mastra/react/hooks/traces';
2
+ export declare const TRACES_LIST_REFETCH_INTERVAL_MS = 10000;
3
+ /** The server refused the request (e.g. a time range over its cap); retrying cannot change that. */
4
+ export declare function isRejectedTraceListRequest(error: unknown): boolean;
5
+ export declare function fixedWindowRefetchInterval(error: unknown): number | false;
2
6
  export interface UseTracesListSourceArgs {
3
7
  query: (now: Date) => TraceQueryArgs;
4
8
  orderBy?: TraceQueryArgs['orderBy'];
@@ -25,6 +29,8 @@ export declare function useTracesListSource({ query: buildQuery, orderBy, rollin
25
29
  [x: string]: unknown;
26
30
  } | null;
27
31
  inputPreview: string | null;
32
+ outputPreview: string | null;
33
+ errorPreview: string | null;
28
34
  threadId: string | null;
29
35
  resourceId: string | null;
30
36
  startedAt: string;
@@ -35,15 +35,4 @@ export declare function buildTraceQueryRequest({ rootEntityType, status, dateFro
35
35
  excludedFieldIds?: ReadonlySet<string>;
36
36
  now: Date;
37
37
  }): Pick<QueryTracesInput, 'timeRange' | 'where'>;
38
- export declare const TRACE_QUERY_DISCOVERY_MAX_RANGE_MS: number;
39
- /** Discovery endpoints reject ranges wider than 31 days (and `from >= to`); clamp
40
- * the page's selected range so wide custom ranges still get field suggestions
41
- * for the most recent window. */
42
- export declare function clampTraceDiscoveryTimeRange(timeRange: {
43
- from: string;
44
- to: string;
45
- }): {
46
- from: string;
47
- to: string;
48
- };
49
38
  export {};
@@ -1,7 +1,8 @@
1
1
  export interface ContentBlocksProps<T> {
2
2
  children: React.ReactNode;
3
- items: Array<T>;
3
+ items: ReadonlyArray<T>;
4
4
  onChange: (items: Array<T>) => void;
5
5
  className?: string;
6
+ renderDragPreview?: (item: T) => React.ReactNode;
6
7
  }
7
- export declare function ContentBlocks<T>({ children, items, onChange, className }: ContentBlocksProps<T>): import("react").JSX.Element;
8
+ export declare function ContentBlocks<T>({ children, items, onChange, className, renderDragPreview }: ContentBlocksProps<T>): import("react").JSX.Element;
@@ -20,13 +20,13 @@ export declare const dataListRowOuterStyles: readonly ["group/data-list-row data
20
20
  * rung, the same rung a resting control carries, and error sits on the row
21
21
  * element itself so it reads on top of the highlight.
22
22
  */
23
- export declare const dataListRowStateStyles: readonly ["active:bg-fill", "focus-visible:bg-surface-panel has-focus-visible:bg-surface-panel", "data-featured:before:bg-surface-panel has-data-featured:before:bg-surface-panel has-data-selected:before:bg-surface-panel", "data-[variant=error]:bg-destructive-subtle has-data-[variant=error]:bg-destructive-subtle data-[variant=error]:active:bg-destructive-subtle-active has-data-[variant=error]:active:bg-destructive-subtle-active"];
23
+ export declare const dataListRowStateStyles: readonly ["active:bg-fill", "focus-visible:bg-surface-panel has-focus-visible:bg-surface-panel", "data-featured:before:bg-surface-panel has-data-featured:before:bg-surface-panel has-data-selected:before:bg-surface-panel", "data-[variant=error]:bg-destructive-subtle has-data-[variant=error]:bg-destructive-subtle data-[variant=error]:active:bg-destructive-subtle-active has-data-[variant=error]:active:bg-destructive-subtle-active", "data-[variant=info]:bg-info-subtle/50 has-data-[variant=info]:bg-info-subtle/50"];
24
24
  /**
25
25
  * Layout and focus for the interactive element. The background lives on the
26
26
  * outer row element so it sits inside the root surface.
27
27
  */
28
28
  export declare const dataListRowInteractiveStyles: readonly ["grid grid-cols-subgrid gap-4 px-3 cursor-pointer", "focus-visible:outline-1 focus-visible:outline-solid focus-visible:outline-border-focus focus-visible:-outline-offset-1"];
29
- export declare const dataListRowStyles: readonly ["grid grid-cols-subgrid gap-4 px-3 cursor-pointer", "focus-visible:outline-1 focus-visible:outline-solid focus-visible:outline-border-focus focus-visible:-outline-offset-1", "group/data-list-row data-list-row col-span-full relative min-h-9", "before:absolute before:inset-0 before:-z-2 before:rounded-[inherit] before:bg-background before:content-['']", "active:bg-fill", "focus-visible:bg-surface-panel has-focus-visible:bg-surface-panel", "data-featured:before:bg-surface-panel has-data-featured:before:bg-surface-panel has-data-selected:before:bg-surface-panel", "data-[variant=error]:bg-destructive-subtle has-data-[variant=error]:bg-destructive-subtle data-[variant=error]:active:bg-destructive-subtle-active has-data-[variant=error]:active:bg-destructive-subtle-active"];
29
+ export declare const dataListRowStyles: readonly ["grid grid-cols-subgrid gap-4 px-3 cursor-pointer", "focus-visible:outline-1 focus-visible:outline-solid focus-visible:outline-border-focus focus-visible:-outline-offset-1", "group/data-list-row data-list-row col-span-full relative min-h-9", "before:absolute before:inset-0 before:-z-2 before:rounded-[inherit] before:bg-background before:content-['']", "active:bg-fill", "focus-visible:bg-surface-panel has-focus-visible:bg-surface-panel", "data-featured:before:bg-surface-panel has-data-featured:before:bg-surface-panel has-data-selected:before:bg-surface-panel", "data-[variant=error]:bg-destructive-subtle has-data-[variant=error]:bg-destructive-subtle data-[variant=error]:active:bg-destructive-subtle-active has-data-[variant=error]:active:bg-destructive-subtle-active", "data-[variant=info]:bg-info-subtle/50 has-data-[variant=info]:bg-info-subtle/50"];
30
30
  export declare const dataListRowStaticStyles: readonly ["grid grid-cols-subgrid gap-4 px-3", "group/data-list-row data-list-row col-span-full relative min-h-9", "before:absolute before:inset-0 before:-z-2 before:rounded-[inherit] before:bg-background before:content-['']"];
31
31
  /**
32
32
  * Row actions that stay out of the way until the row is hovered or focused.
@@ -37,8 +37,8 @@ export declare const dataListRowStaticStyles: readonly ["grid grid-cols-subgrid
37
37
  export declare const dataListRowActionRevealStyles = "opacity-0 pointer-coarse:opacity-100 group-focus-within/data-list-row:opacity-100 group-hover/data-list-row:opacity-100";
38
38
  export type DataListSticky = 'start';
39
39
  export declare const dataListStickyStartStyles: readonly ["data-list-sticky-start sticky left-0 z-10 isolate self-stretch overflow-visible"];
40
- /** Tone for a single row. Exposed as `data-variant`; `error` tints the row. */
41
- export type DataListRowVariant = 'default' | 'error';
40
+ /** Tone for a single row. Exposed as `data-variant`; `error` tints the row red, `info` tints it blue to set it apart. */
41
+ export type DataListRowVariant = 'default' | 'error' | 'info';
42
42
  /**
43
43
  * Layout/state modifiers shared by interactive row primitives
44
44
  * (`DataList.RowButton`, `DataList.RowLink`).
@@ -2,6 +2,8 @@ export interface CustomRangeEditorProps {
2
2
  dateFrom?: Date;
3
3
  dateTo?: Date;
4
4
  disabled?: boolean;
5
+ /** Widest range that can be applied, in milliseconds. */
6
+ maxRangeMs?: number;
5
7
  onApply: (from: Date | undefined, to: Date | undefined) => void;
6
8
  onShowPresets: () => void;
7
9
  }
@@ -9,4 +11,4 @@ export interface CustomRangeEditorProps {
9
11
  * The custom range popover body. It mounts each time the popover opens, so its drafts
10
12
  * start from the current range without the picker resetting them.
11
13
  */
12
- export declare function CustomRangeEditor({ dateFrom, dateTo, disabled, onApply, onShowPresets }: CustomRangeEditorProps): import("react").JSX.Element;
14
+ export declare function CustomRangeEditor({ dateFrom, dateTo, disabled, maxRangeMs, onApply, onShowPresets, }: CustomRangeEditorProps): import("react").JSX.Element;
@@ -13,6 +13,8 @@ export interface DateTimeRangePickerProps {
13
13
  */
14
14
  onDateRangeChange?: (from: Date | undefined, to: Date | undefined) => void;
15
15
  disabled?: boolean;
16
+ /** Widest custom range that can be applied, in milliseconds. Presets are unaffected. */
17
+ maxRangeMs?: number;
16
18
  /** Subset of presets to show. If omitted, all presets are shown. */
17
19
  presets?: readonly DateRangePreset[];
18
20
  /** Size passed through to the trigger Button. Defaults to 'md'. */
@@ -26,4 +28,4 @@ export interface DateTimeRangePickerProps {
26
28
  disabled?: boolean;
27
29
  }) => ReactElement;
28
30
  }
29
- export declare function DateTimeRangePicker({ preset, onPresetChange, dateFrom, dateTo, onDateChange, onDateRangeChange, disabled, presets, size, renderTrigger, }: DateTimeRangePickerProps): import("react").JSX.Element;
31
+ export declare function DateTimeRangePicker({ preset, onPresetChange, dateFrom, dateTo, onDateChange, onDateRangeChange, disabled, maxRangeMs, presets, size, renderTrigger, }: DateTimeRangePickerProps): import("react").JSX.Element;
@@ -75,6 +75,11 @@ export type FilterBarContextValue = {
75
75
  announce: (message: string) => void;
76
76
  announcement: string;
77
77
  ariaLabel: string;
78
+ /**
79
+ * Text shown when a field's `suggestions` resolver rejects. Return `undefined` to keep the
80
+ * default "Couldn't load values.".
81
+ */
82
+ describeSuggestionsError?: (error: unknown) => string | undefined;
78
83
  };
79
84
  export declare function useFilterBarContext(): FilterBarContextValue;
80
85
  export declare function createFilterId(): string;
@@ -91,6 +96,11 @@ export type FilterBarProviderProps = {
91
96
  /** Deepest allowed group nesting (root-level group = 1). Defaults to 3. */
92
97
  maxDepth?: number;
93
98
  ariaLabel: string;
99
+ /**
100
+ * Text shown when a field's `suggestions` resolver rejects. Return `undefined` to keep the
101
+ * default "Couldn't load values.".
102
+ */
103
+ describeSuggestionsError?: (error: unknown) => string | undefined;
94
104
  children: ReactNode;
95
105
  };
96
- export declare function FilterBarProvider({ fields, operators, value, onValueChange, createItemId, maxDepth, ariaLabel, children, }: FilterBarProviderProps): import("react").JSX.Element;
106
+ export declare function FilterBarProvider({ fields, operators, value, onValueChange, createItemId, maxDepth, ariaLabel, describeSuggestionsError, children, }: FilterBarProviderProps): import("react").JSX.Element;
@@ -27,6 +27,11 @@ export type FilterBarProps = FilterBarValueProps & {
27
27
  /** How deep advanced-filter groups may nest (root-level group = 1). Defaults to 3. */
28
28
  maxDepth?: number;
29
29
  'aria-label'?: string;
30
+ /**
31
+ * Text shown in a value list when the field's `suggestions` resolver rejects, for example
32
+ * to explain a server limit. Return `undefined` to keep the default "Couldn't load values.".
33
+ */
34
+ describeSuggestionsError?: (error: unknown) => string | undefined;
30
35
  /** Accessible label of the trailing "remove every filter" button. */
31
36
  clearLabel?: string;
32
37
  className?: string;
@@ -48,7 +53,7 @@ export type FilterBarProps = FilterBarValueProps & {
48
53
  * <FilterBar.Input />
49
54
  * </FilterBar>
50
55
  */
51
- export declare function FilterBar({ fields, operators, value, onValueChange, createItemId, maxDepth, 'aria-label': ariaLabel, clearLabel, className, children, }: FilterBarProps): import("react").JSX.Element;
56
+ export declare function FilterBar({ fields, operators, value, onValueChange, createItemId, maxDepth, 'aria-label': ariaLabel, describeSuggestionsError, clearLabel, className, children, }: FilterBarProps): import("react").JSX.Element;
52
57
  export declare namespace FilterBar {
53
58
  var Chips: typeof FilterBarChips;
54
59
  var Chip: typeof FilterBarChip;
@@ -8,6 +8,7 @@ export { SidebarMeter, type SidebarMeterProps, type SidebarMeterTone } from './f
8
8
  export { SidebarNav, type SidebarNavProps } from './nav/sidebar-nav';
9
9
  export { SidebarNavHeader, type SidebarNavHeaderProps } from './nav/sidebar-nav-header';
10
10
  export { SidebarNavLink, type SidebarLink, type SidebarNavLinkProps } from './nav/sidebar-nav-link';
11
+ export { SidebarNavShowMore, type SidebarNavShowMoreProps } from './nav/sidebar-nav-show-more';
11
12
  export { navItemClasses, type SidebarNavItemSize } from './nav/sidebar-nav-item-classes';
12
13
  export { getIsLinkActive } from './nav/sidebar-link-active';
13
14
  export { SidebarNavStack, type SidebarNavStackProps, type SidebarNavStackRootViewProps, type SidebarNavStackViewProps, } from './nav-stack/sidebar-nav-stack';
@@ -0,0 +1,9 @@
1
+ import { ComponentPropsWithoutRef } from 'react';
2
+ import { SidebarState } from '../root/sidebar-context';
3
+ export type SidebarNavShowMoreProps = Omit<ComponentPropsWithoutRef<'button'>, 'children' | 'onClick'> & {
4
+ foldedCount: number;
5
+ expanded: boolean;
6
+ onExpandedChange: (expanded: boolean) => void;
7
+ state?: SidebarState;
8
+ };
9
+ export declare function SidebarNavShowMore({ foldedCount, expanded, onExpandedChange, state: stateProp, className, ...props }: SidebarNavShowMoreProps): import("react").JSX.Element | null;
@@ -8,6 +8,7 @@ import { SidebarNavLink } from './nav/sidebar-nav-link';
8
8
  import { SidebarNavList } from './nav/sidebar-nav-list';
9
9
  import { SidebarNavSection } from './nav/sidebar-nav-section';
10
10
  import { SidebarNavSeparator } from './nav/sidebar-nav-separator';
11
+ import { SidebarNavShowMore } from './nav/sidebar-nav-show-more';
11
12
  import { SidebarMobileTrigger } from './root/sidebar-mobile-trigger';
12
13
  import { SidebarProvider } from './root/sidebar-provider';
13
14
  import { SidebarRoot } from './root/sidebar-root';
@@ -30,6 +31,7 @@ export declare const Sidebar: typeof SidebarRoot & {
30
31
  NavList: typeof SidebarNavList;
31
32
  NavSection: typeof SidebarNavSection;
32
33
  NavSeparator: typeof SidebarNavSeparator;
34
+ NavShowMore: typeof SidebarNavShowMore;
33
35
  NavStack: typeof import('./nav-stack/sidebar-nav-stack-root').SidebarNavStackRoot & {
34
36
  Root: typeof import('./nav-stack/sidebar-nav-stack-root-view').SidebarNavStackRootView;
35
37
  View: typeof import('./nav-stack/sidebar-nav-stack-view').SidebarNavStackView;
@@ -0,0 +1,15 @@
1
+ export interface LocalStorageStore<T> {
2
+ read: () => T;
3
+ write: (value: T) => void;
4
+ subscribe: (onStoreChange: () => void) => () => void;
5
+ defaultValue: T;
6
+ }
7
+ interface LocalStorageStoreOptions<T> {
8
+ key: string;
9
+ defaultValue: T;
10
+ parse: (stored: unknown) => T;
11
+ toJSON?: (value: T) => unknown;
12
+ }
13
+ export declare function createLocalStorageStore<T>({ key, defaultValue, parse, toJSON, }: LocalStorageStoreOptions<T>): LocalStorageStore<T>;
14
+ export declare function useLocalStorageStore<T>(store: LocalStorageStore<T>): T;
15
+ export {};
package/dist/style.css CHANGED
@@ -9823,6 +9823,16 @@
9823
9823
  background-color: var(--destructive-subtle-active);
9824
9824
  }
9825
9825
 
9826
+ .has-data-\[variant\=info\]\:bg-info-subtle\/50:has([data-variant="info"]) {
9827
+ background-color: var(--info-subtle);
9828
+ }
9829
+
9830
+ @supports (color: color-mix(in lab, red, red)) {
9831
+ .has-data-\[variant\=info\]\:bg-info-subtle\/50:has([data-variant="info"]) {
9832
+ background-color: color-mix(in oklab, var(--info-subtle) 50%, transparent);
9833
+ }
9834
+ }
9835
+
9826
9836
  .has-\[\:disabled\]\:cursor-not-allowed:has(:disabled) {
9827
9837
  cursor: not-allowed;
9828
9838
  }
@@ -10744,6 +10754,16 @@
10744
10754
  background-color: var(--destructive-subtle-active);
10745
10755
  }
10746
10756
 
10757
+ .data-\[variant\=info\]\:bg-info-subtle\/50[data-variant="info"] {
10758
+ background-color: var(--info-subtle);
10759
+ }
10760
+
10761
+ @supports (color: color-mix(in lab, red, red)) {
10762
+ .data-\[variant\=info\]\:bg-info-subtle\/50[data-variant="info"] {
10763
+ background-color: color-mix(in oklab, var(--info-subtle) 50%, transparent);
10764
+ }
10765
+ }
10766
+
10747
10767
  @media (prefers-reduced-motion: no-preference) {
10748
10768
  .motion-safe\:animate-in {
10749
10769
  animation: enter var(--tw-animation-duration, var(--tw-duration, .15s))var(--tw-ease, ease)var(--tw-animation-delay, 0s)var(--tw-animation-iteration-count, 1)var(--tw-animation-direction, normal)var(--tw-animation-fill-mode, none);
@@ -217,14 +217,6 @@ function buildTraceQueryRequest({
217
217
  ...args.length ? { where: { op: "and", args } } : {}
218
218
  };
219
219
  }
220
- const TRACE_QUERY_DISCOVERY_MAX_RANGE_MS = 31 * 24 * 60 * 60 * 1e3;
221
- function clampTraceDiscoveryTimeRange(timeRange) {
222
- const to = new Date(timeRange.to).getTime();
223
- const from = new Date(timeRange.from).getTime();
224
- const minFrom = to - TRACE_QUERY_DISCOVERY_MAX_RANGE_MS;
225
- if (from >= minFrom && from < to) return timeRange;
226
- return { from: new Date(minFrom).toISOString(), to: timeRange.to };
227
- }
228
220
 
229
221
  const ROOT_ENTITY_TYPE_OPTIONS = [
230
222
  { label: "Agent", entityType: ROOT_ENTITY_TYPES.AGENT },
@@ -857,5 +849,5 @@ function buildTraceListFilters({
857
849
  return filters;
858
850
  }
859
851
 
860
- export { traceFiltersToFilterBarExpression as $, buildTraceQueryRequest as A, clampTraceDiscoveryTimeRange as B, clearSavedTraceFilters as C, DEFAULT_TRACE_FILTERS_STORAGE_KEY as D, createTraceFilterBarFields as E, filterBarExpressionToTraceFilters as F, filterBarItemsToTraceTokens as G, getPreservedTraceFilterParams as H, getTraceFilterGroups as I, getTracePropertyFilterTokens as J, hasAnyTraceFilterParams as K, isLegacyAnyValue as L, isTraceFilterGroup as M, isTraceFilterOperatorId as N, isTraceMetadataFieldId as O, loadTraceFiltersFromStorage as P, metadataFieldIdToParam as Q, ROOT_ENTITY_TYPE_OPTIONS as R, metadataParamToFieldId as S, TRACE_ANCHOR_SPAN_ID_PARAM as T, parseTraceFilterGroupParam as U, saveTraceFiltersToStorage as V, serializeTraceFilterGroup as W, traceFilterFieldColor as X, traceFilterFieldIcon as Y, traceFilterOperatorParam as Z, traceFilterTokenOperator as _, TRACE_DATE_FROM_PARAM as a, traceTokensToFilterBarItems as a0, TRACE_DATE_PRESET_PARAM as b, TRACE_DATE_PRESET_VALUES as c, TRACE_DATE_TO_PARAM as d, TRACE_FILTER_BAR_OPERATORS as e, TRACE_FILTER_GROUP_PARAM as f, TRACE_FILTER_OPERATOR_IDS as g, TRACE_FILTER_OPERATOR_PARAM_SUFFIX as h, TRACE_LIST_MODE_OPTIONS as i, TRACE_LIST_MODE_PARAM as j, TRACE_LIST_MODE_VALUES as k, TRACE_METADATA_FILTER_FIELD_PREFIX as l, TRACE_METADATA_FILTER_PARAM_PREFIX as m, TRACE_PROPERTY_FILTER_FIELD_IDS as n, TRACE_PROPERTY_FILTER_PARAM_BY_FIELD as o, TRACE_QUERY_DISCOVERY_MAX_RANGE_MS as p, TRACE_QUERY_NUMERIC_FIELD_IDS as q, TRACE_QUERY_OPTIONAL_TRACE_FIELD_IDS as r, TRACE_QUERY_UNSUPPORTED_FILTER_FIELDS as s, TRACE_ROOT_ENTITY_TYPE_PARAM as t, TRACE_STATUS_OPTIONS as u, TRACE_STATUS_PARAM as v, TRACE_STATUS_VALUES as w, TRACE_SYNTHETIC_FILTER_FIELD_IDS as x, applyTracePropertyFilterTokens as y, buildTraceListFilters as z };
861
- //# sourceMappingURL=trace-filters-C71gmCq4.js.map
852
+ export { clearSavedTraceFilters as A, createTraceFilterBarFields as B, filterBarExpressionToTraceFilters as C, DEFAULT_TRACE_FILTERS_STORAGE_KEY as D, filterBarItemsToTraceTokens as E, getPreservedTraceFilterParams as F, getTraceFilterGroups as G, getTracePropertyFilterTokens as H, hasAnyTraceFilterParams as I, isLegacyAnyValue as J, isTraceFilterGroup as K, isTraceFilterOperatorId as L, isTraceMetadataFieldId as M, loadTraceFiltersFromStorage as N, metadataFieldIdToParam as O, metadataParamToFieldId as P, parseTraceFilterGroupParam as Q, ROOT_ENTITY_TYPE_OPTIONS as R, saveTraceFiltersToStorage as S, TRACE_ANCHOR_SPAN_ID_PARAM as T, serializeTraceFilterGroup as U, traceFilterFieldColor as V, traceFilterFieldIcon as W, traceFilterOperatorParam as X, traceFilterTokenOperator as Y, traceFiltersToFilterBarExpression as Z, traceTokensToFilterBarItems as _, TRACE_DATE_FROM_PARAM as a, TRACE_DATE_PRESET_PARAM as b, TRACE_DATE_PRESET_VALUES as c, TRACE_DATE_TO_PARAM as d, TRACE_FILTER_BAR_OPERATORS as e, TRACE_FILTER_GROUP_PARAM as f, TRACE_FILTER_OPERATOR_IDS as g, TRACE_FILTER_OPERATOR_PARAM_SUFFIX as h, TRACE_LIST_MODE_OPTIONS as i, TRACE_LIST_MODE_PARAM as j, TRACE_LIST_MODE_VALUES as k, TRACE_METADATA_FILTER_FIELD_PREFIX as l, TRACE_METADATA_FILTER_PARAM_PREFIX as m, TRACE_PROPERTY_FILTER_FIELD_IDS as n, TRACE_PROPERTY_FILTER_PARAM_BY_FIELD as o, TRACE_QUERY_NUMERIC_FIELD_IDS as p, TRACE_QUERY_OPTIONAL_TRACE_FIELD_IDS as q, TRACE_QUERY_UNSUPPORTED_FILTER_FIELDS as r, TRACE_ROOT_ENTITY_TYPE_PARAM as s, TRACE_STATUS_OPTIONS as t, TRACE_STATUS_PARAM as u, TRACE_STATUS_VALUES as v, TRACE_SYNTHETIC_FILTER_FIELD_IDS as w, applyTracePropertyFilterTokens as x, buildTraceListFilters as y, buildTraceQueryRequest as z };
853
+ //# sourceMappingURL=trace-filters-C91h9X86.js.map