@mastra/playground-ui 60.0.0-alpha.9 → 60.0.0

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 (850) hide show
  1. package/README.md +21 -15
  2. package/dist/{Button-DbJn0bJX.cjs → Button-BnmR2HRc.cjs} +5 -1
  3. package/dist/Button-BnmR2HRc.cjs.map +1 -0
  4. package/dist/{Button-CHTvSq4d.js → Button-C6eUqcPI.js} +6 -2
  5. package/dist/Button-C6eUqcPI.js.map +1 -0
  6. package/dist/{Card-BbwF20OW.cjs → Card-BQsKHkyB.cjs} +5 -5
  7. package/dist/Card-BQsKHkyB.cjs.map +1 -0
  8. package/dist/{Card-DmT57Pve.js → Card-DVy0QS4m.js} +5 -5
  9. package/dist/Card-DVy0QS4m.js.map +1 -0
  10. package/dist/{ErrorBoundary-DDi5RBQv.js → ErrorBoundary-Bb2R5IMR.js} +2 -2
  11. package/dist/{ErrorBoundary-DDi5RBQv.js.map → ErrorBoundary-Bb2R5IMR.js.map} +1 -1
  12. package/dist/{ErrorBoundary-BRQxBc51.cjs → ErrorBoundary-CKrwONAU.cjs} +2 -2
  13. package/dist/{ErrorBoundary-BRQxBc51.cjs.map → ErrorBoundary-CKrwONAU.cjs.map} +1 -1
  14. package/dist/{Notice-JX9yuy6r.cjs → Notice-CEBwitdf.cjs} +2 -2
  15. package/dist/{Notice-JX9yuy6r.cjs.map → Notice-CEBwitdf.cjs.map} +1 -1
  16. package/dist/{Notice-b3XjkEVP.js → Notice-Ce3r5x-7.js} +2 -2
  17. package/dist/{Notice-b3XjkEVP.js.map → Notice-Ce3r5x-7.js.map} +1 -1
  18. package/dist/{activity-BYD9ugQK.cjs → activity-8egTNbaI.cjs} +2 -2
  19. package/dist/{activity-BYD9ugQK.cjs.map → activity-8egTNbaI.cjs.map} +1 -1
  20. package/dist/{activity-BnyR9d_6.js → activity-Duth8KP_.js} +2 -2
  21. package/dist/{activity-BnyR9d_6.js.map → activity-Duth8KP_.js.map} +1 -1
  22. package/dist/activity.css +3 -3
  23. package/dist/{alert-dialog-JQyJ-qjE.cjs → alert-dialog-BcOSIOSW.cjs} +3 -3
  24. package/dist/{alert-dialog-JQyJ-qjE.cjs.map → alert-dialog-BcOSIOSW.cjs.map} +1 -1
  25. package/dist/{alert-dialog-CAGfWxfv.js → alert-dialog-D1UYVW__.js} +3 -3
  26. package/dist/{alert-dialog-CAGfWxfv.js.map → alert-dialog-D1UYVW__.js.map} +1 -1
  27. package/dist/{ask-user-BSitQ3cU.js → ask-user-Crg1O-o6.js} +2 -2
  28. package/dist/{ask-user-BSitQ3cU.js.map → ask-user-Crg1O-o6.js.map} +1 -1
  29. package/dist/{ask-user-C8PIlzDe.cjs → ask-user-DJXmLJzy.cjs} +2 -2
  30. package/dist/{ask-user-C8PIlzDe.cjs.map → ask-user-DJXmLJzy.cjs.map} +1 -1
  31. package/dist/buttons-group.css +4 -14
  32. package/dist/{code-block-FI2Y_vRg.cjs → code-block-C7A4Hv96.cjs} +5 -5
  33. package/dist/{code-block-FI2Y_vRg.cjs.map → code-block-C7A4Hv96.cjs.map} +1 -1
  34. package/dist/{code-block-D1_YjIGG.js → code-block-C_pvalBv.js} +5 -5
  35. package/dist/{code-block-D1_YjIGG.js.map → code-block-C_pvalBv.js.map} +1 -1
  36. package/dist/{code-editor-8l_YoqYu.cjs → code-editor-BXchPl_F.cjs} +3 -3
  37. package/dist/code-editor-BXchPl_F.cjs.map +1 -0
  38. package/dist/{code-editor-m5ktiTwB.js → code-editor-Cltwid7c.js} +3 -3
  39. package/dist/code-editor-Cltwid7c.js.map +1 -0
  40. package/dist/{collapsible-DhhP5p1j.js → collapsible-BNUn4644.js} +2 -2
  41. package/dist/collapsible-BNUn4644.js.map +1 -0
  42. package/dist/{collapsible-BFSJouuI.cjs → collapsible-jfzzU7Gp.cjs} +2 -2
  43. package/dist/collapsible-jfzzU7Gp.cjs.map +1 -0
  44. package/dist/{combobox-DDvFeXkN.js → combobox-B_C0cNid.js} +4 -4
  45. package/dist/{combobox-DDvFeXkN.js.map → combobox-B_C0cNid.js.map} +1 -1
  46. package/dist/{combobox-Dm1hKirJ.cjs → combobox-rKV-Lksj.cjs} +4 -4
  47. package/dist/{combobox-Dm1hKirJ.cjs.map → combobox-rKV-Lksj.cjs.map} +1 -1
  48. package/dist/{combobox-styles-B0qifmU6.cjs → combobox-styles-C4Kq1NFV.cjs} +2 -2
  49. package/dist/{combobox-styles-B0qifmU6.cjs.map → combobox-styles-C4Kq1NFV.cjs.map} +1 -1
  50. package/dist/{combobox-styles-VF_qaHQZ.js → combobox-styles-CLxC7VLA.js} +2 -2
  51. package/dist/{combobox-styles-VF_qaHQZ.js.map → combobox-styles-CLxC7VLA.js.map} +1 -1
  52. package/dist/{command-DxGz6-Jx.js → command-C6JnofUJ.js} +3 -3
  53. package/dist/{command-DxGz6-Jx.js.map → command-C6JnofUJ.js.map} +1 -1
  54. package/dist/{command-B4ue1PCR.cjs → command-CpXMoss8.cjs} +3 -3
  55. package/dist/{command-B4ue1PCR.cjs.map → command-CpXMoss8.cjs.map} +1 -1
  56. package/dist/components/AlertDialog.cjs.js +1 -1
  57. package/dist/components/AlertDialog.es.js +1 -1
  58. package/dist/components/Button.cjs.js +1 -1
  59. package/dist/components/Button.es.js +2 -2
  60. package/dist/components/Card.cjs.js +1 -1
  61. package/dist/components/Card.es.js +1 -1
  62. package/dist/components/ClampedText.cjs.js +1 -1
  63. package/dist/components/ClampedText.es.js +1 -1
  64. package/dist/components/CodeBlock.cjs.js +1 -1
  65. package/dist/components/CodeBlock.es.js +1 -1
  66. package/dist/components/CodeEditor.cjs.js +1 -1
  67. package/dist/components/CodeEditor.es.js +1 -1
  68. package/dist/components/Collapsible.cjs.js +1 -1
  69. package/dist/components/Collapsible.es.js +1 -1
  70. package/dist/components/Combobox.cjs.js +2 -2
  71. package/dist/components/Combobox.es.js +2 -2
  72. package/dist/components/Command.cjs.js +1 -1
  73. package/dist/components/Command.es.js +1 -1
  74. package/dist/components/CommandPalette.cjs.js +2 -2
  75. package/dist/components/CommandPalette.es.js +2 -2
  76. package/dist/components/Comment.cjs.js +2 -2
  77. package/dist/components/Comment.es.js +2 -2
  78. package/dist/components/Composer.cjs.js +2 -2
  79. package/dist/components/Composer.es.js +2 -2
  80. package/dist/components/CopyButton.cjs.js +1 -1
  81. package/dist/components/CopyButton.es.js +1 -1
  82. package/dist/components/DataCodeSection.cjs.js +1 -1
  83. package/dist/components/DataCodeSection.es.js +1 -1
  84. package/dist/components/DataDetailsPanel.cjs.js +2 -2
  85. package/dist/components/DataDetailsPanel.es.js +2 -2
  86. package/dist/components/DataList.cjs.js +5 -5
  87. package/dist/components/DataList.es.js +5 -5
  88. package/dist/components/DataPanel.cjs.js +1 -1
  89. package/dist/components/DataPanel.es.js +1 -1
  90. package/dist/components/DateRangeTimeline.cjs.js +5 -3
  91. package/dist/components/DateRangeTimeline.cjs.js.map +1 -1
  92. package/dist/components/DateRangeTimeline.es.js +5 -3
  93. package/dist/components/DateRangeTimeline.es.js.map +1 -1
  94. package/dist/components/DateTimePicker.cjs.js +2 -2
  95. package/dist/components/DateTimePicker.es.js +2 -2
  96. package/dist/components/DateTimeRangePicker.cjs.js +1 -1
  97. package/dist/components/DateTimeRangePicker.es.js +1 -1
  98. package/dist/components/Dialog.cjs.js +2 -2
  99. package/dist/components/Dialog.es.js +2 -2
  100. package/dist/components/DisabledFeatureButton.cjs.js +1 -1
  101. package/dist/components/DisabledFeatureButton.es.js +1 -1
  102. package/dist/components/Drawer.cjs.js +1 -1
  103. package/dist/components/Drawer.es.js +1 -1
  104. package/dist/components/EnvironmentVariablesEditor.cjs.js +4 -4
  105. package/dist/components/EnvironmentVariablesEditor.es.js +4 -4
  106. package/dist/components/ErrorBoundary.cjs.js +1 -1
  107. package/dist/components/ErrorBoundary.es.js +1 -1
  108. package/dist/components/FilterBar.cjs.js +3 -3
  109. package/dist/components/FilterBar.es.js +4 -4
  110. package/dist/components/FormFieldBlocks.cjs.js +2 -2
  111. package/dist/components/FormFieldBlocks.es.js +2 -2
  112. package/dist/components/HorizontalBars.cjs.js +1 -1
  113. package/dist/components/HorizontalBars.es.js +1 -1
  114. package/dist/components/InputGroup.cjs.js +1 -1
  115. package/dist/components/InputGroup.es.js +1 -1
  116. package/dist/components/JSONSchemaForm.cjs.js +2 -2
  117. package/dist/components/JSONSchemaForm.es.js +2 -2
  118. package/dist/components/ListSearch.cjs.js +1 -1
  119. package/dist/components/ListSearch.es.js +1 -1
  120. package/dist/components/LogsDataList.cjs.js +2 -4
  121. package/dist/components/LogsDataList.cjs.js.map +1 -1
  122. package/dist/components/LogsDataList.es.js +2 -4
  123. package/dist/components/LogsDataList.es.js.map +1 -1
  124. package/dist/components/MainSidebar.cjs.js +1 -1
  125. package/dist/components/MainSidebar.es.js +2 -2
  126. package/dist/components/MarkdownRenderer.cjs.js +1 -1
  127. package/dist/components/MarkdownRenderer.es.js +1 -1
  128. package/dist/components/Message.cjs.js +1 -1
  129. package/dist/components/Message.es.js +1 -1
  130. package/dist/components/MetricsCard.cjs.js +1 -1
  131. package/dist/components/MetricsCard.es.js +1 -1
  132. package/dist/components/MetricsKpiCard.cjs.js +1 -1
  133. package/dist/components/MetricsKpiCard.es.js +1 -1
  134. package/dist/components/Notice.cjs.js +1 -1
  135. package/dist/components/Notice.es.js +1 -1
  136. package/dist/components/PrevNextNav.cjs.js +1 -1
  137. package/dist/components/PrevNextNav.es.js +1 -1
  138. package/dist/components/PropertyFilter.cjs.js +3 -3
  139. package/dist/components/PropertyFilter.es.js +4 -4
  140. package/dist/components/RelativeTimestamp.cjs.js +1 -1
  141. package/dist/components/RelativeTimestamp.es.js +1 -1
  142. package/dist/components/RuleBuilder.cjs.js +2 -2
  143. package/dist/components/RuleBuilder.es.js +2 -2
  144. package/dist/components/ScrollArea.cjs.js +1 -1
  145. package/dist/components/ScrollArea.es.js +1 -1
  146. package/dist/components/SectionCard.cjs.js +1 -12
  147. package/dist/components/SectionCard.cjs.js.map +1 -1
  148. package/dist/components/SectionCard.es.js +1 -12
  149. package/dist/components/SectionCard.es.js.map +1 -1
  150. package/dist/components/Select.cjs.js +1 -1
  151. package/dist/components/Select.es.js +1 -1
  152. package/dist/components/SideDialog.cjs.js +1 -1
  153. package/dist/components/SideDialog.es.js +1 -1
  154. package/dist/components/Slider.cjs.js +1 -1
  155. package/dist/components/Slider.es.js +1 -1
  156. package/dist/components/StatusIndicators.cjs.js +6 -18
  157. package/dist/components/StatusIndicators.cjs.js.map +1 -1
  158. package/dist/components/StatusIndicators.es.js +6 -18
  159. package/dist/components/StatusIndicators.es.js.map +1 -1
  160. package/dist/components/Switch.cjs.js +1 -1
  161. package/dist/components/Switch.es.js +1 -1
  162. package/dist/components/Table.cjs.js +3 -2
  163. package/dist/components/Table.cjs.js.map +1 -1
  164. package/dist/components/Table.es.js +3 -2
  165. package/dist/components/Table.es.js.map +1 -1
  166. package/dist/components/Tabs.cjs.js +3 -3
  167. package/dist/components/Tabs.es.js +3 -3
  168. package/dist/components/ThreadList.cjs.js +1 -1
  169. package/dist/components/ThreadList.es.js +1 -1
  170. package/dist/components/ThreadRail.cjs.js +3 -2
  171. package/dist/components/ThreadRail.cjs.js.map +1 -1
  172. package/dist/components/ThreadRail.es.js +3 -2
  173. package/dist/components/ThreadRail.es.js.map +1 -1
  174. package/dist/components/Tree.cjs.js +2 -2
  175. package/dist/components/Tree.cjs.js.map +1 -1
  176. package/dist/components/Tree.es.js +2 -2
  177. package/dist/components/Tree.es.js.map +1 -1
  178. package/dist/components/Truncate.cjs.js +1 -1
  179. package/dist/components/Truncate.es.js +1 -1
  180. package/dist/components/Workflow.cjs.js +6 -6
  181. package/dist/components/Workflow.es.js +6 -6
  182. package/dist/components/ai/activity.cjs.js +4 -4
  183. package/dist/components/ai/activity.es.js +4 -4
  184. package/dist/components/ai/ask-user.cjs.js +1 -1
  185. package/dist/components/ai/ask-user.es.js +1 -1
  186. package/dist/components/ai/plan.cjs.js +1 -1
  187. package/dist/components/ai/plan.es.js +1 -1
  188. package/dist/components/ai/task-list.cjs.js +2 -2
  189. package/dist/components/ai/task-list.cjs.js.map +1 -1
  190. package/dist/components/ai/task-list.es.js +2 -2
  191. package/dist/components/ai/task-list.es.js.map +1 -1
  192. package/dist/components/ai/tool-approval.cjs.js +1 -1
  193. package/dist/components/ai/tool-approval.es.js +1 -1
  194. package/dist/components/ai/tool-call.cjs.js +4 -4
  195. package/dist/components/ai/tool-call.es.js +4 -4
  196. package/dist/{composer-D7ZOLVUX.cjs → composer-DyoM0j2m.cjs} +2 -2
  197. package/dist/{composer-D7ZOLVUX.cjs.map → composer-DyoM0j2m.cjs.map} +1 -1
  198. package/dist/{composer-a6qwEQIs.js → composer-eMyX1lBH.js} +2 -2
  199. package/dist/{composer-a6qwEQIs.js.map → composer-eMyX1lBH.js.map} +1 -1
  200. package/dist/composer.css +2 -2
  201. package/dist/{copy-button-89AmY5FU.cjs → copy-button-C6nXDjBz.cjs} +2 -2
  202. package/dist/{copy-button-89AmY5FU.cjs.map → copy-button-C6nXDjBz.cjs.map} +1 -1
  203. package/dist/{copy-button-rs9SJnvF.js → copy-button-DbmsTUum.js} +2 -2
  204. package/dist/{copy-button-rs9SJnvF.js.map → copy-button-DbmsTUum.js.map} +1 -1
  205. package/dist/{data-code-section-D01ggJy6.js → data-code-section-Bd2Xnckz.js} +6 -6
  206. package/dist/data-code-section-Bd2Xnckz.js.map +1 -0
  207. package/dist/{data-code-section-W_dIahDO.cjs → data-code-section-D5b6_jcB.cjs} +6 -6
  208. package/dist/data-code-section-D5b6_jcB.cjs.map +1 -0
  209. package/dist/{data-list-jJGA9T9_.cjs → data-list-D8bACyyK.cjs} +4 -4
  210. package/dist/{data-list-jJGA9T9_.cjs.map → data-list-D8bACyyK.cjs.map} +1 -1
  211. package/dist/{data-list-cF2lpf-v.js → data-list-DL_oFE4j.js} +4 -4
  212. package/dist/{data-list-cF2lpf-v.js.map → data-list-DL_oFE4j.js.map} +1 -1
  213. package/dist/{data-list-skeleton-DtU1wRbx.cjs → data-list-skeleton-BXPfL0s7.cjs} +2 -2
  214. package/dist/{data-list-skeleton-DtU1wRbx.cjs.map → data-list-skeleton-BXPfL0s7.cjs.map} +1 -1
  215. package/dist/{data-list-skeleton-BiWUa3JR.js → data-list-skeleton-Bk9LI0J0.js} +2 -2
  216. package/dist/{data-list-skeleton-BiWUa3JR.js.map → data-list-skeleton-Bk9LI0J0.js.map} +1 -1
  217. package/dist/{data-list-spacer-Cukij8de.js → data-list-spacer-CE6-4ZQq.js} +5 -4
  218. package/dist/data-list-spacer-CE6-4ZQq.js.map +1 -0
  219. package/dist/{data-list-spacer-D8zpJS7Z.cjs → data-list-spacer-_bFe0e2u.cjs} +5 -4
  220. package/dist/data-list-spacer-_bFe0e2u.cjs.map +1 -0
  221. package/dist/{data-list-top-KKXNLoP6.cjs → data-list-top-C-pLBax7.cjs} +4 -3
  222. package/dist/data-list-top-C-pLBax7.cjs.map +1 -0
  223. package/dist/{data-list-top-G11bdV77.js → data-list-top-DheFgb0M.js} +4 -3
  224. package/dist/data-list-top-DheFgb0M.js.map +1 -0
  225. package/dist/{data-panel-9GDF8Wx1.js → data-panel-42fdcagQ.js} +3 -3
  226. package/dist/{data-panel-9GDF8Wx1.js.map → data-panel-42fdcagQ.js.map} +1 -1
  227. package/dist/{data-panel-C4JszAuX.cjs → data-panel-CjvoI_lx.cjs} +3 -3
  228. package/dist/{data-panel-C4JszAuX.cjs.map → data-panel-CjvoI_lx.cjs.map} +1 -1
  229. package/dist/{date-time-range-picker-CmqD5SE4.cjs → date-time-range-picker-BORAuIJM.cjs} +3 -3
  230. package/dist/{date-time-range-picker-CmqD5SE4.cjs.map → date-time-range-picker-BORAuIJM.cjs.map} +1 -1
  231. package/dist/{date-time-range-picker-DZ-jZE2-.js → date-time-range-picker-C-pSI1u1.js} +3 -3
  232. package/dist/{date-time-range-picker-DZ-jZE2-.js.map → date-time-range-picker-C-pSI1u1.js.map} +1 -1
  233. package/dist/{dialog-4KIPO71S.cjs → dialog-DYpOpj9s.cjs} +3 -3
  234. package/dist/{dialog-4KIPO71S.cjs.map → dialog-DYpOpj9s.cjs.map} +1 -1
  235. package/dist/{dialog-action-C6yPBO21.cjs → dialog-action-B3AHq7mU.cjs} +3 -3
  236. package/dist/{dialog-action-C6yPBO21.cjs.map → dialog-action-B3AHq7mU.cjs.map} +1 -1
  237. package/dist/{dialog-action-DzTAl6AJ.js → dialog-action-BGmDoI5T.js} +3 -3
  238. package/dist/{dialog-action-DzTAl6AJ.js.map → dialog-action-BGmDoI5T.js.map} +1 -1
  239. package/dist/{dialog-DjXC42Zn.js → dialog-cKzR2TXI.js} +3 -3
  240. package/dist/{dialog-DjXC42Zn.js.map → dialog-cKzR2TXI.js.map} +1 -1
  241. package/dist/domains/auth/components/session-expired.cjs.js +1 -1
  242. package/dist/domains/auth/components/session-expired.es.js +1 -1
  243. package/dist/domains/chat/attachments/attachment-preview-dialog.cjs.js +2 -2
  244. package/dist/domains/chat/attachments/attachment-preview-dialog.es.js +2 -2
  245. package/dist/domains/chat/attachments/composer-attachment-list.cjs.js +1 -1
  246. package/dist/domains/chat/attachments/composer-attachment-list.es.js +1 -1
  247. package/dist/domains/chat/attachments/composer-attachment.cjs.js +1 -1
  248. package/dist/domains/chat/attachments/composer-attachment.es.js +1 -1
  249. package/dist/domains/chat/components/badge-wrapper.cjs.js +1 -1
  250. package/dist/domains/chat/components/badge-wrapper.es.js +1 -1
  251. package/dist/domains/chat/components/network-choice-metadata-dialog.cjs.js +3 -3
  252. package/dist/domains/chat/components/network-choice-metadata-dialog.es.js +3 -3
  253. package/dist/domains/chat/messages/assistant-message-actions.cjs.js +2 -2
  254. package/dist/domains/chat/messages/assistant-message-actions.es.js +2 -2
  255. package/dist/domains/chat/messages/dataset-save-action.cjs.js +5 -5
  256. package/dist/domains/chat/messages/dataset-save-action.es.js +5 -5
  257. package/dist/domains/chat/messages/message-row.cjs.js +22 -5
  258. package/dist/domains/chat/messages/message-row.cjs.js.map +1 -1
  259. package/dist/domains/chat/messages/message-row.es.js +22 -5
  260. package/dist/domains/chat/messages/message-row.es.js.map +1 -1
  261. package/dist/domains/chat/messages/notification-signal-notice.cjs.js +1 -1
  262. package/dist/domains/chat/messages/notification-signal-notice.es.js +1 -1
  263. package/dist/domains/chat/messages/renderers/message-text.cjs.js +2 -2
  264. package/dist/domains/chat/messages/renderers/message-text.es.js +2 -2
  265. package/dist/domains/chat/messages/renderers/reasoning-part-renderer.cjs.js +1 -1
  266. package/dist/domains/chat/messages/renderers/reasoning-part-renderer.es.js +1 -1
  267. package/dist/domains/chat/messages/renderers/status-renderers.cjs.js +1 -1
  268. package/dist/domains/chat/messages/renderers/status-renderers.es.js +1 -1
  269. package/dist/domains/chat/messages/renderers/user-text-part-renderer.cjs.js +6 -0
  270. package/dist/domains/chat/messages/renderers/user-text-part-renderer.cjs.js.map +1 -1
  271. package/dist/domains/chat/messages/renderers/user-text-part-renderer.es.js +6 -0
  272. package/dist/domains/chat/messages/renderers/user-text-part-renderer.es.js.map +1 -1
  273. package/dist/domains/chat/messages/signal-badge.cjs.js +1 -1
  274. package/dist/domains/chat/messages/signal-badge.es.js +1 -1
  275. package/dist/domains/chat/messages/skill-activation.cjs.js +29 -0
  276. package/dist/domains/chat/messages/skill-activation.cjs.js.map +1 -0
  277. package/dist/domains/chat/messages/skill-activation.d.ts +2 -0
  278. package/dist/domains/chat/messages/skill-activation.es.js +25 -0
  279. package/dist/domains/chat/messages/skill-activation.es.js.map +1 -0
  280. package/dist/domains/chat/messages/skill-message.cjs.js +33 -0
  281. package/dist/domains/chat/messages/skill-message.cjs.js.map +1 -0
  282. package/dist/domains/chat/messages/skill-message.d.ts +2 -0
  283. package/dist/domains/chat/messages/skill-message.es.js +29 -0
  284. package/dist/domains/chat/messages/skill-message.es.js.map +1 -0
  285. package/dist/domains/chat/messages/system-reminder-badge.cjs.js +1 -1
  286. package/dist/domains/chat/messages/system-reminder-badge.es.js +1 -1
  287. package/dist/domains/chat/messages/tripwire-notice.cjs.js +1 -1
  288. package/dist/domains/chat/messages/tripwire-notice.es.js +1 -1
  289. package/dist/domains/chat/tools/badges/agent-badge-wrapper.cjs.js +1 -1
  290. package/dist/domains/chat/tools/badges/agent-badge-wrapper.es.js +1 -1
  291. package/dist/domains/chat/tools/badges/agent-badge.cjs.js +4 -4
  292. package/dist/domains/chat/tools/badges/agent-badge.es.js +4 -4
  293. package/dist/domains/chat/tools/badges/ask-user-badge.cjs.js +1 -1
  294. package/dist/domains/chat/tools/badges/ask-user-badge.es.js +1 -1
  295. package/dist/domains/chat/tools/badges/background-task-metadata-dialog.cjs.js +3 -3
  296. package/dist/domains/chat/tools/badges/background-task-metadata-dialog.es.js +3 -3
  297. package/dist/domains/chat/tools/badges/code-mode-badge.cjs.js +2 -2
  298. package/dist/domains/chat/tools/badges/code-mode-badge.es.js +2 -2
  299. package/dist/domains/chat/tools/badges/file-tree-badge.cjs.js +3 -3
  300. package/dist/domains/chat/tools/badges/file-tree-badge.es.js +3 -3
  301. package/dist/domains/chat/tools/badges/observation-marker-badge.cjs.js +2 -2
  302. package/dist/domains/chat/tools/badges/observation-marker-badge.es.js +2 -2
  303. package/dist/domains/chat/tools/badges/observation-marker-details.cjs.js +2 -2
  304. package/dist/domains/chat/tools/badges/observation-marker-details.es.js +2 -2
  305. package/dist/domains/chat/tools/badges/observation-renderer.cjs.js +1 -1
  306. package/dist/domains/chat/tools/badges/observation-renderer.es.js +1 -1
  307. package/dist/domains/chat/tools/badges/sandbox-execution-badge.cjs.js +2 -2
  308. package/dist/domains/chat/tools/badges/sandbox-execution-badge.es.js +2 -2
  309. package/dist/domains/chat/tools/badges/tool-approval-buttons.cjs.js +1 -1
  310. package/dist/domains/chat/tools/badges/tool-approval-buttons.es.js +1 -1
  311. package/dist/domains/chat/tools/badges/tool-badge.cjs.js +4 -4
  312. package/dist/domains/chat/tools/badges/tool-badge.es.js +4 -4
  313. package/dist/domains/chat/tools/badges/workflow-badge.cjs.js +3 -4
  314. package/dist/domains/chat/tools/badges/workflow-badge.cjs.js.map +1 -1
  315. package/dist/domains/chat/tools/badges/workflow-badge.es.js +3 -4
  316. package/dist/domains/chat/tools/badges/workflow-badge.es.js.map +1 -1
  317. package/dist/domains/chat/tools/submit-plan-tool.cjs.js +2 -2
  318. package/dist/domains/chat/tools/submit-plan-tool.es.js +2 -2
  319. package/dist/domains/chat/tools/tool-card.cjs.js +1 -1
  320. package/dist/domains/chat/tools/tool-card.es.js +1 -1
  321. package/dist/domains/datasets/components/save-as-dataset-item-dialog.cjs.js +4 -4
  322. package/dist/domains/datasets/components/save-as-dataset-item-dialog.es.js +4 -4
  323. package/dist/domains/logs/components/log-data-panel.cjs.js +3 -3
  324. package/dist/domains/logs/components/log-data-panel.es.js +3 -3
  325. package/dist/domains/logs/components/logs-list-view.cjs.js +2 -2
  326. package/dist/domains/logs/components/logs-list-view.es.js +2 -2
  327. package/dist/domains/logs/components/logs-toolbar.cjs.js +1 -1
  328. package/dist/domains/logs/components/logs-toolbar.es.js +1 -1
  329. package/dist/domains/logs/components/no-logs-info.cjs.js +1 -1
  330. package/dist/domains/logs/components/no-logs-info.es.js +1 -1
  331. package/dist/domains/memory/components/flame-graph.cjs.js +1 -1
  332. package/dist/domains/memory/components/flame-graph.es.js +1 -1
  333. package/dist/domains/memory/components/memory-studio-panel.cjs.js +1 -1
  334. package/dist/domains/memory/components/memory-studio-panel.es.js +1 -1
  335. package/dist/domains/memory/components/observation-detail-view.cjs.js +1 -1
  336. package/dist/domains/memory/components/observation-detail-view.cjs.js.map +1 -1
  337. package/dist/domains/memory/components/observation-detail-view.es.js +1 -1
  338. package/dist/domains/memory/components/observation-detail-view.es.js.map +1 -1
  339. package/dist/domains/metrics/components/card-action-buttons.cjs.js +1 -1
  340. package/dist/domains/metrics/components/card-action-buttons.es.js +1 -1
  341. package/dist/domains/metrics/components/date-range-selector.cjs.js +1 -1
  342. package/dist/domains/metrics/components/date-range-selector.es.js +1 -1
  343. package/dist/domains/metrics/components/kpi-card-view.cjs.js +1 -1
  344. package/dist/domains/metrics/components/kpi-card-view.es.js +1 -1
  345. package/dist/domains/metrics/components/latency-card-view.cjs.js +4 -4
  346. package/dist/domains/metrics/components/latency-card-view.es.js +4 -4
  347. package/dist/domains/metrics/components/memory-card-view.cjs.js +5 -5
  348. package/dist/domains/metrics/components/memory-card-view.es.js +5 -5
  349. package/dist/domains/metrics/components/model-usage-cost-card-view.cjs.js +2 -2
  350. package/dist/domains/metrics/components/model-usage-cost-card-view.es.js +2 -2
  351. package/dist/domains/metrics/components/scores-card-view.cjs.js +5 -5
  352. package/dist/domains/metrics/components/scores-card-view.es.js +5 -5
  353. package/dist/domains/metrics/components/token-usage-by-agent-card-view.cjs.js +5 -5
  354. package/dist/domains/metrics/components/token-usage-by-agent-card-view.es.js +5 -5
  355. package/dist/domains/metrics/components/token-usage-timeline-card-view.cjs.js +4 -4
  356. package/dist/domains/metrics/components/token-usage-timeline-card-view.es.js +4 -4
  357. package/dist/domains/metrics/components/traces-volume-card-view.cjs.js +5 -5
  358. package/dist/domains/metrics/components/traces-volume-card-view.es.js +5 -5
  359. package/dist/domains/observability/components/add-trace-mocks-to-item-dialog.cjs.js +4 -4
  360. package/dist/domains/observability/components/add-trace-mocks-to-item-dialog.es.js +4 -4
  361. package/dist/domains/request-context/components/request-context-label.cjs.js +1 -5
  362. package/dist/domains/request-context/components/request-context-label.cjs.js.map +1 -1
  363. package/dist/domains/request-context/components/request-context-label.es.js +2 -6
  364. package/dist/domains/request-context/components/request-context-label.es.js.map +1 -1
  365. package/dist/domains/scores/components/score-data-panel.cjs.js +2 -2
  366. package/dist/domains/scores/components/score-data-panel.es.js +2 -2
  367. package/dist/domains/scores/components/span-scoring.cjs.js +4 -4
  368. package/dist/domains/scores/components/span-scoring.es.js +4 -4
  369. package/dist/domains/scores/components/trace-scores-tab.cjs.js +3 -4
  370. package/dist/domains/scores/components/trace-scores-tab.cjs.js.map +1 -1
  371. package/dist/domains/scores/components/trace-scores-tab.es.js +3 -4
  372. package/dist/domains/scores/components/trace-scores-tab.es.js.map +1 -1
  373. package/dist/domains/traces/components/feedback-thread.cjs.js +3 -3
  374. package/dist/domains/traces/components/feedback-thread.es.js +3 -3
  375. package/dist/domains/traces/components/span-data-panel-view.cjs.js +6 -6
  376. package/dist/domains/traces/components/span-data-panel-view.es.js +6 -6
  377. package/dist/domains/traces/components/span-details-view.cjs.js +1 -1
  378. package/dist/domains/traces/components/span-details-view.es.js +1 -1
  379. package/dist/domains/traces/components/span-payload/span-error-renderer.cjs.js +2 -2
  380. package/dist/domains/traces/components/span-payload/span-error-renderer.es.js +2 -2
  381. package/dist/domains/traces/components/span-payload/span-input-renderers.cjs.js +2 -2
  382. package/dist/domains/traces/components/span-payload/span-input-renderers.es.js +2 -2
  383. package/dist/domains/traces/components/span-payload/span-output-renderers.cjs.js +4 -4
  384. package/dist/domains/traces/components/span-payload/span-output-renderers.es.js +4 -4
  385. package/dist/domains/traces/components/span-payload/span-payload-messages.cjs.js +2 -2
  386. package/dist/domains/traces/components/span-payload/span-payload-messages.es.js +2 -2
  387. package/dist/domains/traces/components/span-payload/span-payload-primitives.cjs.js +3 -3
  388. package/dist/domains/traces/components/span-payload/span-payload-primitives.es.js +3 -3
  389. package/dist/domains/traces/components/span-payload/span-payload-processor.cjs.js +1 -1
  390. package/dist/domains/traces/components/span-payload/span-payload-processor.es.js +1 -1
  391. package/dist/domains/traces/components/span-payload/span-payload-section.cjs.js +2 -2
  392. package/dist/domains/traces/components/span-payload/span-payload-section.es.js +2 -2
  393. package/dist/domains/traces/components/span-payload/span-payload-tool.cjs.js +2 -2
  394. package/dist/domains/traces/components/span-payload/span-payload-tool.es.js +2 -2
  395. package/dist/domains/traces/components/span-payload/span-processor-attributes.cjs.js +3 -3
  396. package/dist/domains/traces/components/span-payload/span-processor-attributes.es.js +3 -3
  397. package/dist/domains/traces/components/span-summary-description.cjs.js +1 -1
  398. package/dist/domains/traces/components/span-summary-description.es.js +1 -1
  399. package/dist/domains/traces/components/span-timeline-row.cjs.js +3 -2
  400. package/dist/domains/traces/components/span-timeline-row.cjs.js.map +1 -1
  401. package/dist/domains/traces/components/span-timeline-row.es.js +3 -2
  402. package/dist/domains/traces/components/span-timeline-row.es.js.map +1 -1
  403. package/dist/domains/traces/components/thread-trace/thread-trace-details.cjs.js +1 -1
  404. package/dist/domains/traces/components/thread-trace/thread-trace-details.es.js +1 -1
  405. package/dist/domains/traces/components/thread-trace/thread-trace-messages.cjs.js +4 -4
  406. package/dist/domains/traces/components/thread-trace/thread-trace-messages.es.js +4 -4
  407. package/dist/domains/traces/components/thread-trace/thread-trace-spans.cjs.js +1 -1
  408. package/dist/domains/traces/components/thread-trace/thread-trace-spans.es.js +1 -1
  409. package/dist/domains/traces/components/thread-view-by-trace.cjs.js +1 -1
  410. package/dist/domains/traces/components/thread-view-by-trace.es.js +1 -1
  411. package/dist/domains/traces/components/timeline-name-col.cjs.js +3 -2
  412. package/dist/domains/traces/components/timeline-name-col.cjs.js.map +1 -1
  413. package/dist/domains/traces/components/timeline-name-col.es.js +3 -2
  414. package/dist/domains/traces/components/timeline-name-col.es.js.map +1 -1
  415. package/dist/domains/traces/components/trace-columns-menu.cjs.js +4 -4
  416. package/dist/domains/traces/components/trace-columns-menu.es.js +4 -4
  417. package/dist/domains/traces/components/trace-data-panel-view.cjs.js +6 -6
  418. package/dist/domains/traces/components/trace-data-panel-view.es.js +6 -6
  419. package/dist/domains/traces/components/trace-data-panel.cjs.js +2 -3
  420. package/dist/domains/traces/components/trace-data-panel.cjs.js.map +1 -1
  421. package/dist/domains/traces/components/trace-data-panel.es.js +2 -3
  422. package/dist/domains/traces/components/trace-data-panel.es.js.map +1 -1
  423. package/dist/domains/traces/components/trace-id-button.cjs.js +1 -1
  424. package/dist/domains/traces/components/trace-id-button.es.js +1 -1
  425. package/dist/domains/traces/components/trace-messages-panel.cjs.js +1 -1
  426. package/dist/domains/traces/components/trace-messages-panel.es.js +1 -1
  427. package/dist/domains/traces/components/trace-summary-description.cjs.js +1 -1
  428. package/dist/domains/traces/components/trace-summary-description.es.js +1 -1
  429. package/dist/domains/traces/components/trace-thread-item-view.cjs.js +1 -1
  430. package/dist/domains/traces/components/trace-thread-item-view.es.js +1 -1
  431. package/dist/domains/traces/components/trace-thread-panel.cjs.js +1 -1
  432. package/dist/domains/traces/components/trace-thread-panel.es.js +1 -1
  433. package/dist/domains/traces/components/trace-time-range-chip.cjs.js +2 -2
  434. package/dist/domains/traces/components/trace-time-range-chip.es.js +2 -2
  435. package/dist/domains/traces/components/traces-list-mode-toggle.cjs.js +1 -1
  436. package/dist/domains/traces/components/traces-list-mode-toggle.es.js +1 -1
  437. package/dist/domains/traces/components/traces-list-view.cjs.js +5 -4
  438. package/dist/domains/traces/components/traces-list-view.cjs.js.map +1 -1
  439. package/dist/domains/traces/components/traces-list-view.es.js +5 -4
  440. package/dist/domains/traces/components/traces-list-view.es.js.map +1 -1
  441. package/dist/domains/traces/components/traces-page-skeleton.cjs.js +1 -3
  442. package/dist/domains/traces/components/traces-page-skeleton.cjs.js.map +1 -1
  443. package/dist/domains/traces/components/traces-page-skeleton.es.js +1 -3
  444. package/dist/domains/traces/components/traces-page-skeleton.es.js.map +1 -1
  445. package/dist/domains/workflows/components/workflow-combobox.cjs.js +1 -1
  446. package/dist/domains/workflows/components/workflow-combobox.es.js +1 -1
  447. package/dist/domains/workflows/components/workflow-entity-header.cjs.js +3 -1
  448. package/dist/domains/workflows/components/workflow-entity-header.cjs.js.map +1 -1
  449. package/dist/domains/workflows/components/workflow-entity-header.es.js +3 -1
  450. package/dist/domains/workflows/components/workflow-entity-header.es.js.map +1 -1
  451. package/dist/domains/workflows/components/workflow-information.cjs.js +3 -3
  452. package/dist/domains/workflows/components/workflow-information.es.js +3 -3
  453. package/dist/domains/workflows/components/workflow-step-detail.cjs.js +3 -3
  454. package/dist/domains/workflows/components/workflow-step-detail.es.js +3 -3
  455. package/dist/domains/workflows/components/workflows-list/no-workflows-info.cjs.js +1 -1
  456. package/dist/domains/workflows/components/workflows-list/no-workflows-info.es.js +1 -1
  457. package/dist/domains/workflows/components/workflows-list/workflows-list.cjs.js +4 -3
  458. package/dist/domains/workflows/components/workflows-list/workflows-list.cjs.js.map +1 -1
  459. package/dist/domains/workflows/components/workflows-list/workflows-list.es.js +4 -3
  460. package/dist/domains/workflows/components/workflows-list/workflows-list.es.js.map +1 -1
  461. package/dist/domains/workflows/runs/workflow-run-list.cjs.js +4 -4
  462. package/dist/domains/workflows/runs/workflow-run-list.es.js +4 -4
  463. package/dist/domains/workflows/workflow/data/workflow-data-button.cjs.js +1 -1
  464. package/dist/domains/workflows/workflow/data/workflow-data-button.es.js +1 -1
  465. package/dist/domains/workflows/workflow/data/workflow-data-inspector.cjs.js +2 -2
  466. package/dist/domains/workflows/workflow/data/workflow-data-inspector.es.js +2 -2
  467. package/dist/domains/workflows/workflow/input/workflow-json-input.cjs.js +1 -1
  468. package/dist/domains/workflows/workflow/input/workflow-json-input.es.js +1 -1
  469. package/dist/domains/workflows/workflow/input/workflow-processor-input.cjs.js +1 -1
  470. package/dist/domains/workflows/workflow/input/workflow-processor-input.es.js +1 -1
  471. package/dist/domains/workflows/workflow/use-workflow-graph-runtime.cjs.js +2 -2
  472. package/dist/domains/workflows/workflow/use-workflow-graph-runtime.es.js +2 -2
  473. package/dist/domains/workflows/workflow/workflow-body-graph.cjs.js +1 -1
  474. package/dist/domains/workflows/workflow/workflow-body-graph.es.js +1 -1
  475. package/dist/domains/workflows/workflow/workflow-cancel-button.cjs.js +1 -1
  476. package/dist/domains/workflows/workflow/workflow-cancel-button.es.js +1 -1
  477. package/dist/domains/workflows/workflow/workflow-data-edge.cjs.js +1 -1
  478. package/dist/domains/workflows/workflow/workflow-data-edge.es.js +1 -1
  479. package/dist/domains/workflows/workflow/workflow-debug-mode-switch.cjs.js +1 -1
  480. package/dist/domains/workflows/workflow/workflow-debug-mode-switch.es.js +1 -1
  481. package/dist/domains/workflows/workflow/workflow-debug-step-controls.cjs.js +1 -1
  482. package/dist/domains/workflows/workflow/workflow-debug-step-controls.es.js +1 -1
  483. package/dist/domains/workflows/workflow/workflow-graph-boundary.cjs.js +3 -3
  484. package/dist/domains/workflows/workflow/workflow-graph-boundary.es.js +3 -3
  485. package/dist/domains/workflows/workflow/workflow-graph-inner.cjs.js +2 -2
  486. package/dist/domains/workflows/workflow/workflow-graph-inner.es.js +2 -2
  487. package/dist/domains/workflows/workflow/workflow-graph-node.cjs.js +2 -2
  488. package/dist/domains/workflows/workflow/workflow-graph-node.es.js +2 -2
  489. package/dist/domains/workflows/workflow/workflow-input-data.cjs.js +2 -2
  490. package/dist/domains/workflows/workflow/workflow-input-data.es.js +2 -2
  491. package/dist/domains/workflows/workflow/workflow-input-type-toggle.cjs.js +1 -1
  492. package/dist/domains/workflows/workflow/workflow-input-type-toggle.cjs.js.map +1 -1
  493. package/dist/domains/workflows/workflow/workflow-input-type-toggle.es.js +2 -2
  494. package/dist/domains/workflows/workflow/workflow-input-type-toggle.es.js.map +1 -1
  495. package/dist/domains/workflows/workflow/workflow-map-config-dialog.cjs.js +3 -3
  496. package/dist/domains/workflows/workflow/workflow-map-config-dialog.es.js +3 -3
  497. package/dist/domains/workflows/workflow/workflow-nested-graph.cjs.js +3 -3
  498. package/dist/domains/workflows/workflow/workflow-nested-graph.es.js +3 -3
  499. package/dist/domains/workflows/workflow/workflow-run-data.cjs.js +5 -5
  500. package/dist/domains/workflows/workflow/workflow-run-data.es.js +5 -5
  501. package/dist/domains/workflows/workflow/workflow-run-error.cjs.js +1 -1
  502. package/dist/domains/workflows/workflow/workflow-run-error.es.js +1 -1
  503. package/dist/domains/workflows/workflow/workflow-run-header.cjs.js +2 -2
  504. package/dist/domains/workflows/workflow/workflow-run-header.es.js +2 -2
  505. package/dist/domains/workflows/workflow/workflow-status.cjs.js +1 -1
  506. package/dist/domains/workflows/workflow/workflow-status.es.js +1 -1
  507. package/dist/domains/workflows/workflow/workflow-step-action-bar.cjs.js +3 -3
  508. package/dist/domains/workflows/workflow/workflow-step-action-bar.es.js +3 -3
  509. package/dist/domains/workflows/workflow/workflow-suspended-steps.cjs.js +2 -2
  510. package/dist/domains/workflows/workflow/workflow-suspended-steps.es.js +2 -2
  511. package/dist/domains/workflows/workflow/workflow-time-travel-form.cjs.js +3 -3
  512. package/dist/domains/workflows/workflow/workflow-time-travel-form.es.js +3 -3
  513. package/dist/domains/workflows/workflow/workflow-timeline-row.cjs.js +6 -2
  514. package/dist/domains/workflows/workflow/workflow-timeline-row.cjs.js.map +1 -1
  515. package/dist/domains/workflows/workflow/workflow-timeline-row.es.js +6 -2
  516. package/dist/domains/workflows/workflow/workflow-timeline-row.es.js.map +1 -1
  517. package/dist/domains/workflows/workflow/workflow-timeline.cjs.js +2 -2
  518. package/dist/domains/workflows/workflow/workflow-timeline.es.js +2 -2
  519. package/dist/domains/workflows/workflow/workflow-trigger-form.cjs.js +1 -1
  520. package/dist/domains/workflows/workflow/workflow-trigger-form.es.js +1 -1
  521. package/dist/domains/workflows/workflow/workflow-trigger-header.cjs.js +1 -1
  522. package/dist/domains/workflows/workflow/workflow-trigger-header.es.js +1 -1
  523. package/dist/domains/workflows/workflow/workflow-trigger.cjs.js +1 -1
  524. package/dist/domains/workflows/workflow/workflow-trigger.es.js +1 -1
  525. package/dist/{drawer-6MeSDSfP.js → drawer-DXf50w71.js} +2 -2
  526. package/dist/{drawer-6MeSDSfP.js.map → drawer-DXf50w71.js.map} +1 -1
  527. package/dist/{drawer-KHIkRUe4.cjs → drawer-d81cZiSV.cjs} +2 -2
  528. package/dist/{drawer-KHIkRUe4.cjs.map → drawer-d81cZiSV.cjs.map} +1 -1
  529. package/dist/ee/signals/components/entity-index-compact-grid.cjs.js +2 -2
  530. package/dist/ee/signals/components/entity-index-compact-grid.es.js +2 -2
  531. package/dist/ee/signals/components/entity-index-list.cjs.js +1 -3
  532. package/dist/ee/signals/components/entity-index-list.cjs.js.map +1 -1
  533. package/dist/ee/signals/components/entity-index-list.es.js +1 -3
  534. package/dist/ee/signals/components/entity-index-list.es.js.map +1 -1
  535. package/dist/ee/signals/components/signals-empty-state.cjs.js +16 -20
  536. package/dist/ee/signals/components/signals-empty-state.cjs.js.map +1 -1
  537. package/dist/ee/signals/components/signals-empty-state.es.js +16 -20
  538. package/dist/ee/signals/components/signals-empty-state.es.js.map +1 -1
  539. package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js +4 -5
  540. package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js.map +1 -1
  541. package/dist/ee/signals/components/trace-intelligence-entity-index.es.js +4 -5
  542. package/dist/ee/signals/components/trace-intelligence-entity-index.es.js.map +1 -1
  543. package/dist/ee/signals/examples-pager.cjs.js +1 -1
  544. package/dist/ee/signals/examples-pager.es.js +1 -1
  545. package/dist/ee/signals/flow-card.cjs.js +1 -1
  546. package/dist/ee/signals/flow-card.es.js +1 -1
  547. package/dist/ee/signals/lifeline-point.cjs.js +7 -2
  548. package/dist/ee/signals/lifeline-point.cjs.js.map +1 -1
  549. package/dist/ee/signals/lifeline-point.es.js +7 -2
  550. package/dist/ee/signals/lifeline-point.es.js.map +1 -1
  551. package/dist/ee/signals/noise-detail-panel.cjs.js +1 -1
  552. package/dist/ee/signals/noise-detail-panel.es.js +1 -1
  553. package/dist/ee/signals/sankey-signals.cjs.js +1 -1
  554. package/dist/ee/signals/sankey-signals.es.js +1 -1
  555. package/dist/ee/signals/settings/signal-definition-form-dialog.cjs.js +3 -3
  556. package/dist/ee/signals/settings/signal-definition-form-dialog.es.js +3 -3
  557. package/dist/ee/signals/settings/trace-signal-settings.cjs.js +3 -3
  558. package/dist/ee/signals/settings/trace-signal-settings.es.js +3 -3
  559. package/dist/ee/signals/signal-colors.cjs.js +6 -6
  560. package/dist/ee/signals/signal-colors.cjs.js.map +1 -1
  561. package/dist/ee/signals/signal-colors.es.js +6 -6
  562. package/dist/ee/signals/signal-colors.es.js.map +1 -1
  563. package/dist/ee/signals/signals-error-state.cjs.js +1 -1
  564. package/dist/ee/signals/signals-error-state.es.js +1 -1
  565. package/dist/ee/signals/snapshot-timeline.cjs.js +2 -2
  566. package/dist/ee/signals/snapshot-timeline.cjs.js.map +1 -1
  567. package/dist/ee/signals/snapshot-timeline.es.js +2 -2
  568. package/dist/ee/signals/snapshot-timeline.es.js.map +1 -1
  569. package/dist/ee/signals/theme-detail-panel.cjs.js +1 -1
  570. package/dist/ee/signals/theme-detail-panel.es.js +1 -1
  571. package/dist/ee/signals/theme-filter-banner.cjs.js +1 -1
  572. package/dist/ee/signals/theme-filter-banner.es.js +1 -1
  573. package/dist/ee/signals/trace-insight-view.cjs.js +2 -2
  574. package/dist/ee/signals/trace-insight-view.cjs.js.map +1 -1
  575. package/dist/ee/signals/trace-insight-view.es.js +2 -2
  576. package/dist/ee/signals/trace-insight-view.es.js.map +1 -1
  577. package/dist/ee/signals/view-mode-tab.cjs.js +1 -1
  578. package/dist/ee/signals/view-mode-tab.es.js +1 -1
  579. package/dist/ee/topics/components/topic-trace-summary-list.cjs.js +3 -3
  580. package/dist/ee/topics/components/topic-trace-summary-list.es.js +3 -3
  581. package/dist/{filter-bar-chip-u48DmCu5.js → filter-bar-chip-BNPOrSrD.js} +3 -3
  582. package/dist/{filter-bar-chip-u48DmCu5.js.map → filter-bar-chip-BNPOrSrD.js.map} +1 -1
  583. package/dist/{filter-bar-chip-CYKfWUTj.cjs → filter-bar-chip-D4CSm9KP.cjs} +3 -3
  584. package/dist/{filter-bar-chip-CYKfWUTj.cjs.map → filter-bar-chip-D4CSm9KP.cjs.map} +1 -1
  585. package/dist/{horizontal-bars-BYNeqSSF.js → horizontal-bars-BSRESJsp.js} +2 -2
  586. package/dist/{horizontal-bars-BYNeqSSF.js.map → horizontal-bars-BSRESJsp.js.map} +1 -1
  587. package/dist/{horizontal-bars-BK8snozs.cjs → horizontal-bars-DRD7JkHL.cjs} +2 -2
  588. package/dist/{horizontal-bars-BK8snozs.cjs.map → horizontal-bars-DRD7JkHL.cjs.map} +1 -1
  589. package/dist/{input-group-C0xpNsn1.js → input-group-B8bnoDrA.js} +2 -2
  590. package/dist/{input-group-C0xpNsn1.js.map → input-group-B8bnoDrA.js.map} +1 -1
  591. package/dist/{input-group-C1NamUEz.cjs → input-group-I8YVM_Ps.cjs} +2 -2
  592. package/dist/{input-group-C1NamUEz.cjs.map → input-group-I8YVM_Ps.cjs.map} +1 -1
  593. package/dist/layout/tabbed-container.cjs.js +6 -6
  594. package/dist/layout/tabbed-container.es.js +6 -6
  595. package/dist/lib/form/components/array-element-wrapper.cjs.js +3 -3
  596. package/dist/lib/form/components/array-element-wrapper.cjs.js.map +1 -1
  597. package/dist/lib/form/components/array-element-wrapper.es.js +3 -3
  598. package/dist/lib/form/components/array-element-wrapper.es.js.map +1 -1
  599. package/dist/lib/form/components/array-wrapper.cjs.js +1 -1
  600. package/dist/lib/form/components/array-wrapper.es.js +1 -1
  601. package/dist/lib/form/components/date-field.cjs.js +1 -1
  602. package/dist/lib/form/components/date-field.es.js +1 -1
  603. package/dist/lib/form/components/error-message.cjs.js +1 -1
  604. package/dist/lib/form/components/error-message.es.js +1 -1
  605. package/dist/lib/form/components/form-submit-row.cjs.js +1 -1
  606. package/dist/lib/form/components/form-submit-row.es.js +1 -1
  607. package/dist/lib/form/components/object-wrapper.cjs.js +1 -1
  608. package/dist/lib/form/components/object-wrapper.es.js +1 -1
  609. package/dist/lib/form/components/record-field.cjs.js +1 -1
  610. package/dist/lib/form/components/record-field.es.js +1 -1
  611. package/dist/lib/form/components/select-field.cjs.js +1 -1
  612. package/dist/lib/form/components/select-field.es.js +1 -1
  613. package/dist/lib/form/components/submit-button.cjs.js +1 -1
  614. package/dist/lib/form/components/submit-button.es.js +1 -1
  615. package/dist/{list-search-BgO_ksCX.js → list-search-9l8IEdxZ.js} +2 -2
  616. package/dist/{list-search-BgO_ksCX.js.map → list-search-9l8IEdxZ.js.map} +1 -1
  617. package/dist/{list-search-bEL_wzsG.cjs → list-search-DXb7HFX8.cjs} +2 -2
  618. package/dist/{list-search-bEL_wzsG.cjs.map → list-search-DXb7HFX8.cjs.map} +1 -1
  619. package/dist/{logs-data-list-D82JmBPJ.js → logs-data-list-C77r2FOj.js} +3 -3
  620. package/dist/{logs-data-list-D82JmBPJ.js.map → logs-data-list-C77r2FOj.js.map} +1 -1
  621. package/dist/{logs-data-list-DAh8by9h.cjs → logs-data-list-CEFyG1Xb.cjs} +3 -3
  622. package/dist/{logs-data-list-DAh8by9h.cjs.map → logs-data-list-CEFyG1Xb.cjs.map} +1 -1
  623. package/dist/{main-sidebar-link-active-DAiTpL8z.js → main-sidebar-link-active-1_ktyA8Q.js} +7 -7
  624. package/dist/main-sidebar-link-active-1_ktyA8Q.js.map +1 -0
  625. package/dist/{main-sidebar-link-active-DIMZKeHX.cjs → main-sidebar-link-active-BNko0jHZ.cjs} +7 -7
  626. package/dist/main-sidebar-link-active-BNko0jHZ.cjs.map +1 -0
  627. package/dist/{markdown-renderer-CY-jQjAm.js → markdown-renderer-Bl0V7FCo.js} +3 -3
  628. package/dist/{markdown-renderer-CY-jQjAm.js.map → markdown-renderer-Bl0V7FCo.js.map} +1 -1
  629. package/dist/{markdown-renderer-DtcId3Ul.cjs → markdown-renderer-CSwjfPaf.cjs} +3 -3
  630. package/dist/{markdown-renderer-DtcId3Ul.cjs.map → markdown-renderer-CSwjfPaf.cjs.map} +1 -1
  631. package/dist/{message-copy-button-D49yf_Fk.cjs → message-copy-button-ClJBX9qx.cjs} +2 -2
  632. package/dist/{message-copy-button-D49yf_Fk.cjs.map → message-copy-button-ClJBX9qx.cjs.map} +1 -1
  633. package/dist/{message-copy-button-iMfO-J5M.js → message-copy-button-DP3U-xA-.js} +2 -2
  634. package/dist/{message-copy-button-iMfO-J5M.js.map → message-copy-button-DP3U-xA-.js.map} +1 -1
  635. package/dist/{metrics-card-Cr6vbt9I.js → metrics-card-CloSmyRQ.js} +3 -3
  636. package/dist/{metrics-card-Cr6vbt9I.js.map → metrics-card-CloSmyRQ.js.map} +1 -1
  637. package/dist/{metrics-card-B29tubiE.cjs → metrics-card-HmQJHDNa.cjs} +3 -3
  638. package/dist/{metrics-card-B29tubiE.cjs.map → metrics-card-HmQJHDNa.cjs.map} +1 -1
  639. package/dist/{metrics-kpi-card-CHdaoCE8.cjs → metrics-kpi-card-CW24YjZp.cjs} +2 -2
  640. package/dist/{metrics-kpi-card-CHdaoCE8.cjs.map → metrics-kpi-card-CW24YjZp.cjs.map} +1 -1
  641. package/dist/{metrics-kpi-card-DaOkTfEn.js → metrics-kpi-card-DLDT28IB.js} +2 -2
  642. package/dist/{metrics-kpi-card-DaOkTfEn.js.map → metrics-kpi-card-DLDT28IB.js.map} +1 -1
  643. package/dist/new/sidebar.cjs.js +2 -2
  644. package/dist/new/sidebar.cjs.js.map +1 -1
  645. package/dist/new/sidebar.es.js +3 -3
  646. package/dist/new/sidebar.es.js.map +1 -1
  647. package/dist/{notification-activity-HAcSSfXh.js → notification-activity-B1_2BPe_.js} +2 -2
  648. package/dist/{notification-activity-HAcSSfXh.js.map → notification-activity-B1_2BPe_.js.map} +1 -1
  649. package/dist/{notification-activity-CzWIom28.cjs → notification-activity-BAn2fhYd.cjs} +2 -2
  650. package/dist/{notification-activity-CzWIom28.cjs.map → notification-activity-BAn2fhYd.cjs.map} +1 -1
  651. package/dist/{plan-XcVpRToL.js → plan-DJfH1c_u.js} +3 -3
  652. package/dist/{plan-XcVpRToL.js.map → plan-DJfH1c_u.js.map} +1 -1
  653. package/dist/{plan-rKBR_aWJ.cjs → plan-ZKAT5frg.cjs} +3 -3
  654. package/dist/{plan-rKBR_aWJ.cjs.map → plan-ZKAT5frg.cjs.map} +1 -1
  655. package/dist/primitives/form-element.cjs.js +3 -2
  656. package/dist/primitives/form-element.cjs.js.map +1 -1
  657. package/dist/primitives/form-element.es.js +3 -3
  658. package/dist/primitives/form-element.es.js.map +1 -1
  659. package/dist/primitives/menu-item.cjs.js +1 -1
  660. package/dist/primitives/menu-item.es.js +1 -1
  661. package/dist/primitives/raised-surface.cjs.js +3 -3
  662. package/dist/primitives/raised-surface.cjs.js.map +1 -1
  663. package/dist/primitives/raised-surface.es.js +3 -3
  664. package/dist/primitives/raised-surface.es.js.map +1 -1
  665. package/dist/primitives/selection-control.cjs.js +2 -2
  666. package/dist/primitives/selection-control.cjs.js.map +1 -1
  667. package/dist/primitives/selection-control.es.js +3 -3
  668. package/dist/primitives/selection-control.es.js.map +1 -1
  669. package/dist/primitives/transitions.cjs.js +6 -8
  670. package/dist/primitives/transitions.cjs.js.map +1 -1
  671. package/dist/primitives/transitions.es.js +5 -9
  672. package/dist/primitives/transitions.es.js.map +1 -1
  673. package/dist/primitives/trigger-button.cjs.js +1 -1
  674. package/dist/primitives/trigger-button.es.js +1 -1
  675. package/dist/{property-filter-applied-gYYOGNLL.cjs → property-filter-applied-D0F0BYMY.cjs} +2 -2
  676. package/dist/{property-filter-applied-gYYOGNLL.cjs.map → property-filter-applied-D0F0BYMY.cjs.map} +1 -1
  677. package/dist/{property-filter-applied-lIef4AFt.js → property-filter-applied-k0TOa9hf.js} +2 -2
  678. package/dist/{property-filter-applied-lIef4AFt.js.map → property-filter-applied-k0TOa9hf.js.map} +1 -1
  679. package/dist/{reasoning-activity-LdbnHPbR.cjs → reasoning-activity-CO0Ab1Za.cjs} +3 -3
  680. package/dist/{reasoning-activity-LdbnHPbR.cjs.map → reasoning-activity-CO0Ab1Za.cjs.map} +1 -1
  681. package/dist/{reasoning-activity-j1bIOIX8.js → reasoning-activity-D3oCzL58.js} +3 -3
  682. package/dist/{reasoning-activity-j1bIOIX8.js.map → reasoning-activity-D3oCzL58.js.map} +1 -1
  683. package/dist/{relative-timestamp-BzfR9tDU.cjs → relative-timestamp-D-IvjsVb.cjs} +2 -2
  684. package/dist/relative-timestamp-D-IvjsVb.cjs.map +1 -0
  685. package/dist/{relative-timestamp-SPgcvfH6.js → relative-timestamp-wERh5vUE.js} +2 -2
  686. package/dist/relative-timestamp-wERh5vUE.js.map +1 -0
  687. package/dist/resize/panel-drawer.cjs.js +1 -1
  688. package/dist/resize/panel-drawer.es.js +1 -1
  689. package/dist/{scroll-area-BE7FJqVA.cjs → scroll-area-CEuf7Omb.cjs} +2 -2
  690. package/dist/scroll-area-CEuf7Omb.cjs.map +1 -0
  691. package/dist/{scroll-area-PxtGm4w9.js → scroll-area-Ds-fJn5M.js} +3 -3
  692. package/dist/scroll-area-Ds-fJn5M.js.map +1 -0
  693. package/dist/{search-field-block-DHrgu8J5.cjs → search-field-block-B1eqMV8x.cjs} +2 -2
  694. package/dist/{search-field-block-DHrgu8J5.cjs.map → search-field-block-B1eqMV8x.cjs.map} +1 -1
  695. package/dist/{search-field-block-D9yr3kXG.js → search-field-block-Cj9lJsYi.js} +2 -2
  696. package/dist/{search-field-block-D9yr3kXG.js.map → search-field-block-Cj9lJsYi.js.map} +1 -1
  697. package/dist/{select-Y2dIzSBN.cjs → select-C0ZGSJYa.cjs} +2 -2
  698. package/dist/{select-Y2dIzSBN.cjs.map → select-C0ZGSJYa.cjs.map} +1 -1
  699. package/dist/{select-BH7BD11Z.js → select-ch8imm15.js} +2 -2
  700. package/dist/{select-BH7BD11Z.js.map → select-ch8imm15.js.map} +1 -1
  701. package/dist/{select-field-block-DwFt2fgr.cjs → select-field-block-Dy_N3tWv.cjs} +2 -2
  702. package/dist/{select-field-block-DwFt2fgr.cjs.map → select-field-block-Dy_N3tWv.cjs.map} +1 -1
  703. package/dist/{select-field-block-CNLNE9ps.js → select-field-block-_ZUzUs7l.js} +2 -2
  704. package/dist/{select-field-block-CNLNE9ps.js.map → select-field-block-_ZUzUs7l.js.map} +1 -1
  705. package/dist/{side-dialog-DQ3SzDXH.cjs → side-dialog-7P9aEC4v.cjs} +4 -4
  706. package/dist/{side-dialog-DQ3SzDXH.cjs.map → side-dialog-7P9aEC4v.cjs.map} +1 -1
  707. package/dist/{side-dialog-BgmY4v7P.js → side-dialog-D2O3Y7GB.js} +4 -4
  708. package/dist/{side-dialog-BgmY4v7P.js.map → side-dialog-D2O3Y7GB.js.map} +1 -1
  709. package/dist/{signal-activity-B5LFDj6X.js → signal-activity-1REUU8T_.js} +2 -2
  710. package/dist/{signal-activity-B5LFDj6X.js.map → signal-activity-1REUU8T_.js.map} +1 -1
  711. package/dist/{signal-activity-DXZ9j7xV.cjs → signal-activity-4OJb4kp6.cjs} +2 -2
  712. package/dist/{signal-activity-DXZ9j7xV.cjs.map → signal-activity-4OJb4kp6.cjs.map} +1 -1
  713. package/dist/{slider-MM3K0Pyv.js → slider-D9dd_fVN.js} +3 -3
  714. package/dist/{slider-MM3K0Pyv.js.map → slider-D9dd_fVN.js.map} +1 -1
  715. package/dist/{slider-C-Fda4HC.cjs → slider-T_BIZUV0.cjs} +3 -3
  716. package/dist/{slider-C-Fda4HC.cjs.map → slider-T_BIZUV0.cjs.map} +1 -1
  717. package/dist/{span-payload-primitives-0ha5dnaq.js → span-payload-primitives-CEflnpwW.js} +4 -4
  718. package/dist/{span-payload-primitives-0ha5dnaq.js.map → span-payload-primitives-CEflnpwW.js.map} +1 -1
  719. package/dist/{span-payload-primitives-fZJeJrtj.cjs → span-payload-primitives-CbXrqcs-.cjs} +4 -4
  720. package/dist/{span-payload-primitives-fZJeJrtj.cjs.map → span-payload-primitives-CbXrqcs-.cjs.map} +1 -1
  721. package/dist/src/domains/chat/messages/skill-activation.d.ts +8 -0
  722. package/dist/src/domains/chat/messages/skill-message.d.ts +4 -0
  723. package/dist/src/domains/workflows/components/workflow-layout.d.ts +1 -1
  724. package/dist/src/ds/components/DataList/shared.d.ts +2 -2
  725. package/dist/src/ds/components/Entity/entity.stories.d.ts +0 -1
  726. package/dist/src/ds/primitives/form-element.d.ts +1 -0
  727. package/dist/src/ds/primitives/transitions.d.ts +3 -6
  728. package/dist/src/ds/tokens/color-foundations.stories.d.ts +5 -4
  729. package/dist/src/ds/tokens/colors.d.ts +62 -1
  730. package/dist/src/ds/tokens/foundations-layout.d.ts +0 -1
  731. package/dist/src/ds/tokens/shadows.d.ts +0 -1
  732. package/dist/style.css +255 -180
  733. package/dist/{switch-CE9jTpUG.js → switch-88fWFfVz.js} +4 -3
  734. package/dist/switch-88fWFfVz.js.map +1 -0
  735. package/dist/{switch-6125Oajw.cjs → switch-Swt75_Sb.cjs} +4 -3
  736. package/dist/switch-Swt75_Sb.cjs.map +1 -0
  737. package/dist/{tabs-content-CcZEEfTc.cjs → tabs-content-DQNRMjup.cjs} +3 -3
  738. package/dist/tabs-content-DQNRMjup.cjs.map +1 -0
  739. package/dist/{tabs-content-gq5tjHFE.js → tabs-content-h2qqD8t-.js} +3 -3
  740. package/dist/{tabs-content-gq5tjHFE.js.map → tabs-content-h2qqD8t-.js.map} +1 -1
  741. package/dist/{tabs-root-DnL_e3X4.js → tabs-root-4vL8SHCO.js} +2 -2
  742. package/dist/{tabs-root-DnL_e3X4.js.map → tabs-root-4vL8SHCO.js.map} +1 -1
  743. package/dist/{tabs-root-CSTdrTYo.cjs → tabs-root-BqC8X_h6.cjs} +2 -2
  744. package/dist/{tabs-root-CSTdrTYo.cjs.map → tabs-root-BqC8X_h6.cjs.map} +1 -1
  745. package/dist/{tabs-tab-Deu7thdb.js → tabs-tab-7e2as-AV.js} +3 -3
  746. package/dist/tabs-tab-7e2as-AV.js.map +1 -0
  747. package/dist/{tabs-tab-DjDhpEEE.cjs → tabs-tab-lm4xyjtD.cjs} +3 -3
  748. package/dist/tabs-tab-lm4xyjtD.cjs.map +1 -0
  749. package/dist/{thread-list-BNO_C73l.js → thread-list-DGI6M6if.js} +2 -2
  750. package/dist/{thread-list-BNO_C73l.js.map → thread-list-DGI6M6if.js.map} +1 -1
  751. package/dist/{thread-list-CSNdqkMI.cjs → thread-list-DwASH1Vl.cjs} +2 -2
  752. package/dist/{thread-list-CSNdqkMI.cjs.map → thread-list-DwASH1Vl.cjs.map} +1 -1
  753. package/dist/{time-picker-078hPxCJ.cjs → time-picker-C0DCPWpR.cjs} +2 -2
  754. package/dist/{time-picker-078hPxCJ.cjs.map → time-picker-C0DCPWpR.cjs.map} +1 -1
  755. package/dist/{time-picker-7gF4eQAt.js → time-picker-CfZbLgMm.js} +2 -2
  756. package/dist/{time-picker-7gF4eQAt.js.map → time-picker-CfZbLgMm.js.map} +1 -1
  757. package/dist/tokens.cjs.js +63 -3
  758. package/dist/tokens.cjs.js.map +1 -1
  759. package/dist/tokens.es.js +63 -3
  760. package/dist/tokens.es.js.map +1 -1
  761. package/dist/{tool-approval-CfRaygjH.cjs → tool-approval-BAER9nxR.cjs} +2 -2
  762. package/dist/{tool-approval-CfRaygjH.cjs.map → tool-approval-BAER9nxR.cjs.map} +1 -1
  763. package/dist/{tool-approval-BViVo54e.js → tool-approval-xZvYiuBP.js} +2 -2
  764. package/dist/{tool-approval-BViVo54e.js.map → tool-approval-xZvYiuBP.js.map} +1 -1
  765. package/dist/{tool-call-arguments-9A5bjnZf.js → tool-call-arguments-D7PMJ6vj.js} +3 -3
  766. package/dist/{tool-call-arguments-9A5bjnZf.js.map → tool-call-arguments-D7PMJ6vj.js.map} +1 -1
  767. package/dist/{tool-call-arguments-pnni11q2.cjs → tool-call-arguments-ynBfg2dY.cjs} +3 -3
  768. package/dist/{tool-call-arguments-pnni11q2.cjs.map → tool-call-arguments-ynBfg2dY.cjs.map} +1 -1
  769. package/dist/{tool-call-group-DABeZh1M.cjs → tool-call-group-9Dtupqev.cjs} +3 -3
  770. package/dist/{tool-call-group-DABeZh1M.cjs.map → tool-call-group-9Dtupqev.cjs.map} +1 -1
  771. package/dist/{tool-call-group-BWKy3t21.js → tool-call-group-DJX7eUYY.js} +3 -3
  772. package/dist/{tool-call-group-BWKy3t21.js.map → tool-call-group-DJX7eUYY.js.map} +1 -1
  773. package/dist/{tool-call-mono-B1cNPKRM.cjs → tool-call-mono-DFSfVZ6E.cjs} +2 -2
  774. package/dist/{tool-call-mono-B1cNPKRM.cjs.map → tool-call-mono-DFSfVZ6E.cjs.map} +1 -1
  775. package/dist/{tool-call-mono-BKfoVlPN.js → tool-call-mono-gKG9Ek1m.js} +2 -2
  776. package/dist/{tool-call-mono-BKfoVlPN.js.map → tool-call-mono-gKG9Ek1m.js.map} +1 -1
  777. package/dist/{tool-call-output-3Ro33hUN.js → tool-call-output-DEoCE_Xn.js} +2 -2
  778. package/dist/{tool-call-output-3Ro33hUN.js.map → tool-call-output-DEoCE_Xn.js.map} +1 -1
  779. package/dist/{tool-call-output-BR0HdX36.cjs → tool-call-output-Dl4sVfCy.cjs} +2 -2
  780. package/dist/{tool-call-output-BR0HdX36.cjs.map → tool-call-output-Dl4sVfCy.cjs.map} +1 -1
  781. package/dist/{tool-card-j5PjYYXG.js → tool-card-BA1YcDoS.js} +4 -4
  782. package/dist/{tool-card-j5PjYYXG.js.map → tool-card-BA1YcDoS.js.map} +1 -1
  783. package/dist/{tool-card-CeRXZ67P.cjs → tool-card-DRqhTx-u.cjs} +4 -4
  784. package/dist/{tool-card-CeRXZ67P.cjs.map → tool-card-DRqhTx-u.cjs.map} +1 -1
  785. package/dist/{traces-data-list-Cj8_iaST.cjs → traces-data-list-CU93pUfj.cjs} +4 -4
  786. package/dist/{traces-data-list-Cj8_iaST.cjs.map → traces-data-list-CU93pUfj.cjs.map} +1 -1
  787. package/dist/{traces-data-list-DcHBQtgZ.js → traces-data-list-DaedGcID.js} +4 -4
  788. package/dist/{traces-data-list-DcHBQtgZ.js.map → traces-data-list-DaedGcID.js.map} +1 -1
  789. package/dist/{use-workflow-graph-runtime-XFvrHY2_.cjs → use-workflow-graph-runtime-D0ODPlNB.cjs} +3 -3
  790. package/dist/{use-workflow-graph-runtime-XFvrHY2_.cjs.map → use-workflow-graph-runtime-D0ODPlNB.cjs.map} +1 -1
  791. package/dist/{use-workflow-graph-runtime-BImilvH3.js → use-workflow-graph-runtime-XL5zreeR.js} +3 -3
  792. package/dist/{use-workflow-graph-runtime-BImilvH3.js.map → use-workflow-graph-runtime-XL5zreeR.js.map} +1 -1
  793. package/dist/{workflow-code-dialog-content-BaUrjNPW.js → workflow-code-dialog-content-Iz2Omi1P.js} +3 -3
  794. package/dist/{workflow-code-dialog-content-BaUrjNPW.js.map → workflow-code-dialog-content-Iz2Omi1P.js.map} +1 -1
  795. package/dist/{workflow-code-dialog-content-BZMdjs9s.cjs → workflow-code-dialog-content-vLneZlMd.cjs} +3 -3
  796. package/dist/{workflow-code-dialog-content-BZMdjs9s.cjs.map → workflow-code-dialog-content-vLneZlMd.cjs.map} +1 -1
  797. package/dist/{workflow-condition-card-BOeOKZa6.js → workflow-condition-card-B0Va5Amx.js} +9 -9
  798. package/dist/workflow-condition-card-B0Va5Amx.js.map +1 -0
  799. package/dist/{workflow-condition-card-CWzCPzQe.cjs → workflow-condition-card-CfjhZb0m.cjs} +9 -9
  800. package/dist/workflow-condition-card-CfjhZb0m.cjs.map +1 -0
  801. package/dist/{workflow-data-edge-view-DoD6VDID.cjs → workflow-data-edge-view-DXeWURnc.cjs} +2 -2
  802. package/dist/{workflow-data-edge-view-DoD6VDID.cjs.map → workflow-data-edge-view-DXeWURnc.cjs.map} +1 -1
  803. package/dist/{workflow-data-edge-view-fX21CQmu.js → workflow-data-edge-view-o7akvbpB.js} +2 -2
  804. package/dist/{workflow-data-edge-view-fX21CQmu.js.map → workflow-data-edge-view-o7akvbpB.js.map} +1 -1
  805. package/dist/{workflow-debug-controls-CIplFeXE.cjs → workflow-debug-controls-Bcb4vcek.cjs} +2 -2
  806. package/dist/{workflow-debug-controls-CIplFeXE.cjs.map → workflow-debug-controls-Bcb4vcek.cjs.map} +1 -1
  807. package/dist/{workflow-debug-controls-7EfBAsMX.js → workflow-debug-controls-DULCFa4s.js} +2 -2
  808. package/dist/{workflow-debug-controls-7EfBAsMX.js.map → workflow-debug-controls-DULCFa4s.js.map} +1 -1
  809. package/dist/{workflow-edge-data-button-Cy3liOpU.js → workflow-edge-data-button-BuZzeN2n.js} +4 -4
  810. package/dist/{workflow-edge-data-button-Cy3liOpU.js.map → workflow-edge-data-button-BuZzeN2n.js.map} +1 -1
  811. package/dist/{workflow-edge-data-button-DU3WYDe9.cjs → workflow-edge-data-button-CX-eSbSB.cjs} +4 -4
  812. package/dist/{workflow-edge-data-button-DU3WYDe9.cjs.map → workflow-edge-data-button-CX-eSbSB.cjs.map} +1 -1
  813. package/dist/{workflow-step-action-BnDqOyJd.js → workflow-step-action-Cf_XmOwj.js} +2 -2
  814. package/dist/{workflow-step-action-BnDqOyJd.js.map → workflow-step-action-Cf_XmOwj.js.map} +1 -1
  815. package/dist/{workflow-step-action-CDt3pxg-.cjs → workflow-step-action-JMkWtObA.cjs} +2 -2
  816. package/dist/{workflow-step-action-CDt3pxg-.cjs.map → workflow-step-action-JMkWtObA.cjs.map} +1 -1
  817. package/package.json +9 -9
  818. package/theme/colors.css +112 -0
  819. package/theme/data-viz.css +7 -5
  820. package/theme/status.css +23 -2
  821. package/theme/surfaces.css +1 -11
  822. package/theme.css +1 -1
  823. package/dist/Button-CHTvSq4d.js.map +0 -1
  824. package/dist/Button-DbJn0bJX.cjs.map +0 -1
  825. package/dist/Card-BbwF20OW.cjs.map +0 -1
  826. package/dist/Card-DmT57Pve.js.map +0 -1
  827. package/dist/code-editor-8l_YoqYu.cjs.map +0 -1
  828. package/dist/code-editor-m5ktiTwB.js.map +0 -1
  829. package/dist/collapsible-BFSJouuI.cjs.map +0 -1
  830. package/dist/collapsible-DhhP5p1j.js.map +0 -1
  831. package/dist/data-code-section-D01ggJy6.js.map +0 -1
  832. package/dist/data-code-section-W_dIahDO.cjs.map +0 -1
  833. package/dist/data-list-spacer-Cukij8de.js.map +0 -1
  834. package/dist/data-list-spacer-D8zpJS7Z.cjs.map +0 -1
  835. package/dist/data-list-top-G11bdV77.js.map +0 -1
  836. package/dist/data-list-top-KKXNLoP6.cjs.map +0 -1
  837. package/dist/main-sidebar-link-active-DAiTpL8z.js.map +0 -1
  838. package/dist/main-sidebar-link-active-DIMZKeHX.cjs.map +0 -1
  839. package/dist/relative-timestamp-BzfR9tDU.cjs.map +0 -1
  840. package/dist/relative-timestamp-SPgcvfH6.js.map +0 -1
  841. package/dist/scroll-area-BE7FJqVA.cjs.map +0 -1
  842. package/dist/scroll-area-PxtGm4w9.js.map +0 -1
  843. package/dist/signals-empty-state.css +0 -54
  844. package/dist/switch-6125Oajw.cjs.map +0 -1
  845. package/dist/switch-CE9jTpUG.js.map +0 -1
  846. package/dist/tabs-content-CcZEEfTc.cjs.map +0 -1
  847. package/dist/tabs-tab-Deu7thdb.js.map +0 -1
  848. package/dist/tabs-tab-DjDhpEEE.cjs.map +0 -1
  849. package/dist/workflow-condition-card-BOeOKZa6.js.map +0 -1
  850. package/dist/workflow-condition-card-CWzCPzQe.cjs.map +0 -1
@@ -10,7 +10,7 @@ const domains_chat_context_toolCallContext = require('../../chat/context/tool-ca
10
10
  const domains_chat_messages_messageRow = require('../../chat/messages/message-row.cjs.js');
11
11
  const domains_traces_components_tracesErrorContent = require('./traces-error-content.cjs.js');
12
12
  const domains_traces_hooks_useTraceSpans = require('../hooks/use-trace-spans.cjs.js');
13
- const Button = require('../../../Button-DbJn0bJX.cjs');
13
+ const Button = require('../../../Button-BnmR2HRc.cjs');
14
14
  const Txt = require('../../../Txt-DPmEpNbp.cjs');
15
15
  const utils_cn = require('../../../cn-DG0X1KEP.cjs');
16
16
 
@@ -6,7 +6,7 @@ import { ToolCallProvider } from '../../chat/context/tool-call-context.es.js';
6
6
  import { MessageRow } from '../../chat/messages/message-row.es.js';
7
7
  import { TracesErrorContent } from './traces-error-content.es.js';
8
8
  import { useTraceSpans } from '../hooks/use-trace-spans.es.js';
9
- import { B as Button } from '../../../Button-CHTvSq4d.js';
9
+ import { B as Button } from '../../../Button-C6eUqcPI.js';
10
10
  import { T as Txt } from '../../../Txt-BP1SRHmL.js';
11
11
  import { c as cn } from '../../../cn-65Adrsfj.js';
12
12
 
@@ -5,7 +5,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
5
5
  const jsxRuntime = require('react/jsx-runtime');
6
6
  const React = require('react');
7
7
  const domains_traces_components_threadViewByTrace = require('./thread-view-by-trace.cjs.js');
8
- const dataPanel = require('../../../data-panel-C4JszAuX.cjs');
8
+ const dataPanel = require('../../../data-panel-CjvoI_lx.cjs');
9
9
 
10
10
  function TraceThreadPanel({
11
11
  threadId,
@@ -1,7 +1,7 @@
1
1
  import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import { useState } from 'react';
3
3
  import { ThreadViewByTrace } from './thread-view-by-trace.es.js';
4
- import { D as DataPanel } from '../../../data-panel-9GDF8Wx1.js';
4
+ import { D as DataPanel } from '../../../data-panel-42fdcagQ.js';
5
5
 
6
6
  function TraceThreadPanel({
7
7
  threadId,
@@ -4,8 +4,8 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
5
  const jsxRuntime = require('react/jsx-runtime');
6
6
  const domains_traces_traceFilters = require('../trace-filters.cjs.js');
7
- const dateTimeRangePicker = require('../../../date-time-range-picker-CmqD5SE4.cjs');
8
- const filterBarChip = require('../../../filter-bar-chip-CYKfWUTj.cjs');
7
+ const dateTimeRangePicker = require('../../../date-time-range-picker-BORAuIJM.cjs');
8
+ const filterBarChip = require('../../../filter-bar-chip-D4CSm9KP.cjs');
9
9
  const utils_cn = require('../../../cn-DG0X1KEP.cjs');
10
10
 
11
11
  const TRACE_TIME_RANGE_FIELD_ID = "timeRange";
@@ -1,7 +1,7 @@
1
1
  import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import { traceFilterFieldColor, traceFilterFieldIcon } from '../trace-filters.es.js';
3
- import { D as DateTimeRangePicker } from '../../../date-time-range-picker-DZ-jZE2-.js';
4
- import { u as useFilterBarContext, F as FilterBarChip, a as FilterBarFieldLabel, f as fieldSegmentAccentStyle, s as segmentClass, e as editableSegmentClass } from '../../../filter-bar-chip-u48DmCu5.js';
3
+ import { D as DateTimeRangePicker } from '../../../date-time-range-picker-C-pSI1u1.js';
4
+ import { u as useFilterBarContext, F as FilterBarChip, a as FilterBarFieldLabel, f as fieldSegmentAccentStyle, s as segmentClass, e as editableSegmentClass } from '../../../filter-bar-chip-BNPOrSrD.js';
5
5
  import { c as cn } from '../../../cn-65Adrsfj.js';
6
6
 
7
7
  const TRACE_TIME_RANGE_FIELD_ID = "timeRange";
@@ -4,7 +4,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
5
  const jsxRuntime = require('react/jsx-runtime');
6
6
  const lucideReact = require('lucide-react');
7
- const Button = require('../../../Button-DbJn0bJX.cjs');
7
+ const Button = require('../../../Button-BnmR2HRc.cjs');
8
8
  const dropdownMenu = require('../../../dropdown-menu-j2y37TL5.cjs');
9
9
 
10
10
  const TRACES_LIST_MODE_LABELS = {
@@ -1,6 +1,6 @@
1
1
  import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import { ChevronDownIcon } from 'lucide-react';
3
- import { B as Button } from '../../../Button-CHTvSq4d.js';
3
+ import { B as Button } from '../../../Button-C6eUqcPI.js';
4
4
  import { D as DropdownMenu } from '../../../dropdown-menu-DpEn6HwK.js';
5
5
 
6
6
  const TRACES_LIST_MODE_LABELS = {
@@ -8,12 +8,13 @@ const lucideReact = require('lucide-react');
8
8
  const React = require('react');
9
9
  const domains_traces_traceListColumns = require('../trace-list-columns.cjs.js');
10
10
  const domains_traces_utils_spanUtils = require('../utils/span-utils.cjs.js');
11
- const dataList = require('../../../data-list-jJGA9T9_.cjs');
12
- const dataListSkeleton = require('../../../data-list-skeleton-DtU1wRbx.cjs');
13
- const tracesDataList = require('../../../traces-data-list-Cj8_iaST.cjs');
11
+ const dataList = require('../../../data-list-D8bACyyK.cjs');
12
+ const dataListSkeleton = require('../../../data-list-skeleton-BXPfL0s7.cjs');
13
+ const tracesDataList = require('../../../traces-data-list-CU93pUfj.cjs');
14
14
  const useDataListKeyboard = require('../../../use-data-list-keyboard-DF3tLe10.cjs');
15
15
  const dropdownMenu = require('../../../dropdown-menu-j2y37TL5.cjs');
16
16
  const Txt = require('../../../Txt-DPmEpNbp.cjs');
17
+ const primitives_transitions = require('../../../primitives/transitions.cjs.js');
17
18
  const utils_cost = require('../../../utils/cost.cjs.js');
18
19
  const utils_cn = require('../../../cn-DG0X1KEP.cjs');
19
20
  const utils_duration = require('../../../utils/duration.cjs.js');
@@ -111,7 +112,7 @@ function TracesListView({
111
112
  "button",
112
113
  {
113
114
  type: "button",
114
- className: "focus-visible:outline-accent flex min-w-0 items-center gap-1 rounded-sm hover:text-foreground focus-visible:outline-2",
115
+ className: utils_cn.cn("flex min-w-0 items-center gap-1 rounded-sm hover:text-foreground", primitives_transitions.focusRing),
115
116
  children: [
116
117
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "min-w-0 truncate", children: label }),
117
118
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ListFilterIcon, { "aria-hidden": true, className: "size-[1.2em] shrink-0" })
@@ -1 +1 @@
1
- {"version":3,"file":"traces-list-view.cjs.js","sources":["../../../../src/domains/traces/components/traces-list-view.tsx"],"sourcesContent":["import { useVirtualizer } from '@tanstack/react-virtual';\nimport { ListFilterIcon } from 'lucide-react';\nimport { useEffect, useRef } from 'react';\nimport {\n DEFAULT_TRACE_COLUMN_PREFERENCES,\n TRACE_CUSTOM_COLUMN_LABELS,\n buildTraceListColumns,\n formatTraceMetadataValue,\n hasTraceColumn,\n} from '../trace-list-columns';\nimport type { TraceColumnPreferences, TraceCustomColumn, TraceUsageSummary } from '../trace-list-columns';\nimport { getInputPreview, getSpanDurationMs } from '../utils/span-utils';\nimport { DataList, DataListSkeleton, TracesDataList, useDataListKeyboard } from '@/ds/components/DataList';\nimport type { DataListSort } from '@/ds/components/DataList';\nimport { DropdownMenu } from '@/ds/components/DropdownMenu';\nimport { Txt } from '@/ds/components/Txt/Txt';\nimport { formatCompactNumber, formatCost } from '@/lib/cost';\nimport { cn } from '@/lib/utils';\nimport { formatDuration } from '@/utils/duration';\n\nexport type TracesListViewTrace = {\n traceId: string;\n /** Required for branch rows; absent on plain trace rows (which are root-rooted). */\n spanId?: string | null;\n /** `null`/missing → root span. Drives the Kind column's icon (top-level trace vs nested branch). */\n parentSpanId?: string | null;\n name: string;\n entityType?: string | null;\n entityId?: string | null;\n entityName?: string | null;\n threadId?: string | null;\n resourceId?: string | null;\n environment?: string | null;\n status?: string | null;\n /** Server-rendered preview of `input`. Present on lightweight rows, which omit `input` itself. */\n inputPreview?: string | null;\n input?: unknown;\n metadata?: Record<string, unknown> | null;\n startedAt?: Date | string | null;\n endedAt?: Date | string | null;\n createdAt: Date | string;\n};\n\nconst ROW_HEIGHT = 36;\nconst OVERSCAN = 8;\n/** Distinct values offered in a custom column's \"filter by value\" header menu. */\nconst MAX_FILTER_VALUES = 20;\n\nfunction customColumnValue(trace: TracesListViewTrace, field: TraceCustomColumn): string | null | undefined {\n return trace[field];\n}\n\nfunction distinctCustomColumnValues(traces: TracesListViewTrace[], field: TraceCustomColumn): string[] {\n const values = new Set<string>();\n for (const trace of traces) {\n const value = trace[field];\n if (typeof value === 'string' && value) values.add(value);\n if (values.size >= MAX_FILTER_VALUES) break;\n }\n return [...values];\n}\n\nfunction sumTokens(usage: TraceUsageSummary | undefined): number | undefined {\n if (usage?.inputTokens === undefined && usage?.outputTokens === undefined) return undefined;\n return (usage?.inputTokens ?? 0) + (usage?.outputTokens ?? 0);\n}\n\nexport type TracesListViewProps = {\n traces: TracesListViewTrace[];\n isLoading?: boolean;\n isFetchingNextPage?: boolean;\n hasNextPage?: boolean;\n setEndOfListElement?: (element: HTMLDivElement | null) => void;\n filtersApplied?: boolean;\n /** Currently featured/selected trace — its row gets the highlighted background. */\n featuredTraceId?: string | null;\n /**\n * Required in branches mode to disambiguate rows sharing a `traceId`. When set,\n * a row is featured only when both `traceId` and `spanId` match.\n */\n featuredSpanId?: string | null;\n /** Branches mode mixes root traces with subtraces — enables the Trace/Subtrace tooltip on the\n * level icon in the Name column, which is meaningless when every row is a root. */\n isBranchesMode?: boolean;\n /** Keys (`traceId:spanId`) of rows that just arrived via delta polling. Rows whose key is in\n * this set get a temporary tint to distinguish them from rows present since the last page-mode\n * fetch. Auto-expires upstream (in useTraces) after a short window. */\n recentlyAddedKeys?: Set<string>;\n /** Optional and metadata columns selected for this project. */\n columnPreferences?: TraceColumnPreferences;\n /** Token and estimated-cost totals, aggregated across model spans by trace ID. */\n usageByTraceId?: ReadonlyMap<string, TraceUsageSummary>;\n /** Called when a row is clicked. The current selection logic (toggle on same id) is the consumer's call. */\n onTraceClick: (trace: TracesListViewTrace) => void;\n /** Current sort of the Created column. When `onSortChange` is provided the header becomes sortable. */\n createdSort?: DataListSort;\n onSortChange?: (direction: DataListSort, key: 'startedAt') => void;\n /** When provided, custom column headers offer an `is <value>` filter for every value currently listed. */\n onFilterByField?: (field: TraceCustomColumn, value: string) => void;\n};\n\n/**\n * Virtualized presentational list. Renders only the visible window via TanStack Virtual, and\n * uses DataList primitives for layout (CSS Grid with subgrid rows).\n */\nexport function TracesListView({\n traces,\n isLoading,\n isFetchingNextPage,\n hasNextPage,\n setEndOfListElement,\n filtersApplied,\n featuredTraceId,\n featuredSpanId,\n isBranchesMode,\n recentlyAddedKeys,\n columnPreferences = DEFAULT_TRACE_COLUMN_PREFERENCES,\n usageByTraceId,\n onTraceClick,\n createdSort,\n onSortChange,\n onFilterByField,\n}: TracesListViewProps) {\n const scrollRef = useRef<HTMLDivElement | null>(null);\n const columns = buildTraceListColumns(columnPreferences);\n\n const virtualizer = useVirtualizer({\n count: traces.length,\n getScrollElement: () => scrollRef.current,\n estimateSize: () => ROW_HEIGHT,\n overscan: OVERSCAN,\n });\n\n const { getRowProps } = useDataListKeyboard({\n count: traces.length,\n containerRef: scrollRef,\n onNavigate: index => virtualizer.scrollToIndex(index),\n global: true,\n });\n\n // Reset scroll to top whenever a fresh query resolves (filter / date range change).\n // `isLoading` only flips on initial fetches — `fetchNextPage` keeps it `false`, so this\n // effect doesn't fire during pagination.\n //\n // Why the manual scroll event: when the skeleton-vs-list branch swaps in the new scroll\n // container, it mounts at `scrollTop = 0`. The virtualizer rebinds its listener but\n // doesn't re-read `scrollTop`, so it keeps the stale `scrollOffset` from the previous\n // element. `scrollToOffset(0)` no-ops because the new element is already at 0 (no scroll\n // event fires). Dispatching a synthetic `scroll` forces the virtualizer's handler to\n // read the fresh `scrollTop` and recompute `virtualItems` with `paddingTop = 0`.\n const wasLoadingRef = useRef(isLoading);\n useEffect(() => {\n if (wasLoadingRef.current && !isLoading) {\n scrollRef.current?.dispatchEvent(new Event('scroll'));\n }\n wasLoadingRef.current = isLoading;\n }, [isLoading]);\n\n if (isLoading) {\n return <DataListSkeleton columns={columns} fit=\"container\" />;\n }\n\n const virtualItems = virtualizer.getVirtualItems();\n const totalSize = virtualizer.getTotalSize();\n const paddingTop = virtualItems[0]?.start ?? 0;\n const paddingBottom =\n virtualItems.length > 0 ? Math.max(0, totalSize - (virtualItems[virtualItems.length - 1]?.end ?? 0)) : 0;\n\n return (\n <TracesDataList columns={columns} fit=\"container\" scrollRef={scrollRef} className=\"min-w-0\">\n <TracesDataList.Top>\n {onSortChange ? (\n <TracesDataList.SortableTopCell sortKey=\"startedAt\" sort={createdSort} onSortChange={onSortChange}>\n Start\n </TracesDataList.SortableTopCell>\n ) : (\n <TracesDataList.TopCell>Start</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'type') && <TracesDataList.TopCell>Primitive type</TracesDataList.TopCell>}\n <TracesDataList.TopCell>Primitive name</TracesDataList.TopCell>\n {hasTraceColumn(columnPreferences, 'input') && <TracesDataList.TopCell>Input</TracesDataList.TopCell>}\n <TracesDataList.TopCell>Status</TracesDataList.TopCell>\n {hasTraceColumn(columnPreferences, 'duration') && (\n <TracesDataList.TopCell className=\"justify-end text-right\">Duration</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'endTime') && <TracesDataList.TopCell>End</TracesDataList.TopCell>}\n {hasTraceColumn(columnPreferences, 'environment') && (\n <TracesDataList.TopCell>Environment</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'inputTokens') && (\n <TracesDataList.TopCell className=\"justify-end text-right\">Input tokens</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'outputTokens') && (\n <TracesDataList.TopCell className=\"justify-end text-right\">Output tokens</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'totalTokens') && (\n <TracesDataList.TopCell className=\"justify-end text-right\">Total tokens</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'estimatedCost') && (\n <TracesDataList.TopCell className=\"justify-end text-right\">Est. cost</TracesDataList.TopCell>\n )}\n {columnPreferences.customColumns.map(field => {\n const label = TRACE_CUSTOM_COLUMN_LABELS[field];\n const filterValues = onFilterByField ? distinctCustomColumnValues(traces, field) : [];\n if (!onFilterByField || filterValues.length === 0) {\n return <TracesDataList.TopCell key={field}>{label}</TracesDataList.TopCell>;\n }\n return (\n <TracesDataList.TopCell key={field} className=\"overflow-visible\">\n <DropdownMenu>\n <DropdownMenu.Trigger\n render={\n <button\n type=\"button\"\n className=\"focus-visible:outline-accent flex min-w-0 items-center gap-1 rounded-sm hover:text-foreground focus-visible:outline-2\"\n >\n <span className=\"min-w-0 truncate\">{label}</span>\n <ListFilterIcon aria-hidden className=\"size-[1.2em] shrink-0\" />\n </button>\n }\n />\n <DropdownMenu.Content align=\"start\">\n <DropdownMenu.Label>Filter by value</DropdownMenu.Label>\n {filterValues.map(value => (\n <DropdownMenu.Item key={value} onSelect={() => onFilterByField(field, value)}>\n <Txt as=\"span\" variant=\"body-sm\" font=\"mono\" className=\"min-w-0 truncate\">\n {value}\n </Txt>\n </DropdownMenu.Item>\n ))}\n </DropdownMenu.Content>\n </DropdownMenu>\n </TracesDataList.TopCell>\n );\n })}\n {columnPreferences.metadataKeys.map(key => (\n <TracesDataList.TopCellWithTooltip key={key} tooltip={key}>\n {key}\n </TracesDataList.TopCellWithTooltip>\n ))}\n </TracesDataList.Top>\n\n {traces.length === 0 ? (\n <TracesDataList.NoMatch\n message={filtersApplied ? 'No traces found for applied filters' : 'No traces found yet'}\n />\n ) : (\n <>\n <TracesDataList.Spacer height={paddingTop} />\n {virtualItems.map(vi => {\n const trace = traces[vi.index];\n if (!trace) return null;\n\n const isFeatured =\n trace.traceId === featuredTraceId && (featuredSpanId == null || trace.spanId === featuredSpanId);\n const rowKey = `${trace.traceId}:${trace.spanId ?? ''}`;\n const isRecentlyAdded = recentlyAddedKeys?.has(rowKey) ?? false;\n const displayDate = trace.startedAt ?? trace.createdAt;\n const usage = usageByTraceId?.get(trace.traceId);\n\n return (\n <TracesDataList.RowButton\n key={rowKey}\n ref={virtualizer.measureElement}\n data-index={vi.index}\n {...getRowProps(vi.index)}\n onClick={() => onTraceClick(trace)}\n featured={isFeatured}\n className={cn(isRecentlyAdded && 'animate-row-highlight')}\n >\n <TracesDataList.CreatedCell timestamp={displayDate} preset=\"day-time-seconds\" />\n {hasTraceColumn(columnPreferences, 'type') && <TracesDataList.TypeCell entityType={trace.entityType} />}\n <TracesDataList.NameCell\n name={trace.entityName || trace.name}\n parentSpanId={trace.parentSpanId}\n showLevelTooltip={isBranchesMode}\n />\n {hasTraceColumn(columnPreferences, 'input') && (\n <TracesDataList.InputCell input={trace.inputPreview ?? getInputPreview(trace.input)} />\n )}\n <TracesDataList.StatusCell status={trace.status} />\n {hasTraceColumn(columnPreferences, 'duration') && (\n <DataList.NumberCell font=\"mono\">\n {formatDuration(getSpanDurationMs(trace.startedAt, trace.endedAt))}\n </DataList.NumberCell>\n )}\n {hasTraceColumn(columnPreferences, 'endTime') && (\n <TracesDataList.CreatedCell timestamp={trace.endedAt ?? ''} preset=\"day-time-seconds\" />\n )}\n {hasTraceColumn(columnPreferences, 'environment') && (\n <DataList.TextCell>{trace.environment || '—'}</DataList.TextCell>\n )}\n {hasTraceColumn(columnPreferences, 'inputTokens') && (\n <DataList.NumberCell>\n {usage?.inputTokens === undefined ? undefined : formatCompactNumber(usage.inputTokens)}\n </DataList.NumberCell>\n )}\n {hasTraceColumn(columnPreferences, 'outputTokens') && (\n <DataList.NumberCell>\n {usage?.outputTokens === undefined ? undefined : formatCompactNumber(usage.outputTokens)}\n </DataList.NumberCell>\n )}\n {hasTraceColumn(columnPreferences, 'totalTokens') && (\n <DataList.NumberCell>\n {(() => {\n const total = sumTokens(usage);\n return total === undefined ? undefined : formatCompactNumber(total);\n })()}\n </DataList.NumberCell>\n )}\n {hasTraceColumn(columnPreferences, 'estimatedCost') && (\n <DataList.NumberCell>\n {usage?.estimatedCost === undefined ? undefined : formatCost(usage.estimatedCost, usage.costUnit)}\n </DataList.NumberCell>\n )}\n {columnPreferences.customColumns.map(field => (\n <DataList.TextCell font=\"mono\" key={field}>\n {customColumnValue(trace, field) ?? undefined}\n </DataList.TextCell>\n ))}\n {columnPreferences.metadataKeys.map(key => {\n const value = formatTraceMetadataValue(trace.metadata, key);\n return (\n <DataList.TextCell font=\"mono\" key={key}>\n {value}\n </DataList.TextCell>\n );\n })}\n </TracesDataList.RowButton>\n );\n })}\n <TracesDataList.Spacer height={paddingBottom} />\n <TracesDataList.NextPageLoading\n isLoading={isFetchingNextPage}\n hasMore={hasNextPage}\n setEndOfListElement={setEndOfListElement}\n />\n </>\n )}\n </TracesDataList>\n );\n}\n"],"names":["DEFAULT_TRACE_COLUMN_PREFERENCES","useRef","buildTraceListColumns","useVirtualizer","useDataListKeyboard","useEffect","jsx","DataListSkeleton","TracesDataList","jsxs","hasTraceColumn","TRACE_CUSTOM_COLUMN_LABELS","DropdownMenu","ListFilterIcon","Txt","Fragment","cn","getInputPreview","DataList","getSpanDurationMs","formatCompactNumber","formatCost","formatTraceMetadataValue"],"mappings":"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"}
1
+ {"version":3,"file":"traces-list-view.cjs.js","sources":["../../../../src/domains/traces/components/traces-list-view.tsx"],"sourcesContent":["import { useVirtualizer } from '@tanstack/react-virtual';\nimport { ListFilterIcon } from 'lucide-react';\nimport { useEffect, useRef } from 'react';\nimport {\n DEFAULT_TRACE_COLUMN_PREFERENCES,\n TRACE_CUSTOM_COLUMN_LABELS,\n buildTraceListColumns,\n formatTraceMetadataValue,\n hasTraceColumn,\n} from '../trace-list-columns';\nimport type { TraceColumnPreferences, TraceCustomColumn, TraceUsageSummary } from '../trace-list-columns';\nimport { getInputPreview, getSpanDurationMs } from '../utils/span-utils';\nimport { DataList, DataListSkeleton, TracesDataList, useDataListKeyboard } from '@/ds/components/DataList';\nimport type { DataListSort } from '@/ds/components/DataList';\nimport { DropdownMenu } from '@/ds/components/DropdownMenu';\nimport { Txt } from '@/ds/components/Txt/Txt';\nimport { focusRing } from '@/ds/primitives/transitions';\nimport { formatCompactNumber, formatCost } from '@/lib/cost';\nimport { cn } from '@/lib/utils';\nimport { formatDuration } from '@/utils/duration';\n\nexport type TracesListViewTrace = {\n traceId: string;\n /** Required for branch rows; absent on plain trace rows (which are root-rooted). */\n spanId?: string | null;\n /** `null`/missing → root span. Drives the Kind column's icon (top-level trace vs nested branch). */\n parentSpanId?: string | null;\n name: string;\n entityType?: string | null;\n entityId?: string | null;\n entityName?: string | null;\n threadId?: string | null;\n resourceId?: string | null;\n environment?: string | null;\n status?: string | null;\n /** Server-rendered preview of `input`. Present on lightweight rows, which omit `input` itself. */\n inputPreview?: string | null;\n input?: unknown;\n metadata?: Record<string, unknown> | null;\n startedAt?: Date | string | null;\n endedAt?: Date | string | null;\n createdAt: Date | string;\n};\n\nconst ROW_HEIGHT = 36;\nconst OVERSCAN = 8;\n/** Distinct values offered in a custom column's \"filter by value\" header menu. */\nconst MAX_FILTER_VALUES = 20;\n\nfunction customColumnValue(trace: TracesListViewTrace, field: TraceCustomColumn): string | null | undefined {\n return trace[field];\n}\n\nfunction distinctCustomColumnValues(traces: TracesListViewTrace[], field: TraceCustomColumn): string[] {\n const values = new Set<string>();\n for (const trace of traces) {\n const value = trace[field];\n if (typeof value === 'string' && value) values.add(value);\n if (values.size >= MAX_FILTER_VALUES) break;\n }\n return [...values];\n}\n\nfunction sumTokens(usage: TraceUsageSummary | undefined): number | undefined {\n if (usage?.inputTokens === undefined && usage?.outputTokens === undefined) return undefined;\n return (usage?.inputTokens ?? 0) + (usage?.outputTokens ?? 0);\n}\n\nexport type TracesListViewProps = {\n traces: TracesListViewTrace[];\n isLoading?: boolean;\n isFetchingNextPage?: boolean;\n hasNextPage?: boolean;\n setEndOfListElement?: (element: HTMLDivElement | null) => void;\n filtersApplied?: boolean;\n /** Currently featured/selected trace — its row gets the highlighted background. */\n featuredTraceId?: string | null;\n /**\n * Required in branches mode to disambiguate rows sharing a `traceId`. When set,\n * a row is featured only when both `traceId` and `spanId` match.\n */\n featuredSpanId?: string | null;\n /** Branches mode mixes root traces with subtraces — enables the Trace/Subtrace tooltip on the\n * level icon in the Name column, which is meaningless when every row is a root. */\n isBranchesMode?: boolean;\n /** Keys (`traceId:spanId`) of rows that just arrived via delta polling. Rows whose key is in\n * this set get a temporary tint to distinguish them from rows present since the last page-mode\n * fetch. Auto-expires upstream (in useTraces) after a short window. */\n recentlyAddedKeys?: Set<string>;\n /** Optional and metadata columns selected for this project. */\n columnPreferences?: TraceColumnPreferences;\n /** Token and estimated-cost totals, aggregated across model spans by trace ID. */\n usageByTraceId?: ReadonlyMap<string, TraceUsageSummary>;\n /** Called when a row is clicked. The current selection logic (toggle on same id) is the consumer's call. */\n onTraceClick: (trace: TracesListViewTrace) => void;\n /** Current sort of the Created column. When `onSortChange` is provided the header becomes sortable. */\n createdSort?: DataListSort;\n onSortChange?: (direction: DataListSort, key: 'startedAt') => void;\n /** When provided, custom column headers offer an `is <value>` filter for every value currently listed. */\n onFilterByField?: (field: TraceCustomColumn, value: string) => void;\n};\n\n/**\n * Virtualized presentational list. Renders only the visible window via TanStack Virtual, and\n * uses DataList primitives for layout (CSS Grid with subgrid rows).\n */\nexport function TracesListView({\n traces,\n isLoading,\n isFetchingNextPage,\n hasNextPage,\n setEndOfListElement,\n filtersApplied,\n featuredTraceId,\n featuredSpanId,\n isBranchesMode,\n recentlyAddedKeys,\n columnPreferences = DEFAULT_TRACE_COLUMN_PREFERENCES,\n usageByTraceId,\n onTraceClick,\n createdSort,\n onSortChange,\n onFilterByField,\n}: TracesListViewProps) {\n const scrollRef = useRef<HTMLDivElement | null>(null);\n const columns = buildTraceListColumns(columnPreferences);\n\n const virtualizer = useVirtualizer({\n count: traces.length,\n getScrollElement: () => scrollRef.current,\n estimateSize: () => ROW_HEIGHT,\n overscan: OVERSCAN,\n });\n\n const { getRowProps } = useDataListKeyboard({\n count: traces.length,\n containerRef: scrollRef,\n onNavigate: index => virtualizer.scrollToIndex(index),\n global: true,\n });\n\n // Reset scroll to top whenever a fresh query resolves (filter / date range change).\n // `isLoading` only flips on initial fetches — `fetchNextPage` keeps it `false`, so this\n // effect doesn't fire during pagination.\n //\n // Why the manual scroll event: when the skeleton-vs-list branch swaps in the new scroll\n // container, it mounts at `scrollTop = 0`. The virtualizer rebinds its listener but\n // doesn't re-read `scrollTop`, so it keeps the stale `scrollOffset` from the previous\n // element. `scrollToOffset(0)` no-ops because the new element is already at 0 (no scroll\n // event fires). Dispatching a synthetic `scroll` forces the virtualizer's handler to\n // read the fresh `scrollTop` and recompute `virtualItems` with `paddingTop = 0`.\n const wasLoadingRef = useRef(isLoading);\n useEffect(() => {\n if (wasLoadingRef.current && !isLoading) {\n scrollRef.current?.dispatchEvent(new Event('scroll'));\n }\n wasLoadingRef.current = isLoading;\n }, [isLoading]);\n\n if (isLoading) {\n return <DataListSkeleton columns={columns} fit=\"container\" />;\n }\n\n const virtualItems = virtualizer.getVirtualItems();\n const totalSize = virtualizer.getTotalSize();\n const paddingTop = virtualItems[0]?.start ?? 0;\n const paddingBottom =\n virtualItems.length > 0 ? Math.max(0, totalSize - (virtualItems[virtualItems.length - 1]?.end ?? 0)) : 0;\n\n return (\n <TracesDataList columns={columns} fit=\"container\" scrollRef={scrollRef} className=\"min-w-0\">\n <TracesDataList.Top>\n {onSortChange ? (\n <TracesDataList.SortableTopCell sortKey=\"startedAt\" sort={createdSort} onSortChange={onSortChange}>\n Start\n </TracesDataList.SortableTopCell>\n ) : (\n <TracesDataList.TopCell>Start</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'type') && <TracesDataList.TopCell>Primitive type</TracesDataList.TopCell>}\n <TracesDataList.TopCell>Primitive name</TracesDataList.TopCell>\n {hasTraceColumn(columnPreferences, 'input') && <TracesDataList.TopCell>Input</TracesDataList.TopCell>}\n <TracesDataList.TopCell>Status</TracesDataList.TopCell>\n {hasTraceColumn(columnPreferences, 'duration') && (\n <TracesDataList.TopCell className=\"justify-end text-right\">Duration</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'endTime') && <TracesDataList.TopCell>End</TracesDataList.TopCell>}\n {hasTraceColumn(columnPreferences, 'environment') && (\n <TracesDataList.TopCell>Environment</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'inputTokens') && (\n <TracesDataList.TopCell className=\"justify-end text-right\">Input tokens</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'outputTokens') && (\n <TracesDataList.TopCell className=\"justify-end text-right\">Output tokens</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'totalTokens') && (\n <TracesDataList.TopCell className=\"justify-end text-right\">Total tokens</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'estimatedCost') && (\n <TracesDataList.TopCell className=\"justify-end text-right\">Est. cost</TracesDataList.TopCell>\n )}\n {columnPreferences.customColumns.map(field => {\n const label = TRACE_CUSTOM_COLUMN_LABELS[field];\n const filterValues = onFilterByField ? distinctCustomColumnValues(traces, field) : [];\n if (!onFilterByField || filterValues.length === 0) {\n return <TracesDataList.TopCell key={field}>{label}</TracesDataList.TopCell>;\n }\n return (\n <TracesDataList.TopCell key={field} className=\"overflow-visible\">\n <DropdownMenu>\n <DropdownMenu.Trigger\n render={\n <button\n type=\"button\"\n className={cn('flex min-w-0 items-center gap-1 rounded-sm hover:text-foreground', focusRing)}\n >\n <span className=\"min-w-0 truncate\">{label}</span>\n <ListFilterIcon aria-hidden className=\"size-[1.2em] shrink-0\" />\n </button>\n }\n />\n <DropdownMenu.Content align=\"start\">\n <DropdownMenu.Label>Filter by value</DropdownMenu.Label>\n {filterValues.map(value => (\n <DropdownMenu.Item key={value} onSelect={() => onFilterByField(field, value)}>\n <Txt as=\"span\" variant=\"body-sm\" font=\"mono\" className=\"min-w-0 truncate\">\n {value}\n </Txt>\n </DropdownMenu.Item>\n ))}\n </DropdownMenu.Content>\n </DropdownMenu>\n </TracesDataList.TopCell>\n );\n })}\n {columnPreferences.metadataKeys.map(key => (\n <TracesDataList.TopCellWithTooltip key={key} tooltip={key}>\n {key}\n </TracesDataList.TopCellWithTooltip>\n ))}\n </TracesDataList.Top>\n\n {traces.length === 0 ? (\n <TracesDataList.NoMatch\n message={filtersApplied ? 'No traces found for applied filters' : 'No traces found yet'}\n />\n ) : (\n <>\n <TracesDataList.Spacer height={paddingTop} />\n {virtualItems.map(vi => {\n const trace = traces[vi.index];\n if (!trace) return null;\n\n const isFeatured =\n trace.traceId === featuredTraceId && (featuredSpanId == null || trace.spanId === featuredSpanId);\n const rowKey = `${trace.traceId}:${trace.spanId ?? ''}`;\n const isRecentlyAdded = recentlyAddedKeys?.has(rowKey) ?? false;\n const displayDate = trace.startedAt ?? trace.createdAt;\n const usage = usageByTraceId?.get(trace.traceId);\n\n return (\n <TracesDataList.RowButton\n key={rowKey}\n ref={virtualizer.measureElement}\n data-index={vi.index}\n {...getRowProps(vi.index)}\n onClick={() => onTraceClick(trace)}\n featured={isFeatured}\n className={cn(isRecentlyAdded && 'animate-row-highlight')}\n >\n <TracesDataList.CreatedCell timestamp={displayDate} preset=\"day-time-seconds\" />\n {hasTraceColumn(columnPreferences, 'type') && <TracesDataList.TypeCell entityType={trace.entityType} />}\n <TracesDataList.NameCell\n name={trace.entityName || trace.name}\n parentSpanId={trace.parentSpanId}\n showLevelTooltip={isBranchesMode}\n />\n {hasTraceColumn(columnPreferences, 'input') && (\n <TracesDataList.InputCell input={trace.inputPreview ?? getInputPreview(trace.input)} />\n )}\n <TracesDataList.StatusCell status={trace.status} />\n {hasTraceColumn(columnPreferences, 'duration') && (\n <DataList.NumberCell font=\"mono\">\n {formatDuration(getSpanDurationMs(trace.startedAt, trace.endedAt))}\n </DataList.NumberCell>\n )}\n {hasTraceColumn(columnPreferences, 'endTime') && (\n <TracesDataList.CreatedCell timestamp={trace.endedAt ?? ''} preset=\"day-time-seconds\" />\n )}\n {hasTraceColumn(columnPreferences, 'environment') && (\n <DataList.TextCell>{trace.environment || '—'}</DataList.TextCell>\n )}\n {hasTraceColumn(columnPreferences, 'inputTokens') && (\n <DataList.NumberCell>\n {usage?.inputTokens === undefined ? undefined : formatCompactNumber(usage.inputTokens)}\n </DataList.NumberCell>\n )}\n {hasTraceColumn(columnPreferences, 'outputTokens') && (\n <DataList.NumberCell>\n {usage?.outputTokens === undefined ? undefined : formatCompactNumber(usage.outputTokens)}\n </DataList.NumberCell>\n )}\n {hasTraceColumn(columnPreferences, 'totalTokens') && (\n <DataList.NumberCell>\n {(() => {\n const total = sumTokens(usage);\n return total === undefined ? undefined : formatCompactNumber(total);\n })()}\n </DataList.NumberCell>\n )}\n {hasTraceColumn(columnPreferences, 'estimatedCost') && (\n <DataList.NumberCell>\n {usage?.estimatedCost === undefined ? undefined : formatCost(usage.estimatedCost, usage.costUnit)}\n </DataList.NumberCell>\n )}\n {columnPreferences.customColumns.map(field => (\n <DataList.TextCell font=\"mono\" key={field}>\n {customColumnValue(trace, field) ?? undefined}\n </DataList.TextCell>\n ))}\n {columnPreferences.metadataKeys.map(key => {\n const value = formatTraceMetadataValue(trace.metadata, key);\n return (\n <DataList.TextCell font=\"mono\" key={key}>\n {value}\n </DataList.TextCell>\n );\n })}\n </TracesDataList.RowButton>\n );\n })}\n <TracesDataList.Spacer height={paddingBottom} />\n <TracesDataList.NextPageLoading\n isLoading={isFetchingNextPage}\n hasMore={hasNextPage}\n setEndOfListElement={setEndOfListElement}\n />\n </>\n )}\n </TracesDataList>\n );\n}\n"],"names":["DEFAULT_TRACE_COLUMN_PREFERENCES","useRef","buildTraceListColumns","useVirtualizer","useDataListKeyboard","useEffect","jsx","DataListSkeleton","TracesDataList","jsxs","hasTraceColumn","TRACE_CUSTOM_COLUMN_LABELS","DropdownMenu","cn","focusRing","ListFilterIcon","Txt","Fragment","getInputPreview","DataList","getSpanDurationMs","formatCompactNumber","formatCost","formatTraceMetadataValue"],"mappings":"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"}
@@ -4,12 +4,13 @@ import { ListFilterIcon } from 'lucide-react';
4
4
  import { useRef, useEffect } from 'react';
5
5
  import { buildTraceListColumns, hasTraceColumn, DEFAULT_TRACE_COLUMN_PREFERENCES, TRACE_CUSTOM_COLUMN_LABELS, formatTraceMetadataValue } from '../trace-list-columns.es.js';
6
6
  import { getInputPreview, getSpanDurationMs } from '../utils/span-utils.es.js';
7
- import { D as DataList } from '../../../data-list-cF2lpf-v.js';
8
- import { D as DataListSkeleton } from '../../../data-list-skeleton-BiWUa3JR.js';
9
- import { T as TracesDataList } from '../../../traces-data-list-DcHBQtgZ.js';
7
+ import { D as DataList } from '../../../data-list-DL_oFE4j.js';
8
+ import { D as DataListSkeleton } from '../../../data-list-skeleton-Bk9LI0J0.js';
9
+ import { T as TracesDataList } from '../../../traces-data-list-DaedGcID.js';
10
10
  import { u as useDataListKeyboard } from '../../../use-data-list-keyboard-DFQr4t38.js';
11
11
  import { D as DropdownMenu } from '../../../dropdown-menu-DpEn6HwK.js';
12
12
  import { T as Txt } from '../../../Txt-BP1SRHmL.js';
13
+ import { focusRing } from '../../../primitives/transitions.es.js';
13
14
  import { formatCompactNumber, formatCost } from '../../../utils/cost.es.js';
14
15
  import { c as cn } from '../../../cn-65Adrsfj.js';
15
16
  import { formatDuration } from '../../../utils/duration.es.js';
@@ -107,7 +108,7 @@ function TracesListView({
107
108
  "button",
108
109
  {
109
110
  type: "button",
110
- className: "focus-visible:outline-accent flex min-w-0 items-center gap-1 rounded-sm hover:text-foreground focus-visible:outline-2",
111
+ className: cn("flex min-w-0 items-center gap-1 rounded-sm hover:text-foreground", focusRing),
111
112
  children: [
112
113
  /* @__PURE__ */ jsx("span", { className: "min-w-0 truncate", children: label }),
113
114
  /* @__PURE__ */ jsx(ListFilterIcon, { "aria-hidden": true, className: "size-[1.2em] shrink-0" })
@@ -1 +1 @@
1
- {"version":3,"file":"traces-list-view.es.js","sources":["../../../../src/domains/traces/components/traces-list-view.tsx"],"sourcesContent":["import { useVirtualizer } from '@tanstack/react-virtual';\nimport { ListFilterIcon } from 'lucide-react';\nimport { useEffect, useRef } from 'react';\nimport {\n DEFAULT_TRACE_COLUMN_PREFERENCES,\n TRACE_CUSTOM_COLUMN_LABELS,\n buildTraceListColumns,\n formatTraceMetadataValue,\n hasTraceColumn,\n} from '../trace-list-columns';\nimport type { TraceColumnPreferences, TraceCustomColumn, TraceUsageSummary } from '../trace-list-columns';\nimport { getInputPreview, getSpanDurationMs } from '../utils/span-utils';\nimport { DataList, DataListSkeleton, TracesDataList, useDataListKeyboard } from '@/ds/components/DataList';\nimport type { DataListSort } from '@/ds/components/DataList';\nimport { DropdownMenu } from '@/ds/components/DropdownMenu';\nimport { Txt } from '@/ds/components/Txt/Txt';\nimport { formatCompactNumber, formatCost } from '@/lib/cost';\nimport { cn } from '@/lib/utils';\nimport { formatDuration } from '@/utils/duration';\n\nexport type TracesListViewTrace = {\n traceId: string;\n /** Required for branch rows; absent on plain trace rows (which are root-rooted). */\n spanId?: string | null;\n /** `null`/missing → root span. Drives the Kind column's icon (top-level trace vs nested branch). */\n parentSpanId?: string | null;\n name: string;\n entityType?: string | null;\n entityId?: string | null;\n entityName?: string | null;\n threadId?: string | null;\n resourceId?: string | null;\n environment?: string | null;\n status?: string | null;\n /** Server-rendered preview of `input`. Present on lightweight rows, which omit `input` itself. */\n inputPreview?: string | null;\n input?: unknown;\n metadata?: Record<string, unknown> | null;\n startedAt?: Date | string | null;\n endedAt?: Date | string | null;\n createdAt: Date | string;\n};\n\nconst ROW_HEIGHT = 36;\nconst OVERSCAN = 8;\n/** Distinct values offered in a custom column's \"filter by value\" header menu. */\nconst MAX_FILTER_VALUES = 20;\n\nfunction customColumnValue(trace: TracesListViewTrace, field: TraceCustomColumn): string | null | undefined {\n return trace[field];\n}\n\nfunction distinctCustomColumnValues(traces: TracesListViewTrace[], field: TraceCustomColumn): string[] {\n const values = new Set<string>();\n for (const trace of traces) {\n const value = trace[field];\n if (typeof value === 'string' && value) values.add(value);\n if (values.size >= MAX_FILTER_VALUES) break;\n }\n return [...values];\n}\n\nfunction sumTokens(usage: TraceUsageSummary | undefined): number | undefined {\n if (usage?.inputTokens === undefined && usage?.outputTokens === undefined) return undefined;\n return (usage?.inputTokens ?? 0) + (usage?.outputTokens ?? 0);\n}\n\nexport type TracesListViewProps = {\n traces: TracesListViewTrace[];\n isLoading?: boolean;\n isFetchingNextPage?: boolean;\n hasNextPage?: boolean;\n setEndOfListElement?: (element: HTMLDivElement | null) => void;\n filtersApplied?: boolean;\n /** Currently featured/selected trace — its row gets the highlighted background. */\n featuredTraceId?: string | null;\n /**\n * Required in branches mode to disambiguate rows sharing a `traceId`. When set,\n * a row is featured only when both `traceId` and `spanId` match.\n */\n featuredSpanId?: string | null;\n /** Branches mode mixes root traces with subtraces — enables the Trace/Subtrace tooltip on the\n * level icon in the Name column, which is meaningless when every row is a root. */\n isBranchesMode?: boolean;\n /** Keys (`traceId:spanId`) of rows that just arrived via delta polling. Rows whose key is in\n * this set get a temporary tint to distinguish them from rows present since the last page-mode\n * fetch. Auto-expires upstream (in useTraces) after a short window. */\n recentlyAddedKeys?: Set<string>;\n /** Optional and metadata columns selected for this project. */\n columnPreferences?: TraceColumnPreferences;\n /** Token and estimated-cost totals, aggregated across model spans by trace ID. */\n usageByTraceId?: ReadonlyMap<string, TraceUsageSummary>;\n /** Called when a row is clicked. The current selection logic (toggle on same id) is the consumer's call. */\n onTraceClick: (trace: TracesListViewTrace) => void;\n /** Current sort of the Created column. When `onSortChange` is provided the header becomes sortable. */\n createdSort?: DataListSort;\n onSortChange?: (direction: DataListSort, key: 'startedAt') => void;\n /** When provided, custom column headers offer an `is <value>` filter for every value currently listed. */\n onFilterByField?: (field: TraceCustomColumn, value: string) => void;\n};\n\n/**\n * Virtualized presentational list. Renders only the visible window via TanStack Virtual, and\n * uses DataList primitives for layout (CSS Grid with subgrid rows).\n */\nexport function TracesListView({\n traces,\n isLoading,\n isFetchingNextPage,\n hasNextPage,\n setEndOfListElement,\n filtersApplied,\n featuredTraceId,\n featuredSpanId,\n isBranchesMode,\n recentlyAddedKeys,\n columnPreferences = DEFAULT_TRACE_COLUMN_PREFERENCES,\n usageByTraceId,\n onTraceClick,\n createdSort,\n onSortChange,\n onFilterByField,\n}: TracesListViewProps) {\n const scrollRef = useRef<HTMLDivElement | null>(null);\n const columns = buildTraceListColumns(columnPreferences);\n\n const virtualizer = useVirtualizer({\n count: traces.length,\n getScrollElement: () => scrollRef.current,\n estimateSize: () => ROW_HEIGHT,\n overscan: OVERSCAN,\n });\n\n const { getRowProps } = useDataListKeyboard({\n count: traces.length,\n containerRef: scrollRef,\n onNavigate: index => virtualizer.scrollToIndex(index),\n global: true,\n });\n\n // Reset scroll to top whenever a fresh query resolves (filter / date range change).\n // `isLoading` only flips on initial fetches — `fetchNextPage` keeps it `false`, so this\n // effect doesn't fire during pagination.\n //\n // Why the manual scroll event: when the skeleton-vs-list branch swaps in the new scroll\n // container, it mounts at `scrollTop = 0`. The virtualizer rebinds its listener but\n // doesn't re-read `scrollTop`, so it keeps the stale `scrollOffset` from the previous\n // element. `scrollToOffset(0)` no-ops because the new element is already at 0 (no scroll\n // event fires). Dispatching a synthetic `scroll` forces the virtualizer's handler to\n // read the fresh `scrollTop` and recompute `virtualItems` with `paddingTop = 0`.\n const wasLoadingRef = useRef(isLoading);\n useEffect(() => {\n if (wasLoadingRef.current && !isLoading) {\n scrollRef.current?.dispatchEvent(new Event('scroll'));\n }\n wasLoadingRef.current = isLoading;\n }, [isLoading]);\n\n if (isLoading) {\n return <DataListSkeleton columns={columns} fit=\"container\" />;\n }\n\n const virtualItems = virtualizer.getVirtualItems();\n const totalSize = virtualizer.getTotalSize();\n const paddingTop = virtualItems[0]?.start ?? 0;\n const paddingBottom =\n virtualItems.length > 0 ? Math.max(0, totalSize - (virtualItems[virtualItems.length - 1]?.end ?? 0)) : 0;\n\n return (\n <TracesDataList columns={columns} fit=\"container\" scrollRef={scrollRef} className=\"min-w-0\">\n <TracesDataList.Top>\n {onSortChange ? (\n <TracesDataList.SortableTopCell sortKey=\"startedAt\" sort={createdSort} onSortChange={onSortChange}>\n Start\n </TracesDataList.SortableTopCell>\n ) : (\n <TracesDataList.TopCell>Start</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'type') && <TracesDataList.TopCell>Primitive type</TracesDataList.TopCell>}\n <TracesDataList.TopCell>Primitive name</TracesDataList.TopCell>\n {hasTraceColumn(columnPreferences, 'input') && <TracesDataList.TopCell>Input</TracesDataList.TopCell>}\n <TracesDataList.TopCell>Status</TracesDataList.TopCell>\n {hasTraceColumn(columnPreferences, 'duration') && (\n <TracesDataList.TopCell className=\"justify-end text-right\">Duration</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'endTime') && <TracesDataList.TopCell>End</TracesDataList.TopCell>}\n {hasTraceColumn(columnPreferences, 'environment') && (\n <TracesDataList.TopCell>Environment</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'inputTokens') && (\n <TracesDataList.TopCell className=\"justify-end text-right\">Input tokens</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'outputTokens') && (\n <TracesDataList.TopCell className=\"justify-end text-right\">Output tokens</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'totalTokens') && (\n <TracesDataList.TopCell className=\"justify-end text-right\">Total tokens</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'estimatedCost') && (\n <TracesDataList.TopCell className=\"justify-end text-right\">Est. cost</TracesDataList.TopCell>\n )}\n {columnPreferences.customColumns.map(field => {\n const label = TRACE_CUSTOM_COLUMN_LABELS[field];\n const filterValues = onFilterByField ? distinctCustomColumnValues(traces, field) : [];\n if (!onFilterByField || filterValues.length === 0) {\n return <TracesDataList.TopCell key={field}>{label}</TracesDataList.TopCell>;\n }\n return (\n <TracesDataList.TopCell key={field} className=\"overflow-visible\">\n <DropdownMenu>\n <DropdownMenu.Trigger\n render={\n <button\n type=\"button\"\n className=\"focus-visible:outline-accent flex min-w-0 items-center gap-1 rounded-sm hover:text-foreground focus-visible:outline-2\"\n >\n <span className=\"min-w-0 truncate\">{label}</span>\n <ListFilterIcon aria-hidden className=\"size-[1.2em] shrink-0\" />\n </button>\n }\n />\n <DropdownMenu.Content align=\"start\">\n <DropdownMenu.Label>Filter by value</DropdownMenu.Label>\n {filterValues.map(value => (\n <DropdownMenu.Item key={value} onSelect={() => onFilterByField(field, value)}>\n <Txt as=\"span\" variant=\"body-sm\" font=\"mono\" className=\"min-w-0 truncate\">\n {value}\n </Txt>\n </DropdownMenu.Item>\n ))}\n </DropdownMenu.Content>\n </DropdownMenu>\n </TracesDataList.TopCell>\n );\n })}\n {columnPreferences.metadataKeys.map(key => (\n <TracesDataList.TopCellWithTooltip key={key} tooltip={key}>\n {key}\n </TracesDataList.TopCellWithTooltip>\n ))}\n </TracesDataList.Top>\n\n {traces.length === 0 ? (\n <TracesDataList.NoMatch\n message={filtersApplied ? 'No traces found for applied filters' : 'No traces found yet'}\n />\n ) : (\n <>\n <TracesDataList.Spacer height={paddingTop} />\n {virtualItems.map(vi => {\n const trace = traces[vi.index];\n if (!trace) return null;\n\n const isFeatured =\n trace.traceId === featuredTraceId && (featuredSpanId == null || trace.spanId === featuredSpanId);\n const rowKey = `${trace.traceId}:${trace.spanId ?? ''}`;\n const isRecentlyAdded = recentlyAddedKeys?.has(rowKey) ?? false;\n const displayDate = trace.startedAt ?? trace.createdAt;\n const usage = usageByTraceId?.get(trace.traceId);\n\n return (\n <TracesDataList.RowButton\n key={rowKey}\n ref={virtualizer.measureElement}\n data-index={vi.index}\n {...getRowProps(vi.index)}\n onClick={() => onTraceClick(trace)}\n featured={isFeatured}\n className={cn(isRecentlyAdded && 'animate-row-highlight')}\n >\n <TracesDataList.CreatedCell timestamp={displayDate} preset=\"day-time-seconds\" />\n {hasTraceColumn(columnPreferences, 'type') && <TracesDataList.TypeCell entityType={trace.entityType} />}\n <TracesDataList.NameCell\n name={trace.entityName || trace.name}\n parentSpanId={trace.parentSpanId}\n showLevelTooltip={isBranchesMode}\n />\n {hasTraceColumn(columnPreferences, 'input') && (\n <TracesDataList.InputCell input={trace.inputPreview ?? getInputPreview(trace.input)} />\n )}\n <TracesDataList.StatusCell status={trace.status} />\n {hasTraceColumn(columnPreferences, 'duration') && (\n <DataList.NumberCell font=\"mono\">\n {formatDuration(getSpanDurationMs(trace.startedAt, trace.endedAt))}\n </DataList.NumberCell>\n )}\n {hasTraceColumn(columnPreferences, 'endTime') && (\n <TracesDataList.CreatedCell timestamp={trace.endedAt ?? ''} preset=\"day-time-seconds\" />\n )}\n {hasTraceColumn(columnPreferences, 'environment') && (\n <DataList.TextCell>{trace.environment || '—'}</DataList.TextCell>\n )}\n {hasTraceColumn(columnPreferences, 'inputTokens') && (\n <DataList.NumberCell>\n {usage?.inputTokens === undefined ? undefined : formatCompactNumber(usage.inputTokens)}\n </DataList.NumberCell>\n )}\n {hasTraceColumn(columnPreferences, 'outputTokens') && (\n <DataList.NumberCell>\n {usage?.outputTokens === undefined ? undefined : formatCompactNumber(usage.outputTokens)}\n </DataList.NumberCell>\n )}\n {hasTraceColumn(columnPreferences, 'totalTokens') && (\n <DataList.NumberCell>\n {(() => {\n const total = sumTokens(usage);\n return total === undefined ? undefined : formatCompactNumber(total);\n })()}\n </DataList.NumberCell>\n )}\n {hasTraceColumn(columnPreferences, 'estimatedCost') && (\n <DataList.NumberCell>\n {usage?.estimatedCost === undefined ? undefined : formatCost(usage.estimatedCost, usage.costUnit)}\n </DataList.NumberCell>\n )}\n {columnPreferences.customColumns.map(field => (\n <DataList.TextCell font=\"mono\" key={field}>\n {customColumnValue(trace, field) ?? undefined}\n </DataList.TextCell>\n ))}\n {columnPreferences.metadataKeys.map(key => {\n const value = formatTraceMetadataValue(trace.metadata, key);\n return (\n <DataList.TextCell font=\"mono\" key={key}>\n {value}\n </DataList.TextCell>\n );\n })}\n </TracesDataList.RowButton>\n );\n })}\n <TracesDataList.Spacer height={paddingBottom} />\n <TracesDataList.NextPageLoading\n isLoading={isFetchingNextPage}\n hasMore={hasNextPage}\n setEndOfListElement={setEndOfListElement}\n />\n </>\n )}\n </TracesDataList>\n );\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;AA2CA,MAAM,UAAA,GAAa,EAAA;AACnB,MAAM,QAAA,GAAW,CAAA;AAEjB,MAAM,iBAAA,GAAoB,EAAA;AAE1B,SAAS,iBAAA,CAAkB,OAA4B,KAAA,EAAqD;AAC1G,EAAA,OAAO,MAAM,KAAK,CAAA;AACpB;AAEA,SAAS,0BAAA,CAA2B,QAA+B,KAAA,EAAoC;AACrG,EAAA,MAAM,MAAA,uBAAa,GAAA,EAAY;AAC/B,EAAA,KAAA,MAAW,SAAS,MAAA,EAAQ;AAC1B,IAAA,MAAM,KAAA,GAAQ,MAAM,KAAK,CAAA;AACzB,IAAA,IAAI,OAAO,KAAA,KAAU,QAAA,IAAY,KAAA,EAAO,MAAA,CAAO,IAAI,KAAK,CAAA;AACxD,IAAA,IAAI,MAAA,CAAO,QAAQ,iBAAA,EAAmB;AAAA,EACxC;AACA,EAAA,OAAO,CAAC,GAAG,MAAM,CAAA;AACnB;AAEA,SAAS,UAAU,KAAA,EAA0D;AAC3E,EAAA,IAAI,OAAO,WAAA,KAAgB,MAAA,IAAa,KAAA,EAAO,YAAA,KAAiB,QAAW,OAAO,MAAA;AAClF,EAAA,OAAA,CAAQ,KAAA,EAAO,WAAA,IAAe,CAAA,KAAM,KAAA,EAAO,YAAA,IAAgB,CAAA,CAAA;AAC7D;AAwCO,SAAS,cAAA,CAAe;AAAA,EAC7B,MAAA;AAAA,EACA,SAAA;AAAA,EACA,kBAAA;AAAA,EACA,WAAA;AAAA,EACA,mBAAA;AAAA,EACA,cAAA;AAAA,EACA,eAAA;AAAA,EACA,cAAA;AAAA,EACA,cAAA;AAAA,EACA,iBAAA;AAAA,EACA,iBAAA,GAAoB,gCAAA;AAAA,EACpB,cAAA;AAAA,EACA,YAAA;AAAA,EACA,WAAA;AAAA,EACA,YAAA;AAAA,EACA;AACF,CAAA,EAAwB;AACtB,EAAA,MAAM,SAAA,GAAY,OAA8B,IAAI,CAAA;AACpD,EAAA,MAAM,OAAA,GAAU,sBAAsB,iBAAiB,CAAA;AAEvD,EAAA,MAAM,cAAc,cAAA,CAAe;AAAA,IACjC,OAAO,MAAA,CAAO,MAAA;AAAA,IACd,gBAAA,EAAkB,MAAM,SAAA,CAAU,OAAA;AAAA,IAClC,cAAc,MAAM,UAAA;AAAA,IACpB,QAAA,EAAU;AAAA,GACX,CAAA;AAED,EAAA,MAAM,EAAE,WAAA,EAAY,GAAI,mBAAA,CAAoB;AAAA,IAC1C,OAAO,MAAA,CAAO,MAAA;AAAA,IACd,YAAA,EAAc,SAAA;AAAA,IACd,UAAA,EAAY,CAAA,KAAA,KAAS,WAAA,CAAY,aAAA,CAAc,KAAK,CAAA;AAAA,IACpD,MAAA,EAAQ;AAAA,GACT,CAAA;AAYD,EAAA,MAAM,aAAA,GAAgB,OAAO,SAAS,CAAA;AACtC,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,aAAA,CAAc,OAAA,IAAW,CAAC,SAAA,EAAW;AACvC,MAAA,SAAA,CAAU,OAAA,EAAS,aAAA,CAAc,IAAI,KAAA,CAAM,QAAQ,CAAC,CAAA;AAAA,IACtD;AACA,IAAA,aAAA,CAAc,OAAA,GAAU,SAAA;AAAA,EAC1B,CAAA,EAAG,CAAC,SAAS,CAAC,CAAA;AAEd,EAAA,IAAI,SAAA,EAAW;AACb,IAAA,uBAAO,GAAA,CAAC,gBAAA,EAAA,EAAiB,OAAA,EAAkB,GAAA,EAAI,WAAA,EAAY,CAAA;AAAA,EAC7D;AAEA,EAAA,MAAM,YAAA,GAAe,YAAY,eAAA,EAAgB;AACjD,EAAA,MAAM,SAAA,GAAY,YAAY,YAAA,EAAa;AAC3C,EAAA,MAAM,UAAA,GAAa,YAAA,CAAa,CAAC,CAAA,EAAG,KAAA,IAAS,CAAA;AAC7C,EAAA,MAAM,aAAA,GACJ,YAAA,CAAa,MAAA,GAAS,CAAA,GAAI,KAAK,GAAA,CAAI,CAAA,EAAG,SAAA,IAAa,YAAA,CAAa,aAAa,MAAA,GAAS,CAAC,CAAA,EAAG,GAAA,IAAO,EAAE,CAAA,GAAI,CAAA;AAEzG,EAAA,4BACG,cAAA,EAAA,EAAe,OAAA,EAAkB,KAAI,WAAA,EAAY,SAAA,EAAsB,WAAU,SAAA,EAChF,QAAA,EAAA;AAAA,oBAAA,IAAA,CAAC,cAAA,CAAe,KAAf,EACE,QAAA,EAAA;AAAA,MAAA,YAAA,mBACC,GAAA,CAAC,cAAA,CAAe,eAAA,EAAf,EAA+B,SAAQ,WAAA,EAAY,IAAA,EAAM,WAAA,EAAa,YAAA,EAA4B,mBAEnG,CAAA,mBAEA,GAAA,CAAC,cAAA,CAAe,OAAA,EAAf,EAAuB,QAAA,EAAA,OAAA,EAAK,CAAA;AAAA,MAE9B,cAAA,CAAe,mBAAmB,MAAM,CAAA,wBAAM,cAAA,CAAe,OAAA,EAAf,EAAuB,QAAA,EAAA,gBAAA,EAAc,CAAA;AAAA,sBACpF,GAAA,CAAC,cAAA,CAAe,OAAA,EAAf,EAAuB,QAAA,EAAA,gBAAA,EAAc,CAAA;AAAA,MACrC,cAAA,CAAe,mBAAmB,OAAO,CAAA,wBAAM,cAAA,CAAe,OAAA,EAAf,EAAuB,QAAA,EAAA,OAAA,EAAK,CAAA;AAAA,sBAC5E,GAAA,CAAC,cAAA,CAAe,OAAA,EAAf,EAAuB,QAAA,EAAA,QAAA,EAAM,CAAA;AAAA,MAC7B,cAAA,CAAe,iBAAA,EAAmB,UAAU,CAAA,oBAC3C,GAAA,CAAC,eAAe,OAAA,EAAf,EAAuB,SAAA,EAAU,wBAAA,EAAyB,QAAA,EAAA,UAAA,EAAQ,CAAA;AAAA,MAEpE,cAAA,CAAe,mBAAmB,SAAS,CAAA,wBAAM,cAAA,CAAe,OAAA,EAAf,EAAuB,QAAA,EAAA,KAAA,EAAG,CAAA;AAAA,MAC3E,cAAA,CAAe,mBAAmB,aAAa,CAAA,wBAC7C,cAAA,CAAe,OAAA,EAAf,EAAuB,QAAA,EAAA,aAAA,EAAW,CAAA;AAAA,MAEpC,cAAA,CAAe,iBAAA,EAAmB,aAAa,CAAA,oBAC9C,GAAA,CAAC,eAAe,OAAA,EAAf,EAAuB,SAAA,EAAU,wBAAA,EAAyB,QAAA,EAAA,cAAA,EAAY,CAAA;AAAA,MAExE,cAAA,CAAe,iBAAA,EAAmB,cAAc,CAAA,oBAC/C,GAAA,CAAC,eAAe,OAAA,EAAf,EAAuB,SAAA,EAAU,wBAAA,EAAyB,QAAA,EAAA,eAAA,EAAa,CAAA;AAAA,MAEzE,cAAA,CAAe,iBAAA,EAAmB,aAAa,CAAA,oBAC9C,GAAA,CAAC,eAAe,OAAA,EAAf,EAAuB,SAAA,EAAU,wBAAA,EAAyB,QAAA,EAAA,cAAA,EAAY,CAAA;AAAA,MAExE,cAAA,CAAe,iBAAA,EAAmB,eAAe,CAAA,oBAChD,GAAA,CAAC,eAAe,OAAA,EAAf,EAAuB,SAAA,EAAU,wBAAA,EAAyB,QAAA,EAAA,WAAA,EAAS,CAAA;AAAA,MAErE,iBAAA,CAAkB,aAAA,CAAc,GAAA,CAAI,CAAA,KAAA,KAAS;AAC5C,QAAA,MAAM,KAAA,GAAQ,2BAA2B,KAAK,CAAA;AAC9C,QAAA,MAAM,eAAe,eAAA,GAAkB,0BAAA,CAA2B,MAAA,EAAQ,KAAK,IAAI,EAAC;AACpF,QAAA,IAAI,CAAC,eAAA,IAAmB,YAAA,CAAa,MAAA,KAAW,CAAA,EAAG;AACjD,UAAA,uBAAO,GAAA,CAAC,cAAA,CAAe,OAAA,EAAf,EAAoC,mBAAR,KAAc,CAAA;AAAA,QACpD;AACA,QAAA,2BACG,cAAA,CAAe,OAAA,EAAf,EAAmC,SAAA,EAAU,kBAAA,EAC5C,+BAAC,YAAA,EAAA,EACC,QAAA,EAAA;AAAA,0BAAA,GAAA;AAAA,YAAC,YAAA,CAAa,OAAA;AAAA,YAAb;AAAA,cACC,MAAA,kBACE,IAAA;AAAA,gBAAC,QAAA;AAAA,gBAAA;AAAA,kBACC,IAAA,EAAK,QAAA;AAAA,kBACL,SAAA,EAAU,uHAAA;AAAA,kBAEV,QAAA,EAAA;AAAA,oCAAA,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,kBAAA,EAAoB,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,oCAC1C,GAAA,CAAC,cAAA,EAAA,EAAe,aAAA,EAAW,IAAA,EAAC,WAAU,uBAAA,EAAwB;AAAA;AAAA;AAAA;AAChE;AAAA,WAEJ;AAAA,0BACA,IAAA,CAAC,YAAA,CAAa,OAAA,EAAb,EAAqB,OAAM,OAAA,EAC1B,QAAA,EAAA;AAAA,4BAAA,GAAA,CAAC,YAAA,CAAa,KAAA,EAAb,EAAmB,QAAA,EAAA,iBAAA,EAAe,CAAA;AAAA,YAClC,YAAA,CAAa,GAAA,CAAI,CAAA,KAAA,qBAChB,GAAA,CAAC,YAAA,CAAa,IAAA,EAAb,EAA8B,QAAA,EAAU,MAAM,eAAA,CAAgB,KAAA,EAAO,KAAK,CAAA,EACzE,8BAAC,GAAA,EAAA,EAAI,EAAA,EAAG,MAAA,EAAO,OAAA,EAAQ,SAAA,EAAU,IAAA,EAAK,MAAA,EAAO,SAAA,EAAU,kBAAA,EACpD,QAAA,EAAA,KAAA,EACH,CAAA,EAAA,EAHsB,KAIxB,CACD;AAAA,WAAA,EACH;AAAA,SAAA,EACF,KAvB2B,KAwB7B,CAAA;AAAA,MAEJ,CAAC,CAAA;AAAA,MACA,iBAAA,CAAkB,YAAA,CAAa,GAAA,CAAI,CAAA,GAAA,qBAClC,GAAA,CAAC,cAAA,CAAe,kBAAA,EAAf,EAA4C,OAAA,EAAS,GAAA,EACnD,QAAA,EAAA,GAAA,EAAA,EADqC,GAExC,CACD;AAAA,KAAA,EACH,CAAA;AAAA,IAEC,MAAA,CAAO,WAAW,CAAA,mBACjB,GAAA;AAAA,MAAC,cAAA,CAAe,OAAA;AAAA,MAAf;AAAA,QACC,OAAA,EAAS,iBAAiB,qCAAA,GAAwC;AAAA;AAAA,wBAGpE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,cAAA,CAAe,MAAA,EAAf,EAAsB,MAAA,EAAQ,UAAA,EAAY,CAAA;AAAA,MAC1C,YAAA,CAAa,IAAI,CAAA,EAAA,KAAM;AACtB,QAAA,MAAM,KAAA,GAAQ,MAAA,CAAO,EAAA,CAAG,KAAK,CAAA;AAC7B,QAAA,IAAI,CAAC,OAAO,OAAO,IAAA;AAEnB,QAAA,MAAM,aACJ,KAAA,CAAM,OAAA,KAAY,oBAAoB,cAAA,IAAkB,IAAA,IAAQ,MAAM,MAAA,KAAW,cAAA,CAAA;AACnF,QAAA,MAAM,SAAS,CAAA,EAAG,KAAA,CAAM,OAAO,CAAA,CAAA,EAAI,KAAA,CAAM,UAAU,EAAE,CAAA,CAAA;AACrD,QAAA,MAAM,eAAA,GAAkB,iBAAA,EAAmB,GAAA,CAAI,MAAM,CAAA,IAAK,KAAA;AAC1D,QAAA,MAAM,WAAA,GAAc,KAAA,CAAM,SAAA,IAAa,KAAA,CAAM,SAAA;AAC7C,QAAA,MAAM,KAAA,GAAQ,cAAA,EAAgB,GAAA,CAAI,KAAA,CAAM,OAAO,CAAA;AAE/C,QAAA,uBACE,IAAA;AAAA,UAAC,cAAA,CAAe,SAAA;AAAA,UAAf;AAAA,YAEC,KAAK,WAAA,CAAY,cAAA;AAAA,YACjB,cAAY,EAAA,CAAG,KAAA;AAAA,YACd,GAAG,WAAA,CAAY,EAAA,CAAG,KAAK,CAAA;AAAA,YACxB,OAAA,EAAS,MAAM,YAAA,CAAa,KAAK,CAAA;AAAA,YACjC,QAAA,EAAU,UAAA;AAAA,YACV,SAAA,EAAW,EAAA,CAAG,eAAA,IAAmB,uBAAuB,CAAA;AAAA,YAExD,QAAA,EAAA;AAAA,8BAAA,GAAA,CAAC,eAAe,WAAA,EAAf,EAA2B,SAAA,EAAW,WAAA,EAAa,QAAO,kBAAA,EAAmB,CAAA;AAAA,cAC7E,cAAA,CAAe,iBAAA,EAAmB,MAAM,CAAA,oBAAK,GAAA,CAAC,eAAe,QAAA,EAAf,EAAwB,UAAA,EAAY,KAAA,CAAM,UAAA,EAAY,CAAA;AAAA,8BACrG,GAAA;AAAA,gBAAC,cAAA,CAAe,QAAA;AAAA,gBAAf;AAAA,kBACC,IAAA,EAAM,KAAA,CAAM,UAAA,IAAc,KAAA,CAAM,IAAA;AAAA,kBAChC,cAAc,KAAA,CAAM,YAAA;AAAA,kBACpB,gBAAA,EAAkB;AAAA;AAAA,eACpB;AAAA,cACC,cAAA,CAAe,iBAAA,EAAmB,OAAO,CAAA,wBACvC,cAAA,CAAe,SAAA,EAAf,EAAyB,KAAA,EAAO,KAAA,CAAM,YAAA,IAAgB,eAAA,CAAgB,KAAA,CAAM,KAAK,CAAA,EAAG,CAAA;AAAA,kCAEtF,cAAA,CAAe,UAAA,EAAf,EAA0B,MAAA,EAAQ,MAAM,MAAA,EAAQ,CAAA;AAAA,cAChD,eAAe,iBAAA,EAAmB,UAAU,CAAA,oBAC3C,GAAA,CAAC,SAAS,UAAA,EAAT,EAAoB,IAAA,EAAK,MAAA,EACvB,yBAAe,iBAAA,CAAkB,KAAA,CAAM,WAAW,KAAA,CAAM,OAAO,CAAC,CAAA,EACnE,CAAA;AAAA,cAED,cAAA,CAAe,iBAAA,EAAmB,SAAS,CAAA,oBAC1C,GAAA,CAAC,cAAA,CAAe,WAAA,EAAf,EAA2B,SAAA,EAAW,KAAA,CAAM,OAAA,IAAW,EAAA,EAAI,QAAO,kBAAA,EAAmB,CAAA;AAAA,cAEvF,cAAA,CAAe,iBAAA,EAAmB,aAAa,CAAA,oBAC9C,GAAA,CAAC,SAAS,QAAA,EAAT,EAAmB,QAAA,EAAA,KAAA,CAAM,WAAA,IAAe,GAAA,EAAI,CAAA;AAAA,cAE9C,cAAA,CAAe,iBAAA,EAAmB,aAAa,CAAA,wBAC7C,QAAA,CAAS,UAAA,EAAT,EACE,QAAA,EAAA,KAAA,EAAO,gBAAgB,MAAA,GAAY,MAAA,GAAY,mBAAA,CAAoB,KAAA,CAAM,WAAW,CAAA,EACvF,CAAA;AAAA,cAED,cAAA,CAAe,iBAAA,EAAmB,cAAc,CAAA,wBAC9C,QAAA,CAAS,UAAA,EAAT,EACE,QAAA,EAAA,KAAA,EAAO,iBAAiB,MAAA,GAAY,MAAA,GAAY,mBAAA,CAAoB,KAAA,CAAM,YAAY,CAAA,EACzF,CAAA;AAAA,cAED,cAAA,CAAe,mBAAmB,aAAa,CAAA,wBAC7C,QAAA,CAAS,UAAA,EAAT,EACG,QAAA,EAAA,CAAA,MAAM;AACN,gBAAA,MAAM,KAAA,GAAQ,UAAU,KAAK,CAAA;AAC7B,gBAAA,OAAO,KAAA,KAAU,MAAA,GAAY,MAAA,GAAY,mBAAA,CAAoB,KAAK,CAAA;AAAA,cACpE,IAAG,EACL,CAAA;AAAA,cAED,eAAe,iBAAA,EAAmB,eAAe,CAAA,oBAChD,GAAA,CAAC,SAAS,UAAA,EAAT,EACE,QAAA,EAAA,KAAA,EAAO,aAAA,KAAkB,SAAY,MAAA,GAAY,UAAA,CAAW,MAAM,aAAA,EAAe,KAAA,CAAM,QAAQ,CAAA,EAClG,CAAA;AAAA,cAED,kBAAkB,aAAA,CAAc,GAAA,CAAI,CAAA,KAAA,qBACnC,GAAA,CAAC,SAAS,QAAA,EAAT,EAAkB,IAAA,EAAK,MAAA,EACrB,4BAAkB,KAAA,EAAO,KAAK,CAAA,IAAK,MAAA,EAAA,EADF,KAEpC,CACD,CAAA;AAAA,cACA,iBAAA,CAAkB,YAAA,CAAa,GAAA,CAAI,CAAA,GAAA,KAAO;AACzC,gBAAA,MAAM,KAAA,GAAQ,wBAAA,CAAyB,KAAA,CAAM,QAAA,EAAU,GAAG,CAAA;AAC1D,gBAAA,2BACG,QAAA,CAAS,QAAA,EAAT,EAAkB,IAAA,EAAK,MAAA,EACrB,mBADiC,GAEpC,CAAA;AAAA,cAEJ,CAAC;AAAA;AAAA,WAAA;AAAA,UAjEI;AAAA,SAkEP;AAAA,MAEJ,CAAC,CAAA;AAAA,sBACD,GAAA,CAAC,cAAA,CAAe,MAAA,EAAf,EAAsB,QAAQ,aAAA,EAAe,CAAA;AAAA,sBAC9C,GAAA;AAAA,QAAC,cAAA,CAAe,eAAA;AAAA,QAAf;AAAA,UACC,SAAA,EAAW,kBAAA;AAAA,UACX,OAAA,EAAS,WAAA;AAAA,UACT;AAAA;AAAA;AACF,KAAA,EACF;AAAA,GAAA,EAEJ,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"traces-list-view.es.js","sources":["../../../../src/domains/traces/components/traces-list-view.tsx"],"sourcesContent":["import { useVirtualizer } from '@tanstack/react-virtual';\nimport { ListFilterIcon } from 'lucide-react';\nimport { useEffect, useRef } from 'react';\nimport {\n DEFAULT_TRACE_COLUMN_PREFERENCES,\n TRACE_CUSTOM_COLUMN_LABELS,\n buildTraceListColumns,\n formatTraceMetadataValue,\n hasTraceColumn,\n} from '../trace-list-columns';\nimport type { TraceColumnPreferences, TraceCustomColumn, TraceUsageSummary } from '../trace-list-columns';\nimport { getInputPreview, getSpanDurationMs } from '../utils/span-utils';\nimport { DataList, DataListSkeleton, TracesDataList, useDataListKeyboard } from '@/ds/components/DataList';\nimport type { DataListSort } from '@/ds/components/DataList';\nimport { DropdownMenu } from '@/ds/components/DropdownMenu';\nimport { Txt } from '@/ds/components/Txt/Txt';\nimport { focusRing } from '@/ds/primitives/transitions';\nimport { formatCompactNumber, formatCost } from '@/lib/cost';\nimport { cn } from '@/lib/utils';\nimport { formatDuration } from '@/utils/duration';\n\nexport type TracesListViewTrace = {\n traceId: string;\n /** Required for branch rows; absent on plain trace rows (which are root-rooted). */\n spanId?: string | null;\n /** `null`/missing → root span. Drives the Kind column's icon (top-level trace vs nested branch). */\n parentSpanId?: string | null;\n name: string;\n entityType?: string | null;\n entityId?: string | null;\n entityName?: string | null;\n threadId?: string | null;\n resourceId?: string | null;\n environment?: string | null;\n status?: string | null;\n /** Server-rendered preview of `input`. Present on lightweight rows, which omit `input` itself. */\n inputPreview?: string | null;\n input?: unknown;\n metadata?: Record<string, unknown> | null;\n startedAt?: Date | string | null;\n endedAt?: Date | string | null;\n createdAt: Date | string;\n};\n\nconst ROW_HEIGHT = 36;\nconst OVERSCAN = 8;\n/** Distinct values offered in a custom column's \"filter by value\" header menu. */\nconst MAX_FILTER_VALUES = 20;\n\nfunction customColumnValue(trace: TracesListViewTrace, field: TraceCustomColumn): string | null | undefined {\n return trace[field];\n}\n\nfunction distinctCustomColumnValues(traces: TracesListViewTrace[], field: TraceCustomColumn): string[] {\n const values = new Set<string>();\n for (const trace of traces) {\n const value = trace[field];\n if (typeof value === 'string' && value) values.add(value);\n if (values.size >= MAX_FILTER_VALUES) break;\n }\n return [...values];\n}\n\nfunction sumTokens(usage: TraceUsageSummary | undefined): number | undefined {\n if (usage?.inputTokens === undefined && usage?.outputTokens === undefined) return undefined;\n return (usage?.inputTokens ?? 0) + (usage?.outputTokens ?? 0);\n}\n\nexport type TracesListViewProps = {\n traces: TracesListViewTrace[];\n isLoading?: boolean;\n isFetchingNextPage?: boolean;\n hasNextPage?: boolean;\n setEndOfListElement?: (element: HTMLDivElement | null) => void;\n filtersApplied?: boolean;\n /** Currently featured/selected trace — its row gets the highlighted background. */\n featuredTraceId?: string | null;\n /**\n * Required in branches mode to disambiguate rows sharing a `traceId`. When set,\n * a row is featured only when both `traceId` and `spanId` match.\n */\n featuredSpanId?: string | null;\n /** Branches mode mixes root traces with subtraces — enables the Trace/Subtrace tooltip on the\n * level icon in the Name column, which is meaningless when every row is a root. */\n isBranchesMode?: boolean;\n /** Keys (`traceId:spanId`) of rows that just arrived via delta polling. Rows whose key is in\n * this set get a temporary tint to distinguish them from rows present since the last page-mode\n * fetch. Auto-expires upstream (in useTraces) after a short window. */\n recentlyAddedKeys?: Set<string>;\n /** Optional and metadata columns selected for this project. */\n columnPreferences?: TraceColumnPreferences;\n /** Token and estimated-cost totals, aggregated across model spans by trace ID. */\n usageByTraceId?: ReadonlyMap<string, TraceUsageSummary>;\n /** Called when a row is clicked. The current selection logic (toggle on same id) is the consumer's call. */\n onTraceClick: (trace: TracesListViewTrace) => void;\n /** Current sort of the Created column. When `onSortChange` is provided the header becomes sortable. */\n createdSort?: DataListSort;\n onSortChange?: (direction: DataListSort, key: 'startedAt') => void;\n /** When provided, custom column headers offer an `is <value>` filter for every value currently listed. */\n onFilterByField?: (field: TraceCustomColumn, value: string) => void;\n};\n\n/**\n * Virtualized presentational list. Renders only the visible window via TanStack Virtual, and\n * uses DataList primitives for layout (CSS Grid with subgrid rows).\n */\nexport function TracesListView({\n traces,\n isLoading,\n isFetchingNextPage,\n hasNextPage,\n setEndOfListElement,\n filtersApplied,\n featuredTraceId,\n featuredSpanId,\n isBranchesMode,\n recentlyAddedKeys,\n columnPreferences = DEFAULT_TRACE_COLUMN_PREFERENCES,\n usageByTraceId,\n onTraceClick,\n createdSort,\n onSortChange,\n onFilterByField,\n}: TracesListViewProps) {\n const scrollRef = useRef<HTMLDivElement | null>(null);\n const columns = buildTraceListColumns(columnPreferences);\n\n const virtualizer = useVirtualizer({\n count: traces.length,\n getScrollElement: () => scrollRef.current,\n estimateSize: () => ROW_HEIGHT,\n overscan: OVERSCAN,\n });\n\n const { getRowProps } = useDataListKeyboard({\n count: traces.length,\n containerRef: scrollRef,\n onNavigate: index => virtualizer.scrollToIndex(index),\n global: true,\n });\n\n // Reset scroll to top whenever a fresh query resolves (filter / date range change).\n // `isLoading` only flips on initial fetches — `fetchNextPage` keeps it `false`, so this\n // effect doesn't fire during pagination.\n //\n // Why the manual scroll event: when the skeleton-vs-list branch swaps in the new scroll\n // container, it mounts at `scrollTop = 0`. The virtualizer rebinds its listener but\n // doesn't re-read `scrollTop`, so it keeps the stale `scrollOffset` from the previous\n // element. `scrollToOffset(0)` no-ops because the new element is already at 0 (no scroll\n // event fires). Dispatching a synthetic `scroll` forces the virtualizer's handler to\n // read the fresh `scrollTop` and recompute `virtualItems` with `paddingTop = 0`.\n const wasLoadingRef = useRef(isLoading);\n useEffect(() => {\n if (wasLoadingRef.current && !isLoading) {\n scrollRef.current?.dispatchEvent(new Event('scroll'));\n }\n wasLoadingRef.current = isLoading;\n }, [isLoading]);\n\n if (isLoading) {\n return <DataListSkeleton columns={columns} fit=\"container\" />;\n }\n\n const virtualItems = virtualizer.getVirtualItems();\n const totalSize = virtualizer.getTotalSize();\n const paddingTop = virtualItems[0]?.start ?? 0;\n const paddingBottom =\n virtualItems.length > 0 ? Math.max(0, totalSize - (virtualItems[virtualItems.length - 1]?.end ?? 0)) : 0;\n\n return (\n <TracesDataList columns={columns} fit=\"container\" scrollRef={scrollRef} className=\"min-w-0\">\n <TracesDataList.Top>\n {onSortChange ? (\n <TracesDataList.SortableTopCell sortKey=\"startedAt\" sort={createdSort} onSortChange={onSortChange}>\n Start\n </TracesDataList.SortableTopCell>\n ) : (\n <TracesDataList.TopCell>Start</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'type') && <TracesDataList.TopCell>Primitive type</TracesDataList.TopCell>}\n <TracesDataList.TopCell>Primitive name</TracesDataList.TopCell>\n {hasTraceColumn(columnPreferences, 'input') && <TracesDataList.TopCell>Input</TracesDataList.TopCell>}\n <TracesDataList.TopCell>Status</TracesDataList.TopCell>\n {hasTraceColumn(columnPreferences, 'duration') && (\n <TracesDataList.TopCell className=\"justify-end text-right\">Duration</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'endTime') && <TracesDataList.TopCell>End</TracesDataList.TopCell>}\n {hasTraceColumn(columnPreferences, 'environment') && (\n <TracesDataList.TopCell>Environment</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'inputTokens') && (\n <TracesDataList.TopCell className=\"justify-end text-right\">Input tokens</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'outputTokens') && (\n <TracesDataList.TopCell className=\"justify-end text-right\">Output tokens</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'totalTokens') && (\n <TracesDataList.TopCell className=\"justify-end text-right\">Total tokens</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'estimatedCost') && (\n <TracesDataList.TopCell className=\"justify-end text-right\">Est. cost</TracesDataList.TopCell>\n )}\n {columnPreferences.customColumns.map(field => {\n const label = TRACE_CUSTOM_COLUMN_LABELS[field];\n const filterValues = onFilterByField ? distinctCustomColumnValues(traces, field) : [];\n if (!onFilterByField || filterValues.length === 0) {\n return <TracesDataList.TopCell key={field}>{label}</TracesDataList.TopCell>;\n }\n return (\n <TracesDataList.TopCell key={field} className=\"overflow-visible\">\n <DropdownMenu>\n <DropdownMenu.Trigger\n render={\n <button\n type=\"button\"\n className={cn('flex min-w-0 items-center gap-1 rounded-sm hover:text-foreground', focusRing)}\n >\n <span className=\"min-w-0 truncate\">{label}</span>\n <ListFilterIcon aria-hidden className=\"size-[1.2em] shrink-0\" />\n </button>\n }\n />\n <DropdownMenu.Content align=\"start\">\n <DropdownMenu.Label>Filter by value</DropdownMenu.Label>\n {filterValues.map(value => (\n <DropdownMenu.Item key={value} onSelect={() => onFilterByField(field, value)}>\n <Txt as=\"span\" variant=\"body-sm\" font=\"mono\" className=\"min-w-0 truncate\">\n {value}\n </Txt>\n </DropdownMenu.Item>\n ))}\n </DropdownMenu.Content>\n </DropdownMenu>\n </TracesDataList.TopCell>\n );\n })}\n {columnPreferences.metadataKeys.map(key => (\n <TracesDataList.TopCellWithTooltip key={key} tooltip={key}>\n {key}\n </TracesDataList.TopCellWithTooltip>\n ))}\n </TracesDataList.Top>\n\n {traces.length === 0 ? (\n <TracesDataList.NoMatch\n message={filtersApplied ? 'No traces found for applied filters' : 'No traces found yet'}\n />\n ) : (\n <>\n <TracesDataList.Spacer height={paddingTop} />\n {virtualItems.map(vi => {\n const trace = traces[vi.index];\n if (!trace) return null;\n\n const isFeatured =\n trace.traceId === featuredTraceId && (featuredSpanId == null || trace.spanId === featuredSpanId);\n const rowKey = `${trace.traceId}:${trace.spanId ?? ''}`;\n const isRecentlyAdded = recentlyAddedKeys?.has(rowKey) ?? false;\n const displayDate = trace.startedAt ?? trace.createdAt;\n const usage = usageByTraceId?.get(trace.traceId);\n\n return (\n <TracesDataList.RowButton\n key={rowKey}\n ref={virtualizer.measureElement}\n data-index={vi.index}\n {...getRowProps(vi.index)}\n onClick={() => onTraceClick(trace)}\n featured={isFeatured}\n className={cn(isRecentlyAdded && 'animate-row-highlight')}\n >\n <TracesDataList.CreatedCell timestamp={displayDate} preset=\"day-time-seconds\" />\n {hasTraceColumn(columnPreferences, 'type') && <TracesDataList.TypeCell entityType={trace.entityType} />}\n <TracesDataList.NameCell\n name={trace.entityName || trace.name}\n parentSpanId={trace.parentSpanId}\n showLevelTooltip={isBranchesMode}\n />\n {hasTraceColumn(columnPreferences, 'input') && (\n <TracesDataList.InputCell input={trace.inputPreview ?? getInputPreview(trace.input)} />\n )}\n <TracesDataList.StatusCell status={trace.status} />\n {hasTraceColumn(columnPreferences, 'duration') && (\n <DataList.NumberCell font=\"mono\">\n {formatDuration(getSpanDurationMs(trace.startedAt, trace.endedAt))}\n </DataList.NumberCell>\n )}\n {hasTraceColumn(columnPreferences, 'endTime') && (\n <TracesDataList.CreatedCell timestamp={trace.endedAt ?? ''} preset=\"day-time-seconds\" />\n )}\n {hasTraceColumn(columnPreferences, 'environment') && (\n <DataList.TextCell>{trace.environment || '—'}</DataList.TextCell>\n )}\n {hasTraceColumn(columnPreferences, 'inputTokens') && (\n <DataList.NumberCell>\n {usage?.inputTokens === undefined ? undefined : formatCompactNumber(usage.inputTokens)}\n </DataList.NumberCell>\n )}\n {hasTraceColumn(columnPreferences, 'outputTokens') && (\n <DataList.NumberCell>\n {usage?.outputTokens === undefined ? undefined : formatCompactNumber(usage.outputTokens)}\n </DataList.NumberCell>\n )}\n {hasTraceColumn(columnPreferences, 'totalTokens') && (\n <DataList.NumberCell>\n {(() => {\n const total = sumTokens(usage);\n return total === undefined ? undefined : formatCompactNumber(total);\n })()}\n </DataList.NumberCell>\n )}\n {hasTraceColumn(columnPreferences, 'estimatedCost') && (\n <DataList.NumberCell>\n {usage?.estimatedCost === undefined ? undefined : formatCost(usage.estimatedCost, usage.costUnit)}\n </DataList.NumberCell>\n )}\n {columnPreferences.customColumns.map(field => (\n <DataList.TextCell font=\"mono\" key={field}>\n {customColumnValue(trace, field) ?? undefined}\n </DataList.TextCell>\n ))}\n {columnPreferences.metadataKeys.map(key => {\n const value = formatTraceMetadataValue(trace.metadata, key);\n return (\n <DataList.TextCell font=\"mono\" key={key}>\n {value}\n </DataList.TextCell>\n );\n })}\n </TracesDataList.RowButton>\n );\n })}\n <TracesDataList.Spacer height={paddingBottom} />\n <TracesDataList.NextPageLoading\n isLoading={isFetchingNextPage}\n hasMore={hasNextPage}\n setEndOfListElement={setEndOfListElement}\n />\n </>\n )}\n </TracesDataList>\n );\n}\n"],"names":[],"mappings":"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"}
@@ -4,9 +4,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
5
  const jsxRuntime = require('react/jsx-runtime');
6
6
  const domains_traces_traceListColumns = require('../trace-list-columns.cjs.js');
7
- const dataListSkeleton = require('../../../data-list-skeleton-DtU1wRbx.cjs');
8
- require('react');
9
- require('../../../keyboard/keyboard-shortcuts-context.cjs.js');
7
+ const dataListSkeleton = require('../../../data-list-skeleton-BXPfL0s7.cjs');
10
8
  const skeleton = require('../../../skeleton-cXUjPrq9.cjs');
11
9
 
12
10
  function TracesPageSkeleton({ columnPreferences = domains_traces_traceListColumns.DEFAULT_TRACE_COLUMN_PREFERENCES }) {
@@ -1 +1 @@
1
- {"version":3,"file":"traces-page-skeleton.cjs.js","sources":["../../../../src/domains/traces/components/traces-page-skeleton.tsx"],"sourcesContent":["import { buildTraceListColumns, DEFAULT_TRACE_COLUMN_PREFERENCES } from '../trace-list-columns';\nimport type { TraceColumnPreferences } from '../trace-list-columns';\nimport { DataListSkeleton } from '@/ds/components/DataList';\nimport { Skeleton } from '@/ds/components/Skeleton';\n\nexport type TracesPageSkeletonProps = {\n columnPreferences?: TraceColumnPreferences;\n};\n\n/**\n * Page-level placeholder shown while filter-field discovery is pending: a toolbar-height\n * bar stands in for the FilterBar and the usual list skeleton for the trace rows.\n */\nexport function TracesPageSkeleton({ columnPreferences = DEFAULT_TRACE_COLUMN_PREFERENCES }: TracesPageSkeletonProps) {\n const columns = buildTraceListColumns(columnPreferences);\n return (\n <div\n className=\"flex h-full min-h-0 flex-col gap-2\"\n role=\"status\"\n aria-label=\"Loading traces\"\n data-testid=\"traces-page-skeleton\"\n >\n <div className=\"flex items-center gap-2\">\n <Skeleton className=\"h-control-md min-w-64 flex-1\" />\n <Skeleton className=\"h-control-md w-28\" />\n </div>\n <DataListSkeleton columns={columns} fit=\"container\" />\n </div>\n );\n}\n"],"names":["DEFAULT_TRACE_COLUMN_PREFERENCES","buildTraceListColumns","jsxs","jsx","Skeleton","DataListSkeleton"],"mappings":";;;;;;;;;;;AAaO,SAAS,kBAAA,CAAmB,EAAE,iBAAA,GAAoBA,gEAAA,EAAiC,EAA4B;AACpH,EAAA,MAAM,OAAA,GAAUC,sDAAsB,iBAAiB,CAAA;AACvD,EAAA,uBACEC,eAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAU,oCAAA;AAAA,MACV,IAAA,EAAK,QAAA;AAAA,MACL,YAAA,EAAW,gBAAA;AAAA,MACX,aAAA,EAAY,sBAAA;AAAA,MAEZ,QAAA,EAAA;AAAA,wBAAAA,eAAA,CAAC,KAAA,EAAA,EAAI,WAAU,yBAAA,EACb,QAAA,EAAA;AAAA,0BAAAC,cAAA,CAACC,iBAAA,EAAA,EAAS,WAAU,8BAAA,EAA+B,CAAA;AAAA,0BACnDD,cAAA,CAACC,iBAAA,EAAA,EAAS,SAAA,EAAU,mBAAA,EAAoB;AAAA,SAAA,EAC1C,CAAA;AAAA,wBACAD,cAAA,CAACE,iCAAA,EAAA,EAAiB,OAAA,EAAkB,GAAA,EAAI,WAAA,EAAY;AAAA;AAAA;AAAA,GACtD;AAEJ;;;;"}
1
+ {"version":3,"file":"traces-page-skeleton.cjs.js","sources":["../../../../src/domains/traces/components/traces-page-skeleton.tsx"],"sourcesContent":["import { buildTraceListColumns, DEFAULT_TRACE_COLUMN_PREFERENCES } from '../trace-list-columns';\nimport type { TraceColumnPreferences } from '../trace-list-columns';\nimport { DataListSkeleton } from '@/ds/components/DataList';\nimport { Skeleton } from '@/ds/components/Skeleton';\n\nexport type TracesPageSkeletonProps = {\n columnPreferences?: TraceColumnPreferences;\n};\n\n/**\n * Page-level placeholder shown while filter-field discovery is pending: a toolbar-height\n * bar stands in for the FilterBar and the usual list skeleton for the trace rows.\n */\nexport function TracesPageSkeleton({ columnPreferences = DEFAULT_TRACE_COLUMN_PREFERENCES }: TracesPageSkeletonProps) {\n const columns = buildTraceListColumns(columnPreferences);\n return (\n <div\n className=\"flex h-full min-h-0 flex-col gap-2\"\n role=\"status\"\n aria-label=\"Loading traces\"\n data-testid=\"traces-page-skeleton\"\n >\n <div className=\"flex items-center gap-2\">\n <Skeleton className=\"h-control-md min-w-64 flex-1\" />\n <Skeleton className=\"h-control-md w-28\" />\n </div>\n <DataListSkeleton columns={columns} fit=\"container\" />\n </div>\n );\n}\n"],"names":["DEFAULT_TRACE_COLUMN_PREFERENCES","buildTraceListColumns","jsxs","jsx","Skeleton","DataListSkeleton"],"mappings":";;;;;;;;;AAaO,SAAS,kBAAA,CAAmB,EAAE,iBAAA,GAAoBA,gEAAA,EAAiC,EAA4B;AACpH,EAAA,MAAM,OAAA,GAAUC,sDAAsB,iBAAiB,CAAA;AACvD,EAAA,uBACEC,eAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAU,oCAAA;AAAA,MACV,IAAA,EAAK,QAAA;AAAA,MACL,YAAA,EAAW,gBAAA;AAAA,MACX,aAAA,EAAY,sBAAA;AAAA,MAEZ,QAAA,EAAA;AAAA,wBAAAA,eAAA,CAAC,KAAA,EAAA,EAAI,WAAU,yBAAA,EACb,QAAA,EAAA;AAAA,0BAAAC,cAAA,CAACC,iBAAA,EAAA,EAAS,WAAU,8BAAA,EAA+B,CAAA;AAAA,0BACnDD,cAAA,CAACC,iBAAA,EAAA,EAAS,SAAA,EAAU,mBAAA,EAAoB;AAAA,SAAA,EAC1C,CAAA;AAAA,wBACAD,cAAA,CAACE,iCAAA,EAAA,EAAiB,OAAA,EAAkB,GAAA,EAAI,WAAA,EAAY;AAAA;AAAA;AAAA,GACtD;AAEJ;;;;"}
@@ -1,8 +1,6 @@
1
1
  import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import { buildTraceListColumns, DEFAULT_TRACE_COLUMN_PREFERENCES } from '../trace-list-columns.es.js';
3
- import { D as DataListSkeleton } from '../../../data-list-skeleton-BiWUa3JR.js';
4
- import 'react';
5
- import '../../../keyboard/keyboard-shortcuts-context.es.js';
3
+ import { D as DataListSkeleton } from '../../../data-list-skeleton-Bk9LI0J0.js';
6
4
  import { S as Skeleton } from '../../../skeleton-BsRAXyh5.js';
7
5
 
8
6
  function TracesPageSkeleton({ columnPreferences = DEFAULT_TRACE_COLUMN_PREFERENCES }) {
@@ -1 +1 @@
1
- {"version":3,"file":"traces-page-skeleton.es.js","sources":["../../../../src/domains/traces/components/traces-page-skeleton.tsx"],"sourcesContent":["import { buildTraceListColumns, DEFAULT_TRACE_COLUMN_PREFERENCES } from '../trace-list-columns';\nimport type { TraceColumnPreferences } from '../trace-list-columns';\nimport { DataListSkeleton } from '@/ds/components/DataList';\nimport { Skeleton } from '@/ds/components/Skeleton';\n\nexport type TracesPageSkeletonProps = {\n columnPreferences?: TraceColumnPreferences;\n};\n\n/**\n * Page-level placeholder shown while filter-field discovery is pending: a toolbar-height\n * bar stands in for the FilterBar and the usual list skeleton for the trace rows.\n */\nexport function TracesPageSkeleton({ columnPreferences = DEFAULT_TRACE_COLUMN_PREFERENCES }: TracesPageSkeletonProps) {\n const columns = buildTraceListColumns(columnPreferences);\n return (\n <div\n className=\"flex h-full min-h-0 flex-col gap-2\"\n role=\"status\"\n aria-label=\"Loading traces\"\n data-testid=\"traces-page-skeleton\"\n >\n <div className=\"flex items-center gap-2\">\n <Skeleton className=\"h-control-md min-w-64 flex-1\" />\n <Skeleton className=\"h-control-md w-28\" />\n </div>\n <DataListSkeleton columns={columns} fit=\"container\" />\n </div>\n );\n}\n"],"names":[],"mappings":";;;;;;;AAaO,SAAS,kBAAA,CAAmB,EAAE,iBAAA,GAAoB,gCAAA,EAAiC,EAA4B;AACpH,EAAA,MAAM,OAAA,GAAU,sBAAsB,iBAAiB,CAAA;AACvD,EAAA,uBACE,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAU,oCAAA;AAAA,MACV,IAAA,EAAK,QAAA;AAAA,MACL,YAAA,EAAW,gBAAA;AAAA,MACX,aAAA,EAAY,sBAAA;AAAA,MAEZ,QAAA,EAAA;AAAA,wBAAA,IAAA,CAAC,KAAA,EAAA,EAAI,WAAU,yBAAA,EACb,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,QAAA,EAAA,EAAS,WAAU,8BAAA,EAA+B,CAAA;AAAA,0BACnD,GAAA,CAAC,QAAA,EAAA,EAAS,SAAA,EAAU,mBAAA,EAAoB;AAAA,SAAA,EAC1C,CAAA;AAAA,wBACA,GAAA,CAAC,gBAAA,EAAA,EAAiB,OAAA,EAAkB,GAAA,EAAI,WAAA,EAAY;AAAA;AAAA;AAAA,GACtD;AAEJ;;;;"}
1
+ {"version":3,"file":"traces-page-skeleton.es.js","sources":["../../../../src/domains/traces/components/traces-page-skeleton.tsx"],"sourcesContent":["import { buildTraceListColumns, DEFAULT_TRACE_COLUMN_PREFERENCES } from '../trace-list-columns';\nimport type { TraceColumnPreferences } from '../trace-list-columns';\nimport { DataListSkeleton } from '@/ds/components/DataList';\nimport { Skeleton } from '@/ds/components/Skeleton';\n\nexport type TracesPageSkeletonProps = {\n columnPreferences?: TraceColumnPreferences;\n};\n\n/**\n * Page-level placeholder shown while filter-field discovery is pending: a toolbar-height\n * bar stands in for the FilterBar and the usual list skeleton for the trace rows.\n */\nexport function TracesPageSkeleton({ columnPreferences = DEFAULT_TRACE_COLUMN_PREFERENCES }: TracesPageSkeletonProps) {\n const columns = buildTraceListColumns(columnPreferences);\n return (\n <div\n className=\"flex h-full min-h-0 flex-col gap-2\"\n role=\"status\"\n aria-label=\"Loading traces\"\n data-testid=\"traces-page-skeleton\"\n >\n <div className=\"flex items-center gap-2\">\n <Skeleton className=\"h-control-md min-w-64 flex-1\" />\n <Skeleton className=\"h-control-md w-28\" />\n </div>\n <DataListSkeleton columns={columns} fit=\"container\" />\n </div>\n );\n}\n"],"names":[],"mappings":";;;;;AAaO,SAAS,kBAAA,CAAmB,EAAE,iBAAA,GAAoB,gCAAA,EAAiC,EAA4B;AACpH,EAAA,MAAM,OAAA,GAAU,sBAAsB,iBAAiB,CAAA;AACvD,EAAA,uBACE,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAU,oCAAA;AAAA,MACV,IAAA,EAAK,QAAA;AAAA,MACL,YAAA,EAAW,gBAAA;AAAA,MACX,aAAA,EAAY,sBAAA;AAAA,MAEZ,QAAA,EAAA;AAAA,wBAAA,IAAA,CAAC,KAAA,EAAA,EAAI,WAAU,yBAAA,EACb,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,QAAA,EAAA,EAAS,WAAU,8BAAA,EAA+B,CAAA;AAAA,0BACnD,GAAA,CAAC,QAAA,EAAA,EAAS,SAAA,EAAU,mBAAA,EAAoB;AAAA,SAAA,EAC1C,CAAA;AAAA,wBACA,GAAA,CAAC,gBAAA,EAAA,EAAiB,OAAA,EAAkB,GAAA,EAAI,WAAA,EAAY;AAAA;AAAA;AAAA,GACtD;AAEJ;;;;"}
@@ -5,7 +5,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
5
5
  const jsxRuntime = require('react/jsx-runtime');
6
6
  const React = require('react');
7
7
  const domains_workflows_hooks_useWorkflows = require('../hooks/use-workflows.cjs.js');
8
- const combobox = require('../../../combobox-Dm1hKirJ.cjs');
8
+ const combobox = require('../../../combobox-rKV-Lksj.cjs');
9
9
  require('@base-ui/react/combobox');
10
10
  const lib_framework = require('../../../lib/framework.cjs.js');
11
11
  const toast = require('../../../toast-nm-fM7BR.cjs');
@@ -1,7 +1,7 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
2
  import { useEffect } from 'react';
3
3
  import { useWorkflows } from '../hooks/use-workflows.es.js';
4
- import { C as Combobox } from '../../../combobox-DDvFeXkN.js';
4
+ import { C as Combobox } from '../../../combobox-B_C0cNid.js';
5
5
  import '@base-ui/react/combobox';
6
6
  import { useLinkComponent } from '../../../lib/framework.es.js';
7
7
  import { t as toast } from '../../../toast-c5kCpyWt.js';
@@ -9,7 +9,9 @@ const Badge = require('../../../Badge-H8K5WrXg.cjs');
9
9
  const entityHeader = require('../../../entity-header-DEjkHoqj.cjs');
10
10
  const tooltip = require('../../../tooltip-DIZ5oqjV.cjs');
11
11
  const icons_WorkflowIcon = require('../../../icons/WorkflowIcon.cjs.js');
12
+ const primitives_transitions = require('../../../primitives/transitions.cjs.js');
12
13
  const hooks_useCopyToClipboard = require('../../../hooks/use-copy-to-clipboard.cjs.js');
14
+ const utils_cn = require('../../../cn-DG0X1KEP.cjs');
13
15
 
14
16
  const WorkflowEntityHeader = ({ workflowId, requestContext }) => {
15
17
  const { data: workflow, isLoading } = domains_workflows_hooks_useWorkflow.useWorkflow(workflowId, requestContext);
@@ -35,7 +37,7 @@ const WorkflowEntityHeader = ({ workflowId, requestContext }) => {
35
37
  role: "note",
36
38
  tabIndex: 0,
37
39
  "aria-label": "Dynamic workflow",
38
- className: "rounded-[7px] focus-visible:outline-1 focus-visible:outline-offset-2 focus-visible:outline-border-focus focus-visible:outline-solid",
40
+ className: utils_cn.cn("rounded-[7px]", primitives_transitions.focusRing),
39
41
  children: /* @__PURE__ */ jsxRuntime.jsx(Badge.Badge, { icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Database, {}), variant: "blue", children: "Dynamic" })
40
42
  }
41
43
  ),
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-entity-header.cjs.js","sources":["../../../../src/domains/workflows/components/workflow-entity-header.tsx"],"sourcesContent":["import { CopyIcon, Cpu, Database } from 'lucide-react';\nimport { useWorkflow } from '@/domains/workflows/hooks/use-workflow';\nimport { Badge } from '@/ds/components/Badge';\nimport { EntityHeader } from '@/ds/components/EntityHeader';\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/ds/components/Tooltip';\nimport { WorkflowIcon } from '@/ds/icons/WorkflowIcon';\nimport { useCopyToClipboard } from '@/hooks/use-copy-to-clipboard';\n\nexport interface WorkflowEntityHeaderProps {\n requestContext?: Record<string, any>;\n workflowId: string;\n}\n\nexport const WorkflowEntityHeader = ({ workflowId, requestContext }: WorkflowEntityHeaderProps) => {\n const { data: workflow, isLoading } = useWorkflow(workflowId, requestContext);\n const { handleCopy } = useCopyToClipboard({ text: workflowId });\n\n const workflowName = workflow?.name || workflowId;\n const stepsCount = Object.keys(workflow?.steps ?? {}).length;\n\n return (\n <TooltipProvider>\n <EntityHeader icon={<WorkflowIcon />} title={workflowName} isLoading={isLoading}>\n <div className=\"flex flex-wrap items-center gap-x-2 gap-y-3\">\n <Tooltip>\n <TooltipTrigger asChild>\n <button type=\"button\" onClick={handleCopy} className=\"h-badge-default shrink-0\">\n <Badge icon={<CopyIcon />}>{workflowId}</Badge>\n </button>\n </TooltipTrigger>\n <TooltipContent>Copy Workflow ID for use in code</TooltipContent>\n </Tooltip>\n\n <Badge>\n {stepsCount} step{stepsCount === 1 ? '' : 's'}\n </Badge>\n\n {workflow?.isProcessorWorkflow && (\n <Badge icon={<Cpu />} variant=\"purple\">\n Processor\n </Badge>\n )}\n\n {workflow?.origin === 'dynamic' && (\n <Tooltip>\n <TooltipTrigger\n render={<span />}\n role=\"note\"\n tabIndex={0}\n aria-label=\"Dynamic workflow\"\n className=\"rounded-[7px] focus-visible:outline-1 focus-visible:outline-offset-2 focus-visible:outline-border-focus focus-visible:outline-solid\"\n >\n <Badge icon={<Database />} variant=\"blue\">\n Dynamic\n </Badge>\n </TooltipTrigger>\n <TooltipContent>Registered via the dynamic-workflows API — lives in storage</TooltipContent>\n </Tooltip>\n )}\n </div>\n </EntityHeader>\n </TooltipProvider>\n );\n};\n"],"names":["useWorkflow","useCopyToClipboard","jsx","TooltipProvider","EntityHeader","WorkflowIcon","jsxs","Tooltip","TooltipTrigger","Badge","CopyIcon","TooltipContent","Cpu","Database"],"mappings":";;;;;;;;;;;;;AAaO,MAAM,oBAAA,GAAuB,CAAC,EAAE,UAAA,EAAY,gBAAe,KAAiC;AACjG,EAAA,MAAM,EAAE,IAAA,EAAM,QAAA,EAAU,WAAU,GAAIA,+CAAA,CAAY,YAAY,cAAc,CAAA;AAC5E,EAAA,MAAM,EAAE,UAAA,EAAW,GAAIC,4CAAmB,EAAE,IAAA,EAAM,YAAY,CAAA;AAE9D,EAAA,MAAM,YAAA,GAAe,UAAU,IAAA,IAAQ,UAAA;AACvC,EAAA,MAAM,aAAa,MAAA,CAAO,IAAA,CAAK,UAAU,KAAA,IAAS,EAAE,CAAA,CAAE,MAAA;AAEtD,EAAA,uBACEC,cAAA,CAACC,uBAAA,EAAA,EACC,QAAA,kBAAAD,cAAA,CAACE,yBAAA,EAAA,EAAa,sBAAMF,cAAA,CAACG,+BAAA,EAAA,EAAa,CAAA,EAAI,KAAA,EAAO,YAAA,EAAc,SAAA,EACzD,QAAA,kBAAAC,eAAA,CAAC,KAAA,EAAA,EAAI,WAAU,6CAAA,EACb,QAAA,EAAA;AAAA,oBAAAA,eAAA,CAACC,eAAA,EAAA,EACC,QAAA,EAAA;AAAA,sBAAAL,cAAA,CAACM,0BAAe,OAAA,EAAO,IAAA,EACrB,yCAAC,QAAA,EAAA,EAAO,IAAA,EAAK,UAAS,OAAA,EAAS,UAAA,EAAY,WAAU,0BAAA,EACnD,QAAA,kBAAAN,cAAA,CAACO,eAAM,IAAA,kBAAMP,cAAA,CAACQ,wBAAS,CAAA,EAAK,QAAA,EAAA,UAAA,EAAW,GACzC,CAAA,EACF,CAAA;AAAA,sBACAR,cAAA,CAACS,0BAAe,QAAA,EAAA,kCAAA,EAAgC;AAAA,KAAA,EAClD,CAAA;AAAA,oCAECF,WAAA,EAAA,EACE,QAAA,EAAA;AAAA,MAAA,UAAA;AAAA,MAAW,OAAA;AAAA,MAAM,UAAA,KAAe,IAAI,EAAA,GAAK;AAAA,KAAA,EAC5C,CAAA;AAAA,IAEC,QAAA,EAAU,mBAAA,oBACTP,cAAA,CAACO,WAAA,EAAA,EAAM,IAAA,iCAAOG,eAAA,EAAA,EAAI,CAAA,EAAI,OAAA,EAAQ,QAAA,EAAS,QAAA,EAAA,WAAA,EAEvC,CAAA;AAAA,IAGD,QAAA,EAAU,MAAA,KAAW,SAAA,oBACpBN,eAAA,CAACC,eAAA,EAAA,EACC,QAAA,EAAA;AAAA,sBAAAL,cAAA;AAAA,QAACM,sBAAA;AAAA,QAAA;AAAA,UACC,MAAA,iCAAS,MAAA,EAAA,EAAK,CAAA;AAAA,UACd,IAAA,EAAK,MAAA;AAAA,UACL,QAAA,EAAU,CAAA;AAAA,UACV,YAAA,EAAW,kBAAA;AAAA,UACX,SAAA,EAAU,qIAAA;AAAA,UAEV,QAAA,kBAAAN,cAAA,CAACO,eAAM,IAAA,kBAAMP,cAAA,CAACW,wBAAS,CAAA,EAAI,OAAA,EAAQ,QAAO,QAAA,EAAA,SAAA,EAE1C;AAAA;AAAA,OACF;AAAA,sBACAX,cAAA,CAACS,0BAAe,QAAA,EAAA,6DAAA,EAA2D;AAAA,KAAA,EAC7E;AAAA,GAAA,EAEJ,GACF,CAAA,EACF,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"workflow-entity-header.cjs.js","sources":["../../../../src/domains/workflows/components/workflow-entity-header.tsx"],"sourcesContent":["import { CopyIcon, Cpu, Database } from 'lucide-react';\nimport { useWorkflow } from '@/domains/workflows/hooks/use-workflow';\nimport { Badge } from '@/ds/components/Badge';\nimport { EntityHeader } from '@/ds/components/EntityHeader';\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/ds/components/Tooltip';\nimport { WorkflowIcon } from '@/ds/icons/WorkflowIcon';\nimport { focusRing } from '@/ds/primitives/transitions';\nimport { useCopyToClipboard } from '@/hooks/use-copy-to-clipboard';\nimport { cn } from '@/utils/cn';\n\nexport interface WorkflowEntityHeaderProps {\n requestContext?: Record<string, any>;\n workflowId: string;\n}\n\nexport const WorkflowEntityHeader = ({ workflowId, requestContext }: WorkflowEntityHeaderProps) => {\n const { data: workflow, isLoading } = useWorkflow(workflowId, requestContext);\n const { handleCopy } = useCopyToClipboard({ text: workflowId });\n\n const workflowName = workflow?.name || workflowId;\n const stepsCount = Object.keys(workflow?.steps ?? {}).length;\n\n return (\n <TooltipProvider>\n <EntityHeader icon={<WorkflowIcon />} title={workflowName} isLoading={isLoading}>\n <div className=\"flex flex-wrap items-center gap-x-2 gap-y-3\">\n <Tooltip>\n <TooltipTrigger asChild>\n <button type=\"button\" onClick={handleCopy} className=\"h-badge-default shrink-0\">\n <Badge icon={<CopyIcon />}>{workflowId}</Badge>\n </button>\n </TooltipTrigger>\n <TooltipContent>Copy Workflow ID for use in code</TooltipContent>\n </Tooltip>\n\n <Badge>\n {stepsCount} step{stepsCount === 1 ? '' : 's'}\n </Badge>\n\n {workflow?.isProcessorWorkflow && (\n <Badge icon={<Cpu />} variant=\"purple\">\n Processor\n </Badge>\n )}\n\n {workflow?.origin === 'dynamic' && (\n <Tooltip>\n <TooltipTrigger\n render={<span />}\n role=\"note\"\n tabIndex={0}\n aria-label=\"Dynamic workflow\"\n className={cn('rounded-[7px]', focusRing)}\n >\n <Badge icon={<Database />} variant=\"blue\">\n Dynamic\n </Badge>\n </TooltipTrigger>\n <TooltipContent>Registered via the dynamic-workflows API — lives in storage</TooltipContent>\n </Tooltip>\n )}\n </div>\n </EntityHeader>\n </TooltipProvider>\n );\n};\n"],"names":["useWorkflow","useCopyToClipboard","jsx","TooltipProvider","EntityHeader","WorkflowIcon","jsxs","Tooltip","TooltipTrigger","Badge","CopyIcon","TooltipContent","Cpu","cn","focusRing","Database"],"mappings":";;;;;;;;;;;;;;;AAeO,MAAM,oBAAA,GAAuB,CAAC,EAAE,UAAA,EAAY,gBAAe,KAAiC;AACjG,EAAA,MAAM,EAAE,IAAA,EAAM,QAAA,EAAU,WAAU,GAAIA,+CAAA,CAAY,YAAY,cAAc,CAAA;AAC5E,EAAA,MAAM,EAAE,UAAA,EAAW,GAAIC,4CAAmB,EAAE,IAAA,EAAM,YAAY,CAAA;AAE9D,EAAA,MAAM,YAAA,GAAe,UAAU,IAAA,IAAQ,UAAA;AACvC,EAAA,MAAM,aAAa,MAAA,CAAO,IAAA,CAAK,UAAU,KAAA,IAAS,EAAE,CAAA,CAAE,MAAA;AAEtD,EAAA,uBACEC,cAAA,CAACC,uBAAA,EAAA,EACC,QAAA,kBAAAD,cAAA,CAACE,yBAAA,EAAA,EAAa,sBAAMF,cAAA,CAACG,+BAAA,EAAA,EAAa,CAAA,EAAI,KAAA,EAAO,YAAA,EAAc,SAAA,EACzD,QAAA,kBAAAC,eAAA,CAAC,KAAA,EAAA,EAAI,WAAU,6CAAA,EACb,QAAA,EAAA;AAAA,oBAAAA,eAAA,CAACC,eAAA,EAAA,EACC,QAAA,EAAA;AAAA,sBAAAL,cAAA,CAACM,0BAAe,OAAA,EAAO,IAAA,EACrB,yCAAC,QAAA,EAAA,EAAO,IAAA,EAAK,UAAS,OAAA,EAAS,UAAA,EAAY,WAAU,0BAAA,EACnD,QAAA,kBAAAN,cAAA,CAACO,eAAM,IAAA,kBAAMP,cAAA,CAACQ,wBAAS,CAAA,EAAK,QAAA,EAAA,UAAA,EAAW,GACzC,CAAA,EACF,CAAA;AAAA,sBACAR,cAAA,CAACS,0BAAe,QAAA,EAAA,kCAAA,EAAgC;AAAA,KAAA,EAClD,CAAA;AAAA,oCAECF,WAAA,EAAA,EACE,QAAA,EAAA;AAAA,MAAA,UAAA;AAAA,MAAW,OAAA;AAAA,MAAM,UAAA,KAAe,IAAI,EAAA,GAAK;AAAA,KAAA,EAC5C,CAAA;AAAA,IAEC,QAAA,EAAU,mBAAA,oBACTP,cAAA,CAACO,WAAA,EAAA,EAAM,IAAA,iCAAOG,eAAA,EAAA,EAAI,CAAA,EAAI,OAAA,EAAQ,QAAA,EAAS,QAAA,EAAA,WAAA,EAEvC,CAAA;AAAA,IAGD,QAAA,EAAU,MAAA,KAAW,SAAA,oBACpBN,eAAA,CAACC,eAAA,EAAA,EACC,QAAA,EAAA;AAAA,sBAAAL,cAAA;AAAA,QAACM,sBAAA;AAAA,QAAA;AAAA,UACC,MAAA,iCAAS,MAAA,EAAA,EAAK,CAAA;AAAA,UACd,IAAA,EAAK,MAAA;AAAA,UACL,QAAA,EAAU,CAAA;AAAA,UACV,YAAA,EAAW,kBAAA;AAAA,UACX,SAAA,EAAWK,WAAA,CAAG,eAAA,EAAiBC,gCAAS,CAAA;AAAA,UAExC,QAAA,kBAAAZ,cAAA,CAACO,eAAM,IAAA,kBAAMP,cAAA,CAACa,wBAAS,CAAA,EAAI,OAAA,EAAQ,QAAO,QAAA,EAAA,SAAA,EAE1C;AAAA;AAAA,OACF;AAAA,sBACAb,cAAA,CAACS,0BAAe,QAAA,EAAA,6DAAA,EAA2D;AAAA,KAAA,EAC7E;AAAA,GAAA,EAEJ,GACF,CAAA,EACF,CAAA;AAEJ;;;;"}
@@ -5,7 +5,9 @@ import { B as Badge } from '../../../Badge-Q_pCeeGW.js';
5
5
  import { E as EntityHeader } from '../../../entity-header-9qzr-3xQ.js';
6
6
  import { b as TooltipProvider, T as Tooltip, c as TooltipTrigger, a as TooltipContent } from '../../../tooltip-DsQPiynb.js';
7
7
  import { WorkflowIcon } from '../../../icons/WorkflowIcon.es.js';
8
+ import { focusRing } from '../../../primitives/transitions.es.js';
8
9
  import { useCopyToClipboard } from '../../../hooks/use-copy-to-clipboard.es.js';
10
+ import { c as cn } from '../../../cn-65Adrsfj.js';
9
11
 
10
12
  const WorkflowEntityHeader = ({ workflowId, requestContext }) => {
11
13
  const { data: workflow, isLoading } = useWorkflow(workflowId, requestContext);
@@ -31,7 +33,7 @@ const WorkflowEntityHeader = ({ workflowId, requestContext }) => {
31
33
  role: "note",
32
34
  tabIndex: 0,
33
35
  "aria-label": "Dynamic workflow",
34
- className: "rounded-[7px] focus-visible:outline-1 focus-visible:outline-offset-2 focus-visible:outline-border-focus focus-visible:outline-solid",
36
+ className: cn("rounded-[7px]", focusRing),
35
37
  children: /* @__PURE__ */ jsx(Badge, { icon: /* @__PURE__ */ jsx(Database, {}), variant: "blue", children: "Dynamic" })
36
38
  }
37
39
  ),
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-entity-header.es.js","sources":["../../../../src/domains/workflows/components/workflow-entity-header.tsx"],"sourcesContent":["import { CopyIcon, Cpu, Database } from 'lucide-react';\nimport { useWorkflow } from '@/domains/workflows/hooks/use-workflow';\nimport { Badge } from '@/ds/components/Badge';\nimport { EntityHeader } from '@/ds/components/EntityHeader';\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/ds/components/Tooltip';\nimport { WorkflowIcon } from '@/ds/icons/WorkflowIcon';\nimport { useCopyToClipboard } from '@/hooks/use-copy-to-clipboard';\n\nexport interface WorkflowEntityHeaderProps {\n requestContext?: Record<string, any>;\n workflowId: string;\n}\n\nexport const WorkflowEntityHeader = ({ workflowId, requestContext }: WorkflowEntityHeaderProps) => {\n const { data: workflow, isLoading } = useWorkflow(workflowId, requestContext);\n const { handleCopy } = useCopyToClipboard({ text: workflowId });\n\n const workflowName = workflow?.name || workflowId;\n const stepsCount = Object.keys(workflow?.steps ?? {}).length;\n\n return (\n <TooltipProvider>\n <EntityHeader icon={<WorkflowIcon />} title={workflowName} isLoading={isLoading}>\n <div className=\"flex flex-wrap items-center gap-x-2 gap-y-3\">\n <Tooltip>\n <TooltipTrigger asChild>\n <button type=\"button\" onClick={handleCopy} className=\"h-badge-default shrink-0\">\n <Badge icon={<CopyIcon />}>{workflowId}</Badge>\n </button>\n </TooltipTrigger>\n <TooltipContent>Copy Workflow ID for use in code</TooltipContent>\n </Tooltip>\n\n <Badge>\n {stepsCount} step{stepsCount === 1 ? '' : 's'}\n </Badge>\n\n {workflow?.isProcessorWorkflow && (\n <Badge icon={<Cpu />} variant=\"purple\">\n Processor\n </Badge>\n )}\n\n {workflow?.origin === 'dynamic' && (\n <Tooltip>\n <TooltipTrigger\n render={<span />}\n role=\"note\"\n tabIndex={0}\n aria-label=\"Dynamic workflow\"\n className=\"rounded-[7px] focus-visible:outline-1 focus-visible:outline-offset-2 focus-visible:outline-border-focus focus-visible:outline-solid\"\n >\n <Badge icon={<Database />} variant=\"blue\">\n Dynamic\n </Badge>\n </TooltipTrigger>\n <TooltipContent>Registered via the dynamic-workflows API — lives in storage</TooltipContent>\n </Tooltip>\n )}\n </div>\n </EntityHeader>\n </TooltipProvider>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;AAaO,MAAM,oBAAA,GAAuB,CAAC,EAAE,UAAA,EAAY,gBAAe,KAAiC;AACjG,EAAA,MAAM,EAAE,IAAA,EAAM,QAAA,EAAU,WAAU,GAAI,WAAA,CAAY,YAAY,cAAc,CAAA;AAC5E,EAAA,MAAM,EAAE,UAAA,EAAW,GAAI,mBAAmB,EAAE,IAAA,EAAM,YAAY,CAAA;AAE9D,EAAA,MAAM,YAAA,GAAe,UAAU,IAAA,IAAQ,UAAA;AACvC,EAAA,MAAM,aAAa,MAAA,CAAO,IAAA,CAAK,UAAU,KAAA,IAAS,EAAE,CAAA,CAAE,MAAA;AAEtD,EAAA,uBACE,GAAA,CAAC,eAAA,EAAA,EACC,QAAA,kBAAA,GAAA,CAAC,YAAA,EAAA,EAAa,sBAAM,GAAA,CAAC,YAAA,EAAA,EAAa,CAAA,EAAI,KAAA,EAAO,YAAA,EAAc,SAAA,EACzD,QAAA,kBAAA,IAAA,CAAC,KAAA,EAAA,EAAI,WAAU,6CAAA,EACb,QAAA,EAAA;AAAA,oBAAA,IAAA,CAAC,OAAA,EAAA,EACC,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,kBAAe,OAAA,EAAO,IAAA,EACrB,8BAAC,QAAA,EAAA,EAAO,IAAA,EAAK,UAAS,OAAA,EAAS,UAAA,EAAY,WAAU,0BAAA,EACnD,QAAA,kBAAA,GAAA,CAAC,SAAM,IAAA,kBAAM,GAAA,CAAC,YAAS,CAAA,EAAK,QAAA,EAAA,UAAA,EAAW,GACzC,CAAA,EACF,CAAA;AAAA,sBACA,GAAA,CAAC,kBAAe,QAAA,EAAA,kCAAA,EAAgC;AAAA,KAAA,EAClD,CAAA;AAAA,yBAEC,KAAA,EAAA,EACE,QAAA,EAAA;AAAA,MAAA,UAAA;AAAA,MAAW,OAAA;AAAA,MAAM,UAAA,KAAe,IAAI,EAAA,GAAK;AAAA,KAAA,EAC5C,CAAA;AAAA,IAEC,QAAA,EAAU,mBAAA,oBACT,GAAA,CAAC,KAAA,EAAA,EAAM,IAAA,sBAAO,GAAA,EAAA,EAAI,CAAA,EAAI,OAAA,EAAQ,QAAA,EAAS,QAAA,EAAA,WAAA,EAEvC,CAAA;AAAA,IAGD,QAAA,EAAU,MAAA,KAAW,SAAA,oBACpB,IAAA,CAAC,OAAA,EAAA,EACC,QAAA,EAAA;AAAA,sBAAA,GAAA;AAAA,QAAC,cAAA;AAAA,QAAA;AAAA,UACC,MAAA,sBAAS,MAAA,EAAA,EAAK,CAAA;AAAA,UACd,IAAA,EAAK,MAAA;AAAA,UACL,QAAA,EAAU,CAAA;AAAA,UACV,YAAA,EAAW,kBAAA;AAAA,UACX,SAAA,EAAU,qIAAA;AAAA,UAEV,QAAA,kBAAA,GAAA,CAAC,SAAM,IAAA,kBAAM,GAAA,CAAC,YAAS,CAAA,EAAI,OAAA,EAAQ,QAAO,QAAA,EAAA,SAAA,EAE1C;AAAA;AAAA,OACF;AAAA,sBACA,GAAA,CAAC,kBAAe,QAAA,EAAA,6DAAA,EAA2D;AAAA,KAAA,EAC7E;AAAA,GAAA,EAEJ,GACF,CAAA,EACF,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"workflow-entity-header.es.js","sources":["../../../../src/domains/workflows/components/workflow-entity-header.tsx"],"sourcesContent":["import { CopyIcon, Cpu, Database } from 'lucide-react';\nimport { useWorkflow } from '@/domains/workflows/hooks/use-workflow';\nimport { Badge } from '@/ds/components/Badge';\nimport { EntityHeader } from '@/ds/components/EntityHeader';\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/ds/components/Tooltip';\nimport { WorkflowIcon } from '@/ds/icons/WorkflowIcon';\nimport { focusRing } from '@/ds/primitives/transitions';\nimport { useCopyToClipboard } from '@/hooks/use-copy-to-clipboard';\nimport { cn } from '@/utils/cn';\n\nexport interface WorkflowEntityHeaderProps {\n requestContext?: Record<string, any>;\n workflowId: string;\n}\n\nexport const WorkflowEntityHeader = ({ workflowId, requestContext }: WorkflowEntityHeaderProps) => {\n const { data: workflow, isLoading } = useWorkflow(workflowId, requestContext);\n const { handleCopy } = useCopyToClipboard({ text: workflowId });\n\n const workflowName = workflow?.name || workflowId;\n const stepsCount = Object.keys(workflow?.steps ?? {}).length;\n\n return (\n <TooltipProvider>\n <EntityHeader icon={<WorkflowIcon />} title={workflowName} isLoading={isLoading}>\n <div className=\"flex flex-wrap items-center gap-x-2 gap-y-3\">\n <Tooltip>\n <TooltipTrigger asChild>\n <button type=\"button\" onClick={handleCopy} className=\"h-badge-default shrink-0\">\n <Badge icon={<CopyIcon />}>{workflowId}</Badge>\n </button>\n </TooltipTrigger>\n <TooltipContent>Copy Workflow ID for use in code</TooltipContent>\n </Tooltip>\n\n <Badge>\n {stepsCount} step{stepsCount === 1 ? '' : 's'}\n </Badge>\n\n {workflow?.isProcessorWorkflow && (\n <Badge icon={<Cpu />} variant=\"purple\">\n Processor\n </Badge>\n )}\n\n {workflow?.origin === 'dynamic' && (\n <Tooltip>\n <TooltipTrigger\n render={<span />}\n role=\"note\"\n tabIndex={0}\n aria-label=\"Dynamic workflow\"\n className={cn('rounded-[7px]', focusRing)}\n >\n <Badge icon={<Database />} variant=\"blue\">\n Dynamic\n </Badge>\n </TooltipTrigger>\n <TooltipContent>Registered via the dynamic-workflows API — lives in storage</TooltipContent>\n </Tooltip>\n )}\n </div>\n </EntityHeader>\n </TooltipProvider>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;AAeO,MAAM,oBAAA,GAAuB,CAAC,EAAE,UAAA,EAAY,gBAAe,KAAiC;AACjG,EAAA,MAAM,EAAE,IAAA,EAAM,QAAA,EAAU,WAAU,GAAI,WAAA,CAAY,YAAY,cAAc,CAAA;AAC5E,EAAA,MAAM,EAAE,UAAA,EAAW,GAAI,mBAAmB,EAAE,IAAA,EAAM,YAAY,CAAA;AAE9D,EAAA,MAAM,YAAA,GAAe,UAAU,IAAA,IAAQ,UAAA;AACvC,EAAA,MAAM,aAAa,MAAA,CAAO,IAAA,CAAK,UAAU,KAAA,IAAS,EAAE,CAAA,CAAE,MAAA;AAEtD,EAAA,uBACE,GAAA,CAAC,eAAA,EAAA,EACC,QAAA,kBAAA,GAAA,CAAC,YAAA,EAAA,EAAa,sBAAM,GAAA,CAAC,YAAA,EAAA,EAAa,CAAA,EAAI,KAAA,EAAO,YAAA,EAAc,SAAA,EACzD,QAAA,kBAAA,IAAA,CAAC,KAAA,EAAA,EAAI,WAAU,6CAAA,EACb,QAAA,EAAA;AAAA,oBAAA,IAAA,CAAC,OAAA,EAAA,EACC,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,kBAAe,OAAA,EAAO,IAAA,EACrB,8BAAC,QAAA,EAAA,EAAO,IAAA,EAAK,UAAS,OAAA,EAAS,UAAA,EAAY,WAAU,0BAAA,EACnD,QAAA,kBAAA,GAAA,CAAC,SAAM,IAAA,kBAAM,GAAA,CAAC,YAAS,CAAA,EAAK,QAAA,EAAA,UAAA,EAAW,GACzC,CAAA,EACF,CAAA;AAAA,sBACA,GAAA,CAAC,kBAAe,QAAA,EAAA,kCAAA,EAAgC;AAAA,KAAA,EAClD,CAAA;AAAA,yBAEC,KAAA,EAAA,EACE,QAAA,EAAA;AAAA,MAAA,UAAA;AAAA,MAAW,OAAA;AAAA,MAAM,UAAA,KAAe,IAAI,EAAA,GAAK;AAAA,KAAA,EAC5C,CAAA;AAAA,IAEC,QAAA,EAAU,mBAAA,oBACT,GAAA,CAAC,KAAA,EAAA,EAAM,IAAA,sBAAO,GAAA,EAAA,EAAI,CAAA,EAAI,OAAA,EAAQ,QAAA,EAAS,QAAA,EAAA,WAAA,EAEvC,CAAA;AAAA,IAGD,QAAA,EAAU,MAAA,KAAW,SAAA,oBACpB,IAAA,CAAC,OAAA,EAAA,EACC,QAAA,EAAA;AAAA,sBAAA,GAAA;AAAA,QAAC,cAAA;AAAA,QAAA;AAAA,UACC,MAAA,sBAAS,MAAA,EAAA,EAAK,CAAA;AAAA,UACd,IAAA,EAAK,MAAA;AAAA,UACL,QAAA,EAAU,CAAA;AAAA,UACV,YAAA,EAAW,kBAAA;AAAA,UACX,SAAA,EAAW,EAAA,CAAG,eAAA,EAAiB,SAAS,CAAA;AAAA,UAExC,QAAA,kBAAA,GAAA,CAAC,SAAM,IAAA,kBAAM,GAAA,CAAC,YAAS,CAAA,EAAI,OAAA,EAAQ,QAAO,QAAA,EAAA,SAAA,EAE1C;AAAA;AAAA,OACF;AAAA,sBACA,GAAA,CAAC,kBAAe,QAAA,EAAA,6DAAA,EAA2D;AAAA,KAAA,EAC7E;AAAA,GAAA,EAEJ,GACF,CAAA,EACF,CAAA;AAEJ;;;;"}
@@ -13,9 +13,9 @@ const domains_workflows_workflow_workflowRunHeader = require('../workflow/workfl
13
13
  const domains_workflows_workflow_workflowTrigger = require('../workflow/workflow-trigger.cjs.js');
14
14
  const domains_workflows_components_workflowLayout = require('./workflow-layout.cjs.js');
15
15
  const domains_workflows_hooks_useWorkflow = require('../hooks/use-workflow.cjs.js');
16
- const Button = require('../../../Button-DbJn0bJX.cjs');
17
- const collapsible = require('../../../collapsible-BFSJouuI.cjs');
18
- const scrollArea = require('../../../scroll-area-BE7FJqVA.cjs');
16
+ const Button = require('../../../Button-BnmR2HRc.cjs');
17
+ const collapsible = require('../../../collapsible-jfzzU7Gp.cjs');
18
+ const scrollArea = require('../../../scroll-area-CEuf7Omb.cjs');
19
19
  const lib_framework = require('../../../lib/framework.cjs.js');
20
20
  const utils_cn = require('../../../cn-DG0X1KEP.cjs');
21
21
  const toast = require('../../../toast-nm-fM7BR.cjs');