@mastra/playground-ui 63.0.0 → 63.1.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 (445) hide show
  1. package/dist/{alert-dialog-DVAC9zdj.js → alert-dialog-Cpx4g1sS.js} +2 -2
  2. package/dist/{alert-dialog-DVAC9zdj.js.map → alert-dialog-Cpx4g1sS.js.map} +1 -1
  3. package/dist/{alert-dialog-C-ODvRWT.cjs → alert-dialog-Djojjgjo.cjs} +2 -2
  4. package/dist/{alert-dialog-C-ODvRWT.cjs.map → alert-dialog-Djojjgjo.cjs.map} +1 -1
  5. package/dist/{code-block-vvYFcnqm.js → code-block-BzUcNWrb.js} +2 -2
  6. package/dist/{code-block-vvYFcnqm.js.map → code-block-BzUcNWrb.js.map} +1 -1
  7. package/dist/{code-block-BuGosknt.cjs → code-block-CKLCdWtP.cjs} +2 -2
  8. package/dist/{code-block-BuGosknt.cjs.map → code-block-CKLCdWtP.cjs.map} +1 -1
  9. package/dist/{combobox-fEMKH9nJ.cjs → combobox-CdTP_FZ0.cjs} +9 -2
  10. package/dist/combobox-CdTP_FZ0.cjs.map +1 -0
  11. package/dist/{combobox-so2V71F7.js → combobox-CeYDCkXk.js} +9 -2
  12. package/dist/combobox-CeYDCkXk.js.map +1 -0
  13. package/dist/{command-B_C36ppQ.cjs → command-CSl9Mfrp.cjs} +3 -3
  14. package/dist/{command-B_C36ppQ.cjs.map → command-CSl9Mfrp.cjs.map} +1 -1
  15. package/dist/{command-DMqzDhzs.js → command-DQAGSkdK.js} +3 -3
  16. package/dist/{command-DMqzDhzs.js.map → command-DQAGSkdK.js.map} +1 -1
  17. package/dist/components/AlertDialog.cjs.js +1 -1
  18. package/dist/components/AlertDialog.es.js +1 -1
  19. package/dist/components/CodeBlock.cjs.js +1 -1
  20. package/dist/components/CodeBlock.es.js +1 -1
  21. package/dist/components/Combobox.cjs.js +1 -1
  22. package/dist/components/Combobox.es.js +1 -1
  23. package/dist/components/Command.cjs.js +1 -1
  24. package/dist/components/Command.es.js +1 -1
  25. package/dist/components/CommandPalette.cjs.js +2 -2
  26. package/dist/components/CommandPalette.es.js +2 -2
  27. package/dist/components/Comment.cjs.js +1 -1
  28. package/dist/components/Comment.es.js +1 -1
  29. package/dist/components/Composer.cjs.js +2 -2
  30. package/dist/components/Composer.es.js +2 -2
  31. package/dist/components/DataCodeSection.cjs.js +1 -1
  32. package/dist/components/DataCodeSection.es.js +1 -1
  33. package/dist/components/DataList.cjs.js +17 -15
  34. package/dist/components/DataList.cjs.js.map +1 -1
  35. package/dist/components/DataList.es.js +5 -4
  36. package/dist/components/DataList.es.js.map +1 -1
  37. package/dist/components/DataPanel.cjs.js +1 -1
  38. package/dist/components/DataPanel.es.js +1 -1
  39. package/dist/components/DateTimeRangePicker.cjs.js +1 -1
  40. package/dist/components/DateTimeRangePicker.es.js +1 -1
  41. package/dist/components/Dialog.cjs.js +2 -2
  42. package/dist/components/Dialog.es.js +2 -2
  43. package/dist/components/DropdownMenu.cjs.js +1 -1
  44. package/dist/components/DropdownMenu.es.js +1 -1
  45. package/dist/components/EnvironmentVariablesEditor.cjs.js +2 -2
  46. package/dist/components/EnvironmentVariablesEditor.es.js +2 -2
  47. package/dist/components/InputGroup.cjs.js +1 -1
  48. package/dist/components/InputGroup.es.js +1 -1
  49. package/dist/components/InputNumber.cjs.js +1 -1
  50. package/dist/components/InputNumber.es.js +1 -1
  51. package/dist/components/ListSearch.cjs.js +1 -1
  52. package/dist/components/ListSearch.es.js +1 -1
  53. package/dist/components/LogsDataList.cjs.js +2 -5
  54. package/dist/components/LogsDataList.cjs.js.map +1 -1
  55. package/dist/components/LogsDataList.es.js +2 -5
  56. package/dist/components/LogsDataList.es.js.map +1 -1
  57. package/dist/components/MarkdownRenderer.cjs.js +1 -1
  58. package/dist/components/MarkdownRenderer.es.js +1 -1
  59. package/dist/components/MetricsCard.cjs.js +1 -1
  60. package/dist/components/MetricsCard.es.js +1 -1
  61. package/dist/components/PageLayout.cjs.js +11 -8
  62. package/dist/components/PageLayout.cjs.js.map +1 -1
  63. package/dist/components/PageLayout.es.js +11 -8
  64. package/dist/components/PageLayout.es.js.map +1 -1
  65. package/dist/components/PropertyFilter.cjs.js +2 -2
  66. package/dist/components/PropertyFilter.es.js +3 -3
  67. package/dist/components/SavedViews.cjs.js +1 -1
  68. package/dist/components/SavedViews.es.js +1 -1
  69. package/dist/components/ScrollArea.cjs.js +1 -1
  70. package/dist/components/ScrollArea.es.js +1 -1
  71. package/dist/components/SearchInput.cjs.js +1 -1
  72. package/dist/components/SearchInput.es.js +1 -1
  73. package/dist/components/Sidebar.cjs.js +3 -3
  74. package/dist/components/Sidebar.es.js +3 -3
  75. package/dist/components/Tabs.cjs.js +1 -1
  76. package/dist/components/Tabs.es.js +1 -1
  77. package/dist/components/ThreadRail.cjs.js +1 -1
  78. package/dist/components/ThreadRail.es.js +1 -1
  79. package/dist/components/Workflow.cjs.js +3 -3
  80. package/dist/components/Workflow.es.js +3 -3
  81. package/dist/components/ai/activity.cjs.js +1 -1
  82. package/dist/components/ai/activity.es.js +1 -1
  83. package/dist/components/ai/plan.cjs.js +1 -1
  84. package/dist/components/ai/plan.es.js +1 -1
  85. package/dist/components/ai/task-list.cjs.js +1 -1
  86. package/dist/components/ai/task-list.es.js +1 -1
  87. package/dist/components/ai/tool-approval.cjs.js +1 -1
  88. package/dist/components/ai/tool-approval.es.js +1 -1
  89. package/dist/components/ai/tool-call.cjs.js +2 -2
  90. package/dist/components/ai/tool-call.es.js +2 -2
  91. package/dist/{composer-CxmOOUX8.js → composer-B0i1WZgt.js} +2 -2
  92. package/dist/{composer-CxmOOUX8.js.map → composer-B0i1WZgt.js.map} +1 -1
  93. package/dist/{composer-Cg5bXN1r.cjs → composer-DJsfHivH.cjs} +2 -2
  94. package/dist/{composer-Cg5bXN1r.cjs.map → composer-DJsfHivH.cjs.map} +1 -1
  95. package/dist/{data-code-section-Bs8sHDux.cjs → data-code-section-BB2RWius.cjs} +3 -3
  96. package/dist/{data-code-section-Bs8sHDux.cjs.map → data-code-section-BB2RWius.cjs.map} +1 -1
  97. package/dist/{data-code-section-CqdjmClK.js → data-code-section-DsU-ubVW.js} +3 -3
  98. package/dist/{data-code-section-CqdjmClK.js.map → data-code-section-DsU-ubVW.js.map} +1 -1
  99. package/dist/data-list-CaifGmFh.cjs +142 -0
  100. package/dist/data-list-CaifGmFh.cjs.map +1 -0
  101. package/dist/data-list-kilUFo3I.js +138 -0
  102. package/dist/data-list-kilUFo3I.js.map +1 -0
  103. package/dist/{data-list-skeleton-BNsWWamC.js → data-list-skeleton-C_zFfUy5.js} +2 -2
  104. package/dist/{data-list-skeleton-BNsWWamC.js.map → data-list-skeleton-C_zFfUy5.js.map} +1 -1
  105. package/dist/{data-list-skeleton-BGJD4qMF.cjs → data-list-skeleton-Cgo1Urkr.cjs} +6 -6
  106. package/dist/{data-list-skeleton-BGJD4qMF.cjs.map → data-list-skeleton-Cgo1Urkr.cjs.map} +1 -1
  107. package/dist/data-list-spacer-D9J0nV_S.cjs +218 -0
  108. package/dist/data-list-spacer-D9J0nV_S.cjs.map +1 -0
  109. package/dist/data-list-spacer-DGUCD6oy.js +209 -0
  110. package/dist/data-list-spacer-DGUCD6oy.js.map +1 -0
  111. package/dist/{data-list-BLfHObw8.cjs → data-list-top-DYnH-IhJ.cjs} +14 -340
  112. package/dist/data-list-top-DYnH-IhJ.cjs.map +1 -0
  113. package/dist/{data-list-B2ArWwsJ.js → data-list-top-Dk9Wz_w5.js} +6 -333
  114. package/dist/data-list-top-Dk9Wz_w5.js.map +1 -0
  115. package/dist/{data-panel-Wjgbl6zx.cjs → data-panel-CtFwwsPs.cjs} +2 -2
  116. package/dist/{data-panel-Wjgbl6zx.cjs.map → data-panel-CtFwwsPs.cjs.map} +1 -1
  117. package/dist/{data-panel-BdCw3F_h.js → data-panel-CwIdwpov.js} +2 -2
  118. package/dist/{data-panel-BdCw3F_h.js.map → data-panel-CwIdwpov.js.map} +1 -1
  119. package/dist/{date-time-range-picker-SU1Q1h1h.js → date-time-range-picker-BT9qan60.js} +2 -2
  120. package/dist/{date-time-range-picker-SU1Q1h1h.js.map → date-time-range-picker-BT9qan60.js.map} +1 -1
  121. package/dist/{date-time-range-picker-ByNvjYuV.cjs → date-time-range-picker-DQa5XLST.cjs} +2 -2
  122. package/dist/{date-time-range-picker-ByNvjYuV.cjs.map → date-time-range-picker-DQa5XLST.cjs.map} +1 -1
  123. package/dist/{dialog-B5nLi0ER.cjs → dialog-BAlSUqcF.cjs} +2 -2
  124. package/dist/{dialog-B5nLi0ER.cjs.map → dialog-BAlSUqcF.cjs.map} +1 -1
  125. package/dist/{dialog-Jz2ZfO-z.js → dialog-CboDo8Pj.js} +2 -2
  126. package/dist/{dialog-Jz2ZfO-z.js.map → dialog-CboDo8Pj.js.map} +1 -1
  127. package/dist/{dialog-action-DdkbsKfP.cjs → dialog-action-DWE9XalB.cjs} +2 -2
  128. package/dist/{dialog-action-DdkbsKfP.cjs.map → dialog-action-DWE9XalB.cjs.map} +1 -1
  129. package/dist/{dialog-action-BxXhAz-P.js → dialog-action-DpctEQ9l.js} +2 -2
  130. package/dist/{dialog-action-BxXhAz-P.js.map → dialog-action-DpctEQ9l.js.map} +1 -1
  131. package/dist/domains/chat/attachments/attachment-preview-dialog.cjs.js +1 -1
  132. package/dist/domains/chat/attachments/attachment-preview-dialog.es.js +1 -1
  133. package/dist/domains/chat/attachments/composer-attachment-list.cjs.js +2 -2
  134. package/dist/domains/chat/attachments/composer-attachment-list.es.js +2 -2
  135. package/dist/domains/chat/components/network-choice-metadata-dialog.cjs.js +1 -1
  136. package/dist/domains/chat/components/network-choice-metadata-dialog.es.js +1 -1
  137. package/dist/domains/chat/messages/dataset-save-action.cjs.js +2 -2
  138. package/dist/domains/chat/messages/dataset-save-action.es.js +2 -2
  139. package/dist/domains/chat/messages/message-row.cjs.js +1 -1
  140. package/dist/domains/chat/messages/message-row.es.js +1 -1
  141. package/dist/domains/chat/messages/renderers/message-text.cjs.js +1 -1
  142. package/dist/domains/chat/messages/renderers/message-text.es.js +1 -1
  143. package/dist/domains/chat/messages/renderers/reasoning-part-renderer.cjs.js +1 -1
  144. package/dist/domains/chat/messages/renderers/reasoning-part-renderer.es.js +1 -1
  145. package/dist/domains/chat/messages/skill-message.cjs.js +2 -2
  146. package/dist/domains/chat/messages/skill-message.es.js +2 -2
  147. package/dist/domains/chat/tools/badges/background-task-metadata-dialog.cjs.js +1 -1
  148. package/dist/domains/chat/tools/badges/background-task-metadata-dialog.es.js +1 -1
  149. package/dist/domains/chat/tools/badges/code-mode-badge.cjs.js +1 -1
  150. package/dist/domains/chat/tools/badges/code-mode-badge.es.js +1 -1
  151. package/dist/domains/chat/tools/badges/file-tree-badge.cjs.js +1 -1
  152. package/dist/domains/chat/tools/badges/file-tree-badge.es.js +1 -1
  153. package/dist/domains/chat/tools/badges/observation-marker-details.cjs.js +1 -1
  154. package/dist/domains/chat/tools/badges/observation-marker-details.es.js +1 -1
  155. package/dist/domains/chat/tools/badges/observation-renderer.cjs.js +1 -1
  156. package/dist/domains/chat/tools/badges/observation-renderer.es.js +1 -1
  157. package/dist/domains/chat/tools/badges/tool-approval-badge.cjs.js +1 -1
  158. package/dist/domains/chat/tools/badges/tool-approval-badge.es.js +1 -1
  159. package/dist/domains/chat/tools/badges/tool-badge.cjs.js +1 -1
  160. package/dist/domains/chat/tools/badges/tool-badge.es.js +1 -1
  161. package/dist/domains/chat/tools/badges/workflow-badge.cjs.js +1 -2
  162. package/dist/domains/chat/tools/badges/workflow-badge.cjs.js.map +1 -1
  163. package/dist/domains/chat/tools/badges/workflow-badge.es.js +1 -2
  164. package/dist/domains/chat/tools/badges/workflow-badge.es.js.map +1 -1
  165. package/dist/domains/chat/tools/submit-plan-tool.cjs.js +1 -1
  166. package/dist/domains/chat/tools/submit-plan-tool.es.js +1 -1
  167. package/dist/domains/logs/components/log-data-panel.cjs.js +1 -1
  168. package/dist/domains/logs/components/log-data-panel.es.js +1 -1
  169. package/dist/domains/logs/components/logs-list-view.cjs.js +2 -3
  170. package/dist/domains/logs/components/logs-list-view.cjs.js.map +1 -1
  171. package/dist/domains/logs/components/logs-list-view.es.js +2 -3
  172. package/dist/domains/logs/components/logs-list-view.es.js.map +1 -1
  173. package/dist/domains/logs/components/logs-toolbar.cjs.js +1 -1
  174. package/dist/domains/logs/components/logs-toolbar.es.js +1 -1
  175. package/dist/domains/metrics/components/agent-runs-card.cjs.js +1 -1
  176. package/dist/domains/metrics/components/agent-runs-card.es.js +1 -1
  177. package/dist/domains/metrics/components/chart-area.cjs.js +1 -1
  178. package/dist/domains/metrics/components/chart-area.es.js +1 -1
  179. package/dist/domains/metrics/components/chart-card-error.cjs.js +1 -1
  180. package/dist/domains/metrics/components/chart-card-error.es.js +1 -1
  181. package/dist/domains/metrics/components/chart-card.cjs.js +1 -1
  182. package/dist/domains/metrics/components/chart-card.es.js +1 -1
  183. package/dist/domains/metrics/components/date-range-selector.cjs.js +5 -44
  184. package/dist/domains/metrics/components/date-range-selector.cjs.js.map +1 -1
  185. package/dist/domains/metrics/components/date-range-selector.es.js +3 -42
  186. package/dist/domains/metrics/components/date-range-selector.es.js.map +1 -1
  187. package/dist/domains/metrics/components/failure-rate-card.cjs.js +1 -1
  188. package/dist/domains/metrics/components/failure-rate-card.es.js +1 -1
  189. package/dist/domains/metrics/components/latency-card.cjs.js +1 -1
  190. package/dist/domains/metrics/components/latency-card.es.js +1 -1
  191. package/dist/domains/metrics/components/metrics-time-range-chip.cjs.js +26 -0
  192. package/dist/domains/metrics/components/metrics-time-range-chip.cjs.js.map +1 -0
  193. package/dist/domains/metrics/components/metrics-time-range-chip.d.ts +2 -0
  194. package/dist/domains/metrics/components/metrics-time-range-chip.es.js +22 -0
  195. package/dist/domains/metrics/components/metrics-time-range-chip.es.js.map +1 -0
  196. package/dist/domains/metrics/components/scores-card.cjs.js +1 -1
  197. package/dist/domains/metrics/components/scores-card.es.js +1 -1
  198. package/dist/domains/metrics/components/token-usage-card.cjs.js +1 -1
  199. package/dist/domains/metrics/components/token-usage-card.es.js +1 -1
  200. package/dist/domains/metrics/components/trace-volume-card.cjs.js +1 -1
  201. package/dist/domains/metrics/components/trace-volume-card.es.js +1 -1
  202. package/dist/domains/metrics/components/usage-card.cjs.js +1 -1
  203. package/dist/domains/metrics/components/usage-card.es.js +1 -1
  204. package/dist/domains/metrics/components.cjs.js +2 -0
  205. package/dist/domains/metrics/components.cjs.js.map +1 -1
  206. package/dist/domains/metrics/components.es.js +1 -0
  207. package/dist/domains/metrics/components.es.js.map +1 -1
  208. package/dist/domains/metrics/hooks.cjs.js +4 -0
  209. package/dist/domains/metrics/hooks.cjs.js.map +1 -1
  210. package/dist/domains/metrics/hooks.es.js +1 -1
  211. package/dist/domains/metrics/metrics-date-presets.cjs.js +49 -0
  212. package/dist/domains/metrics/metrics-date-presets.cjs.js.map +1 -0
  213. package/dist/domains/metrics/metrics-date-presets.d.ts +2 -0
  214. package/dist/domains/metrics/metrics-date-presets.es.js +43 -0
  215. package/dist/domains/metrics/metrics-date-presets.es.js.map +1 -0
  216. package/dist/domains/metrics/metrics-filters.cjs.js +94 -0
  217. package/dist/domains/metrics/metrics-filters.cjs.js.map +1 -1
  218. package/dist/domains/metrics/metrics-filters.es.js +91 -1
  219. package/dist/domains/metrics/metrics-filters.es.js.map +1 -1
  220. package/dist/domains/metrics.cjs.js +6 -0
  221. package/dist/domains/metrics.cjs.js.map +1 -1
  222. package/dist/domains/metrics.es.js +2 -1
  223. package/dist/domains/metrics.es.js.map +1 -1
  224. package/dist/domains/scores/components/score-data-panel.cjs.js +1 -1
  225. package/dist/domains/scores/components/score-data-panel.es.js +1 -1
  226. package/dist/domains/scores/components/span-scoring.cjs.js +3 -3
  227. package/dist/domains/scores/components/span-scoring.es.js +3 -3
  228. package/dist/domains/scores/components/trace-scores-tab.cjs.js +1 -2
  229. package/dist/domains/scores/components/trace-scores-tab.cjs.js.map +1 -1
  230. package/dist/domains/scores/components/trace-scores-tab.es.js +1 -2
  231. package/dist/domains/scores/components/trace-scores-tab.es.js.map +1 -1
  232. package/dist/domains/traces/components/feedback-thread.cjs.js +3 -3
  233. package/dist/domains/traces/components/feedback-thread.es.js +3 -3
  234. package/dist/domains/traces/components/span-data-panel-view.cjs.js +2 -2
  235. package/dist/domains/traces/components/span-data-panel-view.es.js +2 -2
  236. package/dist/domains/traces/components/span-payload/span-error-renderer.cjs.js +1 -1
  237. package/dist/domains/traces/components/span-payload/span-error-renderer.es.js +1 -1
  238. package/dist/domains/traces/components/span-payload/span-input-renderers.cjs.js +1 -1
  239. package/dist/domains/traces/components/span-payload/span-input-renderers.es.js +1 -1
  240. package/dist/domains/traces/components/span-payload/span-output-renderers.cjs.js +2 -2
  241. package/dist/domains/traces/components/span-payload/span-output-renderers.es.js +2 -2
  242. package/dist/domains/traces/components/span-payload/span-payload-messages.cjs.js +2 -2
  243. package/dist/domains/traces/components/span-payload/span-payload-messages.es.js +2 -2
  244. package/dist/domains/traces/components/span-payload/span-payload-primitives.cjs.js +2 -2
  245. package/dist/domains/traces/components/span-payload/span-payload-primitives.es.js +2 -2
  246. package/dist/domains/traces/components/span-payload/span-payload-processor.cjs.js +1 -1
  247. package/dist/domains/traces/components/span-payload/span-payload-processor.es.js +1 -1
  248. package/dist/domains/traces/components/span-payload/span-payload-tool.cjs.js +1 -1
  249. package/dist/domains/traces/components/span-payload/span-payload-tool.es.js +1 -1
  250. package/dist/domains/traces/components/span-payload/span-processor-attributes.cjs.js +1 -1
  251. package/dist/domains/traces/components/span-payload/span-processor-attributes.es.js +1 -1
  252. package/dist/domains/traces/components/span-summary-description.cjs.js +1 -1
  253. package/dist/domains/traces/components/span-summary-description.es.js +1 -1
  254. package/dist/domains/traces/components/thread-trace/thread-trace-details.cjs.js +1 -1
  255. package/dist/domains/traces/components/thread-trace/thread-trace-details.es.js +1 -1
  256. package/dist/domains/traces/components/thread-trace/thread-trace-messages.cjs.js +1 -1
  257. package/dist/domains/traces/components/thread-trace/thread-trace-messages.es.js +1 -1
  258. package/dist/domains/traces/components/trace-columns-menu.cjs.js +4 -4
  259. package/dist/domains/traces/components/trace-columns-menu.es.js +4 -4
  260. package/dist/domains/traces/components/trace-data-panel-view.cjs.js +4 -4
  261. package/dist/domains/traces/components/trace-data-panel-view.es.js +4 -4
  262. package/dist/domains/traces/components/trace-data-panel.cjs.js +1 -3
  263. package/dist/domains/traces/components/trace-data-panel.cjs.js.map +1 -1
  264. package/dist/domains/traces/components/trace-data-panel.es.js +1 -3
  265. package/dist/domains/traces/components/trace-data-panel.es.js.map +1 -1
  266. package/dist/domains/traces/components/trace-id-button.cjs.js +1 -1
  267. package/dist/domains/traces/components/trace-id-button.es.js +1 -1
  268. package/dist/domains/traces/components/trace-summary-description.cjs.js +1 -1
  269. package/dist/domains/traces/components/trace-summary-description.es.js +1 -1
  270. package/dist/domains/traces/components/trace-thread-panel.cjs.js +1 -1
  271. package/dist/domains/traces/components/trace-thread-panel.es.js +1 -1
  272. package/dist/domains/traces/components/trace-time-range-chip.cjs.js +1 -1
  273. package/dist/domains/traces/components/trace-time-range-chip.es.js +1 -1
  274. package/dist/domains/traces/components/traces-list-mode-toggle.cjs.js +1 -1
  275. package/dist/domains/traces/components/traces-list-mode-toggle.es.js +1 -1
  276. package/dist/domains/traces/components/traces-list-view.cjs.js +6 -5
  277. package/dist/domains/traces/components/traces-list-view.cjs.js.map +1 -1
  278. package/dist/domains/traces/components/traces-list-view.es.js +5 -4
  279. package/dist/domains/traces/components/traces-list-view.es.js.map +1 -1
  280. package/dist/domains/traces/components/traces-page-skeleton.cjs.js +1 -4
  281. package/dist/domains/traces/components/traces-page-skeleton.cjs.js.map +1 -1
  282. package/dist/domains/traces/components/traces-page-skeleton.es.js +1 -4
  283. package/dist/domains/traces/components/traces-page-skeleton.es.js.map +1 -1
  284. package/dist/domains/workflows/components/workflow-combobox.cjs.js +1 -1
  285. package/dist/domains/workflows/components/workflow-combobox.es.js +1 -1
  286. package/dist/domains/workflows/components/workflow-information.cjs.js +1 -1
  287. package/dist/domains/workflows/components/workflow-information.es.js +1 -1
  288. package/dist/domains/workflows/components/workflows-list/workflows-list.cjs.js +2 -2
  289. package/dist/domains/workflows/components/workflows-list/workflows-list.es.js +2 -2
  290. package/dist/domains/workflows/runs/workflow-run-list.cjs.js +2 -2
  291. package/dist/domains/workflows/runs/workflow-run-list.es.js +2 -2
  292. package/dist/domains/workflows/workflow/data/workflow-data-button.cjs.js +1 -1
  293. package/dist/domains/workflows/workflow/data/workflow-data-button.es.js +1 -1
  294. package/dist/domains/workflows/workflow/workflow-data-edge.cjs.js +1 -1
  295. package/dist/domains/workflows/workflow/workflow-data-edge.es.js +1 -1
  296. package/dist/domains/workflows/workflow/workflow-input-data.cjs.js +1 -0
  297. package/dist/domains/workflows/workflow/workflow-input-data.cjs.js.map +1 -1
  298. package/dist/domains/workflows/workflow/workflow-input-data.es.js +1 -0
  299. package/dist/domains/workflows/workflow/workflow-input-data.es.js.map +1 -1
  300. package/dist/domains/workflows/workflow/workflow-map-config-dialog.cjs.js +1 -1
  301. package/dist/domains/workflows/workflow/workflow-map-config-dialog.es.js +1 -1
  302. package/dist/domains/workflows/workflow/workflow-run-data.cjs.js +1 -1
  303. package/dist/domains/workflows/workflow/workflow-run-data.es.js +1 -1
  304. package/dist/domains/workflows/workflow/workflow-step-action-bar.cjs.js +2 -2
  305. package/dist/domains/workflows/workflow/workflow-step-action-bar.es.js +2 -2
  306. package/dist/domains/workflows/workflow/workflow-trigger.cjs.js +1 -1
  307. package/dist/domains/workflows/workflow/workflow-trigger.es.js +1 -1
  308. package/dist/domains/workspace/components/workspace-active-file.cjs.js +1 -1
  309. package/dist/domains/workspace/components/workspace-active-file.es.js +1 -1
  310. package/dist/domains/workspace/components/workspace-add-skill-dialog.cjs.js +5 -5
  311. package/dist/domains/workspace/components/workspace-add-skill-dialog.es.js +5 -5
  312. package/dist/domains/workspace/components/workspace-create-directory.cjs.js +1 -1
  313. package/dist/domains/workspace/components/workspace-create-directory.es.js +1 -1
  314. package/dist/domains/workspace/components/workspace-markdown-preview.cjs.js +2 -2
  315. package/dist/domains/workspace/components/workspace-markdown-preview.es.js +2 -2
  316. package/dist/domains/workspace/components/workspace-parts.cjs.js +1 -1
  317. package/dist/domains/workspace/components/workspace-parts.es.js +1 -1
  318. package/dist/domains/workspace/components/workspace-tree.cjs.js +1 -1
  319. package/dist/domains/workspace/components/workspace-tree.es.js +1 -1
  320. package/dist/{dropdown-menu-D8GR_NhL.js → dropdown-menu-C6VtAiYJ.js} +43 -4
  321. package/dist/dropdown-menu-C6VtAiYJ.js.map +1 -0
  322. package/dist/{dropdown-menu-Bg96BCnK.cjs → dropdown-menu-dHvHFLji.cjs} +42 -3
  323. package/dist/dropdown-menu-dHvHFLji.cjs.map +1 -0
  324. package/dist/ee/signals/components/entity-index-compact-grid.cjs.js +1 -1
  325. package/dist/ee/signals/components/entity-index-compact-grid.es.js +1 -1
  326. package/dist/ee/signals/components/entity-index-list.cjs.js +1 -3
  327. package/dist/ee/signals/components/entity-index-list.cjs.js.map +1 -1
  328. package/dist/ee/signals/components/entity-index-list.es.js +1 -3
  329. package/dist/ee/signals/components/entity-index-list.es.js.map +1 -1
  330. package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js +2 -4
  331. package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js.map +1 -1
  332. package/dist/ee/signals/components/trace-intelligence-entity-index.es.js +2 -4
  333. package/dist/ee/signals/components/trace-intelligence-entity-index.es.js.map +1 -1
  334. package/dist/ee/signals/sankey-signals.cjs.js +1 -1
  335. package/dist/ee/signals/sankey-signals.es.js +1 -1
  336. package/dist/ee/signals/settings/signal-definition-form-dialog.cjs.js +2 -2
  337. package/dist/ee/signals/settings/signal-definition-form-dialog.es.js +2 -2
  338. package/dist/ee/topics/components/topic-trace-summary-list.cjs.js +2 -2
  339. package/dist/ee/topics/components/topic-trace-summary-list.es.js +2 -2
  340. package/dist/{input-group-DQuyC9Pz.cjs → input-group-Bj2RbkNg.cjs} +20 -3
  341. package/dist/input-group-Bj2RbkNg.cjs.map +1 -0
  342. package/dist/{input-group-CIIwoggO.js → input-group-CrumkDCF.js} +20 -3
  343. package/dist/input-group-CrumkDCF.js.map +1 -0
  344. package/dist/layout/tabbed-container.cjs.js +4 -4
  345. package/dist/layout/tabbed-container.es.js +4 -4
  346. package/dist/{list-search-Cwp-OPvC.js → list-search-C7ro2_qL.js} +2 -2
  347. package/dist/{list-search-Cwp-OPvC.js.map → list-search-C7ro2_qL.js.map} +1 -1
  348. package/dist/{list-search-C5j3HYkb.cjs → list-search-Y3z6P6IO.cjs} +2 -2
  349. package/dist/{list-search-C5j3HYkb.cjs.map → list-search-Y3z6P6IO.cjs.map} +1 -1
  350. package/dist/{logs-data-list-B-gmgU74.js → logs-data-list-1KFnVsFz.js} +3 -2
  351. package/dist/{logs-data-list-B-gmgU74.js.map → logs-data-list-1KFnVsFz.js.map} +1 -1
  352. package/dist/{logs-data-list-CaXnNnC5.cjs → logs-data-list-BafttkM2.cjs} +22 -21
  353. package/dist/{logs-data-list-CaXnNnC5.cjs.map → logs-data-list-BafttkM2.cjs.map} +1 -1
  354. package/dist/{markdown-renderer-BXTNiZbz.cjs → markdown-renderer-BRu3RpQD.cjs} +3 -3
  355. package/dist/{markdown-renderer-BXTNiZbz.cjs.map → markdown-renderer-BRu3RpQD.cjs.map} +1 -1
  356. package/dist/{markdown-renderer-Ct-q_KTF.js → markdown-renderer-WesDzhMr.js} +3 -3
  357. package/dist/{markdown-renderer-Ct-q_KTF.js.map → markdown-renderer-WesDzhMr.js.map} +1 -1
  358. package/dist/{metrics-card-C33VsuXf.js → metrics-card-BI5okAsj.js} +2 -2
  359. package/dist/{metrics-card-C33VsuXf.js.map → metrics-card-BI5okAsj.js.map} +1 -1
  360. package/dist/{metrics-card-CxOVpP1t.cjs → metrics-card-CcesVPLN.cjs} +2 -2
  361. package/dist/{metrics-card-CxOVpP1t.cjs.map → metrics-card-CcesVPLN.cjs.map} +1 -1
  362. package/dist/{plan-TXWANP1R.js → plan-CBiLa54G.js} +2 -2
  363. package/dist/{plan-TXWANP1R.js.map → plan-CBiLa54G.js.map} +1 -1
  364. package/dist/{plan-CL-lbDuy.cjs → plan-ColU7p3H.cjs} +2 -2
  365. package/dist/{plan-CL-lbDuy.cjs.map → plan-ColU7p3H.cjs.map} +1 -1
  366. package/dist/primitives/menu-item.cjs.js +2 -0
  367. package/dist/primitives/menu-item.cjs.js.map +1 -1
  368. package/dist/primitives/menu-item.es.js +2 -1
  369. package/dist/primitives/menu-item.es.js.map +1 -1
  370. package/dist/{property-filter-applied-Ru3OQoGo.js → property-filter-applied-BCeGn2zQ.js} +2 -2
  371. package/dist/{property-filter-applied-Ru3OQoGo.js.map → property-filter-applied-BCeGn2zQ.js.map} +1 -1
  372. package/dist/{property-filter-applied-BBvaTC4B.cjs → property-filter-applied-CpelyBH9.cjs} +2 -2
  373. package/dist/{property-filter-applied-BBvaTC4B.cjs.map → property-filter-applied-CpelyBH9.cjs.map} +1 -1
  374. package/dist/{reasoning-activity-CFEaSv4J.cjs → reasoning-activity-B8bR8ib_.cjs} +2 -2
  375. package/dist/{reasoning-activity-CFEaSv4J.cjs.map → reasoning-activity-B8bR8ib_.cjs.map} +1 -1
  376. package/dist/{reasoning-activity-CHlEe011.js → reasoning-activity-DLrXgE9k.js} +2 -2
  377. package/dist/{reasoning-activity-CHlEe011.js.map → reasoning-activity-DLrXgE9k.js.map} +1 -1
  378. package/dist/{scroll-area-CVgjRzTS.cjs → scroll-area-BakRKj2k.cjs} +3 -3
  379. package/dist/scroll-area-BakRKj2k.cjs.map +1 -0
  380. package/dist/{scroll-area-BywIlj3F.js → scroll-area-D6gKFavi.js} +3 -3
  381. package/dist/scroll-area-D6gKFavi.js.map +1 -0
  382. package/dist/{search-input-RybUdqzg.js → search-input-BEAKPGH8.js} +2 -2
  383. package/dist/{search-input-RybUdqzg.js.map → search-input-BEAKPGH8.js.map} +1 -1
  384. package/dist/{search-input-2DhcUIvn.cjs → search-input-DdRhkYqy.cjs} +2 -2
  385. package/dist/{search-input-2DhcUIvn.cjs.map → search-input-DdRhkYqy.cjs.map} +1 -1
  386. package/dist/{span-payload-primitives-DIxmotnO.cjs → span-payload-primitives-BymKsUAo.cjs} +2 -2
  387. package/dist/{span-payload-primitives-DIxmotnO.cjs.map → span-payload-primitives-BymKsUAo.cjs.map} +1 -1
  388. package/dist/{span-payload-primitives-dTs5UrjA.js → span-payload-primitives-DBNNkmHo.js} +2 -2
  389. package/dist/{span-payload-primitives-dTs5UrjA.js.map → span-payload-primitives-DBNNkmHo.js.map} +1 -1
  390. package/dist/src/domains/metrics/components/date-range-selector.d.ts +1 -0
  391. package/dist/src/domains/metrics/components/index.d.ts +1 -0
  392. package/dist/src/domains/metrics/components/metrics-time-range-chip.d.ts +5 -0
  393. package/dist/src/domains/metrics/hooks/index.d.ts +1 -1
  394. package/dist/src/domains/metrics/metrics-date-presets.d.ts +6 -0
  395. package/dist/src/domains/metrics/metrics-filters.d.ts +23 -1
  396. package/dist/src/ds/components/Combobox/combobox.d.ts +2 -0
  397. package/dist/src/ds/components/DropdownMenu/dropdown-menu.d.ts +19 -6
  398. package/dist/src/ds/components/InputGroup/input-group.d.ts +6 -2
  399. package/dist/src/ds/components/PageLayout/page-layout.d.ts +8 -1
  400. package/dist/src/ds/components/ScrollArea/scroll-area.d.ts +2 -1
  401. package/dist/src/ds/primitives/menu-item.d.ts +1 -0
  402. package/dist/style.css +16 -4
  403. package/dist/{tabs-list-DY_hziv7.js → tabs-list-CDep3C2w.js} +2 -2
  404. package/dist/{tabs-list-DY_hziv7.js.map → tabs-list-CDep3C2w.js.map} +1 -1
  405. package/dist/{tabs-list-xikY_dug.cjs → tabs-list-DwQsMVKI.cjs} +2 -2
  406. package/dist/{tabs-list-xikY_dug.cjs.map → tabs-list-DwQsMVKI.cjs.map} +1 -1
  407. package/dist/{tool-approval-TB8r2U_c.js → tool-approval-BK2j7aj_.js} +2 -2
  408. package/dist/{tool-approval-TB8r2U_c.js.map → tool-approval-BK2j7aj_.js.map} +1 -1
  409. package/dist/{tool-approval-S6ml_xyU.cjs → tool-approval-Bza_sgxa.cjs} +2 -2
  410. package/dist/{tool-approval-S6ml_xyU.cjs.map → tool-approval-Bza_sgxa.cjs.map} +1 -1
  411. package/dist/{tool-call-arguments-CCkJ1btR.js → tool-call-arguments-BLCAiFYg.js} +2 -2
  412. package/dist/{tool-call-arguments-CCkJ1btR.js.map → tool-call-arguments-BLCAiFYg.js.map} +1 -1
  413. package/dist/{tool-call-arguments-DyukJmhY.cjs → tool-call-arguments-CK3kQ_FX.cjs} +2 -2
  414. package/dist/{tool-call-arguments-DyukJmhY.cjs.map → tool-call-arguments-CK3kQ_FX.cjs.map} +1 -1
  415. package/dist/{tool-call-group-CZBqGjMh.js → tool-call-group-C_zxf6OA.js} +2 -2
  416. package/dist/{tool-call-group-CZBqGjMh.js.map → tool-call-group-C_zxf6OA.js.map} +1 -1
  417. package/dist/{tool-call-group-CFpdexuw.cjs → tool-call-group-Cdgv7red.cjs} +2 -2
  418. package/dist/{tool-call-group-CFpdexuw.cjs.map → tool-call-group-Cdgv7red.cjs.map} +1 -1
  419. package/dist/{traces-data-list-1X6UBM6Y.js → traces-data-list-CDvg5G_2.js} +4 -2
  420. package/dist/{traces-data-list-1X6UBM6Y.js.map → traces-data-list-CDvg5G_2.js.map} +1 -1
  421. package/dist/{traces-data-list-BXSXW3E6.cjs → traces-data-list-Dy-9AIr2.cjs} +19 -17
  422. package/dist/{traces-data-list-BXSXW3E6.cjs.map → traces-data-list-Dy-9AIr2.cjs.map} +1 -1
  423. package/dist/{workflow-data-edge-view-De0xCrVu.js → workflow-data-edge-view-BWyUa9am.js} +2 -2
  424. package/dist/{workflow-data-edge-view-De0xCrVu.js.map → workflow-data-edge-view-BWyUa9am.js.map} +1 -1
  425. package/dist/{workflow-data-edge-view-kmB6j-ui.cjs → workflow-data-edge-view-BpnN4W_5.cjs} +2 -2
  426. package/dist/{workflow-data-edge-view-kmB6j-ui.cjs.map → workflow-data-edge-view-BpnN4W_5.cjs.map} +1 -1
  427. package/dist/{workflow-edge-data-button-av1zCMfP.cjs → workflow-edge-data-button-Du5ZDm72.cjs} +2 -2
  428. package/dist/{workflow-edge-data-button-av1zCMfP.cjs.map → workflow-edge-data-button-Du5ZDm72.cjs.map} +1 -1
  429. package/dist/{workflow-edge-data-button-CXbj67U9.js → workflow-edge-data-button-DvGFB2L6.js} +2 -2
  430. package/dist/{workflow-edge-data-button-CXbj67U9.js.map → workflow-edge-data-button-DvGFB2L6.js.map} +1 -1
  431. package/dist/{workflow-step-action-BsBZk7j6.cjs → workflow-step-action-DNrU8on1.cjs} +2 -2
  432. package/dist/{workflow-step-action-BsBZk7j6.cjs.map → workflow-step-action-DNrU8on1.cjs.map} +1 -1
  433. package/dist/{workflow-step-action-AG05Ly8P.js → workflow-step-action-ac1gNDdn.js} +2 -2
  434. package/dist/{workflow-step-action-AG05Ly8P.js.map → workflow-step-action-ac1gNDdn.js.map} +1 -1
  435. package/package.json +7 -7
  436. package/dist/combobox-fEMKH9nJ.cjs.map +0 -1
  437. package/dist/combobox-so2V71F7.js.map +0 -1
  438. package/dist/data-list-B2ArWwsJ.js.map +0 -1
  439. package/dist/data-list-BLfHObw8.cjs.map +0 -1
  440. package/dist/dropdown-menu-Bg96BCnK.cjs.map +0 -1
  441. package/dist/dropdown-menu-D8GR_NhL.js.map +0 -1
  442. package/dist/input-group-CIIwoggO.js.map +0 -1
  443. package/dist/input-group-DQuyC9Pz.cjs.map +0 -1
  444. package/dist/scroll-area-BywIlj3F.js.map +0 -1
  445. package/dist/scroll-area-CVgjRzTS.cjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"tool-approval-TB8r2U_c.js","sources":["../src/ds/components/ai/tool-approval/tool-approval.tsx"],"sourcesContent":["import { Check, ShieldCheck, X } from 'lucide-react';\nimport type { LucideIcon } from 'lucide-react';\nimport type { ReactNode } from 'react';\nimport { Activity, ActivityContent, ActivityHeader, ActivityIcon, ActivityTrigger } from '../activity';\nimport { presentTool, ToolCallArguments } from '../tool-call';\nimport { Badge } from '@/ds/components/Badge';\nimport type { BadgeVariant } from '@/ds/components/Badge';\nimport { Button } from '@/ds/components/Button';\nimport { Txt } from '@/ds/components/Txt';\n\ntype ToolApprovalDecision = 'approved' | 'declined';\n\nconst approvalStates = {\n pending: { label: 'Approval required', variant: 'warning', icon: ShieldCheck },\n approved: { label: 'Approved', variant: 'success', icon: Check },\n declined: { label: 'Declined', variant: 'neutral', icon: X },\n} satisfies Record<'pending' | ToolApprovalDecision, { label: string; variant: BadgeVariant; icon: LucideIcon }>;\n\nexport interface ToolApprovalStatusProps {\n status?: ToolApprovalDecision;\n}\n\nexport function ToolApprovalStatus({ status }: ToolApprovalStatusProps) {\n const { label, variant, icon: StatusIcon } = approvalStates[status ?? 'pending'];\n return (\n <span role=\"status\" className=\"inline-flex shrink-0\">\n <Badge variant={variant} emphasis=\"subtle\" size=\"sm\" icon={<StatusIcon aria-hidden />}>\n {label}\n </Badge>\n </span>\n );\n}\n\nexport interface ToolApprovalActionsProps {\n onApprove: () => void;\n onDecline: () => void;\n disabled?: boolean;\n toolName?: string;\n autoFocus?: boolean;\n}\n\nexport function ToolApprovalActions({\n onApprove,\n onDecline,\n disabled = false,\n toolName,\n autoFocus = false,\n}: ToolApprovalActionsProps) {\n return (\n <div className=\"flex flex-wrap items-center gap-2\">\n <Button\n type=\"button\"\n variant=\"primary\"\n size=\"sm\"\n icon={<Check aria-hidden />}\n aria-label={toolName ? `Approve ${toolName}` : undefined}\n autoFocus={autoFocus}\n disabled={disabled}\n onClick={onApprove}\n >\n Approve\n </Button>\n <Button\n type=\"button\"\n size=\"sm\"\n icon={<X aria-hidden />}\n aria-label={toolName ? `Decline ${toolName}` : undefined}\n disabled={disabled}\n onClick={onDecline}\n >\n Decline\n </Button>\n </div>\n );\n}\n\nexport interface ToolApprovalProps extends ToolApprovalActionsProps, ToolApprovalStatusProps {\n toolName: string;\n args?: unknown;\n /** Custom details replace the default argument renderer. */\n children?: ReactNode;\n}\n\nexport function ToolApproval({ toolName, args, status, children, ...actions }: ToolApprovalProps) {\n const { icon: ToolIcon } = presentTool(toolName, args);\n\n return (\n <Activity open foldable={false} className=\"my-2\" aria-label={`Tool approval for ${toolName}`}>\n <ActivityTrigger>\n <ActivityHeader className=\"flex-wrap\">\n <ActivityIcon>\n <ToolIcon aria-hidden />\n </ActivityIcon>\n <Txt as=\"span\" variant=\"caption\" tone=\"muted\" font=\"mono\" className=\"min-w-0 break-all\">\n {toolName}\n </Txt>\n <ToolApprovalStatus status={status} />\n </ActivityHeader>\n </ActivityTrigger>\n <ActivityContent>\n {children ?? <ToolCallArguments toolName={toolName} args={args} showFullContent />}\n {!status && <ToolApprovalActions toolName={toolName} {...actions} />}\n </ActivityContent>\n </Activity>\n );\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-approval-BK2j7aj_.js","sources":["../src/ds/components/ai/tool-approval/tool-approval.tsx"],"sourcesContent":["import { Check, ShieldCheck, X } from 'lucide-react';\nimport type { LucideIcon } from 'lucide-react';\nimport type { ReactNode } from 'react';\nimport { Activity, ActivityContent, ActivityHeader, ActivityIcon, ActivityTrigger } from '../activity';\nimport { presentTool, ToolCallArguments } from '../tool-call';\nimport { Badge } from '@/ds/components/Badge';\nimport type { BadgeVariant } from '@/ds/components/Badge';\nimport { Button } from '@/ds/components/Button';\nimport { Txt } from '@/ds/components/Txt';\n\ntype ToolApprovalDecision = 'approved' | 'declined';\n\nconst approvalStates = {\n pending: { label: 'Approval required', variant: 'warning', icon: ShieldCheck },\n approved: { label: 'Approved', variant: 'success', icon: Check },\n declined: { label: 'Declined', variant: 'neutral', icon: X },\n} satisfies Record<'pending' | ToolApprovalDecision, { label: string; variant: BadgeVariant; icon: LucideIcon }>;\n\nexport interface ToolApprovalStatusProps {\n status?: ToolApprovalDecision;\n}\n\nexport function ToolApprovalStatus({ status }: ToolApprovalStatusProps) {\n const { label, variant, icon: StatusIcon } = approvalStates[status ?? 'pending'];\n return (\n <span role=\"status\" className=\"inline-flex shrink-0\">\n <Badge variant={variant} emphasis=\"subtle\" size=\"sm\" icon={<StatusIcon aria-hidden />}>\n {label}\n </Badge>\n </span>\n );\n}\n\nexport interface ToolApprovalActionsProps {\n onApprove: () => void;\n onDecline: () => void;\n disabled?: boolean;\n toolName?: string;\n autoFocus?: boolean;\n}\n\nexport function ToolApprovalActions({\n onApprove,\n onDecline,\n disabled = false,\n toolName,\n autoFocus = false,\n}: ToolApprovalActionsProps) {\n return (\n <div className=\"flex flex-wrap items-center gap-2\">\n <Button\n type=\"button\"\n variant=\"primary\"\n size=\"sm\"\n icon={<Check aria-hidden />}\n aria-label={toolName ? `Approve ${toolName}` : undefined}\n autoFocus={autoFocus}\n disabled={disabled}\n onClick={onApprove}\n >\n Approve\n </Button>\n <Button\n type=\"button\"\n size=\"sm\"\n icon={<X aria-hidden />}\n aria-label={toolName ? `Decline ${toolName}` : undefined}\n disabled={disabled}\n onClick={onDecline}\n >\n Decline\n </Button>\n </div>\n );\n}\n\nexport interface ToolApprovalProps extends ToolApprovalActionsProps, ToolApprovalStatusProps {\n toolName: string;\n args?: unknown;\n /** Custom details replace the default argument renderer. */\n children?: ReactNode;\n}\n\nexport function ToolApproval({ toolName, args, status, children, ...actions }: ToolApprovalProps) {\n const { icon: ToolIcon } = presentTool(toolName, args);\n\n return (\n <Activity open foldable={false} className=\"my-2\" aria-label={`Tool approval for ${toolName}`}>\n <ActivityTrigger>\n <ActivityHeader className=\"flex-wrap\">\n <ActivityIcon>\n <ToolIcon aria-hidden />\n </ActivityIcon>\n <Txt as=\"span\" variant=\"caption\" tone=\"muted\" font=\"mono\" className=\"min-w-0 break-all\">\n {toolName}\n </Txt>\n <ToolApprovalStatus status={status} />\n </ActivityHeader>\n </ActivityTrigger>\n <ActivityContent>\n {children ?? <ToolCallArguments toolName={toolName} args={args} showFullContent />}\n {!status && <ToolApprovalActions toolName={toolName} {...actions} />}\n </ActivityContent>\n </Activity>\n );\n}\n"],"names":[],"mappings":";;;;;;;;;AAYA,MAAM,cAAA,GAAiB;AAAA,EACrB,SAAS,EAAE,KAAA,EAAO,qBAAqB,OAAA,EAAS,SAAA,EAAW,MAAM,WAAA,EAAY;AAAA,EAC7E,UAAU,EAAE,KAAA,EAAO,YAAY,OAAA,EAAS,SAAA,EAAW,MAAM,KAAA,EAAM;AAAA,EAC/D,UAAU,EAAE,KAAA,EAAO,YAAY,OAAA,EAAS,SAAA,EAAW,MAAM,CAAA;AAC3D,CAAA;AAMO,SAAS,kBAAA,CAAmB,EAAE,MAAA,EAAO,EAA4B;AACtE,EAAA,MAAM,EAAE,OAAO,OAAA,EAAS,IAAA,EAAM,YAAW,GAAI,cAAA,CAAe,UAAU,SAAS,CAAA;AAC/E,EAAA,uBACE,GAAA,CAAC,UAAK,IAAA,EAAK,QAAA,EAAS,WAAU,sBAAA,EAC5B,QAAA,kBAAA,GAAA,CAAC,SAAM,OAAA,EAAkB,QAAA,EAAS,UAAS,IAAA,EAAK,IAAA,EAAK,sBAAM,GAAA,CAAC,UAAA,EAAA,EAAW,eAAW,IAAA,EAAC,CAAA,EAChF,iBACH,CAAA,EACF,CAAA;AAEJ;AAUO,SAAS,mBAAA,CAAoB;AAAA,EAClC,SAAA;AAAA,EACA,SAAA;AAAA,EACA,QAAA,GAAW,KAAA;AAAA,EACX,QAAA;AAAA,EACA,SAAA,GAAY;AACd,CAAA,EAA6B;AAC3B,EAAA,uBACE,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,mCAAA,EACb,QAAA,EAAA;AAAA,oBAAA,GAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAK,QAAA;AAAA,QACL,OAAA,EAAQ,SAAA;AAAA,QACR,IAAA,EAAK,IAAA;AAAA,QACL,IAAA,kBAAM,GAAA,CAAC,KAAA,EAAA,EAAM,aAAA,EAAW,IAAA,EAAC,CAAA;AAAA,QACzB,YAAA,EAAY,QAAA,GAAW,CAAA,QAAA,EAAW,QAAQ,CAAA,CAAA,GAAK,MAAA;AAAA,QAC/C,SAAA;AAAA,QACA,QAAA;AAAA,QACA,OAAA,EAAS,SAAA;AAAA,QACV,QAAA,EAAA;AAAA;AAAA,KAED;AAAA,oBACA,GAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAK,QAAA;AAAA,QACL,IAAA,EAAK,IAAA;AAAA,QACL,IAAA,kBAAM,GAAA,CAAC,CAAA,EAAA,EAAE,aAAA,EAAW,IAAA,EAAC,CAAA;AAAA,QACrB,YAAA,EAAY,QAAA,GAAW,CAAA,QAAA,EAAW,QAAQ,CAAA,CAAA,GAAK,MAAA;AAAA,QAC/C,QAAA;AAAA,QACA,OAAA,EAAS,SAAA;AAAA,QACV,QAAA,EAAA;AAAA;AAAA;AAED,GAAA,EACF,CAAA;AAEJ;AASO,SAAS,YAAA,CAAa,EAAE,QAAA,EAAU,IAAA,EAAM,QAAQ,QAAA,EAAU,GAAG,SAAQ,EAAsB;AAChG,EAAA,MAAM,EAAE,IAAA,EAAM,QAAA,EAAS,GAAI,WAAA,CAAY,UAAU,IAAI,CAAA;AAErD,EAAA,uBACE,IAAA,CAAC,QAAA,EAAA,EAAS,IAAA,EAAI,IAAA,EAAC,QAAA,EAAU,KAAA,EAAO,SAAA,EAAU,MAAA,EAAO,YAAA,EAAY,CAAA,kBAAA,EAAqB,QAAQ,CAAA,CAAA,EACxF,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,eAAA,EAAA,EACC,QAAA,kBAAA,IAAA,CAAC,cAAA,EAAA,EAAe,SAAA,EAAU,WAAA,EACxB,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,YAAA,EAAA,EACC,QAAA,kBAAA,GAAA,CAAC,QAAA,EAAA,EAAS,aAAA,EAAW,MAAC,CAAA,EACxB,CAAA;AAAA,sBACA,GAAA,CAAC,GAAA,EAAA,EAAI,EAAA,EAAG,MAAA,EAAO,OAAA,EAAQ,SAAA,EAAU,IAAA,EAAK,OAAA,EAAQ,IAAA,EAAK,MAAA,EAAO,SAAA,EAAU,mBAAA,EACjE,QAAA,EAAA,QAAA,EACH,CAAA;AAAA,sBACA,GAAA,CAAC,sBAAmB,MAAA,EAAgB;AAAA,KAAA,EACtC,CAAA,EACF,CAAA;AAAA,yBACC,eAAA,EAAA,EACE,QAAA,EAAA;AAAA,MAAA,QAAA,oBAAY,GAAA,CAAC,iBAAA,EAAA,EAAkB,QAAA,EAAoB,IAAA,EAAY,iBAAe,IAAA,EAAC,CAAA;AAAA,MAC/E,CAAC,MAAA,oBAAU,GAAA,CAAC,mBAAA,EAAA,EAAoB,QAAA,EAAqB,GAAG,OAAA,EAAS;AAAA,KAAA,EACpE;AAAA,GAAA,EACF,CAAA;AAEJ;;;;"}
@@ -3,7 +3,7 @@
3
3
  const jsxRuntime = require('react/jsx-runtime');
4
4
  const lucideReact = require('lucide-react');
5
5
  const activity = require('./activity-CaFdLiPz.cjs');
6
- const toolCallArguments = require('./tool-call-arguments-DyukJmhY.cjs');
6
+ const toolCallArguments = require('./tool-call-arguments-CK3kQ_FX.cjs');
7
7
  const toolPresentation = require('./tool-presentation-WLS6d1ws.cjs');
8
8
  const Badge = require('./Badge-BF6FbLH_.cjs');
9
9
  const Button = require('./Button-CAVPKK09.cjs');
@@ -72,4 +72,4 @@ function ToolApproval({ toolName, args, status, children, ...actions }) {
72
72
  exports.ToolApproval = ToolApproval;
73
73
  exports.ToolApprovalActions = ToolApprovalActions;
74
74
  exports.ToolApprovalStatus = ToolApprovalStatus;
75
- //# sourceMappingURL=tool-approval-S6ml_xyU.cjs.map
75
+ //# sourceMappingURL=tool-approval-Bza_sgxa.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"tool-approval-S6ml_xyU.cjs","sources":["../src/ds/components/ai/tool-approval/tool-approval.tsx"],"sourcesContent":["import { Check, ShieldCheck, X } from 'lucide-react';\nimport type { LucideIcon } from 'lucide-react';\nimport type { ReactNode } from 'react';\nimport { Activity, ActivityContent, ActivityHeader, ActivityIcon, ActivityTrigger } from '../activity';\nimport { presentTool, ToolCallArguments } from '../tool-call';\nimport { Badge } from '@/ds/components/Badge';\nimport type { BadgeVariant } from '@/ds/components/Badge';\nimport { Button } from '@/ds/components/Button';\nimport { Txt } from '@/ds/components/Txt';\n\ntype ToolApprovalDecision = 'approved' | 'declined';\n\nconst approvalStates = {\n pending: { label: 'Approval required', variant: 'warning', icon: ShieldCheck },\n approved: { label: 'Approved', variant: 'success', icon: Check },\n declined: { label: 'Declined', variant: 'neutral', icon: X },\n} satisfies Record<'pending' | ToolApprovalDecision, { label: string; variant: BadgeVariant; icon: LucideIcon }>;\n\nexport interface ToolApprovalStatusProps {\n status?: ToolApprovalDecision;\n}\n\nexport function ToolApprovalStatus({ status }: ToolApprovalStatusProps) {\n const { label, variant, icon: StatusIcon } = approvalStates[status ?? 'pending'];\n return (\n <span role=\"status\" className=\"inline-flex shrink-0\">\n <Badge variant={variant} emphasis=\"subtle\" size=\"sm\" icon={<StatusIcon aria-hidden />}>\n {label}\n </Badge>\n </span>\n );\n}\n\nexport interface ToolApprovalActionsProps {\n onApprove: () => void;\n onDecline: () => void;\n disabled?: boolean;\n toolName?: string;\n autoFocus?: boolean;\n}\n\nexport function ToolApprovalActions({\n onApprove,\n onDecline,\n disabled = false,\n toolName,\n autoFocus = false,\n}: ToolApprovalActionsProps) {\n return (\n <div className=\"flex flex-wrap items-center gap-2\">\n <Button\n type=\"button\"\n variant=\"primary\"\n size=\"sm\"\n icon={<Check aria-hidden />}\n aria-label={toolName ? `Approve ${toolName}` : undefined}\n autoFocus={autoFocus}\n disabled={disabled}\n onClick={onApprove}\n >\n Approve\n </Button>\n <Button\n type=\"button\"\n size=\"sm\"\n icon={<X aria-hidden />}\n aria-label={toolName ? `Decline ${toolName}` : undefined}\n disabled={disabled}\n onClick={onDecline}\n >\n Decline\n </Button>\n </div>\n );\n}\n\nexport interface ToolApprovalProps extends ToolApprovalActionsProps, ToolApprovalStatusProps {\n toolName: string;\n args?: unknown;\n /** Custom details replace the default argument renderer. */\n children?: ReactNode;\n}\n\nexport function ToolApproval({ toolName, args, status, children, ...actions }: ToolApprovalProps) {\n const { icon: ToolIcon } = presentTool(toolName, args);\n\n return (\n <Activity open foldable={false} className=\"my-2\" aria-label={`Tool approval for ${toolName}`}>\n <ActivityTrigger>\n <ActivityHeader className=\"flex-wrap\">\n <ActivityIcon>\n <ToolIcon aria-hidden />\n </ActivityIcon>\n <Txt as=\"span\" variant=\"caption\" tone=\"muted\" font=\"mono\" className=\"min-w-0 break-all\">\n {toolName}\n </Txt>\n <ToolApprovalStatus status={status} />\n </ActivityHeader>\n </ActivityTrigger>\n <ActivityContent>\n {children ?? <ToolCallArguments toolName={toolName} args={args} showFullContent />}\n {!status && <ToolApprovalActions toolName={toolName} {...actions} />}\n </ActivityContent>\n </Activity>\n );\n}\n"],"names":["ShieldCheck","Check","X","jsx","Badge","jsxs","Button","presentTool","Activity","ActivityTrigger","ActivityHeader","ActivityIcon","Txt","ActivityContent","ToolCallArguments"],"mappings":"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"}
1
+ {"version":3,"file":"tool-approval-Bza_sgxa.cjs","sources":["../src/ds/components/ai/tool-approval/tool-approval.tsx"],"sourcesContent":["import { Check, ShieldCheck, X } from 'lucide-react';\nimport type { LucideIcon } from 'lucide-react';\nimport type { ReactNode } from 'react';\nimport { Activity, ActivityContent, ActivityHeader, ActivityIcon, ActivityTrigger } from '../activity';\nimport { presentTool, ToolCallArguments } from '../tool-call';\nimport { Badge } from '@/ds/components/Badge';\nimport type { BadgeVariant } from '@/ds/components/Badge';\nimport { Button } from '@/ds/components/Button';\nimport { Txt } from '@/ds/components/Txt';\n\ntype ToolApprovalDecision = 'approved' | 'declined';\n\nconst approvalStates = {\n pending: { label: 'Approval required', variant: 'warning', icon: ShieldCheck },\n approved: { label: 'Approved', variant: 'success', icon: Check },\n declined: { label: 'Declined', variant: 'neutral', icon: X },\n} satisfies Record<'pending' | ToolApprovalDecision, { label: string; variant: BadgeVariant; icon: LucideIcon }>;\n\nexport interface ToolApprovalStatusProps {\n status?: ToolApprovalDecision;\n}\n\nexport function ToolApprovalStatus({ status }: ToolApprovalStatusProps) {\n const { label, variant, icon: StatusIcon } = approvalStates[status ?? 'pending'];\n return (\n <span role=\"status\" className=\"inline-flex shrink-0\">\n <Badge variant={variant} emphasis=\"subtle\" size=\"sm\" icon={<StatusIcon aria-hidden />}>\n {label}\n </Badge>\n </span>\n );\n}\n\nexport interface ToolApprovalActionsProps {\n onApprove: () => void;\n onDecline: () => void;\n disabled?: boolean;\n toolName?: string;\n autoFocus?: boolean;\n}\n\nexport function ToolApprovalActions({\n onApprove,\n onDecline,\n disabled = false,\n toolName,\n autoFocus = false,\n}: ToolApprovalActionsProps) {\n return (\n <div className=\"flex flex-wrap items-center gap-2\">\n <Button\n type=\"button\"\n variant=\"primary\"\n size=\"sm\"\n icon={<Check aria-hidden />}\n aria-label={toolName ? `Approve ${toolName}` : undefined}\n autoFocus={autoFocus}\n disabled={disabled}\n onClick={onApprove}\n >\n Approve\n </Button>\n <Button\n type=\"button\"\n size=\"sm\"\n icon={<X aria-hidden />}\n aria-label={toolName ? `Decline ${toolName}` : undefined}\n disabled={disabled}\n onClick={onDecline}\n >\n Decline\n </Button>\n </div>\n );\n}\n\nexport interface ToolApprovalProps extends ToolApprovalActionsProps, ToolApprovalStatusProps {\n toolName: string;\n args?: unknown;\n /** Custom details replace the default argument renderer. */\n children?: ReactNode;\n}\n\nexport function ToolApproval({ toolName, args, status, children, ...actions }: ToolApprovalProps) {\n const { icon: ToolIcon } = presentTool(toolName, args);\n\n return (\n <Activity open foldable={false} className=\"my-2\" aria-label={`Tool approval for ${toolName}`}>\n <ActivityTrigger>\n <ActivityHeader className=\"flex-wrap\">\n <ActivityIcon>\n <ToolIcon aria-hidden />\n </ActivityIcon>\n <Txt as=\"span\" variant=\"caption\" tone=\"muted\" font=\"mono\" className=\"min-w-0 break-all\">\n {toolName}\n </Txt>\n <ToolApprovalStatus status={status} />\n </ActivityHeader>\n </ActivityTrigger>\n <ActivityContent>\n {children ?? <ToolCallArguments toolName={toolName} args={args} showFullContent />}\n {!status && <ToolApprovalActions toolName={toolName} {...actions} />}\n </ActivityContent>\n </Activity>\n );\n}\n"],"names":["ShieldCheck","Check","X","jsx","Badge","jsxs","Button","presentTool","Activity","ActivityTrigger","ActivityHeader","ActivityIcon","Txt","ActivityContent","ToolCallArguments"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
2
  import { u as useHighlight, t as tokenStyle } from './code-DAXWNzvf.js';
3
- import { C as CodeBlock } from './code-block-vvYFcnqm.js';
3
+ import { C as CodeBlock } from './code-block-BzUcNWrb.js';
4
4
  import { l as languageForPath } from './highlight-BmpoELR4.js';
5
5
  import { truncateString } from './utils/truncate-string.es.js';
6
6
  import { c as cn } from './cn-coERSHz5.js';
@@ -75,4 +75,4 @@ function ToolCallArguments({ "data-testid": testId, showFullContent, ...input })
75
75
  }
76
76
 
77
77
  export { ToolCallArguments as T, ToolCallEdit as a };
78
- //# sourceMappingURL=tool-call-arguments-CCkJ1btR.js.map
78
+ //# sourceMappingURL=tool-call-arguments-BLCAiFYg.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tool-call-arguments-CCkJ1btR.js","sources":["../src/ds/components/ai/tool-call/tool-call-edit.tsx","../src/ds/components/ai/tool-call/tool-call-arguments.tsx"],"sourcesContent":["import type { ToolEdit } from './tool-presentation';\nimport { tokenStyle, useHighlight } from '@/ds/components/Code';\nimport { CodeBlock } from '@/ds/components/CodeBlock';\nimport { languageForPath } from '@/ds/components/CodeEditor/highlight';\nimport { truncateString } from '@/lib/truncate-string';\nimport { cn } from '@/lib/utils';\n\nconst DIFF_MAX_LINES = 200;\nconst WRITTEN_FILE_MAX_CHARS = 2000;\n\nconst DIFF_SIDES = {\n removed: { sign: '-', row: 'bg-destructive-subtle', gutter: 'text-destructive-subtle-foreground' },\n added: { sign: '+', row: 'bg-success-subtle', gutter: 'text-success-subtle-foreground' },\n} as const;\n\nfunction boundedLines(text: string, showFullContent: boolean): { lines: string[]; hidden: number } {\n const lines = text.split('\\n');\n if (showFullContent) return { lines, hidden: 0 };\n return { lines: lines.slice(0, DIFF_MAX_LINES), hidden: Math.max(0, lines.length - DIFF_MAX_LINES) };\n}\n\nfunction DiffSide({ lines, side, lang }: { lines: string[]; side: keyof typeof DIFF_SIDES; lang: string | undefined }) {\n const { sign, row, gutter } = DIFF_SIDES[side];\n const code = lines.join('\\n');\n const highlighted = useHighlight(code, lang);\n const tokens = highlighted?.code === code ? highlighted.tokens : undefined;\n\n return (\n <>\n {lines.map((line, index) => (\n <div key={index} className={cn('flex whitespace-pre', row)}>\n <span className={cn('w-5 shrink-0 text-center opacity-70 select-none', gutter)}>{sign}</span>\n <span className=\"flex-1 pr-2.5 text-foreground\">\n {tokens?.[index]?.map((token, tokenIndex) => (\n <span key={tokenIndex} className=\"shiki-token\" style={tokenStyle(token)}>\n {token.content}\n </span>\n )) ?? line}\n </span>\n </div>\n ))}\n </>\n );\n}\n\nexport function ToolCallEdit({ edit, showFullContent = false }: { edit: ToolEdit; showFullContent?: boolean }) {\n const lang = languageForPath(edit.path);\n\n if ('content' in edit) {\n return (\n <CodeBlock\n code={showFullContent ? edit.content : truncateString(edit.content, WRITTEN_FILE_MAX_CHARS)}\n lang={lang}\n fileName={edit.path ?? 'Change'}\n overflow=\"scroll\"\n />\n );\n }\n\n const removed = boundedLines(edit.oldText, showFullContent);\n const added = boundedLines(edit.newText, showFullContent);\n const hidden = removed.hidden + added.hidden;\n\n return (\n <div\n className={cn(\n 'max-w-full min-w-0 overflow-x-auto rounded-md border border-border bg-fill font-mono text-caption',\n showFullContent && 'max-h-60 overflow-y-auto',\n )}\n role=\"group\"\n aria-label=\"File change\"\n >\n <DiffSide lines={removed.lines} side=\"removed\" lang={lang} />\n <DiffSide lines={added.lines} side=\"added\" lang={lang} />\n {hidden > 0 && <div className=\"px-2.5 py-1 text-muted-foreground select-none\">… {hidden} more lines</div>}\n </div>\n );\n}\n","import { ToolCallEdit } from './tool-call-edit';\nimport { ToolCallMono } from './tool-call-mono';\nimport { toolEdit, visibleToolArgumentsText } from './tool-presentation';\nimport type { ToolArgumentsInput } from './tool-presentation';\n\nexport interface ToolCallArgumentsProps extends ToolArgumentsInput {\n 'data-testid'?: string;\n showFullContent?: boolean;\n}\n\nexport function ToolCallArguments({ 'data-testid': testId, showFullContent, ...input }: ToolCallArgumentsProps) {\n const edit = toolEdit(input.toolName, input.args);\n if (edit) return <ToolCallEdit edit={edit} showFullContent={showFullContent} />;\n\n const text = visibleToolArgumentsText(input);\n if (!text) return null;\n\n return (\n <ToolCallMono copyText={text} data-testid={testId} className=\"text-foreground\">\n {text}\n </ToolCallMono>\n );\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-call-arguments-BLCAiFYg.js","sources":["../src/ds/components/ai/tool-call/tool-call-edit.tsx","../src/ds/components/ai/tool-call/tool-call-arguments.tsx"],"sourcesContent":["import type { ToolEdit } from './tool-presentation';\nimport { tokenStyle, useHighlight } from '@/ds/components/Code';\nimport { CodeBlock } from '@/ds/components/CodeBlock';\nimport { languageForPath } from '@/ds/components/CodeEditor/highlight';\nimport { truncateString } from '@/lib/truncate-string';\nimport { cn } from '@/lib/utils';\n\nconst DIFF_MAX_LINES = 200;\nconst WRITTEN_FILE_MAX_CHARS = 2000;\n\nconst DIFF_SIDES = {\n removed: { sign: '-', row: 'bg-destructive-subtle', gutter: 'text-destructive-subtle-foreground' },\n added: { sign: '+', row: 'bg-success-subtle', gutter: 'text-success-subtle-foreground' },\n} as const;\n\nfunction boundedLines(text: string, showFullContent: boolean): { lines: string[]; hidden: number } {\n const lines = text.split('\\n');\n if (showFullContent) return { lines, hidden: 0 };\n return { lines: lines.slice(0, DIFF_MAX_LINES), hidden: Math.max(0, lines.length - DIFF_MAX_LINES) };\n}\n\nfunction DiffSide({ lines, side, lang }: { lines: string[]; side: keyof typeof DIFF_SIDES; lang: string | undefined }) {\n const { sign, row, gutter } = DIFF_SIDES[side];\n const code = lines.join('\\n');\n const highlighted = useHighlight(code, lang);\n const tokens = highlighted?.code === code ? highlighted.tokens : undefined;\n\n return (\n <>\n {lines.map((line, index) => (\n <div key={index} className={cn('flex whitespace-pre', row)}>\n <span className={cn('w-5 shrink-0 text-center opacity-70 select-none', gutter)}>{sign}</span>\n <span className=\"flex-1 pr-2.5 text-foreground\">\n {tokens?.[index]?.map((token, tokenIndex) => (\n <span key={tokenIndex} className=\"shiki-token\" style={tokenStyle(token)}>\n {token.content}\n </span>\n )) ?? line}\n </span>\n </div>\n ))}\n </>\n );\n}\n\nexport function ToolCallEdit({ edit, showFullContent = false }: { edit: ToolEdit; showFullContent?: boolean }) {\n const lang = languageForPath(edit.path);\n\n if ('content' in edit) {\n return (\n <CodeBlock\n code={showFullContent ? edit.content : truncateString(edit.content, WRITTEN_FILE_MAX_CHARS)}\n lang={lang}\n fileName={edit.path ?? 'Change'}\n overflow=\"scroll\"\n />\n );\n }\n\n const removed = boundedLines(edit.oldText, showFullContent);\n const added = boundedLines(edit.newText, showFullContent);\n const hidden = removed.hidden + added.hidden;\n\n return (\n <div\n className={cn(\n 'max-w-full min-w-0 overflow-x-auto rounded-md border border-border bg-fill font-mono text-caption',\n showFullContent && 'max-h-60 overflow-y-auto',\n )}\n role=\"group\"\n aria-label=\"File change\"\n >\n <DiffSide lines={removed.lines} side=\"removed\" lang={lang} />\n <DiffSide lines={added.lines} side=\"added\" lang={lang} />\n {hidden > 0 && <div className=\"px-2.5 py-1 text-muted-foreground select-none\">… {hidden} more lines</div>}\n </div>\n );\n}\n","import { ToolCallEdit } from './tool-call-edit';\nimport { ToolCallMono } from './tool-call-mono';\nimport { toolEdit, visibleToolArgumentsText } from './tool-presentation';\nimport type { ToolArgumentsInput } from './tool-presentation';\n\nexport interface ToolCallArgumentsProps extends ToolArgumentsInput {\n 'data-testid'?: string;\n showFullContent?: boolean;\n}\n\nexport function ToolCallArguments({ 'data-testid': testId, showFullContent, ...input }: ToolCallArgumentsProps) {\n const edit = toolEdit(input.toolName, input.args);\n if (edit) return <ToolCallEdit edit={edit} showFullContent={showFullContent} />;\n\n const text = visibleToolArgumentsText(input);\n if (!text) return null;\n\n return (\n <ToolCallMono copyText={text} data-testid={testId} className=\"text-foreground\">\n {text}\n </ToolCallMono>\n );\n}\n"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
 
3
3
  const jsxRuntime = require('react/jsx-runtime');
4
4
  const code = require('./code-Dcah35Gp.cjs');
5
- const codeBlock = require('./code-block-BuGosknt.cjs');
5
+ const codeBlock = require('./code-block-CKLCdWtP.cjs');
6
6
  const highlight = require('./highlight-DK1dn-Fh.cjs');
7
7
  const utils_truncateString = require('./utils/truncate-string.cjs.js');
8
8
  const utils_cn = require('./cn-TqD01zH-.cjs');
@@ -78,4 +78,4 @@ function ToolCallArguments({ "data-testid": testId, showFullContent, ...input })
78
78
 
79
79
  exports.ToolCallArguments = ToolCallArguments;
80
80
  exports.ToolCallEdit = ToolCallEdit;
81
- //# sourceMappingURL=tool-call-arguments-DyukJmhY.cjs.map
81
+ //# sourceMappingURL=tool-call-arguments-CK3kQ_FX.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"tool-call-arguments-DyukJmhY.cjs","sources":["../src/ds/components/ai/tool-call/tool-call-edit.tsx","../src/ds/components/ai/tool-call/tool-call-arguments.tsx"],"sourcesContent":["import type { ToolEdit } from './tool-presentation';\nimport { tokenStyle, useHighlight } from '@/ds/components/Code';\nimport { CodeBlock } from '@/ds/components/CodeBlock';\nimport { languageForPath } from '@/ds/components/CodeEditor/highlight';\nimport { truncateString } from '@/lib/truncate-string';\nimport { cn } from '@/lib/utils';\n\nconst DIFF_MAX_LINES = 200;\nconst WRITTEN_FILE_MAX_CHARS = 2000;\n\nconst DIFF_SIDES = {\n removed: { sign: '-', row: 'bg-destructive-subtle', gutter: 'text-destructive-subtle-foreground' },\n added: { sign: '+', row: 'bg-success-subtle', gutter: 'text-success-subtle-foreground' },\n} as const;\n\nfunction boundedLines(text: string, showFullContent: boolean): { lines: string[]; hidden: number } {\n const lines = text.split('\\n');\n if (showFullContent) return { lines, hidden: 0 };\n return { lines: lines.slice(0, DIFF_MAX_LINES), hidden: Math.max(0, lines.length - DIFF_MAX_LINES) };\n}\n\nfunction DiffSide({ lines, side, lang }: { lines: string[]; side: keyof typeof DIFF_SIDES; lang: string | undefined }) {\n const { sign, row, gutter } = DIFF_SIDES[side];\n const code = lines.join('\\n');\n const highlighted = useHighlight(code, lang);\n const tokens = highlighted?.code === code ? highlighted.tokens : undefined;\n\n return (\n <>\n {lines.map((line, index) => (\n <div key={index} className={cn('flex whitespace-pre', row)}>\n <span className={cn('w-5 shrink-0 text-center opacity-70 select-none', gutter)}>{sign}</span>\n <span className=\"flex-1 pr-2.5 text-foreground\">\n {tokens?.[index]?.map((token, tokenIndex) => (\n <span key={tokenIndex} className=\"shiki-token\" style={tokenStyle(token)}>\n {token.content}\n </span>\n )) ?? line}\n </span>\n </div>\n ))}\n </>\n );\n}\n\nexport function ToolCallEdit({ edit, showFullContent = false }: { edit: ToolEdit; showFullContent?: boolean }) {\n const lang = languageForPath(edit.path);\n\n if ('content' in edit) {\n return (\n <CodeBlock\n code={showFullContent ? edit.content : truncateString(edit.content, WRITTEN_FILE_MAX_CHARS)}\n lang={lang}\n fileName={edit.path ?? 'Change'}\n overflow=\"scroll\"\n />\n );\n }\n\n const removed = boundedLines(edit.oldText, showFullContent);\n const added = boundedLines(edit.newText, showFullContent);\n const hidden = removed.hidden + added.hidden;\n\n return (\n <div\n className={cn(\n 'max-w-full min-w-0 overflow-x-auto rounded-md border border-border bg-fill font-mono text-caption',\n showFullContent && 'max-h-60 overflow-y-auto',\n )}\n role=\"group\"\n aria-label=\"File change\"\n >\n <DiffSide lines={removed.lines} side=\"removed\" lang={lang} />\n <DiffSide lines={added.lines} side=\"added\" lang={lang} />\n {hidden > 0 && <div className=\"px-2.5 py-1 text-muted-foreground select-none\">… {hidden} more lines</div>}\n </div>\n );\n}\n","import { ToolCallEdit } from './tool-call-edit';\nimport { ToolCallMono } from './tool-call-mono';\nimport { toolEdit, visibleToolArgumentsText } from './tool-presentation';\nimport type { ToolArgumentsInput } from './tool-presentation';\n\nexport interface ToolCallArgumentsProps extends ToolArgumentsInput {\n 'data-testid'?: string;\n showFullContent?: boolean;\n}\n\nexport function ToolCallArguments({ 'data-testid': testId, showFullContent, ...input }: ToolCallArgumentsProps) {\n const edit = toolEdit(input.toolName, input.args);\n if (edit) return <ToolCallEdit edit={edit} showFullContent={showFullContent} />;\n\n const text = visibleToolArgumentsText(input);\n if (!text) return null;\n\n return (\n <ToolCallMono copyText={text} data-testid={testId} className=\"text-foreground\">\n {text}\n </ToolCallMono>\n );\n}\n"],"names":["code","useHighlight","jsx","Fragment","jsxs","cn","tokenStyle","languageForPath","CodeBlock","truncateString","toolEdit","visibleToolArgumentsText","ToolCallMono"],"mappings":";;;;;;;;;;;AAOA,MAAM,cAAA,GAAiB,GAAA;AACvB,MAAM,sBAAA,GAAyB,GAAA;AAE/B,MAAM,UAAA,GAAa;AAAA,EACjB,SAAS,EAAE,IAAA,EAAM,KAAK,GAAA,EAAK,uBAAA,EAAyB,QAAQ,oCAAA,EAAqC;AAAA,EACjG,OAAO,EAAE,IAAA,EAAM,KAAK,GAAA,EAAK,mBAAA,EAAqB,QAAQ,gCAAA;AACxD,CAAA;AAEA,SAAS,YAAA,CAAa,MAAc,eAAA,EAA+D;AACjG,EAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,KAAA,CAAM,IAAI,CAAA;AAC7B,EAAA,IAAI,eAAA,EAAiB,OAAO,EAAE,KAAA,EAAO,QAAQ,CAAA,EAAE;AAC/C,EAAA,OAAO,EAAE,KAAA,EAAO,KAAA,CAAM,KAAA,CAAM,GAAG,cAAc,CAAA,EAAG,MAAA,EAAQ,IAAA,CAAK,GAAA,CAAI,CAAA,EAAG,KAAA,CAAM,MAAA,GAAS,cAAc,CAAA,EAAE;AACrG;AAEA,SAAS,QAAA,CAAS,EAAE,KAAA,EAAO,IAAA,EAAM,MAAK,EAAiF;AACrH,EAAA,MAAM,EAAE,IAAA,EAAM,GAAA,EAAK,MAAA,EAAO,GAAI,WAAW,IAAI,CAAA;AAC7C,EAAA,MAAMA,MAAA,GAAO,KAAA,CAAM,IAAA,CAAK,IAAI,CAAA;AAC5B,EAAA,MAAM,WAAA,GAAcC,iBAAA,CAAaD,MAAA,EAAM,IAAI,CAAA;AAC3C,EAAA,MAAM,MAAA,GAAS,WAAA,EAAa,IAAA,KAASA,MAAA,GAAO,YAAY,MAAA,GAAS,MAAA;AAEjE,EAAA,uBACEE,cAAA,CAAAC,mBAAA,EAAA,EACG,QAAA,EAAA,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,EAAM,KAAA,qBAChBC,eAAA,CAAC,KAAA,EAAA,EAAgB,SAAA,EAAWC,WAAA,CAAG,qBAAA,EAAuB,GAAG,CAAA,EACvD,QAAA,EAAA;AAAA,oBAAAH,cAAA,CAAC,UAAK,SAAA,EAAWG,WAAA,CAAG,iDAAA,EAAmD,MAAM,GAAI,QAAA,EAAA,IAAA,EAAK,CAAA;AAAA,oBACtFH,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,+BAAA,EACb,QAAA,EAAA,MAAA,GAAS,KAAK,CAAA,EAAG,GAAA,CAAI,CAAC,KAAA,EAAO,UAAA,qBAC5BA,cAAA,CAAC,UAAsB,SAAA,EAAU,aAAA,EAAc,KAAA,EAAOI,eAAA,CAAW,KAAK,CAAA,EACnE,gBAAM,OAAA,EAAA,EADE,UAEX,CACD,CAAA,IAAK,IAAA,EACR;AAAA,GAAA,EAAA,EARQ,KASV,CACD,CAAA,EACH,CAAA;AAEJ;AAEO,SAAS,YAAA,CAAa,EAAE,IAAA,EAAM,eAAA,GAAkB,OAAM,EAAkD;AAC7G,EAAA,MAAM,IAAA,GAAOC,yBAAA,CAAgB,IAAA,CAAK,IAAI,CAAA;AAEtC,EAAA,IAAI,aAAa,IAAA,EAAM;AACrB,IAAA,uBACEL,cAAA;AAAA,MAACM,mBAAA;AAAA,MAAA;AAAA,QACC,MAAM,eAAA,GAAkB,IAAA,CAAK,UAAUC,mCAAA,CAAe,IAAA,CAAK,SAAS,sBAAsB,CAAA;AAAA,QAC1F,IAAA;AAAA,QACA,QAAA,EAAU,KAAK,IAAA,IAAQ,QAAA;AAAA,QACvB,QAAA,EAAS;AAAA;AAAA,KACX;AAAA,EAEJ;AAEA,EAAA,MAAM,OAAA,GAAU,YAAA,CAAa,IAAA,CAAK,OAAA,EAAS,eAAe,CAAA;AAC1D,EAAA,MAAM,KAAA,GAAQ,YAAA,CAAa,IAAA,CAAK,OAAA,EAAS,eAAe,CAAA;AACxD,EAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,GAAS,KAAA,CAAM,MAAA;AAEtC,EAAA,uBACEL,eAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAWC,WAAA;AAAA,QACT,mGAAA;AAAA,QACA,eAAA,IAAmB;AAAA,OACrB;AAAA,MACA,IAAA,EAAK,OAAA;AAAA,MACL,YAAA,EAAW,aAAA;AAAA,MAEX,QAAA,EAAA;AAAA,wBAAAH,cAAA,CAAC,YAAS,KAAA,EAAO,OAAA,CAAQ,KAAA,EAAO,IAAA,EAAK,WAAU,IAAA,EAAY,CAAA;AAAA,uCAC1D,QAAA,EAAA,EAAS,KAAA,EAAO,MAAM,KAAA,EAAO,IAAA,EAAK,SAAQ,IAAA,EAAY,CAAA;AAAA,QACtD,MAAA,GAAS,CAAA,oBAAKE,eAAA,CAAC,KAAA,EAAA,EAAI,WAAU,+CAAA,EAAgD,QAAA,EAAA;AAAA,UAAA,IAAA;AAAA,UAAG,MAAA;AAAA,UAAO;AAAA,SAAA,EAAW;AAAA;AAAA;AAAA,GACrG;AAEJ;;ACnEO,SAAS,kBAAkB,EAAE,aAAA,EAAe,QAAQ,eAAA,EAAiB,GAAG,OAAM,EAA2B;AAC9G,EAAA,MAAM,IAAA,GAAOM,yBAAA,CAAS,KAAA,CAAM,QAAA,EAAU,MAAM,IAAI,CAAA;AAChD,EAAA,IAAI,IAAA,EAAM,uBAAOR,cAAA,CAAC,YAAA,EAAA,EAAa,MAAY,eAAA,EAAkC,CAAA;AAE7E,EAAA,MAAM,IAAA,GAAOS,0CAAyB,KAAK,CAAA;AAC3C,EAAA,IAAI,CAAC,MAAM,OAAO,IAAA;AAElB,EAAA,uBACET,cAAA,CAACU,6BAAa,QAAA,EAAU,IAAA,EAAM,eAAa,MAAA,EAAQ,SAAA,EAAU,mBAC1D,QAAA,EAAA,IAAA,EACH,CAAA;AAEJ;;;;;"}
1
+ {"version":3,"file":"tool-call-arguments-CK3kQ_FX.cjs","sources":["../src/ds/components/ai/tool-call/tool-call-edit.tsx","../src/ds/components/ai/tool-call/tool-call-arguments.tsx"],"sourcesContent":["import type { ToolEdit } from './tool-presentation';\nimport { tokenStyle, useHighlight } from '@/ds/components/Code';\nimport { CodeBlock } from '@/ds/components/CodeBlock';\nimport { languageForPath } from '@/ds/components/CodeEditor/highlight';\nimport { truncateString } from '@/lib/truncate-string';\nimport { cn } from '@/lib/utils';\n\nconst DIFF_MAX_LINES = 200;\nconst WRITTEN_FILE_MAX_CHARS = 2000;\n\nconst DIFF_SIDES = {\n removed: { sign: '-', row: 'bg-destructive-subtle', gutter: 'text-destructive-subtle-foreground' },\n added: { sign: '+', row: 'bg-success-subtle', gutter: 'text-success-subtle-foreground' },\n} as const;\n\nfunction boundedLines(text: string, showFullContent: boolean): { lines: string[]; hidden: number } {\n const lines = text.split('\\n');\n if (showFullContent) return { lines, hidden: 0 };\n return { lines: lines.slice(0, DIFF_MAX_LINES), hidden: Math.max(0, lines.length - DIFF_MAX_LINES) };\n}\n\nfunction DiffSide({ lines, side, lang }: { lines: string[]; side: keyof typeof DIFF_SIDES; lang: string | undefined }) {\n const { sign, row, gutter } = DIFF_SIDES[side];\n const code = lines.join('\\n');\n const highlighted = useHighlight(code, lang);\n const tokens = highlighted?.code === code ? highlighted.tokens : undefined;\n\n return (\n <>\n {lines.map((line, index) => (\n <div key={index} className={cn('flex whitespace-pre', row)}>\n <span className={cn('w-5 shrink-0 text-center opacity-70 select-none', gutter)}>{sign}</span>\n <span className=\"flex-1 pr-2.5 text-foreground\">\n {tokens?.[index]?.map((token, tokenIndex) => (\n <span key={tokenIndex} className=\"shiki-token\" style={tokenStyle(token)}>\n {token.content}\n </span>\n )) ?? line}\n </span>\n </div>\n ))}\n </>\n );\n}\n\nexport function ToolCallEdit({ edit, showFullContent = false }: { edit: ToolEdit; showFullContent?: boolean }) {\n const lang = languageForPath(edit.path);\n\n if ('content' in edit) {\n return (\n <CodeBlock\n code={showFullContent ? edit.content : truncateString(edit.content, WRITTEN_FILE_MAX_CHARS)}\n lang={lang}\n fileName={edit.path ?? 'Change'}\n overflow=\"scroll\"\n />\n );\n }\n\n const removed = boundedLines(edit.oldText, showFullContent);\n const added = boundedLines(edit.newText, showFullContent);\n const hidden = removed.hidden + added.hidden;\n\n return (\n <div\n className={cn(\n 'max-w-full min-w-0 overflow-x-auto rounded-md border border-border bg-fill font-mono text-caption',\n showFullContent && 'max-h-60 overflow-y-auto',\n )}\n role=\"group\"\n aria-label=\"File change\"\n >\n <DiffSide lines={removed.lines} side=\"removed\" lang={lang} />\n <DiffSide lines={added.lines} side=\"added\" lang={lang} />\n {hidden > 0 && <div className=\"px-2.5 py-1 text-muted-foreground select-none\">… {hidden} more lines</div>}\n </div>\n );\n}\n","import { ToolCallEdit } from './tool-call-edit';\nimport { ToolCallMono } from './tool-call-mono';\nimport { toolEdit, visibleToolArgumentsText } from './tool-presentation';\nimport type { ToolArgumentsInput } from './tool-presentation';\n\nexport interface ToolCallArgumentsProps extends ToolArgumentsInput {\n 'data-testid'?: string;\n showFullContent?: boolean;\n}\n\nexport function ToolCallArguments({ 'data-testid': testId, showFullContent, ...input }: ToolCallArgumentsProps) {\n const edit = toolEdit(input.toolName, input.args);\n if (edit) return <ToolCallEdit edit={edit} showFullContent={showFullContent} />;\n\n const text = visibleToolArgumentsText(input);\n if (!text) return null;\n\n return (\n <ToolCallMono copyText={text} data-testid={testId} className=\"text-foreground\">\n {text}\n </ToolCallMono>\n );\n}\n"],"names":["code","useHighlight","jsx","Fragment","jsxs","cn","tokenStyle","languageForPath","CodeBlock","truncateString","toolEdit","visibleToolArgumentsText","ToolCallMono"],"mappings":"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"}
@@ -2,7 +2,7 @@ import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
2
2
  import { FoldVertical, X } from 'lucide-react';
3
3
  import { p as presentTool } from './tool-presentation-BXAo24Ir.js';
4
4
  import { A as Activity, m as ActivityTrigger, d as ActivityHeader, i as ActivityLeading, f as ActivityIcon, h as ActivityLabel, b as ActivityDetail, j as ActivitySpacer, l as ActivityTrailing, c as ActivityDisclosure, a as ActivityContent, k as ActivitySummary } from './activity-BsrB5ADa.js';
5
- import { S as ScrollArea } from './scroll-area-BywIlj3F.js';
5
+ import { S as ScrollArea } from './scroll-area-D6gKFavi.js';
6
6
  import { T as Txt } from './Txt-BuzYj7Vy.js';
7
7
 
8
8
  const MAX_KIND_GLYPHS = 4;
@@ -59,4 +59,4 @@ function GroupKinds({ steps }) {
59
59
  }
60
60
 
61
61
  export { ToolCallGroup as T };
62
- //# sourceMappingURL=tool-call-group-CZBqGjMh.js.map
62
+ //# sourceMappingURL=tool-call-group-C_zxf6OA.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tool-call-group-CZBqGjMh.js","sources":["../src/ds/components/ai/tool-call/tool-call-group.tsx"],"sourcesContent":["import { FoldVertical, X } from 'lucide-react';\nimport type { ReactNode } from 'react';\nimport { presentTool } from './tool-presentation';\nimport {\n Activity,\n ActivityContent,\n ActivityDetail,\n ActivityDisclosure,\n ActivityHeader,\n ActivityIcon,\n ActivityLabel,\n ActivityLeading,\n ActivitySpacer,\n ActivitySummary,\n ActivityTrailing,\n ActivityTrigger,\n} from '@/ds/components/ai/activity';\nimport type { ActivityStatus } from '@/ds/components/ai/activity';\nimport { ScrollArea } from '@/ds/components/ScrollArea';\nimport { Txt } from '@/ds/components/Txt';\n\nexport interface ToolCallGroupStep {\n toolName: string;\n args: unknown;\n status: ActivityStatus;\n /** A successful tool result was recorded. Supply for every step to enable outcome counts; omit to keep legacy summaries. */\n hasResult?: boolean;\n}\n\nexport interface ToolCallGroupProps {\n steps: ToolCallGroupStep[];\n /** Rendered ahead of the icon, e.g. the time the first step began. */\n leading?: ReactNode;\n children: ReactNode;\n}\n\nconst MAX_KIND_GLYPHS = 4;\n\nexport function ToolCallGroup({ steps, leading, children }: ToolCallGroupProps) {\n const running = steps.find(step => step.status === 'running');\n const live = running && presentTool(running.toolName, running.args);\n\n return (\n <Activity status={running ? 'running' : 'idle'} aria-label={`Tool group: ${steps.length} steps`}>\n <ActivityTrigger>\n <ActivityHeader>\n <ActivityLeading>{leading}</ActivityLeading>\n <ActivityIcon>\n <FoldVertical size={14} strokeWidth={1.75} aria-hidden className=\"text-placeholder\" />\n </ActivityIcon>\n <ActivityLabel>{steps.length} steps</ActivityLabel>\n {live && live.description ? (\n <ActivityLabel className=\"max-w-none min-w-0 shrink\">{live.description}</ActivityLabel>\n ) : (\n live && live.detail && <ActivityDetail>{live.detail}</ActivityDetail>\n )}\n <GroupKinds steps={steps} />\n <ActivitySpacer rule />\n <ActivityTrailing>\n <GroupProgress steps={steps} />\n </ActivityTrailing>\n <ActivityDisclosure />\n </ActivityHeader>\n </ActivityTrigger>\n <ActivityContent className=\"py-0.5 pr-0 pl-2.5\">\n <ScrollArea maxHeight=\"18rem\" autoScroll={Boolean(running)} revealScrollbarOnHover={false}>\n {children}\n </ScrollArea>\n </ActivityContent>\n </Activity>\n );\n}\n\nfunction GroupProgress({ steps }: { steps: ToolCallGroupStep[] }) {\n const done = steps.filter(step => step.status !== 'running').length;\n if (done < steps.length) {\n return (\n <Txt as=\"span\" variant=\"meta\" tone=\"muted\" className=\"shrink-0 tabular-nums\">\n {done}/{steps.length}\n </Txt>\n );\n }\n const failed = steps.filter(step => step.status === 'error').length;\n const errorIndicator =\n failed > 0 ? <X size={13} role=\"img\" aria-label=\"Failed\" className=\"shrink-0 text-destructive-foreground\" /> : null;\n // Older consumers only supply visual status, which cannot distinguish completed from interrupted calls.\n if (steps.some(step => step.hasResult === undefined)) return errorIndicator;\n\n const succeeded = steps.filter(step => step.status === 'idle' && step.hasResult).length;\n const incomplete = steps.length - succeeded - failed;\n const summary = [\n succeeded > 0 && `${succeeded} OK`,\n failed > 0 && `${failed} failed`,\n incomplete > 0 && `${incomplete} incomplete`,\n ]\n .filter(Boolean)\n .join(' · ');\n\n return (\n <>\n {errorIndicator}\n <Txt as=\"span\" variant=\"meta\" tone=\"muted\" className=\"shrink-0 tabular-nums\">\n {summary}\n </Txt>\n </>\n );\n}\n\nfunction GroupKinds({ steps }: { steps: ToolCallGroupStep[] }) {\n const iconByLabel = new Map(\n steps.map(step => presentTool(step.toolName, step.args)).map(({ label, icon }) => [label, icon]),\n );\n const kinds = [...iconByLabel].slice(0, MAX_KIND_GLYPHS);\n\n return (\n <ActivitySummary role=\"img\" aria-label={kinds.map(([label]) => label).join(', ')} className=\"shrink-0 gap-1.5\">\n {kinds.map(([label, Kind]) => (\n <Kind key={label} size={12} strokeWidth={1.75} className=\"text-placeholder\" />\n ))}\n </ActivitySummary>\n );\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-call-group-C_zxf6OA.js","sources":["../src/ds/components/ai/tool-call/tool-call-group.tsx"],"sourcesContent":["import { FoldVertical, X } from 'lucide-react';\nimport type { ReactNode } from 'react';\nimport { presentTool } from './tool-presentation';\nimport {\n Activity,\n ActivityContent,\n ActivityDetail,\n ActivityDisclosure,\n ActivityHeader,\n ActivityIcon,\n ActivityLabel,\n ActivityLeading,\n ActivitySpacer,\n ActivitySummary,\n ActivityTrailing,\n ActivityTrigger,\n} from '@/ds/components/ai/activity';\nimport type { ActivityStatus } from '@/ds/components/ai/activity';\nimport { ScrollArea } from '@/ds/components/ScrollArea';\nimport { Txt } from '@/ds/components/Txt';\n\nexport interface ToolCallGroupStep {\n toolName: string;\n args: unknown;\n status: ActivityStatus;\n /** A successful tool result was recorded. Supply for every step to enable outcome counts; omit to keep legacy summaries. */\n hasResult?: boolean;\n}\n\nexport interface ToolCallGroupProps {\n steps: ToolCallGroupStep[];\n /** Rendered ahead of the icon, e.g. the time the first step began. */\n leading?: ReactNode;\n children: ReactNode;\n}\n\nconst MAX_KIND_GLYPHS = 4;\n\nexport function ToolCallGroup({ steps, leading, children }: ToolCallGroupProps) {\n const running = steps.find(step => step.status === 'running');\n const live = running && presentTool(running.toolName, running.args);\n\n return (\n <Activity status={running ? 'running' : 'idle'} aria-label={`Tool group: ${steps.length} steps`}>\n <ActivityTrigger>\n <ActivityHeader>\n <ActivityLeading>{leading}</ActivityLeading>\n <ActivityIcon>\n <FoldVertical size={14} strokeWidth={1.75} aria-hidden className=\"text-placeholder\" />\n </ActivityIcon>\n <ActivityLabel>{steps.length} steps</ActivityLabel>\n {live && live.description ? (\n <ActivityLabel className=\"max-w-none min-w-0 shrink\">{live.description}</ActivityLabel>\n ) : (\n live && live.detail && <ActivityDetail>{live.detail}</ActivityDetail>\n )}\n <GroupKinds steps={steps} />\n <ActivitySpacer rule />\n <ActivityTrailing>\n <GroupProgress steps={steps} />\n </ActivityTrailing>\n <ActivityDisclosure />\n </ActivityHeader>\n </ActivityTrigger>\n <ActivityContent className=\"py-0.5 pr-0 pl-2.5\">\n <ScrollArea maxHeight=\"18rem\" autoScroll={Boolean(running)} revealScrollbarOnHover={false}>\n {children}\n </ScrollArea>\n </ActivityContent>\n </Activity>\n );\n}\n\nfunction GroupProgress({ steps }: { steps: ToolCallGroupStep[] }) {\n const done = steps.filter(step => step.status !== 'running').length;\n if (done < steps.length) {\n return (\n <Txt as=\"span\" variant=\"meta\" tone=\"muted\" className=\"shrink-0 tabular-nums\">\n {done}/{steps.length}\n </Txt>\n );\n }\n const failed = steps.filter(step => step.status === 'error').length;\n const errorIndicator =\n failed > 0 ? <X size={13} role=\"img\" aria-label=\"Failed\" className=\"shrink-0 text-destructive-foreground\" /> : null;\n // Older consumers only supply visual status, which cannot distinguish completed from interrupted calls.\n if (steps.some(step => step.hasResult === undefined)) return errorIndicator;\n\n const succeeded = steps.filter(step => step.status === 'idle' && step.hasResult).length;\n const incomplete = steps.length - succeeded - failed;\n const summary = [\n succeeded > 0 && `${succeeded} OK`,\n failed > 0 && `${failed} failed`,\n incomplete > 0 && `${incomplete} incomplete`,\n ]\n .filter(Boolean)\n .join(' · ');\n\n return (\n <>\n {errorIndicator}\n <Txt as=\"span\" variant=\"meta\" tone=\"muted\" className=\"shrink-0 tabular-nums\">\n {summary}\n </Txt>\n </>\n );\n}\n\nfunction GroupKinds({ steps }: { steps: ToolCallGroupStep[] }) {\n const iconByLabel = new Map(\n steps.map(step => presentTool(step.toolName, step.args)).map(({ label, icon }) => [label, icon]),\n );\n const kinds = [...iconByLabel].slice(0, MAX_KIND_GLYPHS);\n\n return (\n <ActivitySummary role=\"img\" aria-label={kinds.map(([label]) => label).join(', ')} className=\"shrink-0 gap-1.5\">\n {kinds.map(([label, Kind]) => (\n <Kind key={label} size={12} strokeWidth={1.75} className=\"text-placeholder\" />\n ))}\n </ActivitySummary>\n );\n}\n"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ const jsxRuntime = require('react/jsx-runtime');
4
4
  const lucideReact = require('lucide-react');
5
5
  const toolPresentation = require('./tool-presentation-WLS6d1ws.cjs');
6
6
  const activity = require('./activity-CaFdLiPz.cjs');
7
- const scrollArea = require('./scroll-area-CVgjRzTS.cjs');
7
+ const scrollArea = require('./scroll-area-BakRKj2k.cjs');
8
8
  const Txt = require('./Txt-DXjXpX9r.cjs');
9
9
 
10
10
  const MAX_KIND_GLYPHS = 4;
@@ -61,4 +61,4 @@ function GroupKinds({ steps }) {
61
61
  }
62
62
 
63
63
  exports.ToolCallGroup = ToolCallGroup;
64
- //# sourceMappingURL=tool-call-group-CFpdexuw.cjs.map
64
+ //# sourceMappingURL=tool-call-group-Cdgv7red.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"tool-call-group-CFpdexuw.cjs","sources":["../src/ds/components/ai/tool-call/tool-call-group.tsx"],"sourcesContent":["import { FoldVertical, X } from 'lucide-react';\nimport type { ReactNode } from 'react';\nimport { presentTool } from './tool-presentation';\nimport {\n Activity,\n ActivityContent,\n ActivityDetail,\n ActivityDisclosure,\n ActivityHeader,\n ActivityIcon,\n ActivityLabel,\n ActivityLeading,\n ActivitySpacer,\n ActivitySummary,\n ActivityTrailing,\n ActivityTrigger,\n} from '@/ds/components/ai/activity';\nimport type { ActivityStatus } from '@/ds/components/ai/activity';\nimport { ScrollArea } from '@/ds/components/ScrollArea';\nimport { Txt } from '@/ds/components/Txt';\n\nexport interface ToolCallGroupStep {\n toolName: string;\n args: unknown;\n status: ActivityStatus;\n /** A successful tool result was recorded. Supply for every step to enable outcome counts; omit to keep legacy summaries. */\n hasResult?: boolean;\n}\n\nexport interface ToolCallGroupProps {\n steps: ToolCallGroupStep[];\n /** Rendered ahead of the icon, e.g. the time the first step began. */\n leading?: ReactNode;\n children: ReactNode;\n}\n\nconst MAX_KIND_GLYPHS = 4;\n\nexport function ToolCallGroup({ steps, leading, children }: ToolCallGroupProps) {\n const running = steps.find(step => step.status === 'running');\n const live = running && presentTool(running.toolName, running.args);\n\n return (\n <Activity status={running ? 'running' : 'idle'} aria-label={`Tool group: ${steps.length} steps`}>\n <ActivityTrigger>\n <ActivityHeader>\n <ActivityLeading>{leading}</ActivityLeading>\n <ActivityIcon>\n <FoldVertical size={14} strokeWidth={1.75} aria-hidden className=\"text-placeholder\" />\n </ActivityIcon>\n <ActivityLabel>{steps.length} steps</ActivityLabel>\n {live && live.description ? (\n <ActivityLabel className=\"max-w-none min-w-0 shrink\">{live.description}</ActivityLabel>\n ) : (\n live && live.detail && <ActivityDetail>{live.detail}</ActivityDetail>\n )}\n <GroupKinds steps={steps} />\n <ActivitySpacer rule />\n <ActivityTrailing>\n <GroupProgress steps={steps} />\n </ActivityTrailing>\n <ActivityDisclosure />\n </ActivityHeader>\n </ActivityTrigger>\n <ActivityContent className=\"py-0.5 pr-0 pl-2.5\">\n <ScrollArea maxHeight=\"18rem\" autoScroll={Boolean(running)} revealScrollbarOnHover={false}>\n {children}\n </ScrollArea>\n </ActivityContent>\n </Activity>\n );\n}\n\nfunction GroupProgress({ steps }: { steps: ToolCallGroupStep[] }) {\n const done = steps.filter(step => step.status !== 'running').length;\n if (done < steps.length) {\n return (\n <Txt as=\"span\" variant=\"meta\" tone=\"muted\" className=\"shrink-0 tabular-nums\">\n {done}/{steps.length}\n </Txt>\n );\n }\n const failed = steps.filter(step => step.status === 'error').length;\n const errorIndicator =\n failed > 0 ? <X size={13} role=\"img\" aria-label=\"Failed\" className=\"shrink-0 text-destructive-foreground\" /> : null;\n // Older consumers only supply visual status, which cannot distinguish completed from interrupted calls.\n if (steps.some(step => step.hasResult === undefined)) return errorIndicator;\n\n const succeeded = steps.filter(step => step.status === 'idle' && step.hasResult).length;\n const incomplete = steps.length - succeeded - failed;\n const summary = [\n succeeded > 0 && `${succeeded} OK`,\n failed > 0 && `${failed} failed`,\n incomplete > 0 && `${incomplete} incomplete`,\n ]\n .filter(Boolean)\n .join(' · ');\n\n return (\n <>\n {errorIndicator}\n <Txt as=\"span\" variant=\"meta\" tone=\"muted\" className=\"shrink-0 tabular-nums\">\n {summary}\n </Txt>\n </>\n );\n}\n\nfunction GroupKinds({ steps }: { steps: ToolCallGroupStep[] }) {\n const iconByLabel = new Map(\n steps.map(step => presentTool(step.toolName, step.args)).map(({ label, icon }) => [label, icon]),\n );\n const kinds = [...iconByLabel].slice(0, MAX_KIND_GLYPHS);\n\n return (\n <ActivitySummary role=\"img\" aria-label={kinds.map(([label]) => label).join(', ')} className=\"shrink-0 gap-1.5\">\n {kinds.map(([label, Kind]) => (\n <Kind key={label} size={12} strokeWidth={1.75} className=\"text-placeholder\" />\n ))}\n </ActivitySummary>\n );\n}\n"],"names":["presentTool","jsxs","Activity","jsx","ActivityTrigger","ActivityHeader","ActivityLeading","ActivityIcon","FoldVertical","ActivityLabel","ActivityDetail","ActivitySpacer","ActivityTrailing","ActivityDisclosure","ActivityContent","ScrollArea","Txt","X","Fragment","ActivitySummary"],"mappings":"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"}
1
+ {"version":3,"file":"tool-call-group-Cdgv7red.cjs","sources":["../src/ds/components/ai/tool-call/tool-call-group.tsx"],"sourcesContent":["import { FoldVertical, X } from 'lucide-react';\nimport type { ReactNode } from 'react';\nimport { presentTool } from './tool-presentation';\nimport {\n Activity,\n ActivityContent,\n ActivityDetail,\n ActivityDisclosure,\n ActivityHeader,\n ActivityIcon,\n ActivityLabel,\n ActivityLeading,\n ActivitySpacer,\n ActivitySummary,\n ActivityTrailing,\n ActivityTrigger,\n} from '@/ds/components/ai/activity';\nimport type { ActivityStatus } from '@/ds/components/ai/activity';\nimport { ScrollArea } from '@/ds/components/ScrollArea';\nimport { Txt } from '@/ds/components/Txt';\n\nexport interface ToolCallGroupStep {\n toolName: string;\n args: unknown;\n status: ActivityStatus;\n /** A successful tool result was recorded. Supply for every step to enable outcome counts; omit to keep legacy summaries. */\n hasResult?: boolean;\n}\n\nexport interface ToolCallGroupProps {\n steps: ToolCallGroupStep[];\n /** Rendered ahead of the icon, e.g. the time the first step began. */\n leading?: ReactNode;\n children: ReactNode;\n}\n\nconst MAX_KIND_GLYPHS = 4;\n\nexport function ToolCallGroup({ steps, leading, children }: ToolCallGroupProps) {\n const running = steps.find(step => step.status === 'running');\n const live = running && presentTool(running.toolName, running.args);\n\n return (\n <Activity status={running ? 'running' : 'idle'} aria-label={`Tool group: ${steps.length} steps`}>\n <ActivityTrigger>\n <ActivityHeader>\n <ActivityLeading>{leading}</ActivityLeading>\n <ActivityIcon>\n <FoldVertical size={14} strokeWidth={1.75} aria-hidden className=\"text-placeholder\" />\n </ActivityIcon>\n <ActivityLabel>{steps.length} steps</ActivityLabel>\n {live && live.description ? (\n <ActivityLabel className=\"max-w-none min-w-0 shrink\">{live.description}</ActivityLabel>\n ) : (\n live && live.detail && <ActivityDetail>{live.detail}</ActivityDetail>\n )}\n <GroupKinds steps={steps} />\n <ActivitySpacer rule />\n <ActivityTrailing>\n <GroupProgress steps={steps} />\n </ActivityTrailing>\n <ActivityDisclosure />\n </ActivityHeader>\n </ActivityTrigger>\n <ActivityContent className=\"py-0.5 pr-0 pl-2.5\">\n <ScrollArea maxHeight=\"18rem\" autoScroll={Boolean(running)} revealScrollbarOnHover={false}>\n {children}\n </ScrollArea>\n </ActivityContent>\n </Activity>\n );\n}\n\nfunction GroupProgress({ steps }: { steps: ToolCallGroupStep[] }) {\n const done = steps.filter(step => step.status !== 'running').length;\n if (done < steps.length) {\n return (\n <Txt as=\"span\" variant=\"meta\" tone=\"muted\" className=\"shrink-0 tabular-nums\">\n {done}/{steps.length}\n </Txt>\n );\n }\n const failed = steps.filter(step => step.status === 'error').length;\n const errorIndicator =\n failed > 0 ? <X size={13} role=\"img\" aria-label=\"Failed\" className=\"shrink-0 text-destructive-foreground\" /> : null;\n // Older consumers only supply visual status, which cannot distinguish completed from interrupted calls.\n if (steps.some(step => step.hasResult === undefined)) return errorIndicator;\n\n const succeeded = steps.filter(step => step.status === 'idle' && step.hasResult).length;\n const incomplete = steps.length - succeeded - failed;\n const summary = [\n succeeded > 0 && `${succeeded} OK`,\n failed > 0 && `${failed} failed`,\n incomplete > 0 && `${incomplete} incomplete`,\n ]\n .filter(Boolean)\n .join(' · ');\n\n return (\n <>\n {errorIndicator}\n <Txt as=\"span\" variant=\"meta\" tone=\"muted\" className=\"shrink-0 tabular-nums\">\n {summary}\n </Txt>\n </>\n );\n}\n\nfunction GroupKinds({ steps }: { steps: ToolCallGroupStep[] }) {\n const iconByLabel = new Map(\n steps.map(step => presentTool(step.toolName, step.args)).map(({ label, icon }) => [label, icon]),\n );\n const kinds = [...iconByLabel].slice(0, MAX_KIND_GLYPHS);\n\n return (\n <ActivitySummary role=\"img\" aria-label={kinds.map(([label]) => label).join(', ')} className=\"shrink-0 gap-1.5\">\n {kinds.map(([label, Kind]) => (\n <Kind key={label} size={12} strokeWidth={1.75} className=\"text-placeholder\" />\n ))}\n </ActivitySummary>\n );\n}\n"],"names":["presentTool","jsxs","Activity","jsx","ActivityTrigger","ActivityHeader","ActivityLeading","ActivityIcon","FoldVertical","ActivityLabel","ActivityDetail","ActivitySpacer","ActivityTrailing","ActivityDisclosure","ActivityContent","ScrollArea","Txt","X","Fragment","ActivitySummary"],"mappings":"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"}
@@ -1,5 +1,7 @@
1
1
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
- import { c as DataListCell, f as DataListTextCell, g as DataListNextPageLoading, r as DataListCreatedCell, t as DataListIdCell, k as DataListSpacer, u as DataListSubHeading, v as DataListSubheader, j as DataListNoMatch, m as DataListRowButton, p as DataListTopCellWithTooltip, q as DataListSortableTopCell, b as DataListTopCell, a as DataListTop, D as DataListRoot } from './data-list-B2ArWwsJ.js';
2
+ import { c as DataListCell, e as DataListTextCell, j as DataListCreatedCell, k as DataListIdCell, i as DataListTopCellWithTooltip, b as DataListTopCell, a as DataListTop, D as DataListRoot } from './data-list-top-Dk9Wz_w5.js';
3
+ import { D as DataListNextPageLoading, b as DataListSpacer, a as DataListNoMatch, d as DataListRowButton, f as DataListSortableTopCell } from './data-list-spacer-DGUCD6oy.js';
4
+ import { a as DataListSubHeading, b as DataListSubheader } from './data-list-kilUFo3I.js';
3
5
  import { RouteIcon, DatabaseIcon, ListTreeIcon, CornerDownRightIcon } from 'lucide-react';
4
6
  import { B as Badge } from './Badge-3-G2I_cx.js';
5
7
  import { T as Tooltip, c as TooltipTrigger, a as TooltipContent } from './tooltip-CCZcMbgy.js';
@@ -91,4 +93,4 @@ const TracesDataList = Object.assign(TracesDataListRoot, {
91
93
  });
92
94
 
93
95
  export { TracesDataList as T };
94
- //# sourceMappingURL=traces-data-list-1X6UBM6Y.js.map
96
+ //# sourceMappingURL=traces-data-list-CDvg5G_2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"traces-data-list-1X6UBM6Y.js","sources":["../src/ds/components/DataList/TracesDataList/traces-data-list-cells.tsx","../src/ds/components/DataList/TracesDataList/traces-data-list.tsx"],"sourcesContent":["import { CornerDownRightIcon, DatabaseIcon, ListTreeIcon, RouteIcon } from 'lucide-react';\nimport type { ComponentType, SVGProps } from 'react';\nimport { DataListCell, DataListTextCell } from '../data-list-cells';\nimport { Badge } from '@/ds/components/Badge';\nimport type { BadgeVariant } from '@/ds/components/Badge';\nimport { Tooltip, TooltipContent, TooltipTrigger } from '@/ds/components/Tooltip';\nimport { Txt } from '@/ds/components/Txt';\nimport { AgentIcon } from '@/ds/icons/AgentIcon';\nimport { McpServerIcon } from '@/ds/icons/McpServerIcon';\nimport { MemoryIcon } from '@/ds/icons/MemoryIcon';\nimport { ProcessorIcon } from '@/ds/icons/ProcessorIcon';\nimport { ScorersIcon } from '@/ds/icons/ScorersIcon';\nimport { ToolsIcon } from '@/ds/icons/ToolsIcon';\nimport { WorkflowIcon } from '@/ds/icons/WorkflowIcon';\nimport { cn } from '@/lib/utils';\n\n// ---------------------------------------------------------------------------\n// NameCell\n// ---------------------------------------------------------------------------\n\nexport interface TracesDataListNameCellProps {\n name?: string | null;\n /** `null`/missing → root span (Trace). Set → nested span (Subtrace). Drives the leading level icon. */\n parentSpanId?: string | null;\n /** When true, the leading level icon is wrapped in a Trace/Subtrace tooltip. Off by default —\n * only meaningful in branches mode, where rows mix root traces and subtraces. */\n showLevelTooltip?: boolean;\n}\n\nexport function TracesDataListNameCell({ name, parentSpanId, showLevelTooltip }: TracesDataListNameCellProps) {\n const isRoot = parentSpanId == null;\n const Icon = isRoot ? ListTreeIcon : CornerDownRightIcon;\n const label = isRoot ? 'Trace' : 'Subtrace';\n const icon = (\n <span aria-label={label} className=\"inline-flex shrink-0\">\n <Icon className={cn('size-4 shrink-0', isRoot ? 'text-muted-foreground' : 'text-placeholder')} aria-hidden />\n </span>\n );\n return (\n <DataListCell className=\"flex min-w-0 items-center gap-2 text-body-sm text-muted-foreground\">\n {showLevelTooltip ? (\n <Tooltip>\n <TooltipTrigger asChild>{icon}</TooltipTrigger>\n <TooltipContent>{label}</TooltipContent>\n </Tooltip>\n ) : (\n icon\n )}\n <span className=\"min-w-0 truncate\">{name || '-'}</span>\n </DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// InputCell\n// ---------------------------------------------------------------------------\n\nexport interface TracesDataListInputCellProps {\n input?: string | null;\n}\n\nexport function TracesDataListInputCell({ input }: TracesDataListInputCellProps) {\n return <DataListTextCell font=\"mono\">{input || '-'}</DataListTextCell>;\n}\n\n// ---------------------------------------------------------------------------\n// TypeCell\n// ---------------------------------------------------------------------------\n\ntype EntityTypeDisplay = { label: string; Icon: ComponentType<SVGProps<SVGSVGElement>> };\n\n// Keys are lowercase `EntityType` enum values (plus legacy `workflow`).\nconst ENTITY_TYPE_DISPLAY: Record<string, EntityTypeDisplay> = {\n agent: { label: 'Agent', Icon: AgentIcon },\n workflow: { label: 'Workflow', Icon: WorkflowIcon },\n workflow_run: { label: 'Workflow', Icon: WorkflowIcon },\n workflow_step: { label: 'Step', Icon: WorkflowIcon },\n tool: { label: 'Tool', Icon: ToolsIcon },\n scorer: { label: 'Scorer', Icon: ScorersIcon },\n memory: { label: 'Memory', Icon: MemoryIcon },\n mcp_server: { label: 'MCP Server', Icon: McpServerIcon },\n input_processor: { label: 'Processor', Icon: ProcessorIcon },\n input_step_processor: { label: 'Processor', Icon: ProcessorIcon },\n output_processor: { label: 'Processor', Icon: ProcessorIcon },\n output_step_processor: { label: 'Processor', Icon: ProcessorIcon },\n tool_result_processor: { label: 'Processor', Icon: ProcessorIcon },\n rag_ingestion: { label: 'RAG', Icon: DatabaseIcon },\n trajectory: { label: 'Trajectory', Icon: RouteIcon },\n};\n\nexport interface TracesDataListTypeCellProps {\n entityType?: string | null;\n}\n\nexport function TracesDataListTypeCell({ entityType }: TracesDataListTypeCellProps) {\n const display = entityType ? ENTITY_TYPE_DISPLAY[entityType.toLowerCase()] : undefined;\n\n return (\n <DataListCell className=\"flex min-w-0 items-center gap-2\">\n {display ? (\n <>\n <display.Icon className=\"size-3.5 shrink-0 text-placeholder\" aria-hidden />\n <Txt as=\"span\" variant=\"body-sm\" className=\"min-w-0 truncate\">\n {display.label}\n </Txt>\n </>\n ) : (\n '-'\n )}\n </DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// StatusCell\n// ---------------------------------------------------------------------------\n\nconst UNSET_STATUS_CONFIG: { label: string; variant: BadgeVariant } = { label: '-', variant: 'neutral' };\n\nconst STATUS_CONFIG: Record<string, { label: string; variant: BadgeVariant }> = {\n completed: { label: 'OK', variant: 'success' },\n ok: { label: 'OK', variant: 'success' },\n success: { label: 'OK', variant: 'success' },\n error: { label: 'ERR', variant: 'destructive' },\n running: { label: 'RUN', variant: 'neutral' },\n unset: UNSET_STATUS_CONFIG,\n};\n\nexport interface TracesDataListStatusCellProps {\n status?: string | null;\n}\n\nexport function TracesDataListStatusCell({ status }: TracesDataListStatusCellProps) {\n const key = (status ?? 'unset').toLowerCase();\n const config = STATUS_CONFIG[key] ?? UNSET_STATUS_CONFIG;\n\n return (\n <DataListCell>\n <Badge size=\"xs\" variant={config.variant}>\n {config.label}\n </Badge>\n </DataListCell>\n );\n}\n","import type { ComponentProps } from 'react';\nimport { DataListCreatedCell, DataListIdCell } from '../data-list-cells';\nimport { DataListNextPageLoading } from '../data-list-next-page-loading';\nimport { DataListNoMatch } from '../data-list-no-match';\nimport { DataListRoot } from '../data-list-root';\nimport { DataListRowButton } from '../data-list-row-button';\nimport { DataListSortableTopCell } from '../data-list-sortable-top-cell';\nimport { DataListSpacer } from '../data-list-spacer';\nimport { DataListSubheader } from '../data-list-subheader';\nimport { DataListSubHeading } from '../data-list-subheading';\nimport { DataListTop } from '../data-list-top';\nimport { DataListTopCell, DataListTopCellWithTooltip } from '../data-list-top-cell';\nimport {\n TracesDataListNameCell,\n TracesDataListInputCell,\n TracesDataListTypeCell,\n TracesDataListStatusCell,\n} from './traces-data-list-cells';\n\n// oxlint-disable-next-line react/only-export-components -- compound component root, same pattern as ScoresDataList\n// eslint-disable-next-line react-refresh/only-export-components -- compound component root, same pattern as ScoresDataList\nfunction TracesDataListRoot(props: ComponentProps<typeof DataListRoot>) {\n return <DataListRoot {...props} />;\n}\n\nexport const TracesDataList = Object.assign(TracesDataListRoot, {\n Top: DataListTop,\n TopCell: DataListTopCell,\n SortableTopCell: DataListSortableTopCell,\n TopCellWithTooltip: DataListTopCellWithTooltip,\n RowButton: DataListRowButton,\n NoMatch: DataListNoMatch,\n Subheader: DataListSubheader,\n SubHeading: DataListSubHeading,\n Spacer: DataListSpacer,\n IdCell: DataListIdCell,\n CreatedCell: DataListCreatedCell,\n NameCell: TracesDataListNameCell,\n InputCell: TracesDataListInputCell,\n TypeCell: TracesDataListTypeCell,\n StatusCell: TracesDataListStatusCell,\n NextPageLoading: DataListNextPageLoading,\n});\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"traces-data-list-CDvg5G_2.js","sources":["../src/ds/components/DataList/TracesDataList/traces-data-list-cells.tsx","../src/ds/components/DataList/TracesDataList/traces-data-list.tsx"],"sourcesContent":["import { CornerDownRightIcon, DatabaseIcon, ListTreeIcon, RouteIcon } from 'lucide-react';\nimport type { ComponentType, SVGProps } from 'react';\nimport { DataListCell, DataListTextCell } from '../data-list-cells';\nimport { Badge } from '@/ds/components/Badge';\nimport type { BadgeVariant } from '@/ds/components/Badge';\nimport { Tooltip, TooltipContent, TooltipTrigger } from '@/ds/components/Tooltip';\nimport { Txt } from '@/ds/components/Txt';\nimport { AgentIcon } from '@/ds/icons/AgentIcon';\nimport { McpServerIcon } from '@/ds/icons/McpServerIcon';\nimport { MemoryIcon } from '@/ds/icons/MemoryIcon';\nimport { ProcessorIcon } from '@/ds/icons/ProcessorIcon';\nimport { ScorersIcon } from '@/ds/icons/ScorersIcon';\nimport { ToolsIcon } from '@/ds/icons/ToolsIcon';\nimport { WorkflowIcon } from '@/ds/icons/WorkflowIcon';\nimport { cn } from '@/lib/utils';\n\n// ---------------------------------------------------------------------------\n// NameCell\n// ---------------------------------------------------------------------------\n\nexport interface TracesDataListNameCellProps {\n name?: string | null;\n /** `null`/missing → root span (Trace). Set → nested span (Subtrace). Drives the leading level icon. */\n parentSpanId?: string | null;\n /** When true, the leading level icon is wrapped in a Trace/Subtrace tooltip. Off by default —\n * only meaningful in branches mode, where rows mix root traces and subtraces. */\n showLevelTooltip?: boolean;\n}\n\nexport function TracesDataListNameCell({ name, parentSpanId, showLevelTooltip }: TracesDataListNameCellProps) {\n const isRoot = parentSpanId == null;\n const Icon = isRoot ? ListTreeIcon : CornerDownRightIcon;\n const label = isRoot ? 'Trace' : 'Subtrace';\n const icon = (\n <span aria-label={label} className=\"inline-flex shrink-0\">\n <Icon className={cn('size-4 shrink-0', isRoot ? 'text-muted-foreground' : 'text-placeholder')} aria-hidden />\n </span>\n );\n return (\n <DataListCell className=\"flex min-w-0 items-center gap-2 text-body-sm text-muted-foreground\">\n {showLevelTooltip ? (\n <Tooltip>\n <TooltipTrigger asChild>{icon}</TooltipTrigger>\n <TooltipContent>{label}</TooltipContent>\n </Tooltip>\n ) : (\n icon\n )}\n <span className=\"min-w-0 truncate\">{name || '-'}</span>\n </DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// InputCell\n// ---------------------------------------------------------------------------\n\nexport interface TracesDataListInputCellProps {\n input?: string | null;\n}\n\nexport function TracesDataListInputCell({ input }: TracesDataListInputCellProps) {\n return <DataListTextCell font=\"mono\">{input || '-'}</DataListTextCell>;\n}\n\n// ---------------------------------------------------------------------------\n// TypeCell\n// ---------------------------------------------------------------------------\n\ntype EntityTypeDisplay = { label: string; Icon: ComponentType<SVGProps<SVGSVGElement>> };\n\n// Keys are lowercase `EntityType` enum values (plus legacy `workflow`).\nconst ENTITY_TYPE_DISPLAY: Record<string, EntityTypeDisplay> = {\n agent: { label: 'Agent', Icon: AgentIcon },\n workflow: { label: 'Workflow', Icon: WorkflowIcon },\n workflow_run: { label: 'Workflow', Icon: WorkflowIcon },\n workflow_step: { label: 'Step', Icon: WorkflowIcon },\n tool: { label: 'Tool', Icon: ToolsIcon },\n scorer: { label: 'Scorer', Icon: ScorersIcon },\n memory: { label: 'Memory', Icon: MemoryIcon },\n mcp_server: { label: 'MCP Server', Icon: McpServerIcon },\n input_processor: { label: 'Processor', Icon: ProcessorIcon },\n input_step_processor: { label: 'Processor', Icon: ProcessorIcon },\n output_processor: { label: 'Processor', Icon: ProcessorIcon },\n output_step_processor: { label: 'Processor', Icon: ProcessorIcon },\n tool_result_processor: { label: 'Processor', Icon: ProcessorIcon },\n rag_ingestion: { label: 'RAG', Icon: DatabaseIcon },\n trajectory: { label: 'Trajectory', Icon: RouteIcon },\n};\n\nexport interface TracesDataListTypeCellProps {\n entityType?: string | null;\n}\n\nexport function TracesDataListTypeCell({ entityType }: TracesDataListTypeCellProps) {\n const display = entityType ? ENTITY_TYPE_DISPLAY[entityType.toLowerCase()] : undefined;\n\n return (\n <DataListCell className=\"flex min-w-0 items-center gap-2\">\n {display ? (\n <>\n <display.Icon className=\"size-3.5 shrink-0 text-placeholder\" aria-hidden />\n <Txt as=\"span\" variant=\"body-sm\" className=\"min-w-0 truncate\">\n {display.label}\n </Txt>\n </>\n ) : (\n '-'\n )}\n </DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// StatusCell\n// ---------------------------------------------------------------------------\n\nconst UNSET_STATUS_CONFIG: { label: string; variant: BadgeVariant } = { label: '-', variant: 'neutral' };\n\nconst STATUS_CONFIG: Record<string, { label: string; variant: BadgeVariant }> = {\n completed: { label: 'OK', variant: 'success' },\n ok: { label: 'OK', variant: 'success' },\n success: { label: 'OK', variant: 'success' },\n error: { label: 'ERR', variant: 'destructive' },\n running: { label: 'RUN', variant: 'neutral' },\n unset: UNSET_STATUS_CONFIG,\n};\n\nexport interface TracesDataListStatusCellProps {\n status?: string | null;\n}\n\nexport function TracesDataListStatusCell({ status }: TracesDataListStatusCellProps) {\n const key = (status ?? 'unset').toLowerCase();\n const config = STATUS_CONFIG[key] ?? UNSET_STATUS_CONFIG;\n\n return (\n <DataListCell>\n <Badge size=\"xs\" variant={config.variant}>\n {config.label}\n </Badge>\n </DataListCell>\n );\n}\n","import type { ComponentProps } from 'react';\nimport { DataListCreatedCell, DataListIdCell } from '../data-list-cells';\nimport { DataListNextPageLoading } from '../data-list-next-page-loading';\nimport { DataListNoMatch } from '../data-list-no-match';\nimport { DataListRoot } from '../data-list-root';\nimport { DataListRowButton } from '../data-list-row-button';\nimport { DataListSortableTopCell } from '../data-list-sortable-top-cell';\nimport { DataListSpacer } from '../data-list-spacer';\nimport { DataListSubheader } from '../data-list-subheader';\nimport { DataListSubHeading } from '../data-list-subheading';\nimport { DataListTop } from '../data-list-top';\nimport { DataListTopCell, DataListTopCellWithTooltip } from '../data-list-top-cell';\nimport {\n TracesDataListNameCell,\n TracesDataListInputCell,\n TracesDataListTypeCell,\n TracesDataListStatusCell,\n} from './traces-data-list-cells';\n\n// oxlint-disable-next-line react/only-export-components -- compound component root, same pattern as ScoresDataList\n// eslint-disable-next-line react-refresh/only-export-components -- compound component root, same pattern as ScoresDataList\nfunction TracesDataListRoot(props: ComponentProps<typeof DataListRoot>) {\n return <DataListRoot {...props} />;\n}\n\nexport const TracesDataList = Object.assign(TracesDataListRoot, {\n Top: DataListTop,\n TopCell: DataListTopCell,\n SortableTopCell: DataListSortableTopCell,\n TopCellWithTooltip: DataListTopCellWithTooltip,\n RowButton: DataListRowButton,\n NoMatch: DataListNoMatch,\n Subheader: DataListSubheader,\n SubHeading: DataListSubHeading,\n Spacer: DataListSpacer,\n IdCell: DataListIdCell,\n CreatedCell: DataListCreatedCell,\n NameCell: TracesDataListNameCell,\n InputCell: TracesDataListInputCell,\n TypeCell: TracesDataListTypeCell,\n StatusCell: TracesDataListStatusCell,\n NextPageLoading: DataListNextPageLoading,\n});\n"],"names":[],"mappings":"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"}
@@ -1,7 +1,9 @@
1
1
  'use strict';
2
2
 
3
3
  const jsxRuntime = require('react/jsx-runtime');
4
- const dataList = require('./data-list-BLfHObw8.cjs');
4
+ const dataListTop = require('./data-list-top-DYnH-IhJ.cjs');
5
+ const dataListSpacer = require('./data-list-spacer-D9J0nV_S.cjs');
6
+ const dataList = require('./data-list-CaifGmFh.cjs');
5
7
  const lucideReact = require('lucide-react');
6
8
  const Badge = require('./Badge-BF6FbLH_.cjs');
7
9
  const tooltip = require('./tooltip-C4txPRSa.cjs');
@@ -20,7 +22,7 @@ function TracesDataListNameCell({ name, parentSpanId, showLevelTooltip }) {
20
22
  const Icon = isRoot ? lucideReact.ListTreeIcon : lucideReact.CornerDownRightIcon;
21
23
  const label = isRoot ? "Trace" : "Subtrace";
22
24
  const icon = /* @__PURE__ */ jsxRuntime.jsx("span", { "aria-label": label, className: "inline-flex shrink-0", children: /* @__PURE__ */ jsxRuntime.jsx(Icon, { className: utils_cn.cn("size-4 shrink-0", isRoot ? "text-muted-foreground" : "text-placeholder"), "aria-hidden": true }) });
23
- return /* @__PURE__ */ jsxRuntime.jsxs(dataList.DataListCell, { className: "flex min-w-0 items-center gap-2 text-body-sm text-muted-foreground", children: [
25
+ return /* @__PURE__ */ jsxRuntime.jsxs(dataListTop.DataListCell, { className: "flex min-w-0 items-center gap-2 text-body-sm text-muted-foreground", children: [
24
26
  showLevelTooltip ? /* @__PURE__ */ jsxRuntime.jsxs(tooltip.Tooltip, { children: [
25
27
  /* @__PURE__ */ jsxRuntime.jsx(tooltip.TooltipTrigger, { asChild: true, children: icon }),
26
28
  /* @__PURE__ */ jsxRuntime.jsx(tooltip.TooltipContent, { children: label })
@@ -29,7 +31,7 @@ function TracesDataListNameCell({ name, parentSpanId, showLevelTooltip }) {
29
31
  ] });
30
32
  }
31
33
  function TracesDataListInputCell({ input }) {
32
- return /* @__PURE__ */ jsxRuntime.jsx(dataList.DataListTextCell, { font: "mono", children: input || "-" });
34
+ return /* @__PURE__ */ jsxRuntime.jsx(dataListTop.DataListTextCell, { font: "mono", children: input || "-" });
33
35
  }
34
36
  const ENTITY_TYPE_DISPLAY = {
35
37
  agent: { label: "Agent", Icon: icons_AgentIcon.AgentIcon },
@@ -50,7 +52,7 @@ const ENTITY_TYPE_DISPLAY = {
50
52
  };
51
53
  function TracesDataListTypeCell({ entityType }) {
52
54
  const display = entityType ? ENTITY_TYPE_DISPLAY[entityType.toLowerCase()] : void 0;
53
- return /* @__PURE__ */ jsxRuntime.jsx(dataList.DataListCell, { className: "flex min-w-0 items-center gap-2", children: display ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
55
+ return /* @__PURE__ */ jsxRuntime.jsx(dataListTop.DataListCell, { className: "flex min-w-0 items-center gap-2", children: display ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
54
56
  /* @__PURE__ */ jsxRuntime.jsx(display.Icon, { className: "size-3.5 shrink-0 text-placeholder", "aria-hidden": true }),
55
57
  /* @__PURE__ */ jsxRuntime.jsx(Txt.Txt, { as: "span", variant: "body-sm", className: "min-w-0 truncate", children: display.label })
56
58
  ] }) : "-" });
@@ -67,30 +69,30 @@ const STATUS_CONFIG = {
67
69
  function TracesDataListStatusCell({ status }) {
68
70
  const key = (status ?? "unset").toLowerCase();
69
71
  const config = STATUS_CONFIG[key] ?? UNSET_STATUS_CONFIG;
70
- return /* @__PURE__ */ jsxRuntime.jsx(dataList.DataListCell, { children: /* @__PURE__ */ jsxRuntime.jsx(Badge.Badge, { size: "xs", variant: config.variant, children: config.label }) });
72
+ return /* @__PURE__ */ jsxRuntime.jsx(dataListTop.DataListCell, { children: /* @__PURE__ */ jsxRuntime.jsx(Badge.Badge, { size: "xs", variant: config.variant, children: config.label }) });
71
73
  }
72
74
 
73
75
  function TracesDataListRoot(props) {
74
- return /* @__PURE__ */ jsxRuntime.jsx(dataList.DataListRoot, { ...props });
76
+ return /* @__PURE__ */ jsxRuntime.jsx(dataListTop.DataListRoot, { ...props });
75
77
  }
76
78
  const TracesDataList = Object.assign(TracesDataListRoot, {
77
- Top: dataList.DataListTop,
78
- TopCell: dataList.DataListTopCell,
79
- SortableTopCell: dataList.DataListSortableTopCell,
80
- TopCellWithTooltip: dataList.DataListTopCellWithTooltip,
81
- RowButton: dataList.DataListRowButton,
82
- NoMatch: dataList.DataListNoMatch,
79
+ Top: dataListTop.DataListTop,
80
+ TopCell: dataListTop.DataListTopCell,
81
+ SortableTopCell: dataListSpacer.DataListSortableTopCell,
82
+ TopCellWithTooltip: dataListTop.DataListTopCellWithTooltip,
83
+ RowButton: dataListSpacer.DataListRowButton,
84
+ NoMatch: dataListSpacer.DataListNoMatch,
83
85
  Subheader: dataList.DataListSubheader,
84
86
  SubHeading: dataList.DataListSubHeading,
85
- Spacer: dataList.DataListSpacer,
86
- IdCell: dataList.DataListIdCell,
87
- CreatedCell: dataList.DataListCreatedCell,
87
+ Spacer: dataListSpacer.DataListSpacer,
88
+ IdCell: dataListTop.DataListIdCell,
89
+ CreatedCell: dataListTop.DataListCreatedCell,
88
90
  NameCell: TracesDataListNameCell,
89
91
  InputCell: TracesDataListInputCell,
90
92
  TypeCell: TracesDataListTypeCell,
91
93
  StatusCell: TracesDataListStatusCell,
92
- NextPageLoading: dataList.DataListNextPageLoading
94
+ NextPageLoading: dataListSpacer.DataListNextPageLoading
93
95
  });
94
96
 
95
97
  exports.TracesDataList = TracesDataList;
96
- //# sourceMappingURL=traces-data-list-BXSXW3E6.cjs.map
98
+ //# sourceMappingURL=traces-data-list-Dy-9AIr2.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"traces-data-list-BXSXW3E6.cjs","sources":["../src/ds/components/DataList/TracesDataList/traces-data-list-cells.tsx","../src/ds/components/DataList/TracesDataList/traces-data-list.tsx"],"sourcesContent":["import { CornerDownRightIcon, DatabaseIcon, ListTreeIcon, RouteIcon } from 'lucide-react';\nimport type { ComponentType, SVGProps } from 'react';\nimport { DataListCell, DataListTextCell } from '../data-list-cells';\nimport { Badge } from '@/ds/components/Badge';\nimport type { BadgeVariant } from '@/ds/components/Badge';\nimport { Tooltip, TooltipContent, TooltipTrigger } from '@/ds/components/Tooltip';\nimport { Txt } from '@/ds/components/Txt';\nimport { AgentIcon } from '@/ds/icons/AgentIcon';\nimport { McpServerIcon } from '@/ds/icons/McpServerIcon';\nimport { MemoryIcon } from '@/ds/icons/MemoryIcon';\nimport { ProcessorIcon } from '@/ds/icons/ProcessorIcon';\nimport { ScorersIcon } from '@/ds/icons/ScorersIcon';\nimport { ToolsIcon } from '@/ds/icons/ToolsIcon';\nimport { WorkflowIcon } from '@/ds/icons/WorkflowIcon';\nimport { cn } from '@/lib/utils';\n\n// ---------------------------------------------------------------------------\n// NameCell\n// ---------------------------------------------------------------------------\n\nexport interface TracesDataListNameCellProps {\n name?: string | null;\n /** `null`/missing → root span (Trace). Set → nested span (Subtrace). Drives the leading level icon. */\n parentSpanId?: string | null;\n /** When true, the leading level icon is wrapped in a Trace/Subtrace tooltip. Off by default —\n * only meaningful in branches mode, where rows mix root traces and subtraces. */\n showLevelTooltip?: boolean;\n}\n\nexport function TracesDataListNameCell({ name, parentSpanId, showLevelTooltip }: TracesDataListNameCellProps) {\n const isRoot = parentSpanId == null;\n const Icon = isRoot ? ListTreeIcon : CornerDownRightIcon;\n const label = isRoot ? 'Trace' : 'Subtrace';\n const icon = (\n <span aria-label={label} className=\"inline-flex shrink-0\">\n <Icon className={cn('size-4 shrink-0', isRoot ? 'text-muted-foreground' : 'text-placeholder')} aria-hidden />\n </span>\n );\n return (\n <DataListCell className=\"flex min-w-0 items-center gap-2 text-body-sm text-muted-foreground\">\n {showLevelTooltip ? (\n <Tooltip>\n <TooltipTrigger asChild>{icon}</TooltipTrigger>\n <TooltipContent>{label}</TooltipContent>\n </Tooltip>\n ) : (\n icon\n )}\n <span className=\"min-w-0 truncate\">{name || '-'}</span>\n </DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// InputCell\n// ---------------------------------------------------------------------------\n\nexport interface TracesDataListInputCellProps {\n input?: string | null;\n}\n\nexport function TracesDataListInputCell({ input }: TracesDataListInputCellProps) {\n return <DataListTextCell font=\"mono\">{input || '-'}</DataListTextCell>;\n}\n\n// ---------------------------------------------------------------------------\n// TypeCell\n// ---------------------------------------------------------------------------\n\ntype EntityTypeDisplay = { label: string; Icon: ComponentType<SVGProps<SVGSVGElement>> };\n\n// Keys are lowercase `EntityType` enum values (plus legacy `workflow`).\nconst ENTITY_TYPE_DISPLAY: Record<string, EntityTypeDisplay> = {\n agent: { label: 'Agent', Icon: AgentIcon },\n workflow: { label: 'Workflow', Icon: WorkflowIcon },\n workflow_run: { label: 'Workflow', Icon: WorkflowIcon },\n workflow_step: { label: 'Step', Icon: WorkflowIcon },\n tool: { label: 'Tool', Icon: ToolsIcon },\n scorer: { label: 'Scorer', Icon: ScorersIcon },\n memory: { label: 'Memory', Icon: MemoryIcon },\n mcp_server: { label: 'MCP Server', Icon: McpServerIcon },\n input_processor: { label: 'Processor', Icon: ProcessorIcon },\n input_step_processor: { label: 'Processor', Icon: ProcessorIcon },\n output_processor: { label: 'Processor', Icon: ProcessorIcon },\n output_step_processor: { label: 'Processor', Icon: ProcessorIcon },\n tool_result_processor: { label: 'Processor', Icon: ProcessorIcon },\n rag_ingestion: { label: 'RAG', Icon: DatabaseIcon },\n trajectory: { label: 'Trajectory', Icon: RouteIcon },\n};\n\nexport interface TracesDataListTypeCellProps {\n entityType?: string | null;\n}\n\nexport function TracesDataListTypeCell({ entityType }: TracesDataListTypeCellProps) {\n const display = entityType ? ENTITY_TYPE_DISPLAY[entityType.toLowerCase()] : undefined;\n\n return (\n <DataListCell className=\"flex min-w-0 items-center gap-2\">\n {display ? (\n <>\n <display.Icon className=\"size-3.5 shrink-0 text-placeholder\" aria-hidden />\n <Txt as=\"span\" variant=\"body-sm\" className=\"min-w-0 truncate\">\n {display.label}\n </Txt>\n </>\n ) : (\n '-'\n )}\n </DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// StatusCell\n// ---------------------------------------------------------------------------\n\nconst UNSET_STATUS_CONFIG: { label: string; variant: BadgeVariant } = { label: '-', variant: 'neutral' };\n\nconst STATUS_CONFIG: Record<string, { label: string; variant: BadgeVariant }> = {\n completed: { label: 'OK', variant: 'success' },\n ok: { label: 'OK', variant: 'success' },\n success: { label: 'OK', variant: 'success' },\n error: { label: 'ERR', variant: 'destructive' },\n running: { label: 'RUN', variant: 'neutral' },\n unset: UNSET_STATUS_CONFIG,\n};\n\nexport interface TracesDataListStatusCellProps {\n status?: string | null;\n}\n\nexport function TracesDataListStatusCell({ status }: TracesDataListStatusCellProps) {\n const key = (status ?? 'unset').toLowerCase();\n const config = STATUS_CONFIG[key] ?? UNSET_STATUS_CONFIG;\n\n return (\n <DataListCell>\n <Badge size=\"xs\" variant={config.variant}>\n {config.label}\n </Badge>\n </DataListCell>\n );\n}\n","import type { ComponentProps } from 'react';\nimport { DataListCreatedCell, DataListIdCell } from '../data-list-cells';\nimport { DataListNextPageLoading } from '../data-list-next-page-loading';\nimport { DataListNoMatch } from '../data-list-no-match';\nimport { DataListRoot } from '../data-list-root';\nimport { DataListRowButton } from '../data-list-row-button';\nimport { DataListSortableTopCell } from '../data-list-sortable-top-cell';\nimport { DataListSpacer } from '../data-list-spacer';\nimport { DataListSubheader } from '../data-list-subheader';\nimport { DataListSubHeading } from '../data-list-subheading';\nimport { DataListTop } from '../data-list-top';\nimport { DataListTopCell, DataListTopCellWithTooltip } from '../data-list-top-cell';\nimport {\n TracesDataListNameCell,\n TracesDataListInputCell,\n TracesDataListTypeCell,\n TracesDataListStatusCell,\n} from './traces-data-list-cells';\n\n// oxlint-disable-next-line react/only-export-components -- compound component root, same pattern as ScoresDataList\n// eslint-disable-next-line react-refresh/only-export-components -- compound component root, same pattern as ScoresDataList\nfunction TracesDataListRoot(props: ComponentProps<typeof DataListRoot>) {\n return <DataListRoot {...props} />;\n}\n\nexport const TracesDataList = Object.assign(TracesDataListRoot, {\n Top: DataListTop,\n TopCell: DataListTopCell,\n SortableTopCell: DataListSortableTopCell,\n TopCellWithTooltip: DataListTopCellWithTooltip,\n RowButton: DataListRowButton,\n NoMatch: DataListNoMatch,\n Subheader: DataListSubheader,\n SubHeading: DataListSubHeading,\n Spacer: DataListSpacer,\n IdCell: DataListIdCell,\n CreatedCell: DataListCreatedCell,\n NameCell: TracesDataListNameCell,\n InputCell: TracesDataListInputCell,\n TypeCell: TracesDataListTypeCell,\n StatusCell: TracesDataListStatusCell,\n NextPageLoading: DataListNextPageLoading,\n});\n"],"names":["ListTreeIcon","CornerDownRightIcon","jsx","cn","jsxs","DataListCell","Tooltip","TooltipTrigger","TooltipContent","DataListTextCell","AgentIcon","WorkflowIcon","ToolsIcon","ScorersIcon","MemoryIcon","McpServerIcon","ProcessorIcon","DatabaseIcon","RouteIcon","Fragment","Txt","Badge","DataListRoot","DataListTop","DataListTopCell","DataListSortableTopCell","DataListTopCellWithTooltip","DataListRowButton","DataListNoMatch","DataListSubheader","DataListSubHeading","DataListSpacer","DataListIdCell","DataListCreatedCell","DataListNextPageLoading"],"mappings":"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"}
1
+ {"version":3,"file":"traces-data-list-Dy-9AIr2.cjs","sources":["../src/ds/components/DataList/TracesDataList/traces-data-list-cells.tsx","../src/ds/components/DataList/TracesDataList/traces-data-list.tsx"],"sourcesContent":["import { CornerDownRightIcon, DatabaseIcon, ListTreeIcon, RouteIcon } from 'lucide-react';\nimport type { ComponentType, SVGProps } from 'react';\nimport { DataListCell, DataListTextCell } from '../data-list-cells';\nimport { Badge } from '@/ds/components/Badge';\nimport type { BadgeVariant } from '@/ds/components/Badge';\nimport { Tooltip, TooltipContent, TooltipTrigger } from '@/ds/components/Tooltip';\nimport { Txt } from '@/ds/components/Txt';\nimport { AgentIcon } from '@/ds/icons/AgentIcon';\nimport { McpServerIcon } from '@/ds/icons/McpServerIcon';\nimport { MemoryIcon } from '@/ds/icons/MemoryIcon';\nimport { ProcessorIcon } from '@/ds/icons/ProcessorIcon';\nimport { ScorersIcon } from '@/ds/icons/ScorersIcon';\nimport { ToolsIcon } from '@/ds/icons/ToolsIcon';\nimport { WorkflowIcon } from '@/ds/icons/WorkflowIcon';\nimport { cn } from '@/lib/utils';\n\n// ---------------------------------------------------------------------------\n// NameCell\n// ---------------------------------------------------------------------------\n\nexport interface TracesDataListNameCellProps {\n name?: string | null;\n /** `null`/missing → root span (Trace). Set → nested span (Subtrace). Drives the leading level icon. */\n parentSpanId?: string | null;\n /** When true, the leading level icon is wrapped in a Trace/Subtrace tooltip. Off by default —\n * only meaningful in branches mode, where rows mix root traces and subtraces. */\n showLevelTooltip?: boolean;\n}\n\nexport function TracesDataListNameCell({ name, parentSpanId, showLevelTooltip }: TracesDataListNameCellProps) {\n const isRoot = parentSpanId == null;\n const Icon = isRoot ? ListTreeIcon : CornerDownRightIcon;\n const label = isRoot ? 'Trace' : 'Subtrace';\n const icon = (\n <span aria-label={label} className=\"inline-flex shrink-0\">\n <Icon className={cn('size-4 shrink-0', isRoot ? 'text-muted-foreground' : 'text-placeholder')} aria-hidden />\n </span>\n );\n return (\n <DataListCell className=\"flex min-w-0 items-center gap-2 text-body-sm text-muted-foreground\">\n {showLevelTooltip ? (\n <Tooltip>\n <TooltipTrigger asChild>{icon}</TooltipTrigger>\n <TooltipContent>{label}</TooltipContent>\n </Tooltip>\n ) : (\n icon\n )}\n <span className=\"min-w-0 truncate\">{name || '-'}</span>\n </DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// InputCell\n// ---------------------------------------------------------------------------\n\nexport interface TracesDataListInputCellProps {\n input?: string | null;\n}\n\nexport function TracesDataListInputCell({ input }: TracesDataListInputCellProps) {\n return <DataListTextCell font=\"mono\">{input || '-'}</DataListTextCell>;\n}\n\n// ---------------------------------------------------------------------------\n// TypeCell\n// ---------------------------------------------------------------------------\n\ntype EntityTypeDisplay = { label: string; Icon: ComponentType<SVGProps<SVGSVGElement>> };\n\n// Keys are lowercase `EntityType` enum values (plus legacy `workflow`).\nconst ENTITY_TYPE_DISPLAY: Record<string, EntityTypeDisplay> = {\n agent: { label: 'Agent', Icon: AgentIcon },\n workflow: { label: 'Workflow', Icon: WorkflowIcon },\n workflow_run: { label: 'Workflow', Icon: WorkflowIcon },\n workflow_step: { label: 'Step', Icon: WorkflowIcon },\n tool: { label: 'Tool', Icon: ToolsIcon },\n scorer: { label: 'Scorer', Icon: ScorersIcon },\n memory: { label: 'Memory', Icon: MemoryIcon },\n mcp_server: { label: 'MCP Server', Icon: McpServerIcon },\n input_processor: { label: 'Processor', Icon: ProcessorIcon },\n input_step_processor: { label: 'Processor', Icon: ProcessorIcon },\n output_processor: { label: 'Processor', Icon: ProcessorIcon },\n output_step_processor: { label: 'Processor', Icon: ProcessorIcon },\n tool_result_processor: { label: 'Processor', Icon: ProcessorIcon },\n rag_ingestion: { label: 'RAG', Icon: DatabaseIcon },\n trajectory: { label: 'Trajectory', Icon: RouteIcon },\n};\n\nexport interface TracesDataListTypeCellProps {\n entityType?: string | null;\n}\n\nexport function TracesDataListTypeCell({ entityType }: TracesDataListTypeCellProps) {\n const display = entityType ? ENTITY_TYPE_DISPLAY[entityType.toLowerCase()] : undefined;\n\n return (\n <DataListCell className=\"flex min-w-0 items-center gap-2\">\n {display ? (\n <>\n <display.Icon className=\"size-3.5 shrink-0 text-placeholder\" aria-hidden />\n <Txt as=\"span\" variant=\"body-sm\" className=\"min-w-0 truncate\">\n {display.label}\n </Txt>\n </>\n ) : (\n '-'\n )}\n </DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// StatusCell\n// ---------------------------------------------------------------------------\n\nconst UNSET_STATUS_CONFIG: { label: string; variant: BadgeVariant } = { label: '-', variant: 'neutral' };\n\nconst STATUS_CONFIG: Record<string, { label: string; variant: BadgeVariant }> = {\n completed: { label: 'OK', variant: 'success' },\n ok: { label: 'OK', variant: 'success' },\n success: { label: 'OK', variant: 'success' },\n error: { label: 'ERR', variant: 'destructive' },\n running: { label: 'RUN', variant: 'neutral' },\n unset: UNSET_STATUS_CONFIG,\n};\n\nexport interface TracesDataListStatusCellProps {\n status?: string | null;\n}\n\nexport function TracesDataListStatusCell({ status }: TracesDataListStatusCellProps) {\n const key = (status ?? 'unset').toLowerCase();\n const config = STATUS_CONFIG[key] ?? UNSET_STATUS_CONFIG;\n\n return (\n <DataListCell>\n <Badge size=\"xs\" variant={config.variant}>\n {config.label}\n </Badge>\n </DataListCell>\n );\n}\n","import type { ComponentProps } from 'react';\nimport { DataListCreatedCell, DataListIdCell } from '../data-list-cells';\nimport { DataListNextPageLoading } from '../data-list-next-page-loading';\nimport { DataListNoMatch } from '../data-list-no-match';\nimport { DataListRoot } from '../data-list-root';\nimport { DataListRowButton } from '../data-list-row-button';\nimport { DataListSortableTopCell } from '../data-list-sortable-top-cell';\nimport { DataListSpacer } from '../data-list-spacer';\nimport { DataListSubheader } from '../data-list-subheader';\nimport { DataListSubHeading } from '../data-list-subheading';\nimport { DataListTop } from '../data-list-top';\nimport { DataListTopCell, DataListTopCellWithTooltip } from '../data-list-top-cell';\nimport {\n TracesDataListNameCell,\n TracesDataListInputCell,\n TracesDataListTypeCell,\n TracesDataListStatusCell,\n} from './traces-data-list-cells';\n\n// oxlint-disable-next-line react/only-export-components -- compound component root, same pattern as ScoresDataList\n// eslint-disable-next-line react-refresh/only-export-components -- compound component root, same pattern as ScoresDataList\nfunction TracesDataListRoot(props: ComponentProps<typeof DataListRoot>) {\n return <DataListRoot {...props} />;\n}\n\nexport const TracesDataList = Object.assign(TracesDataListRoot, {\n Top: DataListTop,\n TopCell: DataListTopCell,\n SortableTopCell: DataListSortableTopCell,\n TopCellWithTooltip: DataListTopCellWithTooltip,\n RowButton: DataListRowButton,\n NoMatch: DataListNoMatch,\n Subheader: DataListSubheader,\n SubHeading: DataListSubHeading,\n Spacer: DataListSpacer,\n IdCell: DataListIdCell,\n CreatedCell: DataListCreatedCell,\n NameCell: TracesDataListNameCell,\n InputCell: TracesDataListInputCell,\n TypeCell: TracesDataListTypeCell,\n StatusCell: TracesDataListStatusCell,\n NextPageLoading: DataListNextPageLoading,\n});\n"],"names":["ListTreeIcon","CornerDownRightIcon","jsx","cn","jsxs","DataListCell","Tooltip","TooltipTrigger","TooltipContent","DataListTextCell","AgentIcon","WorkflowIcon","ToolsIcon","ScorersIcon","MemoryIcon","McpServerIcon","ProcessorIcon","DatabaseIcon","RouteIcon","Fragment","Txt","Badge","DataListRoot","DataListTop","DataListTopCell","DataListSortableTopCell","DataListTopCellWithTooltip","DataListRowButton","DataListNoMatch","DataListSubheader","DataListSubHeading","DataListSpacer","DataListIdCell","DataListCreatedCell","DataListNextPageLoading"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
2
2
  import { useInternalNode, Position, getBezierPath, BaseEdge, EdgeLabelRenderer } from '@xyflow/react';
3
3
  import { useId } from 'react';
4
- import { W as WorkflowEdgeDataButton } from './workflow-edge-data-button-CXbj67U9.js';
4
+ import { W as WorkflowEdgeDataButton } from './workflow-edge-data-button-DvGFB2L6.js';
5
5
 
6
6
  function WorkflowDataEdgeView({ output, label, dataControl, ...props }) {
7
7
  const source = useInternalNode(props.source);
@@ -72,4 +72,4 @@ function WorkflowDataEdgeView({ output, label, dataControl, ...props }) {
72
72
  }
73
73
 
74
74
  export { WorkflowDataEdgeView as W };
75
- //# sourceMappingURL=workflow-data-edge-view-De0xCrVu.js.map
75
+ //# sourceMappingURL=workflow-data-edge-view-BWyUa9am.js.map