@mastra/playground-ui 65.0.0-alpha.2 → 65.0.0-alpha.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (883) hide show
  1. package/README.md +10 -0
  2. package/components.css +7 -0
  3. package/dist/{Avatar-98bsFrSV.js → Avatar-BjaG9NU_.js} +10 -8
  4. package/dist/Avatar-BjaG9NU_.js.map +1 -0
  5. package/dist/{Avatar-BCj8SvOb.cjs → Avatar-DM90rmwx.cjs} +10 -8
  6. package/dist/Avatar-DM90rmwx.cjs.map +1 -0
  7. package/dist/{Button-DH1aTzbs.cjs → Button-C4I05uT4.cjs} +17 -10
  8. package/dist/Button-C4I05uT4.cjs.map +1 -0
  9. package/dist/{Button-EGoajBQY.js → Button-D8a5EWJ5.js} +18 -11
  10. package/dist/Button-D8a5EWJ5.js.map +1 -0
  11. package/dist/{ErrorBoundary-DQPzT6am.js → ErrorBoundary-C6JifxpQ.js} +2 -2
  12. package/dist/{ErrorBoundary-DQPzT6am.js.map → ErrorBoundary-C6JifxpQ.js.map} +1 -1
  13. package/dist/{ErrorBoundary-CpUob9SO.cjs → ErrorBoundary-DP1JqmTo.cjs} +2 -2
  14. package/dist/{ErrorBoundary-CpUob9SO.cjs.map → ErrorBoundary-DP1JqmTo.cjs.map} +1 -1
  15. package/dist/Notice-BioYTS4b.js.map +1 -1
  16. package/dist/Notice-DYgIy4FO.cjs.map +1 -1
  17. package/dist/{activity-CsTUr5_l.js → activity-B7c_nQMn.js} +2 -2
  18. package/dist/activity-B7c_nQMn.js.map +1 -0
  19. package/dist/{activity-2tovEdIP.cjs → activity-D3iI9pYN.cjs} +2 -2
  20. package/dist/activity-D3iI9pYN.cjs.map +1 -0
  21. package/dist/{alert-dialog-B7JTnkF4.js → alert-dialog-B13NSeKN.js} +3 -3
  22. package/dist/{alert-dialog-B7JTnkF4.js.map → alert-dialog-B13NSeKN.js.map} +1 -1
  23. package/dist/{alert-dialog-B1gWLQm2.cjs → alert-dialog-DY2JJAnk.cjs} +3 -3
  24. package/dist/{alert-dialog-B1gWLQm2.cjs.map → alert-dialog-DY2JJAnk.cjs.map} +1 -1
  25. package/dist/arrival-C1hkyLHm.js.map +1 -1
  26. package/dist/arrival-Cvxloi0B.cjs.map +1 -1
  27. package/dist/{ask-user-card-DroerVbm.cjs → ask-user-card-DiFQcUzM.cjs} +2 -2
  28. package/dist/ask-user-card-DiFQcUzM.cjs.map +1 -0
  29. package/dist/{ask-user-card-BCjsjimu.js → ask-user-card-DnvW7jXS.js} +2 -2
  30. package/dist/{ask-user-card-BCjsjimu.js.map → ask-user-card-DnvW7jXS.js.map} +1 -1
  31. package/dist/{avatar-size-CNR0U-LW.js → avatar-size-BXzy28Bx.js} +4 -1
  32. package/dist/avatar-size-BXzy28Bx.js.map +1 -0
  33. package/dist/{avatar-size-DxStOo5A.cjs → avatar-size-DIFE4I8A.cjs} +4 -1
  34. package/dist/avatar-size-DIFE4I8A.cjs.map +1 -0
  35. package/dist/buttons-group.css +0 -4
  36. package/dist/code-DJReJPSX.cjs.map +1 -1
  37. package/dist/code-DLuATvYu.js.map +1 -1
  38. package/dist/{code-block-vpcX2sDQ.cjs → code-block-C79fiykv.cjs} +4 -4
  39. package/dist/{code-block-vpcX2sDQ.cjs.map → code-block-C79fiykv.cjs.map} +1 -1
  40. package/dist/{code-block-DIDa6lg6.js → code-block-D6A1DMv-.js} +4 -4
  41. package/dist/{code-block-DIDa6lg6.js.map → code-block-D6A1DMv-.js.map} +1 -1
  42. package/dist/{code-editor-BDxYMkGm.js → code-editor-8Fpinga4.js} +2 -2
  43. package/dist/{code-editor-BDxYMkGm.js.map → code-editor-8Fpinga4.js.map} +1 -1
  44. package/dist/{code-editor-DQuJ1XXd.cjs → code-editor-Bd-Cldem.cjs} +2 -2
  45. package/dist/{code-editor-DQuJ1XXd.cjs.map → code-editor-Bd-Cldem.cjs.map} +1 -1
  46. package/dist/{collapsible-box-B9ATVQzW.cjs → collapsible-box-CzU0OwJx.cjs} +2 -2
  47. package/dist/{collapsible-box-B9ATVQzW.cjs.map → collapsible-box-CzU0OwJx.cjs.map} +1 -1
  48. package/dist/{collapsible-box-CMBYunuM.js → collapsible-box-DotFa3hr.js} +2 -2
  49. package/dist/{collapsible-box-CMBYunuM.js.map → collapsible-box-DotFa3hr.js.map} +1 -1
  50. package/dist/{combobox-Bw13EcK0.js → combobox-BCoCVZHs.js} +7 -5
  51. package/dist/combobox-BCoCVZHs.js.map +1 -0
  52. package/dist/{combobox-BNlVCFgY.cjs → combobox-DbZAWh8q.cjs} +7 -5
  53. package/dist/combobox-DbZAWh8q.cjs.map +1 -0
  54. package/dist/{combobox-styles-Dr66ofEp.js → combobox-styles-Cens2tsx.js} +2 -2
  55. package/dist/{combobox-styles-Dr66ofEp.js.map → combobox-styles-Cens2tsx.js.map} +1 -1
  56. package/dist/{combobox-styles-BK2nGTNl.cjs → combobox-styles-Cy4rpw03.cjs} +2 -2
  57. package/dist/{combobox-styles-BK2nGTNl.cjs.map → combobox-styles-Cy4rpw03.cjs.map} +1 -1
  58. package/dist/{command-UEPxVJlE.cjs → command-Duh5C_Pm.cjs} +2 -2
  59. package/dist/command-Duh5C_Pm.cjs.map +1 -0
  60. package/dist/{command-V9rsKc7P.js → command-xIH7ZTdl.js} +2 -2
  61. package/dist/command-xIH7ZTdl.js.map +1 -0
  62. package/dist/components/AlertDialog.cjs.js +1 -1
  63. package/dist/components/AlertDialog.es.js +1 -1
  64. package/dist/components/Avatar.cjs.js +1 -1
  65. package/dist/components/Avatar.es.js +1 -1
  66. package/dist/components/Breadcrumb.cjs.js +7 -4
  67. package/dist/components/Breadcrumb.cjs.js.map +1 -1
  68. package/dist/components/Breadcrumb.es.js +7 -4
  69. package/dist/components/Breadcrumb.es.js.map +1 -1
  70. package/dist/components/Button.cjs.js +1 -1
  71. package/dist/components/Button.es.js +2 -2
  72. package/dist/components/ClampedText.cjs.js +2 -2
  73. package/dist/components/ClampedText.cjs.js.map +1 -1
  74. package/dist/components/ClampedText.es.js +2 -2
  75. package/dist/components/ClampedText.es.js.map +1 -1
  76. package/dist/components/CodeBlock.cjs.js +1 -1
  77. package/dist/components/CodeBlock.es.js +1 -1
  78. package/dist/components/CodeEditor.cjs.js +1 -1
  79. package/dist/components/CodeEditor.es.js +1 -1
  80. package/dist/components/CollapsibleBox.cjs.js +1 -1
  81. package/dist/components/CollapsibleBox.es.js +1 -1
  82. package/dist/components/Combobox.cjs.js +2 -2
  83. package/dist/components/Combobox.es.js +2 -2
  84. package/dist/components/Command.cjs.js +1 -1
  85. package/dist/components/Command.es.js +1 -1
  86. package/dist/components/CommandPalette.cjs.js +1 -1
  87. package/dist/components/CommandPalette.es.js +1 -1
  88. package/dist/components/Comment.cjs.js +2 -2
  89. package/dist/components/Comment.es.js +2 -2
  90. package/dist/components/CopyButton.cjs.js +1 -1
  91. package/dist/components/CopyButton.es.js +1 -1
  92. package/dist/components/DataCodeSection.cjs.js +1 -1
  93. package/dist/components/DataCodeSection.es.js +1 -1
  94. package/dist/components/DataDetailsPanel.cjs.js +2 -2
  95. package/dist/components/DataDetailsPanel.es.js +2 -2
  96. package/dist/components/DataKeysAndValues.cjs.js +1 -1
  97. package/dist/components/DataKeysAndValues.es.js +1 -1
  98. package/dist/components/DataList.cjs.js +15 -17
  99. package/dist/components/DataList.cjs.js.map +1 -1
  100. package/dist/components/DataList.es.js +4 -5
  101. package/dist/components/DataList.es.js.map +1 -1
  102. package/dist/components/DataPanel.cjs.js +1 -1
  103. package/dist/components/DataPanel.es.js +1 -1
  104. package/dist/components/DateRangeTimeline.cjs.js +1 -1
  105. package/dist/components/DateRangeTimeline.es.js +1 -1
  106. package/dist/components/DateTimePicker.cjs.js +2 -2
  107. package/dist/components/DateTimePicker.es.js +2 -2
  108. package/dist/components/DateTimeRangePicker.cjs.js +1 -1
  109. package/dist/components/DateTimeRangePicker.es.js +1 -1
  110. package/dist/components/Dialog.cjs.js +2 -2
  111. package/dist/components/Dialog.es.js +2 -2
  112. package/dist/components/DisabledFeatureButton.cjs.js +1 -1
  113. package/dist/components/DisabledFeatureButton.es.js +1 -1
  114. package/dist/components/Drawer.cjs.js +1 -1
  115. package/dist/components/Drawer.es.js +1 -1
  116. package/dist/components/EnvironmentVariablesEditor.cjs.js +3 -3
  117. package/dist/components/EnvironmentVariablesEditor.cjs.js.map +1 -1
  118. package/dist/components/EnvironmentVariablesEditor.es.js +3 -3
  119. package/dist/components/EnvironmentVariablesEditor.es.js.map +1 -1
  120. package/dist/components/ErrorBoundary.cjs.js +1 -1
  121. package/dist/components/ErrorBoundary.es.js +1 -1
  122. package/dist/components/FilterBar.cjs.js +8 -31
  123. package/dist/components/FilterBar.cjs.js.map +1 -1
  124. package/dist/components/FilterBar.es.js +10 -33
  125. package/dist/components/FilterBar.es.js.map +1 -1
  126. package/dist/components/FormFieldBlocks.cjs.js +3 -3
  127. package/dist/components/FormFieldBlocks.cjs.js.map +1 -1
  128. package/dist/components/FormFieldBlocks.es.js +3 -3
  129. package/dist/components/FormFieldBlocks.es.js.map +1 -1
  130. package/dist/components/InputGroup.cjs.js +1 -1
  131. package/dist/components/InputGroup.es.js +1 -1
  132. package/dist/components/InputNumber.cjs.js +2 -2
  133. package/dist/components/InputNumber.es.js +2 -2
  134. package/dist/components/JSONSchemaForm.cjs.js +2 -2
  135. package/dist/components/JSONSchemaForm.es.js +2 -2
  136. package/dist/components/ListSearch.cjs.js +1 -1
  137. package/dist/components/ListSearch.es.js +1 -1
  138. package/dist/components/LogsDataList.cjs.js +5 -2
  139. package/dist/components/LogsDataList.cjs.js.map +1 -1
  140. package/dist/components/LogsDataList.es.js +5 -2
  141. package/dist/components/LogsDataList.es.js.map +1 -1
  142. package/dist/components/MarkdownRenderer.cjs.js +1 -1
  143. package/dist/components/MarkdownRenderer.es.js +1 -1
  144. package/dist/components/Message.cjs.js +1 -1
  145. package/dist/components/Message.es.js +1 -1
  146. package/dist/components/MetricsCard.cjs.js +1 -1
  147. package/dist/components/MetricsCard.es.js +1 -1
  148. package/dist/components/PrevNextNav.cjs.js +1 -1
  149. package/dist/components/PrevNextNav.es.js +1 -1
  150. package/dist/components/ProductAvatar.cjs.js +2 -1
  151. package/dist/components/ProductAvatar.cjs.js.map +1 -1
  152. package/dist/components/ProductAvatar.es.js +2 -1
  153. package/dist/components/ProductAvatar.es.js.map +1 -1
  154. package/dist/components/PropertyFilter.cjs.js +4 -4
  155. package/dist/components/PropertyFilter.cjs.js.map +1 -1
  156. package/dist/components/PropertyFilter.es.js +5 -5
  157. package/dist/components/PropertyFilter.es.js.map +1 -1
  158. package/dist/components/RuleBuilder.cjs.js +3 -2
  159. package/dist/components/RuleBuilder.cjs.js.map +1 -1
  160. package/dist/components/RuleBuilder.es.js +3 -2
  161. package/dist/components/RuleBuilder.es.js.map +1 -1
  162. package/dist/components/SavedViews.cjs.js +4 -8
  163. package/dist/components/SavedViews.cjs.js.map +1 -1
  164. package/dist/components/SavedViews.es.js +5 -9
  165. package/dist/components/SavedViews.es.js.map +1 -1
  166. package/dist/components/SearchInput.cjs.js +1 -1
  167. package/dist/components/SearchInput.es.js +1 -1
  168. package/dist/components/Select.cjs.js +1 -1
  169. package/dist/components/Select.es.js +1 -1
  170. package/dist/components/SideDialog.cjs.js +1 -1
  171. package/dist/components/SideDialog.es.js +1 -1
  172. package/dist/components/Sidebar.cjs.js +3 -3
  173. package/dist/components/Sidebar.cjs.js.map +1 -1
  174. package/dist/components/Sidebar.es.js +3 -3
  175. package/dist/components/Sidebar.es.js.map +1 -1
  176. package/dist/components/StatusIndicators.cjs.js.map +1 -1
  177. package/dist/components/StatusIndicators.es.js.map +1 -1
  178. package/dist/components/Table.cjs.js.map +1 -1
  179. package/dist/components/Table.es.js.map +1 -1
  180. package/dist/components/Tabs.cjs.js +1 -1
  181. package/dist/components/Tabs.es.js +1 -1
  182. package/dist/components/ThreadList.cjs.js +1 -1
  183. package/dist/components/ThreadList.es.js +1 -1
  184. package/dist/components/ThreadRail.cjs.js.map +1 -1
  185. package/dist/components/ThreadRail.es.js.map +1 -1
  186. package/dist/components/Truncate.cjs.js +1 -1
  187. package/dist/components/Truncate.es.js +1 -1
  188. package/dist/components/Workflow.cjs.js +6 -6
  189. package/dist/components/Workflow.es.js +6 -6
  190. package/dist/components/ai/activity.cjs.js +4 -4
  191. package/dist/components/ai/activity.es.js +4 -4
  192. package/dist/components/ai/ask-user.cjs.js +1 -1
  193. package/dist/components/ai/ask-user.es.js +1 -1
  194. package/dist/components/ai/plan.cjs.js +1 -1
  195. package/dist/components/ai/plan.es.js +1 -1
  196. package/dist/components/ai/tool-approval.cjs.js +1 -1
  197. package/dist/components/ai/tool-approval.es.js +1 -1
  198. package/dist/components/ai/tool-call.cjs.js +4 -4
  199. package/dist/components/ai/tool-call.es.js +4 -4
  200. package/dist/composer-Bs4iyUfe.js.map +1 -1
  201. package/dist/composer-CDQnP3og.cjs.map +1 -1
  202. package/dist/context-menu-C67xhcfa.js.map +1 -1
  203. package/dist/context-menu-jNuzE86D.cjs.map +1 -1
  204. package/dist/{copy-button-Cd0keCti.cjs → copy-button-BC02oZJo.cjs} +2 -2
  205. package/dist/{copy-button-Cd0keCti.cjs.map → copy-button-BC02oZJo.cjs.map} +1 -1
  206. package/dist/{copy-button-C_M3Tu_-.js → copy-button-B_i9lwFJ.js} +2 -2
  207. package/dist/{copy-button-C_M3Tu_-.js.map → copy-button-B_i9lwFJ.js.map} +1 -1
  208. package/dist/{data-code-section-lj3PaHjc.cjs → data-code-section-BJa6NDgN.cjs} +5 -5
  209. package/dist/{data-code-section-lj3PaHjc.cjs.map → data-code-section-BJa6NDgN.cjs.map} +1 -1
  210. package/dist/{data-code-section-mpRgtM8j.js → data-code-section-Cjs-piiY.js} +5 -5
  211. package/dist/{data-code-section-mpRgtM8j.js.map → data-code-section-Cjs-piiY.js.map} +1 -1
  212. package/dist/{data-keys-and-values-1lYi60YK.cjs → data-keys-and-values-DBXIqeXt.cjs} +2 -2
  213. package/dist/data-keys-and-values-DBXIqeXt.cjs.map +1 -0
  214. package/dist/{data-keys-and-values-CHpxKsfq.js → data-keys-and-values-DHp6cHJo.js} +2 -2
  215. package/dist/data-keys-and-values-DHp6cHJo.js.map +1 -0
  216. package/dist/{data-list-top-DJh08vFA.cjs → data-list-DlXU1PLQ.cjs} +339 -13
  217. package/dist/data-list-DlXU1PLQ.cjs.map +1 -0
  218. package/dist/{data-list-top-T-mtdIUp.js → data-list-Tor18oy5.js} +332 -5
  219. package/dist/data-list-Tor18oy5.js.map +1 -0
  220. package/dist/{data-list-skeleton-bNfITSHs.js → data-list-skeleton-CXUB-u3p.js} +2 -2
  221. package/dist/{data-list-skeleton-bNfITSHs.js.map → data-list-skeleton-CXUB-u3p.js.map} +1 -1
  222. package/dist/{data-list-skeleton-sdcaabdX.cjs → data-list-skeleton-DY0F40WQ.cjs} +6 -6
  223. package/dist/{data-list-skeleton-sdcaabdX.cjs.map → data-list-skeleton-DY0F40WQ.cjs.map} +1 -1
  224. package/dist/{data-panel-BkfjzriB.cjs → data-panel-DGNV14pm.cjs} +20 -9
  225. package/dist/data-panel-DGNV14pm.cjs.map +1 -0
  226. package/dist/{data-panel-CMkR6Avv.js → data-panel-DjtnX70w.js} +20 -9
  227. package/dist/data-panel-DjtnX70w.js.map +1 -0
  228. package/dist/{date-time-range-picker-BjQVCVUM.cjs → date-time-range-picker-CXGab8Nj.cjs} +3 -3
  229. package/dist/{date-time-range-picker-BjQVCVUM.cjs.map → date-time-range-picker-CXGab8Nj.cjs.map} +1 -1
  230. package/dist/{date-time-range-picker-D-EECKzz.js → date-time-range-picker-CcnDMZJu.js} +3 -3
  231. package/dist/{date-time-range-picker-D-EECKzz.js.map → date-time-range-picker-CcnDMZJu.js.map} +1 -1
  232. package/dist/{dialog-j2e95YNV.js → dialog-AzCRnEo3.js} +3 -3
  233. package/dist/{dialog-j2e95YNV.js.map → dialog-AzCRnEo3.js.map} +1 -1
  234. package/dist/{dialog-BMUfQ9XU.cjs → dialog-SSeOqRnH.cjs} +3 -3
  235. package/dist/{dialog-BMUfQ9XU.cjs.map → dialog-SSeOqRnH.cjs.map} +1 -1
  236. package/dist/{dialog-action-CmFDNyZX.cjs → dialog-action-Caa-pb85.cjs} +3 -3
  237. package/dist/{dialog-action-CmFDNyZX.cjs.map → dialog-action-Caa-pb85.cjs.map} +1 -1
  238. package/dist/{dialog-action-zKqvuroE.js → dialog-action-DykMOK2W.js} +3 -3
  239. package/dist/{dialog-action-zKqvuroE.js.map → dialog-action-DykMOK2W.js.map} +1 -1
  240. package/dist/domains/auth/components/session-expired.cjs.js +1 -1
  241. package/dist/domains/auth/components/session-expired.es.js +1 -1
  242. package/dist/domains/chat/attachments/attachment-preview-dialog.cjs.js +2 -2
  243. package/dist/domains/chat/attachments/attachment-preview-dialog.es.js +2 -2
  244. package/dist/domains/chat/attachments/composer-attachment.cjs.js +1 -1
  245. package/dist/domains/chat/attachments/composer-attachment.es.js +1 -1
  246. package/dist/domains/chat/components/badge-wrapper.cjs.js +1 -1
  247. package/dist/domains/chat/components/badge-wrapper.es.js +1 -1
  248. package/dist/domains/chat/components/network-choice-metadata-dialog.cjs.js +3 -3
  249. package/dist/domains/chat/components/network-choice-metadata-dialog.es.js +3 -3
  250. package/dist/domains/chat/messages/assistant-message-actions.cjs.js +2 -2
  251. package/dist/domains/chat/messages/assistant-message-actions.es.js +2 -2
  252. package/dist/domains/chat/messages/dataset-save-action.cjs.js +5 -5
  253. package/dist/domains/chat/messages/dataset-save-action.es.js +5 -5
  254. package/dist/domains/chat/messages/message-row.cjs.js +4 -4
  255. package/dist/domains/chat/messages/message-row.es.js +4 -4
  256. package/dist/domains/chat/messages/notification-signal-notice.cjs.js +1 -1
  257. package/dist/domains/chat/messages/notification-signal-notice.es.js +1 -1
  258. package/dist/domains/chat/messages/renderers/message-text.cjs.js +1 -1
  259. package/dist/domains/chat/messages/renderers/message-text.cjs.js.map +1 -1
  260. package/dist/domains/chat/messages/renderers/message-text.es.js +1 -1
  261. package/dist/domains/chat/messages/renderers/message-text.es.js.map +1 -1
  262. package/dist/domains/chat/messages/renderers/reasoning-part-renderer.cjs.js +1 -1
  263. package/dist/domains/chat/messages/renderers/reasoning-part-renderer.es.js +1 -1
  264. package/dist/domains/chat/messages/signal-badge.cjs.js +1 -1
  265. package/dist/domains/chat/messages/signal-badge.es.js +1 -1
  266. package/dist/domains/chat/messages/skill-message.cjs.js +3 -3
  267. package/dist/domains/chat/messages/skill-message.es.js +3 -3
  268. package/dist/domains/chat/messages/system-reminder-badge.cjs.js +1 -1
  269. package/dist/domains/chat/messages/system-reminder-badge.es.js +1 -1
  270. package/dist/domains/chat/om/om-parts-converter.cjs.js.map +1 -1
  271. package/dist/domains/chat/om/om-parts-converter.es.js.map +1 -1
  272. package/dist/domains/chat/tools/badges/agent-badge-wrapper.cjs.js +1 -1
  273. package/dist/domains/chat/tools/badges/agent-badge-wrapper.es.js +1 -1
  274. package/dist/domains/chat/tools/badges/agent-badge.cjs.js +4 -4
  275. package/dist/domains/chat/tools/badges/agent-badge.es.js +4 -4
  276. package/dist/domains/chat/tools/badges/ask-user-badge.cjs.js +1 -1
  277. package/dist/domains/chat/tools/badges/ask-user-badge.es.js +1 -1
  278. package/dist/domains/chat/tools/badges/background-task-metadata-dialog.cjs.js +3 -3
  279. package/dist/domains/chat/tools/badges/background-task-metadata-dialog.cjs.js.map +1 -1
  280. package/dist/domains/chat/tools/badges/background-task-metadata-dialog.es.js +3 -3
  281. package/dist/domains/chat/tools/badges/background-task-metadata-dialog.es.js.map +1 -1
  282. package/dist/domains/chat/tools/badges/code-mode-badge.cjs.js +2 -2
  283. package/dist/domains/chat/tools/badges/code-mode-badge.es.js +2 -2
  284. package/dist/domains/chat/tools/badges/file-tree-badge.cjs.js +2 -2
  285. package/dist/domains/chat/tools/badges/file-tree-badge.es.js +2 -2
  286. package/dist/domains/chat/tools/badges/observation-marker-badge.cjs.js +2 -2
  287. package/dist/domains/chat/tools/badges/observation-marker-badge.es.js +2 -2
  288. package/dist/domains/chat/tools/badges/observation-marker-details.cjs.js +2 -2
  289. package/dist/domains/chat/tools/badges/observation-marker-details.es.js +2 -2
  290. package/dist/domains/chat/tools/badges/observation-renderer.cjs.js +1 -1
  291. package/dist/domains/chat/tools/badges/observation-renderer.es.js +1 -1
  292. package/dist/domains/chat/tools/badges/sandbox-execution-badge.cjs.js +1 -1
  293. package/dist/domains/chat/tools/badges/sandbox-execution-badge.es.js +1 -1
  294. package/dist/domains/chat/tools/badges/tool-approval-badge.cjs.js +1 -1
  295. package/dist/domains/chat/tools/badges/tool-approval-badge.es.js +1 -1
  296. package/dist/domains/chat/tools/badges/tool-badge.cjs.js +3 -3
  297. package/dist/domains/chat/tools/badges/tool-badge.es.js +3 -3
  298. package/dist/domains/chat/tools/badges/workflow-badge.cjs.js +6 -3
  299. package/dist/domains/chat/tools/badges/workflow-badge.cjs.js.map +1 -1
  300. package/dist/domains/chat/tools/badges/workflow-badge.es.js +6 -3
  301. package/dist/domains/chat/tools/badges/workflow-badge.es.js.map +1 -1
  302. package/dist/domains/chat/tools/submit-plan-tool.cjs.js +2 -2
  303. package/dist/domains/chat/tools/submit-plan-tool.es.js +2 -2
  304. package/dist/domains/chat/tools/tool-card.cjs.js +1 -1
  305. package/dist/domains/chat/tools/tool-card.es.js +1 -1
  306. package/dist/domains/datasets/components/save-as-dataset-item-dialog.cjs.js +4 -4
  307. package/dist/domains/datasets/components/save-as-dataset-item-dialog.es.js +4 -4
  308. package/dist/domains/logs/components/log-data-panel.cjs.js +4 -4
  309. package/dist/domains/logs/components/log-data-panel.es.js +4 -4
  310. package/dist/domains/logs/components/logs-list-view.cjs.js +3 -2
  311. package/dist/domains/logs/components/logs-list-view.cjs.js.map +1 -1
  312. package/dist/domains/logs/components/logs-list-view.es.js +3 -2
  313. package/dist/domains/logs/components/logs-list-view.es.js.map +1 -1
  314. package/dist/domains/logs/components/logs-toolbar.cjs.js +1 -1
  315. package/dist/domains/logs/components/logs-toolbar.es.js +1 -1
  316. package/dist/domains/logs/components/no-logs-info.cjs.js +1 -1
  317. package/dist/domains/logs/components/no-logs-info.es.js +1 -1
  318. package/dist/domains/mcps/components/mcp-app-viewer.cjs.js.map +1 -1
  319. package/dist/domains/mcps/components/mcp-app-viewer.es.js.map +1 -1
  320. package/dist/domains/memory/components/flame-graph.cjs.js +1 -1
  321. package/dist/domains/memory/components/flame-graph.es.js +1 -1
  322. package/dist/domains/memory/components/memory-studio-panel.cjs.js +1 -1
  323. package/dist/domains/memory/components/memory-studio-panel.es.js +1 -1
  324. package/dist/domains/metrics/components/agent-runs-card.cjs.js +1 -1
  325. package/dist/domains/metrics/components/agent-runs-card.es.js +1 -1
  326. package/dist/domains/metrics/components/card-action-buttons.cjs.js +1 -1
  327. package/dist/domains/metrics/components/card-action-buttons.es.js +1 -1
  328. package/dist/domains/metrics/components/chart-area.cjs.js +1 -1
  329. package/dist/domains/metrics/components/chart-area.es.js +1 -1
  330. package/dist/domains/metrics/components/chart-card-error.cjs.js +1 -1
  331. package/dist/domains/metrics/components/chart-card-error.es.js +1 -1
  332. package/dist/domains/metrics/components/chart-card.cjs.js +1 -1
  333. package/dist/domains/metrics/components/chart-card.es.js +1 -1
  334. package/dist/domains/metrics/components/date-range-selector.cjs.js +1 -1
  335. package/dist/domains/metrics/components/date-range-selector.es.js +1 -1
  336. package/dist/domains/metrics/components/failure-rate-card.cjs.js +1 -1
  337. package/dist/domains/metrics/components/failure-rate-card.es.js +1 -1
  338. package/dist/domains/metrics/components/latency-card.cjs.js +1 -1
  339. package/dist/domains/metrics/components/latency-card.es.js +1 -1
  340. package/dist/domains/metrics/components/scores-card.cjs.js +1 -1
  341. package/dist/domains/metrics/components/scores-card.es.js +1 -1
  342. package/dist/domains/metrics/components/token-usage-card.cjs.js +1 -1
  343. package/dist/domains/metrics/components/token-usage-card.es.js +1 -1
  344. package/dist/domains/metrics/components/trace-volume-card.cjs.js +1 -1
  345. package/dist/domains/metrics/components/trace-volume-card.es.js +1 -1
  346. package/dist/domains/metrics/components/usage-card.cjs.js +1 -1
  347. package/dist/domains/metrics/components/usage-card.es.js +1 -1
  348. package/dist/domains/observability/components/add-trace-mocks-to-item-dialog.cjs.js +4 -4
  349. package/dist/domains/observability/components/add-trace-mocks-to-item-dialog.es.js +4 -4
  350. package/dist/domains/scores/components/score-data-panel.cjs.js +3 -3
  351. package/dist/domains/scores/components/score-data-panel.es.js +3 -3
  352. package/dist/domains/scores/components/span-scoring.cjs.js +3 -3
  353. package/dist/domains/scores/components/span-scoring.es.js +3 -3
  354. package/dist/domains/scores/components/trace-scores-tab.cjs.js +2 -1
  355. package/dist/domains/scores/components/trace-scores-tab.cjs.js.map +1 -1
  356. package/dist/domains/scores/components/trace-scores-tab.es.js +2 -1
  357. package/dist/domains/scores/components/trace-scores-tab.es.js.map +1 -1
  358. package/dist/domains/traces/components/feedback-thread.cjs.js +4 -4
  359. package/dist/domains/traces/components/feedback-thread.cjs.js.map +1 -1
  360. package/dist/domains/traces/components/feedback-thread.es.js +4 -4
  361. package/dist/domains/traces/components/feedback-thread.es.js.map +1 -1
  362. package/dist/domains/traces/components/shared.cjs.js +4 -3
  363. package/dist/domains/traces/components/shared.cjs.js.map +1 -1
  364. package/dist/domains/traces/components/shared.es.js +5 -4
  365. package/dist/domains/traces/components/shared.es.js.map +1 -1
  366. package/dist/domains/traces/components/span-data-panel-view.cjs.js +4 -4
  367. package/dist/domains/traces/components/span-data-panel-view.cjs.js.map +1 -1
  368. package/dist/domains/traces/components/span-data-panel-view.es.js +4 -4
  369. package/dist/domains/traces/components/span-data-panel-view.es.js.map +1 -1
  370. package/dist/domains/traces/components/span-details-view.cjs.js +1 -1
  371. package/dist/domains/traces/components/span-details-view.es.js +1 -1
  372. package/dist/domains/traces/components/span-payload/span-error-renderer.cjs.js +2 -2
  373. package/dist/domains/traces/components/span-payload/span-error-renderer.es.js +2 -2
  374. package/dist/domains/traces/components/span-payload/span-input-renderers.cjs.js +2 -2
  375. package/dist/domains/traces/components/span-payload/span-input-renderers.es.js +2 -2
  376. package/dist/domains/traces/components/span-payload/span-output-renderers.cjs.js +3 -3
  377. package/dist/domains/traces/components/span-payload/span-output-renderers.es.js +3 -3
  378. package/dist/domains/traces/components/span-payload/span-payload-messages.cjs.js +2 -2
  379. package/dist/domains/traces/components/span-payload/span-payload-messages.es.js +2 -2
  380. package/dist/domains/traces/components/span-payload/span-payload-primitives.cjs.js +2 -2
  381. package/dist/domains/traces/components/span-payload/span-payload-primitives.es.js +2 -2
  382. package/dist/domains/traces/components/span-payload/span-payload-processor.cjs.js +2 -2
  383. package/dist/domains/traces/components/span-payload/span-payload-processor.es.js +2 -2
  384. package/dist/domains/traces/components/span-payload/span-payload-registry.cjs.js.map +1 -1
  385. package/dist/domains/traces/components/span-payload/span-payload-registry.es.js.map +1 -1
  386. package/dist/domains/traces/components/span-payload/span-payload-section.cjs.js +3 -3
  387. package/dist/domains/traces/components/span-payload/span-payload-section.es.js +3 -3
  388. package/dist/domains/traces/components/span-payload/span-payload-tool.cjs.js +2 -2
  389. package/dist/domains/traces/components/span-payload/span-payload-tool.es.js +2 -2
  390. package/dist/domains/traces/components/span-payload/span-processor-attributes.cjs.js +2 -2
  391. package/dist/domains/traces/components/span-payload/span-processor-attributes.es.js +2 -2
  392. package/dist/domains/traces/components/span-rows.cjs.js +5 -0
  393. package/dist/domains/traces/components/span-rows.cjs.js.map +1 -1
  394. package/dist/domains/traces/components/span-rows.es.js +5 -0
  395. package/dist/domains/traces/components/span-rows.es.js.map +1 -1
  396. package/dist/domains/traces/components/span-summary-description.cjs.js +1 -1
  397. package/dist/domains/traces/components/span-summary-description.es.js +1 -1
  398. package/dist/domains/traces/components/span-timeline-row.cjs.js +34 -28
  399. package/dist/domains/traces/components/span-timeline-row.cjs.js.map +1 -1
  400. package/dist/domains/traces/components/span-timeline-row.es.js +34 -28
  401. package/dist/domains/traces/components/span-timeline-row.es.js.map +1 -1
  402. package/dist/domains/traces/components/span-timing-hover-card.cjs.js +1 -1
  403. package/dist/domains/traces/components/span-timing-hover-card.es.js +1 -1
  404. package/dist/domains/traces/components/span-token-usage.cjs.js +1 -1
  405. package/dist/domains/traces/components/span-token-usage.es.js +1 -1
  406. package/dist/domains/traces/components/span-tree-rail.cjs.js +50 -0
  407. package/dist/domains/traces/components/span-tree-rail.cjs.js.map +1 -0
  408. package/dist/domains/traces/components/span-tree-rail.d.ts +2 -0
  409. package/dist/domains/traces/components/span-tree-rail.es.js +42 -0
  410. package/dist/domains/traces/components/span-tree-rail.es.js.map +1 -0
  411. package/dist/domains/traces/components/span-tree-row.cjs.js +2 -2
  412. package/dist/domains/traces/components/span-tree-row.cjs.js.map +1 -1
  413. package/dist/domains/traces/components/span-tree-row.es.js +2 -2
  414. package/dist/domains/traces/components/span-tree-row.es.js.map +1 -1
  415. package/dist/domains/traces/components/span-type-badge.cjs.js +29 -0
  416. package/dist/domains/traces/components/span-type-badge.cjs.js.map +1 -0
  417. package/dist/domains/traces/components/span-type-badge.d.ts +2 -0
  418. package/dist/domains/traces/components/span-type-badge.es.js +25 -0
  419. package/dist/domains/traces/components/span-type-badge.es.js.map +1 -0
  420. package/dist/domains/traces/components/span-type-legend.cjs.js +2 -2
  421. package/dist/domains/traces/components/span-type-legend.cjs.js.map +1 -1
  422. package/dist/domains/traces/components/span-type-legend.es.js +2 -2
  423. package/dist/domains/traces/components/span-type-legend.es.js.map +1 -1
  424. package/dist/domains/traces/components/thread-trace/thread-trace-details.cjs.js +1 -1
  425. package/dist/domains/traces/components/thread-trace/thread-trace-details.es.js +1 -1
  426. package/dist/domains/traces/components/thread-trace/thread-trace-messages.cjs.js +1 -1
  427. package/dist/domains/traces/components/thread-trace/thread-trace-messages.es.js +1 -1
  428. package/dist/domains/traces/components/thread-trace/thread-trace-row.cjs.js.map +1 -1
  429. package/dist/domains/traces/components/thread-trace/thread-trace-row.es.js.map +1 -1
  430. package/dist/domains/traces/components/thread-trace/thread-trace-spans.cjs.js +2 -2
  431. package/dist/domains/traces/components/thread-trace/thread-trace-spans.es.js +2 -2
  432. package/dist/domains/traces/components/thread-view-by-trace.cjs.js +2 -1
  433. package/dist/domains/traces/components/thread-view-by-trace.cjs.js.map +1 -1
  434. package/dist/domains/traces/components/thread-view-by-trace.es.js +2 -1
  435. package/dist/domains/traces/components/thread-view-by-trace.es.js.map +1 -1
  436. package/dist/domains/traces/components/timeline-name-col.cjs.js +53 -27
  437. package/dist/domains/traces/components/timeline-name-col.cjs.js.map +1 -1
  438. package/dist/domains/traces/components/timeline-name-col.es.js +54 -28
  439. package/dist/domains/traces/components/timeline-name-col.es.js.map +1 -1
  440. package/dist/domains/traces/components/timeline-structure-sign.cjs.js +23 -14
  441. package/dist/domains/traces/components/timeline-structure-sign.cjs.js.map +1 -1
  442. package/dist/domains/traces/components/timeline-structure-sign.es.js +24 -15
  443. package/dist/domains/traces/components/timeline-structure-sign.es.js.map +1 -1
  444. package/dist/domains/traces/components/trace-columns-menu.cjs.js +4 -4
  445. package/dist/domains/traces/components/trace-columns-menu.cjs.js.map +1 -1
  446. package/dist/domains/traces/components/trace-columns-menu.es.js +4 -4
  447. package/dist/domains/traces/components/trace-columns-menu.es.js.map +1 -1
  448. package/dist/domains/traces/components/trace-data-panel-view.cjs.js +32 -5
  449. package/dist/domains/traces/components/trace-data-panel-view.cjs.js.map +1 -1
  450. package/dist/domains/traces/components/trace-data-panel-view.es.js +32 -5
  451. package/dist/domains/traces/components/trace-data-panel-view.es.js.map +1 -1
  452. package/dist/domains/traces/components/trace-data-panel.cjs.js +5 -2
  453. package/dist/domains/traces/components/trace-data-panel.cjs.js.map +1 -1
  454. package/dist/domains/traces/components/trace-data-panel.es.js +5 -2
  455. package/dist/domains/traces/components/trace-data-panel.es.js.map +1 -1
  456. package/dist/domains/traces/components/trace-error-cell.cjs.js +35 -0
  457. package/dist/domains/traces/components/trace-error-cell.cjs.js.map +1 -0
  458. package/dist/domains/traces/components/trace-error-cell.d.ts +2 -0
  459. package/dist/domains/traces/components/trace-error-cell.es.js +31 -0
  460. package/dist/domains/traces/components/trace-error-cell.es.js.map +1 -0
  461. package/dist/domains/traces/components/trace-error-details.cjs.js +22 -0
  462. package/dist/domains/traces/components/trace-error-details.cjs.js.map +1 -0
  463. package/dist/domains/traces/components/trace-error-details.d.ts +2 -0
  464. package/dist/domains/traces/components/trace-error-details.es.js +18 -0
  465. package/dist/domains/traces/components/trace-error-details.es.js.map +1 -0
  466. package/dist/domains/traces/components/trace-error-summary.cjs.js +31 -0
  467. package/dist/domains/traces/components/trace-error-summary.cjs.js.map +1 -0
  468. package/dist/domains/traces/components/trace-error-summary.d.ts +2 -0
  469. package/dist/domains/traces/components/trace-error-summary.es.js +27 -0
  470. package/dist/domains/traces/components/trace-error-summary.es.js.map +1 -0
  471. package/dist/domains/traces/components/trace-id-button.cjs.js +1 -1
  472. package/dist/domains/traces/components/trace-id-button.es.js +1 -1
  473. package/dist/domains/traces/components/trace-span-panel.cjs.js +1 -1
  474. package/dist/domains/traces/components/trace-span-panel.es.js +1 -1
  475. package/dist/domains/traces/components/trace-span-tree-skeleton.cjs.js +7 -7
  476. package/dist/domains/traces/components/trace-span-tree-skeleton.cjs.js.map +1 -1
  477. package/dist/domains/traces/components/trace-span-tree-skeleton.es.js +7 -7
  478. package/dist/domains/traces/components/trace-span-tree-skeleton.es.js.map +1 -1
  479. package/dist/domains/traces/components/trace-span-tree.cjs.js +1 -2
  480. package/dist/domains/traces/components/trace-span-tree.cjs.js.map +1 -1
  481. package/dist/domains/traces/components/trace-span-tree.es.js +2 -3
  482. package/dist/domains/traces/components/trace-span-tree.es.js.map +1 -1
  483. package/dist/domains/traces/components/trace-summary-description.cjs.js +1 -1
  484. package/dist/domains/traces/components/trace-summary-description.es.js +1 -1
  485. package/dist/domains/traces/components/trace-thread-item-view.cjs.js +1 -1
  486. package/dist/domains/traces/components/trace-thread-item-view.es.js +1 -1
  487. package/dist/domains/traces/components/trace-thread-panel.cjs.js +1 -1
  488. package/dist/domains/traces/components/trace-thread-panel.es.js +1 -1
  489. package/dist/domains/traces/components/trace-time-range-chip.cjs.js +2 -2
  490. package/dist/domains/traces/components/trace-time-range-chip.es.js +2 -2
  491. package/dist/domains/traces/components/traces-list-mode-toggle.cjs.js +1 -1
  492. package/dist/domains/traces/components/traces-list-mode-toggle.es.js +1 -1
  493. package/dist/domains/traces/components/traces-list-view.cjs.js +10 -7
  494. package/dist/domains/traces/components/traces-list-view.cjs.js.map +1 -1
  495. package/dist/domains/traces/components/traces-list-view.es.js +9 -6
  496. package/dist/domains/traces/components/traces-list-view.es.js.map +1 -1
  497. package/dist/domains/traces/components/traces-page-skeleton.cjs.js +4 -1
  498. package/dist/domains/traces/components/traces-page-skeleton.cjs.js.map +1 -1
  499. package/dist/domains/traces/components/traces-page-skeleton.es.js +4 -1
  500. package/dist/domains/traces/components/traces-page-skeleton.es.js.map +1 -1
  501. package/dist/domains/traces/hooks/use-trace-list-navigation.cjs.js.map +1 -1
  502. package/dist/domains/traces/hooks/use-trace-list-navigation.es.js.map +1 -1
  503. package/dist/domains/traces/utils/flatten-to-search-text.cjs.js.map +1 -1
  504. package/dist/domains/traces/utils/flatten-to-search-text.es.js.map +1 -1
  505. package/dist/domains/workflows/components/workflow-combobox.cjs.js +1 -1
  506. package/dist/domains/workflows/components/workflow-combobox.es.js +1 -1
  507. package/dist/domains/workflows/components/workflow-information.cjs.js +1 -1
  508. package/dist/domains/workflows/components/workflow-information.es.js +1 -1
  509. package/dist/domains/workflows/components/workflow-step-detail.cjs.js +3 -3
  510. package/dist/domains/workflows/components/workflow-step-detail.es.js +3 -3
  511. package/dist/domains/workflows/components/workflows-list/no-workflows-info.cjs.js +1 -1
  512. package/dist/domains/workflows/components/workflows-list/no-workflows-info.es.js +1 -1
  513. package/dist/domains/workflows/components/workflows-list/workflows-list.cjs.js +2 -2
  514. package/dist/domains/workflows/components/workflows-list/workflows-list.es.js +2 -2
  515. package/dist/domains/workflows/runs/workflow-run-list.cjs.js +2 -2
  516. package/dist/domains/workflows/runs/workflow-run-list.es.js +2 -2
  517. package/dist/domains/workflows/workflow/data/workflow-data-button.cjs.js +1 -1
  518. package/dist/domains/workflows/workflow/data/workflow-data-button.es.js +1 -1
  519. package/dist/domains/workflows/workflow/data/workflow-data-inspector.cjs.js +2 -2
  520. package/dist/domains/workflows/workflow/data/workflow-data-inspector.es.js +2 -2
  521. package/dist/domains/workflows/workflow/input/workflow-json-input.cjs.js +1 -1
  522. package/dist/domains/workflows/workflow/input/workflow-json-input.es.js +1 -1
  523. package/dist/domains/workflows/workflow/input/workflow-processor-input.cjs.js +1 -1
  524. package/dist/domains/workflows/workflow/input/workflow-processor-input.es.js +1 -1
  525. package/dist/domains/workflows/workflow/use-workflow-graph-runtime.cjs.js +2 -2
  526. package/dist/domains/workflows/workflow/use-workflow-graph-runtime.es.js +2 -2
  527. package/dist/domains/workflows/workflow/workflow-body-graph.cjs.js +1 -1
  528. package/dist/domains/workflows/workflow/workflow-body-graph.es.js +1 -1
  529. package/dist/domains/workflows/workflow/workflow-cancel-button.cjs.js +1 -1
  530. package/dist/domains/workflows/workflow/workflow-cancel-button.es.js +1 -1
  531. package/dist/domains/workflows/workflow/workflow-data-edge.cjs.js +1 -1
  532. package/dist/domains/workflows/workflow/workflow-data-edge.es.js +1 -1
  533. package/dist/domains/workflows/workflow/workflow-debug-step-controls.cjs.js +1 -1
  534. package/dist/domains/workflows/workflow/workflow-debug-step-controls.es.js +1 -1
  535. package/dist/domains/workflows/workflow/workflow-graph-boundary.cjs.js +3 -3
  536. package/dist/domains/workflows/workflow/workflow-graph-boundary.es.js +3 -3
  537. package/dist/domains/workflows/workflow/workflow-graph-inner.cjs.js +2 -2
  538. package/dist/domains/workflows/workflow/workflow-graph-inner.es.js +2 -2
  539. package/dist/domains/workflows/workflow/workflow-graph-node.cjs.js +2 -2
  540. package/dist/domains/workflows/workflow/workflow-graph-node.es.js +2 -2
  541. package/dist/domains/workflows/workflow/workflow-input-data.cjs.js +1 -1
  542. package/dist/domains/workflows/workflow/workflow-input-data.cjs.js.map +1 -1
  543. package/dist/domains/workflows/workflow/workflow-input-data.es.js +1 -1
  544. package/dist/domains/workflows/workflow/workflow-input-data.es.js.map +1 -1
  545. package/dist/domains/workflows/workflow/workflow-map-config-dialog.cjs.js +3 -3
  546. package/dist/domains/workflows/workflow/workflow-map-config-dialog.es.js +3 -3
  547. package/dist/domains/workflows/workflow/workflow-nested-graph.cjs.js +3 -3
  548. package/dist/domains/workflows/workflow/workflow-nested-graph.es.js +3 -3
  549. package/dist/domains/workflows/workflow/workflow-run-data.cjs.js +2 -2
  550. package/dist/domains/workflows/workflow/workflow-run-data.es.js +2 -2
  551. package/dist/domains/workflows/workflow/workflow-run-header.cjs.js +1 -1
  552. package/dist/domains/workflows/workflow/workflow-run-header.es.js +1 -1
  553. package/dist/domains/workflows/workflow/workflow-status.cjs.js +1 -1
  554. package/dist/domains/workflows/workflow/workflow-status.es.js +1 -1
  555. package/dist/domains/workflows/workflow/workflow-step-action-bar.cjs.js +3 -3
  556. package/dist/domains/workflows/workflow/workflow-step-action-bar.es.js +3 -3
  557. package/dist/domains/workflows/workflow/workflow-suspended-steps.cjs.js +1 -1
  558. package/dist/domains/workflows/workflow/workflow-suspended-steps.es.js +1 -1
  559. package/dist/domains/workflows/workflow/workflow-time-travel-form.cjs.js +1 -1
  560. package/dist/domains/workflows/workflow/workflow-time-travel-form.es.js +1 -1
  561. package/dist/domains/workflows/workflow/workflow-timeline-row.cjs.js +1 -1
  562. package/dist/domains/workflows/workflow/workflow-timeline-row.es.js +1 -1
  563. package/dist/domains/workflows/workflow/workflow-timeline.cjs.js +1 -1
  564. package/dist/domains/workflows/workflow/workflow-timeline.es.js +1 -1
  565. package/dist/domains/workflows/workflow/workflow-trigger-form.cjs.js +1 -1
  566. package/dist/domains/workflows/workflow/workflow-trigger-form.es.js +1 -1
  567. package/dist/domains/workflows/workflow/workflow-trigger-header.cjs.js +1 -1
  568. package/dist/domains/workflows/workflow/workflow-trigger-header.es.js +1 -1
  569. package/dist/domains/workspace/components/workspace-active-file.cjs.js +1 -1
  570. package/dist/domains/workspace/components/workspace-active-file.es.js +1 -1
  571. package/dist/domains/workspace/components/workspace-add-skill-dialog.cjs.js +5 -5
  572. package/dist/domains/workspace/components/workspace-add-skill-dialog.es.js +5 -5
  573. package/dist/domains/workspace/components/workspace-add-skill.cjs.js +1 -1
  574. package/dist/domains/workspace/components/workspace-add-skill.es.js +1 -1
  575. package/dist/domains/workspace/components/workspace-create-directory.cjs.js +2 -2
  576. package/dist/domains/workspace/components/workspace-create-directory.es.js +2 -2
  577. package/dist/domains/workspace/components/workspace-markdown-preview.cjs.js +2 -2
  578. package/dist/domains/workspace/components/workspace-markdown-preview.es.js +2 -2
  579. package/dist/domains/workspace/components/workspace-search.cjs.js +1 -1
  580. package/dist/domains/workspace/components/workspace-search.es.js +1 -1
  581. package/dist/domains/workspace/components/workspace-tree.cjs.js +2 -2
  582. package/dist/domains/workspace/components/workspace-tree.es.js +2 -2
  583. package/dist/{drawer-DROYPMUm.cjs → drawer-DdTU-nBR.cjs} +2 -2
  584. package/dist/{drawer-DROYPMUm.cjs.map → drawer-DdTU-nBR.cjs.map} +1 -1
  585. package/dist/{drawer-C-8E9yHN.js → drawer-mj-G7-Tu.js} +2 -2
  586. package/dist/{drawer-C-8E9yHN.js.map → drawer-mj-G7-Tu.js.map} +1 -1
  587. package/dist/dropdown-menu-CQ_48tVI.js.map +1 -1
  588. package/dist/dropdown-menu-CsynT1aD.cjs.map +1 -1
  589. package/dist/ee/signals/components/entity-index-list.cjs.js +3 -1
  590. package/dist/ee/signals/components/entity-index-list.cjs.js.map +1 -1
  591. package/dist/ee/signals/components/entity-index-list.es.js +3 -1
  592. package/dist/ee/signals/components/entity-index-list.es.js.map +1 -1
  593. package/dist/ee/signals/components/signals-empty-state.cjs.js +1 -1
  594. package/dist/ee/signals/components/signals-empty-state.es.js +1 -1
  595. package/dist/ee/signals/components/trace-intelligence-entity-detail.cjs.js.map +1 -1
  596. package/dist/ee/signals/components/trace-intelligence-entity-detail.es.js.map +1 -1
  597. package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js +6 -4
  598. package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js.map +1 -1
  599. package/dist/ee/signals/components/trace-intelligence-entity-index.es.js +6 -4
  600. package/dist/ee/signals/components/trace-intelligence-entity-index.es.js.map +1 -1
  601. package/dist/ee/signals/examples-pager.cjs.js +1 -1
  602. package/dist/ee/signals/examples-pager.es.js +1 -1
  603. package/dist/ee/signals/noise-detail-panel.cjs.js +1 -1
  604. package/dist/ee/signals/noise-detail-panel.es.js +1 -1
  605. package/dist/ee/signals/settings/signal-definition-form-dialog.cjs.js +2 -2
  606. package/dist/ee/signals/settings/signal-definition-form-dialog.es.js +2 -2
  607. package/dist/ee/signals/settings/trace-signal-settings.cjs.js +1 -1
  608. package/dist/ee/signals/settings/trace-signal-settings.es.js +1 -1
  609. package/dist/ee/signals/signals-error-state.cjs.js +1 -1
  610. package/dist/ee/signals/signals-error-state.es.js +1 -1
  611. package/dist/ee/signals/snapshot-timeline.cjs.js +1 -1
  612. package/dist/ee/signals/snapshot-timeline.es.js +1 -1
  613. package/dist/ee/signals/theme-detail-panel.cjs.js +1 -1
  614. package/dist/ee/signals/theme-detail-panel.es.js +1 -1
  615. package/dist/ee/signals/theme-filter-banner.cjs.js +1 -1
  616. package/dist/ee/signals/theme-filter-banner.es.js +1 -1
  617. package/dist/ee/signals/trace-insight-view.cjs.js +1 -1
  618. package/dist/ee/signals/trace-insight-view.es.js +1 -1
  619. package/dist/ee/signals/trace-intelligence-provider.cjs.js.map +1 -1
  620. package/dist/ee/signals/trace-intelligence-provider.es.js.map +1 -1
  621. package/dist/ee/signals/view-mode-tab.cjs.js +1 -1
  622. package/dist/ee/signals/view-mode-tab.es.js +1 -1
  623. package/dist/ee/topics/components/topic-trace-summary-list.cjs.js +3 -3
  624. package/dist/ee/topics/components/topic-trace-summary-list.es.js +3 -3
  625. package/dist/{field-error-id-Dbe6IInA.cjs → field-error-id-0yYYU0ar.cjs} +2 -2
  626. package/dist/{field-error-id-Dbe6IInA.cjs.map → field-error-id-0yYYU0ar.cjs.map} +1 -1
  627. package/dist/{field-error-id-Sqhk00e4.js → field-error-id-CdzuQK5c.js} +2 -2
  628. package/dist/{field-error-id-Sqhk00e4.js.map → field-error-id-CdzuQK5c.js.map} +1 -1
  629. package/dist/{filter-bar-chip-BarAq1S2.js → filter-bar-chip-C9CXOudu.js} +3 -3
  630. package/dist/filter-bar-chip-C9CXOudu.js.map +1 -0
  631. package/dist/{filter-bar-chip-BJJ6ytJ4.cjs → filter-bar-chip-DgvuQv6c.cjs} +3 -3
  632. package/dist/filter-bar-chip-DgvuQv6c.cjs.map +1 -0
  633. package/dist/hooks/use-environment-variables-editor.cjs.js.map +1 -1
  634. package/dist/hooks/use-environment-variables-editor.es.js.map +1 -1
  635. package/dist/hooks/use-fluid-hover.cjs.js.map +1 -1
  636. package/dist/hooks/use-fluid-hover.es.js.map +1 -1
  637. package/dist/icons/Icon.cjs.js.map +1 -1
  638. package/dist/icons/Icon.es.js.map +1 -1
  639. package/dist/icons/SkillIcon.cjs.js.map +1 -1
  640. package/dist/icons/SkillIcon.es.js.map +1 -1
  641. package/dist/icons/icon-size-classes.cjs.js +4 -4
  642. package/dist/icons/icon-size-classes.cjs.js.map +1 -1
  643. package/dist/icons/icon-size-classes.es.js +4 -4
  644. package/dist/icons/icon-size-classes.es.js.map +1 -1
  645. package/dist/{input-group-CiBbTaPP.js → input-group-BAg6iSIe.js} +2 -2
  646. package/dist/{input-group-CiBbTaPP.js.map → input-group-BAg6iSIe.js.map} +1 -1
  647. package/dist/{input-group-DSW5WoSU.cjs → input-group-DRXUthxe.cjs} +2 -2
  648. package/dist/{input-group-DSW5WoSU.cjs.map → input-group-DRXUthxe.cjs.map} +1 -1
  649. package/dist/keyboard/keyboard-dispatcher.cjs.js +2 -4
  650. package/dist/keyboard/keyboard-dispatcher.cjs.js.map +1 -1
  651. package/dist/keyboard/keyboard-dispatcher.es.js +2 -4
  652. package/dist/keyboard/keyboard-dispatcher.es.js.map +1 -1
  653. package/dist/keyboard/keyboard-shortcuts-context.cjs.js.map +1 -1
  654. package/dist/keyboard/keyboard-shortcuts-context.es.js.map +1 -1
  655. package/dist/keyboard/use-keydown.cjs.js +2 -0
  656. package/dist/keyboard/use-keydown.cjs.js.map +1 -1
  657. package/dist/keyboard/use-keydown.es.js +2 -0
  658. package/dist/keyboard/use-keydown.es.js.map +1 -1
  659. package/dist/layout/tabbed-container.cjs.js +4 -4
  660. package/dist/layout/tabbed-container.es.js +4 -4
  661. package/dist/lib/form/components/array-element-wrapper.cjs.js +1 -1
  662. package/dist/lib/form/components/array-element-wrapper.es.js +1 -1
  663. package/dist/lib/form/components/array-wrapper.cjs.js +1 -1
  664. package/dist/lib/form/components/array-wrapper.es.js +1 -1
  665. package/dist/lib/form/components/date-field.cjs.js +1 -1
  666. package/dist/lib/form/components/date-field.es.js +1 -1
  667. package/dist/lib/form/components/form-submit-row.cjs.js +1 -1
  668. package/dist/lib/form/components/form-submit-row.es.js +1 -1
  669. package/dist/lib/form/components/record-field.cjs.js +1 -1
  670. package/dist/lib/form/components/record-field.es.js +1 -1
  671. package/dist/lib/form/components/select-field.cjs.js +1 -1
  672. package/dist/lib/form/components/select-field.es.js +1 -1
  673. package/dist/lib/form/components/submit-button.cjs.js +1 -1
  674. package/dist/lib/form/components/submit-button.es.js +1 -1
  675. package/dist/lib/form/zod-provider.cjs.js.map +1 -1
  676. package/dist/lib/form/zod-provider.es.js.map +1 -1
  677. package/dist/{list-search-D3I6xt0B.js → list-search-ByJdIxIh.js} +2 -2
  678. package/dist/{list-search-D3I6xt0B.js.map → list-search-ByJdIxIh.js.map} +1 -1
  679. package/dist/{list-search-DHiQ1-O6.cjs → list-search-DNJVeHmK.cjs} +2 -2
  680. package/dist/{list-search-DHiQ1-O6.cjs.map → list-search-DNJVeHmK.cjs.map} +1 -1
  681. package/dist/{logs-data-list-Cb85LPcT.js → logs-data-list-CGerYgSd.js} +2 -3
  682. package/dist/{logs-data-list-Cb85LPcT.js.map → logs-data-list-CGerYgSd.js.map} +1 -1
  683. package/dist/{logs-data-list-DlQxxrNw.cjs → logs-data-list-DEZuSjqt.cjs} +21 -22
  684. package/dist/{logs-data-list-DlQxxrNw.cjs.map → logs-data-list-DEZuSjqt.cjs.map} +1 -1
  685. package/dist/{markdown-renderer-HIfFphpI.cjs → markdown-renderer-BcpwvSl9.cjs} +3 -3
  686. package/dist/{markdown-renderer-HIfFphpI.cjs.map → markdown-renderer-BcpwvSl9.cjs.map} +1 -1
  687. package/dist/{markdown-renderer-BYxWiHRj.js → markdown-renderer-CHLpv5n5.js} +3 -3
  688. package/dist/{markdown-renderer-BYxWiHRj.js.map → markdown-renderer-CHLpv5n5.js.map} +1 -1
  689. package/dist/{message-copy-button-CnVgCy9y.cjs → message-copy-button-D3O4hWDV.cjs} +2 -2
  690. package/dist/{message-copy-button-CnVgCy9y.cjs.map → message-copy-button-D3O4hWDV.cjs.map} +1 -1
  691. package/dist/{message-copy-button-Ctew41Rr.js → message-copy-button-OI1mwAaS.js} +2 -2
  692. package/dist/{message-copy-button-Ctew41Rr.js.map → message-copy-button-OI1mwAaS.js.map} +1 -1
  693. package/dist/{metrics-card-DaFApxZY.cjs → metrics-card-CpjGYNBP.cjs} +2 -2
  694. package/dist/{metrics-card-DaFApxZY.cjs.map → metrics-card-CpjGYNBP.cjs.map} +1 -1
  695. package/dist/{metrics-card-Z_moDiV5.js → metrics-card-D6ty6a6Z.js} +2 -2
  696. package/dist/{metrics-card-Z_moDiV5.js.map → metrics-card-D6ty6a6Z.js.map} +1 -1
  697. package/dist/{notification-activity-MR63WqZm.cjs → notification-activity-BSNuqJDd.cjs} +2 -2
  698. package/dist/{notification-activity-MR63WqZm.cjs.map → notification-activity-BSNuqJDd.cjs.map} +1 -1
  699. package/dist/{notification-activity-FJcMFxIj.js → notification-activity-BWXHmlTn.js} +2 -2
  700. package/dist/{notification-activity-FJcMFxIj.js.map → notification-activity-BWXHmlTn.js.map} +1 -1
  701. package/dist/{plan-BoOK_LAB.cjs → plan-Cm3yHvs3.cjs} +4 -4
  702. package/dist/{plan-BoOK_LAB.cjs.map → plan-Cm3yHvs3.cjs.map} +1 -1
  703. package/dist/{plan-m0hj6Zgv.js → plan-TtrepVnQ.js} +4 -4
  704. package/dist/{plan-m0hj6Zgv.js.map → plan-TtrepVnQ.js.map} +1 -1
  705. package/dist/primitives/form-element.cjs.js.map +1 -1
  706. package/dist/primitives/form-element.es.js.map +1 -1
  707. package/dist/primitives/menu-item.cjs.js +4 -2
  708. package/dist/primitives/menu-item.cjs.js.map +1 -1
  709. package/dist/primitives/menu-item.es.js +4 -2
  710. package/dist/primitives/menu-item.es.js.map +1 -1
  711. package/dist/primitives/popup-anchor.cjs.js +34 -0
  712. package/dist/primitives/popup-anchor.cjs.js.map +1 -0
  713. package/dist/primitives/popup-anchor.d.ts +2 -0
  714. package/dist/primitives/popup-anchor.es.js +10 -0
  715. package/dist/primitives/popup-anchor.es.js.map +1 -0
  716. package/dist/primitives/trigger-button.cjs.js +1 -1
  717. package/dist/primitives/trigger-button.es.js +1 -1
  718. package/dist/{property-filter-applied-J9ob_Rss.js → property-filter-applied-BMmMf4DE.js} +2 -2
  719. package/dist/property-filter-applied-BMmMf4DE.js.map +1 -0
  720. package/dist/{property-filter-applied-CtSglSaH.cjs → property-filter-applied-Bj-bh9gv.cjs} +2 -2
  721. package/dist/property-filter-applied-Bj-bh9gv.cjs.map +1 -0
  722. package/dist/{reasoning-activity-5MFE3mzw.js → reasoning-activity-C-sJt2A9.js} +3 -3
  723. package/dist/{reasoning-activity-5MFE3mzw.js.map → reasoning-activity-C-sJt2A9.js.map} +1 -1
  724. package/dist/{reasoning-activity-DMvughvN.cjs → reasoning-activity-DpYFjxuL.cjs} +3 -3
  725. package/dist/{reasoning-activity-DMvughvN.cjs.map → reasoning-activity-DpYFjxuL.cjs.map} +1 -1
  726. package/dist/resize/panel-drawer.cjs.js +1 -1
  727. package/dist/resize/panel-drawer.es.js +1 -1
  728. package/dist/{search-input-BPqubJZC.js → search-input-C9qFBzn6.js} +2 -2
  729. package/dist/{search-input-BPqubJZC.js.map → search-input-C9qFBzn6.js.map} +1 -1
  730. package/dist/{search-input-BUMYRaUW.cjs → search-input-CMNy0JWd.cjs} +2 -2
  731. package/dist/{search-input-BUMYRaUW.cjs.map → search-input-CMNy0JWd.cjs.map} +1 -1
  732. package/dist/section-CctlZIXp.cjs.map +1 -1
  733. package/dist/section-D0hKTVXt.js.map +1 -1
  734. package/dist/{select-CQtsggxJ.js → select-7rYaECQf.js} +2 -2
  735. package/dist/select-7rYaECQf.js.map +1 -0
  736. package/dist/{select-CbNLtiAs.cjs → select-A3AFKLd9.cjs} +2 -2
  737. package/dist/select-A3AFKLd9.cjs.map +1 -0
  738. package/dist/shimmer-BCSr3Rqf.js.map +1 -1
  739. package/dist/shimmer-Co-XPvF9.cjs.map +1 -1
  740. package/dist/{side-dialog-bm8NPDXy.js → side-dialog-DSvj8H6x.js} +4 -4
  741. package/dist/{side-dialog-bm8NPDXy.js.map → side-dialog-DSvj8H6x.js.map} +1 -1
  742. package/dist/{side-dialog-BzULMBaH.cjs → side-dialog-SJCWBnbw.cjs} +4 -4
  743. package/dist/{side-dialog-BzULMBaH.cjs.map → side-dialog-SJCWBnbw.cjs.map} +1 -1
  744. package/dist/{signal-activity-D-_u7DFm.cjs → signal-activity-C_bihjcd.cjs} +2 -2
  745. package/dist/{signal-activity-D-_u7DFm.cjs.map → signal-activity-C_bihjcd.cjs.map} +1 -1
  746. package/dist/{signal-activity-BkFexFiJ.js → signal-activity-J9kpnwAF.js} +2 -2
  747. package/dist/{signal-activity-BkFexFiJ.js.map → signal-activity-J9kpnwAF.js.map} +1 -1
  748. package/dist/{span-payload-primitives-wujxDKfA.cjs → span-payload-primitives-C0KYtmtV.cjs} +3 -3
  749. package/dist/{span-payload-primitives-wujxDKfA.cjs.map → span-payload-primitives-C0KYtmtV.cjs.map} +1 -1
  750. package/dist/{span-payload-primitives-jQiJK0qI.js → span-payload-primitives-D_N9LeLk.js} +3 -3
  751. package/dist/{span-payload-primitives-jQiJK0qI.js.map → span-payload-primitives-D_N9LeLk.js.map} +1 -1
  752. package/dist/src/domains/traces/components/span-rows.d.ts +2 -0
  753. package/dist/src/domains/traces/components/span-tree-rail.d.ts +23 -0
  754. package/dist/src/domains/traces/components/span-type-badge.d.ts +9 -0
  755. package/dist/src/domains/traces/components/timeline-name-col.d.ts +2 -2
  756. package/dist/src/domains/traces/components/timeline-structure-sign.d.ts +14 -1
  757. package/dist/src/domains/traces/components/trace-error-cell.d.ts +8 -0
  758. package/dist/src/domains/traces/components/trace-error-details.d.ts +10 -0
  759. package/dist/src/domains/traces/components/trace-error-summary.d.ts +8 -0
  760. package/dist/src/domains/traces/components/trace-span-tree-skeleton.d.ts +1 -1
  761. package/dist/src/domains/traces/hooks/use-traces-list-source.d.ts +1 -0
  762. package/dist/src/ds/components/Avatar/avatar-size.d.ts +1 -1
  763. package/dist/src/ds/components/Breadcrumb/crumb-switcher.d.ts +0 -1
  764. package/dist/src/ds/components/Button/Button.d.ts +1 -1
  765. package/dist/src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-context.d.ts +1 -2
  766. package/dist/src/ds/components/SavedViews/saved-view-editor.d.ts +1 -1
  767. package/dist/src/ds/components/Select/select.d.ts +1 -1
  768. package/dist/src/ds/primitives/popup-anchor.d.ts +4 -0
  769. package/dist/src/hooks/use-environment-variables-editor.d.ts +1 -1
  770. package/dist/src/lib/keyboard/keyboard-dispatcher.d.ts +2 -0
  771. package/dist/src/lib/keyboard/use-keydown.d.ts +8 -1
  772. package/dist/style.css +121 -143
  773. package/dist/{tabs-tab-DRaRUvQ3.cjs → tabs-tab-B0W25Dm2.cjs} +2 -2
  774. package/dist/{tabs-tab-DRaRUvQ3.cjs.map → tabs-tab-B0W25Dm2.cjs.map} +1 -1
  775. package/dist/{tabs-tab-CIVJEMoY.js → tabs-tab-CkLyKrL0.js} +2 -2
  776. package/dist/{tabs-tab-CIVJEMoY.js.map → tabs-tab-CkLyKrL0.js.map} +1 -1
  777. package/dist/{thread-list-BANpytn3.cjs → thread-list-BBPZYHh8.cjs} +2 -2
  778. package/dist/thread-list-BBPZYHh8.cjs.map +1 -0
  779. package/dist/{thread-list-lXnXsPul.js → thread-list-BGjKZfEH.js} +2 -2
  780. package/dist/thread-list-BGjKZfEH.js.map +1 -0
  781. package/dist/{time-picker-BpCfTfoe.js → time-picker-Bzdboi4W.js} +2 -2
  782. package/dist/{time-picker-BpCfTfoe.js.map → time-picker-Bzdboi4W.js.map} +1 -1
  783. package/dist/{time-picker-DhekkO5t.cjs → time-picker-CyvG-fwX.cjs} +2 -2
  784. package/dist/{time-picker-DhekkO5t.cjs.map → time-picker-CyvG-fwX.cjs.map} +1 -1
  785. package/dist/{tool-approval-BrqoN_mP.js → tool-approval-P8rUFAYp.js} +4 -4
  786. package/dist/{tool-approval-BrqoN_mP.js.map → tool-approval-P8rUFAYp.js.map} +1 -1
  787. package/dist/{tool-approval-zBfJ20iR.cjs → tool-approval-zhWdp8i6.cjs} +4 -4
  788. package/dist/{tool-approval-zBfJ20iR.cjs.map → tool-approval-zhWdp8i6.cjs.map} +1 -1
  789. package/dist/{tool-call-arguments-DwMeGQHD.cjs → tool-call-arguments-DzpFckIm.cjs} +3 -3
  790. package/dist/{tool-call-arguments-DwMeGQHD.cjs.map → tool-call-arguments-DzpFckIm.cjs.map} +1 -1
  791. package/dist/{tool-call-arguments-Dx4LW1Ni.js → tool-call-arguments-goEdIs4f.js} +3 -3
  792. package/dist/{tool-call-arguments-Dx4LW1Ni.js.map → tool-call-arguments-goEdIs4f.js.map} +1 -1
  793. package/dist/{tool-call-group-DJsiIb-B.cjs → tool-call-group-C56oARyx.cjs} +4 -4
  794. package/dist/tool-call-group-C56oARyx.cjs.map +1 -0
  795. package/dist/{tool-call-group-ZDNZog5K.js → tool-call-group-DU4T72Xn.js} +4 -4
  796. package/dist/tool-call-group-DU4T72Xn.js.map +1 -0
  797. package/dist/{tool-call-mono-Bs7y-1Cq.js → tool-call-mono-DPW6hN91.js} +2 -2
  798. package/dist/{tool-call-mono-Bs7y-1Cq.js.map → tool-call-mono-DPW6hN91.js.map} +1 -1
  799. package/dist/{tool-call-mono-I-vdqzCe.cjs → tool-call-mono-aheL8CkL.cjs} +2 -2
  800. package/dist/{tool-call-mono-I-vdqzCe.cjs.map → tool-call-mono-aheL8CkL.cjs.map} +1 -1
  801. package/dist/{tool-call-output-Dd8zlhLd.js → tool-call-output-BQYzMMMi.js} +2 -2
  802. package/dist/{tool-call-output-Dd8zlhLd.js.map → tool-call-output-BQYzMMMi.js.map} +1 -1
  803. package/dist/{tool-call-output-BrNg0Lkd.cjs → tool-call-output-CuwM5IHd.cjs} +2 -2
  804. package/dist/{tool-call-output-BrNg0Lkd.cjs.map → tool-call-output-CuwM5IHd.cjs.map} +1 -1
  805. package/dist/{tool-card-D4yrR2AE.js → tool-card-aclA3iVz.js} +4 -4
  806. package/dist/{tool-card-D4yrR2AE.js.map → tool-card-aclA3iVz.js.map} +1 -1
  807. package/dist/{tool-card-D6UdNzIX.cjs → tool-card-yii3vGHu.cjs} +4 -4
  808. package/dist/{tool-card-D6UdNzIX.cjs.map → tool-card-yii3vGHu.cjs.map} +1 -1
  809. package/dist/{traces-data-list-Bhhg9drs.cjs → traces-data-list-Co9k5J4f.cjs} +18 -20
  810. package/dist/{traces-data-list-Bhhg9drs.cjs.map → traces-data-list-Co9k5J4f.cjs.map} +1 -1
  811. package/dist/{traces-data-list-DMWPJFBc.js → traces-data-list-TCKjOldO.js} +2 -4
  812. package/dist/{traces-data-list-DMWPJFBc.js.map → traces-data-list-TCKjOldO.js.map} +1 -1
  813. package/dist/use-data-list-keyboard-DF3tLe10.cjs.map +1 -1
  814. package/dist/use-data-list-keyboard-DFQr4t38.js.map +1 -1
  815. package/dist/{use-workflow-graph-runtime-DF-56pIR.cjs → use-workflow-graph-runtime-DcQD5eA6.cjs} +3 -3
  816. package/dist/{use-workflow-graph-runtime-DF-56pIR.cjs.map → use-workflow-graph-runtime-DcQD5eA6.cjs.map} +1 -1
  817. package/dist/{use-workflow-graph-runtime-BrHXo49Q.js → use-workflow-graph-runtime-xq_aSXPh.js} +3 -3
  818. package/dist/{use-workflow-graph-runtime-BrHXo49Q.js.map → use-workflow-graph-runtime-xq_aSXPh.js.map} +1 -1
  819. package/dist/utils/workspace-compat.cjs.js.map +1 -1
  820. package/dist/utils/workspace-compat.es.js.map +1 -1
  821. package/dist/{workflow-code-dialog-content-CfVy6bGG.cjs → workflow-code-dialog-content-B_BQCuFW.cjs} +3 -3
  822. package/dist/{workflow-code-dialog-content-CfVy6bGG.cjs.map → workflow-code-dialog-content-B_BQCuFW.cjs.map} +1 -1
  823. package/dist/{workflow-code-dialog-content-DviJz1jB.js → workflow-code-dialog-content-CFEaeYUX.js} +3 -3
  824. package/dist/{workflow-code-dialog-content-DviJz1jB.js.map → workflow-code-dialog-content-CFEaeYUX.js.map} +1 -1
  825. package/dist/{workflow-condition-card-BRwhMmNO.cjs → workflow-condition-card-CMzoK307.cjs} +3 -3
  826. package/dist/{workflow-condition-card-BRwhMmNO.cjs.map → workflow-condition-card-CMzoK307.cjs.map} +1 -1
  827. package/dist/{workflow-condition-card-sFdOjlab.js → workflow-condition-card-CbQ4fCxY.js} +3 -3
  828. package/dist/{workflow-condition-card-sFdOjlab.js.map → workflow-condition-card-CbQ4fCxY.js.map} +1 -1
  829. package/dist/{workflow-data-edge-view-DpPhr9gZ.cjs → workflow-data-edge-view-0utEB4Yb.cjs} +2 -2
  830. package/dist/{workflow-data-edge-view-DpPhr9gZ.cjs.map → workflow-data-edge-view-0utEB4Yb.cjs.map} +1 -1
  831. package/dist/{workflow-data-edge-view-CuSzc6YI.js → workflow-data-edge-view-gwwJEvXz.js} +2 -2
  832. package/dist/{workflow-data-edge-view-CuSzc6YI.js.map → workflow-data-edge-view-gwwJEvXz.js.map} +1 -1
  833. package/dist/{workflow-debug-controls-CAn_6S8K.cjs → workflow-debug-controls-B5zqE_rm.cjs} +2 -2
  834. package/dist/{workflow-debug-controls-CAn_6S8K.cjs.map → workflow-debug-controls-B5zqE_rm.cjs.map} +1 -1
  835. package/dist/{workflow-debug-controls-CLzbxd5O.js → workflow-debug-controls-CPpdNzD9.js} +2 -2
  836. package/dist/{workflow-debug-controls-CLzbxd5O.js.map → workflow-debug-controls-CPpdNzD9.js.map} +1 -1
  837. package/dist/{workflow-edge-data-button-Dtt_OUz9.js → workflow-edge-data-button-YWjfx-W0.js} +4 -4
  838. package/dist/{workflow-edge-data-button-Dtt_OUz9.js.map → workflow-edge-data-button-YWjfx-W0.js.map} +1 -1
  839. package/dist/{workflow-edge-data-button-B8rQaAoK.cjs → workflow-edge-data-button-tDvziS5v.cjs} +4 -4
  840. package/dist/{workflow-edge-data-button-B8rQaAoK.cjs.map → workflow-edge-data-button-tDvziS5v.cjs.map} +1 -1
  841. package/dist/{workflow-step-action-DqFjktfs.js → workflow-step-action-D8MVfEIl.js} +2 -2
  842. package/dist/{workflow-step-action-DqFjktfs.js.map → workflow-step-action-D8MVfEIl.js.map} +1 -1
  843. package/dist/{workflow-step-action-Cu01omgz.cjs → workflow-step-action-DZgS0_fL.cjs} +2 -2
  844. package/dist/{workflow-step-action-Cu01omgz.cjs.map → workflow-step-action-DZgS0_fL.cjs.map} +1 -1
  845. package/package.json +11 -13
  846. package/theme/scale.css +7 -0
  847. package/dist/Avatar-98bsFrSV.js.map +0 -1
  848. package/dist/Avatar-BCj8SvOb.cjs.map +0 -1
  849. package/dist/Button-DH1aTzbs.cjs.map +0 -1
  850. package/dist/Button-EGoajBQY.js.map +0 -1
  851. package/dist/activity-2tovEdIP.cjs.map +0 -1
  852. package/dist/activity-CsTUr5_l.js.map +0 -1
  853. package/dist/ask-user-card-DroerVbm.cjs.map +0 -1
  854. package/dist/avatar-size-CNR0U-LW.js.map +0 -1
  855. package/dist/avatar-size-DxStOo5A.cjs.map +0 -1
  856. package/dist/combobox-BNlVCFgY.cjs.map +0 -1
  857. package/dist/combobox-Bw13EcK0.js.map +0 -1
  858. package/dist/command-UEPxVJlE.cjs.map +0 -1
  859. package/dist/command-V9rsKc7P.js.map +0 -1
  860. package/dist/data-keys-and-values-1lYi60YK.cjs.map +0 -1
  861. package/dist/data-keys-and-values-CHpxKsfq.js.map +0 -1
  862. package/dist/data-list-CmjTe8xE.cjs +0 -142
  863. package/dist/data-list-CmjTe8xE.cjs.map +0 -1
  864. package/dist/data-list-DT1LVR29.js +0 -138
  865. package/dist/data-list-DT1LVR29.js.map +0 -1
  866. package/dist/data-list-spacer-CdlT6bDd.cjs +0 -218
  867. package/dist/data-list-spacer-CdlT6bDd.cjs.map +0 -1
  868. package/dist/data-list-spacer-D--gDmOm.js +0 -209
  869. package/dist/data-list-spacer-D--gDmOm.js.map +0 -1
  870. package/dist/data-list-top-DJh08vFA.cjs.map +0 -1
  871. package/dist/data-list-top-T-mtdIUp.js.map +0 -1
  872. package/dist/data-panel-BkfjzriB.cjs.map +0 -1
  873. package/dist/data-panel-CMkR6Avv.js.map +0 -1
  874. package/dist/filter-bar-chip-BJJ6ytJ4.cjs.map +0 -1
  875. package/dist/filter-bar-chip-BarAq1S2.js.map +0 -1
  876. package/dist/property-filter-applied-CtSglSaH.cjs.map +0 -1
  877. package/dist/property-filter-applied-J9ob_Rss.js.map +0 -1
  878. package/dist/select-CQtsggxJ.js.map +0 -1
  879. package/dist/select-CbNLtiAs.cjs.map +0 -1
  880. package/dist/thread-list-BANpytn3.cjs.map +0 -1
  881. package/dist/thread-list-lXnXsPul.js.map +0 -1
  882. package/dist/tool-call-group-DJsiIb-B.cjs.map +0 -1
  883. package/dist/tool-call-group-ZDNZog5K.js.map +0 -1
@@ -3,6 +3,7 @@
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
5
  const jsxRuntime = require('react/jsx-runtime');
6
+ const domains_traces_components_spanTreeRail = require('./span-tree-rail.cjs.js');
6
7
  const skeleton = require('../../../skeleton-lkFwOzqL.cjs');
7
8
  const utils_cn = require('../../../cn-DlOJCxrS.cjs');
8
9
 
@@ -19,13 +20,12 @@ const ROWS = [
19
20
  const LEGEND_WIDTHS = ["w-14", "w-12", "w-16"];
20
21
  function TraceSpanTreeSkeleton({ className }) {
21
22
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { role: "status", "aria-label": "Loading spans", className: utils_cn.cn("flex flex-col", className), children: [
22
- /* @__PURE__ */ jsxRuntime.jsx("div", { "data-slot": "span-type-legend-skeleton", className: "flex flex-wrap items-center gap-1.5 py-3", children: LEGEND_WIDTHS.map((width) => /* @__PURE__ */ jsxRuntime.jsx(skeleton.Skeleton, { className: utils_cn.cn("h-5 rounded-full", width) }, width)) }),
23
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid gap-y-px pb-1", children: ROWS.map(([depth, width], idx) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-h-8 items-stretch", style: { paddingLeft: `${depth}rem` }, children: [
24
- depth > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-2 shrink-0" }),
25
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-w-0 flex-1 items-start gap-1.5 px-2 py-1", children: [
26
- /* @__PURE__ */ jsxRuntime.jsx(skeleton.Skeleton, { className: "mt-[5px] size-2 shrink-0 rounded-full" }),
27
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-w-0 flex-1 flex-col", children: [
28
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-[18px] items-center", children: /* @__PURE__ */ jsxRuntime.jsx(skeleton.Skeleton, { className: "h-3", style: { width } }) }),
23
+ /* @__PURE__ */ jsxRuntime.jsx("div", { "data-slot": "span-type-legend-skeleton", className: "flex flex-wrap items-center gap-1.5 pb-3", children: LEGEND_WIDTHS.map((width) => /* @__PURE__ */ jsxRuntime.jsx(skeleton.Skeleton, { className: utils_cn.cn("h-5 rounded-full", width) }, width)) }),
24
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid gap-y-px pb-1", children: ROWS.map(([depth, width], idx) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex pl-1", style: { paddingBlock: domains_traces_components_spanTreeRail.SPAN_TREE_PAD_Y }, children: [
25
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-w-0 flex-1", style: { paddingLeft: depth * domains_traces_components_spanTreeRail.SPAN_TREE_INDENT }, children: [
26
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-5 w-6 shrink-0 items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(skeleton.Skeleton, { className: "size-5 rounded-md" }) }),
27
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-w-0 flex-1 flex-col pl-2", children: [
28
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-5 items-center", children: /* @__PURE__ */ jsxRuntime.jsx(skeleton.Skeleton, { className: "h-3", style: { width } }) }),
29
29
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-4 items-center", children: /* @__PURE__ */ jsxRuntime.jsx(skeleton.Skeleton, { className: "h-2.5 w-10" }) })
30
30
  ] })
31
31
  ] }),
@@ -1 +1 @@
1
- {"version":3,"file":"trace-span-tree-skeleton.cjs.js","sources":["../../../../src/domains/traces/components/trace-span-tree-skeleton.tsx"],"sourcesContent":["import { Skeleton } from '@/ds/components/Skeleton';\nimport { cn } from '@/lib/utils';\n\n/** `[depth, name width]` per row: a root span, then a couple of nested levels, like a typical agent run. */\nconst ROWS: Array<[number, string]> = [\n [0, '55%'],\n [1, '40%'],\n [1, '60%'],\n [2, '35%'],\n [2, '50%'],\n [1, '45%'],\n [2, '30%'],\n [1, '65%'],\n];\n\nconst LEGEND_WIDTHS = ['w-14', 'w-12', 'w-16'];\n\nexport interface TraceSpanTreeSkeletonProps {\n className?: string;\n}\n\n/**\n * Same boxes as the resolved tree — the `SpanTypeLegend` pills, then one `TimelineNameCol` row per span\n * (structure sign for children, top-aligned dot, caption name stacked over the meta duration, `w-8` toggle slot) —\n * so nothing jumps when the spans land.\n */\nexport function TraceSpanTreeSkeleton({ className }: TraceSpanTreeSkeletonProps) {\n return (\n <div role=\"status\" aria-label=\"Loading spans\" className={cn('flex flex-col', className)}>\n <div data-slot=\"span-type-legend-skeleton\" className=\"flex flex-wrap items-center gap-1.5 py-3\">\n {LEGEND_WIDTHS.map(width => (\n <Skeleton key={width} className={cn('h-5 rounded-full', width)} />\n ))}\n </div>\n <div className=\"grid gap-y-px pb-1\">\n {ROWS.map(([depth, width], idx) => (\n <div key={idx} className=\"flex min-h-8 items-stretch\" style={{ paddingLeft: `${depth}rem` }}>\n {depth > 0 && <div className=\"w-2 shrink-0\" />}\n <div className=\"flex min-w-0 flex-1 items-start gap-1.5 px-2 py-1\">\n <Skeleton className=\"mt-[5px] size-2 shrink-0 rounded-full\" />\n <div className=\"flex min-w-0 flex-1 flex-col\">\n {/* Line boxes of the caption name (18px) and meta duration (16px). */}\n <div className=\"flex h-[18px] items-center\">\n <Skeleton className=\"h-3\" style={{ width }} />\n </div>\n <div className=\"flex h-4 items-center\">\n <Skeleton className=\"h-2.5 w-10\" />\n </div>\n </div>\n </div>\n <div className=\"w-8 shrink-0\" />\n </div>\n ))}\n </div>\n </div>\n );\n}\n"],"names":["jsxs","cn","jsx","Skeleton"],"mappings":";;;;;;;;AAIA,MAAM,IAAA,GAAgC;AAAA,EACpC,CAAC,GAAG,KAAK,CAAA;AAAA,EACT,CAAC,GAAG,KAAK,CAAA;AAAA,EACT,CAAC,GAAG,KAAK,CAAA;AAAA,EACT,CAAC,GAAG,KAAK,CAAA;AAAA,EACT,CAAC,GAAG,KAAK,CAAA;AAAA,EACT,CAAC,GAAG,KAAK,CAAA;AAAA,EACT,CAAC,GAAG,KAAK,CAAA;AAAA,EACT,CAAC,GAAG,KAAK;AACX,CAAA;AAEA,MAAM,aAAA,GAAgB,CAAC,MAAA,EAAQ,MAAA,EAAQ,MAAM,CAAA;AAWtC,SAAS,qBAAA,CAAsB,EAAE,SAAA,EAAU,EAA+B;AAC/E,EAAA,uBACEA,eAAA,CAAC,KAAA,EAAA,EAAI,IAAA,EAAK,QAAA,EAAS,YAAA,EAAW,iBAAgB,SAAA,EAAWC,WAAA,CAAG,eAAA,EAAiB,SAAS,CAAA,EACpF,QAAA,EAAA;AAAA,oBAAAC,cAAA,CAAC,SAAI,WAAA,EAAU,2BAAA,EAA4B,SAAA,EAAU,0CAAA,EAClD,wBAAc,GAAA,CAAI,CAAA,KAAA,qBACjBA,cAAA,CAACC,iBAAA,EAAA,EAAqB,WAAWF,WAAA,CAAG,kBAAA,EAAoB,KAAK,CAAA,EAAA,EAA9C,KAAiD,CACjE,CAAA,EACH,CAAA;AAAA,oBACAC,cAAA,CAAC,SAAI,SAAA,EAAU,oBAAA,EACZ,eAAK,GAAA,CAAI,CAAC,CAAC,KAAA,EAAO,KAAK,CAAA,EAAG,wBACzBF,eAAA,CAAC,KAAA,EAAA,EAAc,WAAU,4BAAA,EAA6B,KAAA,EAAO,EAAE,WAAA,EAAa,CAAA,EAAG,KAAK,CAAA,GAAA,CAAA,EAAM,EACvF,QAAA,EAAA;AAAA,MAAA,KAAA,GAAQ,CAAA,oBAAKE,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,cAAA,EAAe,CAAA;AAAA,sBAC5CF,eAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,mDAAA,EACb,QAAA,EAAA;AAAA,wBAAAE,cAAA,CAACC,iBAAA,EAAA,EAAS,WAAU,uCAAA,EAAwC,CAAA;AAAA,wBAC5DH,eAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,8BAAA,EAEb,QAAA,EAAA;AAAA,0BAAAE,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,4BAAA,EACb,QAAA,kBAAAA,cAAA,CAACC,iBAAA,EAAA,EAAS,SAAA,EAAU,KAAA,EAAM,KAAA,EAAO,EAAE,KAAA,EAAM,EAAG,CAAA,EAC9C,CAAA;AAAA,0BACAD,cAAA,CAAC,SAAI,SAAA,EAAU,uBAAA,EACb,yCAACC,iBAAA,EAAA,EAAS,SAAA,EAAU,cAAa,CAAA,EACnC;AAAA,SAAA,EACF;AAAA,OAAA,EACF,CAAA;AAAA,sBACAD,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,cAAA,EAAe;AAAA,KAAA,EAAA,EAdtB,GAeV,CACD,CAAA,EACH;AAAA,GAAA,EACF,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"trace-span-tree-skeleton.cjs.js","sources":["../../../../src/domains/traces/components/trace-span-tree-skeleton.tsx"],"sourcesContent":["import { SPAN_TREE_INDENT, SPAN_TREE_PAD_Y } from './span-tree-rail';\nimport { Skeleton } from '@/ds/components/Skeleton';\nimport { cn } from '@/lib/utils';\n\n/** `[depth, name width]` per row: a root span, then a couple of nested levels, like a typical agent run. */\nconst ROWS: Array<[number, string]> = [\n [0, '55%'],\n [1, '40%'],\n [1, '60%'],\n [2, '35%'],\n [2, '50%'],\n [1, '45%'],\n [2, '30%'],\n [1, '65%'],\n];\n\nconst LEGEND_WIDTHS = ['w-14', 'w-12', 'w-16'];\n\nexport interface TraceSpanTreeSkeletonProps {\n className?: string;\n}\n\n/**\n * Same boxes as the resolved tree — the `SpanTypeLegend` pills, then one `TimelineNameCol` row per span\n * (24px per level, badge centred on the name line, name stacked over the duration, `w-8` toggle slot) —\n * so nothing jumps when the spans land.\n */\nexport function TraceSpanTreeSkeleton({ className }: TraceSpanTreeSkeletonProps) {\n return (\n <div role=\"status\" aria-label=\"Loading spans\" className={cn('flex flex-col', className)}>\n <div data-slot=\"span-type-legend-skeleton\" className=\"flex flex-wrap items-center gap-1.5 pb-3\">\n {LEGEND_WIDTHS.map(width => (\n <Skeleton key={width} className={cn('h-5 rounded-full', width)} />\n ))}\n </div>\n <div className=\"grid gap-y-px pb-1\">\n {ROWS.map(([depth, width], idx) => (\n <div key={idx} className=\"flex pl-1\" style={{ paddingBlock: SPAN_TREE_PAD_Y }}>\n <div className=\"flex min-w-0 flex-1\" style={{ paddingLeft: depth * SPAN_TREE_INDENT }}>\n <div className=\"flex h-5 w-6 shrink-0 items-center justify-center\">\n <Skeleton className=\"size-5 rounded-md\" />\n </div>\n <div className=\"flex min-w-0 flex-1 flex-col pl-2\">\n {/* Line boxes of the body-sm name (20px) and caption duration (16px). */}\n <div className=\"flex h-5 items-center\">\n <Skeleton className=\"h-3\" style={{ width }} />\n </div>\n <div className=\"flex h-4 items-center\">\n <Skeleton className=\"h-2.5 w-10\" />\n </div>\n </div>\n </div>\n <div className=\"w-8 shrink-0\" />\n </div>\n ))}\n </div>\n </div>\n );\n}\n"],"names":["jsxs","cn","jsx","Skeleton","SPAN_TREE_PAD_Y","SPAN_TREE_INDENT"],"mappings":";;;;;;;;;AAKA,MAAM,IAAA,GAAgC;AAAA,EACpC,CAAC,GAAG,KAAK,CAAA;AAAA,EACT,CAAC,GAAG,KAAK,CAAA;AAAA,EACT,CAAC,GAAG,KAAK,CAAA;AAAA,EACT,CAAC,GAAG,KAAK,CAAA;AAAA,EACT,CAAC,GAAG,KAAK,CAAA;AAAA,EACT,CAAC,GAAG,KAAK,CAAA;AAAA,EACT,CAAC,GAAG,KAAK,CAAA;AAAA,EACT,CAAC,GAAG,KAAK;AACX,CAAA;AAEA,MAAM,aAAA,GAAgB,CAAC,MAAA,EAAQ,MAAA,EAAQ,MAAM,CAAA;AAWtC,SAAS,qBAAA,CAAsB,EAAE,SAAA,EAAU,EAA+B;AAC/E,EAAA,uBACEA,eAAA,CAAC,KAAA,EAAA,EAAI,IAAA,EAAK,QAAA,EAAS,YAAA,EAAW,iBAAgB,SAAA,EAAWC,WAAA,CAAG,eAAA,EAAiB,SAAS,CAAA,EACpF,QAAA,EAAA;AAAA,oBAAAC,cAAA,CAAC,SAAI,WAAA,EAAU,2BAAA,EAA4B,SAAA,EAAU,0CAAA,EAClD,wBAAc,GAAA,CAAI,CAAA,KAAA,qBACjBA,cAAA,CAACC,iBAAA,EAAA,EAAqB,WAAWF,WAAA,CAAG,kBAAA,EAAoB,KAAK,CAAA,EAAA,EAA9C,KAAiD,CACjE,CAAA,EACH,CAAA;AAAA,oBACAC,cAAA,CAAC,SAAI,SAAA,EAAU,oBAAA,EACZ,eAAK,GAAA,CAAI,CAAC,CAAC,KAAA,EAAO,KAAK,GAAG,GAAA,qBACzBF,eAAA,CAAC,SAAc,SAAA,EAAU,WAAA,EAAY,OAAO,EAAE,YAAA,EAAcI,wDAAgB,EAC1E,QAAA,EAAA;AAAA,sBAAAJ,eAAA,CAAC,KAAA,EAAA,EAAI,WAAU,qBAAA,EAAsB,KAAA,EAAO,EAAE,WAAA,EAAa,KAAA,GAAQK,yDAAiB,EAClF,QAAA,EAAA;AAAA,wBAAAH,cAAA,CAAC,SAAI,SAAA,EAAU,mDAAA,EACb,yCAACC,iBAAA,EAAA,EAAS,SAAA,EAAU,qBAAoB,CAAA,EAC1C,CAAA;AAAA,wBACAH,eAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,mCAAA,EAEb,QAAA,EAAA;AAAA,0BAAAE,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,uBAAA,EACb,QAAA,kBAAAA,cAAA,CAACC,iBAAA,EAAA,EAAS,SAAA,EAAU,KAAA,EAAM,KAAA,EAAO,EAAE,KAAA,EAAM,EAAG,CAAA,EAC9C,CAAA;AAAA,0BACAD,cAAA,CAAC,SAAI,SAAA,EAAU,uBAAA,EACb,yCAACC,iBAAA,EAAA,EAAS,SAAA,EAAU,cAAa,CAAA,EACnC;AAAA,SAAA,EACF;AAAA,OAAA,EACF,CAAA;AAAA,sBACAD,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,cAAA,EAAe;AAAA,KAAA,EAAA,EAftB,GAgBV,CACD,CAAA,EACH;AAAA,GAAA,EACF,CAAA;AAEJ;;;;"}
@@ -1,4 +1,5 @@
1
1
  import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { SPAN_TREE_PAD_Y, SPAN_TREE_INDENT } from './span-tree-rail.es.js';
2
3
  import { S as Skeleton } from '../../../skeleton-Q4fDAXcz.js';
3
4
  import { c as cn } from '../../../cn-CQUhN5Jx.js';
4
5
 
@@ -15,13 +16,12 @@ const ROWS = [
15
16
  const LEGEND_WIDTHS = ["w-14", "w-12", "w-16"];
16
17
  function TraceSpanTreeSkeleton({ className }) {
17
18
  return /* @__PURE__ */ jsxs("div", { role: "status", "aria-label": "Loading spans", className: cn("flex flex-col", className), children: [
18
- /* @__PURE__ */ jsx("div", { "data-slot": "span-type-legend-skeleton", className: "flex flex-wrap items-center gap-1.5 py-3", children: LEGEND_WIDTHS.map((width) => /* @__PURE__ */ jsx(Skeleton, { className: cn("h-5 rounded-full", width) }, width)) }),
19
- /* @__PURE__ */ jsx("div", { className: "grid gap-y-px pb-1", children: ROWS.map(([depth, width], idx) => /* @__PURE__ */ jsxs("div", { className: "flex min-h-8 items-stretch", style: { paddingLeft: `${depth}rem` }, children: [
20
- depth > 0 && /* @__PURE__ */ jsx("div", { className: "w-2 shrink-0" }),
21
- /* @__PURE__ */ jsxs("div", { className: "flex min-w-0 flex-1 items-start gap-1.5 px-2 py-1", children: [
22
- /* @__PURE__ */ jsx(Skeleton, { className: "mt-[5px] size-2 shrink-0 rounded-full" }),
23
- /* @__PURE__ */ jsxs("div", { className: "flex min-w-0 flex-1 flex-col", children: [
24
- /* @__PURE__ */ jsx("div", { className: "flex h-[18px] items-center", children: /* @__PURE__ */ jsx(Skeleton, { className: "h-3", style: { width } }) }),
19
+ /* @__PURE__ */ jsx("div", { "data-slot": "span-type-legend-skeleton", className: "flex flex-wrap items-center gap-1.5 pb-3", children: LEGEND_WIDTHS.map((width) => /* @__PURE__ */ jsx(Skeleton, { className: cn("h-5 rounded-full", width) }, width)) }),
20
+ /* @__PURE__ */ jsx("div", { className: "grid gap-y-px pb-1", children: ROWS.map(([depth, width], idx) => /* @__PURE__ */ jsxs("div", { className: "flex pl-1", style: { paddingBlock: SPAN_TREE_PAD_Y }, children: [
21
+ /* @__PURE__ */ jsxs("div", { className: "flex min-w-0 flex-1", style: { paddingLeft: depth * SPAN_TREE_INDENT }, children: [
22
+ /* @__PURE__ */ jsx("div", { className: "flex h-5 w-6 shrink-0 items-center justify-center", children: /* @__PURE__ */ jsx(Skeleton, { className: "size-5 rounded-md" }) }),
23
+ /* @__PURE__ */ jsxs("div", { className: "flex min-w-0 flex-1 flex-col pl-2", children: [
24
+ /* @__PURE__ */ jsx("div", { className: "flex h-5 items-center", children: /* @__PURE__ */ jsx(Skeleton, { className: "h-3", style: { width } }) }),
25
25
  /* @__PURE__ */ jsx("div", { className: "flex h-4 items-center", children: /* @__PURE__ */ jsx(Skeleton, { className: "h-2.5 w-10" }) })
26
26
  ] })
27
27
  ] }),
@@ -1 +1 @@
1
- {"version":3,"file":"trace-span-tree-skeleton.es.js","sources":["../../../../src/domains/traces/components/trace-span-tree-skeleton.tsx"],"sourcesContent":["import { Skeleton } from '@/ds/components/Skeleton';\nimport { cn } from '@/lib/utils';\n\n/** `[depth, name width]` per row: a root span, then a couple of nested levels, like a typical agent run. */\nconst ROWS: Array<[number, string]> = [\n [0, '55%'],\n [1, '40%'],\n [1, '60%'],\n [2, '35%'],\n [2, '50%'],\n [1, '45%'],\n [2, '30%'],\n [1, '65%'],\n];\n\nconst LEGEND_WIDTHS = ['w-14', 'w-12', 'w-16'];\n\nexport interface TraceSpanTreeSkeletonProps {\n className?: string;\n}\n\n/**\n * Same boxes as the resolved tree — the `SpanTypeLegend` pills, then one `TimelineNameCol` row per span\n * (structure sign for children, top-aligned dot, caption name stacked over the meta duration, `w-8` toggle slot) —\n * so nothing jumps when the spans land.\n */\nexport function TraceSpanTreeSkeleton({ className }: TraceSpanTreeSkeletonProps) {\n return (\n <div role=\"status\" aria-label=\"Loading spans\" className={cn('flex flex-col', className)}>\n <div data-slot=\"span-type-legend-skeleton\" className=\"flex flex-wrap items-center gap-1.5 py-3\">\n {LEGEND_WIDTHS.map(width => (\n <Skeleton key={width} className={cn('h-5 rounded-full', width)} />\n ))}\n </div>\n <div className=\"grid gap-y-px pb-1\">\n {ROWS.map(([depth, width], idx) => (\n <div key={idx} className=\"flex min-h-8 items-stretch\" style={{ paddingLeft: `${depth}rem` }}>\n {depth > 0 && <div className=\"w-2 shrink-0\" />}\n <div className=\"flex min-w-0 flex-1 items-start gap-1.5 px-2 py-1\">\n <Skeleton className=\"mt-[5px] size-2 shrink-0 rounded-full\" />\n <div className=\"flex min-w-0 flex-1 flex-col\">\n {/* Line boxes of the caption name (18px) and meta duration (16px). */}\n <div className=\"flex h-[18px] items-center\">\n <Skeleton className=\"h-3\" style={{ width }} />\n </div>\n <div className=\"flex h-4 items-center\">\n <Skeleton className=\"h-2.5 w-10\" />\n </div>\n </div>\n </div>\n <div className=\"w-8 shrink-0\" />\n </div>\n ))}\n </div>\n </div>\n );\n}\n"],"names":[],"mappings":";;;;AAIA,MAAM,IAAA,GAAgC;AAAA,EACpC,CAAC,GAAG,KAAK,CAAA;AAAA,EACT,CAAC,GAAG,KAAK,CAAA;AAAA,EACT,CAAC,GAAG,KAAK,CAAA;AAAA,EACT,CAAC,GAAG,KAAK,CAAA;AAAA,EACT,CAAC,GAAG,KAAK,CAAA;AAAA,EACT,CAAC,GAAG,KAAK,CAAA;AAAA,EACT,CAAC,GAAG,KAAK,CAAA;AAAA,EACT,CAAC,GAAG,KAAK;AACX,CAAA;AAEA,MAAM,aAAA,GAAgB,CAAC,MAAA,EAAQ,MAAA,EAAQ,MAAM,CAAA;AAWtC,SAAS,qBAAA,CAAsB,EAAE,SAAA,EAAU,EAA+B;AAC/E,EAAA,uBACE,IAAA,CAAC,KAAA,EAAA,EAAI,IAAA,EAAK,QAAA,EAAS,YAAA,EAAW,iBAAgB,SAAA,EAAW,EAAA,CAAG,eAAA,EAAiB,SAAS,CAAA,EACpF,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,SAAI,WAAA,EAAU,2BAAA,EAA4B,SAAA,EAAU,0CAAA,EAClD,wBAAc,GAAA,CAAI,CAAA,KAAA,qBACjB,GAAA,CAAC,QAAA,EAAA,EAAqB,WAAW,EAAA,CAAG,kBAAA,EAAoB,KAAK,CAAA,EAAA,EAA9C,KAAiD,CACjE,CAAA,EACH,CAAA;AAAA,oBACA,GAAA,CAAC,SAAI,SAAA,EAAU,oBAAA,EACZ,eAAK,GAAA,CAAI,CAAC,CAAC,KAAA,EAAO,KAAK,CAAA,EAAG,wBACzB,IAAA,CAAC,KAAA,EAAA,EAAc,WAAU,4BAAA,EAA6B,KAAA,EAAO,EAAE,WAAA,EAAa,CAAA,EAAG,KAAK,CAAA,GAAA,CAAA,EAAM,EACvF,QAAA,EAAA;AAAA,MAAA,KAAA,GAAQ,CAAA,oBAAK,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,cAAA,EAAe,CAAA;AAAA,sBAC5C,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,mDAAA,EACb,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,QAAA,EAAA,EAAS,WAAU,uCAAA,EAAwC,CAAA;AAAA,wBAC5D,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,8BAAA,EAEb,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,4BAAA,EACb,QAAA,kBAAA,GAAA,CAAC,QAAA,EAAA,EAAS,SAAA,EAAU,KAAA,EAAM,KAAA,EAAO,EAAE,KAAA,EAAM,EAAG,CAAA,EAC9C,CAAA;AAAA,0BACA,GAAA,CAAC,SAAI,SAAA,EAAU,uBAAA,EACb,8BAAC,QAAA,EAAA,EAAS,SAAA,EAAU,cAAa,CAAA,EACnC;AAAA,SAAA,EACF;AAAA,OAAA,EACF,CAAA;AAAA,sBACA,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,cAAA,EAAe;AAAA,KAAA,EAAA,EAdtB,GAeV,CACD,CAAA,EACH;AAAA,GAAA,EACF,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"trace-span-tree-skeleton.es.js","sources":["../../../../src/domains/traces/components/trace-span-tree-skeleton.tsx"],"sourcesContent":["import { SPAN_TREE_INDENT, SPAN_TREE_PAD_Y } from './span-tree-rail';\nimport { Skeleton } from '@/ds/components/Skeleton';\nimport { cn } from '@/lib/utils';\n\n/** `[depth, name width]` per row: a root span, then a couple of nested levels, like a typical agent run. */\nconst ROWS: Array<[number, string]> = [\n [0, '55%'],\n [1, '40%'],\n [1, '60%'],\n [2, '35%'],\n [2, '50%'],\n [1, '45%'],\n [2, '30%'],\n [1, '65%'],\n];\n\nconst LEGEND_WIDTHS = ['w-14', 'w-12', 'w-16'];\n\nexport interface TraceSpanTreeSkeletonProps {\n className?: string;\n}\n\n/**\n * Same boxes as the resolved tree — the `SpanTypeLegend` pills, then one `TimelineNameCol` row per span\n * (24px per level, badge centred on the name line, name stacked over the duration, `w-8` toggle slot) —\n * so nothing jumps when the spans land.\n */\nexport function TraceSpanTreeSkeleton({ className }: TraceSpanTreeSkeletonProps) {\n return (\n <div role=\"status\" aria-label=\"Loading spans\" className={cn('flex flex-col', className)}>\n <div data-slot=\"span-type-legend-skeleton\" className=\"flex flex-wrap items-center gap-1.5 pb-3\">\n {LEGEND_WIDTHS.map(width => (\n <Skeleton key={width} className={cn('h-5 rounded-full', width)} />\n ))}\n </div>\n <div className=\"grid gap-y-px pb-1\">\n {ROWS.map(([depth, width], idx) => (\n <div key={idx} className=\"flex pl-1\" style={{ paddingBlock: SPAN_TREE_PAD_Y }}>\n <div className=\"flex min-w-0 flex-1\" style={{ paddingLeft: depth * SPAN_TREE_INDENT }}>\n <div className=\"flex h-5 w-6 shrink-0 items-center justify-center\">\n <Skeleton className=\"size-5 rounded-md\" />\n </div>\n <div className=\"flex min-w-0 flex-1 flex-col pl-2\">\n {/* Line boxes of the body-sm name (20px) and caption duration (16px). */}\n <div className=\"flex h-5 items-center\">\n <Skeleton className=\"h-3\" style={{ width }} />\n </div>\n <div className=\"flex h-4 items-center\">\n <Skeleton className=\"h-2.5 w-10\" />\n </div>\n </div>\n </div>\n <div className=\"w-8 shrink-0\" />\n </div>\n ))}\n </div>\n </div>\n );\n}\n"],"names":[],"mappings":";;;;;AAKA,MAAM,IAAA,GAAgC;AAAA,EACpC,CAAC,GAAG,KAAK,CAAA;AAAA,EACT,CAAC,GAAG,KAAK,CAAA;AAAA,EACT,CAAC,GAAG,KAAK,CAAA;AAAA,EACT,CAAC,GAAG,KAAK,CAAA;AAAA,EACT,CAAC,GAAG,KAAK,CAAA;AAAA,EACT,CAAC,GAAG,KAAK,CAAA;AAAA,EACT,CAAC,GAAG,KAAK,CAAA;AAAA,EACT,CAAC,GAAG,KAAK;AACX,CAAA;AAEA,MAAM,aAAA,GAAgB,CAAC,MAAA,EAAQ,MAAA,EAAQ,MAAM,CAAA;AAWtC,SAAS,qBAAA,CAAsB,EAAE,SAAA,EAAU,EAA+B;AAC/E,EAAA,uBACE,IAAA,CAAC,KAAA,EAAA,EAAI,IAAA,EAAK,QAAA,EAAS,YAAA,EAAW,iBAAgB,SAAA,EAAW,EAAA,CAAG,eAAA,EAAiB,SAAS,CAAA,EACpF,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,SAAI,WAAA,EAAU,2BAAA,EAA4B,SAAA,EAAU,0CAAA,EAClD,wBAAc,GAAA,CAAI,CAAA,KAAA,qBACjB,GAAA,CAAC,QAAA,EAAA,EAAqB,WAAW,EAAA,CAAG,kBAAA,EAAoB,KAAK,CAAA,EAAA,EAA9C,KAAiD,CACjE,CAAA,EACH,CAAA;AAAA,oBACA,GAAA,CAAC,SAAI,SAAA,EAAU,oBAAA,EACZ,eAAK,GAAA,CAAI,CAAC,CAAC,KAAA,EAAO,KAAK,GAAG,GAAA,qBACzB,IAAA,CAAC,SAAc,SAAA,EAAU,WAAA,EAAY,OAAO,EAAE,YAAA,EAAc,iBAAgB,EAC1E,QAAA,EAAA;AAAA,sBAAA,IAAA,CAAC,KAAA,EAAA,EAAI,WAAU,qBAAA,EAAsB,KAAA,EAAO,EAAE,WAAA,EAAa,KAAA,GAAQ,kBAAiB,EAClF,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,SAAI,SAAA,EAAU,mDAAA,EACb,8BAAC,QAAA,EAAA,EAAS,SAAA,EAAU,qBAAoB,CAAA,EAC1C,CAAA;AAAA,wBACA,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,mCAAA,EAEb,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,uBAAA,EACb,QAAA,kBAAA,GAAA,CAAC,QAAA,EAAA,EAAS,SAAA,EAAU,KAAA,EAAM,KAAA,EAAO,EAAE,KAAA,EAAM,EAAG,CAAA,EAC9C,CAAA;AAAA,0BACA,GAAA,CAAC,SAAI,SAAA,EAAU,uBAAA,EACb,8BAAC,QAAA,EAAA,EAAS,SAAA,EAAU,cAAa,CAAA,EACnC;AAAA,SAAA,EACF;AAAA,OAAA,EACF,CAAA;AAAA,sBACA,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,cAAA,EAAe;AAAA,KAAA,EAAA,EAftB,GAgBV,CACD,CAAA,EACH;AAAA,GAAA,EACF,CAAA;AAEJ;;;;"}
@@ -7,14 +7,13 @@ const domains_traces_components_spanRows = require('./span-rows.cjs.js');
7
7
  const domains_traces_components_spanTreeRow = require('./span-tree-row.cjs.js');
8
8
  const domains_traces_components_spanTypeLegend = require('./span-type-legend.cjs.js');
9
9
  const domains_traces_components_traceSpanTreeSkeleton = require('./trace-span-tree-skeleton.cjs.js');
10
- const Txt = require('../../../Txt-CIS2G5Jx.cjs');
11
10
  const utils_cn = require('../../../cn-DlOJCxrS.cjs');
12
11
  const utils_duration = require('../../../utils/duration.cjs.js');
13
12
 
14
13
  function TraceSpanTreeLoading() {
15
14
  return /* @__PURE__ */ jsxRuntime.jsx(domains_traces_components_traceSpanTreeSkeleton.TraceSpanTreeSkeleton, {});
16
15
  }
17
- const durationMeta = (ctx) => /* @__PURE__ */ jsxRuntime.jsx(Txt.Txt, { as: "span", variant: "meta", font: "mono", children: utils_duration.formatDurationPrecise(ctx.span.latency) });
16
+ const durationMeta = (ctx) => utils_duration.formatDuration(ctx.span.latency);
18
17
  function TraceSpanTree({
19
18
  hierarchicalSpans = [],
20
19
  onSpanClick,
@@ -1 +1 @@
1
- {"version":3,"file":"trace-span-tree.cjs.js","sources":["../../../../src/domains/traces/components/trace-span-tree.tsx"],"sourcesContent":["import type { Dispatch, ReactNode, SetStateAction } from 'react';\nimport type { UISpan } from '../types';\nimport type { SpanRowContext } from './span-rows';\nimport { SpanRows } from './span-rows';\nimport { SpanTreeRow } from './span-tree-row';\nimport { SpanTypeLegend } from './span-type-legend';\nimport { TraceSpanTreeSkeleton } from './trace-span-tree-skeleton';\nimport { Txt } from '@/ds/components/Txt/Txt';\nimport { cn } from '@/lib/utils';\nimport { formatDurationPrecise } from '@/utils/duration';\n\nexport type TraceSpanTreeProps = {\n hierarchicalSpans: UISpan[];\n onSpanClick: (id: string) => void;\n selectedSpanId?: string;\n isLoading?: boolean;\n fadedTypes?: string[];\n expandedSpanIds?: string[];\n setExpandedSpanIds?: Dispatch<SetStateAction<string[]>>;\n featuredSpanIds?: string[];\n /** Row scrolled into view once it is mounted (ancestors auto-expand when the span is featured). */\n revealSpanId?: string;\n /** Rendered full-width above the span type legend row. */\n leadingSlot?: ReactNode;\n /** Optional end-of-row cell. By default rows have no trailing cell; the duration is shown under the span name. */\n renderTrailing?: (ctx: SpanRowContext) => ReactNode;\n};\n\nexport function TraceSpanTreeLoading() {\n return <TraceSpanTreeSkeleton />;\n}\n\nconst durationMeta = (ctx: SpanRowContext) => (\n <Txt as=\"span\" variant=\"meta\" font=\"mono\">\n {formatDurationPrecise(ctx.span.latency)}\n </Txt>\n);\n\n/** Hierarchical span tree: expand toggle, name and duration per row, plus an optional trailing cell. */\nexport function TraceSpanTree({\n hierarchicalSpans = [],\n onSpanClick,\n selectedSpanId,\n isLoading,\n fadedTypes,\n expandedSpanIds,\n setExpandedSpanIds,\n featuredSpanIds,\n revealSpanId,\n leadingSlot,\n renderTrailing,\n}: TraceSpanTreeProps) {\n if (isLoading) return <TraceSpanTreeLoading />;\n\n return (\n <>\n {leadingSlot}\n <SpanTypeLegend spans={hierarchicalSpans} />\n <div\n className={cn('grid content-start items-start gap-y-px overflow-hidden pb-1', {\n 'grid-cols-[minmax(0,1fr)]': !renderTrailing,\n 'grid-cols-[minmax(0,1fr)_auto]': !!renderTrailing,\n })}\n >\n <SpanRows\n spans={hierarchicalSpans}\n onSpanClick={onSpanClick}\n selectedSpanId={selectedSpanId}\n revealSpanId={revealSpanId}\n fadedTypes={fadedTypes}\n featuredSpanIds={featuredSpanIds}\n expandedSpanIds={expandedSpanIds}\n setExpandedSpanIds={setExpandedSpanIds}\n renderRow={ctx => <SpanTreeRow ctx={ctx} meta={durationMeta} trailing={renderTrailing} />}\n />\n </div>\n </>\n );\n}\n"],"names":["TraceSpanTreeSkeleton","jsx","Txt","formatDurationPrecise","jsxs","Fragment","SpanTypeLegend","cn","SpanRows","SpanTreeRow"],"mappings":";;;;;;;;;;;;;AA4BO,SAAS,oBAAA,GAAuB;AACrC,EAAA,sCAAQA,qEAAA,EAAA,EAAsB,CAAA;AAChC;AAEA,MAAM,YAAA,GAAe,CAAC,GAAA,qBACpBC,cAAA,CAACC,WAAI,EAAA,EAAG,MAAA,EAAO,OAAA,EAAQ,MAAA,EAAO,MAAK,MAAA,EAChC,QAAA,EAAAC,oCAAA,CAAsB,GAAA,CAAI,IAAA,CAAK,OAAO,CAAA,EACzC,CAAA;AAIK,SAAS,aAAA,CAAc;AAAA,EAC5B,oBAAoB,EAAC;AAAA,EACrB,WAAA;AAAA,EACA,cAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA,eAAA;AAAA,EACA,kBAAA;AAAA,EACA,eAAA;AAAA,EACA,YAAA;AAAA,EACA,WAAA;AAAA,EACA;AACF,CAAA,EAAuB;AACrB,EAAA,IAAI,SAAA,EAAW,uBAAOF,cAAA,CAAC,oBAAA,EAAA,EAAqB,CAAA;AAE5C,EAAA,uBACEG,eAAA,CAAAC,mBAAA,EAAA,EACG,QAAA,EAAA;AAAA,IAAA,WAAA;AAAA,oBACDJ,cAAA,CAACK,uDAAA,EAAA,EAAe,KAAA,EAAO,iBAAA,EAAmB,CAAA;AAAA,oBAC1CL,cAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAWM,YAAG,8DAAA,EAAgE;AAAA,UAC5E,6BAA6B,CAAC,cAAA;AAAA,UAC9B,gCAAA,EAAkC,CAAC,CAAC;AAAA,SACrC,CAAA;AAAA,QAED,QAAA,kBAAAN,cAAA;AAAA,UAACO,2CAAA;AAAA,UAAA;AAAA,YACC,KAAA,EAAO,iBAAA;AAAA,YACP,WAAA;AAAA,YACA,cAAA;AAAA,YACA,YAAA;AAAA,YACA,UAAA;AAAA,YACA,eAAA;AAAA,YACA,eAAA;AAAA,YACA,kBAAA;AAAA,YACA,SAAA,EAAW,yBAAOP,cAAA,CAACQ,iDAAA,EAAA,EAAY,KAAU,IAAA,EAAM,YAAA,EAAc,UAAU,cAAA,EAAgB;AAAA;AAAA;AACzF;AAAA;AACF,GAAA,EACF,CAAA;AAEJ;;;;;"}
1
+ {"version":3,"file":"trace-span-tree.cjs.js","sources":["../../../../src/domains/traces/components/trace-span-tree.tsx"],"sourcesContent":["import type { Dispatch, ReactNode, SetStateAction } from 'react';\nimport type { UISpan } from '../types';\nimport type { SpanRowContext } from './span-rows';\nimport { SpanRows } from './span-rows';\nimport { SpanTreeRow } from './span-tree-row';\nimport { SpanTypeLegend } from './span-type-legend';\nimport { TraceSpanTreeSkeleton } from './trace-span-tree-skeleton';\nimport { cn } from '@/lib/utils';\nimport { formatDuration } from '@/utils/duration';\n\nexport type TraceSpanTreeProps = {\n hierarchicalSpans: UISpan[];\n onSpanClick: (id: string) => void;\n selectedSpanId?: string;\n isLoading?: boolean;\n fadedTypes?: string[];\n expandedSpanIds?: string[];\n setExpandedSpanIds?: Dispatch<SetStateAction<string[]>>;\n featuredSpanIds?: string[];\n /** Row scrolled into view once it is mounted (ancestors auto-expand when the span is featured). */\n revealSpanId?: string;\n /** Rendered full-width above the span type legend row. */\n leadingSlot?: ReactNode;\n /** Optional end-of-row cell. By default rows have no trailing cell; the duration is shown under the span name. */\n renderTrailing?: (ctx: SpanRowContext) => ReactNode;\n};\n\nexport function TraceSpanTreeLoading() {\n return <TraceSpanTreeSkeleton />;\n}\n\nconst durationMeta = (ctx: SpanRowContext) => formatDuration(ctx.span.latency);\n\n/** Hierarchical span tree: expand toggle, name and duration per row, plus an optional trailing cell. */\nexport function TraceSpanTree({\n hierarchicalSpans = [],\n onSpanClick,\n selectedSpanId,\n isLoading,\n fadedTypes,\n expandedSpanIds,\n setExpandedSpanIds,\n featuredSpanIds,\n revealSpanId,\n leadingSlot,\n renderTrailing,\n}: TraceSpanTreeProps) {\n if (isLoading) return <TraceSpanTreeLoading />;\n\n return (\n <>\n {leadingSlot}\n <SpanTypeLegend spans={hierarchicalSpans} />\n <div\n className={cn('grid content-start items-start gap-y-px overflow-hidden pb-1', {\n 'grid-cols-[minmax(0,1fr)]': !renderTrailing,\n 'grid-cols-[minmax(0,1fr)_auto]': !!renderTrailing,\n })}\n >\n <SpanRows\n spans={hierarchicalSpans}\n onSpanClick={onSpanClick}\n selectedSpanId={selectedSpanId}\n revealSpanId={revealSpanId}\n fadedTypes={fadedTypes}\n featuredSpanIds={featuredSpanIds}\n expandedSpanIds={expandedSpanIds}\n setExpandedSpanIds={setExpandedSpanIds}\n renderRow={ctx => <SpanTreeRow ctx={ctx} meta={durationMeta} trailing={renderTrailing} />}\n />\n </div>\n </>\n );\n}\n"],"names":["TraceSpanTreeSkeleton","formatDuration","jsx","jsxs","Fragment","SpanTypeLegend","cn","SpanRows","SpanTreeRow"],"mappings":";;;;;;;;;;;;AA2BO,SAAS,oBAAA,GAAuB;AACrC,EAAA,sCAAQA,qEAAA,EAAA,EAAsB,CAAA;AAChC;AAEA,MAAM,eAAe,CAAC,GAAA,KAAwBC,6BAAA,CAAe,GAAA,CAAI,KAAK,OAAO,CAAA;AAGtE,SAAS,aAAA,CAAc;AAAA,EAC5B,oBAAoB,EAAC;AAAA,EACrB,WAAA;AAAA,EACA,cAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA,eAAA;AAAA,EACA,kBAAA;AAAA,EACA,eAAA;AAAA,EACA,YAAA;AAAA,EACA,WAAA;AAAA,EACA;AACF,CAAA,EAAuB;AACrB,EAAA,IAAI,SAAA,EAAW,uBAAOC,cAAA,CAAC,oBAAA,EAAA,EAAqB,CAAA;AAE5C,EAAA,uBACEC,eAAA,CAAAC,mBAAA,EAAA,EACG,QAAA,EAAA;AAAA,IAAA,WAAA;AAAA,oBACDF,cAAA,CAACG,uDAAA,EAAA,EAAe,KAAA,EAAO,iBAAA,EAAmB,CAAA;AAAA,oBAC1CH,cAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAWI,YAAG,8DAAA,EAAgE;AAAA,UAC5E,6BAA6B,CAAC,cAAA;AAAA,UAC9B,gCAAA,EAAkC,CAAC,CAAC;AAAA,SACrC,CAAA;AAAA,QAED,QAAA,kBAAAJ,cAAA;AAAA,UAACK,2CAAA;AAAA,UAAA;AAAA,YACC,KAAA,EAAO,iBAAA;AAAA,YACP,WAAA;AAAA,YACA,cAAA;AAAA,YACA,YAAA;AAAA,YACA,UAAA;AAAA,YACA,eAAA;AAAA,YACA,eAAA;AAAA,YACA,kBAAA;AAAA,YACA,SAAA,EAAW,yBAAOL,cAAA,CAACM,iDAAA,EAAA,EAAY,KAAU,IAAA,EAAM,YAAA,EAAc,UAAU,cAAA,EAAgB;AAAA;AAAA;AACzF;AAAA;AACF,GAAA,EACF,CAAA;AAEJ;;;;;"}
@@ -3,14 +3,13 @@ import { SpanRows } from './span-rows.es.js';
3
3
  import { SpanTreeRow } from './span-tree-row.es.js';
4
4
  import { SpanTypeLegend } from './span-type-legend.es.js';
5
5
  import { TraceSpanTreeSkeleton } from './trace-span-tree-skeleton.es.js';
6
- import { T as Txt } from '../../../Txt-BtIGLRk1.js';
7
6
  import { c as cn } from '../../../cn-CQUhN5Jx.js';
8
- import { formatDurationPrecise } from '../../../utils/duration.es.js';
7
+ import { formatDuration } from '../../../utils/duration.es.js';
9
8
 
10
9
  function TraceSpanTreeLoading() {
11
10
  return /* @__PURE__ */ jsx(TraceSpanTreeSkeleton, {});
12
11
  }
13
- const durationMeta = (ctx) => /* @__PURE__ */ jsx(Txt, { as: "span", variant: "meta", font: "mono", children: formatDurationPrecise(ctx.span.latency) });
12
+ const durationMeta = (ctx) => formatDuration(ctx.span.latency);
14
13
  function TraceSpanTree({
15
14
  hierarchicalSpans = [],
16
15
  onSpanClick,
@@ -1 +1 @@
1
- {"version":3,"file":"trace-span-tree.es.js","sources":["../../../../src/domains/traces/components/trace-span-tree.tsx"],"sourcesContent":["import type { Dispatch, ReactNode, SetStateAction } from 'react';\nimport type { UISpan } from '../types';\nimport type { SpanRowContext } from './span-rows';\nimport { SpanRows } from './span-rows';\nimport { SpanTreeRow } from './span-tree-row';\nimport { SpanTypeLegend } from './span-type-legend';\nimport { TraceSpanTreeSkeleton } from './trace-span-tree-skeleton';\nimport { Txt } from '@/ds/components/Txt/Txt';\nimport { cn } from '@/lib/utils';\nimport { formatDurationPrecise } from '@/utils/duration';\n\nexport type TraceSpanTreeProps = {\n hierarchicalSpans: UISpan[];\n onSpanClick: (id: string) => void;\n selectedSpanId?: string;\n isLoading?: boolean;\n fadedTypes?: string[];\n expandedSpanIds?: string[];\n setExpandedSpanIds?: Dispatch<SetStateAction<string[]>>;\n featuredSpanIds?: string[];\n /** Row scrolled into view once it is mounted (ancestors auto-expand when the span is featured). */\n revealSpanId?: string;\n /** Rendered full-width above the span type legend row. */\n leadingSlot?: ReactNode;\n /** Optional end-of-row cell. By default rows have no trailing cell; the duration is shown under the span name. */\n renderTrailing?: (ctx: SpanRowContext) => ReactNode;\n};\n\nexport function TraceSpanTreeLoading() {\n return <TraceSpanTreeSkeleton />;\n}\n\nconst durationMeta = (ctx: SpanRowContext) => (\n <Txt as=\"span\" variant=\"meta\" font=\"mono\">\n {formatDurationPrecise(ctx.span.latency)}\n </Txt>\n);\n\n/** Hierarchical span tree: expand toggle, name and duration per row, plus an optional trailing cell. */\nexport function TraceSpanTree({\n hierarchicalSpans = [],\n onSpanClick,\n selectedSpanId,\n isLoading,\n fadedTypes,\n expandedSpanIds,\n setExpandedSpanIds,\n featuredSpanIds,\n revealSpanId,\n leadingSlot,\n renderTrailing,\n}: TraceSpanTreeProps) {\n if (isLoading) return <TraceSpanTreeLoading />;\n\n return (\n <>\n {leadingSlot}\n <SpanTypeLegend spans={hierarchicalSpans} />\n <div\n className={cn('grid content-start items-start gap-y-px overflow-hidden pb-1', {\n 'grid-cols-[minmax(0,1fr)]': !renderTrailing,\n 'grid-cols-[minmax(0,1fr)_auto]': !!renderTrailing,\n })}\n >\n <SpanRows\n spans={hierarchicalSpans}\n onSpanClick={onSpanClick}\n selectedSpanId={selectedSpanId}\n revealSpanId={revealSpanId}\n fadedTypes={fadedTypes}\n featuredSpanIds={featuredSpanIds}\n expandedSpanIds={expandedSpanIds}\n setExpandedSpanIds={setExpandedSpanIds}\n renderRow={ctx => <SpanTreeRow ctx={ctx} meta={durationMeta} trailing={renderTrailing} />}\n />\n </div>\n </>\n );\n}\n"],"names":[],"mappings":";;;;;;;;;AA4BO,SAAS,oBAAA,GAAuB;AACrC,EAAA,2BAAQ,qBAAA,EAAA,EAAsB,CAAA;AAChC;AAEA,MAAM,YAAA,GAAe,CAAC,GAAA,qBACpB,GAAA,CAAC,OAAI,EAAA,EAAG,MAAA,EAAO,OAAA,EAAQ,MAAA,EAAO,MAAK,MAAA,EAChC,QAAA,EAAA,qBAAA,CAAsB,GAAA,CAAI,IAAA,CAAK,OAAO,CAAA,EACzC,CAAA;AAIK,SAAS,aAAA,CAAc;AAAA,EAC5B,oBAAoB,EAAC;AAAA,EACrB,WAAA;AAAA,EACA,cAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA,eAAA;AAAA,EACA,kBAAA;AAAA,EACA,eAAA;AAAA,EACA,YAAA;AAAA,EACA,WAAA;AAAA,EACA;AACF,CAAA,EAAuB;AACrB,EAAA,IAAI,SAAA,EAAW,uBAAO,GAAA,CAAC,oBAAA,EAAA,EAAqB,CAAA;AAE5C,EAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACG,QAAA,EAAA;AAAA,IAAA,WAAA;AAAA,oBACD,GAAA,CAAC,cAAA,EAAA,EAAe,KAAA,EAAO,iBAAA,EAAmB,CAAA;AAAA,oBAC1C,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAW,GAAG,8DAAA,EAAgE;AAAA,UAC5E,6BAA6B,CAAC,cAAA;AAAA,UAC9B,gCAAA,EAAkC,CAAC,CAAC;AAAA,SACrC,CAAA;AAAA,QAED,QAAA,kBAAA,GAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACC,KAAA,EAAO,iBAAA;AAAA,YACP,WAAA;AAAA,YACA,cAAA;AAAA,YACA,YAAA;AAAA,YACA,UAAA;AAAA,YACA,eAAA;AAAA,YACA,eAAA;AAAA,YACA,kBAAA;AAAA,YACA,SAAA,EAAW,yBAAO,GAAA,CAAC,WAAA,EAAA,EAAY,KAAU,IAAA,EAAM,YAAA,EAAc,UAAU,cAAA,EAAgB;AAAA;AAAA;AACzF;AAAA;AACF,GAAA,EACF,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"trace-span-tree.es.js","sources":["../../../../src/domains/traces/components/trace-span-tree.tsx"],"sourcesContent":["import type { Dispatch, ReactNode, SetStateAction } from 'react';\nimport type { UISpan } from '../types';\nimport type { SpanRowContext } from './span-rows';\nimport { SpanRows } from './span-rows';\nimport { SpanTreeRow } from './span-tree-row';\nimport { SpanTypeLegend } from './span-type-legend';\nimport { TraceSpanTreeSkeleton } from './trace-span-tree-skeleton';\nimport { cn } from '@/lib/utils';\nimport { formatDuration } from '@/utils/duration';\n\nexport type TraceSpanTreeProps = {\n hierarchicalSpans: UISpan[];\n onSpanClick: (id: string) => void;\n selectedSpanId?: string;\n isLoading?: boolean;\n fadedTypes?: string[];\n expandedSpanIds?: string[];\n setExpandedSpanIds?: Dispatch<SetStateAction<string[]>>;\n featuredSpanIds?: string[];\n /** Row scrolled into view once it is mounted (ancestors auto-expand when the span is featured). */\n revealSpanId?: string;\n /** Rendered full-width above the span type legend row. */\n leadingSlot?: ReactNode;\n /** Optional end-of-row cell. By default rows have no trailing cell; the duration is shown under the span name. */\n renderTrailing?: (ctx: SpanRowContext) => ReactNode;\n};\n\nexport function TraceSpanTreeLoading() {\n return <TraceSpanTreeSkeleton />;\n}\n\nconst durationMeta = (ctx: SpanRowContext) => formatDuration(ctx.span.latency);\n\n/** Hierarchical span tree: expand toggle, name and duration per row, plus an optional trailing cell. */\nexport function TraceSpanTree({\n hierarchicalSpans = [],\n onSpanClick,\n selectedSpanId,\n isLoading,\n fadedTypes,\n expandedSpanIds,\n setExpandedSpanIds,\n featuredSpanIds,\n revealSpanId,\n leadingSlot,\n renderTrailing,\n}: TraceSpanTreeProps) {\n if (isLoading) return <TraceSpanTreeLoading />;\n\n return (\n <>\n {leadingSlot}\n <SpanTypeLegend spans={hierarchicalSpans} />\n <div\n className={cn('grid content-start items-start gap-y-px overflow-hidden pb-1', {\n 'grid-cols-[minmax(0,1fr)]': !renderTrailing,\n 'grid-cols-[minmax(0,1fr)_auto]': !!renderTrailing,\n })}\n >\n <SpanRows\n spans={hierarchicalSpans}\n onSpanClick={onSpanClick}\n selectedSpanId={selectedSpanId}\n revealSpanId={revealSpanId}\n fadedTypes={fadedTypes}\n featuredSpanIds={featuredSpanIds}\n expandedSpanIds={expandedSpanIds}\n setExpandedSpanIds={setExpandedSpanIds}\n renderRow={ctx => <SpanTreeRow ctx={ctx} meta={durationMeta} trailing={renderTrailing} />}\n />\n </div>\n </>\n );\n}\n"],"names":[],"mappings":";;;;;;;;AA2BO,SAAS,oBAAA,GAAuB;AACrC,EAAA,2BAAQ,qBAAA,EAAA,EAAsB,CAAA;AAChC;AAEA,MAAM,eAAe,CAAC,GAAA,KAAwB,cAAA,CAAe,GAAA,CAAI,KAAK,OAAO,CAAA;AAGtE,SAAS,aAAA,CAAc;AAAA,EAC5B,oBAAoB,EAAC;AAAA,EACrB,WAAA;AAAA,EACA,cAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA,eAAA;AAAA,EACA,kBAAA;AAAA,EACA,eAAA;AAAA,EACA,YAAA;AAAA,EACA,WAAA;AAAA,EACA;AACF,CAAA,EAAuB;AACrB,EAAA,IAAI,SAAA,EAAW,uBAAO,GAAA,CAAC,oBAAA,EAAA,EAAqB,CAAA;AAE5C,EAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACG,QAAA,EAAA;AAAA,IAAA,WAAA;AAAA,oBACD,GAAA,CAAC,cAAA,EAAA,EAAe,KAAA,EAAO,iBAAA,EAAmB,CAAA;AAAA,oBAC1C,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAW,GAAG,8DAAA,EAAgE;AAAA,UAC5E,6BAA6B,CAAC,cAAA;AAAA,UAC9B,gCAAA,EAAkC,CAAC,CAAC;AAAA,SACrC,CAAA;AAAA,QAED,QAAA,kBAAA,GAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACC,KAAA,EAAO,iBAAA;AAAA,YACP,WAAA;AAAA,YACA,cAAA;AAAA,YACA,YAAA;AAAA,YACA,UAAA;AAAA,YACA,eAAA;AAAA,YACA,eAAA;AAAA,YACA,kBAAA;AAAA,YACA,SAAA,EAAW,yBAAO,GAAA,CAAC,WAAA,EAAA,EAAY,KAAU,IAAA,EAAM,YAAA,EAAc,UAAU,cAAA,EAAgB;AAAA;AAAA;AACzF;AAAA;AACF,GAAA,EACF,CAAA;AAEJ;;;;"}
@@ -6,7 +6,7 @@ const jsxRuntime = require('react/jsx-runtime');
6
6
  const lucideReact = require('lucide-react');
7
7
  const domains_traces_utils_spanUtils = require('../utils/span-utils.cjs.js');
8
8
  const domains_traces_components_traceStatusValue = require('./trace-status-value.cjs.js');
9
- const dataPanel = require('../../../data-panel-BkfjzriB.cjs');
9
+ const dataPanel = require('../../../data-panel-DGNV14pm.cjs');
10
10
  const Txt = require('../../../Txt-CIS2G5Jx.cjs');
11
11
  const icons_AgentIcon = require('../../../icons/AgentIcon.cjs.js');
12
12
  const icons_WorkflowIcon = require('../../../icons/WorkflowIcon.cjs.js');
@@ -2,7 +2,7 @@ import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
2
2
  import { CalendarClockIcon, TimerIcon, ArrowDownToLineIcon, ArrowUpFromLineIcon, CircleDollarSignIcon } from 'lucide-react';
3
3
  import { getSpanDurationMs } from '../utils/span-utils.es.js';
4
4
  import { TraceStatusValue } from './trace-status-value.es.js';
5
- import { D as DataPanel } from '../../../data-panel-CMkR6Avv.js';
5
+ import { D as DataPanel } from '../../../data-panel-DjtnX70w.js';
6
6
  import { T as Txt } from '../../../Txt-BtIGLRk1.js';
7
7
  import { AgentIcon } from '../../../icons/AgentIcon.es.js';
8
8
  import { WorkflowIcon } from '../../../icons/WorkflowIcon.es.js';
@@ -10,7 +10,7 @@ const domains_traces_components_traceMessagesSkeleton = require('./trace-message
10
10
  const domains_chat_context_toolCallContext = require('../../chat/context/tool-call-context.cjs.js');
11
11
  const domains_chat_messages_messageRow = require('../../chat/messages/message-row.cjs.js');
12
12
  const domains_traces_components_tracesErrorContent = require('./traces-error-content.cjs.js');
13
- const Button = require('../../../Button-DH1aTzbs.cjs');
13
+ const Button = require('../../../Button-C4I05uT4.cjs');
14
14
  const Txt = require('../../../Txt-CIS2G5Jx.cjs');
15
15
  const utils_cn = require('../../../cn-DlOJCxrS.cjs');
16
16
 
@@ -6,7 +6,7 @@ import { TraceMessagesSkeleton } from './trace-messages-skeleton.es.js';
6
6
  import { ToolCallProvider } from '../../chat/context/tool-call-context.es.js';
7
7
  import { MessageRow } from '../../chat/messages/message-row.es.js';
8
8
  import { TracesErrorContent } from './traces-error-content.es.js';
9
- import { B as Button } from '../../../Button-EGoajBQY.js';
9
+ import { B as Button } from '../../../Button-D8a5EWJ5.js';
10
10
  import { T as Txt } from '../../../Txt-BtIGLRk1.js';
11
11
  import { c as cn } from '../../../cn-CQUhN5Jx.js';
12
12
 
@@ -5,7 +5,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
5
5
  const jsxRuntime = require('react/jsx-runtime');
6
6
  const React = require('react');
7
7
  const domains_traces_components_threadViewByTrace = require('./thread-view-by-trace.cjs.js');
8
- const dataPanel = require('../../../data-panel-BkfjzriB.cjs');
8
+ const dataPanel = require('../../../data-panel-DGNV14pm.cjs');
9
9
 
10
10
  function TraceThreadPanel({
11
11
  open,
@@ -1,7 +1,7 @@
1
1
  import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import { useState } from 'react';
3
3
  import { ThreadViewByTrace } from './thread-view-by-trace.es.js';
4
- import { D as DataPanel } from '../../../data-panel-CMkR6Avv.js';
4
+ import { D as DataPanel } from '../../../data-panel-DjtnX70w.js';
5
5
 
6
6
  function TraceThreadPanel({
7
7
  open,
@@ -4,8 +4,8 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
5
  const jsxRuntime = require('react/jsx-runtime');
6
6
  const domains_traces_traceQueryFilters = require('../../../trace-filters-Dz4oj8yV.cjs');
7
- const dateTimeRangePicker = require('../../../date-time-range-picker-BjQVCVUM.cjs');
8
- const filterBarChip = require('../../../filter-bar-chip-BJJ6ytJ4.cjs');
7
+ const dateTimeRangePicker = require('../../../date-time-range-picker-CXGab8Nj.cjs');
8
+ const filterBarChip = require('../../../filter-bar-chip-DgvuQv6c.cjs');
9
9
  const utils_cn = require('../../../cn-DlOJCxrS.cjs');
10
10
 
11
11
  const TRACE_TIME_RANGE_FIELD_ID = "timeRange";
@@ -1,7 +1,7 @@
1
1
  import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import { V as traceFilterFieldColor, W as traceFilterFieldIcon } from '../../../trace-filters-C91h9X86.js';
3
- import { D as DateTimeRangePicker } from '../../../date-time-range-picker-D-EECKzz.js';
4
- import { u as useFilterBarContext, F as FilterBarChip, a as FilterBarFieldLabel, f as fieldSegmentAccentStyle, s as segmentClass, e as editableSegmentClass } from '../../../filter-bar-chip-BarAq1S2.js';
3
+ import { D as DateTimeRangePicker } from '../../../date-time-range-picker-CcnDMZJu.js';
4
+ import { u as useFilterBarContext, F as FilterBarChip, a as FilterBarFieldLabel, f as fieldSegmentAccentStyle, s as segmentClass, e as editableSegmentClass } from '../../../filter-bar-chip-C9CXOudu.js';
5
5
  import { c as cn } from '../../../cn-CQUhN5Jx.js';
6
6
 
7
7
  const TRACE_TIME_RANGE_FIELD_ID = "timeRange";
@@ -4,7 +4,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
5
  const jsxRuntime = require('react/jsx-runtime');
6
6
  const lucideReact = require('lucide-react');
7
- const Button = require('../../../Button-DH1aTzbs.cjs');
7
+ const Button = require('../../../Button-C4I05uT4.cjs');
8
8
  const dropdownMenu = require('../../../dropdown-menu-CsynT1aD.cjs');
9
9
 
10
10
  const TRACES_LIST_MODE_LABELS = {
@@ -1,6 +1,6 @@
1
1
  import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import { ChevronDownIcon } from 'lucide-react';
3
- import { B as Button } from '../../../Button-EGoajBQY.js';
3
+ import { B as Button } from '../../../Button-D8a5EWJ5.js';
4
4
  import { D as DropdownMenu } from '../../../dropdown-menu-CQ_48tVI.js';
5
5
 
6
6
  const TRACES_LIST_MODE_LABELS = {
@@ -8,11 +8,11 @@ const lucideReact = require('lucide-react');
8
8
  const React = require('react');
9
9
  const domains_traces_traceListColumns = require('../trace-list-columns.cjs.js');
10
10
  const domains_traces_utils_spanUtils = require('../utils/span-utils.cjs.js');
11
- const dataList = require('../../../data-list-CmjTe8xE.cjs');
12
- const dataListSkeleton = require('../../../data-list-skeleton-sdcaabdX.cjs');
13
- const tracesDataList = require('../../../traces-data-list-Bhhg9drs.cjs');
11
+ const domains_traces_components_traceErrorCell = require('./trace-error-cell.cjs.js');
12
+ const dataList = require('../../../data-list-DlXU1PLQ.cjs');
13
+ const dataListSkeleton = require('../../../data-list-skeleton-DY0F40WQ.cjs');
14
+ const tracesDataList = require('../../../traces-data-list-Co9k5J4f.cjs');
14
15
  const useDataListKeyboard = require('../../../use-data-list-keyboard-DF3tLe10.cjs');
15
- const dataListTop = require('../../../data-list-top-DJh08vFA.cjs');
16
16
  const dropdownMenu = require('../../../dropdown-menu-CsynT1aD.cjs');
17
17
  const Txt = require('../../../Txt-CIS2G5Jx.cjs');
18
18
  const primitives_transitions = require('../../../primitives/transitions.cjs.js');
@@ -39,6 +39,9 @@ function sumTokens(usage) {
39
39
  if (usage?.inputTokens === void 0 && usage?.outputTokens === void 0) return void 0;
40
40
  return (usage?.inputTokens ?? 0) + (usage?.outputTokens ?? 0);
41
41
  }
42
+ function isFailedTrace(trace) {
43
+ return trace.status === "error" && !!trace.errorPreview && !!trace.spanId;
44
+ }
42
45
  function TracesListView({
43
46
  traces,
44
47
  isLoading,
@@ -133,7 +136,7 @@ function TracesListView({
133
136
  }),
134
137
  columnPreferences.metadataKeys.map((key) => /* @__PURE__ */ jsxRuntime.jsx(tracesDataList.TracesDataList.TopCellWithTooltip, { tooltip: key, children: key }, key))
135
138
  ] }),
136
- isLoading ? /* @__PURE__ */ jsxRuntime.jsx(dataListSkeleton.DataListSkeletonRows, { columnCount: dataListTop.splitColumns(columns).length }) : traces.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx(
139
+ isLoading ? /* @__PURE__ */ jsxRuntime.jsx(dataListSkeleton.DataListSkeletonRows, { columnCount: dataList.splitColumns(columns).length }) : traces.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx(
137
140
  tracesDataList.TracesDataList.NoMatch,
138
141
  {
139
142
  message: filtersApplied ? "No traces found for applied filters" : "No traces found yet"
@@ -169,14 +172,14 @@ function TracesListView({
169
172
  }
170
173
  ),
171
174
  domains_traces_traceListColumns.hasTraceColumn(columnPreferences, "input") && /* @__PURE__ */ jsxRuntime.jsx(tracesDataList.TracesDataList.InputCell, { input: trace.inputPreview ?? domains_traces_utils_spanUtils.getInputPreview(trace.input) }),
172
- domains_traces_traceListColumns.hasTraceColumn(columnPreferences, "output") && /* @__PURE__ */ jsxRuntime.jsx(
175
+ domains_traces_traceListColumns.hasTraceColumn(columnPreferences, "output") && (isFailedTrace(trace) ? /* @__PURE__ */ jsxRuntime.jsx(domains_traces_components_traceErrorCell.TraceErrorCell, { traceId: trace.traceId, spanId: trace.spanId, errorPreview: trace.errorPreview }) : /* @__PURE__ */ jsxRuntime.jsx(
173
176
  tracesDataList.TracesDataList.OutputCell,
174
177
  {
175
178
  output: trace.outputPreview,
176
179
  error: trace.errorPreview,
177
180
  status: trace.status
178
181
  }
179
- ),
182
+ )),
180
183
  /* @__PURE__ */ jsxRuntime.jsx(tracesDataList.TracesDataList.StatusCell, { status: trace.status }),
181
184
  domains_traces_traceListColumns.hasTraceColumn(columnPreferences, "duration") && /* @__PURE__ */ jsxRuntime.jsx(dataList.DataList.NumberCell, { font: "mono", children: utils_duration.formatDuration(domains_traces_utils_spanUtils.getSpanDurationMs(trace.startedAt, trace.endedAt)) }),
182
185
  domains_traces_traceListColumns.hasTraceColumn(columnPreferences, "endTime") && /* @__PURE__ */ jsxRuntime.jsx(tracesDataList.TracesDataList.CreatedCell, { timestamp: trace.endedAt ?? "", preset: "day-time-seconds" }),
@@ -1 +1 @@
1
- {"version":3,"file":"traces-list-view.cjs.js","sources":["../../../../src/domains/traces/components/traces-list-view.tsx"],"sourcesContent":["import { useVirtualizer } from '@tanstack/react-virtual';\nimport { ListFilterIcon } from 'lucide-react';\nimport { useRef } from 'react';\nimport {\n DEFAULT_TRACE_COLUMN_PREFERENCES,\n TRACE_CUSTOM_COLUMN_LABELS,\n buildTraceListColumnKeys,\n buildTraceListColumns,\n formatTraceMetadataValue,\n hasTraceColumn,\n} from '../trace-list-columns';\nimport type { TraceColumnPreferences, TraceCustomColumn, TraceUsageSummary } from '../trace-list-columns';\nimport { getInputPreview, getSpanDurationMs } from '../utils/span-utils';\nimport { DataList, DataListSkeletonRows, TracesDataList, useDataListKeyboard } from '@/ds/components/DataList';\nimport type { DataListSort } from '@/ds/components/DataList';\nimport { splitColumns } from '@/ds/components/DataList/shared';\nimport { DropdownMenu } from '@/ds/components/DropdownMenu';\nimport { Txt } from '@/ds/components/Txt/Txt';\nimport { focusRing } from '@/ds/primitives/transitions';\nimport { formatCompactNumber, formatCost } from '@/lib/cost';\nimport { cn } from '@/lib/utils';\nimport { formatDuration } from '@/utils/duration';\n\nexport type TracesListViewTrace = {\n traceId: string;\n /** Required for branch rows; absent on plain trace rows (which are root-rooted). */\n spanId?: string | null;\n /** `null`/missing → root span. Drives the Kind column's icon (top-level trace vs nested branch). */\n parentSpanId?: string | null;\n name: string;\n entityType?: string | null;\n entityId?: string | null;\n entityName?: string | null;\n threadId?: string | null;\n resourceId?: string | null;\n environment?: string | null;\n status?: string | null;\n /** Server-rendered preview of `input`. Present on lightweight rows, which omit `input` itself. */\n inputPreview?: string | null;\n input?: unknown;\n /** Server-rendered preview of the root span's output. */\n outputPreview?: string;\n /** Server-rendered preview of the root span's error. Shown in place of the output when `status` is `'error'`. */\n errorPreview?: string;\n metadata?: Record<string, unknown> | null;\n startedAt?: Date | string | null;\n endedAt?: Date | string | null;\n createdAt: Date | string;\n};\n\nconst ROW_HEIGHT = 36;\nconst OVERSCAN = 8;\n/** Distinct values offered in a custom column's \"filter by value\" header menu. */\nconst MAX_FILTER_VALUES = 20;\n\nfunction customColumnValue(trace: TracesListViewTrace, field: TraceCustomColumn): string | null | undefined {\n return trace[field];\n}\n\nfunction distinctCustomColumnValues(traces: TracesListViewTrace[], field: TraceCustomColumn): string[] {\n const values = new Set<string>();\n for (const trace of traces) {\n const value = trace[field];\n if (typeof value === 'string' && value) values.add(value);\n if (values.size >= MAX_FILTER_VALUES) break;\n }\n return [...values];\n}\n\nfunction sumTokens(usage: TraceUsageSummary | undefined): number | undefined {\n if (usage?.inputTokens === undefined && usage?.outputTokens === undefined) return undefined;\n return (usage?.inputTokens ?? 0) + (usage?.outputTokens ?? 0);\n}\n\nexport type TracesListViewProps = {\n traces: TracesListViewTrace[];\n isLoading?: boolean;\n isFetchingNextPage?: boolean;\n hasNextPage?: boolean;\n setEndOfListElement?: (element: HTMLDivElement | null) => void;\n filtersApplied?: boolean;\n /** Currently featured/selected trace — its row gets the highlighted background. */\n featuredTraceId?: string | null;\n /**\n * Required in branches mode to disambiguate rows sharing a `traceId`. When set,\n * a row is featured only when both `traceId` and `spanId` match.\n */\n featuredSpanId?: string | null;\n /** Branches mode mixes root traces with subtraces — enables the Trace/Subtrace tooltip on the\n * level icon in the Name column, which is meaningless when every row is a root. */\n isBranchesMode?: boolean;\n /** Keys (`traceId:spanId`) of rows that just arrived via delta polling. Rows whose key is in\n * this set get a temporary tint to distinguish them from rows present since the last page-mode\n * fetch. Auto-expires upstream (in useTraces) after a short window. */\n recentlyAddedKeys?: Set<string>;\n /** Optional and metadata columns selected for this project. */\n columnPreferences?: TraceColumnPreferences;\n /** Token and estimated-cost totals, aggregated across model spans by trace ID. */\n usageByTraceId?: ReadonlyMap<string, TraceUsageSummary>;\n /** Called when a row is clicked. The current selection logic (toggle on same id) is the consumer's call. */\n onTraceClick: (trace: TracesListViewTrace) => void;\n /** Current sort of the Created column. When `onSortChange` is provided the header becomes sortable. */\n createdSort?: DataListSort;\n onSortChange?: (direction: DataListSort, key: 'startedAt') => void;\n /** When provided, custom column headers offer an `is <value>` filter for every value currently listed. */\n onFilterByField?: (field: TraceCustomColumn, value: string) => void;\n /** Storage id for the persisted column order. Use a distinct id per page so each keeps its own order. */\n listId?: string;\n};\n\n/**\n * Virtualized presentational list. Renders only the visible window via TanStack Virtual, and\n * uses DataList primitives for layout (CSS Grid with subgrid rows).\n */\nexport function TracesListView({\n traces,\n isLoading,\n isFetchingNextPage,\n hasNextPage,\n setEndOfListElement,\n filtersApplied,\n featuredTraceId,\n featuredSpanId,\n isBranchesMode,\n recentlyAddedKeys,\n columnPreferences = DEFAULT_TRACE_COLUMN_PREFERENCES,\n usageByTraceId,\n onTraceClick,\n createdSort,\n onSortChange,\n onFilterByField,\n listId = 'all-traces',\n}: TracesListViewProps) {\n const scrollRef = useRef<HTMLDivElement | null>(null);\n const columns = buildTraceListColumns(columnPreferences);\n const columnKeys = buildTraceListColumnKeys(columnPreferences);\n\n const virtualizer = useVirtualizer({\n count: traces.length,\n getScrollElement: () => scrollRef.current,\n estimateSize: () => ROW_HEIGHT,\n overscan: OVERSCAN,\n });\n\n const { getRowProps } = useDataListKeyboard({\n count: traces.length,\n containerRef: scrollRef,\n onNavigate: index => virtualizer.scrollToIndex(index),\n global: true,\n });\n\n const virtualItems = virtualizer.getVirtualItems();\n const totalSize = virtualizer.getTotalSize();\n const paddingTop = virtualItems[0]?.start ?? 0;\n const paddingBottom =\n virtualItems.length > 0 ? Math.max(0, totalSize - (virtualItems[virtualItems.length - 1]?.end ?? 0)) : 0;\n\n return (\n <TracesDataList\n reorderable\n id={listId}\n columns={columns}\n columnKeys={columnKeys}\n fit=\"container\"\n scrollRef={scrollRef}\n className=\"min-w-0\"\n >\n <TracesDataList.Top>\n {onSortChange ? (\n <TracesDataList.SortableTopCell sortKey=\"startedAt\" sort={createdSort} onSortChange={onSortChange}>\n Start\n </TracesDataList.SortableTopCell>\n ) : (\n <TracesDataList.TopCell>Start</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'type') && <TracesDataList.TopCell>Primitive type</TracesDataList.TopCell>}\n <TracesDataList.TopCell>Primitive name</TracesDataList.TopCell>\n {hasTraceColumn(columnPreferences, 'input') && <TracesDataList.TopCell>Input</TracesDataList.TopCell>}\n {hasTraceColumn(columnPreferences, 'output') && <TracesDataList.TopCell>Output</TracesDataList.TopCell>}\n <TracesDataList.TopCell>Status</TracesDataList.TopCell>\n {hasTraceColumn(columnPreferences, 'duration') && (\n <TracesDataList.TopCell className=\"justify-end text-right\">Duration</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'endTime') && <TracesDataList.TopCell>End</TracesDataList.TopCell>}\n {hasTraceColumn(columnPreferences, 'environment') && (\n <TracesDataList.TopCell>Environment</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'inputTokens') && (\n <TracesDataList.TopCell className=\"justify-end text-right\">Input tokens</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'outputTokens') && (\n <TracesDataList.TopCell className=\"justify-end text-right\">Output tokens</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'totalTokens') && (\n <TracesDataList.TopCell className=\"justify-end text-right\">Total tokens</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'estimatedCost') && (\n <TracesDataList.TopCell className=\"justify-end text-right\">Est. cost</TracesDataList.TopCell>\n )}\n {columnPreferences.customColumns.map(field => {\n const label = TRACE_CUSTOM_COLUMN_LABELS[field];\n const filterValues = onFilterByField ? distinctCustomColumnValues(traces, field) : [];\n if (!onFilterByField || filterValues.length === 0) {\n return <TracesDataList.TopCell key={field}>{label}</TracesDataList.TopCell>;\n }\n return (\n <TracesDataList.TopCell key={field} className=\"overflow-visible\">\n <DropdownMenu>\n <DropdownMenu.Trigger\n render={\n <button\n type=\"button\"\n className={cn('flex min-w-0 items-center gap-1 rounded-sm hover:text-foreground', focusRing)}\n >\n <span className=\"min-w-0 truncate\">{label}</span>\n <ListFilterIcon aria-hidden className=\"size-[1.2em] shrink-0\" />\n </button>\n }\n />\n <DropdownMenu.Content align=\"start\">\n <DropdownMenu.Label>Filter by value</DropdownMenu.Label>\n {filterValues.map(value => (\n <DropdownMenu.Item key={value} onSelect={() => onFilterByField(field, value)}>\n <Txt as=\"span\" variant=\"body-sm\" font=\"mono\" className=\"min-w-0 truncate\">\n {value}\n </Txt>\n </DropdownMenu.Item>\n ))}\n </DropdownMenu.Content>\n </DropdownMenu>\n </TracesDataList.TopCell>\n );\n })}\n {columnPreferences.metadataKeys.map(key => (\n <TracesDataList.TopCellWithTooltip key={key} tooltip={key}>\n {key}\n </TracesDataList.TopCellWithTooltip>\n ))}\n </TracesDataList.Top>\n\n {isLoading ? (\n <DataListSkeletonRows columnCount={splitColumns(columns).length} />\n ) : traces.length === 0 ? (\n <TracesDataList.NoMatch\n message={filtersApplied ? 'No traces found for applied filters' : 'No traces found yet'}\n />\n ) : (\n <>\n <TracesDataList.Spacer height={paddingTop} />\n {virtualItems.map(vi => {\n const trace = traces[vi.index];\n if (!trace) return null;\n\n const isFeatured =\n trace.traceId === featuredTraceId && (featuredSpanId == null || trace.spanId === featuredSpanId);\n const rowKey = `${trace.traceId}:${trace.spanId ?? ''}`;\n const isRecentlyAdded = recentlyAddedKeys?.has(rowKey) ?? false;\n const displayDate = trace.startedAt ?? trace.createdAt;\n const usage = usageByTraceId?.get(trace.traceId);\n\n return (\n <TracesDataList.RowButton\n key={rowKey}\n ref={virtualizer.measureElement}\n data-index={vi.index}\n {...getRowProps(vi.index)}\n onClick={() => onTraceClick(trace)}\n featured={isFeatured}\n className={cn(isRecentlyAdded && 'animate-row-highlight')}\n >\n <TracesDataList.CreatedCell timestamp={displayDate} preset=\"day-time-seconds\" />\n {hasTraceColumn(columnPreferences, 'type') && <TracesDataList.TypeCell entityType={trace.entityType} />}\n <TracesDataList.NameCell\n name={trace.entityName || trace.name}\n parentSpanId={trace.parentSpanId}\n showLevelTooltip={isBranchesMode}\n />\n {hasTraceColumn(columnPreferences, 'input') && (\n <TracesDataList.InputCell input={trace.inputPreview ?? getInputPreview(trace.input)} />\n )}\n {hasTraceColumn(columnPreferences, 'output') && (\n <TracesDataList.OutputCell\n output={trace.outputPreview}\n error={trace.errorPreview}\n status={trace.status}\n />\n )}\n <TracesDataList.StatusCell status={trace.status} />\n {hasTraceColumn(columnPreferences, 'duration') && (\n <DataList.NumberCell font=\"mono\">\n {formatDuration(getSpanDurationMs(trace.startedAt, trace.endedAt))}\n </DataList.NumberCell>\n )}\n {hasTraceColumn(columnPreferences, 'endTime') && (\n <TracesDataList.CreatedCell timestamp={trace.endedAt ?? ''} preset=\"day-time-seconds\" />\n )}\n {hasTraceColumn(columnPreferences, 'environment') && (\n <DataList.TextCell>{trace.environment || '—'}</DataList.TextCell>\n )}\n {hasTraceColumn(columnPreferences, 'inputTokens') && (\n <DataList.NumberCell>\n {usage?.inputTokens === undefined ? undefined : formatCompactNumber(usage.inputTokens)}\n </DataList.NumberCell>\n )}\n {hasTraceColumn(columnPreferences, 'outputTokens') && (\n <DataList.NumberCell>\n {usage?.outputTokens === undefined ? undefined : formatCompactNumber(usage.outputTokens)}\n </DataList.NumberCell>\n )}\n {hasTraceColumn(columnPreferences, 'totalTokens') && (\n <DataList.NumberCell>\n {(() => {\n const total = sumTokens(usage);\n return total === undefined ? undefined : formatCompactNumber(total);\n })()}\n </DataList.NumberCell>\n )}\n {hasTraceColumn(columnPreferences, 'estimatedCost') && (\n <DataList.NumberCell>\n {usage?.estimatedCost === undefined ? undefined : formatCost(usage.estimatedCost, usage.costUnit)}\n </DataList.NumberCell>\n )}\n {columnPreferences.customColumns.map(field => (\n <DataList.TextCell font=\"mono\" key={field}>\n {customColumnValue(trace, field) ?? undefined}\n </DataList.TextCell>\n ))}\n {columnPreferences.metadataKeys.map(key => {\n const value = formatTraceMetadataValue(trace.metadata, key);\n return (\n <DataList.TextCell font=\"mono\" key={key}>\n {value}\n </DataList.TextCell>\n );\n })}\n </TracesDataList.RowButton>\n );\n })}\n <TracesDataList.Spacer height={paddingBottom} />\n <TracesDataList.NextPageLoading\n isLoading={isFetchingNextPage}\n hasMore={hasNextPage}\n setEndOfListElement={setEndOfListElement}\n />\n </>\n )}\n </TracesDataList>\n );\n}\n"],"names":["DEFAULT_TRACE_COLUMN_PREFERENCES","useRef","buildTraceListColumns","buildTraceListColumnKeys","useVirtualizer","useDataListKeyboard","jsxs","TracesDataList","jsx","hasTraceColumn","TRACE_CUSTOM_COLUMN_LABELS","DropdownMenu","cn","focusRing","ListFilterIcon","Txt","DataListSkeletonRows","splitColumns","Fragment","getInputPreview","DataList","getSpanDurationMs","formatCompactNumber","formatCost","formatTraceMetadataValue"],"mappings":"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"}
1
+ {"version":3,"file":"traces-list-view.cjs.js","sources":["../../../../src/domains/traces/components/traces-list-view.tsx"],"sourcesContent":["import { useVirtualizer } from '@tanstack/react-virtual';\nimport { ListFilterIcon } from 'lucide-react';\nimport { useRef } from 'react';\nimport {\n DEFAULT_TRACE_COLUMN_PREFERENCES,\n TRACE_CUSTOM_COLUMN_LABELS,\n buildTraceListColumnKeys,\n buildTraceListColumns,\n formatTraceMetadataValue,\n hasTraceColumn,\n} from '../trace-list-columns';\nimport type { TraceColumnPreferences, TraceCustomColumn, TraceUsageSummary } from '../trace-list-columns';\nimport { getInputPreview, getSpanDurationMs } from '../utils/span-utils';\nimport { TraceErrorCell } from './trace-error-cell';\nimport { DataList, DataListSkeletonRows, TracesDataList, useDataListKeyboard } from '@/ds/components/DataList';\nimport type { DataListSort } from '@/ds/components/DataList';\nimport { splitColumns } from '@/ds/components/DataList/shared';\nimport { DropdownMenu } from '@/ds/components/DropdownMenu';\nimport { Txt } from '@/ds/components/Txt/Txt';\nimport { focusRing } from '@/ds/primitives/transitions';\nimport { formatCompactNumber, formatCost } from '@/lib/cost';\nimport { cn } from '@/lib/utils';\nimport { formatDuration } from '@/utils/duration';\n\nexport type TracesListViewTrace = {\n traceId: string;\n /** Required for branch rows; absent on plain trace rows (which are root-rooted). */\n spanId?: string | null;\n /** `null`/missing → root span. Drives the Kind column's icon (top-level trace vs nested branch). */\n parentSpanId?: string | null;\n name: string;\n entityType?: string | null;\n entityId?: string | null;\n entityName?: string | null;\n threadId?: string | null;\n resourceId?: string | null;\n environment?: string | null;\n status?: string | null;\n /** Server-rendered preview of `input`. Present on lightweight rows, which omit `input` itself. */\n inputPreview?: string | null;\n input?: unknown;\n /** Server-rendered preview of the root span's output. */\n outputPreview?: string;\n /** Server-rendered preview of the root span's error. Shown in place of the output when `status` is `'error'`. */\n errorPreview?: string;\n metadata?: Record<string, unknown> | null;\n startedAt?: Date | string | null;\n endedAt?: Date | string | null;\n createdAt: Date | string;\n};\n\nconst ROW_HEIGHT = 36;\nconst OVERSCAN = 8;\n/** Distinct values offered in a custom column's \"filter by value\" header menu. */\nconst MAX_FILTER_VALUES = 20;\n\nfunction customColumnValue(trace: TracesListViewTrace, field: TraceCustomColumn): string | null | undefined {\n return trace[field];\n}\n\nfunction distinctCustomColumnValues(traces: TracesListViewTrace[], field: TraceCustomColumn): string[] {\n const values = new Set<string>();\n for (const trace of traces) {\n const value = trace[field];\n if (typeof value === 'string' && value) values.add(value);\n if (values.size >= MAX_FILTER_VALUES) break;\n }\n return [...values];\n}\n\nfunction sumTokens(usage: TraceUsageSummary | undefined): number | undefined {\n if (usage?.inputTokens === undefined && usage?.outputTokens === undefined) return undefined;\n return (usage?.inputTokens ?? 0) + (usage?.outputTokens ?? 0);\n}\n\ntype FailedTrace = TracesListViewTrace & { spanId: string; errorPreview: string };\n\n/** A failed row whose error preview can open the full error from its span. */\nfunction isFailedTrace(trace: TracesListViewTrace): trace is FailedTrace {\n return trace.status === 'error' && !!trace.errorPreview && !!trace.spanId;\n}\n\nexport type TracesListViewProps = {\n traces: TracesListViewTrace[];\n isLoading?: boolean;\n isFetchingNextPage?: boolean;\n hasNextPage?: boolean;\n setEndOfListElement?: (element: HTMLDivElement | null) => void;\n filtersApplied?: boolean;\n /** Currently featured/selected trace — its row gets the highlighted background. */\n featuredTraceId?: string | null;\n /**\n * Required in branches mode to disambiguate rows sharing a `traceId`. When set,\n * a row is featured only when both `traceId` and `spanId` match.\n */\n featuredSpanId?: string | null;\n /** Branches mode mixes root traces with subtraces — enables the Trace/Subtrace tooltip on the\n * level icon in the Name column, which is meaningless when every row is a root. */\n isBranchesMode?: boolean;\n /** Keys (`traceId:spanId`) of rows that just arrived via delta polling. Rows whose key is in\n * this set get a temporary tint to distinguish them from rows present since the last page-mode\n * fetch. Auto-expires upstream (in useTraces) after a short window. */\n recentlyAddedKeys?: Set<string>;\n /** Optional and metadata columns selected for this project. */\n columnPreferences?: TraceColumnPreferences;\n /** Token and estimated-cost totals, aggregated across model spans by trace ID. */\n usageByTraceId?: ReadonlyMap<string, TraceUsageSummary>;\n /** Called when a row is clicked. The current selection logic (toggle on same id) is the consumer's call. */\n onTraceClick: (trace: TracesListViewTrace) => void;\n /** Current sort of the Created column. When `onSortChange` is provided the header becomes sortable. */\n createdSort?: DataListSort;\n onSortChange?: (direction: DataListSort, key: 'startedAt') => void;\n /** When provided, custom column headers offer an `is <value>` filter for every value currently listed. */\n onFilterByField?: (field: TraceCustomColumn, value: string) => void;\n /** Storage id for the persisted column order. Use a distinct id per page so each keeps its own order. */\n listId?: string;\n};\n\n/**\n * Virtualized presentational list. Renders only the visible window via TanStack Virtual, and\n * uses DataList primitives for layout (CSS Grid with subgrid rows).\n */\nexport function TracesListView({\n traces,\n isLoading,\n isFetchingNextPage,\n hasNextPage,\n setEndOfListElement,\n filtersApplied,\n featuredTraceId,\n featuredSpanId,\n isBranchesMode,\n recentlyAddedKeys,\n columnPreferences = DEFAULT_TRACE_COLUMN_PREFERENCES,\n usageByTraceId,\n onTraceClick,\n createdSort,\n onSortChange,\n onFilterByField,\n listId = 'all-traces',\n}: TracesListViewProps) {\n const scrollRef = useRef<HTMLDivElement | null>(null);\n const columns = buildTraceListColumns(columnPreferences);\n const columnKeys = buildTraceListColumnKeys(columnPreferences);\n\n const virtualizer = useVirtualizer({\n count: traces.length,\n getScrollElement: () => scrollRef.current,\n estimateSize: () => ROW_HEIGHT,\n overscan: OVERSCAN,\n });\n\n const { getRowProps } = useDataListKeyboard({\n count: traces.length,\n containerRef: scrollRef,\n onNavigate: index => virtualizer.scrollToIndex(index),\n global: true,\n });\n\n const virtualItems = virtualizer.getVirtualItems();\n const totalSize = virtualizer.getTotalSize();\n const paddingTop = virtualItems[0]?.start ?? 0;\n const paddingBottom =\n virtualItems.length > 0 ? Math.max(0, totalSize - (virtualItems[virtualItems.length - 1]?.end ?? 0)) : 0;\n\n return (\n <TracesDataList\n reorderable\n id={listId}\n columns={columns}\n columnKeys={columnKeys}\n fit=\"container\"\n scrollRef={scrollRef}\n className=\"min-w-0\"\n >\n <TracesDataList.Top>\n {onSortChange ? (\n <TracesDataList.SortableTopCell sortKey=\"startedAt\" sort={createdSort} onSortChange={onSortChange}>\n Start\n </TracesDataList.SortableTopCell>\n ) : (\n <TracesDataList.TopCell>Start</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'type') && <TracesDataList.TopCell>Primitive type</TracesDataList.TopCell>}\n <TracesDataList.TopCell>Primitive name</TracesDataList.TopCell>\n {hasTraceColumn(columnPreferences, 'input') && <TracesDataList.TopCell>Input</TracesDataList.TopCell>}\n {hasTraceColumn(columnPreferences, 'output') && <TracesDataList.TopCell>Output</TracesDataList.TopCell>}\n <TracesDataList.TopCell>Status</TracesDataList.TopCell>\n {hasTraceColumn(columnPreferences, 'duration') && (\n <TracesDataList.TopCell className=\"justify-end text-right\">Duration</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'endTime') && <TracesDataList.TopCell>End</TracesDataList.TopCell>}\n {hasTraceColumn(columnPreferences, 'environment') && (\n <TracesDataList.TopCell>Environment</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'inputTokens') && (\n <TracesDataList.TopCell className=\"justify-end text-right\">Input tokens</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'outputTokens') && (\n <TracesDataList.TopCell className=\"justify-end text-right\">Output tokens</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'totalTokens') && (\n <TracesDataList.TopCell className=\"justify-end text-right\">Total tokens</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'estimatedCost') && (\n <TracesDataList.TopCell className=\"justify-end text-right\">Est. cost</TracesDataList.TopCell>\n )}\n {columnPreferences.customColumns.map(field => {\n const label = TRACE_CUSTOM_COLUMN_LABELS[field];\n const filterValues = onFilterByField ? distinctCustomColumnValues(traces, field) : [];\n if (!onFilterByField || filterValues.length === 0) {\n return <TracesDataList.TopCell key={field}>{label}</TracesDataList.TopCell>;\n }\n return (\n <TracesDataList.TopCell key={field} className=\"overflow-visible\">\n <DropdownMenu>\n <DropdownMenu.Trigger\n render={\n <button\n type=\"button\"\n className={cn('flex min-w-0 items-center gap-1 rounded-sm hover:text-foreground', focusRing)}\n >\n <span className=\"min-w-0 truncate\">{label}</span>\n <ListFilterIcon aria-hidden className=\"size-[1.2em] shrink-0\" />\n </button>\n }\n />\n <DropdownMenu.Content align=\"start\">\n <DropdownMenu.Label>Filter by value</DropdownMenu.Label>\n {filterValues.map(value => (\n <DropdownMenu.Item key={value} onSelect={() => onFilterByField(field, value)}>\n <Txt as=\"span\" variant=\"body-sm\" font=\"mono\" className=\"min-w-0 truncate\">\n {value}\n </Txt>\n </DropdownMenu.Item>\n ))}\n </DropdownMenu.Content>\n </DropdownMenu>\n </TracesDataList.TopCell>\n );\n })}\n {columnPreferences.metadataKeys.map(key => (\n <TracesDataList.TopCellWithTooltip key={key} tooltip={key}>\n {key}\n </TracesDataList.TopCellWithTooltip>\n ))}\n </TracesDataList.Top>\n\n {isLoading ? (\n <DataListSkeletonRows columnCount={splitColumns(columns).length} />\n ) : traces.length === 0 ? (\n <TracesDataList.NoMatch\n message={filtersApplied ? 'No traces found for applied filters' : 'No traces found yet'}\n />\n ) : (\n <>\n <TracesDataList.Spacer height={paddingTop} />\n {virtualItems.map(vi => {\n const trace = traces[vi.index];\n if (!trace) return null;\n\n const isFeatured =\n trace.traceId === featuredTraceId && (featuredSpanId == null || trace.spanId === featuredSpanId);\n const rowKey = `${trace.traceId}:${trace.spanId ?? ''}`;\n const isRecentlyAdded = recentlyAddedKeys?.has(rowKey) ?? false;\n const displayDate = trace.startedAt ?? trace.createdAt;\n const usage = usageByTraceId?.get(trace.traceId);\n\n return (\n <TracesDataList.RowButton\n key={rowKey}\n ref={virtualizer.measureElement}\n data-index={vi.index}\n {...getRowProps(vi.index)}\n onClick={() => onTraceClick(trace)}\n featured={isFeatured}\n className={cn(isRecentlyAdded && 'animate-row-highlight')}\n >\n <TracesDataList.CreatedCell timestamp={displayDate} preset=\"day-time-seconds\" />\n {hasTraceColumn(columnPreferences, 'type') && <TracesDataList.TypeCell entityType={trace.entityType} />}\n <TracesDataList.NameCell\n name={trace.entityName || trace.name}\n parentSpanId={trace.parentSpanId}\n showLevelTooltip={isBranchesMode}\n />\n {hasTraceColumn(columnPreferences, 'input') && (\n <TracesDataList.InputCell input={trace.inputPreview ?? getInputPreview(trace.input)} />\n )}\n {hasTraceColumn(columnPreferences, 'output') &&\n (isFailedTrace(trace) ? (\n <TraceErrorCell traceId={trace.traceId} spanId={trace.spanId} errorPreview={trace.errorPreview} />\n ) : (\n <TracesDataList.OutputCell\n output={trace.outputPreview}\n error={trace.errorPreview}\n status={trace.status}\n />\n ))}\n <TracesDataList.StatusCell status={trace.status} />\n {hasTraceColumn(columnPreferences, 'duration') && (\n <DataList.NumberCell font=\"mono\">\n {formatDuration(getSpanDurationMs(trace.startedAt, trace.endedAt))}\n </DataList.NumberCell>\n )}\n {hasTraceColumn(columnPreferences, 'endTime') && (\n <TracesDataList.CreatedCell timestamp={trace.endedAt ?? ''} preset=\"day-time-seconds\" />\n )}\n {hasTraceColumn(columnPreferences, 'environment') && (\n <DataList.TextCell>{trace.environment || '—'}</DataList.TextCell>\n )}\n {hasTraceColumn(columnPreferences, 'inputTokens') && (\n <DataList.NumberCell>\n {usage?.inputTokens === undefined ? undefined : formatCompactNumber(usage.inputTokens)}\n </DataList.NumberCell>\n )}\n {hasTraceColumn(columnPreferences, 'outputTokens') && (\n <DataList.NumberCell>\n {usage?.outputTokens === undefined ? undefined : formatCompactNumber(usage.outputTokens)}\n </DataList.NumberCell>\n )}\n {hasTraceColumn(columnPreferences, 'totalTokens') && (\n <DataList.NumberCell>\n {(() => {\n const total = sumTokens(usage);\n return total === undefined ? undefined : formatCompactNumber(total);\n })()}\n </DataList.NumberCell>\n )}\n {hasTraceColumn(columnPreferences, 'estimatedCost') && (\n <DataList.NumberCell>\n {usage?.estimatedCost === undefined ? undefined : formatCost(usage.estimatedCost, usage.costUnit)}\n </DataList.NumberCell>\n )}\n {columnPreferences.customColumns.map(field => (\n <DataList.TextCell font=\"mono\" key={field}>\n {customColumnValue(trace, field) ?? undefined}\n </DataList.TextCell>\n ))}\n {columnPreferences.metadataKeys.map(key => {\n const value = formatTraceMetadataValue(trace.metadata, key);\n return (\n <DataList.TextCell font=\"mono\" key={key}>\n {value}\n </DataList.TextCell>\n );\n })}\n </TracesDataList.RowButton>\n );\n })}\n <TracesDataList.Spacer height={paddingBottom} />\n <TracesDataList.NextPageLoading\n isLoading={isFetchingNextPage}\n hasMore={hasNextPage}\n setEndOfListElement={setEndOfListElement}\n />\n </>\n )}\n </TracesDataList>\n );\n}\n"],"names":["DEFAULT_TRACE_COLUMN_PREFERENCES","useRef","buildTraceListColumns","buildTraceListColumnKeys","useVirtualizer","useDataListKeyboard","jsxs","TracesDataList","jsx","hasTraceColumn","TRACE_CUSTOM_COLUMN_LABELS","DropdownMenu","cn","focusRing","ListFilterIcon","Txt","DataListSkeletonRows","splitColumns","Fragment","getInputPreview","TraceErrorCell","DataList","getSpanDurationMs","formatCompactNumber","formatCost","formatTraceMetadataValue"],"mappings":"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"}
@@ -4,11 +4,11 @@ import { ListFilterIcon } from 'lucide-react';
4
4
  import { useRef } from 'react';
5
5
  import { buildTraceListColumns, buildTraceListColumnKeys, hasTraceColumn, DEFAULT_TRACE_COLUMN_PREFERENCES, TRACE_CUSTOM_COLUMN_LABELS, formatTraceMetadataValue } from '../trace-list-columns.es.js';
6
6
  import { getInputPreview, getSpanDurationMs } from '../utils/span-utils.es.js';
7
- import { D as DataList } from '../../../data-list-DT1LVR29.js';
8
- import { a as DataListSkeletonRows } from '../../../data-list-skeleton-bNfITSHs.js';
9
- import { T as TracesDataList } from '../../../traces-data-list-DMWPJFBc.js';
7
+ import { TraceErrorCell } from './trace-error-cell.es.js';
8
+ import { s as splitColumns, e as DataList } from '../../../data-list-Tor18oy5.js';
9
+ import { a as DataListSkeletonRows } from '../../../data-list-skeleton-CXUB-u3p.js';
10
+ import { T as TracesDataList } from '../../../traces-data-list-TCKjOldO.js';
10
11
  import { u as useDataListKeyboard } from '../../../use-data-list-keyboard-DFQr4t38.js';
11
- import { s as splitColumns } from '../../../data-list-top-T-mtdIUp.js';
12
12
  import { D as DropdownMenu } from '../../../dropdown-menu-CQ_48tVI.js';
13
13
  import { T as Txt } from '../../../Txt-BtIGLRk1.js';
14
14
  import { focusRing } from '../../../primitives/transitions.es.js';
@@ -35,6 +35,9 @@ function sumTokens(usage) {
35
35
  if (usage?.inputTokens === void 0 && usage?.outputTokens === void 0) return void 0;
36
36
  return (usage?.inputTokens ?? 0) + (usage?.outputTokens ?? 0);
37
37
  }
38
+ function isFailedTrace(trace) {
39
+ return trace.status === "error" && !!trace.errorPreview && !!trace.spanId;
40
+ }
38
41
  function TracesListView({
39
42
  traces,
40
43
  isLoading,
@@ -165,14 +168,14 @@ function TracesListView({
165
168
  }
166
169
  ),
167
170
  hasTraceColumn(columnPreferences, "input") && /* @__PURE__ */ jsx(TracesDataList.InputCell, { input: trace.inputPreview ?? getInputPreview(trace.input) }),
168
- hasTraceColumn(columnPreferences, "output") && /* @__PURE__ */ jsx(
171
+ hasTraceColumn(columnPreferences, "output") && (isFailedTrace(trace) ? /* @__PURE__ */ jsx(TraceErrorCell, { traceId: trace.traceId, spanId: trace.spanId, errorPreview: trace.errorPreview }) : /* @__PURE__ */ jsx(
169
172
  TracesDataList.OutputCell,
170
173
  {
171
174
  output: trace.outputPreview,
172
175
  error: trace.errorPreview,
173
176
  status: trace.status
174
177
  }
175
- ),
178
+ )),
176
179
  /* @__PURE__ */ jsx(TracesDataList.StatusCell, { status: trace.status }),
177
180
  hasTraceColumn(columnPreferences, "duration") && /* @__PURE__ */ jsx(DataList.NumberCell, { font: "mono", children: formatDuration(getSpanDurationMs(trace.startedAt, trace.endedAt)) }),
178
181
  hasTraceColumn(columnPreferences, "endTime") && /* @__PURE__ */ jsx(TracesDataList.CreatedCell, { timestamp: trace.endedAt ?? "", preset: "day-time-seconds" }),