@mastra/playground-ui 57.0.0 → 58.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 (763) hide show
  1. package/README.md +25 -0
  2. package/dist/{Button-KUj0U-5I.js → Button-B8nF87ai.js} +2 -8
  3. package/dist/Button-B8nF87ai.js.map +1 -0
  4. package/dist/{Button-MMZPEb_q.cjs → Button-BAMnPqos.cjs} +1 -7
  5. package/dist/Button-BAMnPqos.cjs.map +1 -0
  6. package/dist/{Card-DwGasv0K.cjs → Card-BbwF20OW.cjs} +3 -3
  7. package/dist/Card-BbwF20OW.cjs.map +1 -0
  8. package/dist/{Card-B_buJ5yF.js → Card-DmT57Pve.js} +3 -3
  9. package/dist/Card-DmT57Pve.js.map +1 -0
  10. package/dist/{EmptyState-DiSP6UIy.cjs → EmptyState-2XQgeju6.cjs} +12 -3
  11. package/dist/EmptyState-2XQgeju6.cjs.map +1 -0
  12. package/dist/{EmptyState-B6cyZw6m.js → EmptyState-Bc4nJ9QH.js} +13 -4
  13. package/dist/EmptyState-Bc4nJ9QH.js.map +1 -0
  14. package/dist/{Notice-CPyYcX5J.cjs → Notice-AUNd8fqT.cjs} +2 -2
  15. package/dist/{Notice-CPyYcX5J.cjs.map → Notice-AUNd8fqT.cjs.map} +1 -1
  16. package/dist/{Notice-KC18b8Nd.js → Notice-WT8G4OA6.js} +2 -2
  17. package/dist/{Notice-KC18b8Nd.js.map → Notice-WT8G4OA6.js.map} +1 -1
  18. package/dist/{ask-user-DaRRR4qQ.cjs → ask-user-BPpgiE7k.cjs} +3 -3
  19. package/dist/{ask-user-DaRRR4qQ.cjs.map → ask-user-BPpgiE7k.cjs.map} +1 -1
  20. package/dist/{ask-user-C4DTzEQF.js → ask-user-jDUt7hgT.js} +3 -3
  21. package/dist/{ask-user-C4DTzEQF.js.map → ask-user-jDUt7hgT.js.map} +1 -1
  22. package/dist/buttons-group.css +2 -14
  23. package/dist/{chat-notification-DeKD1Ifx.js → chat-notification-CmdRGO_D.js} +2 -2
  24. package/dist/{chat-notification-DeKD1Ifx.js.map → chat-notification-CmdRGO_D.js.map} +1 -1
  25. package/dist/{chat-notification-C5Ox5tuS.cjs → chat-notification-DJykWtoj.cjs} +2 -2
  26. package/dist/{chat-notification-C5Ox5tuS.cjs.map → chat-notification-DJykWtoj.cjs.map} +1 -1
  27. package/dist/{chat-signal-DiAHks6_.js → chat-signal-Vg8pGXwH.js} +2 -2
  28. package/dist/{chat-signal-DiAHks6_.js.map → chat-signal-Vg8pGXwH.js.map} +1 -1
  29. package/dist/{chat-signal-ClyJeml8.cjs → chat-signal-xs3FkPts.cjs} +2 -2
  30. package/dist/{chat-signal-ClyJeml8.cjs.map → chat-signal-xs3FkPts.cjs.map} +1 -1
  31. package/dist/{code-block-D37olB3O.js → code-block-BD2N5Yi2.js} +5 -5
  32. package/dist/{code-block-D37olB3O.js.map → code-block-BD2N5Yi2.js.map} +1 -1
  33. package/dist/{code-block-BoTq0TMr.cjs → code-block-fI67m2KV.cjs} +5 -5
  34. package/dist/{code-block-BoTq0TMr.cjs.map → code-block-fI67m2KV.cjs.map} +1 -1
  35. package/dist/{code-editor-BQTDma1I.js → code-editor-C-0srcj0.js} +4 -3
  36. package/dist/code-editor-C-0srcj0.js.map +1 -0
  37. package/dist/{code-editor-BfoJXq9l.cjs → code-editor-CFu_BYpQ.cjs} +4 -3
  38. package/dist/code-editor-CFu_BYpQ.cjs.map +1 -0
  39. package/dist/{combobox-Bn_uyUSB.cjs → combobox-BoSB-muq.cjs} +17 -9
  40. package/dist/combobox-BoSB-muq.cjs.map +1 -0
  41. package/dist/{combobox-Cykfy5wc.js → combobox-Cd0JPUQW.js} +17 -9
  42. package/dist/combobox-Cd0JPUQW.js.map +1 -0
  43. package/dist/{combobox-styles-iuJUkJEQ.js → combobox-styles-BhUqhOvz.js} +4 -2
  44. package/dist/combobox-styles-BhUqhOvz.js.map +1 -0
  45. package/dist/{combobox-styles-CSsS2LEx.cjs → combobox-styles-LHrC0tU0.cjs} +4 -2
  46. package/dist/combobox-styles-LHrC0tU0.cjs.map +1 -0
  47. package/dist/{command-B7H-emho.cjs → command-AVQzLcYR.cjs} +2 -2
  48. package/dist/{command-B7H-emho.cjs.map → command-AVQzLcYR.cjs.map} +1 -1
  49. package/dist/{command-Bmy4PznC.js → command-DhiJvyMM.js} +2 -2
  50. package/dist/{command-Bmy4PznC.js.map → command-DhiJvyMM.js.map} +1 -1
  51. package/dist/components/AlertDialog.cjs.js +2 -2
  52. package/dist/components/AlertDialog.cjs.js.map +1 -1
  53. package/dist/components/AlertDialog.es.js +3 -3
  54. package/dist/components/AlertDialog.es.js.map +1 -1
  55. package/dist/components/Button.cjs.js +1 -1
  56. package/dist/components/Button.es.js +2 -2
  57. package/dist/components/Card.cjs.js +1 -1
  58. package/dist/components/Card.es.js +1 -1
  59. package/dist/components/ClampedText.cjs.js +1 -1
  60. package/dist/components/ClampedText.es.js +1 -1
  61. package/dist/components/CodeBlock.cjs.js +1 -1
  62. package/dist/components/CodeBlock.es.js +1 -1
  63. package/dist/components/CodeEditor.cjs.js +1 -1
  64. package/dist/components/CodeEditor.es.js +1 -1
  65. package/dist/components/Columns.cjs.js +2 -106
  66. package/dist/components/Columns.cjs.js.map +1 -1
  67. package/dist/components/Columns.es.js +4 -107
  68. package/dist/components/Columns.es.js.map +1 -1
  69. package/dist/components/Combobox.cjs.js +2 -2
  70. package/dist/components/Combobox.es.js +2 -2
  71. package/dist/components/Command.cjs.js +1 -1
  72. package/dist/components/Command.es.js +1 -1
  73. package/dist/components/CommandPalette.cjs.js +1 -1
  74. package/dist/components/CommandPalette.es.js +1 -1
  75. package/dist/components/Comment.cjs.js +3 -3
  76. package/dist/components/Comment.cjs.js.map +1 -1
  77. package/dist/components/Comment.es.js +3 -3
  78. package/dist/components/Comment.es.js.map +1 -1
  79. package/dist/components/CopyButton.cjs.js +1 -1
  80. package/dist/components/CopyButton.es.js +1 -1
  81. package/dist/components/DataCodeSection.cjs.js +1 -1
  82. package/dist/components/DataCodeSection.es.js +1 -1
  83. package/dist/components/DataDetailsPanel.cjs.js +2 -2
  84. package/dist/components/DataDetailsPanel.es.js +2 -2
  85. package/dist/components/DataKeysAndValues.cjs.js +1 -1
  86. package/dist/components/DataKeysAndValues.es.js +1 -1
  87. package/dist/components/DataList.cjs.js +3 -3
  88. package/dist/components/DataList.es.js +3 -3
  89. package/dist/components/DataPanel.cjs.js +1 -1
  90. package/dist/components/DataPanel.es.js +1 -1
  91. package/dist/components/DateRangeTimeline.cjs.js +1 -1
  92. package/dist/components/DateRangeTimeline.es.js +1 -1
  93. package/dist/components/DateTimePicker.cjs.js +10 -4
  94. package/dist/components/DateTimePicker.cjs.js.map +1 -1
  95. package/dist/components/DateTimePicker.es.js +10 -4
  96. package/dist/components/DateTimePicker.es.js.map +1 -1
  97. package/dist/components/DateTimeRangePicker.cjs.js +1 -1
  98. package/dist/components/DateTimeRangePicker.es.js +1 -1
  99. package/dist/components/Dialog.cjs.js +2 -2
  100. package/dist/components/Dialog.es.js +3 -3
  101. package/dist/components/DisabledFeatureButton.cjs.js +1 -1
  102. package/dist/components/DisabledFeatureButton.es.js +1 -1
  103. package/dist/components/Drawer.cjs.js +1 -1
  104. package/dist/components/Drawer.es.js +1 -1
  105. package/dist/components/EmptyState.cjs.js +1 -1
  106. package/dist/components/EmptyState.es.js +1 -1
  107. package/dist/components/EnvironmentVariablesEditor.cjs.js +4 -4
  108. package/dist/components/EnvironmentVariablesEditor.es.js +4 -4
  109. package/dist/components/ErrorBoundary.cjs.js +1 -1
  110. package/dist/components/ErrorBoundary.es.js +1 -1
  111. package/dist/components/FilterBar.cjs.js +3 -3
  112. package/dist/components/FilterBar.es.js +4 -4
  113. package/dist/components/FormFieldBlocks.cjs.js +4 -4
  114. package/dist/components/FormFieldBlocks.es.js +4 -4
  115. package/dist/components/Input.cjs.js +1 -1
  116. package/dist/components/Input.es.js +1 -1
  117. package/dist/components/InputGroup.cjs.js +1 -1
  118. package/dist/components/InputGroup.es.js +1 -1
  119. package/dist/components/JSONSchemaForm.cjs.js +3 -3
  120. package/dist/components/JSONSchemaForm.es.js +3 -3
  121. package/dist/components/ListSearch.cjs.js +1 -1
  122. package/dist/components/ListSearch.es.js +1 -1
  123. package/dist/components/LogsDataList.cjs.js +1 -3
  124. package/dist/components/LogsDataList.cjs.js.map +1 -1
  125. package/dist/components/LogsDataList.es.js +1 -3
  126. package/dist/components/LogsDataList.es.js.map +1 -1
  127. package/dist/components/MainSidebar.cjs.js +125 -11
  128. package/dist/components/MainSidebar.cjs.js.map +1 -1
  129. package/dist/components/MainSidebar.es.js +120 -1
  130. package/dist/components/MainSidebar.es.js.map +1 -1
  131. package/dist/components/MarkdownRenderer.cjs.js +1 -1
  132. package/dist/components/MarkdownRenderer.es.js +1 -1
  133. package/dist/components/Message.cjs.js +1 -1
  134. package/dist/components/Message.es.js +1 -1
  135. package/dist/components/MetricsCard.cjs.js +1 -1
  136. package/dist/components/MetricsCard.es.js +1 -1
  137. package/dist/components/MetricsKpiCard.cjs.js +1 -1
  138. package/dist/components/MetricsKpiCard.es.js +1 -1
  139. package/dist/components/Notice.cjs.js +1 -1
  140. package/dist/components/Notice.es.js +1 -1
  141. package/dist/components/PageHeader.cjs.js +1 -1
  142. package/dist/components/PageHeader.es.js +1 -1
  143. package/dist/components/PageLayout.cjs.js +26 -3
  144. package/dist/components/PageLayout.cjs.js.map +1 -1
  145. package/dist/components/PageLayout.es.js +27 -4
  146. package/dist/components/PageLayout.es.js.map +1 -1
  147. package/dist/components/PrevNextNav.cjs.js +1 -1
  148. package/dist/components/PrevNextNav.es.js +1 -1
  149. package/dist/components/PropertyFilter.cjs.js +5 -5
  150. package/dist/components/PropertyFilter.cjs.js.map +1 -1
  151. package/dist/components/PropertyFilter.es.js +6 -6
  152. package/dist/components/PropertyFilter.es.js.map +1 -1
  153. package/dist/components/RuleBuilder.cjs.js +3 -3
  154. package/dist/components/RuleBuilder.es.js +3 -3
  155. package/dist/components/Select.cjs.js +1 -1
  156. package/dist/components/Select.es.js +1 -1
  157. package/dist/components/SideDialog.cjs.js +3 -3
  158. package/dist/components/SideDialog.es.js +3 -3
  159. package/dist/components/Tabs.cjs.js +3 -3
  160. package/dist/components/Tabs.es.js +3 -3
  161. package/dist/components/Textarea.cjs.js +1 -1
  162. package/dist/components/Textarea.es.js +1 -1
  163. package/dist/components/ThreadList.cjs.js +1 -1
  164. package/dist/components/ThreadList.es.js +1 -1
  165. package/dist/components/Truncate.cjs.js +1 -1
  166. package/dist/components/Truncate.es.js +1 -1
  167. package/dist/components/Workflow.cjs.js +4 -4
  168. package/dist/components/Workflow.es.js +4 -4
  169. package/dist/components/ai/ask-user.cjs.js +1 -1
  170. package/dist/components/ai/ask-user.es.js +1 -1
  171. package/dist/components/ai/chat-event.cjs.js +3 -3
  172. package/dist/components/ai/chat-event.es.js +4 -4
  173. package/dist/components/ai/plan.cjs.js +2 -2
  174. package/dist/components/ai/plan.es.js +2 -2
  175. package/dist/components/ai/tool-approval.cjs.js +1 -1
  176. package/dist/components/ai/tool-approval.es.js +1 -1
  177. package/dist/components/ai/tool-call.cjs.js +2 -2
  178. package/dist/components/ai/tool-call.es.js +3 -3
  179. package/dist/{copy-button-B5ZCtnTb.cjs → copy-button-D2MTGxq_.cjs} +2 -2
  180. package/dist/{copy-button-B5ZCtnTb.cjs.map → copy-button-D2MTGxq_.cjs.map} +1 -1
  181. package/dist/{copy-button-DZqxEuiE.js → copy-button-DcZ1mdw4.js} +2 -2
  182. package/dist/{copy-button-DZqxEuiE.js.map → copy-button-DcZ1mdw4.js.map} +1 -1
  183. package/dist/{data-code-section-DJRr65hS.js → data-code-section-C75shCII.js} +5 -5
  184. package/dist/{data-code-section-DJRr65hS.js.map → data-code-section-C75shCII.js.map} +1 -1
  185. package/dist/{data-code-section-iXzoOYMX.cjs → data-code-section-DzLc9O0B.cjs} +5 -5
  186. package/dist/{data-code-section-iXzoOYMX.cjs.map → data-code-section-DzLc9O0B.cjs.map} +1 -1
  187. package/dist/{data-keys-and-values-DhC4U4Yl.js → data-keys-and-values-BTYDB-K2.js} +3 -20
  188. package/dist/data-keys-and-values-BTYDB-K2.js.map +1 -0
  189. package/dist/{data-keys-and-values-BduKvvC5.cjs → data-keys-and-values-CMJ9zHKm.cjs} +3 -20
  190. package/dist/data-keys-and-values-CMJ9zHKm.cjs.map +1 -0
  191. package/dist/{data-list-DSbuTWLI.cjs → data-list-CH3HAhK5.cjs} +5 -5
  192. package/dist/data-list-CH3HAhK5.cjs.map +1 -0
  193. package/dist/{data-list-Cn0Ls4l2.js → data-list-DXjH5wkB.js} +5 -5
  194. package/dist/data-list-DXjH5wkB.js.map +1 -0
  195. package/dist/{data-list-spacer-C0YimRXC.js → data-list-spacer-BQ4_YeyT.js} +2 -2
  196. package/dist/{data-list-spacer-C0YimRXC.js.map → data-list-spacer-BQ4_YeyT.js.map} +1 -1
  197. package/dist/{data-list-spacer-DUBpzv_H.cjs → data-list-spacer-GIVW2hB1.cjs} +2 -2
  198. package/dist/{data-list-spacer-DUBpzv_H.cjs.map → data-list-spacer-GIVW2hB1.cjs.map} +1 -1
  199. package/dist/{data-panel-Bd_Xsz-W.cjs → data-panel-CIu6JToM.cjs} +3 -3
  200. package/dist/{data-panel-Bd_Xsz-W.cjs.map → data-panel-CIu6JToM.cjs.map} +1 -1
  201. package/dist/{data-panel-Y7wD0xlR.js → data-panel-CPZ2GuZN.js} +3 -3
  202. package/dist/{data-panel-Y7wD0xlR.js.map → data-panel-CPZ2GuZN.js.map} +1 -1
  203. package/dist/{date-time-range-picker-D2g3RU5B.cjs → date-time-range-picker-BCzvSYx3.cjs} +3 -3
  204. package/dist/{date-time-range-picker-D2g3RU5B.cjs.map → date-time-range-picker-BCzvSYx3.cjs.map} +1 -1
  205. package/dist/{date-time-range-picker-Cb86jLFc.js → date-time-range-picker-C-t3Kdpk.js} +3 -3
  206. package/dist/{date-time-range-picker-Cb86jLFc.js.map → date-time-range-picker-C-t3Kdpk.js.map} +1 -1
  207. package/dist/{dialog-DMOXPT0N.js → dialog-Dtfe1ylw.js} +5 -5
  208. package/dist/dialog-Dtfe1ylw.js.map +1 -0
  209. package/dist/{dialog-Bilo4jEU.cjs → dialog-Vvcjm0rZ.cjs} +4 -4
  210. package/dist/dialog-Vvcjm0rZ.cjs.map +1 -0
  211. package/dist/domains/auth/components/permission-denied.cjs.js +22 -0
  212. package/dist/domains/auth/components/permission-denied.cjs.js.map +1 -0
  213. package/dist/domains/auth/components/permission-denied.d.ts +2 -0
  214. package/dist/domains/auth/components/permission-denied.es.js +18 -0
  215. package/dist/domains/auth/components/permission-denied.es.js.map +1 -0
  216. package/dist/domains/auth/components/session-expired.cjs.js +40 -0
  217. package/dist/domains/auth/components/session-expired.cjs.js.map +1 -0
  218. package/dist/domains/auth/components/session-expired.d.ts +2 -0
  219. package/dist/domains/auth/components/session-expired.es.js +36 -0
  220. package/dist/domains/auth/components/session-expired.es.js.map +1 -0
  221. package/dist/domains/auth/services/sso-login.cjs.js +28 -0
  222. package/dist/domains/auth/services/sso-login.cjs.js.map +1 -0
  223. package/dist/domains/auth/services/sso-login.d.ts +2 -0
  224. package/dist/domains/auth/services/sso-login.es.js +24 -0
  225. package/dist/domains/auth/services/sso-login.es.js.map +1 -0
  226. package/dist/domains/chat/attachments/attachment-preview-dialog.cjs.js +2 -3
  227. package/dist/domains/chat/attachments/attachment-preview-dialog.cjs.js.map +1 -1
  228. package/dist/domains/chat/attachments/attachment-preview-dialog.es.js +2 -3
  229. package/dist/domains/chat/attachments/attachment-preview-dialog.es.js.map +1 -1
  230. package/dist/domains/chat/attachments/composer-attachment.cjs.js +1 -2
  231. package/dist/domains/chat/attachments/composer-attachment.cjs.js.map +1 -1
  232. package/dist/domains/chat/attachments/composer-attachment.es.js +1 -2
  233. package/dist/domains/chat/attachments/composer-attachment.es.js.map +1 -1
  234. package/dist/domains/chat/components/badge-wrapper.cjs.js +1 -1
  235. package/dist/domains/chat/components/badge-wrapper.es.js +1 -1
  236. package/dist/domains/chat/components/network-choice-metadata-dialog.cjs.js +3 -3
  237. package/dist/domains/chat/components/network-choice-metadata-dialog.es.js +3 -3
  238. package/dist/domains/chat/messages/notification-signal-notice.cjs.js +1 -1
  239. package/dist/domains/chat/messages/notification-signal-notice.es.js +1 -1
  240. package/dist/domains/chat/messages/reasoning.cjs.js +1 -1
  241. package/dist/domains/chat/messages/reasoning.es.js +1 -1
  242. package/dist/domains/chat/messages/renderers/message-text.cjs.js +2 -2
  243. package/dist/domains/chat/messages/renderers/message-text.es.js +2 -2
  244. package/dist/domains/chat/messages/renderers/status-renderers.cjs.js +1 -1
  245. package/dist/domains/chat/messages/renderers/status-renderers.es.js +1 -1
  246. package/dist/domains/chat/messages/signal-badge.cjs.js +1 -1
  247. package/dist/domains/chat/messages/signal-badge.es.js +1 -1
  248. package/dist/domains/chat/messages/tripwire-notice.cjs.js +1 -1
  249. package/dist/domains/chat/messages/tripwire-notice.es.js +1 -1
  250. package/dist/domains/chat/tools/badges/ask-user-badge.cjs.js +1 -1
  251. package/dist/domains/chat/tools/badges/ask-user-badge.es.js +1 -1
  252. package/dist/domains/chat/tools/badges/code-mode-badge.cjs.js +2 -2
  253. package/dist/domains/chat/tools/badges/code-mode-badge.es.js +2 -2
  254. package/dist/domains/chat/tools/badges/observation-marker-badge.cjs.js +1 -1
  255. package/dist/domains/chat/tools/badges/observation-marker-badge.es.js +1 -1
  256. package/dist/domains/chat/tools/badges/observation-renderer.cjs.js +1 -1
  257. package/dist/domains/chat/tools/badges/observation-renderer.es.js +1 -1
  258. package/dist/domains/chat/tools/badges/tool-approval-buttons.cjs.js +1 -1
  259. package/dist/domains/chat/tools/badges/tool-approval-buttons.es.js +1 -1
  260. package/dist/domains/logs/components/log-details-view.cjs.js +2 -2
  261. package/dist/domains/logs/components/log-details-view.es.js +2 -2
  262. package/dist/domains/logs/components/logs-error-content.cjs.js +6 -7
  263. package/dist/domains/logs/components/logs-error-content.cjs.js.map +1 -1
  264. package/dist/domains/logs/components/logs-error-content.es.js +4 -5
  265. package/dist/domains/logs/components/logs-error-content.es.js.map +1 -1
  266. package/dist/domains/logs/components/logs-list-view.cjs.js +1 -1
  267. package/dist/domains/logs/components/logs-list-view.es.js +1 -1
  268. package/dist/domains/logs/components/logs-toolbar.cjs.js +1 -1
  269. package/dist/domains/logs/components/logs-toolbar.es.js +1 -1
  270. package/dist/domains/logs/components/no-logs-info.cjs.js +2 -2
  271. package/dist/domains/logs/components/no-logs-info.es.js +2 -2
  272. package/dist/domains/memory/components/flame-graph.cjs.js +1 -1
  273. package/dist/domains/memory/components/flame-graph.es.js +1 -1
  274. package/dist/domains/memory/components/memory-studio-panel.cjs.js +1 -1
  275. package/dist/domains/memory/components/memory-studio-panel.es.js +1 -1
  276. package/dist/domains/memory/components/observation-detail-view.cjs.js +1 -1
  277. package/dist/domains/memory/components/observation-detail-view.es.js +1 -1
  278. package/dist/domains/metrics/components/card-action-buttons.cjs.js +1 -1
  279. package/dist/domains/metrics/components/card-action-buttons.es.js +1 -1
  280. package/dist/domains/metrics/components/date-range-selector.cjs.js +1 -1
  281. package/dist/domains/metrics/components/date-range-selector.es.js +1 -1
  282. package/dist/domains/metrics/components/kpi-card-view.cjs.js +1 -1
  283. package/dist/domains/metrics/components/kpi-card-view.es.js +1 -1
  284. package/dist/domains/metrics/components/latency-card-view.cjs.js +4 -4
  285. package/dist/domains/metrics/components/latency-card-view.es.js +4 -4
  286. package/dist/domains/metrics/components/memory-card-view.cjs.js +5 -5
  287. package/dist/domains/metrics/components/memory-card-view.es.js +5 -5
  288. package/dist/domains/metrics/components/model-usage-cost-card-view.cjs.js +2 -2
  289. package/dist/domains/metrics/components/model-usage-cost-card-view.es.js +2 -2
  290. package/dist/domains/metrics/components/scores-card-view.cjs.js +5 -5
  291. package/dist/domains/metrics/components/scores-card-view.es.js +5 -5
  292. package/dist/domains/metrics/components/token-usage-by-agent-card-view.cjs.js +4 -4
  293. package/dist/domains/metrics/components/token-usage-by-agent-card-view.es.js +4 -4
  294. package/dist/domains/metrics/components/token-usage-timeline-card-view.cjs.js +4 -4
  295. package/dist/domains/metrics/components/token-usage-timeline-card-view.es.js +4 -4
  296. package/dist/domains/metrics/components/traces-volume-card-view.cjs.js +4 -4
  297. package/dist/domains/metrics/components/traces-volume-card-view.es.js +4 -4
  298. package/dist/domains/traces/components/no-traces-info.cjs.js +1 -1
  299. package/dist/domains/traces/components/no-traces-info.es.js +1 -1
  300. package/dist/domains/traces/components/span-data-panel-view.cjs.js +19 -8
  301. package/dist/domains/traces/components/span-data-panel-view.cjs.js.map +1 -1
  302. package/dist/domains/traces/components/span-data-panel-view.es.js +20 -9
  303. package/dist/domains/traces/components/span-data-panel-view.es.js.map +1 -1
  304. package/dist/domains/traces/components/span-details-view.cjs.js +5 -3
  305. package/dist/domains/traces/components/span-details-view.cjs.js.map +1 -1
  306. package/dist/domains/traces/components/span-details-view.es.js +6 -4
  307. package/dist/domains/traces/components/span-details-view.es.js.map +1 -1
  308. package/dist/domains/traces/components/span-payload/span-error-renderer.cjs.js +3 -3
  309. package/dist/domains/traces/components/span-payload/span-error-renderer.es.js +3 -3
  310. package/dist/domains/traces/components/span-payload/span-input-renderers.cjs.js +5 -3
  311. package/dist/domains/traces/components/span-payload/span-input-renderers.cjs.js.map +1 -1
  312. package/dist/domains/traces/components/span-payload/span-input-renderers.es.js +5 -3
  313. package/dist/domains/traces/components/span-payload/span-input-renderers.es.js.map +1 -1
  314. package/dist/domains/traces/components/span-payload/span-output-renderers.cjs.js +13 -12
  315. package/dist/domains/traces/components/span-payload/span-output-renderers.cjs.js.map +1 -1
  316. package/dist/domains/traces/components/span-payload/span-output-renderers.es.js +7 -6
  317. package/dist/domains/traces/components/span-payload/span-output-renderers.es.js.map +1 -1
  318. package/dist/domains/traces/components/span-payload/span-payload-messages.cjs.js +1 -1
  319. package/dist/domains/traces/components/span-payload/span-payload-messages.es.js +1 -1
  320. package/dist/domains/traces/components/span-payload/span-payload-primitives.cjs.js +2 -2
  321. package/dist/domains/traces/components/span-payload/span-payload-primitives.es.js +2 -2
  322. package/dist/domains/traces/components/span-payload/span-payload-processor.cjs.js +79 -0
  323. package/dist/domains/traces/components/span-payload/span-payload-processor.cjs.js.map +1 -0
  324. package/dist/domains/traces/components/span-payload/span-payload-processor.d.ts +2 -0
  325. package/dist/domains/traces/components/span-payload/span-payload-processor.es.js +75 -0
  326. package/dist/domains/traces/components/span-payload/span-payload-processor.es.js.map +1 -0
  327. package/dist/domains/traces/components/span-payload/span-payload-registry.cjs.js +2 -0
  328. package/dist/domains/traces/components/span-payload/span-payload-registry.cjs.js.map +1 -1
  329. package/dist/domains/traces/components/span-payload/span-payload-registry.es.js +2 -1
  330. package/dist/domains/traces/components/span-payload/span-payload-registry.es.js.map +1 -1
  331. package/dist/domains/traces/components/span-payload/span-payload-section.cjs.js +2 -2
  332. package/dist/domains/traces/components/span-payload/span-payload-section.es.js +2 -2
  333. package/dist/domains/traces/components/span-payload/span-payload-tool.cjs.js +2 -2
  334. package/dist/domains/traces/components/span-payload/span-payload-tool.es.js +2 -2
  335. package/dist/domains/traces/components/span-payload/span-processor-attributes.cjs.js +85 -0
  336. package/dist/domains/traces/components/span-payload/span-processor-attributes.cjs.js.map +1 -0
  337. package/dist/domains/traces/components/span-payload/span-processor-attributes.d.ts +2 -0
  338. package/dist/domains/traces/components/span-payload/span-processor-attributes.es.js +81 -0
  339. package/dist/domains/traces/components/span-payload/span-processor-attributes.es.js.map +1 -0
  340. package/dist/domains/traces/components/span-payload.cjs.js +4 -0
  341. package/dist/domains/traces/components/span-payload.cjs.js.map +1 -1
  342. package/dist/domains/traces/components/span-payload.es.js +2 -0
  343. package/dist/domains/traces/components/span-payload.es.js.map +1 -1
  344. package/dist/domains/traces/components/span-summary-description.cjs.js +1 -1
  345. package/dist/domains/traces/components/span-summary-description.es.js +1 -1
  346. package/dist/domains/traces/components/span-timing-hover-card.cjs.js +1 -1
  347. package/dist/domains/traces/components/span-timing-hover-card.es.js +1 -1
  348. package/dist/domains/traces/components/span-token-usage.cjs.js +1 -1
  349. package/dist/domains/traces/components/span-token-usage.es.js +1 -1
  350. package/dist/domains/traces/components/thread-trace/thread-trace-details.cjs.js +1 -1
  351. package/dist/domains/traces/components/thread-trace/thread-trace-details.es.js +1 -1
  352. package/dist/domains/traces/components/thread-trace/thread-trace-messages.cjs.js +4 -4
  353. package/dist/domains/traces/components/thread-trace/thread-trace-messages.es.js +4 -4
  354. package/dist/domains/traces/components/thread-trace/thread-trace-spans.cjs.js +1 -1
  355. package/dist/domains/traces/components/thread-trace/thread-trace-spans.es.js +1 -1
  356. package/dist/domains/traces/components/trace-columns-menu.cjs.js +4 -4
  357. package/dist/domains/traces/components/trace-columns-menu.cjs.js.map +1 -1
  358. package/dist/domains/traces/components/trace-columns-menu.es.js +4 -4
  359. package/dist/domains/traces/components/trace-columns-menu.es.js.map +1 -1
  360. package/dist/domains/traces/components/trace-data-panel-view.cjs.js +12 -16
  361. package/dist/domains/traces/components/trace-data-panel-view.cjs.js.map +1 -1
  362. package/dist/domains/traces/components/trace-data-panel-view.es.js +12 -16
  363. package/dist/domains/traces/components/trace-data-panel-view.es.js.map +1 -1
  364. package/dist/domains/traces/components/trace-id-button.cjs.js +1 -1
  365. package/dist/domains/traces/components/trace-id-button.es.js +1 -1
  366. package/dist/domains/traces/components/trace-summary-description.cjs.js +8 -1
  367. package/dist/domains/traces/components/trace-summary-description.cjs.js.map +1 -1
  368. package/dist/domains/traces/components/trace-summary-description.es.js +8 -1
  369. package/dist/domains/traces/components/trace-summary-description.es.js.map +1 -1
  370. package/dist/domains/traces/components/trace-time-range-chip.cjs.js +2 -2
  371. package/dist/domains/traces/components/trace-time-range-chip.es.js +2 -2
  372. package/dist/domains/traces/components/traces-error-content.cjs.js +6 -6
  373. package/dist/domains/traces/components/traces-error-content.cjs.js.map +1 -1
  374. package/dist/domains/traces/components/traces-error-content.es.js +4 -4
  375. package/dist/domains/traces/components/traces-error-content.es.js.map +1 -1
  376. package/dist/domains/traces/components/traces-list-mode-toggle.cjs.js +1 -1
  377. package/dist/domains/traces/components/traces-list-mode-toggle.es.js +1 -1
  378. package/dist/domains/traces/components/traces-list-view.cjs.js +2 -2
  379. package/dist/domains/traces/components/traces-list-view.es.js +2 -2
  380. package/dist/domains/traces/components/traces-page-skeleton.cjs.js +0 -2
  381. package/dist/domains/traces/components/traces-page-skeleton.cjs.js.map +1 -1
  382. package/dist/domains/traces/components/traces-page-skeleton.es.js +0 -2
  383. package/dist/domains/traces/components/traces-page-skeleton.es.js.map +1 -1
  384. package/dist/domains/traces/components.cjs.js +4 -2
  385. package/dist/domains/traces/components.cjs.js.map +1 -1
  386. package/dist/domains/traces/components.es.js +2 -1
  387. package/dist/domains/traces/components.es.js.map +1 -1
  388. package/dist/domains/traces.cjs.js +4 -2
  389. package/dist/domains/traces.cjs.js.map +1 -1
  390. package/dist/domains/traces.es.js +2 -1
  391. package/dist/domains/traces.es.js.map +1 -1
  392. package/dist/{drawer-CnCsgToD.js → drawer-DZnqDb9H.js} +4 -4
  393. package/dist/drawer-DZnqDb9H.js.map +1 -0
  394. package/dist/{drawer-B6Ftum77.cjs → drawer-DpldATv1.cjs} +3 -3
  395. package/dist/drawer-DpldATv1.cjs.map +1 -0
  396. package/dist/ee/signals/components/entity-index-compact-grid.cjs.js +1 -1
  397. package/dist/ee/signals/components/entity-index-compact-grid.es.js +1 -1
  398. package/dist/ee/signals/components/entity-index-list.cjs.js +1 -3
  399. package/dist/ee/signals/components/entity-index-list.cjs.js.map +1 -1
  400. package/dist/ee/signals/components/entity-index-list.es.js +1 -3
  401. package/dist/ee/signals/components/entity-index-list.es.js.map +1 -1
  402. package/dist/ee/signals/components/signals-empty-state.cjs.js +2 -3
  403. package/dist/ee/signals/components/signals-empty-state.cjs.js.map +1 -1
  404. package/dist/ee/signals/components/signals-empty-state.es.js +2 -3
  405. package/dist/ee/signals/components/signals-empty-state.es.js.map +1 -1
  406. package/dist/ee/signals/components/trace-intelligence-entity-detail.cjs.js +1 -1
  407. package/dist/ee/signals/components/trace-intelligence-entity-detail.es.js +1 -1
  408. package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js +11 -13
  409. package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js.map +1 -1
  410. package/dist/ee/signals/components/trace-intelligence-entity-index.es.js +9 -11
  411. package/dist/ee/signals/components/trace-intelligence-entity-index.es.js.map +1 -1
  412. package/dist/ee/signals/examples-pager.cjs.js +1 -3
  413. package/dist/ee/signals/examples-pager.cjs.js.map +1 -1
  414. package/dist/ee/signals/examples-pager.es.js +1 -3
  415. package/dist/ee/signals/examples-pager.es.js.map +1 -1
  416. package/dist/ee/signals/flow-card.cjs.js +1 -1
  417. package/dist/ee/signals/flow-card.es.js +1 -1
  418. package/dist/ee/signals/noise-detail-panel.cjs.js +1 -1
  419. package/dist/ee/signals/noise-detail-panel.es.js +1 -1
  420. package/dist/ee/signals/sankey-signals.cjs.js +1 -1
  421. package/dist/ee/signals/sankey-signals.es.js +1 -1
  422. package/dist/ee/signals/settings/signal-definition-form-dialog.cjs.js +5 -5
  423. package/dist/ee/signals/settings/signal-definition-form-dialog.es.js +5 -5
  424. package/dist/ee/signals/settings/trace-signal-settings.cjs.js +2 -2
  425. package/dist/ee/signals/settings/trace-signal-settings.es.js +2 -2
  426. package/dist/ee/signals/signals-error-state.cjs.js +2 -2
  427. package/dist/ee/signals/signals-error-state.cjs.js.map +1 -1
  428. package/dist/ee/signals/signals-error-state.es.js +2 -2
  429. package/dist/ee/signals/signals-error-state.es.js.map +1 -1
  430. package/dist/ee/signals/snapshot-timeline.cjs.js +1 -2
  431. package/dist/ee/signals/snapshot-timeline.cjs.js.map +1 -1
  432. package/dist/ee/signals/snapshot-timeline.es.js +1 -2
  433. package/dist/ee/signals/snapshot-timeline.es.js.map +1 -1
  434. package/dist/ee/signals/theme-detail-panel.cjs.js +1 -1
  435. package/dist/ee/signals/theme-detail-panel.es.js +1 -1
  436. package/dist/ee/signals/theme-filter-banner.cjs.js +1 -1
  437. package/dist/ee/signals/theme-filter-banner.es.js +1 -1
  438. package/dist/ee/signals/trace-insight-view.cjs.js +3 -12
  439. package/dist/ee/signals/trace-insight-view.cjs.js.map +1 -1
  440. package/dist/ee/signals/trace-insight-view.es.js +3 -12
  441. package/dist/ee/signals/trace-insight-view.es.js.map +1 -1
  442. package/dist/ee/signals/view-mode-tab.cjs.js +1 -1
  443. package/dist/ee/signals/view-mode-tab.es.js +1 -1
  444. package/dist/ee/topics/components/topic-trace-summary-list.cjs.js +10 -19
  445. package/dist/ee/topics/components/topic-trace-summary-list.cjs.js.map +1 -1
  446. package/dist/ee/topics/components/topic-trace-summary-list.es.js +10 -19
  447. package/dist/ee/topics/components/topic-trace-summary-list.es.js.map +1 -1
  448. package/dist/{filter-bar-chip-BlvuAPve.js → filter-bar-chip-7X4Aw_WH.js} +3 -3
  449. package/dist/{filter-bar-chip-BlvuAPve.js.map → filter-bar-chip-7X4Aw_WH.js.map} +1 -1
  450. package/dist/{filter-bar-chip-B_k_vbip.cjs → filter-bar-chip-BdZHI76J.cjs} +3 -3
  451. package/dist/{filter-bar-chip-B_k_vbip.cjs.map → filter-bar-chip-BdZHI76J.cjs.map} +1 -1
  452. package/dist/hooks/use-fluid-hover.cjs.js +2 -4
  453. package/dist/hooks/use-fluid-hover.cjs.js.map +1 -1
  454. package/dist/hooks/use-fluid-hover.es.js +2 -4
  455. package/dist/hooks/use-fluid-hover.es.js.map +1 -1
  456. package/dist/{input-B1RysHyq.js → input-CHghVv3k.js} +3 -3
  457. package/dist/input-CHghVv3k.js.map +1 -0
  458. package/dist/{input-CDLMprJS.cjs → input-bd223EJW.cjs} +2 -2
  459. package/dist/input-bd223EJW.cjs.map +1 -0
  460. package/dist/{input-group-DaIV9Orp.cjs → input-group-BfnJ0RIj.cjs} +3 -3
  461. package/dist/input-group-BfnJ0RIj.cjs.map +1 -0
  462. package/dist/{input-group-B-pskRGt.js → input-group-Jt7lZsN9.js} +4 -4
  463. package/dist/input-group-Jt7lZsN9.js.map +1 -0
  464. package/dist/layout/tabbed-container.cjs.js +6 -6
  465. package/dist/layout/tabbed-container.es.js +6 -6
  466. package/dist/{list-search-DK2yMiME.js → list-search-FJ1O5F3S.js} +2 -2
  467. package/dist/{list-search-DK2yMiME.js.map → list-search-FJ1O5F3S.js.map} +1 -1
  468. package/dist/{list-search-DhReauU5.cjs → list-search-S1mco9Bl.cjs} +2 -2
  469. package/dist/{list-search-DhReauU5.cjs.map → list-search-S1mco9Bl.cjs.map} +1 -1
  470. package/dist/{logs-data-list-DgoCLb6k.cjs → logs-data-list-BGJTRyO_.cjs} +2 -2
  471. package/dist/{logs-data-list-DgoCLb6k.cjs.map → logs-data-list-BGJTRyO_.cjs.map} +1 -1
  472. package/dist/{logs-data-list-B24gfDle.js → logs-data-list-XU1hCwI5.js} +2 -2
  473. package/dist/{logs-data-list-B24gfDle.js.map → logs-data-list-XU1hCwI5.js.map} +1 -1
  474. package/dist/{main-sidebar-Cf5G9iaC.js → main-sidebar-link-active-C9QPj3D6.js} +7 -119
  475. package/dist/main-sidebar-link-active-C9QPj3D6.js.map +1 -0
  476. package/dist/{main-sidebar-DYfRxFn4.cjs → main-sidebar-link-active-UEuukSeT.cjs} +5 -118
  477. package/dist/main-sidebar-link-active-UEuukSeT.cjs.map +1 -0
  478. package/dist/{markdown-renderer-BUqHHH4y.js → markdown-renderer-BBYgxsXL.js} +3 -3
  479. package/dist/{markdown-renderer-BUqHHH4y.js.map → markdown-renderer-BBYgxsXL.js.map} +1 -1
  480. package/dist/{markdown-renderer-CZLwgva-.cjs → markdown-renderer-Du_Zd1T-.cjs} +3 -3
  481. package/dist/{markdown-renderer-CZLwgva-.cjs.map → markdown-renderer-Du_Zd1T-.cjs.map} +1 -1
  482. package/dist/{metrics-card-CN4VRQQJ.js → metrics-card-Bzm6m1dy.js} +3 -3
  483. package/dist/{metrics-card-CN4VRQQJ.js.map → metrics-card-Bzm6m1dy.js.map} +1 -1
  484. package/dist/{metrics-card-DStXI6yn.cjs → metrics-card-DCCHIG-z.cjs} +3 -3
  485. package/dist/{metrics-card-DStXI6yn.cjs.map → metrics-card-DCCHIG-z.cjs.map} +1 -1
  486. package/dist/{metrics-kpi-card-CvOXyEGn.cjs → metrics-kpi-card-Bhb4R4z0.cjs} +2 -2
  487. package/dist/{metrics-kpi-card-CvOXyEGn.cjs.map → metrics-kpi-card-Bhb4R4z0.cjs.map} +1 -1
  488. package/dist/{metrics-kpi-card-C-XLN_Us.js → metrics-kpi-card-BrnFhFQm.js} +2 -2
  489. package/dist/{metrics-kpi-card-C-XLN_Us.js.map → metrics-kpi-card-BrnFhFQm.js.map} +1 -1
  490. package/dist/new/layout/app-shell.cjs.js +13 -0
  491. package/dist/new/layout/app-shell.cjs.js.map +1 -1
  492. package/dist/new/layout/app-shell.es.js +13 -1
  493. package/dist/new/layout/app-shell.es.js.map +1 -1
  494. package/dist/new/layout/page-header.cjs.js +1 -1
  495. package/dist/new/layout/page-header.es.js +1 -1
  496. package/dist/new/settings.cjs.js +42 -2
  497. package/dist/new/settings.cjs.js.map +1 -1
  498. package/dist/new/settings.es.js +43 -3
  499. package/dist/new/settings.es.js.map +1 -1
  500. package/dist/new/sidebar.cjs.js +33 -33
  501. package/dist/new/sidebar.cjs.js.map +1 -1
  502. package/dist/new/sidebar.es.js +3 -3
  503. package/dist/new/sidebar.es.js.map +1 -1
  504. package/dist/{page-header-CSigVThQ.js → page-header-CyXAezlZ.js} +25 -26
  505. package/dist/page-header-CyXAezlZ.js.map +1 -0
  506. package/dist/{page-header-DzEEkOca.cjs → page-header-Dk3s3XtC.cjs} +25 -26
  507. package/dist/page-header-Dk3s3XtC.cjs.map +1 -0
  508. package/dist/primitives/control-size.cjs.js +1 -2
  509. package/dist/primitives/control-size.cjs.js.map +1 -1
  510. package/dist/primitives/control-size.es.js +1 -2
  511. package/dist/primitives/control-size.es.js.map +1 -1
  512. package/dist/primitives/form-element.cjs.js +10 -5
  513. package/dist/primitives/form-element.cjs.js.map +1 -1
  514. package/dist/primitives/form-element.es.js +8 -5
  515. package/dist/primitives/form-element.es.js.map +1 -1
  516. package/dist/primitives/menu-item.cjs.js +1 -1
  517. package/dist/primitives/menu-item.cjs.js.map +1 -1
  518. package/dist/primitives/menu-item.es.js +1 -1
  519. package/dist/primitives/menu-item.es.js.map +1 -1
  520. package/dist/primitives/raised-surface.cjs.js +8 -3
  521. package/dist/primitives/raised-surface.cjs.js.map +1 -1
  522. package/dist/primitives/raised-surface.es.js +8 -4
  523. package/dist/primitives/raised-surface.es.js.map +1 -1
  524. package/dist/primitives/trigger-button.cjs.js +1 -1
  525. package/dist/primitives/trigger-button.es.js +1 -1
  526. package/dist/{property-filter-applied-uYr-sCdm.js → property-filter-applied-CYDiZtR7.js} +3 -3
  527. package/dist/{property-filter-applied-uYr-sCdm.js.map → property-filter-applied-CYDiZtR7.js.map} +1 -1
  528. package/dist/{property-filter-applied-DxSZN3Om.cjs → property-filter-applied-F6cN2lrX.cjs} +3 -3
  529. package/dist/{property-filter-applied-DxSZN3Om.cjs.map → property-filter-applied-F6cN2lrX.cjs.map} +1 -1
  530. package/dist/resize/panel-drawer.cjs.js +1 -1
  531. package/dist/resize/panel-drawer.es.js +1 -1
  532. package/dist/{search-field-block-Bg9GPPaA.cjs → search-field-block-7-ufp4uG.cjs} +3 -3
  533. package/dist/{search-field-block-Bg9GPPaA.cjs.map → search-field-block-7-ufp4uG.cjs.map} +1 -1
  534. package/dist/{search-field-block-B0twxGWI.js → search-field-block-fU3tStmB.js} +3 -3
  535. package/dist/{search-field-block-B0twxGWI.js.map → search-field-block-fU3tStmB.js.map} +1 -1
  536. package/dist/{select-65j5NjtJ.cjs → select-BByMAS0L.cjs} +4 -2
  537. package/dist/select-BByMAS0L.cjs.map +1 -0
  538. package/dist/{select-BiY-SoMJ.js → select-Dkmx3L5p.js} +4 -2
  539. package/dist/select-Dkmx3L5p.js.map +1 -0
  540. package/dist/{select-field-block-D_b9N7od.js → select-field-block-BfiHq9t6.js} +2 -2
  541. package/dist/{select-field-block-D_b9N7od.js.map → select-field-block-BfiHq9t6.js.map} +1 -1
  542. package/dist/{select-field-block-CZbN1w__.cjs → select-field-block-DJo2cX9Y.cjs} +2 -2
  543. package/dist/{select-field-block-CZbN1w__.cjs.map → select-field-block-DJo2cX9Y.cjs.map} +1 -1
  544. package/dist/{span-payload-primitives-DlIOpCII.js → span-payload-primitives-CzLh6axt.js} +3 -3
  545. package/dist/{span-payload-primitives-DlIOpCII.js.map → span-payload-primitives-CzLh6axt.js.map} +1 -1
  546. package/dist/{span-payload-primitives-BjBTICfq.cjs → span-payload-primitives-KEXwIaeZ.cjs} +3 -3
  547. package/dist/{span-payload-primitives-BjBTICfq.cjs.map → span-payload-primitives-KEXwIaeZ.cjs.map} +1 -1
  548. package/dist/src/domains/auth/components/permission-denied.d.ts +6 -0
  549. package/dist/src/{ds/components/PermissionDenied → domains/auth/components}/permission-denied.stories.d.ts +1 -3
  550. package/dist/src/domains/auth/components/session-expired.d.ts +5 -0
  551. package/dist/src/{ds/components/SessionExpired → domains/auth/components}/session-expired.stories.d.ts +1 -2
  552. package/dist/src/domains/auth/services/sso-login.d.ts +7 -0
  553. package/dist/src/domains/logs/components/logs-error-content.d.ts +2 -2
  554. package/dist/src/domains/traces/components/index.d.ts +0 -1
  555. package/dist/src/domains/traces/components/span-payload/index.d.ts +2 -0
  556. package/dist/src/domains/traces/components/span-payload/span-payload-processor.d.ts +10 -0
  557. package/dist/src/domains/traces/components/span-payload/span-payload-registry.d.ts +1 -0
  558. package/dist/src/domains/traces/components/span-payload/span-payload.stories.d.ts +2 -0
  559. package/dist/src/domains/traces/components/span-payload/span-processor-attributes.d.ts +10 -0
  560. package/dist/src/domains/traces/components/trace-data-panel-view.stories.d.ts +94 -0
  561. package/dist/src/domains/traces/components/trace-summary-description.d.ts +1 -0
  562. package/dist/src/domains/traces/components/traces-error-content.d.ts +2 -2
  563. package/dist/src/ds/components/Button/Button.d.ts +1 -1
  564. package/dist/src/ds/components/ButtonsGroup/buttons-group.stories.d.ts +2 -2
  565. package/dist/src/ds/components/Columns/column-root.d.ts +1 -3
  566. package/dist/src/ds/components/Columns/columns.stories.d.ts +0 -1
  567. package/dist/src/ds/components/Columns/index.d.ts +0 -1
  568. package/dist/src/ds/components/Combobox/combobox-styles.d.ts +1 -2
  569. package/dist/src/ds/components/Combobox/combobox.d.ts +3 -0
  570. package/dist/src/ds/components/Combobox/combobox.stories.d.ts +1 -0
  571. package/dist/src/ds/components/DataKeysAndValues/data-keys-and-values-root.d.ts +1 -2
  572. package/dist/src/ds/components/DataKeysAndValues/data-keys-and-values.stories.d.ts +1 -2
  573. package/dist/src/ds/components/EmptyState/EmptyState.d.ts +6 -2
  574. package/dist/src/ds/components/EmptyState/empty-state.stories.d.ts +1 -0
  575. package/dist/src/ds/components/PageLayout/page-layout.d.ts +8 -3
  576. package/dist/src/ds/components/PageLayout/page-layout.stories.d.ts +3 -0
  577. package/dist/src/ds/components/Select/select.d.ts +3 -4
  578. package/dist/src/ds/components/Select/select.stories.d.ts +2 -2
  579. package/dist/src/ds/new/layout/app-shell/index.d.ts +1 -0
  580. package/dist/src/ds/new/layout/app-shell/main-card.d.ts +5 -0
  581. package/dist/src/ds/new/settings/index.d.ts +1 -1
  582. package/dist/src/ds/new/settings/settings.stories.d.ts +2 -0
  583. package/dist/src/ds/primitives/control-size.d.ts +1 -1
  584. package/dist/src/ds/primitives/fields-on-surfaces.stories.d.ts +6 -0
  585. package/dist/src/ds/primitives/form-element.d.ts +3 -1
  586. package/dist/src/ds/primitives/raised-surface.d.ts +4 -31
  587. package/dist/src/ds/tokens/colors.d.ts +3 -0
  588. package/dist/src/ds/tokens/shadows.d.ts +1 -0
  589. package/dist/src/{ds/components/IntegrationDialog/integration-dialog.stories.d.ts → hooks/stories/browser/use-autoscroll.stories.d.ts} +6 -8
  590. package/dist/src/hooks/stories/browser/use-copy-to-clipboard.stories.d.ts +22 -0
  591. package/dist/src/hooks/stories/browser/use-fluid-hover.stories.d.ts +17 -0
  592. package/dist/src/hooks/stories/browser/use-in-view.stories.d.ts +17 -0
  593. package/dist/src/hooks/stories/browser/use-is-apple-platform.stories.d.ts +17 -0
  594. package/dist/src/hooks/stories/browser/use-is-mobile.stories.d.ts +32 -0
  595. package/dist/src/hooks/stories/browser/use-isomorphic-layout-effect.stories.d.ts +32 -0
  596. package/dist/src/hooks/stories/browser/use-keyboard-shortcut-label.stories.d.ts +22 -0
  597. package/dist/src/hooks/stories/browser/use-register-fluid-hover-item.stories.d.ts +17 -0
  598. package/dist/src/hooks/stories/environment/use-custom-environment-variables-editor.stories.d.ts +17 -0
  599. package/dist/src/hooks/stories/environment/use-environment-variables-editor.stories.d.ts +17 -0
  600. package/dist/src/hooks/stories/state/use-debounced-value.stories.d.ts +32 -0
  601. package/dist/src/hooks/stories/state/use-expiring-local-storage-state.stories.d.ts +17 -0
  602. package/dist/src/hooks/stories/state/use-local-storage-state.stories.d.ts +17 -0
  603. package/dist/src/hooks/stories/text/use-is-clamped.stories.d.ts +17 -0
  604. package/dist/src/hooks/stories/text/use-measured-auto-height.stories.d.ts +17 -0
  605. package/dist/src/hooks/stories/text/use-scroll-to-first-highlight.stories.d.ts +17 -0
  606. package/dist/src/hooks/stories/text/use-text-highlight.stories.d.ts +17 -0
  607. package/dist/src/lib/keyboard/use-keyboard-scope-depth.stories.d.ts +17 -0
  608. package/dist/src/lib/keyboard/use-keyboard-shortcuts-context.stories.d.ts +17 -0
  609. package/dist/src/lib/keyboard/use-table-keydown.stories.d.ts +15 -0
  610. package/dist/style.css +147 -107
  611. package/dist/{tabs-content-DMrffE9p.js → tabs-content-7ODUUdQ0.js} +2 -2
  612. package/dist/{tabs-content-DMrffE9p.js.map → tabs-content-7ODUUdQ0.js.map} +1 -1
  613. package/dist/{tabs-content-CuUlcS67.cjs → tabs-content-DlCJoQUW.cjs} +2 -2
  614. package/dist/{tabs-content-CuUlcS67.cjs.map → tabs-content-DlCJoQUW.cjs.map} +1 -1
  615. package/dist/{tabs-root-DrK1hxeV.cjs → tabs-root-COCL6jcx.cjs} +2 -2
  616. package/dist/{tabs-root-DrK1hxeV.cjs.map → tabs-root-COCL6jcx.cjs.map} +1 -1
  617. package/dist/{tabs-root-B2sdkQ3A.js → tabs-root-UNPxoGhW.js} +2 -2
  618. package/dist/{tabs-root-B2sdkQ3A.js.map → tabs-root-UNPxoGhW.js.map} +1 -1
  619. package/dist/{tabs-tab-ClmulJmM.cjs → tabs-tab-DFmRMdi3.cjs} +2 -2
  620. package/dist/{tabs-tab-ClmulJmM.cjs.map → tabs-tab-DFmRMdi3.cjs.map} +1 -1
  621. package/dist/{tabs-tab-u6LS5twu.js → tabs-tab-DluwCnDF.js} +2 -2
  622. package/dist/{tabs-tab-u6LS5twu.js.map → tabs-tab-DluwCnDF.js.map} +1 -1
  623. package/dist/{text-field-block-Cihf0IRw.js → text-field-block-DGIM1i3Z.js} +2 -2
  624. package/dist/{text-field-block-Cihf0IRw.js.map → text-field-block-DGIM1i3Z.js.map} +1 -1
  625. package/dist/{text-field-block-BmWGMw3a.cjs → text-field-block-DePCgDOh.cjs} +2 -2
  626. package/dist/{text-field-block-BmWGMw3a.cjs.map → text-field-block-DePCgDOh.cjs.map} +1 -1
  627. package/dist/{textarea-DdnzLrI9.js → textarea-B6wvS_CQ.js} +3 -3
  628. package/dist/textarea-B6wvS_CQ.js.map +1 -0
  629. package/dist/{textarea-5b6XcMrq.cjs → textarea-gUBUqpol.cjs} +2 -2
  630. package/dist/textarea-gUBUqpol.cjs.map +1 -0
  631. package/dist/{time-picker-PXFCgAuR.cjs → time-picker-BNhe7Zpb.cjs} +2 -2
  632. package/dist/{time-picker-PXFCgAuR.cjs.map → time-picker-BNhe7Zpb.cjs.map} +1 -1
  633. package/dist/{time-picker-DMroqHbw.js → time-picker-kvCsW78V.js} +2 -2
  634. package/dist/{time-picker-DMroqHbw.js.map → time-picker-kvCsW78V.js.map} +1 -1
  635. package/dist/tokens.cjs.js +4 -0
  636. package/dist/tokens.cjs.js.map +1 -1
  637. package/dist/tokens.es.js +4 -0
  638. package/dist/tokens.es.js.map +1 -1
  639. package/dist/{tool-approval-DzOGIKRh.js → tool-approval-DXUFyrSl.js} +2 -2
  640. package/dist/{tool-approval-DzOGIKRh.js.map → tool-approval-DXUFyrSl.js.map} +1 -1
  641. package/dist/{tool-approval-DYX_ZNWc.cjs → tool-approval-LIy1nZZJ.cjs} +2 -2
  642. package/dist/{tool-approval-DYX_ZNWc.cjs.map → tool-approval-LIy1nZZJ.cjs.map} +1 -1
  643. package/dist/{tool-call-HNNRcirD.js → tool-call-Bs-9Cah5.js} +2 -2
  644. package/dist/{tool-call-HNNRcirD.js.map → tool-call-Bs-9Cah5.js.map} +1 -1
  645. package/dist/{tool-call-vZeZ5XT5.cjs → tool-call-C0JeHe8Z.cjs} +2 -2
  646. package/dist/{tool-call-vZeZ5XT5.cjs.map → tool-call-C0JeHe8Z.cjs.map} +1 -1
  647. package/dist/{traces-data-list-DHrC158-.js → traces-data-list-Cjy5a-1f.js} +3 -3
  648. package/dist/{traces-data-list-DHrC158-.js.map → traces-data-list-Cjy5a-1f.js.map} +1 -1
  649. package/dist/{traces-data-list-DNOtQze4.cjs → traces-data-list-DLeKSbaZ.cjs} +3 -3
  650. package/dist/{traces-data-list-DNOtQze4.cjs.map → traces-data-list-DLeKSbaZ.cjs.map} +1 -1
  651. package/package.json +13 -13
  652. package/theme/surfaces.css +8 -0
  653. package/theme.css +7 -0
  654. package/dist/Button-KUj0U-5I.js.map +0 -1
  655. package/dist/Button-MMZPEb_q.cjs.map +0 -1
  656. package/dist/Card-B_buJ5yF.js.map +0 -1
  657. package/dist/Card-DwGasv0K.cjs.map +0 -1
  658. package/dist/EmptyState-B6cyZw6m.js.map +0 -1
  659. package/dist/EmptyState-DiSP6UIy.cjs.map +0 -1
  660. package/dist/ErrorState-B0839u-q.cjs +0 -21
  661. package/dist/ErrorState-B0839u-q.cjs.map +0 -1
  662. package/dist/ErrorState-HyRJdaA2.js +0 -19
  663. package/dist/ErrorState-HyRJdaA2.js.map +0 -1
  664. package/dist/PermissionDenied-CTqnE57B.js +0 -27
  665. package/dist/PermissionDenied-CTqnE57B.js.map +0 -1
  666. package/dist/PermissionDenied-fdVmTjjf.cjs +0 -29
  667. package/dist/PermissionDenied-fdVmTjjf.cjs.map +0 -1
  668. package/dist/SessionExpired-B9e1Kx4I.js +0 -44
  669. package/dist/SessionExpired-B9e1Kx4I.js.map +0 -1
  670. package/dist/SessionExpired-GSQkcV9f.cjs +0 -46
  671. package/dist/SessionExpired-GSQkcV9f.cjs.map +0 -1
  672. package/dist/code-editor-BQTDma1I.js.map +0 -1
  673. package/dist/code-editor-BfoJXq9l.cjs.map +0 -1
  674. package/dist/combobox-Bn_uyUSB.cjs.map +0 -1
  675. package/dist/combobox-Cykfy5wc.js.map +0 -1
  676. package/dist/combobox-styles-CSsS2LEx.cjs.map +0 -1
  677. package/dist/combobox-styles-iuJUkJEQ.js.map +0 -1
  678. package/dist/components/DataFilter.cjs.js +0 -173
  679. package/dist/components/DataFilter.cjs.js.map +0 -1
  680. package/dist/components/DataFilter.d.ts +0 -2
  681. package/dist/components/DataFilter.es.js +0 -169
  682. package/dist/components/DataFilter.es.js.map +0 -1
  683. package/dist/components/ErrorState.cjs.js +0 -10
  684. package/dist/components/ErrorState.cjs.js.map +0 -1
  685. package/dist/components/ErrorState.d.ts +0 -2
  686. package/dist/components/ErrorState.es.js +0 -2
  687. package/dist/components/ErrorState.es.js.map +0 -1
  688. package/dist/components/IntegrationDialog.cjs.js +0 -104
  689. package/dist/components/IntegrationDialog.cjs.js.map +0 -1
  690. package/dist/components/IntegrationDialog.d.ts +0 -2
  691. package/dist/components/IntegrationDialog.es.js +0 -100
  692. package/dist/components/IntegrationDialog.es.js.map +0 -1
  693. package/dist/components/PermissionDenied.cjs.js +0 -10
  694. package/dist/components/PermissionDenied.cjs.js.map +0 -1
  695. package/dist/components/PermissionDenied.d.ts +0 -2
  696. package/dist/components/PermissionDenied.es.js +0 -2
  697. package/dist/components/PermissionDenied.es.js.map +0 -1
  698. package/dist/components/Sections.cjs.js +0 -13
  699. package/dist/components/Sections.cjs.js.map +0 -1
  700. package/dist/components/Sections.d.ts +0 -2
  701. package/dist/components/Sections.es.js +0 -9
  702. package/dist/components/Sections.es.js.map +0 -1
  703. package/dist/components/SessionExpired.cjs.js +0 -10
  704. package/dist/components/SessionExpired.cjs.js.map +0 -1
  705. package/dist/components/SessionExpired.d.ts +0 -2
  706. package/dist/components/SessionExpired.es.js +0 -2
  707. package/dist/components/SessionExpired.es.js.map +0 -1
  708. package/dist/components/SettingsLayout.cjs.js +0 -10
  709. package/dist/components/SettingsLayout.cjs.js.map +0 -1
  710. package/dist/components/SettingsLayout.d.ts +0 -2
  711. package/dist/components/SettingsLayout.es.js +0 -2
  712. package/dist/components/SettingsLayout.es.js.map +0 -1
  713. package/dist/data-keys-and-values-BduKvvC5.cjs.map +0 -1
  714. package/dist/data-keys-and-values-DhC4U4Yl.js.map +0 -1
  715. package/dist/data-list-Cn0Ls4l2.js.map +0 -1
  716. package/dist/data-list-DSbuTWLI.cjs.map +0 -1
  717. package/dist/dialog-Bilo4jEU.cjs.map +0 -1
  718. package/dist/dialog-DMOXPT0N.js.map +0 -1
  719. package/dist/domains/traces/components/trace-keys-and-values.cjs.js +0 -70
  720. package/dist/domains/traces/components/trace-keys-and-values.cjs.js.map +0 -1
  721. package/dist/domains/traces/components/trace-keys-and-values.d.ts +0 -2
  722. package/dist/domains/traces/components/trace-keys-and-values.es.js +0 -66
  723. package/dist/domains/traces/components/trace-keys-and-values.es.js.map +0 -1
  724. package/dist/drawer-B6Ftum77.cjs.map +0 -1
  725. package/dist/drawer-CnCsgToD.js.map +0 -1
  726. package/dist/input-B1RysHyq.js.map +0 -1
  727. package/dist/input-CDLMprJS.cjs.map +0 -1
  728. package/dist/input-group-B-pskRGt.js.map +0 -1
  729. package/dist/input-group-DaIV9Orp.cjs.map +0 -1
  730. package/dist/main-sidebar-Cf5G9iaC.js.map +0 -1
  731. package/dist/main-sidebar-DYfRxFn4.cjs.map +0 -1
  732. package/dist/page-header-CSigVThQ.js.map +0 -1
  733. package/dist/page-header-DzEEkOca.cjs.map +0 -1
  734. package/dist/select-65j5NjtJ.cjs.map +0 -1
  735. package/dist/select-BiY-SoMJ.js.map +0 -1
  736. package/dist/settings-layout-BGvMSClL.cjs +0 -49
  737. package/dist/settings-layout-BGvMSClL.cjs.map +0 -1
  738. package/dist/settings-layout-DA-JWqW3.js +0 -47
  739. package/dist/settings-layout-DA-JWqW3.js.map +0 -1
  740. package/dist/src/domains/traces/components/trace-keys-and-values.d.ts +0 -24
  741. package/dist/src/domains/traces/components/trace-keys-and-values.stories.d.ts +0 -28
  742. package/dist/src/ds/components/Columns/multi-column.d.ts +0 -7
  743. package/dist/src/ds/components/DataFilter/index.d.ts +0 -2
  744. package/dist/src/ds/components/DataFilter/select-data-filter.d.ts +0 -40
  745. package/dist/src/ds/components/DataFilter/select-data-filter.stories.d.ts +0 -8
  746. package/dist/src/ds/components/ErrorState/ErrorState.d.ts +0 -8
  747. package/dist/src/ds/components/ErrorState/error-state.stories.d.ts +0 -8
  748. package/dist/src/ds/components/ErrorState/index.d.ts +0 -2
  749. package/dist/src/ds/components/IntegrationDialog/__fixtures__/integrations-catalog.d.ts +0 -2
  750. package/dist/src/ds/components/IntegrationDialog/index.d.ts +0 -2
  751. package/dist/src/ds/components/IntegrationDialog/integration-dialog.d.ts +0 -28
  752. package/dist/src/ds/components/PermissionDenied/PermissionDenied.d.ts +0 -16
  753. package/dist/src/ds/components/PermissionDenied/index.d.ts +0 -2
  754. package/dist/src/ds/components/Sections/index.d.ts +0 -1
  755. package/dist/src/ds/components/Sections/sections.d.ts +0 -5
  756. package/dist/src/ds/components/Sections/sections.stories.d.ts +0 -8
  757. package/dist/src/ds/components/SessionExpired/SessionExpired.d.ts +0 -11
  758. package/dist/src/ds/components/SessionExpired/index.d.ts +0 -2
  759. package/dist/src/ds/components/SettingsLayout/index.d.ts +0 -1
  760. package/dist/src/ds/components/SettingsLayout/settings-layout.stories.d.ts +0 -52
  761. package/dist/textarea-5b6XcMrq.cjs.map +0 -1
  762. package/dist/textarea-DdnzLrI9.js.map +0 -1
  763. /package/dist/src/ds/{components/SettingsLayout → new/settings}/settings-layout.d.ts +0 -0
@@ -5,10 +5,10 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
5
5
  const jsxRuntime = require('react/jsx-runtime');
6
6
  const React = require('react');
7
7
  const horizontalBars = require('../../../horizontal-bars-BkVi2dEb.cjs');
8
- const metricsCard = require('../../../metrics-card-DStXI6yn.cjs');
9
- const tabsContent = require('../../../tabs-content-CuUlcS67.cjs');
10
- const tabsRoot = require('../../../tabs-root-DrK1hxeV.cjs');
11
- const tabsTab = require('../../../tabs-tab-ClmulJmM.cjs');
8
+ const metricsCard = require('../../../metrics-card-DCCHIG-z.cjs');
9
+ const tabsContent = require('../../../tabs-content-DlCJoQUW.cjs');
10
+ const tabsRoot = require('../../../tabs-root-COCL6jcx.cjs');
11
+ const tabsTab = require('../../../tabs-tab-DFmRMdi3.cjs');
12
12
  const domains_metrics_components_metricsUtils = require('./metrics-utils.cjs.js');
13
13
 
14
14
  function VolumeBars({
@@ -1,10 +1,10 @@
1
1
  import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import { useState } from 'react';
3
3
  import { H as HorizontalBars } from '../../../horizontal-bars-nTOFylzc.js';
4
- import { M as MetricsCard } from '../../../metrics-card-CN4VRQQJ.js';
5
- import { T as TabContent } from '../../../tabs-content-DMrffE9p.js';
6
- import { a as Tabs, T as TabList } from '../../../tabs-root-B2sdkQ3A.js';
7
- import { T as Tab } from '../../../tabs-tab-u6LS5twu.js';
4
+ import { M as MetricsCard } from '../../../metrics-card-Bzm6m1dy.js';
5
+ import { T as TabContent } from '../../../tabs-content-7ODUUdQ0.js';
6
+ import { a as Tabs, T as TabList } from '../../../tabs-root-UNPxoGhW.js';
7
+ import { T as Tab } from '../../../tabs-tab-DluwCnDF.js';
8
8
  import { formatCompact, CHART_COLORS } from './metrics-utils.es.js';
9
9
 
10
10
  function VolumeBars({
@@ -4,7 +4,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
5
  const jsxRuntime = require('react/jsx-runtime');
6
6
  const dateFns = require('date-fns');
7
- const EmptyState = require('../../../EmptyState-DiSP6UIy.cjs');
7
+ const EmptyState = require('../../../EmptyState-2XQgeju6.cjs');
8
8
 
9
9
  const PRESET_LABELS = {
10
10
  "last-24h": "the last 24 hours",
@@ -1,6 +1,6 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
2
  import { format } from 'date-fns';
3
- import { E as EmptyState } from '../../../EmptyState-B6cyZw6m.js';
3
+ import { E as EmptyState } from '../../../EmptyState-Bc4nJ9QH.js';
4
4
 
5
5
  const PRESET_LABELS = {
6
6
  "last-24h": "the last 24 hours",
@@ -13,18 +13,20 @@ const domains_traces_components_spanPayload_spanPayloadSection = require('./span
13
13
  require('../../../code-DhrdtZce.cjs');
14
14
  const utils_cn = require('../../../cn-DG0X1KEP.cjs');
15
15
  require('react');
16
- require('../../../Button-MMZPEb_q.cjs');
16
+ require('../../../Button-BAMnPqos.cjs');
17
17
  require('../../chat/context/chat-context.cjs.js');
18
+ require('./span-payload/span-payload-processor.cjs.js');
19
+ const domains_traces_components_spanPayload_spanProcessorAttributes = require('./span-payload/span-processor-attributes.cjs.js');
18
20
  const domains_traces_components_spanPayload_spanPayloadRegistry = require('./span-payload/span-payload-registry.cjs.js');
19
21
  const domains_traces_components_spanSummaryDescription = require('./span-summary-description.cjs.js');
20
22
  const domains_traces_components_spanTokenUsage = require('./span-token-usage.cjs.js');
21
23
  const domains_traces_components_traceIdButton = require('./trace-id-button.cjs.js');
22
- const dataKeysAndValues = require('../../../data-keys-and-values-BduKvvC5.cjs');
23
- const dataPanel = require('../../../data-panel-Bd_Xsz-W.cjs');
24
- const Notice = require('../../../Notice-CPyYcX5J.cjs');
25
- const tabsRoot = require('../../../tabs-root-DrK1hxeV.cjs');
26
- const tabsTab = require('../../../tabs-tab-ClmulJmM.cjs');
27
- const tabsContent = require('../../../tabs-content-CuUlcS67.cjs');
24
+ const dataKeysAndValues = require('../../../data-keys-and-values-CMJ9zHKm.cjs');
25
+ const dataPanel = require('../../../data-panel-CIu6JToM.cjs');
26
+ const Notice = require('../../../Notice-AUNd8fqT.cjs');
27
+ const tabsRoot = require('../../../tabs-root-COCL6jcx.cjs');
28
+ const tabsTab = require('../../../tabs-tab-DFmRMdi3.cjs');
29
+ const tabsContent = require('../../../tabs-content-DlCJoQUW.cjs');
28
30
 
29
31
  const BODY_CLASS = "min-h-0 flex-1 overflow-y-auto px-2 py-3";
30
32
  function SpanDataPanelView({
@@ -169,7 +171,16 @@ function SpanDataPanelContent({
169
171
  }
170
172
  ),
171
173
  /* @__PURE__ */ jsxRuntime.jsx(domains_traces_components_spanPayload_spanPayloadSection.SpanPayloadSection, { title: "Metadata", icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.BracesIcon, {}), raw: span.metadata, hasPreview: false, children: null }),
172
- /* @__PURE__ */ jsxRuntime.jsx(domains_traces_components_spanPayload_spanPayloadSection.SpanPayloadSection, { title: "Attributes", icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.BracesIcon, {}), raw: span.attributes, hasPreview: false, children: null })
174
+ /* @__PURE__ */ jsxRuntime.jsx(
175
+ domains_traces_components_spanPayload_spanPayloadSection.SpanPayloadSection,
176
+ {
177
+ title: "Attributes",
178
+ icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.BracesIcon, {}),
179
+ raw: span.attributes,
180
+ hasPreview: observability.describeProcessorPipeline(domains_traces_components_spanPayload_spanPayloadRegistry.asCoreSpan(span)) !== void 0,
181
+ children: /* @__PURE__ */ jsxRuntime.jsx(domains_traces_components_spanPayload_spanProcessorAttributes.SpanProcessorAttributes, { span })
182
+ }
183
+ )
173
184
  ] })
174
185
  ] });
175
186
  if (!feedbackTabSlot) {
@@ -1 +1 @@
1
- {"version":3,"file":"span-data-panel-view.cjs.js","sources":["../../../../src/domains/traces/components/span-data-panel-view.tsx"],"sourcesContent":["import { describeSpanInput, describeSpanOutput } from '@mastra/core/observability';\nimport { BracesIcon, FileInputIcon, FileOutputIcon } from 'lucide-react';\nimport type { ReactNode } from 'react';\nimport type { SpanRecord } from '../types';\nimport { getTokenLimitMessage, isTokenLimitExceeded } from '../utils/span-utils';\nimport { SpanErrorRenderer, SpanInputRenderer, SpanOutputRenderer, SpanPayloadSection } from './span-payload';\nimport { asCoreSpan } from './span-payload/span-payload-registry';\nimport { SpanSummaryDescription } from './span-summary-description';\nimport { SpanTokenUsage } from './span-token-usage';\nimport type { TokenUsage } from './span-token-usage';\nimport { TraceIdButton } from './trace-id-button';\nimport { DataKeysAndValues } from '@/ds/components/DataKeysAndValues';\nimport { DataPanel } from '@/ds/components/DataPanel';\nimport { Notice } from '@/ds/components/Notice';\nimport { Tab, TabContent, TabList, Tabs } from '@/ds/components/Tabs';\nimport { cn } from '@/lib/utils';\n\n// Mirrors `DataPanel.Content` padding without requiring the Drawer root (this view also renders standalone).\nconst BODY_CLASS = 'min-h-0 flex-1 overflow-y-auto px-2 py-3';\n\nexport interface SpanDataPanelViewProps {\n traceId: string;\n spanId: string;\n /** Full span record. Caller fetches via useSpanDetail. */\n span: SpanRecord | undefined;\n isLoading?: boolean;\n onPrevious?: () => void;\n onNext?: () => void;\n activeTab?: string;\n onTabChange?: (tab: string) => void;\n /**\n * When provided, a \"Feedback\" tab appears; the slot receives the loaded span and renders\n * whatever feedback UI the consumer wants.\n */\n feedbackTabSlot?: (args: { span: SpanRecord; traceId: string; spanId: string }) => ReactNode;\n /** Optional indicator rendered after the \"Feedback\" tab label (e.g. a needs-review dot). */\n feedbackTabBadge?: ReactNode;\n /**\n * Whether this span is the displayed root of the current view (trace root or\n * branch anchor). Controls visibility of trace-level metadata fields. Defaults\n * to `span.parentSpanId == null` (trace case) when omitted.\n */\n isAnchor?: boolean;\n /** Extra classes for the panel root (e.g. flattening the card when nested in the trace panel). */\n className?: string;\n}\n\nexport function SpanDataPanelView({\n traceId,\n spanId,\n span,\n isLoading,\n onPrevious,\n onNext,\n activeTab,\n onTabChange,\n feedbackTabSlot,\n feedbackTabBadge,\n isAnchor,\n className,\n}: SpanDataPanelViewProps) {\n // Not a DataPanel: this is the span column rendered inside `TraceDataPanelView`,\n // which already provides the panel chrome.\n return (\n <section className={cn('flex min-h-0 flex-1 flex-col overflow-hidden', className)}>\n <DataPanel.Header>\n <DataPanel.HeaderContent>\n <DataPanel.Heading>\n Span\n <TraceIdButton id={spanId} />\n </DataPanel.Heading>\n {span && <SpanSummaryDescription span={span} />}\n </DataPanel.HeaderContent>\n <DataPanel.HeaderActions>\n <DataPanel.NextPrevNav\n onPrevious={onPrevious}\n onNext={onNext}\n previousLabel=\"Go to previous span\"\n nextLabel=\"Go to next span\"\n />\n </DataPanel.HeaderActions>\n </DataPanel.Header>\n\n {isLoading ? (\n <DataPanel.LoadingData>Loading span details...</DataPanel.LoadingData>\n ) : !span ? (\n <DataPanel.NoData>Span not found.</DataPanel.NoData>\n ) : (\n <SpanDataPanelContent\n span={span}\n traceId={traceId}\n spanId={spanId}\n activeTab={activeTab}\n onTabChange={onTabChange}\n feedbackTabSlot={feedbackTabSlot}\n feedbackTabBadge={feedbackTabBadge}\n isAnchor={isAnchor}\n />\n )}\n </section>\n );\n}\n\nfunction SpanDataPanelContent({\n span,\n traceId,\n spanId,\n activeTab,\n onTabChange,\n feedbackTabSlot,\n feedbackTabBadge,\n isAnchor,\n}: {\n span: SpanRecord;\n traceId: string;\n spanId: string;\n activeTab?: string;\n onTabChange?: (tab: string) => void;\n feedbackTabSlot?: (args: { span: SpanRecord; traceId: string; spanId: string }) => ReactNode;\n feedbackTabBadge?: ReactNode;\n isAnchor?: boolean;\n}) {\n const usage = span.attributes?.usage as TokenUsage | undefined;\n const hasContext =\n (isAnchor ?? span.parentSpanId == null) &&\n Boolean(\n span.tags?.length || span.sessionId || span.requestId || span.userId || span.organizationId || span.experimentId,\n );\n\n const detailsBody = (\n <>\n {isTokenLimitExceeded(span) && (\n <div className=\"mb-3\">\n <Notice variant=\"warning\" title=\"Token Limit Exceeded\">\n <Notice.Message>{getTokenLimitMessage(span)}</Notice.Message>\n </Notice>\n </div>\n )}\n\n <SpanPayloadSection title=\"Error\" raw={span.error} className=\"mb-3\">\n <SpanErrorRenderer span={span} />\n </SpanPayloadSection>\n\n {usage && <SpanTokenUsage usage={usage} className=\"mb-3\" />}\n\n {hasContext && (\n <DataKeysAndValues>\n {/* Anchor-only: rich trace-context fields. Live on the full SpanRecord, not on the\n * lightweight payload, so they only have values once the full span is loaded. */}\n {(isAnchor ?? span.parentSpanId == null) && (\n <>\n {span.tags && span.tags.length > 0 && (\n <>\n <DataKeysAndValues.Key>Tags</DataKeysAndValues.Key>\n <DataKeysAndValues.Value>{span.tags.join(', ')}</DataKeysAndValues.Value>\n </>\n )}\n {span.sessionId && (\n <>\n <DataKeysAndValues.Key>Session Id</DataKeysAndValues.Key>\n <DataKeysAndValues.ValueWithCopyBtn\n copyTooltip=\"Copy Session Id to clipboard\"\n copyValue={span.sessionId}\n >\n {span.sessionId}\n </DataKeysAndValues.ValueWithCopyBtn>\n </>\n )}\n {span.requestId && (\n <>\n <DataKeysAndValues.Key>Request Id</DataKeysAndValues.Key>\n <DataKeysAndValues.ValueWithCopyBtn\n copyTooltip=\"Copy Request Id to clipboard\"\n copyValue={span.requestId}\n >\n {span.requestId}\n </DataKeysAndValues.ValueWithCopyBtn>\n </>\n )}\n {span.userId && (\n <>\n <DataKeysAndValues.Key>User Id</DataKeysAndValues.Key>\n <DataKeysAndValues.ValueWithCopyBtn copyTooltip=\"Copy User Id to clipboard\" copyValue={span.userId}>\n {span.userId}\n </DataKeysAndValues.ValueWithCopyBtn>\n </>\n )}\n {span.organizationId && (\n <>\n <DataKeysAndValues.Key>Organization Id</DataKeysAndValues.Key>\n <DataKeysAndValues.ValueWithCopyBtn\n copyTooltip=\"Copy Organization Id to clipboard\"\n copyValue={span.organizationId}\n >\n {span.organizationId}\n </DataKeysAndValues.ValueWithCopyBtn>\n </>\n )}\n {span.experimentId && (\n <>\n <DataKeysAndValues.Key>Experiment Id</DataKeysAndValues.Key>\n <DataKeysAndValues.ValueWithCopyBtn\n copyTooltip=\"Copy Experiment Id to clipboard\"\n copyValue={span.experimentId}\n >\n {span.experimentId}\n </DataKeysAndValues.ValueWithCopyBtn>\n </>\n )}\n </>\n )}\n </DataKeysAndValues>\n )}\n\n <div className={cn('grid gap-4', hasContext && 'mt-4')}>\n <SpanPayloadSection\n title=\"Input\"\n icon={<FileInputIcon />}\n raw={span.input}\n hasPreview={describeSpanInput(asCoreSpan(span))?.type !== 'json'}\n >\n <SpanInputRenderer span={span} />\n </SpanPayloadSection>\n <SpanPayloadSection\n title=\"Output\"\n icon={<FileOutputIcon />}\n raw={span.output}\n hasPreview={describeSpanOutput(asCoreSpan(span))?.type !== 'json'}\n >\n <SpanOutputRenderer span={span} />\n </SpanPayloadSection>\n <SpanPayloadSection title=\"Metadata\" icon={<BracesIcon />} raw={span.metadata} hasPreview={false}>\n {null}\n </SpanPayloadSection>\n <SpanPayloadSection title=\"Attributes\" icon={<BracesIcon />} raw={span.attributes} hasPreview={false}>\n {null}\n </SpanPayloadSection>\n </div>\n </>\n );\n\n // No extra tab slots → render details directly without the Tabs/TabList wrapper.\n if (!feedbackTabSlot) {\n return <div className={BODY_CLASS}>{detailsBody}</div>;\n }\n\n // Same chrome as the trace column: tab list in a header row, content scrolling beneath it.\n return (\n <Tabs\n defaultTab=\"details\"\n value={activeTab}\n onValueChange={onTabChange}\n className=\"grid min-h-0 flex-1 grid-rows-[auto_1fr]\"\n >\n <DataPanel.Header>\n <TabList variant=\"pill-ghost\" size=\"sm\">\n <Tab value=\"details\">Details</Tab>\n <Tab value=\"feedback\">Feedback{feedbackTabBadge != null && <> ({feedbackTabBadge})</>}</Tab>\n </TabList>\n </DataPanel.Header>\n\n <TabContent value=\"details\" flush>\n <div className={BODY_CLASS}>{detailsBody}</div>\n </TabContent>\n <TabContent value=\"feedback\" flush>\n <div className={BODY_CLASS}>{feedbackTabSlot({ span, traceId, spanId })}</div>\n </TabContent>\n </Tabs>\n );\n}\n"],"names":["cn","jsxs","DataPanel","jsx","TraceIdButton","SpanSummaryDescription","Fragment","isTokenLimitExceeded","Notice","SpanPayloadSection","SpanErrorRenderer","SpanTokenUsage","DataKeysAndValues","FileInputIcon","describeSpanInput","asCoreSpan","SpanInputRenderer","FileOutputIcon","describeSpanOutput","SpanOutputRenderer","BracesIcon","Tabs","TabList","Tab","TabContent"],"mappings":"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"}
1
+ {"version":3,"file":"span-data-panel-view.cjs.js","sources":["../../../../src/domains/traces/components/span-data-panel-view.tsx"],"sourcesContent":["import { describeProcessorPipeline, describeSpanInput, describeSpanOutput } from '@mastra/core/observability';\nimport { BracesIcon, FileInputIcon, FileOutputIcon } from 'lucide-react';\nimport type { ReactNode } from 'react';\nimport type { SpanRecord } from '../types';\nimport { getTokenLimitMessage, isTokenLimitExceeded } from '../utils/span-utils';\nimport {\n SpanErrorRenderer,\n SpanInputRenderer,\n SpanOutputRenderer,\n SpanPayloadSection,\n SpanProcessorAttributes,\n} from './span-payload';\nimport { asCoreSpan } from './span-payload/span-payload-registry';\nimport { SpanSummaryDescription } from './span-summary-description';\nimport { SpanTokenUsage } from './span-token-usage';\nimport type { TokenUsage } from './span-token-usage';\nimport { TraceIdButton } from './trace-id-button';\nimport { DataKeysAndValues } from '@/ds/components/DataKeysAndValues';\nimport { DataPanel } from '@/ds/components/DataPanel';\nimport { Notice } from '@/ds/components/Notice';\nimport { Tab, TabContent, TabList, Tabs } from '@/ds/components/Tabs';\nimport { cn } from '@/lib/utils';\n\n// Mirrors `DataPanel.Content` padding without requiring the Drawer root (this view also renders standalone).\nconst BODY_CLASS = 'min-h-0 flex-1 overflow-y-auto px-2 py-3';\n\nexport interface SpanDataPanelViewProps {\n traceId: string;\n spanId: string;\n /** Full span record. Caller fetches via useSpanDetail. */\n span: SpanRecord | undefined;\n isLoading?: boolean;\n onPrevious?: () => void;\n onNext?: () => void;\n activeTab?: string;\n onTabChange?: (tab: string) => void;\n /**\n * When provided, a \"Feedback\" tab appears; the slot receives the loaded span and renders\n * whatever feedback UI the consumer wants.\n */\n feedbackTabSlot?: (args: { span: SpanRecord; traceId: string; spanId: string }) => ReactNode;\n /** Optional indicator rendered after the \"Feedback\" tab label (e.g. a needs-review dot). */\n feedbackTabBadge?: ReactNode;\n /**\n * Whether this span is the displayed root of the current view (trace root or\n * branch anchor). Controls visibility of trace-level metadata fields. Defaults\n * to `span.parentSpanId == null` (trace case) when omitted.\n */\n isAnchor?: boolean;\n /** Extra classes for the panel root (e.g. flattening the card when nested in the trace panel). */\n className?: string;\n}\n\nexport function SpanDataPanelView({\n traceId,\n spanId,\n span,\n isLoading,\n onPrevious,\n onNext,\n activeTab,\n onTabChange,\n feedbackTabSlot,\n feedbackTabBadge,\n isAnchor,\n className,\n}: SpanDataPanelViewProps) {\n // Not a DataPanel: this is the span column rendered inside `TraceDataPanelView`,\n // which already provides the panel chrome.\n return (\n <section className={cn('flex min-h-0 flex-1 flex-col overflow-hidden', className)}>\n <DataPanel.Header>\n <DataPanel.HeaderContent>\n <DataPanel.Heading>\n Span\n <TraceIdButton id={spanId} />\n </DataPanel.Heading>\n {span && <SpanSummaryDescription span={span} />}\n </DataPanel.HeaderContent>\n <DataPanel.HeaderActions>\n <DataPanel.NextPrevNav\n onPrevious={onPrevious}\n onNext={onNext}\n previousLabel=\"Go to previous span\"\n nextLabel=\"Go to next span\"\n />\n </DataPanel.HeaderActions>\n </DataPanel.Header>\n\n {isLoading ? (\n <DataPanel.LoadingData>Loading span details...</DataPanel.LoadingData>\n ) : !span ? (\n <DataPanel.NoData>Span not found.</DataPanel.NoData>\n ) : (\n <SpanDataPanelContent\n span={span}\n traceId={traceId}\n spanId={spanId}\n activeTab={activeTab}\n onTabChange={onTabChange}\n feedbackTabSlot={feedbackTabSlot}\n feedbackTabBadge={feedbackTabBadge}\n isAnchor={isAnchor}\n />\n )}\n </section>\n );\n}\n\nfunction SpanDataPanelContent({\n span,\n traceId,\n spanId,\n activeTab,\n onTabChange,\n feedbackTabSlot,\n feedbackTabBadge,\n isAnchor,\n}: {\n span: SpanRecord;\n traceId: string;\n spanId: string;\n activeTab?: string;\n onTabChange?: (tab: string) => void;\n feedbackTabSlot?: (args: { span: SpanRecord; traceId: string; spanId: string }) => ReactNode;\n feedbackTabBadge?: ReactNode;\n isAnchor?: boolean;\n}) {\n const usage = span.attributes?.usage as TokenUsage | undefined;\n const hasContext =\n (isAnchor ?? span.parentSpanId == null) &&\n Boolean(\n span.tags?.length || span.sessionId || span.requestId || span.userId || span.organizationId || span.experimentId,\n );\n\n const detailsBody = (\n <>\n {isTokenLimitExceeded(span) && (\n <div className=\"mb-3\">\n <Notice variant=\"warning\" title=\"Token Limit Exceeded\">\n <Notice.Message>{getTokenLimitMessage(span)}</Notice.Message>\n </Notice>\n </div>\n )}\n\n <SpanPayloadSection title=\"Error\" raw={span.error} className=\"mb-3\">\n <SpanErrorRenderer span={span} />\n </SpanPayloadSection>\n\n {usage && <SpanTokenUsage usage={usage} className=\"mb-3\" />}\n\n {hasContext && (\n <DataKeysAndValues>\n {/* Anchor-only: rich trace-context fields. Live on the full SpanRecord, not on the\n * lightweight payload, so they only have values once the full span is loaded. */}\n {(isAnchor ?? span.parentSpanId == null) && (\n <>\n {span.tags && span.tags.length > 0 && (\n <>\n <DataKeysAndValues.Key>Tags</DataKeysAndValues.Key>\n <DataKeysAndValues.Value>{span.tags.join(', ')}</DataKeysAndValues.Value>\n </>\n )}\n {span.sessionId && (\n <>\n <DataKeysAndValues.Key>Session Id</DataKeysAndValues.Key>\n <DataKeysAndValues.ValueWithCopyBtn\n copyTooltip=\"Copy Session Id to clipboard\"\n copyValue={span.sessionId}\n >\n {span.sessionId}\n </DataKeysAndValues.ValueWithCopyBtn>\n </>\n )}\n {span.requestId && (\n <>\n <DataKeysAndValues.Key>Request Id</DataKeysAndValues.Key>\n <DataKeysAndValues.ValueWithCopyBtn\n copyTooltip=\"Copy Request Id to clipboard\"\n copyValue={span.requestId}\n >\n {span.requestId}\n </DataKeysAndValues.ValueWithCopyBtn>\n </>\n )}\n {span.userId && (\n <>\n <DataKeysAndValues.Key>User Id</DataKeysAndValues.Key>\n <DataKeysAndValues.ValueWithCopyBtn copyTooltip=\"Copy User Id to clipboard\" copyValue={span.userId}>\n {span.userId}\n </DataKeysAndValues.ValueWithCopyBtn>\n </>\n )}\n {span.organizationId && (\n <>\n <DataKeysAndValues.Key>Organization Id</DataKeysAndValues.Key>\n <DataKeysAndValues.ValueWithCopyBtn\n copyTooltip=\"Copy Organization Id to clipboard\"\n copyValue={span.organizationId}\n >\n {span.organizationId}\n </DataKeysAndValues.ValueWithCopyBtn>\n </>\n )}\n {span.experimentId && (\n <>\n <DataKeysAndValues.Key>Experiment Id</DataKeysAndValues.Key>\n <DataKeysAndValues.ValueWithCopyBtn\n copyTooltip=\"Copy Experiment Id to clipboard\"\n copyValue={span.experimentId}\n >\n {span.experimentId}\n </DataKeysAndValues.ValueWithCopyBtn>\n </>\n )}\n </>\n )}\n </DataKeysAndValues>\n )}\n\n <div className={cn('grid gap-4', hasContext && 'mt-4')}>\n <SpanPayloadSection\n title=\"Input\"\n icon={<FileInputIcon />}\n raw={span.input}\n hasPreview={describeSpanInput(asCoreSpan(span))?.type !== 'json'}\n >\n <SpanInputRenderer span={span} />\n </SpanPayloadSection>\n <SpanPayloadSection\n title=\"Output\"\n icon={<FileOutputIcon />}\n raw={span.output}\n hasPreview={describeSpanOutput(asCoreSpan(span))?.type !== 'json'}\n >\n <SpanOutputRenderer span={span} />\n </SpanPayloadSection>\n <SpanPayloadSection title=\"Metadata\" icon={<BracesIcon />} raw={span.metadata} hasPreview={false}>\n {null}\n </SpanPayloadSection>\n <SpanPayloadSection\n title=\"Attributes\"\n icon={<BracesIcon />}\n raw={span.attributes}\n hasPreview={describeProcessorPipeline(asCoreSpan(span)) !== undefined}\n >\n <SpanProcessorAttributes span={span} />\n </SpanPayloadSection>\n </div>\n </>\n );\n\n // No extra tab slots → render details directly without the Tabs/TabList wrapper.\n if (!feedbackTabSlot) {\n return <div className={BODY_CLASS}>{detailsBody}</div>;\n }\n\n // Same chrome as the trace column: tab list in a header row, content scrolling beneath it.\n return (\n <Tabs\n defaultTab=\"details\"\n value={activeTab}\n onValueChange={onTabChange}\n className=\"grid min-h-0 flex-1 grid-rows-[auto_1fr]\"\n >\n <DataPanel.Header>\n <TabList variant=\"pill-ghost\" size=\"sm\">\n <Tab value=\"details\">Details</Tab>\n <Tab value=\"feedback\">Feedback{feedbackTabBadge != null && <> ({feedbackTabBadge})</>}</Tab>\n </TabList>\n </DataPanel.Header>\n\n <TabContent value=\"details\" flush>\n <div className={BODY_CLASS}>{detailsBody}</div>\n </TabContent>\n <TabContent value=\"feedback\" flush>\n <div className={BODY_CLASS}>{feedbackTabSlot({ span, traceId, spanId })}</div>\n </TabContent>\n </Tabs>\n );\n}\n"],"names":["cn","jsxs","DataPanel","jsx","TraceIdButton","SpanSummaryDescription","Fragment","isTokenLimitExceeded","Notice","SpanPayloadSection","SpanErrorRenderer","SpanTokenUsage","DataKeysAndValues","FileInputIcon","describeSpanInput","asCoreSpan","SpanInputRenderer","FileOutputIcon","describeSpanOutput","SpanOutputRenderer","BracesIcon","describeProcessorPipeline","SpanProcessorAttributes","Tabs","TabList","Tab","TabContent"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
2
- import { describeSpanInput, describeSpanOutput } from '@mastra/core/observability';
2
+ import { describeSpanInput, describeSpanOutput, describeProcessorPipeline } from '@mastra/core/observability';
3
3
  import { FileInputIcon, FileOutputIcon, BracesIcon } from 'lucide-react';
4
4
  import { isTokenLimitExceeded, getTokenLimitMessage } from '../utils/span-utils.es.js';
5
5
  import { SpanInputRenderer } from './span-payload/span-input-renderers.es.js';
@@ -9,18 +9,20 @@ import { SpanPayloadSection } from './span-payload/span-payload-section.es.js';
9
9
  import '../../../code-D4Vw_fYq.js';
10
10
  import { c as cn } from '../../../cn-65Adrsfj.js';
11
11
  import 'react';
12
- import '../../../Button-KUj0U-5I.js';
12
+ import '../../../Button-B8nF87ai.js';
13
13
  import '../../chat/context/chat-context.es.js';
14
+ import './span-payload/span-payload-processor.es.js';
15
+ import { SpanProcessorAttributes } from './span-payload/span-processor-attributes.es.js';
14
16
  import { asCoreSpan } from './span-payload/span-payload-registry.es.js';
15
17
  import { SpanSummaryDescription } from './span-summary-description.es.js';
16
18
  import { SpanTokenUsage } from './span-token-usage.es.js';
17
19
  import { TraceIdButton } from './trace-id-button.es.js';
18
- import { D as DataKeysAndValues } from '../../../data-keys-and-values-DhC4U4Yl.js';
19
- import { D as DataPanel } from '../../../data-panel-Y7wD0xlR.js';
20
- import { N as Notice } from '../../../Notice-KC18b8Nd.js';
21
- import { a as Tabs, T as TabList } from '../../../tabs-root-B2sdkQ3A.js';
22
- import { T as Tab } from '../../../tabs-tab-u6LS5twu.js';
23
- import { T as TabContent } from '../../../tabs-content-DMrffE9p.js';
20
+ import { D as DataKeysAndValues } from '../../../data-keys-and-values-BTYDB-K2.js';
21
+ import { D as DataPanel } from '../../../data-panel-CPZ2GuZN.js';
22
+ import { N as Notice } from '../../../Notice-WT8G4OA6.js';
23
+ import { a as Tabs, T as TabList } from '../../../tabs-root-UNPxoGhW.js';
24
+ import { T as Tab } from '../../../tabs-tab-DluwCnDF.js';
25
+ import { T as TabContent } from '../../../tabs-content-7ODUUdQ0.js';
24
26
 
25
27
  const BODY_CLASS = "min-h-0 flex-1 overflow-y-auto px-2 py-3";
26
28
  function SpanDataPanelView({
@@ -165,7 +167,16 @@ function SpanDataPanelContent({
165
167
  }
166
168
  ),
167
169
  /* @__PURE__ */ jsx(SpanPayloadSection, { title: "Metadata", icon: /* @__PURE__ */ jsx(BracesIcon, {}), raw: span.metadata, hasPreview: false, children: null }),
168
- /* @__PURE__ */ jsx(SpanPayloadSection, { title: "Attributes", icon: /* @__PURE__ */ jsx(BracesIcon, {}), raw: span.attributes, hasPreview: false, children: null })
170
+ /* @__PURE__ */ jsx(
171
+ SpanPayloadSection,
172
+ {
173
+ title: "Attributes",
174
+ icon: /* @__PURE__ */ jsx(BracesIcon, {}),
175
+ raw: span.attributes,
176
+ hasPreview: describeProcessorPipeline(asCoreSpan(span)) !== void 0,
177
+ children: /* @__PURE__ */ jsx(SpanProcessorAttributes, { span })
178
+ }
179
+ )
169
180
  ] })
170
181
  ] });
171
182
  if (!feedbackTabSlot) {
@@ -1 +1 @@
1
- {"version":3,"file":"span-data-panel-view.es.js","sources":["../../../../src/domains/traces/components/span-data-panel-view.tsx"],"sourcesContent":["import { describeSpanInput, describeSpanOutput } from '@mastra/core/observability';\nimport { BracesIcon, FileInputIcon, FileOutputIcon } from 'lucide-react';\nimport type { ReactNode } from 'react';\nimport type { SpanRecord } from '../types';\nimport { getTokenLimitMessage, isTokenLimitExceeded } from '../utils/span-utils';\nimport { SpanErrorRenderer, SpanInputRenderer, SpanOutputRenderer, SpanPayloadSection } from './span-payload';\nimport { asCoreSpan } from './span-payload/span-payload-registry';\nimport { SpanSummaryDescription } from './span-summary-description';\nimport { SpanTokenUsage } from './span-token-usage';\nimport type { TokenUsage } from './span-token-usage';\nimport { TraceIdButton } from './trace-id-button';\nimport { DataKeysAndValues } from '@/ds/components/DataKeysAndValues';\nimport { DataPanel } from '@/ds/components/DataPanel';\nimport { Notice } from '@/ds/components/Notice';\nimport { Tab, TabContent, TabList, Tabs } from '@/ds/components/Tabs';\nimport { cn } from '@/lib/utils';\n\n// Mirrors `DataPanel.Content` padding without requiring the Drawer root (this view also renders standalone).\nconst BODY_CLASS = 'min-h-0 flex-1 overflow-y-auto px-2 py-3';\n\nexport interface SpanDataPanelViewProps {\n traceId: string;\n spanId: string;\n /** Full span record. Caller fetches via useSpanDetail. */\n span: SpanRecord | undefined;\n isLoading?: boolean;\n onPrevious?: () => void;\n onNext?: () => void;\n activeTab?: string;\n onTabChange?: (tab: string) => void;\n /**\n * When provided, a \"Feedback\" tab appears; the slot receives the loaded span and renders\n * whatever feedback UI the consumer wants.\n */\n feedbackTabSlot?: (args: { span: SpanRecord; traceId: string; spanId: string }) => ReactNode;\n /** Optional indicator rendered after the \"Feedback\" tab label (e.g. a needs-review dot). */\n feedbackTabBadge?: ReactNode;\n /**\n * Whether this span is the displayed root of the current view (trace root or\n * branch anchor). Controls visibility of trace-level metadata fields. Defaults\n * to `span.parentSpanId == null` (trace case) when omitted.\n */\n isAnchor?: boolean;\n /** Extra classes for the panel root (e.g. flattening the card when nested in the trace panel). */\n className?: string;\n}\n\nexport function SpanDataPanelView({\n traceId,\n spanId,\n span,\n isLoading,\n onPrevious,\n onNext,\n activeTab,\n onTabChange,\n feedbackTabSlot,\n feedbackTabBadge,\n isAnchor,\n className,\n}: SpanDataPanelViewProps) {\n // Not a DataPanel: this is the span column rendered inside `TraceDataPanelView`,\n // which already provides the panel chrome.\n return (\n <section className={cn('flex min-h-0 flex-1 flex-col overflow-hidden', className)}>\n <DataPanel.Header>\n <DataPanel.HeaderContent>\n <DataPanel.Heading>\n Span\n <TraceIdButton id={spanId} />\n </DataPanel.Heading>\n {span && <SpanSummaryDescription span={span} />}\n </DataPanel.HeaderContent>\n <DataPanel.HeaderActions>\n <DataPanel.NextPrevNav\n onPrevious={onPrevious}\n onNext={onNext}\n previousLabel=\"Go to previous span\"\n nextLabel=\"Go to next span\"\n />\n </DataPanel.HeaderActions>\n </DataPanel.Header>\n\n {isLoading ? (\n <DataPanel.LoadingData>Loading span details...</DataPanel.LoadingData>\n ) : !span ? (\n <DataPanel.NoData>Span not found.</DataPanel.NoData>\n ) : (\n <SpanDataPanelContent\n span={span}\n traceId={traceId}\n spanId={spanId}\n activeTab={activeTab}\n onTabChange={onTabChange}\n feedbackTabSlot={feedbackTabSlot}\n feedbackTabBadge={feedbackTabBadge}\n isAnchor={isAnchor}\n />\n )}\n </section>\n );\n}\n\nfunction SpanDataPanelContent({\n span,\n traceId,\n spanId,\n activeTab,\n onTabChange,\n feedbackTabSlot,\n feedbackTabBadge,\n isAnchor,\n}: {\n span: SpanRecord;\n traceId: string;\n spanId: string;\n activeTab?: string;\n onTabChange?: (tab: string) => void;\n feedbackTabSlot?: (args: { span: SpanRecord; traceId: string; spanId: string }) => ReactNode;\n feedbackTabBadge?: ReactNode;\n isAnchor?: boolean;\n}) {\n const usage = span.attributes?.usage as TokenUsage | undefined;\n const hasContext =\n (isAnchor ?? span.parentSpanId == null) &&\n Boolean(\n span.tags?.length || span.sessionId || span.requestId || span.userId || span.organizationId || span.experimentId,\n );\n\n const detailsBody = (\n <>\n {isTokenLimitExceeded(span) && (\n <div className=\"mb-3\">\n <Notice variant=\"warning\" title=\"Token Limit Exceeded\">\n <Notice.Message>{getTokenLimitMessage(span)}</Notice.Message>\n </Notice>\n </div>\n )}\n\n <SpanPayloadSection title=\"Error\" raw={span.error} className=\"mb-3\">\n <SpanErrorRenderer span={span} />\n </SpanPayloadSection>\n\n {usage && <SpanTokenUsage usage={usage} className=\"mb-3\" />}\n\n {hasContext && (\n <DataKeysAndValues>\n {/* Anchor-only: rich trace-context fields. Live on the full SpanRecord, not on the\n * lightweight payload, so they only have values once the full span is loaded. */}\n {(isAnchor ?? span.parentSpanId == null) && (\n <>\n {span.tags && span.tags.length > 0 && (\n <>\n <DataKeysAndValues.Key>Tags</DataKeysAndValues.Key>\n <DataKeysAndValues.Value>{span.tags.join(', ')}</DataKeysAndValues.Value>\n </>\n )}\n {span.sessionId && (\n <>\n <DataKeysAndValues.Key>Session Id</DataKeysAndValues.Key>\n <DataKeysAndValues.ValueWithCopyBtn\n copyTooltip=\"Copy Session Id to clipboard\"\n copyValue={span.sessionId}\n >\n {span.sessionId}\n </DataKeysAndValues.ValueWithCopyBtn>\n </>\n )}\n {span.requestId && (\n <>\n <DataKeysAndValues.Key>Request Id</DataKeysAndValues.Key>\n <DataKeysAndValues.ValueWithCopyBtn\n copyTooltip=\"Copy Request Id to clipboard\"\n copyValue={span.requestId}\n >\n {span.requestId}\n </DataKeysAndValues.ValueWithCopyBtn>\n </>\n )}\n {span.userId && (\n <>\n <DataKeysAndValues.Key>User Id</DataKeysAndValues.Key>\n <DataKeysAndValues.ValueWithCopyBtn copyTooltip=\"Copy User Id to clipboard\" copyValue={span.userId}>\n {span.userId}\n </DataKeysAndValues.ValueWithCopyBtn>\n </>\n )}\n {span.organizationId && (\n <>\n <DataKeysAndValues.Key>Organization Id</DataKeysAndValues.Key>\n <DataKeysAndValues.ValueWithCopyBtn\n copyTooltip=\"Copy Organization Id to clipboard\"\n copyValue={span.organizationId}\n >\n {span.organizationId}\n </DataKeysAndValues.ValueWithCopyBtn>\n </>\n )}\n {span.experimentId && (\n <>\n <DataKeysAndValues.Key>Experiment Id</DataKeysAndValues.Key>\n <DataKeysAndValues.ValueWithCopyBtn\n copyTooltip=\"Copy Experiment Id to clipboard\"\n copyValue={span.experimentId}\n >\n {span.experimentId}\n </DataKeysAndValues.ValueWithCopyBtn>\n </>\n )}\n </>\n )}\n </DataKeysAndValues>\n )}\n\n <div className={cn('grid gap-4', hasContext && 'mt-4')}>\n <SpanPayloadSection\n title=\"Input\"\n icon={<FileInputIcon />}\n raw={span.input}\n hasPreview={describeSpanInput(asCoreSpan(span))?.type !== 'json'}\n >\n <SpanInputRenderer span={span} />\n </SpanPayloadSection>\n <SpanPayloadSection\n title=\"Output\"\n icon={<FileOutputIcon />}\n raw={span.output}\n hasPreview={describeSpanOutput(asCoreSpan(span))?.type !== 'json'}\n >\n <SpanOutputRenderer span={span} />\n </SpanPayloadSection>\n <SpanPayloadSection title=\"Metadata\" icon={<BracesIcon />} raw={span.metadata} hasPreview={false}>\n {null}\n </SpanPayloadSection>\n <SpanPayloadSection title=\"Attributes\" icon={<BracesIcon />} raw={span.attributes} hasPreview={false}>\n {null}\n </SpanPayloadSection>\n </div>\n </>\n );\n\n // No extra tab slots → render details directly without the Tabs/TabList wrapper.\n if (!feedbackTabSlot) {\n return <div className={BODY_CLASS}>{detailsBody}</div>;\n }\n\n // Same chrome as the trace column: tab list in a header row, content scrolling beneath it.\n return (\n <Tabs\n defaultTab=\"details\"\n value={activeTab}\n onValueChange={onTabChange}\n className=\"grid min-h-0 flex-1 grid-rows-[auto_1fr]\"\n >\n <DataPanel.Header>\n <TabList variant=\"pill-ghost\" size=\"sm\">\n <Tab value=\"details\">Details</Tab>\n <Tab value=\"feedback\">Feedback{feedbackTabBadge != null && <> ({feedbackTabBadge})</>}</Tab>\n </TabList>\n </DataPanel.Header>\n\n <TabContent value=\"details\" flush>\n <div className={BODY_CLASS}>{detailsBody}</div>\n </TabContent>\n <TabContent value=\"feedback\" flush>\n <div className={BODY_CLASS}>{feedbackTabSlot({ span, traceId, spanId })}</div>\n </TabContent>\n </Tabs>\n );\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"span-data-panel-view.es.js","sources":["../../../../src/domains/traces/components/span-data-panel-view.tsx"],"sourcesContent":["import { describeProcessorPipeline, describeSpanInput, describeSpanOutput } from '@mastra/core/observability';\nimport { BracesIcon, FileInputIcon, FileOutputIcon } from 'lucide-react';\nimport type { ReactNode } from 'react';\nimport type { SpanRecord } from '../types';\nimport { getTokenLimitMessage, isTokenLimitExceeded } from '../utils/span-utils';\nimport {\n SpanErrorRenderer,\n SpanInputRenderer,\n SpanOutputRenderer,\n SpanPayloadSection,\n SpanProcessorAttributes,\n} from './span-payload';\nimport { asCoreSpan } from './span-payload/span-payload-registry';\nimport { SpanSummaryDescription } from './span-summary-description';\nimport { SpanTokenUsage } from './span-token-usage';\nimport type { TokenUsage } from './span-token-usage';\nimport { TraceIdButton } from './trace-id-button';\nimport { DataKeysAndValues } from '@/ds/components/DataKeysAndValues';\nimport { DataPanel } from '@/ds/components/DataPanel';\nimport { Notice } from '@/ds/components/Notice';\nimport { Tab, TabContent, TabList, Tabs } from '@/ds/components/Tabs';\nimport { cn } from '@/lib/utils';\n\n// Mirrors `DataPanel.Content` padding without requiring the Drawer root (this view also renders standalone).\nconst BODY_CLASS = 'min-h-0 flex-1 overflow-y-auto px-2 py-3';\n\nexport interface SpanDataPanelViewProps {\n traceId: string;\n spanId: string;\n /** Full span record. Caller fetches via useSpanDetail. */\n span: SpanRecord | undefined;\n isLoading?: boolean;\n onPrevious?: () => void;\n onNext?: () => void;\n activeTab?: string;\n onTabChange?: (tab: string) => void;\n /**\n * When provided, a \"Feedback\" tab appears; the slot receives the loaded span and renders\n * whatever feedback UI the consumer wants.\n */\n feedbackTabSlot?: (args: { span: SpanRecord; traceId: string; spanId: string }) => ReactNode;\n /** Optional indicator rendered after the \"Feedback\" tab label (e.g. a needs-review dot). */\n feedbackTabBadge?: ReactNode;\n /**\n * Whether this span is the displayed root of the current view (trace root or\n * branch anchor). Controls visibility of trace-level metadata fields. Defaults\n * to `span.parentSpanId == null` (trace case) when omitted.\n */\n isAnchor?: boolean;\n /** Extra classes for the panel root (e.g. flattening the card when nested in the trace panel). */\n className?: string;\n}\n\nexport function SpanDataPanelView({\n traceId,\n spanId,\n span,\n isLoading,\n onPrevious,\n onNext,\n activeTab,\n onTabChange,\n feedbackTabSlot,\n feedbackTabBadge,\n isAnchor,\n className,\n}: SpanDataPanelViewProps) {\n // Not a DataPanel: this is the span column rendered inside `TraceDataPanelView`,\n // which already provides the panel chrome.\n return (\n <section className={cn('flex min-h-0 flex-1 flex-col overflow-hidden', className)}>\n <DataPanel.Header>\n <DataPanel.HeaderContent>\n <DataPanel.Heading>\n Span\n <TraceIdButton id={spanId} />\n </DataPanel.Heading>\n {span && <SpanSummaryDescription span={span} />}\n </DataPanel.HeaderContent>\n <DataPanel.HeaderActions>\n <DataPanel.NextPrevNav\n onPrevious={onPrevious}\n onNext={onNext}\n previousLabel=\"Go to previous span\"\n nextLabel=\"Go to next span\"\n />\n </DataPanel.HeaderActions>\n </DataPanel.Header>\n\n {isLoading ? (\n <DataPanel.LoadingData>Loading span details...</DataPanel.LoadingData>\n ) : !span ? (\n <DataPanel.NoData>Span not found.</DataPanel.NoData>\n ) : (\n <SpanDataPanelContent\n span={span}\n traceId={traceId}\n spanId={spanId}\n activeTab={activeTab}\n onTabChange={onTabChange}\n feedbackTabSlot={feedbackTabSlot}\n feedbackTabBadge={feedbackTabBadge}\n isAnchor={isAnchor}\n />\n )}\n </section>\n );\n}\n\nfunction SpanDataPanelContent({\n span,\n traceId,\n spanId,\n activeTab,\n onTabChange,\n feedbackTabSlot,\n feedbackTabBadge,\n isAnchor,\n}: {\n span: SpanRecord;\n traceId: string;\n spanId: string;\n activeTab?: string;\n onTabChange?: (tab: string) => void;\n feedbackTabSlot?: (args: { span: SpanRecord; traceId: string; spanId: string }) => ReactNode;\n feedbackTabBadge?: ReactNode;\n isAnchor?: boolean;\n}) {\n const usage = span.attributes?.usage as TokenUsage | undefined;\n const hasContext =\n (isAnchor ?? span.parentSpanId == null) &&\n Boolean(\n span.tags?.length || span.sessionId || span.requestId || span.userId || span.organizationId || span.experimentId,\n );\n\n const detailsBody = (\n <>\n {isTokenLimitExceeded(span) && (\n <div className=\"mb-3\">\n <Notice variant=\"warning\" title=\"Token Limit Exceeded\">\n <Notice.Message>{getTokenLimitMessage(span)}</Notice.Message>\n </Notice>\n </div>\n )}\n\n <SpanPayloadSection title=\"Error\" raw={span.error} className=\"mb-3\">\n <SpanErrorRenderer span={span} />\n </SpanPayloadSection>\n\n {usage && <SpanTokenUsage usage={usage} className=\"mb-3\" />}\n\n {hasContext && (\n <DataKeysAndValues>\n {/* Anchor-only: rich trace-context fields. Live on the full SpanRecord, not on the\n * lightweight payload, so they only have values once the full span is loaded. */}\n {(isAnchor ?? span.parentSpanId == null) && (\n <>\n {span.tags && span.tags.length > 0 && (\n <>\n <DataKeysAndValues.Key>Tags</DataKeysAndValues.Key>\n <DataKeysAndValues.Value>{span.tags.join(', ')}</DataKeysAndValues.Value>\n </>\n )}\n {span.sessionId && (\n <>\n <DataKeysAndValues.Key>Session Id</DataKeysAndValues.Key>\n <DataKeysAndValues.ValueWithCopyBtn\n copyTooltip=\"Copy Session Id to clipboard\"\n copyValue={span.sessionId}\n >\n {span.sessionId}\n </DataKeysAndValues.ValueWithCopyBtn>\n </>\n )}\n {span.requestId && (\n <>\n <DataKeysAndValues.Key>Request Id</DataKeysAndValues.Key>\n <DataKeysAndValues.ValueWithCopyBtn\n copyTooltip=\"Copy Request Id to clipboard\"\n copyValue={span.requestId}\n >\n {span.requestId}\n </DataKeysAndValues.ValueWithCopyBtn>\n </>\n )}\n {span.userId && (\n <>\n <DataKeysAndValues.Key>User Id</DataKeysAndValues.Key>\n <DataKeysAndValues.ValueWithCopyBtn copyTooltip=\"Copy User Id to clipboard\" copyValue={span.userId}>\n {span.userId}\n </DataKeysAndValues.ValueWithCopyBtn>\n </>\n )}\n {span.organizationId && (\n <>\n <DataKeysAndValues.Key>Organization Id</DataKeysAndValues.Key>\n <DataKeysAndValues.ValueWithCopyBtn\n copyTooltip=\"Copy Organization Id to clipboard\"\n copyValue={span.organizationId}\n >\n {span.organizationId}\n </DataKeysAndValues.ValueWithCopyBtn>\n </>\n )}\n {span.experimentId && (\n <>\n <DataKeysAndValues.Key>Experiment Id</DataKeysAndValues.Key>\n <DataKeysAndValues.ValueWithCopyBtn\n copyTooltip=\"Copy Experiment Id to clipboard\"\n copyValue={span.experimentId}\n >\n {span.experimentId}\n </DataKeysAndValues.ValueWithCopyBtn>\n </>\n )}\n </>\n )}\n </DataKeysAndValues>\n )}\n\n <div className={cn('grid gap-4', hasContext && 'mt-4')}>\n <SpanPayloadSection\n title=\"Input\"\n icon={<FileInputIcon />}\n raw={span.input}\n hasPreview={describeSpanInput(asCoreSpan(span))?.type !== 'json'}\n >\n <SpanInputRenderer span={span} />\n </SpanPayloadSection>\n <SpanPayloadSection\n title=\"Output\"\n icon={<FileOutputIcon />}\n raw={span.output}\n hasPreview={describeSpanOutput(asCoreSpan(span))?.type !== 'json'}\n >\n <SpanOutputRenderer span={span} />\n </SpanPayloadSection>\n <SpanPayloadSection title=\"Metadata\" icon={<BracesIcon />} raw={span.metadata} hasPreview={false}>\n {null}\n </SpanPayloadSection>\n <SpanPayloadSection\n title=\"Attributes\"\n icon={<BracesIcon />}\n raw={span.attributes}\n hasPreview={describeProcessorPipeline(asCoreSpan(span)) !== undefined}\n >\n <SpanProcessorAttributes span={span} />\n </SpanPayloadSection>\n </div>\n </>\n );\n\n // No extra tab slots → render details directly without the Tabs/TabList wrapper.\n if (!feedbackTabSlot) {\n return <div className={BODY_CLASS}>{detailsBody}</div>;\n }\n\n // Same chrome as the trace column: tab list in a header row, content scrolling beneath it.\n return (\n <Tabs\n defaultTab=\"details\"\n value={activeTab}\n onValueChange={onTabChange}\n className=\"grid min-h-0 flex-1 grid-rows-[auto_1fr]\"\n >\n <DataPanel.Header>\n <TabList variant=\"pill-ghost\" size=\"sm\">\n <Tab value=\"details\">Details</Tab>\n <Tab value=\"feedback\">Feedback{feedbackTabBadge != null && <> ({feedbackTabBadge})</>}</Tab>\n </TabList>\n </DataPanel.Header>\n\n <TabContent value=\"details\" flush>\n <div className={BODY_CLASS}>{detailsBody}</div>\n </TabContent>\n <TabContent value=\"feedback\" flush>\n <div className={BODY_CLASS}>{feedbackTabSlot({ span, traceId, spanId })}</div>\n </TabContent>\n </Tabs>\n );\n}\n"],"names":[],"mappings":"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"}
@@ -11,8 +11,10 @@ const domains_traces_components_spanPayload_spanErrorRenderer = require('./span-
11
11
  const domains_traces_components_spanPayload_spanPayloadSection = require('./span-payload/span-payload-section.cjs.js');
12
12
  require('../../../code-DhrdtZce.cjs');
13
13
  require('react');
14
- require('../../../Button-MMZPEb_q.cjs');
14
+ require('../../../Button-BAMnPqos.cjs');
15
15
  require('../../chat/context/chat-context.cjs.js');
16
+ require('./span-payload/span-payload-processor.cjs.js');
17
+ const domains_traces_components_spanPayload_spanProcessorAttributes = require('./span-payload/span-processor-attributes.cjs.js');
16
18
  const domains_traces_components_spanPayload_spanPayloadRegistry = require('./span-payload/span-payload-registry.cjs.js');
17
19
  const domains_traces_components_spanSummaryDescription = require('./span-summary-description.cjs.js');
18
20
  const domains_traces_components_traceIdButton = require('./trace-id-button.cjs.js');
@@ -79,9 +81,9 @@ function SpanDetailsView({ spanId, span, isLoading, onClose }) {
79
81
  title: "Attributes",
80
82
  icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.BracesIcon, {}),
81
83
  raw: span.attributes,
82
- hasPreview: false,
84
+ hasPreview: observability.describeProcessorPipeline(domains_traces_components_spanPayload_spanPayloadRegistry.asCoreSpan(span)) !== void 0,
83
85
  layout: "details",
84
- children: null
86
+ children: /* @__PURE__ */ jsxRuntime.jsx(domains_traces_components_spanPayload_spanProcessorAttributes.SpanProcessorAttributes, { span })
85
87
  }
86
88
  )
87
89
  ] })
@@ -1 +1 @@
1
- {"version":3,"file":"span-details-view.cjs.js","sources":["../../../../src/domains/traces/components/span-details-view.tsx"],"sourcesContent":["import { describeSpanInput, describeSpanOutput } from '@mastra/core/observability';\nimport { BracesIcon, FileInputIcon, FileOutputIcon } from 'lucide-react';\nimport type { SpanRecord } from '../types';\nimport { SpanErrorRenderer, SpanInputRenderer, SpanOutputRenderer, SpanPayloadSection } from './span-payload';\nimport { asCoreSpan } from './span-payload/span-payload-registry';\nimport { SpanSummaryDescription } from './span-summary-description';\nimport { TraceIdButton } from './trace-id-button';\nimport { DataDetailsPanel } from '@/ds/components/DataDetailsPanel';\n\nconst KV = DataDetailsPanel.KeyValueList;\n\nexport interface SpanDetailsViewProps {\n spanId: string;\n /** Full span record. Caller fetches via useSpanDetail. */\n span: SpanRecord | undefined;\n isLoading?: boolean;\n onClose: () => void;\n}\n\n/**\n * Compact span panel using `DataDetailsPanel` (popover-style). Shows basic span metadata +\n * input/output/metadata/attributes code sections. Use this for inline span inspection; for the\n * full-width span view with scoring tab + prev/next nav, use `SpanDataPanelView`.\n */\nexport function SpanDetailsView({ spanId, span, isLoading, onClose }: SpanDetailsViewProps) {\n return (\n <DataDetailsPanel>\n <DataDetailsPanel.Header>\n <div className=\"flex min-w-0 flex-1 flex-col gap-1\">\n <DataDetailsPanel.Heading className=\"items-center\">\n Span\n <TraceIdButton id={spanId} />\n </DataDetailsPanel.Heading>\n {span && <SpanSummaryDescription span={span} />}\n </div>\n <DataDetailsPanel.CloseButton onClick={onClose} />\n </DataDetailsPanel.Header>\n\n {isLoading ? (\n <DataDetailsPanel.LoadingData>Loading span...</DataDetailsPanel.LoadingData>\n ) : !span ? (\n <DataDetailsPanel.NoData>Span not found.</DataDetailsPanel.NoData>\n ) : (\n <DataDetailsPanel.Content>\n {span.spanType && (\n <>\n <KV>\n <KV.Key>Type</KV.Key>\n <KV.Value>{span.spanType}</KV.Value>\n </KV>\n <br />\n </>\n )}\n\n <SpanPayloadSection title=\"Error\" raw={span.error} layout=\"details\" className=\"mb-3\">\n <SpanErrorRenderer span={span} />\n </SpanPayloadSection>\n\n <SpanPayloadSection\n title=\"Input\"\n icon={<FileInputIcon />}\n raw={span.input}\n hasPreview={describeSpanInput(asCoreSpan(span))?.type !== 'json'}\n layout=\"details\"\n >\n <SpanInputRenderer span={span} />\n </SpanPayloadSection>\n <SpanPayloadSection\n title=\"Output\"\n icon={<FileOutputIcon />}\n raw={span.output}\n hasPreview={describeSpanOutput(asCoreSpan(span))?.type !== 'json'}\n layout=\"details\"\n >\n <SpanOutputRenderer span={span} />\n </SpanPayloadSection>\n <SpanPayloadSection\n title=\"Metadata\"\n icon={<BracesIcon />}\n raw={span.metadata}\n hasPreview={false}\n layout=\"details\"\n >\n {null}\n </SpanPayloadSection>\n <SpanPayloadSection\n title=\"Attributes\"\n icon={<BracesIcon />}\n raw={span.attributes}\n hasPreview={false}\n layout=\"details\"\n >\n {null}\n </SpanPayloadSection>\n </DataDetailsPanel.Content>\n )}\n </DataDetailsPanel>\n );\n}\n"],"names":["DataDetailsPanel","jsxs","jsx","TraceIdButton","SpanSummaryDescription","Fragment","SpanPayloadSection","SpanErrorRenderer","FileInputIcon","describeSpanInput","asCoreSpan","SpanInputRenderer","FileOutputIcon","describeSpanOutput","SpanOutputRenderer","BracesIcon"],"mappings":"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"}
1
+ {"version":3,"file":"span-details-view.cjs.js","sources":["../../../../src/domains/traces/components/span-details-view.tsx"],"sourcesContent":["import { describeProcessorPipeline, describeSpanInput, describeSpanOutput } from '@mastra/core/observability';\nimport { BracesIcon, FileInputIcon, FileOutputIcon } from 'lucide-react';\nimport type { SpanRecord } from '../types';\nimport {\n SpanErrorRenderer,\n SpanInputRenderer,\n SpanOutputRenderer,\n SpanPayloadSection,\n SpanProcessorAttributes,\n} from './span-payload';\nimport { asCoreSpan } from './span-payload/span-payload-registry';\nimport { SpanSummaryDescription } from './span-summary-description';\nimport { TraceIdButton } from './trace-id-button';\nimport { DataDetailsPanel } from '@/ds/components/DataDetailsPanel';\n\nconst KV = DataDetailsPanel.KeyValueList;\n\nexport interface SpanDetailsViewProps {\n spanId: string;\n /** Full span record. Caller fetches via useSpanDetail. */\n span: SpanRecord | undefined;\n isLoading?: boolean;\n onClose: () => void;\n}\n\n/**\n * Compact span panel using `DataDetailsPanel` (popover-style). Shows basic span metadata +\n * input/output/metadata/attributes code sections. Use this for inline span inspection; for the\n * full-width span view with scoring tab + prev/next nav, use `SpanDataPanelView`.\n */\nexport function SpanDetailsView({ spanId, span, isLoading, onClose }: SpanDetailsViewProps) {\n return (\n <DataDetailsPanel>\n <DataDetailsPanel.Header>\n <div className=\"flex min-w-0 flex-1 flex-col gap-1\">\n <DataDetailsPanel.Heading className=\"items-center\">\n Span\n <TraceIdButton id={spanId} />\n </DataDetailsPanel.Heading>\n {span && <SpanSummaryDescription span={span} />}\n </div>\n <DataDetailsPanel.CloseButton onClick={onClose} />\n </DataDetailsPanel.Header>\n\n {isLoading ? (\n <DataDetailsPanel.LoadingData>Loading span...</DataDetailsPanel.LoadingData>\n ) : !span ? (\n <DataDetailsPanel.NoData>Span not found.</DataDetailsPanel.NoData>\n ) : (\n <DataDetailsPanel.Content>\n {span.spanType && (\n <>\n <KV>\n <KV.Key>Type</KV.Key>\n <KV.Value>{span.spanType}</KV.Value>\n </KV>\n <br />\n </>\n )}\n\n <SpanPayloadSection title=\"Error\" raw={span.error} layout=\"details\" className=\"mb-3\">\n <SpanErrorRenderer span={span} />\n </SpanPayloadSection>\n\n <SpanPayloadSection\n title=\"Input\"\n icon={<FileInputIcon />}\n raw={span.input}\n hasPreview={describeSpanInput(asCoreSpan(span))?.type !== 'json'}\n layout=\"details\"\n >\n <SpanInputRenderer span={span} />\n </SpanPayloadSection>\n <SpanPayloadSection\n title=\"Output\"\n icon={<FileOutputIcon />}\n raw={span.output}\n hasPreview={describeSpanOutput(asCoreSpan(span))?.type !== 'json'}\n layout=\"details\"\n >\n <SpanOutputRenderer span={span} />\n </SpanPayloadSection>\n <SpanPayloadSection\n title=\"Metadata\"\n icon={<BracesIcon />}\n raw={span.metadata}\n hasPreview={false}\n layout=\"details\"\n >\n {null}\n </SpanPayloadSection>\n <SpanPayloadSection\n title=\"Attributes\"\n icon={<BracesIcon />}\n raw={span.attributes}\n hasPreview={describeProcessorPipeline(asCoreSpan(span)) !== undefined}\n layout=\"details\"\n >\n <SpanProcessorAttributes span={span} />\n </SpanPayloadSection>\n </DataDetailsPanel.Content>\n )}\n </DataDetailsPanel>\n );\n}\n"],"names":["DataDetailsPanel","jsxs","jsx","TraceIdButton","SpanSummaryDescription","Fragment","SpanPayloadSection","SpanErrorRenderer","FileInputIcon","describeSpanInput","asCoreSpan","SpanInputRenderer","FileOutputIcon","describeSpanOutput","SpanOutputRenderer","BracesIcon","describeProcessorPipeline","SpanProcessorAttributes"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
2
- import { describeSpanInput, describeSpanOutput } from '@mastra/core/observability';
2
+ import { describeSpanInput, describeSpanOutput, describeProcessorPipeline } from '@mastra/core/observability';
3
3
  import { FileInputIcon, FileOutputIcon, BracesIcon } from 'lucide-react';
4
4
  import { SpanInputRenderer } from './span-payload/span-input-renderers.es.js';
5
5
  import { SpanOutputRenderer } from './span-payload/span-output-renderers.es.js';
@@ -7,8 +7,10 @@ import { SpanErrorRenderer } from './span-payload/span-error-renderer.es.js';
7
7
  import { SpanPayloadSection } from './span-payload/span-payload-section.es.js';
8
8
  import '../../../code-D4Vw_fYq.js';
9
9
  import 'react';
10
- import '../../../Button-KUj0U-5I.js';
10
+ import '../../../Button-B8nF87ai.js';
11
11
  import '../../chat/context/chat-context.es.js';
12
+ import './span-payload/span-payload-processor.es.js';
13
+ import { SpanProcessorAttributes } from './span-payload/span-processor-attributes.es.js';
12
14
  import { asCoreSpan } from './span-payload/span-payload-registry.es.js';
13
15
  import { SpanSummaryDescription } from './span-summary-description.es.js';
14
16
  import { TraceIdButton } from './trace-id-button.es.js';
@@ -75,9 +77,9 @@ function SpanDetailsView({ spanId, span, isLoading, onClose }) {
75
77
  title: "Attributes",
76
78
  icon: /* @__PURE__ */ jsx(BracesIcon, {}),
77
79
  raw: span.attributes,
78
- hasPreview: false,
80
+ hasPreview: describeProcessorPipeline(asCoreSpan(span)) !== void 0,
79
81
  layout: "details",
80
- children: null
82
+ children: /* @__PURE__ */ jsx(SpanProcessorAttributes, { span })
81
83
  }
82
84
  )
83
85
  ] })
@@ -1 +1 @@
1
- {"version":3,"file":"span-details-view.es.js","sources":["../../../../src/domains/traces/components/span-details-view.tsx"],"sourcesContent":["import { describeSpanInput, describeSpanOutput } from '@mastra/core/observability';\nimport { BracesIcon, FileInputIcon, FileOutputIcon } from 'lucide-react';\nimport type { SpanRecord } from '../types';\nimport { SpanErrorRenderer, SpanInputRenderer, SpanOutputRenderer, SpanPayloadSection } from './span-payload';\nimport { asCoreSpan } from './span-payload/span-payload-registry';\nimport { SpanSummaryDescription } from './span-summary-description';\nimport { TraceIdButton } from './trace-id-button';\nimport { DataDetailsPanel } from '@/ds/components/DataDetailsPanel';\n\nconst KV = DataDetailsPanel.KeyValueList;\n\nexport interface SpanDetailsViewProps {\n spanId: string;\n /** Full span record. Caller fetches via useSpanDetail. */\n span: SpanRecord | undefined;\n isLoading?: boolean;\n onClose: () => void;\n}\n\n/**\n * Compact span panel using `DataDetailsPanel` (popover-style). Shows basic span metadata +\n * input/output/metadata/attributes code sections. Use this for inline span inspection; for the\n * full-width span view with scoring tab + prev/next nav, use `SpanDataPanelView`.\n */\nexport function SpanDetailsView({ spanId, span, isLoading, onClose }: SpanDetailsViewProps) {\n return (\n <DataDetailsPanel>\n <DataDetailsPanel.Header>\n <div className=\"flex min-w-0 flex-1 flex-col gap-1\">\n <DataDetailsPanel.Heading className=\"items-center\">\n Span\n <TraceIdButton id={spanId} />\n </DataDetailsPanel.Heading>\n {span && <SpanSummaryDescription span={span} />}\n </div>\n <DataDetailsPanel.CloseButton onClick={onClose} />\n </DataDetailsPanel.Header>\n\n {isLoading ? (\n <DataDetailsPanel.LoadingData>Loading span...</DataDetailsPanel.LoadingData>\n ) : !span ? (\n <DataDetailsPanel.NoData>Span not found.</DataDetailsPanel.NoData>\n ) : (\n <DataDetailsPanel.Content>\n {span.spanType && (\n <>\n <KV>\n <KV.Key>Type</KV.Key>\n <KV.Value>{span.spanType}</KV.Value>\n </KV>\n <br />\n </>\n )}\n\n <SpanPayloadSection title=\"Error\" raw={span.error} layout=\"details\" className=\"mb-3\">\n <SpanErrorRenderer span={span} />\n </SpanPayloadSection>\n\n <SpanPayloadSection\n title=\"Input\"\n icon={<FileInputIcon />}\n raw={span.input}\n hasPreview={describeSpanInput(asCoreSpan(span))?.type !== 'json'}\n layout=\"details\"\n >\n <SpanInputRenderer span={span} />\n </SpanPayloadSection>\n <SpanPayloadSection\n title=\"Output\"\n icon={<FileOutputIcon />}\n raw={span.output}\n hasPreview={describeSpanOutput(asCoreSpan(span))?.type !== 'json'}\n layout=\"details\"\n >\n <SpanOutputRenderer span={span} />\n </SpanPayloadSection>\n <SpanPayloadSection\n title=\"Metadata\"\n icon={<BracesIcon />}\n raw={span.metadata}\n hasPreview={false}\n layout=\"details\"\n >\n {null}\n </SpanPayloadSection>\n <SpanPayloadSection\n title=\"Attributes\"\n icon={<BracesIcon />}\n raw={span.attributes}\n hasPreview={false}\n layout=\"details\"\n >\n {null}\n </SpanPayloadSection>\n </DataDetailsPanel.Content>\n )}\n </DataDetailsPanel>\n );\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"span-details-view.es.js","sources":["../../../../src/domains/traces/components/span-details-view.tsx"],"sourcesContent":["import { describeProcessorPipeline, describeSpanInput, describeSpanOutput } from '@mastra/core/observability';\nimport { BracesIcon, FileInputIcon, FileOutputIcon } from 'lucide-react';\nimport type { SpanRecord } from '../types';\nimport {\n SpanErrorRenderer,\n SpanInputRenderer,\n SpanOutputRenderer,\n SpanPayloadSection,\n SpanProcessorAttributes,\n} from './span-payload';\nimport { asCoreSpan } from './span-payload/span-payload-registry';\nimport { SpanSummaryDescription } from './span-summary-description';\nimport { TraceIdButton } from './trace-id-button';\nimport { DataDetailsPanel } from '@/ds/components/DataDetailsPanel';\n\nconst KV = DataDetailsPanel.KeyValueList;\n\nexport interface SpanDetailsViewProps {\n spanId: string;\n /** Full span record. Caller fetches via useSpanDetail. */\n span: SpanRecord | undefined;\n isLoading?: boolean;\n onClose: () => void;\n}\n\n/**\n * Compact span panel using `DataDetailsPanel` (popover-style). Shows basic span metadata +\n * input/output/metadata/attributes code sections. Use this for inline span inspection; for the\n * full-width span view with scoring tab + prev/next nav, use `SpanDataPanelView`.\n */\nexport function SpanDetailsView({ spanId, span, isLoading, onClose }: SpanDetailsViewProps) {\n return (\n <DataDetailsPanel>\n <DataDetailsPanel.Header>\n <div className=\"flex min-w-0 flex-1 flex-col gap-1\">\n <DataDetailsPanel.Heading className=\"items-center\">\n Span\n <TraceIdButton id={spanId} />\n </DataDetailsPanel.Heading>\n {span && <SpanSummaryDescription span={span} />}\n </div>\n <DataDetailsPanel.CloseButton onClick={onClose} />\n </DataDetailsPanel.Header>\n\n {isLoading ? (\n <DataDetailsPanel.LoadingData>Loading span...</DataDetailsPanel.LoadingData>\n ) : !span ? (\n <DataDetailsPanel.NoData>Span not found.</DataDetailsPanel.NoData>\n ) : (\n <DataDetailsPanel.Content>\n {span.spanType && (\n <>\n <KV>\n <KV.Key>Type</KV.Key>\n <KV.Value>{span.spanType}</KV.Value>\n </KV>\n <br />\n </>\n )}\n\n <SpanPayloadSection title=\"Error\" raw={span.error} layout=\"details\" className=\"mb-3\">\n <SpanErrorRenderer span={span} />\n </SpanPayloadSection>\n\n <SpanPayloadSection\n title=\"Input\"\n icon={<FileInputIcon />}\n raw={span.input}\n hasPreview={describeSpanInput(asCoreSpan(span))?.type !== 'json'}\n layout=\"details\"\n >\n <SpanInputRenderer span={span} />\n </SpanPayloadSection>\n <SpanPayloadSection\n title=\"Output\"\n icon={<FileOutputIcon />}\n raw={span.output}\n hasPreview={describeSpanOutput(asCoreSpan(span))?.type !== 'json'}\n layout=\"details\"\n >\n <SpanOutputRenderer span={span} />\n </SpanPayloadSection>\n <SpanPayloadSection\n title=\"Metadata\"\n icon={<BracesIcon />}\n raw={span.metadata}\n hasPreview={false}\n layout=\"details\"\n >\n {null}\n </SpanPayloadSection>\n <SpanPayloadSection\n title=\"Attributes\"\n icon={<BracesIcon />}\n raw={span.attributes}\n hasPreview={describeProcessorPipeline(asCoreSpan(span)) !== undefined}\n layout=\"details\"\n >\n <SpanProcessorAttributes span={span} />\n </SpanPayloadSection>\n </DataDetailsPanel.Content>\n )}\n </DataDetailsPanel>\n );\n}\n"],"names":[],"mappings":"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"}
@@ -5,10 +5,10 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
5
5
  const jsxRuntime = require('react/jsx-runtime');
6
6
  const observability = require('@mastra/core/observability');
7
7
  const domains_traces_components_spanPayload_spanPayloadJson = require('./span-payload-json.cjs.js');
8
- const domains_traces_components_spanPayload_spanPayloadTool = require('../../../../span-payload-primitives-BjBTICfq.cjs');
8
+ const domains_traces_components_spanPayload_spanPayloadTool = require('../../../../span-payload-primitives-KEXwIaeZ.cjs');
9
9
  const domains_traces_components_spanPayload_spanPayloadRegistry = require('./span-payload-registry.cjs.js');
10
- const dataKeysAndValues = require('../../../../data-keys-and-values-BduKvvC5.cjs');
11
- const Notice = require('../../../../Notice-CPyYcX5J.cjs');
10
+ const dataKeysAndValues = require('../../../../data-keys-and-values-CMJ9zHKm.cjs');
11
+ const Notice = require('../../../../Notice-AUNd8fqT.cjs');
12
12
 
13
13
  function SpanErrorRenderer({ span, className }) {
14
14
  const error = observability.describeSpanError(domains_traces_components_spanPayload_spanPayloadRegistry.asCoreSpan(span));
@@ -1,10 +1,10 @@
1
1
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
2
  import { describeSpanError } from '@mastra/core/observability';
3
3
  import { SpanPayloadJson } from './span-payload-json.es.js';
4
- import { c as SpanPayloadCollapsible } from '../../../../span-payload-primitives-DlIOpCII.js';
4
+ import { c as SpanPayloadCollapsible } from '../../../../span-payload-primitives-CzLh6axt.js';
5
5
  import { asCoreSpan } from './span-payload-registry.es.js';
6
- import { D as DataKeysAndValues } from '../../../../data-keys-and-values-DhC4U4Yl.js';
7
- import { N as Notice } from '../../../../Notice-KC18b8Nd.js';
6
+ import { D as DataKeysAndValues } from '../../../../data-keys-and-values-BTYDB-K2.js';
7
+ import { N as Notice } from '../../../../Notice-WT8G4OA6.js';
8
8
 
9
9
  function SpanErrorRenderer({ span, className }) {
10
10
  const error = describeSpanError(asCoreSpan(span));
@@ -6,10 +6,11 @@ const jsxRuntime = require('react/jsx-runtime');
6
6
  const observability = require('@mastra/core/observability');
7
7
  const domains_traces_components_spanPayload_spanPayloadJson = require('./span-payload-json.cjs.js');
8
8
  const domains_traces_components_spanPayload_spanPayloadMessages = require('./span-payload-messages.cjs.js');
9
- const domains_traces_components_spanPayload_spanPayloadTool = require('../../../../span-payload-primitives-BjBTICfq.cjs');
9
+ const domains_traces_components_spanPayload_spanPayloadTool = require('../../../../span-payload-primitives-KEXwIaeZ.cjs');
10
+ const domains_traces_components_spanPayload_spanPayloadProcessor = require('./span-payload-processor.cjs.js');
10
11
  const domains_traces_components_spanPayload_spanPayloadRegistry = require('./span-payload-registry.cjs.js');
11
- const Card = require('../../../../Card-DwGasv0K.cjs');
12
- const dataKeysAndValues = require('../../../../data-keys-and-values-BduKvvC5.cjs');
12
+ const Card = require('../../../../Card-BbwF20OW.cjs');
13
+ const dataKeysAndValues = require('../../../../data-keys-and-values-CMJ9zHKm.cjs');
13
14
 
14
15
  function SpanTextRenderer({ value }) {
15
16
  return /* @__PURE__ */ jsxRuntime.jsx(domains_traces_components_spanPayload_spanPayloadTool.SpanPayloadMarkdown, { children: value });
@@ -36,6 +37,7 @@ const SPAN_INPUT_RENDERERS = {
36
37
  text: SpanTextRenderer,
37
38
  messages: domains_traces_components_spanPayload_spanPayloadMessages.SpanPayloadMessages,
38
39
  "agent-run-resume": SpanAgentRunResumeRenderer,
40
+ processor: domains_traces_components_spanPayload_spanPayloadProcessor.SpanPayloadProcessor,
39
41
  json: domains_traces_components_spanPayload_spanPayloadJson.SpanPayloadJson
40
42
  };
41
43
  function SpanInputRenderer({ span }) {
@@ -1 +1 @@
1
- {"version":3,"file":"span-input-renderers.cjs.js","sources":["../../../../../src/domains/traces/components/span-payload/span-input-renderers.tsx"],"sourcesContent":["import { describeSpanInput } from '@mastra/core/observability';\nimport type { AgentRunResumeInput, SpanInputDescription } from '@mastra/core/observability';\nimport type { SpanRecord } from '../../types';\nimport { SpanPayloadJson } from './span-payload-json';\nimport { SpanPayloadMessages } from './span-payload-messages';\nimport { SpanPayloadField, SpanPayloadMarkdown } from './span-payload-primitives';\nimport { asCoreSpan, pickRenderer } from './span-payload-registry';\nimport type { PayloadRegistry } from './span-payload-registry';\nimport { Card, CardContent } from '@/ds/components/Card';\nimport { DataKeysAndValues } from '@/ds/components/DataKeysAndValues';\n\nfunction SpanTextRenderer({ value }: { value: string }) {\n return <SpanPayloadMarkdown>{value}</SpanPayloadMarkdown>;\n}\n\nfunction SpanAgentRunResumeRenderer({ value }: { value: AgentRunResumeInput }) {\n const { resumeData, toolName, toolCallId, ...rest } = value;\n const hasTarget = toolName !== undefined || toolCallId !== undefined;\n const data = resumeData !== undefined ? resumeData : Object.keys(rest).length > 0 ? rest : undefined;\n return (\n <div data-slot=\"span-agent-run-resume\" className=\"flex flex-col gap-6\">\n {hasTarget && (\n <SpanPayloadField label=\"Resumes into\">\n <DataKeysAndValues>\n {toolName !== undefined && (\n <>\n <DataKeysAndValues.Key>Tool</DataKeysAndValues.Key>\n <DataKeysAndValues.Value>{String(toolName)}</DataKeysAndValues.Value>\n </>\n )}\n {toolCallId !== undefined && (\n <>\n <DataKeysAndValues.Key>Tool call id</DataKeysAndValues.Key>\n <DataKeysAndValues.ValueWithCopyBtn copyValue={String(toolCallId)}>\n {String(toolCallId)}\n </DataKeysAndValues.ValueWithCopyBtn>\n </>\n )}\n </DataKeysAndValues>\n </SpanPayloadField>\n )}\n {data !== undefined && (\n <SpanPayloadField label=\"Resume data\">\n <SpanPayloadJson value={data} />\n </SpanPayloadField>\n )}\n </div>\n );\n}\n\n/**\n * One renderer per `describeSpanInput` tag. `satisfies` keeps the map exhaustive: a\n * new tag in core is a type error here until it gets a renderer (or maps to JSON).\n */\nconst SPAN_INPUT_RENDERERS = {\n text: SpanTextRenderer,\n messages: SpanPayloadMessages,\n 'agent-run-resume': SpanAgentRunResumeRenderer,\n json: SpanPayloadJson,\n} satisfies PayloadRegistry<SpanInputDescription>;\n\nexport interface SpanInputRendererProps {\n span: SpanRecord;\n}\n\n/** Renders a span's input through the registry; `null` when the span recorded none. */\nexport function SpanInputRenderer({ span }: SpanInputRendererProps) {\n const description = describeSpanInput(asCoreSpan(span));\n if (!description) return null;\n if (description.type === 'json') return <SpanPayloadJson value={description.value} />;\n const Renderer = pickRenderer(SPAN_INPUT_RENDERERS, description);\n return (\n <Card data-slot=\"span-input-card\" className=\"min-w-0\">\n <CardContent>\n <Renderer value={description.value} />\n </CardContent>\n </Card>\n );\n}\n"],"names":["jsx","SpanPayloadMarkdown","jsxs","SpanPayloadField","DataKeysAndValues","Fragment","SpanPayloadJson","SpanPayloadMessages","describeSpanInput","asCoreSpan","pickRenderer","Card","CardContent"],"mappings":";;;;;;;;;;;;;AAWA,SAAS,gBAAA,CAAiB,EAAE,KAAA,EAAM,EAAsB;AACtD,EAAA,uBAAOA,cAAA,CAACC,6EAAqB,QAAA,EAAA,KAAA,EAAM,CAAA;AACrC;AAEA,SAAS,0BAAA,CAA2B,EAAE,KAAA,EAAM,EAAmC;AAC7E,EAAA,MAAM,EAAE,UAAA,EAAY,QAAA,EAAU,UAAA,EAAY,GAAG,MAAK,GAAI,KAAA;AACtD,EAAA,MAAM,SAAA,GAAY,QAAA,KAAa,MAAA,IAAa,UAAA,KAAe,MAAA;AAC3D,EAAA,MAAM,IAAA,GAAO,UAAA,KAAe,MAAA,GAAY,UAAA,GAAa,MAAA,CAAO,KAAK,IAAI,CAAA,CAAE,MAAA,GAAS,CAAA,GAAI,IAAA,GAAO,MAAA;AAC3F,EAAA,uBACEC,eAAA,CAAC,KAAA,EAAA,EAAI,WAAA,EAAU,uBAAA,EAAwB,WAAU,qBAAA,EAC9C,QAAA,EAAA;AAAA,IAAA,SAAA,oBACCF,cAAA,CAACG,sEAAA,EAAA,EAAiB,KAAA,EAAM,cAAA,EACtB,0CAACC,mCAAA,EAAA,EACE,QAAA,EAAA;AAAA,MAAA,QAAA,KAAa,0BACZF,eAAA,CAAAG,mBAAA,EAAA,EACE,QAAA,EAAA;AAAA,wBAAAL,cAAA,CAACI,mCAAA,CAAkB,GAAA,EAAlB,EAAsB,QAAA,EAAA,MAAA,EAAI,CAAA;AAAA,uCAC1BA,mCAAA,CAAkB,KAAA,EAAlB,EAAyB,QAAA,EAAA,MAAA,CAAO,QAAQ,CAAA,EAAE;AAAA,OAAA,EAC7C,CAAA;AAAA,MAED,UAAA,KAAe,0BACdF,eAAA,CAAAG,mBAAA,EAAA,EACE,QAAA,EAAA;AAAA,wBAAAL,cAAA,CAACI,mCAAA,CAAkB,GAAA,EAAlB,EAAsB,QAAA,EAAA,cAAA,EAAY,CAAA;AAAA,wBACnCJ,cAAA,CAACI,mCAAA,CAAkB,gBAAA,EAAlB,EAAmC,SAAA,EAAW,OAAO,UAAU,CAAA,EAC7D,QAAA,EAAA,MAAA,CAAO,UAAU,CAAA,EACpB;AAAA,OAAA,EACF;AAAA,KAAA,EAEJ,CAAA,EACF,CAAA;AAAA,IAED,IAAA,KAAS,MAAA,oBACRJ,cAAA,CAACG,sEAAA,EAAA,EAAiB,KAAA,EAAM,eACtB,QAAA,kBAAAH,cAAA,CAACM,qEAAA,EAAA,EAAgB,KAAA,EAAO,IAAA,EAAM,CAAA,EAChC;AAAA,GAAA,EAEJ,CAAA;AAEJ;AAMA,MAAM,oBAAA,GAAuB;AAAA,EAC3B,IAAA,EAAM,gBAAA;AAAA,EACN,QAAA,EAAUC,6EAAA;AAAA,EACV,kBAAA,EAAoB,0BAAA;AAAA,EACpB,IAAA,EAAMD;AACR,CAAA;AAOO,SAAS,iBAAA,CAAkB,EAAE,IAAA,EAAK,EAA2B;AAClE,EAAA,MAAM,WAAA,GAAcE,+BAAA,CAAkBC,oEAAA,CAAW,IAAI,CAAC,CAAA;AACtD,EAAA,IAAI,CAAC,aAAa,OAAO,IAAA;AACzB,EAAA,IAAI,WAAA,CAAY,SAAS,MAAA,EAAQ,sCAAQH,qEAAA,EAAA,EAAgB,KAAA,EAAO,YAAY,KAAA,EAAO,CAAA;AACnF,EAAA,MAAM,QAAA,GAAWI,sEAAA,CAAa,oBAAA,EAAsB,WAAW,CAAA;AAC/D,EAAA,uBACEV,cAAA,CAACW,SAAA,EAAA,EAAK,WAAA,EAAU,iBAAA,EAAkB,WAAU,SAAA,EAC1C,QAAA,kBAAAX,cAAA,CAACY,gBAAA,EAAA,EACC,QAAA,kBAAAZ,cAAA,CAAC,QAAA,EAAA,EAAS,KAAA,EAAO,WAAA,CAAY,KAAA,EAAO,GACtC,CAAA,EACF,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"span-input-renderers.cjs.js","sources":["../../../../../src/domains/traces/components/span-payload/span-input-renderers.tsx"],"sourcesContent":["import { describeSpanInput } from '@mastra/core/observability';\nimport type { AgentRunResumeInput, SpanInputDescription } from '@mastra/core/observability';\nimport type { SpanRecord } from '../../types';\nimport { SpanPayloadJson } from './span-payload-json';\nimport { SpanPayloadMessages } from './span-payload-messages';\nimport { SpanPayloadField, SpanPayloadMarkdown } from './span-payload-primitives';\nimport { SpanPayloadProcessor } from './span-payload-processor';\nimport { asCoreSpan, pickRenderer } from './span-payload-registry';\nimport type { PayloadRegistry } from './span-payload-registry';\nimport { Card, CardContent } from '@/ds/components/Card';\nimport { DataKeysAndValues } from '@/ds/components/DataKeysAndValues';\n\nfunction SpanTextRenderer({ value }: { value: string }) {\n return <SpanPayloadMarkdown>{value}</SpanPayloadMarkdown>;\n}\n\nfunction SpanAgentRunResumeRenderer({ value }: { value: AgentRunResumeInput }) {\n const { resumeData, toolName, toolCallId, ...rest } = value;\n const hasTarget = toolName !== undefined || toolCallId !== undefined;\n const data = resumeData !== undefined ? resumeData : Object.keys(rest).length > 0 ? rest : undefined;\n return (\n <div data-slot=\"span-agent-run-resume\" className=\"flex flex-col gap-6\">\n {hasTarget && (\n <SpanPayloadField label=\"Resumes into\">\n <DataKeysAndValues>\n {toolName !== undefined && (\n <>\n <DataKeysAndValues.Key>Tool</DataKeysAndValues.Key>\n <DataKeysAndValues.Value>{String(toolName)}</DataKeysAndValues.Value>\n </>\n )}\n {toolCallId !== undefined && (\n <>\n <DataKeysAndValues.Key>Tool call id</DataKeysAndValues.Key>\n <DataKeysAndValues.ValueWithCopyBtn copyValue={String(toolCallId)}>\n {String(toolCallId)}\n </DataKeysAndValues.ValueWithCopyBtn>\n </>\n )}\n </DataKeysAndValues>\n </SpanPayloadField>\n )}\n {data !== undefined && (\n <SpanPayloadField label=\"Resume data\">\n <SpanPayloadJson value={data} />\n </SpanPayloadField>\n )}\n </div>\n );\n}\n\n/**\n * One renderer per `describeSpanInput` tag. `satisfies` keeps the map exhaustive: a\n * new tag in core is a type error here until it gets a renderer (or maps to JSON).\n */\nconst SPAN_INPUT_RENDERERS = {\n text: SpanTextRenderer,\n messages: SpanPayloadMessages,\n 'agent-run-resume': SpanAgentRunResumeRenderer,\n processor: SpanPayloadProcessor,\n json: SpanPayloadJson,\n} satisfies PayloadRegistry<SpanInputDescription>;\n\nexport interface SpanInputRendererProps {\n span: SpanRecord;\n}\n\n/** Renders a span's input through the registry; `null` when the span recorded none. */\nexport function SpanInputRenderer({ span }: SpanInputRendererProps) {\n const description = describeSpanInput(asCoreSpan(span));\n if (!description) return null;\n if (description.type === 'json') return <SpanPayloadJson value={description.value} />;\n const Renderer = pickRenderer(SPAN_INPUT_RENDERERS, description);\n return (\n <Card data-slot=\"span-input-card\" className=\"min-w-0\">\n <CardContent>\n <Renderer value={description.value} />\n </CardContent>\n </Card>\n );\n}\n"],"names":["jsx","SpanPayloadMarkdown","jsxs","SpanPayloadField","DataKeysAndValues","Fragment","SpanPayloadJson","SpanPayloadMessages","SpanPayloadProcessor","describeSpanInput","asCoreSpan","pickRenderer","Card","CardContent"],"mappings":"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"}
@@ -2,10 +2,11 @@ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
2
  import { describeSpanInput } from '@mastra/core/observability';
3
3
  import { SpanPayloadJson } from './span-payload-json.es.js';
4
4
  import { SpanPayloadMessages } from './span-payload-messages.es.js';
5
- import { S as SpanPayloadField, a as SpanPayloadMarkdown } from '../../../../span-payload-primitives-DlIOpCII.js';
5
+ import { S as SpanPayloadField, a as SpanPayloadMarkdown } from '../../../../span-payload-primitives-CzLh6axt.js';
6
+ import { SpanPayloadProcessor } from './span-payload-processor.es.js';
6
7
  import { asCoreSpan, pickRenderer } from './span-payload-registry.es.js';
7
- import { C as Card, a as CardContent } from '../../../../Card-B_buJ5yF.js';
8
- import { D as DataKeysAndValues } from '../../../../data-keys-and-values-DhC4U4Yl.js';
8
+ import { C as Card, a as CardContent } from '../../../../Card-DmT57Pve.js';
9
+ import { D as DataKeysAndValues } from '../../../../data-keys-and-values-BTYDB-K2.js';
9
10
 
10
11
  function SpanTextRenderer({ value }) {
11
12
  return /* @__PURE__ */ jsx(SpanPayloadMarkdown, { children: value });
@@ -32,6 +33,7 @@ const SPAN_INPUT_RENDERERS = {
32
33
  text: SpanTextRenderer,
33
34
  messages: SpanPayloadMessages,
34
35
  "agent-run-resume": SpanAgentRunResumeRenderer,
36
+ processor: SpanPayloadProcessor,
35
37
  json: SpanPayloadJson
36
38
  };
37
39
  function SpanInputRenderer({ span }) {