@mastra/playground-ui 56.0.0 → 57.0.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1044) hide show
  1. package/dist/{Button-CVewl8nT.cjs → Button-C0DBEBcJ.cjs} +12 -5
  2. package/dist/Button-C0DBEBcJ.cjs.map +1 -0
  3. package/dist/{Button-cWcBEd-G.js → Button-C9cvaVFG.js} +13 -6
  4. package/dist/Button-C9cvaVFG.js.map +1 -0
  5. package/dist/{Card-DEvGFj-Z.js → Card-B_buJ5yF.js} +3 -3
  6. package/dist/{Card-DEvGFj-Z.js.map → Card-B_buJ5yF.js.map} +1 -1
  7. package/dist/{Card-D0kFp9j9.cjs → Card-DwGasv0K.cjs} +3 -3
  8. package/dist/{Card-D0kFp9j9.cjs.map → Card-DwGasv0K.cjs.map} +1 -1
  9. package/dist/{EmptyState-UWXhBp5U.js → EmptyState-B6cyZw6m.js} +12 -6
  10. package/dist/EmptyState-B6cyZw6m.js.map +1 -0
  11. package/dist/{EmptyState-CdRjFB06.cjs → EmptyState-DiSP6UIy.cjs} +12 -6
  12. package/dist/EmptyState-DiSP6UIy.cjs.map +1 -0
  13. package/dist/ErrorState-B0839u-q.cjs +21 -0
  14. package/dist/ErrorState-B0839u-q.cjs.map +1 -0
  15. package/dist/ErrorState-HyRJdaA2.js +19 -0
  16. package/dist/ErrorState-HyRJdaA2.js.map +1 -0
  17. package/dist/Header-BVnFQlzE.js +31 -0
  18. package/dist/Header-BVnFQlzE.js.map +1 -0
  19. package/dist/Header-CGjhJ0nQ.cjs +36 -0
  20. package/dist/Header-CGjhJ0nQ.cjs.map +1 -0
  21. package/dist/{Notice-Cjti0e0j.cjs → Notice-CoFjo8O6.cjs} +3 -3
  22. package/dist/{Notice-Cjti0e0j.cjs.map → Notice-CoFjo8O6.cjs.map} +1 -1
  23. package/dist/{Notice-Ah-84yi6.js → Notice-DUdQkUqH.js} +3 -3
  24. package/dist/{Notice-Ah-84yi6.js.map → Notice-DUdQkUqH.js.map} +1 -1
  25. package/dist/{PermissionDenied-B6TSGolC.js → PermissionDenied-CTqnE57B.js} +11 -6
  26. package/dist/PermissionDenied-CTqnE57B.js.map +1 -0
  27. package/dist/{PermissionDenied-Dz5qXpQj.cjs → PermissionDenied-fdVmTjjf.cjs} +11 -6
  28. package/dist/PermissionDenied-fdVmTjjf.cjs.map +1 -0
  29. package/dist/{SessionExpired-CF0BGNo_.cjs → SessionExpired-CFGTqnU5.cjs} +5 -6
  30. package/dist/SessionExpired-CFGTqnU5.cjs.map +1 -0
  31. package/dist/{SessionExpired-Bq5LcsDu.js → SessionExpired-COK6flhT.js} +5 -6
  32. package/dist/SessionExpired-COK6flhT.js.map +1 -0
  33. package/dist/ask-user-3fufbFt8.cjs +216 -0
  34. package/dist/ask-user-3fufbFt8.cjs.map +1 -0
  35. package/dist/ask-user-CvCMHkhI.js +206 -0
  36. package/dist/ask-user-CvCMHkhI.js.map +1 -0
  37. package/dist/buttons-group-CoZP3lJt.cjs +59 -0
  38. package/dist/buttons-group-CoZP3lJt.cjs.map +1 -0
  39. package/dist/buttons-group-DsZgrZBZ.js +37 -0
  40. package/dist/buttons-group-DsZgrZBZ.js.map +1 -0
  41. package/dist/buttons-group.css +113 -22
  42. package/dist/{chat-notification-4OuPNhtu.js → chat-notification-BM24QnK9.js} +7 -7
  43. package/dist/{chat-notification-4OuPNhtu.js.map → chat-notification-BM24QnK9.js.map} +1 -1
  44. package/dist/{chat-notification-CPrlBwP_.cjs → chat-notification-CQlc3Z3y.cjs} +7 -7
  45. package/dist/{chat-notification-CPrlBwP_.cjs.map → chat-notification-CQlc3Z3y.cjs.map} +1 -1
  46. package/dist/{chat-signal-CG5-vy21.js → chat-signal-5gAZo10e.js} +6 -6
  47. package/dist/{chat-signal-CG5-vy21.js.map → chat-signal-5gAZo10e.js.map} +1 -1
  48. package/dist/{chat-signal-B_T2DSzo.cjs → chat-signal-CUkeTh1i.cjs} +6 -6
  49. package/dist/{chat-signal-B_T2DSzo.cjs.map → chat-signal-CUkeTh1i.cjs.map} +1 -1
  50. package/dist/{code-block-Cd4u7Bo9.cjs → code-block-D2q4w1t-.cjs} +10 -10
  51. package/dist/{code-block-Cd4u7Bo9.cjs.map → code-block-D2q4w1t-.cjs.map} +1 -1
  52. package/dist/{code-block-CSqjpBvb.js → code-block-D3BWud_S.js} +10 -10
  53. package/dist/{code-block-CSqjpBvb.js.map → code-block-D3BWud_S.js.map} +1 -1
  54. package/dist/{code-diff-C5uY-3Hz.js → code-diff-BHZTS4Zh.js} +2 -2
  55. package/dist/{code-diff-C5uY-3Hz.js.map → code-diff-BHZTS4Zh.js.map} +1 -1
  56. package/dist/{code-diff-DBtbPe9D.cjs → code-diff-CG8veSa-.cjs} +2 -2
  57. package/dist/{code-diff-DBtbPe9D.cjs.map → code-diff-CG8veSa-.cjs.map} +1 -1
  58. package/dist/{code-editor-vCt7l9Bl.js → code-editor-7wJJDE9d.js} +2 -2
  59. package/dist/{code-editor-vCt7l9Bl.js.map → code-editor-7wJJDE9d.js.map} +1 -1
  60. package/dist/{code-editor-DgY7d8kg.cjs → code-editor-Ce1FXyFV.cjs} +2 -2
  61. package/dist/{code-editor-DgY7d8kg.cjs.map → code-editor-Ce1FXyFV.cjs.map} +1 -1
  62. package/dist/{collapsible-BvrI6XnN.cjs → collapsible-BFSJouuI.cjs} +2 -2
  63. package/dist/{collapsible-BvrI6XnN.cjs.map → collapsible-BFSJouuI.cjs.map} +1 -1
  64. package/dist/{collapsible-B2uUy8w5.js → collapsible-DhhP5p1j.js} +2 -2
  65. package/dist/{collapsible-B2uUy8w5.js.map → collapsible-DhhP5p1j.js.map} +1 -1
  66. package/dist/{combobox-D7xJFZuO.js → combobox-CV-Ue388.js} +5 -5
  67. package/dist/combobox-CV-Ue388.js.map +1 -0
  68. package/dist/{combobox-BWM3VH-n.cjs → combobox-Dw3W6EHS.cjs} +6 -6
  69. package/dist/combobox-Dw3W6EHS.cjs.map +1 -0
  70. package/dist/{combobox-styles-CRebmeht.js → combobox-styles-Dgc_Jp-E.js} +3 -6
  71. package/dist/combobox-styles-Dgc_Jp-E.js.map +1 -0
  72. package/dist/{combobox-styles-DYlNNjKC.cjs → combobox-styles-ExU7SMb7.cjs} +3 -6
  73. package/dist/combobox-styles-ExU7SMb7.cjs.map +1 -0
  74. package/dist/{command-DuT06mTw.cjs → command-BJrGchxZ.cjs} +6 -6
  75. package/dist/{command-DuT06mTw.cjs.map → command-BJrGchxZ.cjs.map} +1 -1
  76. package/dist/{command-jRiL1vXM.js → command-kHnYspgO.js} +6 -6
  77. package/dist/{command-jRiL1vXM.js.map → command-kHnYspgO.js.map} +1 -1
  78. package/dist/components/ActionRow.cjs.js +38 -0
  79. package/dist/components/ActionRow.cjs.js.map +1 -0
  80. package/dist/components/ActionRow.d.ts +2 -0
  81. package/dist/components/ActionRow.es.js +34 -0
  82. package/dist/components/ActionRow.es.js.map +1 -0
  83. package/dist/components/AlertDialog.cjs.js +1 -1
  84. package/dist/components/AlertDialog.es.js +1 -1
  85. package/dist/components/Breadcrumb.cjs.js +1 -1
  86. package/dist/components/Breadcrumb.cjs.js.map +1 -1
  87. package/dist/components/Breadcrumb.es.js +1 -1
  88. package/dist/components/Breadcrumb.es.js.map +1 -1
  89. package/dist/components/Button.cjs.js +2 -2
  90. package/dist/components/Button.es.js +3 -3
  91. package/dist/components/ButtonsGroup.cjs.js +1 -2
  92. package/dist/components/ButtonsGroup.cjs.js.map +1 -1
  93. package/dist/components/ButtonsGroup.es.js +1 -1
  94. package/dist/components/Card.cjs.js +1 -1
  95. package/dist/components/Card.es.js +1 -1
  96. package/dist/components/ClampedText.cjs.js +1 -1
  97. package/dist/components/ClampedText.es.js +1 -1
  98. package/dist/components/CodeBlock.cjs.js +1 -1
  99. package/dist/components/CodeBlock.es.js +1 -1
  100. package/dist/components/CodeDiff.cjs.js +1 -1
  101. package/dist/components/CodeDiff.es.js +1 -1
  102. package/dist/components/CodeEditor.cjs.js +1 -1
  103. package/dist/components/CodeEditor.es.js +1 -1
  104. package/dist/components/Collapsible.cjs.js +1 -1
  105. package/dist/components/Collapsible.es.js +1 -1
  106. package/dist/components/Columns.cjs.js +1 -1
  107. package/dist/components/Columns.es.js +1 -1
  108. package/dist/components/Combobox.cjs.js +2 -2
  109. package/dist/components/Combobox.es.js +2 -2
  110. package/dist/components/Command.cjs.js +1 -1
  111. package/dist/components/Command.es.js +1 -1
  112. package/dist/components/CommandPalette.cjs.js +12 -12
  113. package/dist/components/CommandPalette.cjs.js.map +1 -1
  114. package/dist/components/CommandPalette.es.js +12 -12
  115. package/dist/components/CommandPalette.es.js.map +1 -1
  116. package/dist/components/Comment.cjs.js +6 -7
  117. package/dist/components/Comment.cjs.js.map +1 -1
  118. package/dist/components/Comment.es.js +5 -6
  119. package/dist/components/Comment.es.js.map +1 -1
  120. package/dist/components/Composer.cjs.js +6 -6
  121. package/dist/components/Composer.cjs.js.map +1 -1
  122. package/dist/components/Composer.es.js +6 -6
  123. package/dist/components/Composer.es.js.map +1 -1
  124. package/dist/components/ContextMenu.cjs.js +1 -6
  125. package/dist/components/ContextMenu.cjs.js.map +1 -1
  126. package/dist/components/ContextMenu.es.js +1 -6
  127. package/dist/components/ContextMenu.es.js.map +1 -1
  128. package/dist/components/CopyButton.cjs.js +1 -1
  129. package/dist/components/CopyButton.es.js +1 -1
  130. package/dist/components/DataCodeSection.cjs.js +1 -1
  131. package/dist/components/DataCodeSection.es.js +1 -1
  132. package/dist/components/DataDetailsPanel.cjs.js +10 -11
  133. package/dist/components/DataDetailsPanel.cjs.js.map +1 -1
  134. package/dist/components/DataDetailsPanel.es.js +10 -11
  135. package/dist/components/DataDetailsPanel.es.js.map +1 -1
  136. package/dist/components/DataFilter.cjs.js +2 -2
  137. package/dist/components/DataFilter.es.js +2 -2
  138. package/dist/components/DataKeysAndValues.cjs.js +1 -1
  139. package/dist/components/DataKeysAndValues.es.js +1 -1
  140. package/dist/components/DataList.cjs.js +8 -8
  141. package/dist/components/DataList.cjs.js.map +1 -1
  142. package/dist/components/DataList.es.js +8 -8
  143. package/dist/components/DataList.es.js.map +1 -1
  144. package/dist/components/DataPanel.cjs.js +1 -1
  145. package/dist/components/DataPanel.es.js +1 -1
  146. package/dist/components/DateRangeTimeline.cjs.js +6 -6
  147. package/dist/components/DateRangeTimeline.cjs.js.map +1 -1
  148. package/dist/components/DateRangeTimeline.es.js +6 -6
  149. package/dist/components/DateRangeTimeline.es.js.map +1 -1
  150. package/dist/components/DateTimePicker.cjs.js +4 -4
  151. package/dist/components/DateTimePicker.cjs.js.map +1 -1
  152. package/dist/components/DateTimePicker.es.js +4 -4
  153. package/dist/components/DateTimePicker.es.js.map +1 -1
  154. package/dist/components/DateTimeRangePicker.cjs.js +1 -1
  155. package/dist/components/DateTimeRangePicker.es.js +1 -1
  156. package/dist/components/Dialog.cjs.js +2 -2
  157. package/dist/components/Dialog.es.js +3 -3
  158. package/dist/components/Drawer.cjs.js +1 -1
  159. package/dist/components/Drawer.es.js +1 -1
  160. package/dist/components/DropdownMenu.cjs.js +1 -1
  161. package/dist/components/DropdownMenu.es.js +1 -1
  162. package/dist/components/EmptyState.cjs.js +1 -1
  163. package/dist/components/EmptyState.es.js +1 -1
  164. package/dist/components/EntityHeader.cjs.js +1 -1
  165. package/dist/components/EntityHeader.cjs.js.map +1 -1
  166. package/dist/components/EntityHeader.es.js +1 -1
  167. package/dist/components/EntityHeader.es.js.map +1 -1
  168. package/dist/components/EnvironmentVariablesEditor.cjs.js +15 -16
  169. package/dist/components/EnvironmentVariablesEditor.cjs.js.map +1 -1
  170. package/dist/components/EnvironmentVariablesEditor.es.js +9 -10
  171. package/dist/components/EnvironmentVariablesEditor.es.js.map +1 -1
  172. package/dist/components/ErrorBoundary.cjs.js +3 -3
  173. package/dist/components/ErrorBoundary.cjs.js.map +1 -1
  174. package/dist/components/ErrorBoundary.es.js +3 -3
  175. package/dist/components/ErrorBoundary.es.js.map +1 -1
  176. package/dist/components/ErrorState.cjs.js +1 -1
  177. package/dist/components/ErrorState.es.js +1 -1
  178. package/dist/components/FilterBar.cjs.js +495 -43
  179. package/dist/components/FilterBar.cjs.js.map +1 -1
  180. package/dist/components/FilterBar.es.js +495 -47
  181. package/dist/components/FilterBar.es.js.map +1 -1
  182. package/dist/components/FormFieldBlocks.cjs.js +11 -12
  183. package/dist/components/FormFieldBlocks.cjs.js.map +1 -1
  184. package/dist/components/FormFieldBlocks.es.js +4 -5
  185. package/dist/components/FormFieldBlocks.es.js.map +1 -1
  186. package/dist/components/Header.cjs.js +6 -31
  187. package/dist/components/Header.cjs.js.map +1 -1
  188. package/dist/components/Header.es.js +1 -30
  189. package/dist/components/Header.es.js.map +1 -1
  190. package/dist/components/HorizontalBars.cjs.js +1 -1
  191. package/dist/components/HorizontalBars.es.js +1 -1
  192. package/dist/components/HoverCard.cjs.js +1 -1
  193. package/dist/components/HoverCard.es.js +1 -1
  194. package/dist/components/InputGroup.cjs.js +1 -1
  195. package/dist/components/InputGroup.es.js +1 -1
  196. package/dist/components/IntegrationDialog.cjs.js +6 -6
  197. package/dist/components/IntegrationDialog.cjs.js.map +1 -1
  198. package/dist/components/IntegrationDialog.es.js +6 -6
  199. package/dist/components/IntegrationDialog.es.js.map +1 -1
  200. package/dist/components/ItemList.cjs.js +4 -4
  201. package/dist/components/ItemList.cjs.js.map +1 -1
  202. package/dist/components/ItemList.es.js +4 -4
  203. package/dist/components/ItemList.es.js.map +1 -1
  204. package/dist/components/JSONSchemaForm.cjs.js +3 -3
  205. package/dist/components/JSONSchemaForm.es.js +3 -3
  206. package/dist/components/Kbd.cjs.js +1 -1
  207. package/dist/components/Kbd.es.js +1 -1
  208. package/dist/components/KeyValueList.cjs.js +1 -1
  209. package/dist/components/KeyValueList.es.js +1 -1
  210. package/dist/components/ListSearch.cjs.js +1 -1
  211. package/dist/components/ListSearch.es.js +1 -1
  212. package/dist/components/LogsDataList.cjs.js +4 -2
  213. package/dist/components/LogsDataList.cjs.js.map +1 -1
  214. package/dist/components/LogsDataList.es.js +4 -2
  215. package/dist/components/LogsDataList.es.js.map +1 -1
  216. package/dist/components/MainHeader.cjs.js +3 -3
  217. package/dist/components/MainHeader.cjs.js.map +1 -1
  218. package/dist/components/MainHeader.es.js +3 -3
  219. package/dist/components/MainHeader.es.js.map +1 -1
  220. package/dist/components/MainSidebar.cjs.js +11 -125
  221. package/dist/components/MainSidebar.cjs.js.map +1 -1
  222. package/dist/components/MainSidebar.es.js +1 -120
  223. package/dist/components/MainSidebar.es.js.map +1 -1
  224. package/dist/components/MarkdownRenderer.cjs.js +1 -1
  225. package/dist/components/MarkdownRenderer.es.js +1 -1
  226. package/dist/components/Message.cjs.js +2 -2
  227. package/dist/components/Message.es.js +3 -3
  228. package/dist/components/MetricsCard.cjs.js +1 -1
  229. package/dist/components/MetricsCard.es.js +1 -1
  230. package/dist/components/MetricsKpiCard.cjs.js +1 -1
  231. package/dist/components/MetricsKpiCard.es.js +1 -1
  232. package/dist/components/MetricsLineChart.cjs.js +1 -1
  233. package/dist/components/MetricsLineChart.es.js +1 -1
  234. package/dist/components/Notice.cjs.js +1 -1
  235. package/dist/components/Notice.es.js +1 -1
  236. package/dist/components/PageHeader.cjs.js +1 -1
  237. package/dist/components/PageHeader.es.js +1 -1
  238. package/dist/components/PageLayout.cjs.js +30 -8
  239. package/dist/components/PageLayout.cjs.js.map +1 -1
  240. package/dist/components/PageLayout.es.js +32 -3
  241. package/dist/components/PageLayout.es.js.map +1 -1
  242. package/dist/components/PendingIndicator.cjs.js +1 -1
  243. package/dist/components/PendingIndicator.cjs.js.map +1 -1
  244. package/dist/components/PendingIndicator.es.js +1 -1
  245. package/dist/components/PendingIndicator.es.js.map +1 -1
  246. package/dist/components/PermissionDenied.cjs.js +1 -1
  247. package/dist/components/PermissionDenied.es.js +1 -1
  248. package/dist/components/PrevNextNav.cjs.js +1 -1
  249. package/dist/components/PrevNextNav.es.js +1 -1
  250. package/dist/components/PropertyFilter.cjs.js +18 -19
  251. package/dist/components/PropertyFilter.cjs.js.map +1 -1
  252. package/dist/components/PropertyFilter.es.js +21 -22
  253. package/dist/components/PropertyFilter.es.js.map +1 -1
  254. package/dist/components/RadioGroup.cjs.js +3 -56
  255. package/dist/components/RadioGroup.cjs.js.map +1 -1
  256. package/dist/components/RadioGroup.es.js +1 -39
  257. package/dist/components/RadioGroup.es.js.map +1 -1
  258. package/dist/components/RuleBuilder.cjs.js +10 -10
  259. package/dist/components/RuleBuilder.cjs.js.map +1 -1
  260. package/dist/components/RuleBuilder.es.js +10 -10
  261. package/dist/components/RuleBuilder.es.js.map +1 -1
  262. package/dist/components/SankeyChart.cjs.js +1 -1
  263. package/dist/components/SankeyChart.es.js +1 -1
  264. package/dist/components/ScatterPlotChart.cjs.js +2 -2
  265. package/dist/components/ScatterPlotChart.cjs.js.map +1 -1
  266. package/dist/components/ScatterPlotChart.es.js +2 -2
  267. package/dist/components/ScatterPlotChart.es.js.map +1 -1
  268. package/dist/components/ScrollArea.cjs.js +1 -1
  269. package/dist/components/ScrollArea.es.js +1 -1
  270. package/dist/components/Select.cjs.js +1 -1
  271. package/dist/components/Select.es.js +1 -1
  272. package/dist/components/SessionExpired.cjs.js +1 -1
  273. package/dist/components/SessionExpired.es.js +1 -1
  274. package/dist/components/SettingsLayout.cjs.js +1 -1
  275. package/dist/components/SettingsLayout.es.js +1 -1
  276. package/dist/components/SideDialog.cjs.js +17 -10
  277. package/dist/components/SideDialog.cjs.js.map +1 -1
  278. package/dist/components/SideDialog.es.js +17 -10
  279. package/dist/components/SideDialog.es.js.map +1 -1
  280. package/dist/components/Spinner.cjs.js +1 -1
  281. package/dist/components/Spinner.es.js +1 -1
  282. package/dist/components/StatusIndicators.cjs.js +3 -3
  283. package/dist/components/StatusIndicators.cjs.js.map +1 -1
  284. package/dist/components/StatusIndicators.es.js +3 -3
  285. package/dist/components/StatusIndicators.es.js.map +1 -1
  286. package/dist/components/Steps.cjs.js +3 -3
  287. package/dist/components/Steps.cjs.js.map +1 -1
  288. package/dist/components/Steps.es.js +3 -3
  289. package/dist/components/Steps.es.js.map +1 -1
  290. package/dist/components/Tabs.cjs.js +3 -3
  291. package/dist/components/Tabs.es.js +3 -3
  292. package/dist/components/ThreadList.cjs.js +2 -2
  293. package/dist/components/ThreadList.cjs.js.map +1 -1
  294. package/dist/components/ThreadList.es.js +2 -2
  295. package/dist/components/ThreadList.es.js.map +1 -1
  296. package/dist/components/ThreadRail.cjs.js +1 -1
  297. package/dist/components/ThreadRail.es.js +1 -1
  298. package/dist/components/TokenBudget.cjs.js +1 -1
  299. package/dist/components/TokenBudget.cjs.js.map +1 -1
  300. package/dist/components/TokenBudget.es.js +1 -1
  301. package/dist/components/TokenBudget.es.js.map +1 -1
  302. package/dist/components/Tree.cjs.js +3 -3
  303. package/dist/components/Tree.cjs.js.map +1 -1
  304. package/dist/components/Tree.es.js +3 -3
  305. package/dist/components/Tree.es.js.map +1 -1
  306. package/dist/components/Truncate.cjs.js +1 -1
  307. package/dist/components/Truncate.es.js +1 -1
  308. package/dist/components/Workflow.cjs.js +36 -36
  309. package/dist/components/Workflow.cjs.js.map +1 -1
  310. package/dist/components/Workflow.es.js +36 -36
  311. package/dist/components/Workflow.es.js.map +1 -1
  312. package/dist/components/ai/ask-user.cjs.js +4 -3
  313. package/dist/components/ai/ask-user.cjs.js.map +1 -1
  314. package/dist/components/ai/ask-user.es.js +1 -1
  315. package/dist/components/ai/chat-event.cjs.js +6 -6
  316. package/dist/components/ai/chat-event.cjs.js.map +1 -1
  317. package/dist/components/ai/chat-event.es.js +7 -7
  318. package/dist/components/ai/chat-event.es.js.map +1 -1
  319. package/dist/components/ai/plan.cjs.js +2 -2
  320. package/dist/components/ai/plan.es.js +2 -2
  321. package/dist/components/ai/task-list.cjs.js +7 -7
  322. package/dist/components/ai/task-list.cjs.js.map +1 -1
  323. package/dist/components/ai/task-list.es.js +7 -7
  324. package/dist/components/ai/task-list.es.js.map +1 -1
  325. package/dist/components/ai/tool-approval.cjs.js +1 -1
  326. package/dist/components/ai/tool-approval.es.js +1 -1
  327. package/dist/components/ai/tool-call.cjs.js +8 -8
  328. package/dist/components/ai/tool-call.cjs.js.map +1 -1
  329. package/dist/components/ai/tool-call.es.js +9 -9
  330. package/dist/components/ai/tool-call.es.js.map +1 -1
  331. package/dist/components/fluid-hover-highlight.cjs.js +13 -35
  332. package/dist/components/fluid-hover-highlight.cjs.js.map +1 -1
  333. package/dist/components/fluid-hover-highlight.es.js +14 -33
  334. package/dist/components/fluid-hover-highlight.es.js.map +1 -1
  335. package/dist/{composer-BUoRnMDd.cjs → composer-B_Err196.cjs} +6 -6
  336. package/dist/{composer-BUoRnMDd.cjs.map → composer-B_Err196.cjs.map} +1 -1
  337. package/dist/{composer-CEL1glw7.js → composer-DJGAoBcn.js} +6 -6
  338. package/dist/{composer-CEL1glw7.js.map → composer-DJGAoBcn.js.map} +1 -1
  339. package/dist/{copy-button-BbDBpBMl.cjs → copy-button-C5dMlWsW.cjs} +2 -2
  340. package/dist/{copy-button-BbDBpBMl.cjs.map → copy-button-C5dMlWsW.cjs.map} +1 -1
  341. package/dist/{copy-button-2cwdZ3dW.js → copy-button-C6RswD_D.js} +2 -2
  342. package/dist/{copy-button-2cwdZ3dW.js.map → copy-button-C6RswD_D.js.map} +1 -1
  343. package/dist/{data-code-section-qujvEc6j.cjs → data-code-section-B-y2WPBl.cjs} +17 -19
  344. package/dist/data-code-section-B-y2WPBl.cjs.map +1 -0
  345. package/dist/{data-code-section-DKz9Okaz.js → data-code-section-DcocgDAN.js} +17 -19
  346. package/dist/data-code-section-DcocgDAN.js.map +1 -0
  347. package/dist/{data-keys-and-values-4pYpSbqS.cjs → data-keys-and-values-BduKvvC5.cjs} +2 -2
  348. package/dist/{data-keys-and-values-4pYpSbqS.cjs.map → data-keys-and-values-BduKvvC5.cjs.map} +1 -1
  349. package/dist/{data-keys-and-values-j0NVKPOl.js → data-keys-and-values-DhC4U4Yl.js} +2 -2
  350. package/dist/{data-keys-and-values-j0NVKPOl.js.map → data-keys-and-values-DhC4U4Yl.js.map} +1 -1
  351. package/dist/{data-list-DnSdaRES.js → data-list-gN4SP7a8.js} +5 -5
  352. package/dist/{data-list-DnSdaRES.js.map → data-list-gN4SP7a8.js.map} +1 -1
  353. package/dist/{data-list-skeleton-ADXw-opu.cjs → data-list-skeleton-DYG2LLri.cjs} +2 -2
  354. package/dist/{data-list-skeleton-ADXw-opu.cjs.map → data-list-skeleton-DYG2LLri.cjs.map} +1 -1
  355. package/dist/{data-list-skeleton-D7-glFuk.js → data-list-skeleton-PXHovGLv.js} +2 -2
  356. package/dist/{data-list-skeleton-D7-glFuk.js.map → data-list-skeleton-PXHovGLv.js.map} +1 -1
  357. package/dist/{data-list-spacer-DRHNUeeP.js → data-list-spacer-D-AQzTYw.js} +3 -3
  358. package/dist/{data-list-spacer-DRHNUeeP.js.map → data-list-spacer-D-AQzTYw.js.map} +1 -1
  359. package/dist/{data-list-spacer-EWo65MrK.cjs → data-list-spacer-MpuBsXjL.cjs} +3 -3
  360. package/dist/{data-list-spacer-EWo65MrK.cjs.map → data-list-spacer-MpuBsXjL.cjs.map} +1 -1
  361. package/dist/{data-list-top-DLwt_Sv-.js → data-list-top-BTeM7hI4.js} +5 -5
  362. package/dist/{data-list-top-DLwt_Sv-.js.map → data-list-top-BTeM7hI4.js.map} +1 -1
  363. package/dist/{data-list-top-RK_yX6z8.cjs → data-list-top-DDux1Eu4.cjs} +5 -5
  364. package/dist/{data-list-top-RK_yX6z8.cjs.map → data-list-top-DDux1Eu4.cjs.map} +1 -1
  365. package/dist/{data-list-CypPKOQ_.cjs → data-list-yJm-3f2w.cjs} +5 -5
  366. package/dist/{data-list-CypPKOQ_.cjs.map → data-list-yJm-3f2w.cjs.map} +1 -1
  367. package/dist/{data-panel-CWZJKBeW.cjs → data-panel-CM3N_4M7.cjs} +9 -9
  368. package/dist/{data-panel-CWZJKBeW.cjs.map → data-panel-CM3N_4M7.cjs.map} +1 -1
  369. package/dist/{data-panel-CWjgS1Gh.js → data-panel-D3UfzCoE.js} +9 -9
  370. package/dist/{data-panel-CWjgS1Gh.js.map → data-panel-D3UfzCoE.js.map} +1 -1
  371. package/dist/{date-time-range-picker-C6hjZswK.cjs → date-time-range-picker-2Pkg-FoU.cjs} +6 -7
  372. package/dist/{date-time-range-picker-C6hjZswK.cjs.map → date-time-range-picker-2Pkg-FoU.cjs.map} +1 -1
  373. package/dist/{date-time-range-picker-BcjLbkGu.js → date-time-range-picker-DHg-fuV3.js} +5 -6
  374. package/dist/{date-time-range-picker-BcjLbkGu.js.map → date-time-range-picker-DHg-fuV3.js.map} +1 -1
  375. package/dist/{dialog-Dm33cZqt.cjs → dialog-Cyj59QsZ.cjs} +3 -3
  376. package/dist/{dialog-Dm33cZqt.cjs.map → dialog-Cyj59QsZ.cjs.map} +1 -1
  377. package/dist/{dialog-DRpMek34.js → dialog-D8fuBETk.js} +3 -3
  378. package/dist/{dialog-DRpMek34.js.map → dialog-D8fuBETk.js.map} +1 -1
  379. package/dist/domains/chat/attachments/attachment-preview-dialog.cjs.js +2 -2
  380. package/dist/domains/chat/attachments/attachment-preview-dialog.es.js +2 -2
  381. package/dist/domains/chat/attachments/composer-attachment-list.cjs.js +1 -1
  382. package/dist/domains/chat/attachments/composer-attachment-list.es.js +1 -1
  383. package/dist/domains/chat/attachments/composer-attachment.cjs.js +1 -1
  384. package/dist/domains/chat/attachments/composer-attachment.es.js +1 -1
  385. package/dist/domains/chat/components/badge-wrapper.cjs.js +2 -2
  386. package/dist/domains/chat/components/badge-wrapper.cjs.js.map +1 -1
  387. package/dist/domains/chat/components/badge-wrapper.es.js +2 -2
  388. package/dist/domains/chat/components/badge-wrapper.es.js.map +1 -1
  389. package/dist/domains/chat/components/loading-badge.cjs.js +1 -1
  390. package/dist/domains/chat/components/loading-badge.es.js +1 -1
  391. package/dist/domains/chat/components/network-choice-metadata-dialog.cjs.js +4 -4
  392. package/dist/domains/chat/components/network-choice-metadata-dialog.cjs.js.map +1 -1
  393. package/dist/domains/chat/components/network-choice-metadata-dialog.es.js +4 -4
  394. package/dist/domains/chat/components/network-choice-metadata-dialog.es.js.map +1 -1
  395. package/dist/domains/chat/messages/notification-signal-notice.cjs.js +1 -1
  396. package/dist/domains/chat/messages/notification-signal-notice.es.js +1 -1
  397. package/dist/domains/chat/messages/reasoning-streaming-line.cjs.js +1 -1
  398. package/dist/domains/chat/messages/reasoning-streaming-line.cjs.js.map +1 -1
  399. package/dist/domains/chat/messages/reasoning-streaming-line.es.js +1 -1
  400. package/dist/domains/chat/messages/reasoning-streaming-line.es.js.map +1 -1
  401. package/dist/domains/chat/messages/reasoning.cjs.js +4 -4
  402. package/dist/domains/chat/messages/reasoning.cjs.js.map +1 -1
  403. package/dist/domains/chat/messages/reasoning.es.js +4 -4
  404. package/dist/domains/chat/messages/reasoning.es.js.map +1 -1
  405. package/dist/domains/chat/messages/renderers/message-text.cjs.js +2 -2
  406. package/dist/domains/chat/messages/renderers/message-text.es.js +2 -2
  407. package/dist/domains/chat/messages/renderers/status-renderers.cjs.js +1 -1
  408. package/dist/domains/chat/messages/renderers/status-renderers.es.js +1 -1
  409. package/dist/domains/chat/messages/signal-badge.cjs.js +1 -1
  410. package/dist/domains/chat/messages/signal-badge.es.js +1 -1
  411. package/dist/domains/chat/messages/system-reminder-badge.cjs.js +6 -6
  412. package/dist/domains/chat/messages/system-reminder-badge.cjs.js.map +1 -1
  413. package/dist/domains/chat/messages/system-reminder-badge.es.js +6 -6
  414. package/dist/domains/chat/messages/system-reminder-badge.es.js.map +1 -1
  415. package/dist/domains/chat/messages/tripwire-notice.cjs.js +3 -3
  416. package/dist/domains/chat/messages/tripwire-notice.cjs.js.map +1 -1
  417. package/dist/domains/chat/messages/tripwire-notice.es.js +3 -3
  418. package/dist/domains/chat/messages/tripwire-notice.es.js.map +1 -1
  419. package/dist/domains/chat/tools/badges/ask-user-badge.cjs.js +2 -2
  420. package/dist/domains/chat/tools/badges/ask-user-badge.cjs.js.map +1 -1
  421. package/dist/domains/chat/tools/badges/ask-user-badge.es.js +2 -2
  422. package/dist/domains/chat/tools/badges/ask-user-badge.es.js.map +1 -1
  423. package/dist/domains/chat/tools/badges/code-mode-badge.cjs.js +5 -5
  424. package/dist/domains/chat/tools/badges/code-mode-badge.cjs.js.map +1 -1
  425. package/dist/domains/chat/tools/badges/code-mode-badge.es.js +5 -5
  426. package/dist/domains/chat/tools/badges/code-mode-badge.es.js.map +1 -1
  427. package/dist/domains/chat/tools/badges/observation-marker-badge.cjs.js +29 -29
  428. package/dist/domains/chat/tools/badges/observation-marker-badge.cjs.js.map +1 -1
  429. package/dist/domains/chat/tools/badges/observation-marker-badge.es.js +29 -29
  430. package/dist/domains/chat/tools/badges/observation-marker-badge.es.js.map +1 -1
  431. package/dist/domains/chat/tools/badges/observation-renderer.cjs.js +11 -11
  432. package/dist/domains/chat/tools/badges/observation-renderer.cjs.js.map +1 -1
  433. package/dist/domains/chat/tools/badges/observation-renderer.es.js +11 -11
  434. package/dist/domains/chat/tools/badges/observation-renderer.es.js.map +1 -1
  435. package/dist/domains/chat/tools/badges/tool-approval-buttons.cjs.js +1 -1
  436. package/dist/domains/chat/tools/badges/tool-approval-buttons.es.js +1 -1
  437. package/dist/domains/logs/components/log-details-view.cjs.js +10 -12
  438. package/dist/domains/logs/components/log-details-view.cjs.js.map +1 -1
  439. package/dist/domains/logs/components/log-details-view.es.js +10 -12
  440. package/dist/domains/logs/components/log-details-view.es.js.map +1 -1
  441. package/dist/domains/logs/components/logs-error-content.cjs.js +4 -7
  442. package/dist/domains/logs/components/logs-error-content.cjs.js.map +1 -1
  443. package/dist/domains/logs/components/logs-error-content.es.js +4 -7
  444. package/dist/domains/logs/components/logs-error-content.es.js.map +1 -1
  445. package/dist/domains/logs/components/logs-list-view.cjs.js +2 -2
  446. package/dist/domains/logs/components/logs-list-view.es.js +2 -2
  447. package/dist/domains/logs/components/logs-toolbar.cjs.js +1 -1
  448. package/dist/domains/logs/components/logs-toolbar.cjs.js.map +1 -1
  449. package/dist/domains/logs/components/logs-toolbar.es.js +1 -1
  450. package/dist/domains/logs/components/logs-toolbar.es.js.map +1 -1
  451. package/dist/domains/logs/components/no-logs-info.cjs.js +6 -6
  452. package/dist/domains/logs/components/no-logs-info.cjs.js.map +1 -1
  453. package/dist/domains/logs/components/no-logs-info.es.js +7 -7
  454. package/dist/domains/logs/components/no-logs-info.es.js.map +1 -1
  455. package/dist/domains/memory/components/flame-graph.cjs.js +19 -19
  456. package/dist/domains/memory/components/flame-graph.cjs.js.map +1 -1
  457. package/dist/domains/memory/components/flame-graph.es.js +19 -19
  458. package/dist/domains/memory/components/flame-graph.es.js.map +1 -1
  459. package/dist/domains/memory/components/memory-studio-panel.cjs.js +4 -4
  460. package/dist/domains/memory/components/memory-studio-panel.cjs.js.map +1 -1
  461. package/dist/domains/memory/components/memory-studio-panel.es.js +4 -4
  462. package/dist/domains/memory/components/memory-studio-panel.es.js.map +1 -1
  463. package/dist/domains/memory/components/observation-detail-view.cjs.js +17 -18
  464. package/dist/domains/memory/components/observation-detail-view.cjs.js.map +1 -1
  465. package/dist/domains/memory/components/observation-detail-view.es.js +17 -18
  466. package/dist/domains/memory/components/observation-detail-view.es.js.map +1 -1
  467. package/dist/domains/memory/components/thread-context-progress.cjs.js +3 -3
  468. package/dist/domains/memory/components/thread-context-progress.cjs.js.map +1 -1
  469. package/dist/domains/memory/components/thread-context-progress.es.js +3 -3
  470. package/dist/domains/memory/components/thread-context-progress.es.js.map +1 -1
  471. package/dist/domains/metrics/components/bar-list.cjs.js +9 -9
  472. package/dist/domains/metrics/components/bar-list.cjs.js.map +1 -1
  473. package/dist/domains/metrics/components/bar-list.es.js +9 -9
  474. package/dist/domains/metrics/components/bar-list.es.js.map +1 -1
  475. package/dist/domains/metrics/components/card-action-buttons.cjs.js +1 -1
  476. package/dist/domains/metrics/components/card-action-buttons.es.js +1 -1
  477. package/dist/domains/metrics/components/date-range-selector.cjs.js +1 -1
  478. package/dist/domains/metrics/components/date-range-selector.es.js +1 -1
  479. package/dist/domains/metrics/components/kpi-card-view.cjs.js +1 -1
  480. package/dist/domains/metrics/components/kpi-card-view.es.js +1 -1
  481. package/dist/domains/metrics/components/latency-card-view.cjs.js +5 -5
  482. package/dist/domains/metrics/components/latency-card-view.es.js +5 -5
  483. package/dist/domains/metrics/components/memory-card-view.cjs.js +5 -5
  484. package/dist/domains/metrics/components/memory-card-view.es.js +5 -5
  485. package/dist/domains/metrics/components/model-usage-cost-card-view.cjs.js +2 -2
  486. package/dist/domains/metrics/components/model-usage-cost-card-view.es.js +2 -2
  487. package/dist/domains/metrics/components/scores-card-view.cjs.js +6 -6
  488. package/dist/domains/metrics/components/scores-card-view.es.js +6 -6
  489. package/dist/domains/metrics/components/token-usage-by-agent-card-view.cjs.js +5 -5
  490. package/dist/domains/metrics/components/token-usage-by-agent-card-view.es.js +5 -5
  491. package/dist/domains/metrics/components/token-usage-timeline-card-view.cjs.js +5 -5
  492. package/dist/domains/metrics/components/token-usage-timeline-card-view.es.js +5 -5
  493. package/dist/domains/metrics/components/traces-volume-card-view.cjs.js +5 -5
  494. package/dist/domains/metrics/components/traces-volume-card-view.es.js +5 -5
  495. package/dist/domains/traces/components/no-traces-info.cjs.js +2 -3
  496. package/dist/domains/traces/components/no-traces-info.cjs.js.map +1 -1
  497. package/dist/domains/traces/components/no-traces-info.es.js +2 -3
  498. package/dist/domains/traces/components/no-traces-info.es.js.map +1 -1
  499. package/dist/domains/traces/components/span-data-panel-view.cjs.js +7 -7
  500. package/dist/domains/traces/components/span-data-panel-view.es.js +7 -7
  501. package/dist/domains/traces/components/span-details-view.cjs.js +1 -1
  502. package/dist/domains/traces/components/span-details-view.es.js +1 -1
  503. package/dist/domains/traces/components/span-payload/span-error-renderer.cjs.js +3 -3
  504. package/dist/domains/traces/components/span-payload/span-error-renderer.es.js +3 -3
  505. package/dist/domains/traces/components/span-payload/span-input-renderers.cjs.js +3 -3
  506. package/dist/domains/traces/components/span-payload/span-input-renderers.es.js +3 -3
  507. package/dist/domains/traces/components/span-payload/span-output-renderers.cjs.js +4 -4
  508. package/dist/domains/traces/components/span-payload/span-output-renderers.es.js +4 -4
  509. package/dist/domains/traces/components/span-payload/span-payload-messages.cjs.js +2 -2
  510. package/dist/domains/traces/components/span-payload/span-payload-messages.es.js +2 -2
  511. package/dist/domains/traces/components/span-payload/span-payload-primitives.cjs.js +3 -3
  512. package/dist/domains/traces/components/span-payload/span-payload-primitives.es.js +3 -3
  513. package/dist/domains/traces/components/span-payload/span-payload-section.cjs.js +4 -6
  514. package/dist/domains/traces/components/span-payload/span-payload-section.cjs.js.map +1 -1
  515. package/dist/domains/traces/components/span-payload/span-payload-section.es.js +4 -6
  516. package/dist/domains/traces/components/span-payload/span-payload-section.es.js.map +1 -1
  517. package/dist/domains/traces/components/span-payload/span-payload-tool.cjs.js +2 -2
  518. package/dist/domains/traces/components/span-payload/span-payload-tool.es.js +2 -2
  519. package/dist/domains/traces/components/span-summary-description.cjs.js +1 -1
  520. package/dist/domains/traces/components/span-summary-description.es.js +1 -1
  521. package/dist/domains/traces/components/span-timeline-row.cjs.js +4 -4
  522. package/dist/domains/traces/components/span-timeline-row.cjs.js.map +1 -1
  523. package/dist/domains/traces/components/span-timeline-row.es.js +4 -4
  524. package/dist/domains/traces/components/span-timeline-row.es.js.map +1 -1
  525. package/dist/domains/traces/components/span-timing-hover-card.cjs.js +2 -2
  526. package/dist/domains/traces/components/span-timing-hover-card.es.js +2 -2
  527. package/dist/domains/traces/components/span-token-usage.cjs.js +5 -5
  528. package/dist/domains/traces/components/span-token-usage.cjs.js.map +1 -1
  529. package/dist/domains/traces/components/span-token-usage.es.js +5 -5
  530. package/dist/domains/traces/components/span-token-usage.es.js.map +1 -1
  531. package/dist/domains/traces/components/thread-trace/thread-trace-details.cjs.js +2 -2
  532. package/dist/domains/traces/components/thread-trace/thread-trace-details.cjs.js.map +1 -1
  533. package/dist/domains/traces/components/thread-trace/thread-trace-details.es.js +2 -2
  534. package/dist/domains/traces/components/thread-trace/thread-trace-details.es.js.map +1 -1
  535. package/dist/domains/traces/components/thread-trace/thread-trace-messages.cjs.js +4 -4
  536. package/dist/domains/traces/components/thread-trace/thread-trace-messages.es.js +4 -4
  537. package/dist/domains/traces/components/thread-trace/thread-trace-rail.cjs.js +1 -1
  538. package/dist/domains/traces/components/thread-trace/thread-trace-rail.es.js +1 -1
  539. package/dist/domains/traces/components/thread-trace/thread-trace-spans.cjs.js +2 -2
  540. package/dist/domains/traces/components/thread-trace/thread-trace-spans.cjs.js.map +1 -1
  541. package/dist/domains/traces/components/thread-trace/thread-trace-spans.es.js +2 -2
  542. package/dist/domains/traces/components/thread-trace/thread-trace-spans.es.js.map +1 -1
  543. package/dist/domains/traces/components/timeline-name-col.cjs.js +2 -2
  544. package/dist/domains/traces/components/timeline-name-col.cjs.js.map +1 -1
  545. package/dist/domains/traces/components/timeline-name-col.es.js +2 -2
  546. package/dist/domains/traces/components/timeline-name-col.es.js.map +1 -1
  547. package/dist/domains/traces/components/timeline-structure-sign.cjs.js +1 -1
  548. package/dist/domains/traces/components/timeline-structure-sign.cjs.js.map +1 -1
  549. package/dist/domains/traces/components/timeline-structure-sign.es.js +1 -1
  550. package/dist/domains/traces/components/timeline-structure-sign.es.js.map +1 -1
  551. package/dist/domains/traces/components/timeline-timing-col.cjs.js +2 -2
  552. package/dist/domains/traces/components/timeline-timing-col.cjs.js.map +1 -1
  553. package/dist/domains/traces/components/timeline-timing-col.es.js +2 -2
  554. package/dist/domains/traces/components/timeline-timing-col.es.js.map +1 -1
  555. package/dist/domains/traces/components/trace-columns-menu.cjs.js +8 -8
  556. package/dist/domains/traces/components/trace-columns-menu.cjs.js.map +1 -1
  557. package/dist/domains/traces/components/trace-columns-menu.es.js +6 -6
  558. package/dist/domains/traces/components/trace-columns-menu.es.js.map +1 -1
  559. package/dist/domains/traces/components/trace-data-panel-view.cjs.js +11 -13
  560. package/dist/domains/traces/components/trace-data-panel-view.cjs.js.map +1 -1
  561. package/dist/domains/traces/components/trace-data-panel-view.es.js +11 -13
  562. package/dist/domains/traces/components/trace-data-panel-view.es.js.map +1 -1
  563. package/dist/domains/traces/components/trace-id-button.cjs.js +1 -1
  564. package/dist/domains/traces/components/trace-id-button.es.js +1 -1
  565. package/dist/domains/traces/components/trace-keys-and-values.cjs.js +1 -1
  566. package/dist/domains/traces/components/trace-keys-and-values.es.js +1 -1
  567. package/dist/domains/traces/components/trace-span-timeline.cjs.js +1 -1
  568. package/dist/domains/traces/components/trace-span-timeline.cjs.js.map +1 -1
  569. package/dist/domains/traces/components/trace-span-timeline.es.js +1 -1
  570. package/dist/domains/traces/components/trace-span-timeline.es.js.map +1 -1
  571. package/dist/domains/traces/components/trace-summary-description.cjs.js +1 -1
  572. package/dist/domains/traces/components/trace-summary-description.es.js +1 -1
  573. package/dist/domains/traces/components/trace-time-range-chip.cjs.js +2 -2
  574. package/dist/domains/traces/components/trace-time-range-chip.es.js +2 -2
  575. package/dist/domains/traces/components/traces-error-content.cjs.js +3 -3
  576. package/dist/domains/traces/components/traces-error-content.cjs.js.map +1 -1
  577. package/dist/domains/traces/components/traces-error-content.es.js +3 -3
  578. package/dist/domains/traces/components/traces-error-content.es.js.map +1 -1
  579. package/dist/domains/traces/components/traces-list-mode-toggle.cjs.js +2 -2
  580. package/dist/domains/traces/components/traces-list-mode-toggle.es.js +2 -2
  581. package/dist/domains/traces/components/traces-list-view.cjs.js +5 -5
  582. package/dist/domains/traces/components/traces-list-view.cjs.js.map +1 -1
  583. package/dist/domains/traces/components/traces-list-view.es.js +5 -5
  584. package/dist/domains/traces/components/traces-list-view.es.js.map +1 -1
  585. package/dist/domains/traces/components/traces-page-skeleton.cjs.js +3 -1
  586. package/dist/domains/traces/components/traces-page-skeleton.cjs.js.map +1 -1
  587. package/dist/domains/traces/components/traces-page-skeleton.es.js +3 -1
  588. package/dist/domains/traces/components/traces-page-skeleton.es.js.map +1 -1
  589. package/dist/domains/traces/hooks/use-trace-url-state.cjs.js +4 -2
  590. package/dist/domains/traces/hooks/use-trace-url-state.cjs.js.map +1 -1
  591. package/dist/domains/traces/hooks/use-trace-url-state.es.js +5 -3
  592. package/dist/domains/traces/hooks/use-trace-url-state.es.js.map +1 -1
  593. package/dist/domains/traces/trace-filters.cjs.js +92 -11
  594. package/dist/domains/traces/trace-filters.cjs.js.map +1 -1
  595. package/dist/domains/traces/trace-filters.es.js +87 -13
  596. package/dist/domains/traces/trace-filters.es.js.map +1 -1
  597. package/dist/domains/traces/trace-query-filters.cjs.js +76 -45
  598. package/dist/domains/traces/trace-query-filters.cjs.js.map +1 -1
  599. package/dist/domains/traces/trace-query-filters.es.js +76 -46
  600. package/dist/domains/traces/trace-query-filters.es.js.map +1 -1
  601. package/dist/domains/traces.cjs.js +7 -0
  602. package/dist/domains/traces.cjs.js.map +1 -1
  603. package/dist/domains/traces.es.js +2 -2
  604. package/dist/{drawer-BL5shtHH.cjs → drawer-9eoZbmRK.cjs} +5 -5
  605. package/dist/{drawer-BL5shtHH.cjs.map → drawer-9eoZbmRK.cjs.map} +1 -1
  606. package/dist/{drawer-Bv2DRY8E.js → drawer-DnfOugYZ.js} +5 -5
  607. package/dist/{drawer-Bv2DRY8E.js.map → drawer-DnfOugYZ.js.map} +1 -1
  608. package/dist/{dropdown-menu-DL0MzjEb.js → dropdown-menu-DpEn6HwK.js} +2 -7
  609. package/dist/dropdown-menu-DpEn6HwK.js.map +1 -0
  610. package/dist/{dropdown-menu-DNRCA4Gj.cjs → dropdown-menu-j2y37TL5.cjs} +2 -7
  611. package/dist/dropdown-menu-j2y37TL5.cjs.map +1 -0
  612. package/dist/ee/signals/components/entity-index-compact-grid.cjs.js +4 -4
  613. package/dist/ee/signals/components/entity-index-compact-grid.cjs.js.map +1 -1
  614. package/dist/ee/signals/components/entity-index-compact-grid.es.js +4 -4
  615. package/dist/ee/signals/components/entity-index-compact-grid.es.js.map +1 -1
  616. package/dist/ee/signals/components/entity-index-list.cjs.js +3 -1
  617. package/dist/ee/signals/components/entity-index-list.cjs.js.map +1 -1
  618. package/dist/ee/signals/components/entity-index-list.es.js +3 -1
  619. package/dist/ee/signals/components/entity-index-list.es.js.map +1 -1
  620. package/dist/ee/signals/components/signals-empty-state.cjs.js +34 -34
  621. package/dist/ee/signals/components/signals-empty-state.cjs.js.map +1 -1
  622. package/dist/ee/signals/components/signals-empty-state.es.js +34 -34
  623. package/dist/ee/signals/components/signals-empty-state.es.js.map +1 -1
  624. package/dist/ee/signals/components/trace-intelligence-entity-detail.cjs.js +5 -7
  625. package/dist/ee/signals/components/trace-intelligence-entity-detail.cjs.js.map +1 -1
  626. package/dist/ee/signals/components/trace-intelligence-entity-detail.es.js +5 -7
  627. package/dist/ee/signals/components/trace-intelligence-entity-detail.es.js.map +1 -1
  628. package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js +15 -17
  629. package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js.map +1 -1
  630. package/dist/ee/signals/components/trace-intelligence-entity-index.es.js +16 -18
  631. package/dist/ee/signals/components/trace-intelligence-entity-index.es.js.map +1 -1
  632. package/dist/ee/signals/examples-pager.cjs.js +2 -2
  633. package/dist/ee/signals/examples-pager.cjs.js.map +1 -1
  634. package/dist/ee/signals/examples-pager.es.js +2 -2
  635. package/dist/ee/signals/examples-pager.es.js.map +1 -1
  636. package/dist/ee/signals/flow-card.cjs.js +6 -6
  637. package/dist/ee/signals/flow-card.cjs.js.map +1 -1
  638. package/dist/ee/signals/flow-card.es.js +6 -6
  639. package/dist/ee/signals/flow-card.es.js.map +1 -1
  640. package/dist/ee/signals/lifeline-row.cjs.js +4 -4
  641. package/dist/ee/signals/lifeline-row.cjs.js.map +1 -1
  642. package/dist/ee/signals/lifeline-row.es.js +4 -4
  643. package/dist/ee/signals/lifeline-row.es.js.map +1 -1
  644. package/dist/ee/signals/noise-detail-panel.cjs.js +12 -12
  645. package/dist/ee/signals/noise-detail-panel.cjs.js.map +1 -1
  646. package/dist/ee/signals/noise-detail-panel.es.js +12 -12
  647. package/dist/ee/signals/noise-detail-panel.es.js.map +1 -1
  648. package/dist/ee/signals/sankey-signals.cjs.js +6 -6
  649. package/dist/ee/signals/sankey-signals.cjs.js.map +1 -1
  650. package/dist/ee/signals/sankey-signals.es.js +6 -6
  651. package/dist/ee/signals/sankey-signals.es.js.map +1 -1
  652. package/dist/ee/signals/settings/signal-definition-form-dialog.cjs.js +13 -14
  653. package/dist/ee/signals/settings/signal-definition-form-dialog.cjs.js.map +1 -1
  654. package/dist/ee/signals/settings/signal-definition-form-dialog.es.js +6 -7
  655. package/dist/ee/signals/settings/signal-definition-form-dialog.es.js.map +1 -1
  656. package/dist/ee/signals/settings/trace-signal-settings.cjs.js +9 -9
  657. package/dist/ee/signals/settings/trace-signal-settings.cjs.js.map +1 -1
  658. package/dist/ee/signals/settings/trace-signal-settings.es.js +9 -9
  659. package/dist/ee/signals/settings/trace-signal-settings.es.js.map +1 -1
  660. package/dist/ee/signals/signal-delta-column.cjs.js +7 -7
  661. package/dist/ee/signals/signal-delta-column.cjs.js.map +1 -1
  662. package/dist/ee/signals/signal-delta-column.es.js +7 -7
  663. package/dist/ee/signals/signal-delta-column.es.js.map +1 -1
  664. package/dist/ee/signals/signal-lifelines.cjs.js +2 -2
  665. package/dist/ee/signals/signal-lifelines.cjs.js.map +1 -1
  666. package/dist/ee/signals/signal-lifelines.es.js +2 -2
  667. package/dist/ee/signals/signal-lifelines.es.js.map +1 -1
  668. package/dist/ee/signals/signals-error-state.cjs.js +3 -3
  669. package/dist/ee/signals/signals-error-state.cjs.js.map +1 -1
  670. package/dist/ee/signals/signals-error-state.es.js +3 -3
  671. package/dist/ee/signals/signals-error-state.es.js.map +1 -1
  672. package/dist/ee/signals/signals-loading-skeleton.cjs.js +1 -1
  673. package/dist/ee/signals/signals-loading-skeleton.cjs.js.map +1 -1
  674. package/dist/ee/signals/signals-loading-skeleton.es.js +1 -1
  675. package/dist/ee/signals/signals-loading-skeleton.es.js.map +1 -1
  676. package/dist/ee/signals/snapshot-timeline.cjs.js +5 -5
  677. package/dist/ee/signals/snapshot-timeline.cjs.js.map +1 -1
  678. package/dist/ee/signals/snapshot-timeline.es.js +5 -5
  679. package/dist/ee/signals/snapshot-timeline.es.js.map +1 -1
  680. package/dist/ee/signals/sortable-signal-headers.cjs.js +1 -1
  681. package/dist/ee/signals/sortable-signal-headers.cjs.js.map +1 -1
  682. package/dist/ee/signals/sortable-signal-headers.es.js +1 -1
  683. package/dist/ee/signals/sortable-signal-headers.es.js.map +1 -1
  684. package/dist/ee/signals/theme-compare-sparkline.cjs.js +1 -1
  685. package/dist/ee/signals/theme-compare-sparkline.cjs.js.map +1 -1
  686. package/dist/ee/signals/theme-compare-sparkline.es.js +1 -1
  687. package/dist/ee/signals/theme-compare-sparkline.es.js.map +1 -1
  688. package/dist/ee/signals/theme-compare.cjs.js +5 -5
  689. package/dist/ee/signals/theme-compare.cjs.js.map +1 -1
  690. package/dist/ee/signals/theme-compare.es.js +5 -5
  691. package/dist/ee/signals/theme-compare.es.js.map +1 -1
  692. package/dist/ee/signals/theme-detail-panel.cjs.js +18 -18
  693. package/dist/ee/signals/theme-detail-panel.cjs.js.map +1 -1
  694. package/dist/ee/signals/theme-detail-panel.es.js +18 -18
  695. package/dist/ee/signals/theme-detail-panel.es.js.map +1 -1
  696. package/dist/ee/signals/theme-filter-banner.cjs.js +2 -2
  697. package/dist/ee/signals/theme-filter-banner.cjs.js.map +1 -1
  698. package/dist/ee/signals/theme-filter-banner.es.js +2 -2
  699. package/dist/ee/signals/theme-filter-banner.es.js.map +1 -1
  700. package/dist/ee/signals/theme-lifelines.cjs.js +1 -1
  701. package/dist/ee/signals/theme-lifelines.cjs.js.map +1 -1
  702. package/dist/ee/signals/theme-lifelines.es.js +1 -1
  703. package/dist/ee/signals/theme-lifelines.es.js.map +1 -1
  704. package/dist/ee/signals/theme-trend-chart.cjs.js +1 -1
  705. package/dist/ee/signals/theme-trend-chart.cjs.js.map +1 -1
  706. package/dist/ee/signals/theme-trend-chart.es.js +1 -1
  707. package/dist/ee/signals/theme-trend-chart.es.js.map +1 -1
  708. package/dist/ee/signals/trace-insight-view.cjs.js +12 -12
  709. package/dist/ee/signals/trace-insight-view.cjs.js.map +1 -1
  710. package/dist/ee/signals/trace-insight-view.es.js +12 -12
  711. package/dist/ee/signals/trace-insight-view.es.js.map +1 -1
  712. package/dist/ee/signals/trace-intelligence-explainer.cjs.js +2 -2
  713. package/dist/ee/signals/trace-intelligence-explainer.cjs.js.map +1 -1
  714. package/dist/ee/signals/trace-intelligence-explainer.es.js +2 -2
  715. package/dist/ee/signals/trace-intelligence-explainer.es.js.map +1 -1
  716. package/dist/ee/signals/view-mode-tab.cjs.js +1 -1
  717. package/dist/ee/signals/view-mode-tab.es.js +1 -1
  718. package/dist/ee/topics/components/topic-trace-summary-list.cjs.js +3 -3
  719. package/dist/ee/topics/components/topic-trace-summary-list.es.js +3 -3
  720. package/dist/ee/topics/components/topics-layout.cjs.js +3 -3
  721. package/dist/ee/topics/components/topics-layout.cjs.js.map +1 -1
  722. package/dist/ee/topics/components/topics-layout.es.js +3 -3
  723. package/dist/ee/topics/components/topics-layout.es.js.map +1 -1
  724. package/dist/{field-block-Dy1IaWbv.cjs → field-error-id-6EfqmQ4C.cjs} +5 -2
  725. package/dist/field-error-id-6EfqmQ4C.cjs.map +1 -0
  726. package/dist/{field-block-DWkbNcsV.js → field-error-id-DyWx33Fu.js} +5 -3
  727. package/dist/field-error-id-DyWx33Fu.js.map +1 -0
  728. package/dist/{filter-bar-chip-BxI0NgEz.cjs → filter-bar-chip-D8O9jpCW.cjs} +300 -69
  729. package/dist/filter-bar-chip-D8O9jpCW.cjs.map +1 -0
  730. package/dist/{filter-bar-chip-C-JxWUU8.js → filter-bar-chip-DMhUPTt8.js} +297 -71
  731. package/dist/filter-bar-chip-DMhUPTt8.js.map +1 -0
  732. package/dist/filter-bar-chip.css +33 -1
  733. package/dist/hooks/use-fluid-hover.cjs.js +15 -9
  734. package/dist/hooks/use-fluid-hover.cjs.js.map +1 -1
  735. package/dist/hooks/use-fluid-hover.es.js +15 -9
  736. package/dist/hooks/use-fluid-hover.es.js.map +1 -1
  737. package/dist/{horizontal-bars-nyWGmQ7g.cjs → horizontal-bars-BkVi2dEb.cjs} +7 -7
  738. package/dist/{horizontal-bars-nyWGmQ7g.cjs.map → horizontal-bars-BkVi2dEb.cjs.map} +1 -1
  739. package/dist/{horizontal-bars-CksEKcCE.js → horizontal-bars-nTOFylzc.js} +7 -7
  740. package/dist/{horizontal-bars-CksEKcCE.js.map → horizontal-bars-nTOFylzc.js.map} +1 -1
  741. package/dist/{hover-card-Ch5smNcf.js → hover-card-B1-n3amu.js} +3 -3
  742. package/dist/{hover-card-Ch5smNcf.js.map → hover-card-B1-n3amu.js.map} +1 -1
  743. package/dist/{hover-card-DdHnkGcs.cjs → hover-card-DVfZ2INZ.cjs} +3 -3
  744. package/dist/{hover-card-DdHnkGcs.cjs.map → hover-card-DVfZ2INZ.cjs.map} +1 -1
  745. package/dist/icons/Icon.cjs.js +1 -1
  746. package/dist/icons/Icon.cjs.js.map +1 -1
  747. package/dist/icons/Icon.es.js +1 -1
  748. package/dist/icons/Icon.es.js.map +1 -1
  749. package/dist/{input-group-CvWwK1Vz.cjs → input-group-2yWKRuq9.cjs} +7 -5
  750. package/dist/input-group-2yWKRuq9.cjs.map +1 -0
  751. package/dist/{input-group-BEdHivvy.js → input-group-Czviwtvr.js} +8 -6
  752. package/dist/input-group-Czviwtvr.js.map +1 -0
  753. package/dist/{kbd-CINtikLh.js → kbd-BDVTQHD_.js} +2 -2
  754. package/dist/{kbd-CINtikLh.js.map → kbd-BDVTQHD_.js.map} +1 -1
  755. package/dist/{kbd-B-Z2sNvK.cjs → kbd-BptPsKP6.cjs} +2 -2
  756. package/dist/{kbd-B-Z2sNvK.cjs.map → kbd-BptPsKP6.cjs.map} +1 -1
  757. package/dist/layout/tabbed-container.cjs.js +6 -6
  758. package/dist/layout/tabbed-container.es.js +6 -6
  759. package/dist/{list-search-BTW0Neuc.js → list-search-Jm6SLN0g.js} +2 -2
  760. package/dist/{list-search-BTW0Neuc.js.map → list-search-Jm6SLN0g.js.map} +1 -1
  761. package/dist/{list-search-vyxsZMAK.cjs → list-search-s3DRIfz6.cjs} +2 -2
  762. package/dist/{list-search-vyxsZMAK.cjs.map → list-search-s3DRIfz6.cjs.map} +1 -1
  763. package/dist/{logs-data-list-BSHJPGi6.cjs → logs-data-list-C5tjRtkQ.cjs} +5 -5
  764. package/dist/{logs-data-list-BSHJPGi6.cjs.map → logs-data-list-C5tjRtkQ.cjs.map} +1 -1
  765. package/dist/{logs-data-list-CG-UgC_x.js → logs-data-list-Cl3abARp.js} +5 -5
  766. package/dist/{logs-data-list-CG-UgC_x.js.map → logs-data-list-Cl3abARp.js.map} +1 -1
  767. package/dist/{main-sidebar-link-active-DbCvKZy2.cjs → main-sidebar-BsEmFpKN.cjs} +122 -9
  768. package/dist/main-sidebar-BsEmFpKN.cjs.map +1 -0
  769. package/dist/{main-sidebar-link-active-CmDoiX6g.js → main-sidebar-C5PU7zgc.js} +123 -11
  770. package/dist/main-sidebar-C5PU7zgc.js.map +1 -0
  771. package/dist/{markdown-renderer-D8qYAU7K.cjs → markdown-renderer-C74wABzc.cjs} +6 -7
  772. package/dist/markdown-renderer-C74wABzc.cjs.map +1 -0
  773. package/dist/{markdown-renderer-B0gTm_Ea.js → markdown-renderer-DZAcPOxC.js} +6 -7
  774. package/dist/markdown-renderer-DZAcPOxC.js.map +1 -0
  775. package/dist/{message-BrwbcLPi.js → message-Cs8NW-MR.js} +2 -2
  776. package/dist/{message-BrwbcLPi.js.map → message-Cs8NW-MR.js.map} +1 -1
  777. package/dist/{message-CszposMZ.cjs → message-D9b33Pf_.cjs} +2 -2
  778. package/dist/{message-CszposMZ.cjs.map → message-D9b33Pf_.cjs.map} +1 -1
  779. package/dist/{metrics-card-BUJxiwec.cjs → metrics-card-BdWGPlnt.cjs} +8 -8
  780. package/dist/metrics-card-BdWGPlnt.cjs.map +1 -0
  781. package/dist/{metrics-card-BlBt1WHw.js → metrics-card-C5znWn69.js} +8 -8
  782. package/dist/metrics-card-C5znWn69.js.map +1 -0
  783. package/dist/{metrics-kpi-card-CBSNmtc5.js → metrics-kpi-card-CinKYTBn.js} +4 -4
  784. package/dist/{metrics-kpi-card-CBSNmtc5.js.map → metrics-kpi-card-CinKYTBn.js.map} +1 -1
  785. package/dist/{metrics-kpi-card-CgqmNcEC.cjs → metrics-kpi-card-HU17WRTT.cjs} +4 -4
  786. package/dist/{metrics-kpi-card-CgqmNcEC.cjs.map → metrics-kpi-card-HU17WRTT.cjs.map} +1 -1
  787. package/dist/{metrics-line-chart-B_sP3eiL.cjs → metrics-line-chart-0FR3SYSt.cjs} +3 -3
  788. package/dist/{metrics-line-chart-B_sP3eiL.cjs.map → metrics-line-chart-0FR3SYSt.cjs.map} +1 -1
  789. package/dist/{metrics-line-chart-DHyrDPkJ.js → metrics-line-chart-knlgw8bV.js} +3 -3
  790. package/dist/{metrics-line-chart-DHyrDPkJ.js.map → metrics-line-chart-knlgw8bV.js.map} +1 -1
  791. package/dist/new/layout/app-shell.cjs.js +23 -28
  792. package/dist/new/layout/app-shell.cjs.js.map +1 -1
  793. package/dist/new/layout/app-shell.es.js +23 -28
  794. package/dist/new/layout/app-shell.es.js.map +1 -1
  795. package/dist/new/layout/page-header.cjs.js +1 -1
  796. package/dist/new/layout/page-header.es.js +1 -1
  797. package/dist/new/settings.cjs.js +1 -1
  798. package/dist/new/settings.es.js +1 -1
  799. package/dist/new/sidebar.cjs.js +40 -40
  800. package/dist/new/sidebar.cjs.js.map +1 -1
  801. package/dist/new/sidebar.es.js +10 -10
  802. package/dist/new/sidebar.es.js.map +1 -1
  803. package/dist/{page-header-BIoUf7MA.js → page-header-CSigVThQ.js} +2 -2
  804. package/dist/{page-header-BIoUf7MA.js.map → page-header-CSigVThQ.js.map} +1 -1
  805. package/dist/{page-header-BBlPmW-T.cjs → page-header-DzEEkOca.cjs} +2 -2
  806. package/dist/{page-header-BBlPmW-T.cjs.map → page-header-DzEEkOca.cjs.map} +1 -1
  807. package/dist/primitives/control-size.cjs.js +24 -2
  808. package/dist/primitives/control-size.cjs.js.map +1 -1
  809. package/dist/primitives/control-size.es.js +5 -3
  810. package/dist/primitives/control-size.es.js.map +1 -1
  811. package/dist/primitives/fluid-menu.cjs.js +30 -18
  812. package/dist/primitives/fluid-menu.cjs.js.map +1 -1
  813. package/dist/primitives/fluid-menu.es.js +30 -18
  814. package/dist/primitives/fluid-menu.es.js.map +1 -1
  815. package/dist/primitives/form-element.cjs.js +4 -4
  816. package/dist/primitives/form-element.cjs.js.map +1 -1
  817. package/dist/primitives/form-element.es.js +4 -3
  818. package/dist/primitives/form-element.es.js.map +1 -1
  819. package/dist/primitives/menu-item.cjs.js +7 -4
  820. package/dist/primitives/menu-item.cjs.js.map +1 -1
  821. package/dist/primitives/menu-item.es.js +7 -4
  822. package/dist/primitives/menu-item.es.js.map +1 -1
  823. package/dist/primitives/trigger-button.cjs.js +1 -1
  824. package/dist/primitives/trigger-button.es.js +1 -1
  825. package/dist/{property-filter-applied-BBiUbtr0.js → property-filter-applied-C15IJHLs.js} +30 -36
  826. package/dist/property-filter-applied-C15IJHLs.js.map +1 -0
  827. package/dist/{property-filter-applied-BmxCPe2d.cjs → property-filter-applied-DtSjGypB.cjs} +30 -36
  828. package/dist/property-filter-applied-DtSjGypB.cjs.map +1 -0
  829. package/dist/radio-group-BdEPWGzi.cjs +62 -0
  830. package/dist/radio-group-BdEPWGzi.cjs.map +1 -0
  831. package/dist/radio-group-CFZXUXZ5.js +40 -0
  832. package/dist/radio-group-CFZXUXZ5.js.map +1 -0
  833. package/dist/resize/collapsible-panel.cjs.js +1 -1
  834. package/dist/resize/collapsible-panel.es.js +1 -1
  835. package/dist/resize/panel-drawer.cjs.js +1 -1
  836. package/dist/resize/panel-drawer.es.js +1 -1
  837. package/dist/{sankey-chart-Bcm9jMhe.cjs → sankey-chart-C1e0nRc3.cjs} +4 -4
  838. package/dist/{sankey-chart-Bcm9jMhe.cjs.map → sankey-chart-C1e0nRc3.cjs.map} +1 -1
  839. package/dist/{sankey-chart-CqngN2lw.js → sankey-chart-jvMXKzud.js} +4 -4
  840. package/dist/{sankey-chart-CqngN2lw.js.map → sankey-chart-jvMXKzud.js.map} +1 -1
  841. package/dist/{scroll-area-Qjf7e0Ik.cjs → scroll-area-BzOyuS8Y.cjs} +2 -2
  842. package/dist/{scroll-area-Qjf7e0Ik.cjs.map → scroll-area-BzOyuS8Y.cjs.map} +1 -1
  843. package/dist/{scroll-area-CdQ_5bLm.js → scroll-area-DyTZoISq.js} +2 -2
  844. package/dist/{scroll-area-CdQ_5bLm.js.map → scroll-area-DyTZoISq.js.map} +1 -1
  845. package/dist/{search-field-block-D0PUUCAE.cjs → search-field-block-ChXCuPrB.cjs} +9 -10
  846. package/dist/{search-field-block-D0PUUCAE.cjs.map → search-field-block-ChXCuPrB.cjs.map} +1 -1
  847. package/dist/{search-field-block-B5vUVTpl.js → search-field-block-nVeIkFXN.js} +3 -4
  848. package/dist/{search-field-block-B5vUVTpl.js.map → search-field-block-nVeIkFXN.js.map} +1 -1
  849. package/dist/{select--DXpTg0O.js → select-CDIt5aab.js} +3 -6
  850. package/dist/select-CDIt5aab.js.map +1 -0
  851. package/dist/{select-7ACAVdGX.cjs → select-CH5XO18L.cjs} +3 -6
  852. package/dist/select-CH5XO18L.cjs.map +1 -0
  853. package/dist/{select-field-block-Bu7UXI2H.js → select-field-block-BtjE0P5d.js} +3 -4
  854. package/dist/{select-field-block-Bu7UXI2H.js.map → select-field-block-BtjE0P5d.js.map} +1 -1
  855. package/dist/{select-field-block-W2u2WmN3.cjs → select-field-block-CpzMTsP6.cjs} +9 -10
  856. package/dist/{select-field-block-W2u2WmN3.cjs.map → select-field-block-CpzMTsP6.cjs.map} +1 -1
  857. package/dist/{settings-layout-NP_1dC-e.cjs → settings-layout-BGvMSClL.cjs} +2 -2
  858. package/dist/{settings-layout-NP_1dC-e.cjs.map → settings-layout-BGvMSClL.cjs.map} +1 -1
  859. package/dist/{settings-layout-C80s-D31.js → settings-layout-DA-JWqW3.js} +2 -2
  860. package/dist/{settings-layout-C80s-D31.js.map → settings-layout-DA-JWqW3.js.map} +1 -1
  861. package/dist/{span-payload-primitives-DnRsP93D.cjs → span-payload-primitives-70wznWZl.cjs} +6 -6
  862. package/dist/{span-payload-primitives-DnRsP93D.cjs.map → span-payload-primitives-70wznWZl.cjs.map} +1 -1
  863. package/dist/{span-payload-primitives-sbxk4CHC.js → span-payload-primitives-BvoMauDb.js} +6 -6
  864. package/dist/{span-payload-primitives-sbxk4CHC.js.map → span-payload-primitives-BvoMauDb.js.map} +1 -1
  865. package/dist/{spinner-CqP-NaB2.cjs → spinner-BCpN7LL9.cjs} +9 -3
  866. package/dist/spinner-BCpN7LL9.cjs.map +1 -0
  867. package/dist/{spinner-D2C2DYw8.js → spinner-ylbE0TJA.js} +9 -3
  868. package/dist/spinner-ylbE0TJA.js.map +1 -0
  869. package/dist/src/components/fluid-hover-highlight.d.ts +4 -58
  870. package/dist/src/domains/traces/components/traces-error-content.d.ts +2 -2
  871. package/dist/src/domains/traces/hooks/use-trace-url-state.d.ts +5 -3
  872. package/dist/src/domains/traces/trace-filters.d.ts +19 -4
  873. package/dist/src/domains/traces/trace-query-filters.d.ts +13 -1
  874. package/dist/src/ds/components/ActionRow/action-row.d.ts +9 -0
  875. package/dist/src/ds/components/ActionRow/action-row.stories.d.ts +8 -0
  876. package/dist/src/ds/components/ActionRow/index.d.ts +5 -0
  877. package/dist/src/ds/components/Badge/badge.stories.d.ts +0 -1
  878. package/dist/src/ds/components/ButtonsGroup/buttons-group.d.ts +11 -11
  879. package/dist/src/ds/components/ButtonsGroup/buttons-group.stories.d.ts +17 -7
  880. package/dist/src/ds/components/EmptyState/EmptyState.d.ts +8 -2
  881. package/dist/src/ds/components/EmptyState/empty-state.stories.d.ts +1 -0
  882. package/dist/src/ds/components/ErrorState/ErrorState.d.ts +3 -1
  883. package/dist/src/ds/components/ErrorState/error-state.stories.d.ts +1 -0
  884. package/dist/src/ds/components/FilterBar/filter-bar-advanced-chip.d.ts +10 -0
  885. package/dist/src/ds/components/FilterBar/filter-bar-context.d.ts +46 -9
  886. package/dist/src/ds/components/FilterBar/filter-bar-group-editor.d.ts +25 -0
  887. package/dist/src/ds/components/FilterBar/filter-bar-input.d.ts +8 -1
  888. package/dist/src/ds/components/FilterBar/filter-bar-option-list.d.ts +5 -0
  889. package/dist/src/ds/components/FilterBar/filter-bar-tree.d.ts +36 -0
  890. package/dist/src/ds/components/FilterBar/filter-bar.d.ts +28 -7
  891. package/dist/src/ds/components/FilterBar/filter-bar.stories.d.ts +3 -0
  892. package/dist/src/ds/components/FilterBar/index.d.ts +6 -1
  893. package/dist/src/ds/components/FilterBar/types.d.ts +36 -0
  894. package/dist/src/ds/components/FilterBar/use-settle-on-leave.d.ts +2 -0
  895. package/dist/src/ds/components/PageLayout/index.d.ts +1 -2
  896. package/dist/src/ds/components/PageLayout/page-layout.d.ts +13 -11
  897. package/dist/src/ds/components/PageLayout/page-layout.stories.d.ts +1 -2
  898. package/dist/src/ds/components/PermissionDenied/PermissionDenied.d.ts +3 -1
  899. package/dist/src/ds/components/PermissionDenied/permission-denied.stories.d.ts +1 -0
  900. package/dist/src/ds/components/SessionExpired/SessionExpired.d.ts +3 -1
  901. package/dist/src/ds/components/SessionExpired/session-expired.stories.d.ts +1 -0
  902. package/dist/src/ds/components/Spinner/spinner.d.ts +6 -3
  903. package/dist/src/ds/components/Spinner/spinner.stories.d.ts +1 -0
  904. package/dist/src/ds/components/ai/ask-user/ask-user.d.ts +13 -8
  905. package/dist/src/ds/new/layout/app-shell/app-shell.d.ts +2 -8
  906. package/dist/src/ds/new/layout/app-shell/app-shell.stories.d.ts +0 -1
  907. package/dist/src/ds/primitives/control-size.d.ts +3 -1
  908. package/dist/src/ds/primitives/fluid-menu.d.ts +8 -3
  909. package/dist/src/ds/primitives/form-element.d.ts +1 -2
  910. package/dist/src/hooks/use-fluid-hover.d.ts +7 -2
  911. package/dist/style.css +83 -120
  912. package/dist/{tabs-content-CKC4kIpH.js → tabs-content-BeFlc4E_.js} +2 -2
  913. package/dist/{tabs-content-CKC4kIpH.js.map → tabs-content-BeFlc4E_.js.map} +1 -1
  914. package/dist/{tabs-content-Bz6CZuv9.cjs → tabs-content-Cdu6HP8U.cjs} +2 -2
  915. package/dist/{tabs-content-Bz6CZuv9.cjs.map → tabs-content-Cdu6HP8U.cjs.map} +1 -1
  916. package/dist/{tabs-root-C5ABfm1F.cjs → tabs-root-BiV8irc3.cjs} +4 -4
  917. package/dist/{tabs-root-C5ABfm1F.cjs.map → tabs-root-BiV8irc3.cjs.map} +1 -1
  918. package/dist/{tabs-root-CcEQrwTM.js → tabs-root-CJ3GkDzi.js} +4 -4
  919. package/dist/{tabs-root-CcEQrwTM.js.map → tabs-root-CJ3GkDzi.js.map} +1 -1
  920. package/dist/{tabs-tab-BycF4dvx.js → tabs-tab-CoSCf5Ku.js} +2 -2
  921. package/dist/{tabs-tab-BycF4dvx.js.map → tabs-tab-CoSCf5Ku.js.map} +1 -1
  922. package/dist/{tabs-tab-DA466DbX.cjs → tabs-tab-J91Szy3Q.cjs} +2 -2
  923. package/dist/{tabs-tab-DA466DbX.cjs.map → tabs-tab-J91Szy3Q.cjs.map} +1 -1
  924. package/dist/{text-field-block-BLpLWmu8.cjs → text-field-block-BmWGMw3a.cjs} +8 -9
  925. package/dist/{text-field-block-BLpLWmu8.cjs.map → text-field-block-BmWGMw3a.cjs.map} +1 -1
  926. package/dist/{text-field-block--EUJKlY_.js → text-field-block-Cihf0IRw.js} +2 -3
  927. package/dist/{text-field-block--EUJKlY_.js.map → text-field-block-Cihf0IRw.js.map} +1 -1
  928. package/dist/{thread-rail-b-8RHNX_.cjs → thread-rail-BVpfkSyT.cjs} +6 -6
  929. package/dist/{thread-rail-b-8RHNX_.cjs.map → thread-rail-BVpfkSyT.cjs.map} +1 -1
  930. package/dist/{thread-rail-vsR5C0j4.js → thread-rail-DV89nFnn.js} +6 -6
  931. package/dist/{thread-rail-vsR5C0j4.js.map → thread-rail-DV89nFnn.js.map} +1 -1
  932. package/dist/{time-picker-Dlm-C-n4.cjs → time-picker-DXuXFGa-.cjs} +2 -2
  933. package/dist/{time-picker-Dlm-C-n4.cjs.map → time-picker-DXuXFGa-.cjs.map} +1 -1
  934. package/dist/{time-picker-DVt1ZUsS.js → time-picker-vFozGRyK.js} +2 -2
  935. package/dist/{time-picker-DVt1ZUsS.js.map → time-picker-vFozGRyK.js.map} +1 -1
  936. package/dist/{tool-approval-DB82iiRa.js → tool-approval-C11ECt4s.js} +5 -5
  937. package/dist/{tool-approval-DB82iiRa.js.map → tool-approval-C11ECt4s.js.map} +1 -1
  938. package/dist/{tool-approval-Dys524ty.cjs → tool-approval-DODxfqk7.cjs} +5 -5
  939. package/dist/{tool-approval-Dys524ty.cjs.map → tool-approval-DODxfqk7.cjs.map} +1 -1
  940. package/dist/{tool-call-K147tCug.js → tool-call-BjAGFbH-.js} +5 -5
  941. package/dist/{tool-call-K147tCug.js.map → tool-call-BjAGFbH-.js.map} +1 -1
  942. package/dist/{tool-call-CMRvRE-v.cjs → tool-call-CNBGnCmO.cjs} +5 -5
  943. package/dist/{tool-call-CMRvRE-v.cjs.map → tool-call-CNBGnCmO.cjs.map} +1 -1
  944. package/dist/{traces-data-list-CDNE9P8W.js → traces-data-list-BhKK8-wa.js} +7 -7
  945. package/dist/{traces-data-list-CDNE9P8W.js.map → traces-data-list-BhKK8-wa.js.map} +1 -1
  946. package/dist/{traces-data-list-B3q_cy6c.cjs → traces-data-list-D58cw23x.cjs} +7 -7
  947. package/dist/{traces-data-list-B3q_cy6c.cjs.map → traces-data-list-D58cw23x.cjs.map} +1 -1
  948. package/dist/types-CIPrYAzY.js +9 -0
  949. package/dist/types-CIPrYAzY.js.map +1 -0
  950. package/dist/types-Ns4ZNp-g.cjs +12 -0
  951. package/dist/types-Ns4ZNp-g.cjs.map +1 -0
  952. package/package.json +6 -7
  953. package/theme/surfaces.css +2 -2
  954. package/dist/Button-CVewl8nT.cjs.map +0 -1
  955. package/dist/Button-cWcBEd-G.js.map +0 -1
  956. package/dist/EmptyState-CdRjFB06.cjs.map +0 -1
  957. package/dist/EmptyState-UWXhBp5U.js.map +0 -1
  958. package/dist/ErrorState-B3uTRAEd.cjs +0 -16
  959. package/dist/ErrorState-B3uTRAEd.cjs.map +0 -1
  960. package/dist/ErrorState-DqRx8Dw_.js +0 -14
  961. package/dist/ErrorState-DqRx8Dw_.js.map +0 -1
  962. package/dist/PermissionDenied-B6TSGolC.js.map +0 -1
  963. package/dist/PermissionDenied-Dz5qXpQj.cjs.map +0 -1
  964. package/dist/SessionExpired-Bq5LcsDu.js.map +0 -1
  965. package/dist/SessionExpired-CF0BGNo_.cjs.map +0 -1
  966. package/dist/ask-user-CS2e6Re4.cjs +0 -147
  967. package/dist/ask-user-CS2e6Re4.cjs.map +0 -1
  968. package/dist/ask-user-gS3Y1bCc.js +0 -138
  969. package/dist/ask-user-gS3Y1bCc.js.map +0 -1
  970. package/dist/buttons-group-BiLEV_Ak.cjs +0 -101
  971. package/dist/buttons-group-BiLEV_Ak.cjs.map +0 -1
  972. package/dist/buttons-group-CaA7KAWf.js +0 -78
  973. package/dist/buttons-group-CaA7KAWf.js.map +0 -1
  974. package/dist/combobox-BWM3VH-n.cjs.map +0 -1
  975. package/dist/combobox-D7xJFZuO.js.map +0 -1
  976. package/dist/combobox-styles-CRebmeht.js.map +0 -1
  977. package/dist/combobox-styles-DYlNNjKC.cjs.map +0 -1
  978. package/dist/components/MainContent.cjs.js +0 -81
  979. package/dist/components/MainContent.cjs.js.map +0 -1
  980. package/dist/components/MainContent.d.ts +0 -2
  981. package/dist/components/MainContent.es.js +0 -75
  982. package/dist/components/MainContent.es.js.map +0 -1
  983. package/dist/data-code-section-DKz9Okaz.js.map +0 -1
  984. package/dist/data-code-section-qujvEc6j.cjs.map +0 -1
  985. package/dist/dropdown-menu-DL0MzjEb.js.map +0 -1
  986. package/dist/dropdown-menu-DNRCA4Gj.cjs.map +0 -1
  987. package/dist/field-block-DWkbNcsV.js.map +0 -1
  988. package/dist/field-block-Dy1IaWbv.cjs.map +0 -1
  989. package/dist/field-error-id-B3Z2Zu5y.cjs +0 -6
  990. package/dist/field-error-id-B3Z2Zu5y.cjs.map +0 -1
  991. package/dist/field-error-id-D3yg1nBh.js +0 -4
  992. package/dist/field-error-id-D3yg1nBh.js.map +0 -1
  993. package/dist/filter-bar-chip-BxI0NgEz.cjs.map +0 -1
  994. package/dist/filter-bar-chip-C-JxWUU8.js.map +0 -1
  995. package/dist/input-group-BEdHivvy.js.map +0 -1
  996. package/dist/input-group-CvWwK1Vz.cjs.map +0 -1
  997. package/dist/lib/springs.cjs.js +0 -32
  998. package/dist/lib/springs.cjs.js.map +0 -1
  999. package/dist/lib/springs.d.ts +0 -2
  1000. package/dist/lib/springs.es.js +0 -27
  1001. package/dist/lib/springs.es.js.map +0 -1
  1002. package/dist/main-sidebar-link-active-CmDoiX6g.js.map +0 -1
  1003. package/dist/main-sidebar-link-active-DbCvKZy2.cjs.map +0 -1
  1004. package/dist/markdown-renderer-B0gTm_Ea.js.map +0 -1
  1005. package/dist/markdown-renderer-D8qYAU7K.cjs.map +0 -1
  1006. package/dist/metrics-card-BUJxiwec.cjs.map +0 -1
  1007. package/dist/metrics-card-BlBt1WHw.js.map +0 -1
  1008. package/dist/new/layout/page-shell.cjs.js +0 -34
  1009. package/dist/new/layout/page-shell.cjs.js.map +0 -1
  1010. package/dist/new/layout/page-shell.d.ts +0 -2
  1011. package/dist/new/layout/page-shell.es.js +0 -30
  1012. package/dist/new/layout/page-shell.es.js.map +0 -1
  1013. package/dist/no-data-page-layout-DcVPjj-J.js +0 -9
  1014. package/dist/no-data-page-layout-DcVPjj-J.js.map +0 -1
  1015. package/dist/no-data-page-layout-Drzbg_w8.cjs +0 -11
  1016. package/dist/no-data-page-layout-Drzbg_w8.cjs.map +0 -1
  1017. package/dist/page-heading-context-D3yjYoJE.js +0 -9
  1018. package/dist/page-heading-context-D3yjYoJE.js.map +0 -1
  1019. package/dist/page-heading-context-Du-CpxAx.cjs +0 -12
  1020. package/dist/page-heading-context-Du-CpxAx.cjs.map +0 -1
  1021. package/dist/page-layout-C9ifD9Q8.cjs +0 -99
  1022. package/dist/page-layout-C9ifD9Q8.cjs.map +0 -1
  1023. package/dist/page-layout-xcM8IR-B.js +0 -97
  1024. package/dist/page-layout-xcM8IR-B.js.map +0 -1
  1025. package/dist/property-filter-applied-BBiUbtr0.js.map +0 -1
  1026. package/dist/property-filter-applied-BmxCPe2d.cjs.map +0 -1
  1027. package/dist/select--DXpTg0O.js.map +0 -1
  1028. package/dist/select-7ACAVdGX.cjs.map +0 -1
  1029. package/dist/spinner-CqP-NaB2.cjs.map +0 -1
  1030. package/dist/spinner-D2C2DYw8.js.map +0 -1
  1031. package/dist/src/ds/components/MainContent/index.d.ts +0 -1
  1032. package/dist/src/ds/components/MainContent/main-content.d.ts +0 -21
  1033. package/dist/src/ds/components/MainContent/main-content.stories.d.ts +0 -10
  1034. package/dist/src/ds/components/PageLayout/no-data-page-layout.d.ts +0 -6
  1035. package/dist/src/ds/components/PageLayout/page-heading-context.d.ts +0 -2
  1036. package/dist/src/ds/components/PageLayout/page-layout-column.d.ts +0 -5
  1037. package/dist/src/ds/components/PageLayout/page-layout-main-area.d.ts +0 -7
  1038. package/dist/src/ds/components/PageLayout/page-layout-root.d.ts +0 -7
  1039. package/dist/src/ds/components/PageLayout/page-layout-row.d.ts +0 -11
  1040. package/dist/src/ds/components/PageLayout/page-layout-top-area.d.ts +0 -5
  1041. package/dist/src/ds/new/layout/page-shell/index.d.ts +0 -1
  1042. package/dist/src/ds/new/layout/page-shell/page-shell.d.ts +0 -24
  1043. package/dist/src/ds/new/layout/page-shell/page-shell.stories.d.ts +0 -63
  1044. package/dist/src/lib/springs.d.ts +0 -31
@@ -1 +1 @@
1
- {"version":3,"file":"span-timeline-row.es.js","sources":["../../../../src/domains/traces/components/span-timeline-row.tsx"],"sourcesContent":["import { ChevronDownIcon, ChevronRightIcon } from 'lucide-react';\nimport { useEffect, useRef } from 'react';\nimport { getSpanTimingLayout } from '../utils/span-timing';\nimport type { SpanRowContext } from './span-rows';\nimport { SpanTimingHoverCard } from './span-timing-hover-card';\nimport { TimelineStructureSign } from './timeline-structure-sign';\nimport { HoverCard, HoverCardTrigger } from '@/ds/components/HoverCard';\nimport { cn } from '@/lib/utils';\n\nexport type SpanTimelineRowProps = {\n ctx: SpanRowContext;\n};\n\nfunction formatDuration(ms: number) {\n return ms < 1000 ? `${Math.round(ms)} ms` : `${(ms / 1000).toFixed(2)} s`;\n}\n\n/**\n * One row of `TraceSpanTimeline`: compact single-line name cell plus a bar on the\n * shared trace time axis. The row spans both grid columns (subgrid) so hover and\n * selection cover the name and the bar together.\n */\nexport function SpanTimelineRow({ ctx }: SpanTimelineRowProps) {\n const {\n span,\n spanUI,\n depth,\n isRootSpan,\n isLastChild,\n isExpanded,\n isSelected,\n isFaded,\n isRevealed,\n overallLatency,\n overallStartTime,\n onSpanClick,\n expansion,\n } = ctx;\n const rowRef = useRef<HTMLDivElement>(null);\n const shouldScrollIntoView = isSelected || isRevealed;\n\n // Nested rows mount late, once expansion opens, so scroll on mount as well as on change.\n useEffect(() => {\n if (!shouldScrollIntoView) return;\n rowRef.current?.scrollIntoView({ block: 'nearest', behavior: 'smooth' });\n }, [shouldScrollIntoView]);\n\n const { startShiftMs, leftPercent, widthPercent } = getSpanTimingLayout(span, overallLatency, overallStartTime);\n const toggleLabel = isExpanded\n ? `Collapse children (${expansion.numOfChildren})`\n : `Expand children (${expansion.numOfChildren})`;\n\n return (\n <div\n ref={rowRef}\n aria-label={`View details for span ${span.name}`}\n aria-selected={isSelected}\n // The whole row selects the span; the name button is the keyboard target and its click bubbles here.\n onClick={() => onSpanClick?.(span.id)}\n className={cn(\n 'col-span-2 grid h-7 cursor-pointer grid-cols-subgrid items-stretch rounded-md opacity-80 hover:bg-fill-subtle',\n {\n 'opacity-40 [&:hover]:opacity-70 dark:opacity-30 dark:[&:hover]:opacity-60': isFaded,\n 'bg-fill-hover': isSelected,\n },\n )}\n >\n <div className=\"flex min-w-0 items-stretch\" style={{ paddingLeft: `${depth}rem` }}>\n {!isRootSpan && <TimelineStructureSign isLastChild={isLastChild} />}\n\n <button\n type=\"button\"\n className={cn(\n 'flex min-w-0 flex-1 cursor-pointer items-center gap-1.5 rounded-md px-2 text-left text-caption text-foreground',\n 'focus:outline-none focus-visible:ring-1 focus-visible:ring-accent1 focus-visible:ring-inset',\n )}\n >\n {spanUI?.color && (\n <span\n aria-hidden\n title={spanUI.label}\n className=\"inline-block size-2 shrink-0 rounded-full\"\n style={{ backgroundColor: spanUI.color }}\n />\n )}\n <span\n data-highlight={span.matchedInPayloadOnly ? undefined : ''}\n data-highlight-indirect={span.matchedInPayloadOnly ? '' : undefined}\n title={span.matchedInPayloadOnly ? 'Matches your search in this span’s details' : undefined}\n className=\"min-w-0 truncate\"\n >\n {span.name}\n </span>\n </button>\n\n {/* Slot is always present so names stay aligned whether or not the span has children. */}\n <div className=\"flex w-7 shrink-0 items-center justify-center\">\n {expansion.hasChildren && (\n <button\n type=\"button\"\n onClick={e => {\n e.stopPropagation();\n expansion.toggleChildren();\n }}\n aria-label={toggleLabel}\n aria-expanded={isExpanded}\n className={cn(\n 'flex size-5 cursor-pointer items-center justify-center rounded-md',\n 'hover:bg-fill [&:hover>svg]:opacity-100 [&>svg]:size-4 [&>svg]:opacity-50',\n 'focus:outline-none focus-visible:ring-1 focus-visible:ring-accent1',\n )}\n >\n {isExpanded ? <ChevronDownIcon /> : <ChevronRightIcon />}\n </button>\n )}\n </div>\n </div>\n\n <HoverCard>\n <HoverCardTrigger\n render={<div />}\n className=\"grid min-w-0 cursor-help grid-cols-[minmax(0,1fr)_auto] items-center gap-2 px-2\"\n >\n <div className=\"bg-fill-subtle relative h-4 w-full rounded-sm\">\n <div\n data-testid=\"span-timeline-bar\"\n className=\"absolute inset-y-0 rounded-sm\"\n style={{\n left: `${leftPercent}%`,\n width: widthPercent ? `${widthPercent}%` : '2px',\n backgroundColor: spanUI?.color,\n }}\n />\n </div>\n <div className=\"text-meta text-muted-foreground w-12 text-right tabular-nums\">\n {formatDuration(span.latency)}\n </div>\n </HoverCardTrigger>\n <SpanTimingHoverCard span={span} startShiftMs={startShiftMs} />\n </HoverCard>\n </div>\n );\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"span-timeline-row.es.js","sources":["../../../../src/domains/traces/components/span-timeline-row.tsx"],"sourcesContent":["import { ChevronDownIcon, ChevronRightIcon } from 'lucide-react';\nimport { useEffect, useRef } from 'react';\nimport { getSpanTimingLayout } from '../utils/span-timing';\nimport type { SpanRowContext } from './span-rows';\nimport { SpanTimingHoverCard } from './span-timing-hover-card';\nimport { TimelineStructureSign } from './timeline-structure-sign';\nimport { HoverCard, HoverCardTrigger } from '@/ds/components/HoverCard';\nimport { cn } from '@/lib/utils';\n\nexport type SpanTimelineRowProps = {\n ctx: SpanRowContext;\n};\n\nfunction formatDuration(ms: number) {\n return ms < 1000 ? `${Math.round(ms)} ms` : `${(ms / 1000).toFixed(2)} s`;\n}\n\n/**\n * One row of `TraceSpanTimeline`: compact single-line name cell plus a bar on the\n * shared trace time axis. The row spans both grid columns (subgrid) so hover and\n * selection cover the name and the bar together.\n */\nexport function SpanTimelineRow({ ctx }: SpanTimelineRowProps) {\n const {\n span,\n spanUI,\n depth,\n isRootSpan,\n isLastChild,\n isExpanded,\n isSelected,\n isFaded,\n isRevealed,\n overallLatency,\n overallStartTime,\n onSpanClick,\n expansion,\n } = ctx;\n const rowRef = useRef<HTMLDivElement>(null);\n const shouldScrollIntoView = isSelected || isRevealed;\n\n // Nested rows mount late, once expansion opens, so scroll on mount as well as on change.\n useEffect(() => {\n if (!shouldScrollIntoView) return;\n rowRef.current?.scrollIntoView({ block: 'nearest', behavior: 'smooth' });\n }, [shouldScrollIntoView]);\n\n const { startShiftMs, leftPercent, widthPercent } = getSpanTimingLayout(span, overallLatency, overallStartTime);\n const toggleLabel = isExpanded\n ? `Collapse children (${expansion.numOfChildren})`\n : `Expand children (${expansion.numOfChildren})`;\n\n return (\n <div\n ref={rowRef}\n aria-label={`View details for span ${span.name}`}\n aria-selected={isSelected}\n // The whole row selects the span; the name button is the keyboard target and its click bubbles here.\n onClick={() => onSpanClick?.(span.id)}\n className={cn(\n 'col-span-2 grid h-7 cursor-pointer grid-cols-subgrid items-stretch rounded-md opacity-80 hover:bg-fill-subtle',\n {\n 'opacity-40 dark:opacity-30 [&:hover]:opacity-70 dark:[&:hover]:opacity-60': isFaded,\n 'bg-fill-hover': isSelected,\n },\n )}\n >\n <div className=\"flex min-w-0 items-stretch\" style={{ paddingLeft: `${depth}rem` }}>\n {!isRootSpan && <TimelineStructureSign isLastChild={isLastChild} />}\n\n <button\n type=\"button\"\n className={cn(\n 'flex min-w-0 flex-1 cursor-pointer items-center gap-1.5 rounded-md px-2 text-left text-caption text-foreground',\n 'focus:outline-none focus-visible:ring-1 focus-visible:ring-accent1 focus-visible:ring-inset',\n )}\n >\n {spanUI?.color && (\n <span\n aria-hidden\n title={spanUI.label}\n className=\"inline-block size-2 shrink-0 rounded-full\"\n style={{ backgroundColor: spanUI.color }}\n />\n )}\n <span\n data-highlight={span.matchedInPayloadOnly ? undefined : ''}\n data-highlight-indirect={span.matchedInPayloadOnly ? '' : undefined}\n title={span.matchedInPayloadOnly ? 'Matches your search in this span’s details' : undefined}\n className=\"min-w-0 truncate\"\n >\n {span.name}\n </span>\n </button>\n\n {/* Slot is always present so names stay aligned whether or not the span has children. */}\n <div className=\"flex w-7 shrink-0 items-center justify-center\">\n {expansion.hasChildren && (\n <button\n type=\"button\"\n onClick={e => {\n e.stopPropagation();\n expansion.toggleChildren();\n }}\n aria-label={toggleLabel}\n aria-expanded={isExpanded}\n className={cn(\n 'flex size-5 cursor-pointer items-center justify-center rounded-md',\n 'hover:bg-fill [&:hover>svg]:opacity-100 [&>svg]:size-4 [&>svg]:opacity-50',\n 'focus:outline-none focus-visible:ring-1 focus-visible:ring-accent1',\n )}\n >\n {isExpanded ? <ChevronDownIcon /> : <ChevronRightIcon />}\n </button>\n )}\n </div>\n </div>\n\n <HoverCard>\n <HoverCardTrigger\n render={<div />}\n className=\"grid min-w-0 cursor-help grid-cols-[minmax(0,1fr)_auto] items-center gap-2 px-2\"\n >\n <div className=\"relative h-4 w-full rounded-sm bg-fill-subtle\">\n <div\n data-testid=\"span-timeline-bar\"\n className=\"absolute inset-y-0 rounded-sm\"\n style={{\n left: `${leftPercent}%`,\n width: widthPercent ? `${widthPercent}%` : '2px',\n backgroundColor: spanUI?.color,\n }}\n />\n </div>\n <div className=\"w-12 text-right text-meta text-muted-foreground tabular-nums\">\n {formatDuration(span.latency)}\n </div>\n </HoverCardTrigger>\n <SpanTimingHoverCard span={span} startShiftMs={startShiftMs} />\n </HoverCard>\n </div>\n );\n}\n"],"names":[],"mappings":"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"}
@@ -4,8 +4,8 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
5
  const jsxRuntime = require('react/jsx-runtime');
6
6
  const format = require('date-fns/format');
7
- const dataKeysAndValues = require('../../../data-keys-and-values-4pYpSbqS.cjs');
8
- const hoverCard = require('../../../hover-card-DdHnkGcs.cjs');
7
+ const dataKeysAndValues = require('../../../data-keys-and-values-BduKvvC5.cjs');
8
+ const hoverCard = require('../../../hover-card-DVfZ2INZ.cjs');
9
9
  const utils_cn = require('../../../cn-DG0X1KEP.cjs');
10
10
 
11
11
  function SpanTimingHoverCard({ span, startShiftMs }) {
@@ -1,7 +1,7 @@
1
1
  import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import { format } from 'date-fns/format';
3
- import { D as DataKeysAndValues } from '../../../data-keys-and-values-j0NVKPOl.js';
4
- import { a as HoverCardContent } from '../../../hover-card-Ch5smNcf.js';
3
+ import { D as DataKeysAndValues } from '../../../data-keys-and-values-DhC4U4Yl.js';
4
+ import { a as HoverCardContent } from '../../../hover-card-B1-n3amu.js';
5
5
  import { c as cn } from '../../../cn-65Adrsfj.js';
6
6
 
7
7
  function SpanTimingHoverCard({ span, startShiftMs }) {
@@ -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_spanTokenUsage_utils = require('./span-token-usage.utils.cjs.js');
8
- const dataKeysAndValues = require('../../../data-keys-and-values-4pYpSbqS.cjs');
8
+ const dataKeysAndValues = require('../../../data-keys-and-values-BduKvvC5.cjs');
9
9
  const utils_cn = require('../../../cn-DG0X1KEP.cjs');
10
10
 
11
11
  const detailKeyLabels = {
@@ -24,17 +24,17 @@ function SpanTokenUsage({ usage, className }) {
24
24
  const { inputValue, outputValue, total, showSplit, inputPct, outputPct, inputDetails, outputDetails } = view;
25
25
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: utils_cn.cn("mt-2 mb-8 grid grid-cols-1 border-b border-border pb-3 4xl:grid-cols-2 4xl:gap-12", className), children: [
26
26
  showSplit && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-2", children: [
27
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-placeholder flex items-baseline gap-3", children: [
27
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-baseline gap-3 text-placeholder", children: [
28
28
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-body", children: "Tokens Used" }),
29
29
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-subheading text-muted-foreground", children: total.toLocaleString() }),
30
- /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-caption ml-auto", children: [
30
+ /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "ml-auto text-caption", children: [
31
31
  Math.round(inputPct),
32
32
  "% Input vs ",
33
33
  Math.round(outputPct),
34
34
  "% Output"
35
35
  ] })
36
36
  ] }),
37
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "bg-muted mt-2 rounded-md p-1.5", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative h-1.5 w-full overflow-hidden rounded-sm", children: [
37
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-2 rounded-md bg-muted p-1.5", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative h-1.5 w-full overflow-hidden rounded-sm", children: [
38
38
  /* @__PURE__ */ jsxRuntime.jsx(
39
39
  "div",
40
40
  {
@@ -64,7 +64,7 @@ function UsageColumn({
64
64
  details
65
65
  }) {
66
66
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
67
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-placeholder mb-2 flex items-baseline gap-3", children: [
67
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-2 flex items-baseline gap-3 text-placeholder", children: [
68
68
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-body", children: label }),
69
69
  typeof value === "number" && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "flex items-baseline gap-1.5", children: [
70
70
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-subheading text-muted-foreground", children: value.toLocaleString() }),
@@ -1 +1 @@
1
- {"version":3,"file":"span-token-usage.cjs.js","sources":["../../../../src/domains/traces/components/span-token-usage.tsx"],"sourcesContent":["import type { InputTokenDetails, OutputTokenDetails, UsageStats } from '@mastra/core/observability';\nimport { Fragment } from 'react';\nimport { getTokenUsageView } from './span-token-usage.utils';\nimport { DataKeysAndValues } from '@/ds/components/DataKeysAndValues';\nimport { cn } from '@/lib/utils';\n\nexport type TokenUsage = UsageStats;\n\ntype TokenDetailsObject = InputTokenDetails | OutputTokenDetails;\n\nconst detailKeyLabels: Record<string, string> = {\n text: 'Text',\n cacheRead: 'Cache read',\n cacheWrite: 'Cache write',\n audio: 'Audio',\n image: 'Image',\n reasoning: 'Reasoning',\n};\n\ntype SpanTokenUsageProps = {\n usage: UsageStats;\n className?: string;\n};\n\nconst INPUT_COLOR = 'var(--chart-soft-3)';\nconst OUTPUT_COLOR = 'var(--chart-soft-1)';\n\nexport function SpanTokenUsage({ usage, className }: SpanTokenUsageProps) {\n const view = getTokenUsageView(usage);\n if (!view) return null;\n\n const { inputValue, outputValue, total, showSplit, inputPct, outputPct, inputDetails, outputDetails } = view;\n\n return (\n <div className={cn('mt-2 mb-8 grid grid-cols-1 border-b border-border pb-3 4xl:grid-cols-2 4xl:gap-12', className)}>\n {showSplit && (\n <div className=\"mb-2\">\n <div className=\"text-placeholder flex items-baseline gap-3\">\n <span className=\"text-body\">Tokens Used</span>\n <span className=\"text-subheading text-muted-foreground\">{total.toLocaleString()}</span>\n <span className=\"text-caption ml-auto\">\n {Math.round(inputPct)}% Input vs {Math.round(outputPct)}% Output\n </span>\n </div>\n <div className=\"bg-muted mt-2 rounded-md p-1.5\">\n <div className=\"relative h-1.5 w-full overflow-hidden rounded-sm\">\n <div\n className=\"absolute top-0 left-0 h-1.5\"\n style={{ width: `${inputPct}%`, backgroundColor: INPUT_COLOR }}\n />\n <div\n className=\"absolute top-0 h-1.5\"\n style={{ left: `${inputPct}%`, width: `${outputPct}%`, backgroundColor: OUTPUT_COLOR }}\n />\n </div>\n </div>\n </div>\n )}\n\n <div className=\"grid grid-cols-2 gap-6\">\n <UsageColumn label=\"Input\" color={INPUT_COLOR} value={inputValue} details={inputDetails} />\n <UsageColumn label=\"Output\" color={OUTPUT_COLOR} value={outputValue} details={outputDetails} />\n </div>\n </div>\n );\n}\n\nfunction UsageColumn({\n label,\n color,\n value,\n details,\n}: {\n label: string;\n color: string;\n value?: number;\n details?: TokenDetailsObject;\n}) {\n return (\n <div>\n <div className=\"text-placeholder mb-2 flex items-baseline gap-3\">\n <span className=\"text-body\">{label}</span>\n {typeof value === 'number' && (\n <span className=\"flex items-baseline gap-1.5\">\n <span className=\"text-subheading text-muted-foreground\">{value.toLocaleString()}</span>\n <span className=\"size-2 self-center rounded-full\" style={{ backgroundColor: color }} />\n </span>\n )}\n </div>\n {details && <DetailsList details={details} />}\n </div>\n );\n}\n\nfunction DetailsList({ details }: { details: TokenDetailsObject }) {\n return (\n <DataKeysAndValues density=\"dense\">\n {Object.entries(details).map(([detailKey, detailValue]) => {\n if (typeof detailValue !== 'number') return null;\n return (\n <Fragment key={detailKey}>\n <DataKeysAndValues.Key>{detailKeyLabels[detailKey] || detailKey}</DataKeysAndValues.Key>\n <DataKeysAndValues.Value className=\"text-right\">{detailValue.toLocaleString()}</DataKeysAndValues.Value>\n </Fragment>\n );\n })}\n </DataKeysAndValues>\n );\n}\n"],"names":["getTokenUsageView","cn","jsxs","jsx","DataKeysAndValues","Fragment"],"mappings":"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"}
1
+ {"version":3,"file":"span-token-usage.cjs.js","sources":["../../../../src/domains/traces/components/span-token-usage.tsx"],"sourcesContent":["import type { InputTokenDetails, OutputTokenDetails, UsageStats } from '@mastra/core/observability';\nimport { Fragment } from 'react';\nimport { getTokenUsageView } from './span-token-usage.utils';\nimport { DataKeysAndValues } from '@/ds/components/DataKeysAndValues';\nimport { cn } from '@/lib/utils';\n\nexport type TokenUsage = UsageStats;\n\ntype TokenDetailsObject = InputTokenDetails | OutputTokenDetails;\n\nconst detailKeyLabels: Record<string, string> = {\n text: 'Text',\n cacheRead: 'Cache read',\n cacheWrite: 'Cache write',\n audio: 'Audio',\n image: 'Image',\n reasoning: 'Reasoning',\n};\n\ntype SpanTokenUsageProps = {\n usage: UsageStats;\n className?: string;\n};\n\nconst INPUT_COLOR = 'var(--chart-soft-3)';\nconst OUTPUT_COLOR = 'var(--chart-soft-1)';\n\nexport function SpanTokenUsage({ usage, className }: SpanTokenUsageProps) {\n const view = getTokenUsageView(usage);\n if (!view) return null;\n\n const { inputValue, outputValue, total, showSplit, inputPct, outputPct, inputDetails, outputDetails } = view;\n\n return (\n <div className={cn('mt-2 mb-8 grid grid-cols-1 border-b border-border pb-3 4xl:grid-cols-2 4xl:gap-12', className)}>\n {showSplit && (\n <div className=\"mb-2\">\n <div className=\"flex items-baseline gap-3 text-placeholder\">\n <span className=\"text-body\">Tokens Used</span>\n <span className=\"text-subheading text-muted-foreground\">{total.toLocaleString()}</span>\n <span className=\"ml-auto text-caption\">\n {Math.round(inputPct)}% Input vs {Math.round(outputPct)}% Output\n </span>\n </div>\n <div className=\"mt-2 rounded-md bg-muted p-1.5\">\n <div className=\"relative h-1.5 w-full overflow-hidden rounded-sm\">\n <div\n className=\"absolute top-0 left-0 h-1.5\"\n style={{ width: `${inputPct}%`, backgroundColor: INPUT_COLOR }}\n />\n <div\n className=\"absolute top-0 h-1.5\"\n style={{ left: `${inputPct}%`, width: `${outputPct}%`, backgroundColor: OUTPUT_COLOR }}\n />\n </div>\n </div>\n </div>\n )}\n\n <div className=\"grid grid-cols-2 gap-6\">\n <UsageColumn label=\"Input\" color={INPUT_COLOR} value={inputValue} details={inputDetails} />\n <UsageColumn label=\"Output\" color={OUTPUT_COLOR} value={outputValue} details={outputDetails} />\n </div>\n </div>\n );\n}\n\nfunction UsageColumn({\n label,\n color,\n value,\n details,\n}: {\n label: string;\n color: string;\n value?: number;\n details?: TokenDetailsObject;\n}) {\n return (\n <div>\n <div className=\"mb-2 flex items-baseline gap-3 text-placeholder\">\n <span className=\"text-body\">{label}</span>\n {typeof value === 'number' && (\n <span className=\"flex items-baseline gap-1.5\">\n <span className=\"text-subheading text-muted-foreground\">{value.toLocaleString()}</span>\n <span className=\"size-2 self-center rounded-full\" style={{ backgroundColor: color }} />\n </span>\n )}\n </div>\n {details && <DetailsList details={details} />}\n </div>\n );\n}\n\nfunction DetailsList({ details }: { details: TokenDetailsObject }) {\n return (\n <DataKeysAndValues density=\"dense\">\n {Object.entries(details).map(([detailKey, detailValue]) => {\n if (typeof detailValue !== 'number') return null;\n return (\n <Fragment key={detailKey}>\n <DataKeysAndValues.Key>{detailKeyLabels[detailKey] || detailKey}</DataKeysAndValues.Key>\n <DataKeysAndValues.Value className=\"text-right\">{detailValue.toLocaleString()}</DataKeysAndValues.Value>\n </Fragment>\n );\n })}\n </DataKeysAndValues>\n );\n}\n"],"names":["getTokenUsageView","cn","jsxs","jsx","DataKeysAndValues","Fragment"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import { Fragment } from 'react';
3
3
  import { getTokenUsageView } from './span-token-usage.utils.es.js';
4
- import { D as DataKeysAndValues } from '../../../data-keys-and-values-j0NVKPOl.js';
4
+ import { D as DataKeysAndValues } from '../../../data-keys-and-values-DhC4U4Yl.js';
5
5
  import { c as cn } from '../../../cn-65Adrsfj.js';
6
6
 
7
7
  const detailKeyLabels = {
@@ -20,17 +20,17 @@ function SpanTokenUsage({ usage, className }) {
20
20
  const { inputValue, outputValue, total, showSplit, inputPct, outputPct, inputDetails, outputDetails } = view;
21
21
  return /* @__PURE__ */ jsxs("div", { className: cn("mt-2 mb-8 grid grid-cols-1 border-b border-border pb-3 4xl:grid-cols-2 4xl:gap-12", className), children: [
22
22
  showSplit && /* @__PURE__ */ jsxs("div", { className: "mb-2", children: [
23
- /* @__PURE__ */ jsxs("div", { className: "text-placeholder flex items-baseline gap-3", children: [
23
+ /* @__PURE__ */ jsxs("div", { className: "flex items-baseline gap-3 text-placeholder", children: [
24
24
  /* @__PURE__ */ jsx("span", { className: "text-body", children: "Tokens Used" }),
25
25
  /* @__PURE__ */ jsx("span", { className: "text-subheading text-muted-foreground", children: total.toLocaleString() }),
26
- /* @__PURE__ */ jsxs("span", { className: "text-caption ml-auto", children: [
26
+ /* @__PURE__ */ jsxs("span", { className: "ml-auto text-caption", children: [
27
27
  Math.round(inputPct),
28
28
  "% Input vs ",
29
29
  Math.round(outputPct),
30
30
  "% Output"
31
31
  ] })
32
32
  ] }),
33
- /* @__PURE__ */ jsx("div", { className: "bg-muted mt-2 rounded-md p-1.5", children: /* @__PURE__ */ jsxs("div", { className: "relative h-1.5 w-full overflow-hidden rounded-sm", children: [
33
+ /* @__PURE__ */ jsx("div", { className: "mt-2 rounded-md bg-muted p-1.5", children: /* @__PURE__ */ jsxs("div", { className: "relative h-1.5 w-full overflow-hidden rounded-sm", children: [
34
34
  /* @__PURE__ */ jsx(
35
35
  "div",
36
36
  {
@@ -60,7 +60,7 @@ function UsageColumn({
60
60
  details
61
61
  }) {
62
62
  return /* @__PURE__ */ jsxs("div", { children: [
63
- /* @__PURE__ */ jsxs("div", { className: "text-placeholder mb-2 flex items-baseline gap-3", children: [
63
+ /* @__PURE__ */ jsxs("div", { className: "mb-2 flex items-baseline gap-3 text-placeholder", children: [
64
64
  /* @__PURE__ */ jsx("span", { className: "text-body", children: label }),
65
65
  typeof value === "number" && /* @__PURE__ */ jsxs("span", { className: "flex items-baseline gap-1.5", children: [
66
66
  /* @__PURE__ */ jsx("span", { className: "text-subheading text-muted-foreground", children: value.toLocaleString() }),
@@ -1 +1 @@
1
- {"version":3,"file":"span-token-usage.es.js","sources":["../../../../src/domains/traces/components/span-token-usage.tsx"],"sourcesContent":["import type { InputTokenDetails, OutputTokenDetails, UsageStats } from '@mastra/core/observability';\nimport { Fragment } from 'react';\nimport { getTokenUsageView } from './span-token-usage.utils';\nimport { DataKeysAndValues } from '@/ds/components/DataKeysAndValues';\nimport { cn } from '@/lib/utils';\n\nexport type TokenUsage = UsageStats;\n\ntype TokenDetailsObject = InputTokenDetails | OutputTokenDetails;\n\nconst detailKeyLabels: Record<string, string> = {\n text: 'Text',\n cacheRead: 'Cache read',\n cacheWrite: 'Cache write',\n audio: 'Audio',\n image: 'Image',\n reasoning: 'Reasoning',\n};\n\ntype SpanTokenUsageProps = {\n usage: UsageStats;\n className?: string;\n};\n\nconst INPUT_COLOR = 'var(--chart-soft-3)';\nconst OUTPUT_COLOR = 'var(--chart-soft-1)';\n\nexport function SpanTokenUsage({ usage, className }: SpanTokenUsageProps) {\n const view = getTokenUsageView(usage);\n if (!view) return null;\n\n const { inputValue, outputValue, total, showSplit, inputPct, outputPct, inputDetails, outputDetails } = view;\n\n return (\n <div className={cn('mt-2 mb-8 grid grid-cols-1 border-b border-border pb-3 4xl:grid-cols-2 4xl:gap-12', className)}>\n {showSplit && (\n <div className=\"mb-2\">\n <div className=\"text-placeholder flex items-baseline gap-3\">\n <span className=\"text-body\">Tokens Used</span>\n <span className=\"text-subheading text-muted-foreground\">{total.toLocaleString()}</span>\n <span className=\"text-caption ml-auto\">\n {Math.round(inputPct)}% Input vs {Math.round(outputPct)}% Output\n </span>\n </div>\n <div className=\"bg-muted mt-2 rounded-md p-1.5\">\n <div className=\"relative h-1.5 w-full overflow-hidden rounded-sm\">\n <div\n className=\"absolute top-0 left-0 h-1.5\"\n style={{ width: `${inputPct}%`, backgroundColor: INPUT_COLOR }}\n />\n <div\n className=\"absolute top-0 h-1.5\"\n style={{ left: `${inputPct}%`, width: `${outputPct}%`, backgroundColor: OUTPUT_COLOR }}\n />\n </div>\n </div>\n </div>\n )}\n\n <div className=\"grid grid-cols-2 gap-6\">\n <UsageColumn label=\"Input\" color={INPUT_COLOR} value={inputValue} details={inputDetails} />\n <UsageColumn label=\"Output\" color={OUTPUT_COLOR} value={outputValue} details={outputDetails} />\n </div>\n </div>\n );\n}\n\nfunction UsageColumn({\n label,\n color,\n value,\n details,\n}: {\n label: string;\n color: string;\n value?: number;\n details?: TokenDetailsObject;\n}) {\n return (\n <div>\n <div className=\"text-placeholder mb-2 flex items-baseline gap-3\">\n <span className=\"text-body\">{label}</span>\n {typeof value === 'number' && (\n <span className=\"flex items-baseline gap-1.5\">\n <span className=\"text-subheading text-muted-foreground\">{value.toLocaleString()}</span>\n <span className=\"size-2 self-center rounded-full\" style={{ backgroundColor: color }} />\n </span>\n )}\n </div>\n {details && <DetailsList details={details} />}\n </div>\n );\n}\n\nfunction DetailsList({ details }: { details: TokenDetailsObject }) {\n return (\n <DataKeysAndValues density=\"dense\">\n {Object.entries(details).map(([detailKey, detailValue]) => {\n if (typeof detailValue !== 'number') return null;\n return (\n <Fragment key={detailKey}>\n <DataKeysAndValues.Key>{detailKeyLabels[detailKey] || detailKey}</DataKeysAndValues.Key>\n <DataKeysAndValues.Value className=\"text-right\">{detailValue.toLocaleString()}</DataKeysAndValues.Value>\n </Fragment>\n );\n })}\n </DataKeysAndValues>\n );\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"span-token-usage.es.js","sources":["../../../../src/domains/traces/components/span-token-usage.tsx"],"sourcesContent":["import type { InputTokenDetails, OutputTokenDetails, UsageStats } from '@mastra/core/observability';\nimport { Fragment } from 'react';\nimport { getTokenUsageView } from './span-token-usage.utils';\nimport { DataKeysAndValues } from '@/ds/components/DataKeysAndValues';\nimport { cn } from '@/lib/utils';\n\nexport type TokenUsage = UsageStats;\n\ntype TokenDetailsObject = InputTokenDetails | OutputTokenDetails;\n\nconst detailKeyLabels: Record<string, string> = {\n text: 'Text',\n cacheRead: 'Cache read',\n cacheWrite: 'Cache write',\n audio: 'Audio',\n image: 'Image',\n reasoning: 'Reasoning',\n};\n\ntype SpanTokenUsageProps = {\n usage: UsageStats;\n className?: string;\n};\n\nconst INPUT_COLOR = 'var(--chart-soft-3)';\nconst OUTPUT_COLOR = 'var(--chart-soft-1)';\n\nexport function SpanTokenUsage({ usage, className }: SpanTokenUsageProps) {\n const view = getTokenUsageView(usage);\n if (!view) return null;\n\n const { inputValue, outputValue, total, showSplit, inputPct, outputPct, inputDetails, outputDetails } = view;\n\n return (\n <div className={cn('mt-2 mb-8 grid grid-cols-1 border-b border-border pb-3 4xl:grid-cols-2 4xl:gap-12', className)}>\n {showSplit && (\n <div className=\"mb-2\">\n <div className=\"flex items-baseline gap-3 text-placeholder\">\n <span className=\"text-body\">Tokens Used</span>\n <span className=\"text-subheading text-muted-foreground\">{total.toLocaleString()}</span>\n <span className=\"ml-auto text-caption\">\n {Math.round(inputPct)}% Input vs {Math.round(outputPct)}% Output\n </span>\n </div>\n <div className=\"mt-2 rounded-md bg-muted p-1.5\">\n <div className=\"relative h-1.5 w-full overflow-hidden rounded-sm\">\n <div\n className=\"absolute top-0 left-0 h-1.5\"\n style={{ width: `${inputPct}%`, backgroundColor: INPUT_COLOR }}\n />\n <div\n className=\"absolute top-0 h-1.5\"\n style={{ left: `${inputPct}%`, width: `${outputPct}%`, backgroundColor: OUTPUT_COLOR }}\n />\n </div>\n </div>\n </div>\n )}\n\n <div className=\"grid grid-cols-2 gap-6\">\n <UsageColumn label=\"Input\" color={INPUT_COLOR} value={inputValue} details={inputDetails} />\n <UsageColumn label=\"Output\" color={OUTPUT_COLOR} value={outputValue} details={outputDetails} />\n </div>\n </div>\n );\n}\n\nfunction UsageColumn({\n label,\n color,\n value,\n details,\n}: {\n label: string;\n color: string;\n value?: number;\n details?: TokenDetailsObject;\n}) {\n return (\n <div>\n <div className=\"mb-2 flex items-baseline gap-3 text-placeholder\">\n <span className=\"text-body\">{label}</span>\n {typeof value === 'number' && (\n <span className=\"flex items-baseline gap-1.5\">\n <span className=\"text-subheading text-muted-foreground\">{value.toLocaleString()}</span>\n <span className=\"size-2 self-center rounded-full\" style={{ backgroundColor: color }} />\n </span>\n )}\n </div>\n {details && <DetailsList details={details} />}\n </div>\n );\n}\n\nfunction DetailsList({ details }: { details: TokenDetailsObject }) {\n return (\n <DataKeysAndValues density=\"dense\">\n {Object.entries(details).map(([detailKey, detailValue]) => {\n if (typeof detailValue !== 'number') return null;\n return (\n <Fragment key={detailKey}>\n <DataKeysAndValues.Key>{detailKeyLabels[detailKey] || detailKey}</DataKeysAndValues.Key>\n <DataKeysAndValues.Value className=\"text-right\">{detailValue.toLocaleString()}</DataKeysAndValues.Value>\n </Fragment>\n );\n })}\n </DataKeysAndValues>\n );\n}\n"],"names":[],"mappings":";;;;;;AAUA,MAAM,eAAA,GAA0C;AAAA,EAC9C,IAAA,EAAM,MAAA;AAAA,EACN,SAAA,EAAW,YAAA;AAAA,EACX,UAAA,EAAY,aAAA;AAAA,EACZ,KAAA,EAAO,OAAA;AAAA,EACP,KAAA,EAAO,OAAA;AAAA,EACP,SAAA,EAAW;AACb,CAAA;AAOA,MAAM,WAAA,GAAc,qBAAA;AACpB,MAAM,YAAA,GAAe,qBAAA;AAEd,SAAS,cAAA,CAAe,EAAE,KAAA,EAAO,SAAA,EAAU,EAAwB;AACxE,EAAA,MAAM,IAAA,GAAO,kBAAkB,KAAK,CAAA;AACpC,EAAA,IAAI,CAAC,MAAM,OAAO,IAAA;AAElB,EAAA,MAAM,EAAE,YAAY,WAAA,EAAa,KAAA,EAAO,WAAW,QAAA,EAAU,SAAA,EAAW,YAAA,EAAc,aAAA,EAAc,GAAI,IAAA;AAExG,EAAA,4BACG,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,mFAAA,EAAqF,SAAS,CAAA,EAC9G,QAAA,EAAA;AAAA,IAAA,SAAA,oBACC,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,MAAA,EACb,QAAA,EAAA;AAAA,sBAAA,IAAA,CAAC,KAAA,EAAA,EAAI,WAAU,4CAAA,EACb,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,WAAA,EAAY,QAAA,EAAA,aAAA,EAAW,CAAA;AAAA,4BACtC,MAAA,EAAA,EAAK,SAAA,EAAU,uCAAA,EAAyC,QAAA,EAAA,KAAA,CAAM,gBAAe,EAAE,CAAA;AAAA,wBAChF,IAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,sBAAA,EACb,QAAA,EAAA;AAAA,UAAA,IAAA,CAAK,MAAM,QAAQ,CAAA;AAAA,UAAE,aAAA;AAAA,UAAY,IAAA,CAAK,MAAM,SAAS,CAAA;AAAA,UAAE;AAAA,SAAA,EAC1D;AAAA,OAAA,EACF,CAAA;AAAA,0BACC,KAAA,EAAA,EAAI,SAAA,EAAU,kCACb,QAAA,kBAAA,IAAA,CAAC,KAAA,EAAA,EAAI,WAAU,kDAAA,EACb,QAAA,EAAA;AAAA,wBAAA,GAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAU,6BAAA;AAAA,YACV,OAAO,EAAE,KAAA,EAAO,GAAG,QAAQ,CAAA,CAAA,CAAA,EAAK,iBAAiB,WAAA;AAAY;AAAA,SAC/D;AAAA,wBACA,GAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAU,sBAAA;AAAA,YACV,KAAA,EAAO,EAAE,IAAA,EAAM,CAAA,EAAG,QAAQ,CAAA,CAAA,CAAA,EAAK,KAAA,EAAO,CAAA,EAAG,SAAS,CAAA,CAAA,CAAA,EAAK,eAAA,EAAiB,YAAA;AAAa;AAAA;AACvF,OAAA,EACF,CAAA,EACF;AAAA,KAAA,EACF,CAAA;AAAA,oBAGF,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,wBAAA,EACb,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,WAAA,EAAA,EAAY,OAAM,OAAA,EAAQ,KAAA,EAAO,aAAa,KAAA,EAAO,UAAA,EAAY,SAAS,YAAA,EAAc,CAAA;AAAA,sBACzF,GAAA,CAAC,eAAY,KAAA,EAAM,QAAA,EAAS,OAAO,YAAA,EAAc,KAAA,EAAO,WAAA,EAAa,OAAA,EAAS,aAAA,EAAe;AAAA,KAAA,EAC/F;AAAA,GAAA,EACF,CAAA;AAEJ;AAEA,SAAS,WAAA,CAAY;AAAA,EACnB,KAAA;AAAA,EACA,KAAA;AAAA,EACA,KAAA;AAAA,EACA;AACF,CAAA,EAKG;AACD,EAAA,4BACG,KAAA,EAAA,EACC,QAAA,EAAA;AAAA,oBAAA,IAAA,CAAC,KAAA,EAAA,EAAI,WAAU,iDAAA,EACb,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,WAAA,EAAa,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,MAClC,OAAO,KAAA,KAAU,QAAA,oBAChB,IAAA,CAAC,MAAA,EAAA,EAAK,WAAU,6BAAA,EACd,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,uCAAA,EAAyC,QAAA,EAAA,KAAA,CAAM,gBAAe,EAAE,CAAA;AAAA,wBAChF,GAAA,CAAC,UAAK,SAAA,EAAU,iCAAA,EAAkC,OAAO,EAAE,eAAA,EAAiB,OAAM,EAAG;AAAA,OAAA,EACvF;AAAA,KAAA,EAEJ,CAAA;AAAA,IACC,OAAA,oBAAW,GAAA,CAAC,WAAA,EAAA,EAAY,OAAA,EAAkB;AAAA,GAAA,EAC7C,CAAA;AAEJ;AAEA,SAAS,WAAA,CAAY,EAAE,OAAA,EAAQ,EAAoC;AACjE,EAAA,uBACE,GAAA,CAAC,iBAAA,EAAA,EAAkB,OAAA,EAAQ,OAAA,EACxB,QAAA,EAAA,MAAA,CAAO,OAAA,CAAQ,OAAO,CAAA,CAAE,GAAA,CAAI,CAAC,CAAC,SAAA,EAAW,WAAW,CAAA,KAAM;AACzD,IAAA,IAAI,OAAO,WAAA,KAAgB,QAAA,EAAU,OAAO,IAAA;AAC5C,IAAA,4BACG,QAAA,EAAA,EACC,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,kBAAkB,GAAA,EAAlB,EAAuB,QAAA,EAAA,eAAA,CAAgB,SAAS,KAAK,SAAA,EAAU,CAAA;AAAA,sBAChE,GAAA,CAAC,kBAAkB,KAAA,EAAlB,EAAwB,WAAU,YAAA,EAAc,QAAA,EAAA,WAAA,CAAY,gBAAe,EAAE;AAAA,KAAA,EAAA,EAFjE,SAGf,CAAA;AAAA,EAEJ,CAAC,CAAA,EACH,CAAA;AAEJ;;;;"}
@@ -4,7 +4,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
5
  const jsxRuntime = require('react/jsx-runtime');
6
6
  const domains_traces_components_threadTrace_threadTraceRowContext = require('./thread-trace-row-context.cjs.js');
7
- const dataPanel = require('../../../../data-panel-CWZJKBeW.cjs');
7
+ const dataPanel = require('../../../../data-panel-CM3N_4M7.cjs');
8
8
  const utils_cn = require('../../../../cn-DG0X1KEP.cjs');
9
9
 
10
10
  function ThreadTraceDetails({ className, children, ...props }) {
@@ -28,7 +28,7 @@ function ThreadTraceDetails({ className, children, ...props }) {
28
28
  }
29
29
  function ThreadTraceDetailsHeader({ className, children, ...props }) {
30
30
  const { detailsHeaderRef } = domains_traces_components_threadTrace_threadTraceRowContext.useThreadTraceRow();
31
- return /* @__PURE__ */ jsxRuntime.jsx("div", { ref: detailsHeaderRef, "data-slot": "thread-trace-details-header", className, ...props, children: /* @__PURE__ */ jsxRuntime.jsx(dataPanel.DataPanel.Header, { className: "border-border border-b", children }) });
31
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { ref: detailsHeaderRef, "data-slot": "thread-trace-details-header", className, ...props, children: /* @__PURE__ */ jsxRuntime.jsx(dataPanel.DataPanel.Header, { className: "border-b border-border", children }) });
32
32
  }
33
33
  function ThreadTraceDetailsActions({ className, ...props }) {
34
34
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -1 +1 @@
1
- {"version":3,"file":"thread-trace-details.cjs.js","sources":["../../../../../src/domains/traces/components/thread-trace/thread-trace-details.tsx"],"sourcesContent":["import type { ComponentProps } from 'react';\n\nimport { useThreadTraceRow } from './thread-trace-row-context';\nimport { DataPanel } from '@/ds/components/DataPanel';\nimport { cn } from '@/lib/utils';\n\nexport type ThreadTraceDetailsProps = ComponentProps<'div'>;\n\n/** The details column of a row: a `ThreadTrace.DetailsHeader` above `ThreadTrace.Spans`. The row draws the borders. */\nexport function ThreadTraceDetails({ className, children, ...props }: ThreadTraceDetailsProps) {\n const { isExpanded } = useThreadTraceRow();\n return (\n <div\n data-slot=\"thread-trace-details\"\n className={cn(\n 'min-w-0 overflow-hidden',\n // While collapsed the messages column alone sets the row height: `h-0` keeps this\n // cell out of the grid's row sizing (so measurement rounding can't nudge the row by\n // a pixel) and `min-h-full` stretches it back to the row afterwards.\n !isExpanded && 'h-0 min-h-full',\n className,\n )}\n {...props}\n >\n {children}\n </div>\n );\n}\n\nexport type ThreadTraceDetailsHeaderProps = ComponentProps<'div'>;\n\n/**\n * The header row above the span tree; children are typically a `ThreadTrace.DetailsActions`.\n * Measured: its height is taken out of the span tree budget so the details cell never\n * overshoots the messages column.\n */\nexport function ThreadTraceDetailsHeader({ className, children, ...props }: ThreadTraceDetailsHeaderProps) {\n const { detailsHeaderRef } = useThreadTraceRow();\n return (\n <div ref={detailsHeaderRef} data-slot=\"thread-trace-details-header\" className={className} {...props}>\n {/* Sole child of the measured wrapper, so the header's own `not-last:border-b` never applies. */}\n <DataPanel.Header className=\"border-border border-b\">{children}</DataPanel.Header>\n </div>\n );\n}\n\nexport type ThreadTraceDetailsActionsProps = ComponentProps<'div'>;\n\n/** Trailing controls of the header (e.g. a \"Go to trace\" link), pushed to the right. */\nexport function ThreadTraceDetailsActions({ className, ...props }: ThreadTraceDetailsActionsProps) {\n return (\n <div\n data-slot=\"thread-trace-details-actions\"\n className={cn('ml-auto flex shrink-0 items-center', className)}\n {...props}\n />\n );\n}\n"],"names":["useThreadTraceRow","jsx","cn","DataPanel"],"mappings":";;;;;;;;;AASO,SAAS,mBAAmB,EAAE,SAAA,EAAW,QAAA,EAAU,GAAG,OAAM,EAA4B;AAC7F,EAAA,MAAM,EAAE,UAAA,EAAW,GAAIA,6EAAA,EAAkB;AACzC,EAAA,uBACEC,cAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,sBAAA;AAAA,MACV,SAAA,EAAWC,WAAA;AAAA,QACT,yBAAA;AAAA;AAAA;AAAA;AAAA,QAIA,CAAC,UAAA,IAAc,gBAAA;AAAA,QACf;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ;AASO,SAAS,yBAAyB,EAAE,SAAA,EAAW,QAAA,EAAU,GAAG,OAAM,EAAkC;AACzG,EAAA,MAAM,EAAE,gBAAA,EAAiB,GAAIF,6EAAA,EAAkB;AAC/C,EAAA,sCACG,KAAA,EAAA,EAAI,GAAA,EAAK,gBAAA,EAAkB,WAAA,EAAU,+BAA8B,SAAA,EAAuB,GAAG,KAAA,EAE5F,QAAA,kBAAAC,cAAA,CAACE,oBAAU,MAAA,EAAV,EAAiB,SAAA,EAAU,wBAAA,EAA0B,UAAS,CAAA,EACjE,CAAA;AAEJ;AAKO,SAAS,yBAAA,CAA0B,EAAE,SAAA,EAAW,GAAG,OAAM,EAAmC;AACjG,EAAA,uBACEF,cAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,8BAAA;AAAA,MACV,SAAA,EAAWC,WAAA,CAAG,oCAAA,EAAsC,SAAS,CAAA;AAAA,MAC5D,GAAG;AAAA;AAAA,GACN;AAEJ;;;;;;"}
1
+ {"version":3,"file":"thread-trace-details.cjs.js","sources":["../../../../../src/domains/traces/components/thread-trace/thread-trace-details.tsx"],"sourcesContent":["import type { ComponentProps } from 'react';\n\nimport { useThreadTraceRow } from './thread-trace-row-context';\nimport { DataPanel } from '@/ds/components/DataPanel';\nimport { cn } from '@/lib/utils';\n\nexport type ThreadTraceDetailsProps = ComponentProps<'div'>;\n\n/** The details column of a row: a `ThreadTrace.DetailsHeader` above `ThreadTrace.Spans`. The row draws the borders. */\nexport function ThreadTraceDetails({ className, children, ...props }: ThreadTraceDetailsProps) {\n const { isExpanded } = useThreadTraceRow();\n return (\n <div\n data-slot=\"thread-trace-details\"\n className={cn(\n 'min-w-0 overflow-hidden',\n // While collapsed the messages column alone sets the row height: `h-0` keeps this\n // cell out of the grid's row sizing (so measurement rounding can't nudge the row by\n // a pixel) and `min-h-full` stretches it back to the row afterwards.\n !isExpanded && 'h-0 min-h-full',\n className,\n )}\n {...props}\n >\n {children}\n </div>\n );\n}\n\nexport type ThreadTraceDetailsHeaderProps = ComponentProps<'div'>;\n\n/**\n * The header row above the span tree; children are typically a `ThreadTrace.DetailsActions`.\n * Measured: its height is taken out of the span tree budget so the details cell never\n * overshoots the messages column.\n */\nexport function ThreadTraceDetailsHeader({ className, children, ...props }: ThreadTraceDetailsHeaderProps) {\n const { detailsHeaderRef } = useThreadTraceRow();\n return (\n <div ref={detailsHeaderRef} data-slot=\"thread-trace-details-header\" className={className} {...props}>\n {/* Sole child of the measured wrapper, so the header's own `not-last:border-b` never applies. */}\n <DataPanel.Header className=\"border-b border-border\">{children}</DataPanel.Header>\n </div>\n );\n}\n\nexport type ThreadTraceDetailsActionsProps = ComponentProps<'div'>;\n\n/** Trailing controls of the header (e.g. a \"Go to trace\" link), pushed to the right. */\nexport function ThreadTraceDetailsActions({ className, ...props }: ThreadTraceDetailsActionsProps) {\n return (\n <div\n data-slot=\"thread-trace-details-actions\"\n className={cn('ml-auto flex shrink-0 items-center', className)}\n {...props}\n />\n );\n}\n"],"names":["useThreadTraceRow","jsx","cn","DataPanel"],"mappings":";;;;;;;;;AASO,SAAS,mBAAmB,EAAE,SAAA,EAAW,QAAA,EAAU,GAAG,OAAM,EAA4B;AAC7F,EAAA,MAAM,EAAE,UAAA,EAAW,GAAIA,6EAAA,EAAkB;AACzC,EAAA,uBACEC,cAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,sBAAA;AAAA,MACV,SAAA,EAAWC,WAAA;AAAA,QACT,yBAAA;AAAA;AAAA;AAAA;AAAA,QAIA,CAAC,UAAA,IAAc,gBAAA;AAAA,QACf;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ;AASO,SAAS,yBAAyB,EAAE,SAAA,EAAW,QAAA,EAAU,GAAG,OAAM,EAAkC;AACzG,EAAA,MAAM,EAAE,gBAAA,EAAiB,GAAIF,6EAAA,EAAkB;AAC/C,EAAA,sCACG,KAAA,EAAA,EAAI,GAAA,EAAK,gBAAA,EAAkB,WAAA,EAAU,+BAA8B,SAAA,EAAuB,GAAG,KAAA,EAE5F,QAAA,kBAAAC,cAAA,CAACE,oBAAU,MAAA,EAAV,EAAiB,SAAA,EAAU,wBAAA,EAA0B,UAAS,CAAA,EACjE,CAAA;AAEJ;AAKO,SAAS,yBAAA,CAA0B,EAAE,SAAA,EAAW,GAAG,OAAM,EAAmC;AACjG,EAAA,uBACEF,cAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,8BAAA;AAAA,MACV,SAAA,EAAWC,WAAA,CAAG,oCAAA,EAAsC,SAAS,CAAA;AAAA,MAC5D,GAAG;AAAA;AAAA,GACN;AAEJ;;;;;;"}
@@ -1,6 +1,6 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
2
  import { useThreadTraceRow } from './thread-trace-row-context.es.js';
3
- import { D as DataPanel } from '../../../../data-panel-CWjgS1Gh.js';
3
+ import { D as DataPanel } from '../../../../data-panel-D3UfzCoE.js';
4
4
  import { c as cn } from '../../../../cn-65Adrsfj.js';
5
5
 
6
6
  function ThreadTraceDetails({ className, children, ...props }) {
@@ -24,7 +24,7 @@ function ThreadTraceDetails({ className, children, ...props }) {
24
24
  }
25
25
  function ThreadTraceDetailsHeader({ className, children, ...props }) {
26
26
  const { detailsHeaderRef } = useThreadTraceRow();
27
- return /* @__PURE__ */ jsx("div", { ref: detailsHeaderRef, "data-slot": "thread-trace-details-header", className, ...props, children: /* @__PURE__ */ jsx(DataPanel.Header, { className: "border-border border-b", children }) });
27
+ return /* @__PURE__ */ jsx("div", { ref: detailsHeaderRef, "data-slot": "thread-trace-details-header", className, ...props, children: /* @__PURE__ */ jsx(DataPanel.Header, { className: "border-b border-border", children }) });
28
28
  }
29
29
  function ThreadTraceDetailsActions({ className, ...props }) {
30
30
  return /* @__PURE__ */ jsx(
@@ -1 +1 @@
1
- {"version":3,"file":"thread-trace-details.es.js","sources":["../../../../../src/domains/traces/components/thread-trace/thread-trace-details.tsx"],"sourcesContent":["import type { ComponentProps } from 'react';\n\nimport { useThreadTraceRow } from './thread-trace-row-context';\nimport { DataPanel } from '@/ds/components/DataPanel';\nimport { cn } from '@/lib/utils';\n\nexport type ThreadTraceDetailsProps = ComponentProps<'div'>;\n\n/** The details column of a row: a `ThreadTrace.DetailsHeader` above `ThreadTrace.Spans`. The row draws the borders. */\nexport function ThreadTraceDetails({ className, children, ...props }: ThreadTraceDetailsProps) {\n const { isExpanded } = useThreadTraceRow();\n return (\n <div\n data-slot=\"thread-trace-details\"\n className={cn(\n 'min-w-0 overflow-hidden',\n // While collapsed the messages column alone sets the row height: `h-0` keeps this\n // cell out of the grid's row sizing (so measurement rounding can't nudge the row by\n // a pixel) and `min-h-full` stretches it back to the row afterwards.\n !isExpanded && 'h-0 min-h-full',\n className,\n )}\n {...props}\n >\n {children}\n </div>\n );\n}\n\nexport type ThreadTraceDetailsHeaderProps = ComponentProps<'div'>;\n\n/**\n * The header row above the span tree; children are typically a `ThreadTrace.DetailsActions`.\n * Measured: its height is taken out of the span tree budget so the details cell never\n * overshoots the messages column.\n */\nexport function ThreadTraceDetailsHeader({ className, children, ...props }: ThreadTraceDetailsHeaderProps) {\n const { detailsHeaderRef } = useThreadTraceRow();\n return (\n <div ref={detailsHeaderRef} data-slot=\"thread-trace-details-header\" className={className} {...props}>\n {/* Sole child of the measured wrapper, so the header's own `not-last:border-b` never applies. */}\n <DataPanel.Header className=\"border-border border-b\">{children}</DataPanel.Header>\n </div>\n );\n}\n\nexport type ThreadTraceDetailsActionsProps = ComponentProps<'div'>;\n\n/** Trailing controls of the header (e.g. a \"Go to trace\" link), pushed to the right. */\nexport function ThreadTraceDetailsActions({ className, ...props }: ThreadTraceDetailsActionsProps) {\n return (\n <div\n data-slot=\"thread-trace-details-actions\"\n className={cn('ml-auto flex shrink-0 items-center', className)}\n {...props}\n />\n );\n}\n"],"names":[],"mappings":";;;;;AASO,SAAS,mBAAmB,EAAE,SAAA,EAAW,QAAA,EAAU,GAAG,OAAM,EAA4B;AAC7F,EAAA,MAAM,EAAE,UAAA,EAAW,GAAI,iBAAA,EAAkB;AACzC,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,sBAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,yBAAA;AAAA;AAAA;AAAA;AAAA,QAIA,CAAC,UAAA,IAAc,gBAAA;AAAA,QACf;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ;AASO,SAAS,yBAAyB,EAAE,SAAA,EAAW,QAAA,EAAU,GAAG,OAAM,EAAkC;AACzG,EAAA,MAAM,EAAE,gBAAA,EAAiB,GAAI,iBAAA,EAAkB;AAC/C,EAAA,2BACG,KAAA,EAAA,EAAI,GAAA,EAAK,gBAAA,EAAkB,WAAA,EAAU,+BAA8B,SAAA,EAAuB,GAAG,KAAA,EAE5F,QAAA,kBAAA,GAAA,CAAC,UAAU,MAAA,EAAV,EAAiB,SAAA,EAAU,wBAAA,EAA0B,UAAS,CAAA,EACjE,CAAA;AAEJ;AAKO,SAAS,yBAAA,CAA0B,EAAE,SAAA,EAAW,GAAG,OAAM,EAAmC;AACjG,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,8BAAA;AAAA,MACV,SAAA,EAAW,EAAA,CAAG,oCAAA,EAAsC,SAAS,CAAA;AAAA,MAC5D,GAAG;AAAA;AAAA,GACN;AAEJ;;;;"}
1
+ {"version":3,"file":"thread-trace-details.es.js","sources":["../../../../../src/domains/traces/components/thread-trace/thread-trace-details.tsx"],"sourcesContent":["import type { ComponentProps } from 'react';\n\nimport { useThreadTraceRow } from './thread-trace-row-context';\nimport { DataPanel } from '@/ds/components/DataPanel';\nimport { cn } from '@/lib/utils';\n\nexport type ThreadTraceDetailsProps = ComponentProps<'div'>;\n\n/** The details column of a row: a `ThreadTrace.DetailsHeader` above `ThreadTrace.Spans`. The row draws the borders. */\nexport function ThreadTraceDetails({ className, children, ...props }: ThreadTraceDetailsProps) {\n const { isExpanded } = useThreadTraceRow();\n return (\n <div\n data-slot=\"thread-trace-details\"\n className={cn(\n 'min-w-0 overflow-hidden',\n // While collapsed the messages column alone sets the row height: `h-0` keeps this\n // cell out of the grid's row sizing (so measurement rounding can't nudge the row by\n // a pixel) and `min-h-full` stretches it back to the row afterwards.\n !isExpanded && 'h-0 min-h-full',\n className,\n )}\n {...props}\n >\n {children}\n </div>\n );\n}\n\nexport type ThreadTraceDetailsHeaderProps = ComponentProps<'div'>;\n\n/**\n * The header row above the span tree; children are typically a `ThreadTrace.DetailsActions`.\n * Measured: its height is taken out of the span tree budget so the details cell never\n * overshoots the messages column.\n */\nexport function ThreadTraceDetailsHeader({ className, children, ...props }: ThreadTraceDetailsHeaderProps) {\n const { detailsHeaderRef } = useThreadTraceRow();\n return (\n <div ref={detailsHeaderRef} data-slot=\"thread-trace-details-header\" className={className} {...props}>\n {/* Sole child of the measured wrapper, so the header's own `not-last:border-b` never applies. */}\n <DataPanel.Header className=\"border-b border-border\">{children}</DataPanel.Header>\n </div>\n );\n}\n\nexport type ThreadTraceDetailsActionsProps = ComponentProps<'div'>;\n\n/** Trailing controls of the header (e.g. a \"Go to trace\" link), pushed to the right. */\nexport function ThreadTraceDetailsActions({ className, ...props }: ThreadTraceDetailsActionsProps) {\n return (\n <div\n data-slot=\"thread-trace-details-actions\"\n className={cn('ml-auto flex shrink-0 items-center', className)}\n {...props}\n />\n );\n}\n"],"names":[],"mappings":";;;;;AASO,SAAS,mBAAmB,EAAE,SAAA,EAAW,QAAA,EAAU,GAAG,OAAM,EAA4B;AAC7F,EAAA,MAAM,EAAE,UAAA,EAAW,GAAI,iBAAA,EAAkB;AACzC,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,sBAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,yBAAA;AAAA;AAAA;AAAA;AAAA,QAIA,CAAC,UAAA,IAAc,gBAAA;AAAA,QACf;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ;AASO,SAAS,yBAAyB,EAAE,SAAA,EAAW,QAAA,EAAU,GAAG,OAAM,EAAkC;AACzG,EAAA,MAAM,EAAE,gBAAA,EAAiB,GAAI,iBAAA,EAAkB;AAC/C,EAAA,2BACG,KAAA,EAAA,EAAI,GAAA,EAAK,gBAAA,EAAkB,WAAA,EAAU,+BAA8B,SAAA,EAAuB,GAAG,KAAA,EAE5F,QAAA,kBAAA,GAAA,CAAC,UAAU,MAAA,EAAV,EAAiB,SAAA,EAAU,wBAAA,EAA0B,UAAS,CAAA,EACjE,CAAA;AAEJ;AAKO,SAAS,yBAAA,CAA0B,EAAE,SAAA,EAAW,GAAG,OAAM,EAAmC;AACjG,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,8BAAA;AAAA,MACV,SAAA,EAAW,EAAA,CAAG,oCAAA,EAAsC,SAAS,CAAA;AAAA,MAC5D,GAAG;AAAA;AAAA,GACN;AAEJ;;;;"}
@@ -5,10 +5,10 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
5
5
  const jsxRuntime = require('react/jsx-runtime');
6
6
  const domains_traces_components_threadTrace_threadTraceRow = require('./thread-trace-row.cjs.js');
7
7
  const domains_traces_components_threadTrace_threadTraceRowContext = require('./thread-trace-row-context.cjs.js');
8
- const dataPanel = require('../../../../data-panel-CWZJKBeW.cjs');
9
- const tabsRoot = require('../../../../tabs-root-C5ABfm1F.cjs');
10
- const tabsTab = require('../../../../tabs-tab-DA466DbX.cjs');
11
- const tabsContent = require('../../../../tabs-content-Bz6CZuv9.cjs');
8
+ const dataPanel = require('../../../../data-panel-CM3N_4M7.cjs');
9
+ const tabsRoot = require('../../../../tabs-root-BiV8irc3.cjs');
10
+ const tabsTab = require('../../../../tabs-tab-J91Szy3Q.cjs');
11
+ const tabsContent = require('../../../../tabs-content-Cdu6HP8U.cjs');
12
12
  const utils_cn = require('../../../../cn-DG0X1KEP.cjs');
13
13
 
14
14
  function ThreadTraceMessages({ className, innerClassName, children, ...props }) {
@@ -1,10 +1,10 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
2
  import { THREAD_TRACE_MESSAGES_TAB } from './thread-trace-row.es.js';
3
3
  import { useThreadTraceRow } from './thread-trace-row-context.es.js';
4
- import { D as DataPanel } from '../../../../data-panel-CWjgS1Gh.js';
5
- import { T as TabList, a as Tabs } from '../../../../tabs-root-CcEQrwTM.js';
6
- import { T as Tab } from '../../../../tabs-tab-BycF4dvx.js';
7
- import { T as TabContent } from '../../../../tabs-content-CKC4kIpH.js';
4
+ import { D as DataPanel } from '../../../../data-panel-D3UfzCoE.js';
5
+ import { T as TabList, a as Tabs } from '../../../../tabs-root-CJ3GkDzi.js';
6
+ import { T as Tab } from '../../../../tabs-tab-CoSCf5Ku.js';
7
+ import { T as TabContent } from '../../../../tabs-content-BeFlc4E_.js';
8
8
  import { c as cn } from '../../../../cn-65Adrsfj.js';
9
9
 
10
10
  function ThreadTraceMessages({ className, innerClassName, children, ...props }) {
@@ -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_threadTrace_threadTraceContext = require('./thread-trace-context.cjs.js');
8
- const threadRail = require('../../../../thread-rail-b-8RHNX_.cjs');
8
+ const threadRail = require('../../../../thread-rail-BVpfkSyT.cjs');
9
9
  const utils_cn = require('../../../../cn-DG0X1KEP.cjs');
10
10
 
11
11
  function ThreadTraceRail({ turns, className, railClassName, ...props }) {
@@ -1,7 +1,7 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
2
  import { useCallback } from 'react';
3
3
  import { useThreadTrace } from './thread-trace-context.es.js';
4
- import { T as ThreadRail } from '../../../../thread-rail-vsR5C0j4.js';
4
+ import { T as ThreadRail } from '../../../../thread-rail-DV89nFnn.js';
5
5
  import { c as cn } from '../../../../cn-65Adrsfj.js';
6
6
 
7
7
  function ThreadTraceRail({ turns, className, railClassName, ...props }) {
@@ -11,7 +11,7 @@ const domains_traces_components_formatHierarchicalSpans = require('../format-hie
11
11
  const domains_traces_components_traceSpanTree = require('../trace-span-tree.cjs.js');
12
12
  const domains_traces_components_threadTrace_threadTraceContext = require('./thread-trace-context.cjs.js');
13
13
  const domains_traces_components_threadTrace_threadTraceRowContext = require('./thread-trace-row-context.cjs.js');
14
- const Button = require('../../../../Button-CVewl8nT.cjs');
14
+ const Button = require('../../../../Button-C0DBEBcJ.cjs');
15
15
  const utils_cn = require('../../../../cn-DG0X1KEP.cjs');
16
16
 
17
17
  function ThreadTraceSpans({ className, timelineClassName, ...props }) {
@@ -58,7 +58,7 @@ function ThreadTraceSpans({ className, timelineClassName, ...props }) {
58
58
  isLoading
59
59
  }
60
60
  ) }),
61
- overflows && isClamped && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "from-sidebar via-sidebar/80 absolute inset-x-0 bottom-0 flex h-20 items-end justify-center bg-linear-to-t to-transparent pb-2", children: /* @__PURE__ */ jsxRuntime.jsx(Button.Button, { icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronDown, {}), variant: "ghost", size: "sm", onClick: () => setExpanded(true), children: "Show more" }) })
61
+ overflows && isClamped && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute inset-x-0 bottom-0 flex h-20 items-end justify-center bg-linear-to-t from-sidebar via-sidebar/80 to-transparent pb-2", children: /* @__PURE__ */ jsxRuntime.jsx(Button.Button, { icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronDown, {}), variant: "ghost", size: "sm", onClick: () => setExpanded(true), children: "Show more" }) })
62
62
  ]
63
63
  }
64
64
  ),
@@ -1 +1 @@
1
- {"version":3,"file":"thread-trace-spans.cjs.js","sources":["../../../../../src/domains/traces/components/thread-trace/thread-trace-spans.tsx"],"sourcesContent":["import { ChevronDown, ChevronUp } from 'lucide-react';\nimport { useMemo } from 'react';\nimport type { ComponentProps } from 'react';\n\nimport { useExpandedSpanIds } from '../../hooks/use-expanded-span-ids';\nimport { useTraceSpans } from '../../hooks/use-trace-spans';\nimport { formatHierarchicalSpans } from '../format-hierarchical-spans';\nimport { TraceSpanTree } from '../trace-span-tree';\nimport { useThreadTrace } from './thread-trace-context';\nimport { useThreadTraceRow } from './thread-trace-row-context';\nimport { Button } from '@/ds/components/Button';\nimport { cn } from '@/lib/utils';\n\nexport interface ThreadTraceSpansProps extends Omit<ComponentProps<'div'>, 'children'> {\n /** Class name of the measured wrapper around the timeline. */\n timelineClassName?: string;\n}\n\n/**\n * The span tree of a row, clamped to the messages column while the row is collapsed with a\n * \"Show more\" control (and \"Show less\" once expanded, hidden while a span of the row is open).\n * Clamping needs the measured heights from `ThreadTrace.Messages` and `ThreadTrace.DetailsHeader`;\n * without them the timeline is shown in full.\n */\nexport function ThreadTraceSpans({ className, timelineClassName, ...props }: ThreadTraceSpansProps) {\n const { selectSpan } = useThreadTrace();\n const {\n traceId,\n isActive,\n isExpanded,\n selectedSpanId,\n featuredSpanIds,\n revealSpanId,\n setExpanded,\n timelineRef,\n messagesHeight,\n timelineHeight,\n detailsHeaderHeight,\n } = useThreadTraceRow();\n\n // Passive: deduped with the (non-passive) fetch inside the consumer's messages slot and the side panel.\n const { data, isLoading } = useTraceSpans(traceId, { passive: true });\n const hierarchicalSpans = useMemo(() => formatHierarchicalSpans(data?.spans ?? []), [data]);\n const { expandedSpanIds, setExpandedSpanIds } = useExpandedSpanIds(hierarchicalSpans);\n\n // The tab header sits above the timeline, so the timeline budget is what's left of the\n // messages height once the header is taken out — otherwise the right cell overshoots the left.\n const timelineBudget =\n messagesHeight !== null && detailsHeaderHeight !== null ? messagesHeight - detailsHeaderHeight : null;\n const overflows = timelineBudget !== null && timelineHeight !== null && timelineHeight > timelineBudget;\n const isClamped = overflows && !isExpanded;\n\n return (\n <>\n {/* The clamp is applied whenever the row is collapsed, not only once `overflows` is known:\n the measurement lags a frame on mount, which would otherwise let the cell grow and\n snap back. A short timeline ignores it anyway. */}\n <div\n data-slot=\"thread-trace-spans\"\n className={cn('relative overflow-hidden', className)}\n style={!isExpanded && timelineBudget !== null ? { maxHeight: timelineBudget } : undefined}\n data-testid=\"trace-row-timeline\"\n {...props}\n >\n <div ref={timelineRef} className={cn('px-4 pt-2 pb-4', timelineClassName)}>\n <TraceSpanTree\n hierarchicalSpans={hierarchicalSpans}\n selectedSpanId={selectedSpanId}\n featuredSpanIds={featuredSpanIds}\n revealSpanId={revealSpanId}\n onSpanClick={id => selectSpan(traceId, selectedSpanId === id ? undefined : id)}\n expandedSpanIds={expandedSpanIds}\n setExpandedSpanIds={setExpandedSpanIds}\n isLoading={isLoading}\n />\n </div>\n {overflows && isClamped && (\n <div className=\"from-sidebar via-sidebar/80 absolute inset-x-0 bottom-0 flex h-20 items-end justify-center bg-linear-to-t to-transparent pb-2\">\n <Button icon={<ChevronDown />} variant=\"ghost\" size=\"sm\" onClick={() => setExpanded(true)}>\n Show more\n </Button>\n </div>\n )}\n </div>\n {/* Collapsing would hide the selected span, so the control waits until the panel closes. */}\n {overflows && !isClamped && !isActive && (\n <div className=\"flex justify-center py-2\">\n <Button icon={<ChevronUp />} variant=\"ghost\" size=\"sm\" onClick={() => setExpanded(false)}>\n Show less\n </Button>\n </div>\n )}\n </>\n );\n}\n"],"names":["useThreadTrace","useThreadTraceRow","useTraceSpans","useMemo","formatHierarchicalSpans","useExpandedSpanIds","jsxs","Fragment","cn","jsx","TraceSpanTree","Button","ChevronDown","ChevronUp"],"mappings":"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"}
1
+ {"version":3,"file":"thread-trace-spans.cjs.js","sources":["../../../../../src/domains/traces/components/thread-trace/thread-trace-spans.tsx"],"sourcesContent":["import { ChevronDown, ChevronUp } from 'lucide-react';\nimport { useMemo } from 'react';\nimport type { ComponentProps } from 'react';\n\nimport { useExpandedSpanIds } from '../../hooks/use-expanded-span-ids';\nimport { useTraceSpans } from '../../hooks/use-trace-spans';\nimport { formatHierarchicalSpans } from '../format-hierarchical-spans';\nimport { TraceSpanTree } from '../trace-span-tree';\nimport { useThreadTrace } from './thread-trace-context';\nimport { useThreadTraceRow } from './thread-trace-row-context';\nimport { Button } from '@/ds/components/Button';\nimport { cn } from '@/lib/utils';\n\nexport interface ThreadTraceSpansProps extends Omit<ComponentProps<'div'>, 'children'> {\n /** Class name of the measured wrapper around the timeline. */\n timelineClassName?: string;\n}\n\n/**\n * The span tree of a row, clamped to the messages column while the row is collapsed with a\n * \"Show more\" control (and \"Show less\" once expanded, hidden while a span of the row is open).\n * Clamping needs the measured heights from `ThreadTrace.Messages` and `ThreadTrace.DetailsHeader`;\n * without them the timeline is shown in full.\n */\nexport function ThreadTraceSpans({ className, timelineClassName, ...props }: ThreadTraceSpansProps) {\n const { selectSpan } = useThreadTrace();\n const {\n traceId,\n isActive,\n isExpanded,\n selectedSpanId,\n featuredSpanIds,\n revealSpanId,\n setExpanded,\n timelineRef,\n messagesHeight,\n timelineHeight,\n detailsHeaderHeight,\n } = useThreadTraceRow();\n\n // Passive: deduped with the (non-passive) fetch inside the consumer's messages slot and the side panel.\n const { data, isLoading } = useTraceSpans(traceId, { passive: true });\n const hierarchicalSpans = useMemo(() => formatHierarchicalSpans(data?.spans ?? []), [data]);\n const { expandedSpanIds, setExpandedSpanIds } = useExpandedSpanIds(hierarchicalSpans);\n\n // The tab header sits above the timeline, so the timeline budget is what's left of the\n // messages height once the header is taken out — otherwise the right cell overshoots the left.\n const timelineBudget =\n messagesHeight !== null && detailsHeaderHeight !== null ? messagesHeight - detailsHeaderHeight : null;\n const overflows = timelineBudget !== null && timelineHeight !== null && timelineHeight > timelineBudget;\n const isClamped = overflows && !isExpanded;\n\n return (\n <>\n {/* The clamp is applied whenever the row is collapsed, not only once `overflows` is known:\n the measurement lags a frame on mount, which would otherwise let the cell grow and\n snap back. A short timeline ignores it anyway. */}\n <div\n data-slot=\"thread-trace-spans\"\n className={cn('relative overflow-hidden', className)}\n style={!isExpanded && timelineBudget !== null ? { maxHeight: timelineBudget } : undefined}\n data-testid=\"trace-row-timeline\"\n {...props}\n >\n <div ref={timelineRef} className={cn('px-4 pt-2 pb-4', timelineClassName)}>\n <TraceSpanTree\n hierarchicalSpans={hierarchicalSpans}\n selectedSpanId={selectedSpanId}\n featuredSpanIds={featuredSpanIds}\n revealSpanId={revealSpanId}\n onSpanClick={id => selectSpan(traceId, selectedSpanId === id ? undefined : id)}\n expandedSpanIds={expandedSpanIds}\n setExpandedSpanIds={setExpandedSpanIds}\n isLoading={isLoading}\n />\n </div>\n {overflows && isClamped && (\n <div className=\"absolute inset-x-0 bottom-0 flex h-20 items-end justify-center bg-linear-to-t from-sidebar via-sidebar/80 to-transparent pb-2\">\n <Button icon={<ChevronDown />} variant=\"ghost\" size=\"sm\" onClick={() => setExpanded(true)}>\n Show more\n </Button>\n </div>\n )}\n </div>\n {/* Collapsing would hide the selected span, so the control waits until the panel closes. */}\n {overflows && !isClamped && !isActive && (\n <div className=\"flex justify-center py-2\">\n <Button icon={<ChevronUp />} variant=\"ghost\" size=\"sm\" onClick={() => setExpanded(false)}>\n Show less\n </Button>\n </div>\n )}\n </>\n );\n}\n"],"names":["useThreadTrace","useThreadTraceRow","useTraceSpans","useMemo","formatHierarchicalSpans","useExpandedSpanIds","jsxs","Fragment","cn","jsx","TraceSpanTree","Button","ChevronDown","ChevronUp"],"mappings":"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"}
@@ -7,7 +7,7 @@ import { formatHierarchicalSpans } from '../format-hierarchical-spans.es.js';
7
7
  import { TraceSpanTree } from '../trace-span-tree.es.js';
8
8
  import { useThreadTrace } from './thread-trace-context.es.js';
9
9
  import { useThreadTraceRow } from './thread-trace-row-context.es.js';
10
- import { B as Button } from '../../../../Button-cWcBEd-G.js';
10
+ import { B as Button } from '../../../../Button-C9cvaVFG.js';
11
11
  import { c as cn } from '../../../../cn-65Adrsfj.js';
12
12
 
13
13
  function ThreadTraceSpans({ className, timelineClassName, ...props }) {
@@ -54,7 +54,7 @@ function ThreadTraceSpans({ className, timelineClassName, ...props }) {
54
54
  isLoading
55
55
  }
56
56
  ) }),
57
- overflows && isClamped && /* @__PURE__ */ jsx("div", { className: "from-sidebar via-sidebar/80 absolute inset-x-0 bottom-0 flex h-20 items-end justify-center bg-linear-to-t to-transparent pb-2", children: /* @__PURE__ */ jsx(Button, { icon: /* @__PURE__ */ jsx(ChevronDown, {}), variant: "ghost", size: "sm", onClick: () => setExpanded(true), children: "Show more" }) })
57
+ overflows && isClamped && /* @__PURE__ */ jsx("div", { className: "absolute inset-x-0 bottom-0 flex h-20 items-end justify-center bg-linear-to-t from-sidebar via-sidebar/80 to-transparent pb-2", children: /* @__PURE__ */ jsx(Button, { icon: /* @__PURE__ */ jsx(ChevronDown, {}), variant: "ghost", size: "sm", onClick: () => setExpanded(true), children: "Show more" }) })
58
58
  ]
59
59
  }
60
60
  ),
@@ -1 +1 @@
1
- {"version":3,"file":"thread-trace-spans.es.js","sources":["../../../../../src/domains/traces/components/thread-trace/thread-trace-spans.tsx"],"sourcesContent":["import { ChevronDown, ChevronUp } from 'lucide-react';\nimport { useMemo } from 'react';\nimport type { ComponentProps } from 'react';\n\nimport { useExpandedSpanIds } from '../../hooks/use-expanded-span-ids';\nimport { useTraceSpans } from '../../hooks/use-trace-spans';\nimport { formatHierarchicalSpans } from '../format-hierarchical-spans';\nimport { TraceSpanTree } from '../trace-span-tree';\nimport { useThreadTrace } from './thread-trace-context';\nimport { useThreadTraceRow } from './thread-trace-row-context';\nimport { Button } from '@/ds/components/Button';\nimport { cn } from '@/lib/utils';\n\nexport interface ThreadTraceSpansProps extends Omit<ComponentProps<'div'>, 'children'> {\n /** Class name of the measured wrapper around the timeline. */\n timelineClassName?: string;\n}\n\n/**\n * The span tree of a row, clamped to the messages column while the row is collapsed with a\n * \"Show more\" control (and \"Show less\" once expanded, hidden while a span of the row is open).\n * Clamping needs the measured heights from `ThreadTrace.Messages` and `ThreadTrace.DetailsHeader`;\n * without them the timeline is shown in full.\n */\nexport function ThreadTraceSpans({ className, timelineClassName, ...props }: ThreadTraceSpansProps) {\n const { selectSpan } = useThreadTrace();\n const {\n traceId,\n isActive,\n isExpanded,\n selectedSpanId,\n featuredSpanIds,\n revealSpanId,\n setExpanded,\n timelineRef,\n messagesHeight,\n timelineHeight,\n detailsHeaderHeight,\n } = useThreadTraceRow();\n\n // Passive: deduped with the (non-passive) fetch inside the consumer's messages slot and the side panel.\n const { data, isLoading } = useTraceSpans(traceId, { passive: true });\n const hierarchicalSpans = useMemo(() => formatHierarchicalSpans(data?.spans ?? []), [data]);\n const { expandedSpanIds, setExpandedSpanIds } = useExpandedSpanIds(hierarchicalSpans);\n\n // The tab header sits above the timeline, so the timeline budget is what's left of the\n // messages height once the header is taken out — otherwise the right cell overshoots the left.\n const timelineBudget =\n messagesHeight !== null && detailsHeaderHeight !== null ? messagesHeight - detailsHeaderHeight : null;\n const overflows = timelineBudget !== null && timelineHeight !== null && timelineHeight > timelineBudget;\n const isClamped = overflows && !isExpanded;\n\n return (\n <>\n {/* The clamp is applied whenever the row is collapsed, not only once `overflows` is known:\n the measurement lags a frame on mount, which would otherwise let the cell grow and\n snap back. A short timeline ignores it anyway. */}\n <div\n data-slot=\"thread-trace-spans\"\n className={cn('relative overflow-hidden', className)}\n style={!isExpanded && timelineBudget !== null ? { maxHeight: timelineBudget } : undefined}\n data-testid=\"trace-row-timeline\"\n {...props}\n >\n <div ref={timelineRef} className={cn('px-4 pt-2 pb-4', timelineClassName)}>\n <TraceSpanTree\n hierarchicalSpans={hierarchicalSpans}\n selectedSpanId={selectedSpanId}\n featuredSpanIds={featuredSpanIds}\n revealSpanId={revealSpanId}\n onSpanClick={id => selectSpan(traceId, selectedSpanId === id ? undefined : id)}\n expandedSpanIds={expandedSpanIds}\n setExpandedSpanIds={setExpandedSpanIds}\n isLoading={isLoading}\n />\n </div>\n {overflows && isClamped && (\n <div className=\"from-sidebar via-sidebar/80 absolute inset-x-0 bottom-0 flex h-20 items-end justify-center bg-linear-to-t to-transparent pb-2\">\n <Button icon={<ChevronDown />} variant=\"ghost\" size=\"sm\" onClick={() => setExpanded(true)}>\n Show more\n </Button>\n </div>\n )}\n </div>\n {/* Collapsing would hide the selected span, so the control waits until the panel closes. */}\n {overflows && !isClamped && !isActive && (\n <div className=\"flex justify-center py-2\">\n <Button icon={<ChevronUp />} variant=\"ghost\" size=\"sm\" onClick={() => setExpanded(false)}>\n Show less\n </Button>\n </div>\n )}\n </>\n );\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"thread-trace-spans.es.js","sources":["../../../../../src/domains/traces/components/thread-trace/thread-trace-spans.tsx"],"sourcesContent":["import { ChevronDown, ChevronUp } from 'lucide-react';\nimport { useMemo } from 'react';\nimport type { ComponentProps } from 'react';\n\nimport { useExpandedSpanIds } from '../../hooks/use-expanded-span-ids';\nimport { useTraceSpans } from '../../hooks/use-trace-spans';\nimport { formatHierarchicalSpans } from '../format-hierarchical-spans';\nimport { TraceSpanTree } from '../trace-span-tree';\nimport { useThreadTrace } from './thread-trace-context';\nimport { useThreadTraceRow } from './thread-trace-row-context';\nimport { Button } from '@/ds/components/Button';\nimport { cn } from '@/lib/utils';\n\nexport interface ThreadTraceSpansProps extends Omit<ComponentProps<'div'>, 'children'> {\n /** Class name of the measured wrapper around the timeline. */\n timelineClassName?: string;\n}\n\n/**\n * The span tree of a row, clamped to the messages column while the row is collapsed with a\n * \"Show more\" control (and \"Show less\" once expanded, hidden while a span of the row is open).\n * Clamping needs the measured heights from `ThreadTrace.Messages` and `ThreadTrace.DetailsHeader`;\n * without them the timeline is shown in full.\n */\nexport function ThreadTraceSpans({ className, timelineClassName, ...props }: ThreadTraceSpansProps) {\n const { selectSpan } = useThreadTrace();\n const {\n traceId,\n isActive,\n isExpanded,\n selectedSpanId,\n featuredSpanIds,\n revealSpanId,\n setExpanded,\n timelineRef,\n messagesHeight,\n timelineHeight,\n detailsHeaderHeight,\n } = useThreadTraceRow();\n\n // Passive: deduped with the (non-passive) fetch inside the consumer's messages slot and the side panel.\n const { data, isLoading } = useTraceSpans(traceId, { passive: true });\n const hierarchicalSpans = useMemo(() => formatHierarchicalSpans(data?.spans ?? []), [data]);\n const { expandedSpanIds, setExpandedSpanIds } = useExpandedSpanIds(hierarchicalSpans);\n\n // The tab header sits above the timeline, so the timeline budget is what's left of the\n // messages height once the header is taken out — otherwise the right cell overshoots the left.\n const timelineBudget =\n messagesHeight !== null && detailsHeaderHeight !== null ? messagesHeight - detailsHeaderHeight : null;\n const overflows = timelineBudget !== null && timelineHeight !== null && timelineHeight > timelineBudget;\n const isClamped = overflows && !isExpanded;\n\n return (\n <>\n {/* The clamp is applied whenever the row is collapsed, not only once `overflows` is known:\n the measurement lags a frame on mount, which would otherwise let the cell grow and\n snap back. A short timeline ignores it anyway. */}\n <div\n data-slot=\"thread-trace-spans\"\n className={cn('relative overflow-hidden', className)}\n style={!isExpanded && timelineBudget !== null ? { maxHeight: timelineBudget } : undefined}\n data-testid=\"trace-row-timeline\"\n {...props}\n >\n <div ref={timelineRef} className={cn('px-4 pt-2 pb-4', timelineClassName)}>\n <TraceSpanTree\n hierarchicalSpans={hierarchicalSpans}\n selectedSpanId={selectedSpanId}\n featuredSpanIds={featuredSpanIds}\n revealSpanId={revealSpanId}\n onSpanClick={id => selectSpan(traceId, selectedSpanId === id ? undefined : id)}\n expandedSpanIds={expandedSpanIds}\n setExpandedSpanIds={setExpandedSpanIds}\n isLoading={isLoading}\n />\n </div>\n {overflows && isClamped && (\n <div className=\"absolute inset-x-0 bottom-0 flex h-20 items-end justify-center bg-linear-to-t from-sidebar via-sidebar/80 to-transparent pb-2\">\n <Button icon={<ChevronDown />} variant=\"ghost\" size=\"sm\" onClick={() => setExpanded(true)}>\n Show more\n </Button>\n </div>\n )}\n </div>\n {/* Collapsing would hide the selected span, so the control waits until the panel closes. */}\n {overflows && !isClamped && !isActive && (\n <div className=\"flex justify-center py-2\">\n <Button icon={<ChevronUp />} variant=\"ghost\" size=\"sm\" onClick={() => setExpanded(false)}>\n Show less\n </Button>\n </div>\n )}\n </>\n );\n}\n"],"names":[],"mappings":"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"}
@@ -40,7 +40,7 @@ function TimelineNameCol({
40
40
  "aria-selected": isSelected,
41
41
  onClick: () => onSpanClick?.(span.id),
42
42
  className: utils_cn.cn("flex min-h-8 cursor-pointer items-stretch rounded-md opacity-80 hover:bg-fill-subtle", {
43
- "opacity-40 [&:hover]:opacity-70 dark:opacity-30 dark:[&:hover]:opacity-60": isFaded,
43
+ "opacity-40 dark:opacity-30 [&:hover]:opacity-70 dark:[&:hover]:opacity-60": isFaded,
44
44
  "bg-fill-hover": isSelected
45
45
  }),
46
46
  style: { paddingLeft: `${depth * 1}rem` },
@@ -75,7 +75,7 @@ function TimelineNameCol({
75
75
  children: span.name
76
76
  }
77
77
  ),
78
- meta && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-meta text-muted-foreground shrink-0 lg:tabular-nums", children: meta })
78
+ meta && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "shrink-0 text-meta text-muted-foreground lg:tabular-nums", children: meta })
79
79
  ] })
80
80
  ]
81
81
  }
@@ -1 +1 @@
1
- {"version":3,"file":"timeline-name-col.cjs.js","sources":["../../../../src/domains/traces/components/timeline-name-col.tsx"],"sourcesContent":["import { ChevronDownIcon, ChevronRightIcon } from 'lucide-react';\nimport type { ReactNode } from 'react';\nimport { useEffect, useRef } from 'react';\nimport type { UISpan, UISpanStyle } from '../types';\nimport { TimelineStructureSign } from './timeline-structure-sign';\nimport { cn } from '@/lib/utils';\n\ntype TimelineNameColProps = {\n span: UISpan;\n spanUI?: UISpanStyle | null;\n isFaded?: boolean;\n depth?: number;\n onSpanClick?: (id: string) => void;\n selectedSpanId?: string;\n revealSpanId?: string;\n isLastChild?: boolean;\n hasChildren?: boolean;\n numOfChildren?: number;\n isRootSpan?: boolean;\n isExpanded?: boolean;\n toggleChildren?: () => void;\n /** Secondary line rendered under the span name (duration, ...). */\n meta?: ReactNode;\n};\n\nexport function TimelineNameCol({\n span,\n spanUI,\n isFaded,\n depth = 0,\n onSpanClick,\n selectedSpanId,\n revealSpanId,\n isLastChild,\n hasChildren,\n numOfChildren = 0,\n isRootSpan,\n isExpanded,\n toggleChildren,\n meta,\n}: TimelineNameColProps) {\n const rowRef = useRef<HTMLDivElement>(null);\n const isSelected = selectedSpanId === span.id;\n const isRevealed = revealSpanId === span.id;\n const shouldScrollIntoView = isSelected || isRevealed;\n\n // Nested rows mount late, once expansion opens their ancestors; the effect runs on that\n // mount as well as when the row becomes the selected / revealed one.\n useEffect(() => {\n if (shouldScrollIntoView) rowRef.current?.scrollIntoView({ block: 'nearest', behavior: 'smooth' });\n }, [shouldScrollIntoView]);\n\n const toggleLabel = isExpanded ? `Collapse children (${numOfChildren})` : `Expand children (${numOfChildren})`;\n\n return (\n <div\n ref={rowRef}\n aria-label={`View details for span ${span.name}`}\n aria-selected={isSelected}\n // The whole row selects the span; the name button is the keyboard target and its click bubbles here.\n onClick={() => onSpanClick?.(span.id)}\n className={cn('flex min-h-8 cursor-pointer items-stretch rounded-md opacity-80 hover:bg-fill-subtle', {\n 'opacity-40 [&:hover]:opacity-70 dark:opacity-30 dark:[&:hover]:opacity-60': isFaded,\n 'bg-fill-hover': isSelected,\n })}\n style={{ paddingLeft: `${depth * 1}rem` }}\n >\n {!isRootSpan && <TimelineStructureSign isLastChild={isLastChild} />}\n\n <button\n type=\"button\"\n className={cn(\n 'flex min-w-0 flex-1 cursor-pointer items-center gap-1.5 self-stretch rounded-md px-2 py-1 text-left text-caption text-foreground',\n 'focus:outline-none focus-visible:ring-1 focus-visible:ring-accent1 focus-visible:ring-inset',\n )}\n >\n {spanUI?.color && (\n <span\n aria-hidden\n title={spanUI.label}\n className=\"inline-block size-2 shrink-0 rounded-full\"\n style={{ backgroundColor: spanUI.color }}\n />\n )}\n {/* Searchable: the span name is what the timeline search matches on. When the match\n is in the span's payload instead, the whole name is painted in the indirect color\n so the row explains its own presence. */}\n {/* Duration stacks under the name on narrow layouts and moves inline at the end of the row from lg. */}\n <span className=\"flex min-w-0 flex-1 flex-col lg:flex-row lg:items-center lg:justify-between lg:gap-2\">\n <span\n data-highlight={span.matchedInPayloadOnly ? undefined : ''}\n data-highlight-indirect={span.matchedInPayloadOnly ? '' : undefined}\n title={span.matchedInPayloadOnly ? 'Matches your search in this span’s details' : undefined}\n className=\"min-w-0 truncate\"\n >\n {span.name}\n </span>\n {meta && <span className=\"text-meta text-muted-foreground shrink-0 lg:tabular-nums\">{meta}</span>}\n </span>\n </button>\n\n {/* Expand toggle sits at the end of the row; the slot is always present so names stay aligned. */}\n <div className=\"flex w-8 shrink-0 items-center justify-center self-stretch pr-1\">\n {hasChildren && (\n <button\n type=\"button\"\n onClick={e => {\n e.stopPropagation();\n toggleChildren?.();\n }}\n aria-label={toggleLabel}\n aria-expanded={isExpanded}\n className={cn(\n 'flex size-5 cursor-pointer items-center justify-center rounded-md',\n 'hover:bg-fill [&:hover>svg]:opacity-100 [&>svg]:size-4 [&>svg]:opacity-50',\n 'focus:outline-none focus-visible:ring-1 focus-visible:ring-accent1',\n )}\n >\n {isExpanded ? <ChevronDownIcon /> : <ChevronRightIcon />}\n </button>\n )}\n </div>\n </div>\n );\n}\n"],"names":["useRef","useEffect","jsxs","cn","jsx","TimelineStructureSign","ChevronDownIcon","ChevronRightIcon"],"mappings":"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"}
1
+ {"version":3,"file":"timeline-name-col.cjs.js","sources":["../../../../src/domains/traces/components/timeline-name-col.tsx"],"sourcesContent":["import { ChevronDownIcon, ChevronRightIcon } from 'lucide-react';\nimport type { ReactNode } from 'react';\nimport { useEffect, useRef } from 'react';\nimport type { UISpan, UISpanStyle } from '../types';\nimport { TimelineStructureSign } from './timeline-structure-sign';\nimport { cn } from '@/lib/utils';\n\ntype TimelineNameColProps = {\n span: UISpan;\n spanUI?: UISpanStyle | null;\n isFaded?: boolean;\n depth?: number;\n onSpanClick?: (id: string) => void;\n selectedSpanId?: string;\n revealSpanId?: string;\n isLastChild?: boolean;\n hasChildren?: boolean;\n numOfChildren?: number;\n isRootSpan?: boolean;\n isExpanded?: boolean;\n toggleChildren?: () => void;\n /** Secondary line rendered under the span name (duration, ...). */\n meta?: ReactNode;\n};\n\nexport function TimelineNameCol({\n span,\n spanUI,\n isFaded,\n depth = 0,\n onSpanClick,\n selectedSpanId,\n revealSpanId,\n isLastChild,\n hasChildren,\n numOfChildren = 0,\n isRootSpan,\n isExpanded,\n toggleChildren,\n meta,\n}: TimelineNameColProps) {\n const rowRef = useRef<HTMLDivElement>(null);\n const isSelected = selectedSpanId === span.id;\n const isRevealed = revealSpanId === span.id;\n const shouldScrollIntoView = isSelected || isRevealed;\n\n // Nested rows mount late, once expansion opens their ancestors; the effect runs on that\n // mount as well as when the row becomes the selected / revealed one.\n useEffect(() => {\n if (shouldScrollIntoView) rowRef.current?.scrollIntoView({ block: 'nearest', behavior: 'smooth' });\n }, [shouldScrollIntoView]);\n\n const toggleLabel = isExpanded ? `Collapse children (${numOfChildren})` : `Expand children (${numOfChildren})`;\n\n return (\n <div\n ref={rowRef}\n aria-label={`View details for span ${span.name}`}\n aria-selected={isSelected}\n // The whole row selects the span; the name button is the keyboard target and its click bubbles here.\n onClick={() => onSpanClick?.(span.id)}\n className={cn('flex min-h-8 cursor-pointer items-stretch rounded-md opacity-80 hover:bg-fill-subtle', {\n 'opacity-40 dark:opacity-30 [&:hover]:opacity-70 dark:[&:hover]:opacity-60': isFaded,\n 'bg-fill-hover': isSelected,\n })}\n style={{ paddingLeft: `${depth * 1}rem` }}\n >\n {!isRootSpan && <TimelineStructureSign isLastChild={isLastChild} />}\n\n <button\n type=\"button\"\n className={cn(\n 'flex min-w-0 flex-1 cursor-pointer items-center gap-1.5 self-stretch rounded-md px-2 py-1 text-left text-caption text-foreground',\n 'focus:outline-none focus-visible:ring-1 focus-visible:ring-accent1 focus-visible:ring-inset',\n )}\n >\n {spanUI?.color && (\n <span\n aria-hidden\n title={spanUI.label}\n className=\"inline-block size-2 shrink-0 rounded-full\"\n style={{ backgroundColor: spanUI.color }}\n />\n )}\n {/* Searchable: the span name is what the timeline search matches on. When the match\n is in the span's payload instead, the whole name is painted in the indirect color\n so the row explains its own presence. */}\n {/* Duration stacks under the name on narrow layouts and moves inline at the end of the row from lg. */}\n <span className=\"flex min-w-0 flex-1 flex-col lg:flex-row lg:items-center lg:justify-between lg:gap-2\">\n <span\n data-highlight={span.matchedInPayloadOnly ? undefined : ''}\n data-highlight-indirect={span.matchedInPayloadOnly ? '' : undefined}\n title={span.matchedInPayloadOnly ? 'Matches your search in this span’s details' : undefined}\n className=\"min-w-0 truncate\"\n >\n {span.name}\n </span>\n {meta && <span className=\"shrink-0 text-meta text-muted-foreground lg:tabular-nums\">{meta}</span>}\n </span>\n </button>\n\n {/* Expand toggle sits at the end of the row; the slot is always present so names stay aligned. */}\n <div className=\"flex w-8 shrink-0 items-center justify-center self-stretch pr-1\">\n {hasChildren && (\n <button\n type=\"button\"\n onClick={e => {\n e.stopPropagation();\n toggleChildren?.();\n }}\n aria-label={toggleLabel}\n aria-expanded={isExpanded}\n className={cn(\n 'flex size-5 cursor-pointer items-center justify-center rounded-md',\n 'hover:bg-fill [&:hover>svg]:opacity-100 [&>svg]:size-4 [&>svg]:opacity-50',\n 'focus:outline-none focus-visible:ring-1 focus-visible:ring-accent1',\n )}\n >\n {isExpanded ? <ChevronDownIcon /> : <ChevronRightIcon />}\n </button>\n )}\n </div>\n </div>\n );\n}\n"],"names":["useRef","useEffect","jsxs","cn","jsx","TimelineStructureSign","ChevronDownIcon","ChevronRightIcon"],"mappings":"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"}
@@ -36,7 +36,7 @@ function TimelineNameCol({
36
36
  "aria-selected": isSelected,
37
37
  onClick: () => onSpanClick?.(span.id),
38
38
  className: cn("flex min-h-8 cursor-pointer items-stretch rounded-md opacity-80 hover:bg-fill-subtle", {
39
- "opacity-40 [&:hover]:opacity-70 dark:opacity-30 dark:[&:hover]:opacity-60": isFaded,
39
+ "opacity-40 dark:opacity-30 [&:hover]:opacity-70 dark:[&:hover]:opacity-60": isFaded,
40
40
  "bg-fill-hover": isSelected
41
41
  }),
42
42
  style: { paddingLeft: `${depth * 1}rem` },
@@ -71,7 +71,7 @@ function TimelineNameCol({
71
71
  children: span.name
72
72
  }
73
73
  ),
74
- meta && /* @__PURE__ */ jsx("span", { className: "text-meta text-muted-foreground shrink-0 lg:tabular-nums", children: meta })
74
+ meta && /* @__PURE__ */ jsx("span", { className: "shrink-0 text-meta text-muted-foreground lg:tabular-nums", children: meta })
75
75
  ] })
76
76
  ]
77
77
  }