@mastra/playground-ui 60.2.0 → 61.0.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1106) hide show
  1. package/README.md +18 -0
  2. package/dist/{Avatar-bHcyExU7.js → Avatar-Bg_EZRgZ.js} +2 -2
  3. package/dist/{Avatar-bHcyExU7.js.map → Avatar-Bg_EZRgZ.js.map} +1 -1
  4. package/dist/{Avatar-B3PwGdWv.cjs → Avatar-DchBEEMO.cjs} +2 -2
  5. package/dist/{Avatar-B3PwGdWv.cjs.map → Avatar-DchBEEMO.cjs.map} +1 -1
  6. package/dist/{Badge-D3EctKQo.cjs → Badge-DB59RxT5.cjs} +3 -3
  7. package/dist/Badge-DB59RxT5.cjs.map +1 -0
  8. package/dist/{Badge-DmOqFpXW.js → Badge-DId-8rYY.js} +3 -3
  9. package/dist/Badge-DId-8rYY.js.map +1 -0
  10. package/dist/{EmptyState-DyyUFpzY.js → EmptyState-DGzBN0Ix.js} +2 -2
  11. package/dist/{EmptyState-DyyUFpzY.js.map → EmptyState-DGzBN0Ix.js.map} +1 -1
  12. package/dist/{EmptyState-CuoMGNP0.cjs → EmptyState-DvSib3QC.cjs} +2 -2
  13. package/dist/{EmptyState-CuoMGNP0.cjs.map → EmptyState-DvSib3QC.cjs.map} +1 -1
  14. package/dist/{Header-hTHhO02b.js → Header-BXl3AZgO.js} +2 -2
  15. package/dist/{Header-hTHhO02b.js.map → Header-BXl3AZgO.js.map} +1 -1
  16. package/dist/{Header-y51Sfo3G.cjs → Header-W3PBmXia.cjs} +2 -2
  17. package/dist/{Header-y51Sfo3G.cjs.map → Header-W3PBmXia.cjs.map} +1 -1
  18. package/dist/{Notice-B8RIClJD.js → Notice-D4gMAkVI.js} +2 -2
  19. package/dist/{Notice-B8RIClJD.js.map → Notice-D4gMAkVI.js.map} +1 -1
  20. package/dist/{Notice-C4Tgmtgb.cjs → Notice-D4zc_oTj.cjs} +2 -2
  21. package/dist/{Notice-C4Tgmtgb.cjs.map → Notice-D4zc_oTj.cjs.map} +1 -1
  22. package/dist/{Txt-BP1SRHmL.js → Txt-C3cYJgKU.js} +4 -1
  23. package/dist/Txt-C3cYJgKU.js.map +1 -0
  24. package/dist/{Txt-DPmEpNbp.cjs → Txt-DNnvlrBo.cjs} +4 -1
  25. package/dist/Txt-DNnvlrBo.cjs.map +1 -0
  26. package/dist/{activity-CbQG59Oc.cjs → activity-ClKZR5_o.cjs} +2 -2
  27. package/dist/{activity-CbQG59Oc.cjs.map → activity-ClKZR5_o.cjs.map} +1 -1
  28. package/dist/{activity-BoXbE4Kz.js → activity-D0SefV4r.js} +2 -2
  29. package/dist/{activity-BoXbE4Kz.js.map → activity-D0SefV4r.js.map} +1 -1
  30. package/dist/{ask-user-DE8TaPhb.js → ask-user-CqCUiZRR.js} +4 -4
  31. package/dist/{ask-user-DE8TaPhb.js.map → ask-user-CqCUiZRR.js.map} +1 -1
  32. package/dist/{ask-user-XYY0fUoI.cjs → ask-user-DBb0lUh2.cjs} +4 -4
  33. package/dist/{ask-user-XYY0fUoI.cjs.map → ask-user-DBb0lUh2.cjs.map} +1 -1
  34. package/dist/buttons-group.css +1 -1
  35. package/dist/{code-block-Bnz7Pq0Q.js → code-block-C04dJD3G.js} +5 -4
  36. package/dist/{code-block-Bnz7Pq0Q.js.map → code-block-C04dJD3G.js.map} +1 -1
  37. package/dist/{code-block-C3DbSINk.cjs → code-block-CMI2oLXm.cjs} +6 -5
  38. package/dist/{code-block-C3DbSINk.cjs.map → code-block-CMI2oLXm.cjs.map} +1 -1
  39. package/dist/collapsible-box-DW-y0Oi1.js +67 -0
  40. package/dist/collapsible-box-DW-y0Oi1.js.map +1 -0
  41. package/dist/collapsible-box-DdUueeh6.cjs +69 -0
  42. package/dist/collapsible-box-DdUueeh6.cjs.map +1 -0
  43. package/dist/{combobox-RzEkcOuu.cjs → combobox-DPpiBLWV.cjs} +3 -3
  44. package/dist/{combobox-RzEkcOuu.cjs.map → combobox-DPpiBLWV.cjs.map} +1 -1
  45. package/dist/{combobox-DKFPbNMB.js → combobox-DoJgbq9N.js} +3 -3
  46. package/dist/{combobox-DKFPbNMB.js.map → combobox-DoJgbq9N.js.map} +1 -1
  47. package/dist/{combobox-styles-mbcWlNZQ.js → combobox-styles-BuHYzri9.js} +3 -3
  48. package/dist/combobox-styles-BuHYzri9.js.map +1 -0
  49. package/dist/{combobox-styles-qL3FSgmU.cjs → combobox-styles-zdW4cHSq.cjs} +3 -3
  50. package/dist/combobox-styles-zdW4cHSq.cjs.map +1 -0
  51. package/dist/{command-DFin7kHN.js → command-CXPbrw66.js} +7 -4
  52. package/dist/command-CXPbrw66.js.map +1 -0
  53. package/dist/{command-Bm0VcX7X.cjs → command-DD3WIrQX.cjs} +7 -4
  54. package/dist/command-DD3WIrQX.cjs.map +1 -0
  55. package/dist/{comment-DKWkzdMj.js → comment-B1Cf9w4Z.js} +2 -2
  56. package/dist/{comment-DKWkzdMj.js.map → comment-B1Cf9w4Z.js.map} +1 -1
  57. package/dist/{comment-DWY6D0pZ.cjs → comment-DnbibTOe.cjs} +2 -2
  58. package/dist/{comment-DWY6D0pZ.cjs.map → comment-DnbibTOe.cjs.map} +1 -1
  59. package/dist/components/Avatar.cjs.js +1 -1
  60. package/dist/components/Avatar.es.js +1 -1
  61. package/dist/components/Badge.cjs.js +1 -1
  62. package/dist/components/Badge.es.js +1 -1
  63. package/dist/components/ClampedText.cjs.js +1 -1
  64. package/dist/components/ClampedText.es.js +1 -1
  65. package/dist/components/CodeBlock.cjs.js +1 -1
  66. package/dist/components/CodeBlock.es.js +1 -1
  67. package/dist/components/CollapsibleBox.cjs.js +3 -2
  68. package/dist/components/CollapsibleBox.cjs.js.map +1 -1
  69. package/dist/components/CollapsibleBox.es.js +2 -1
  70. package/dist/components/CollapsibleBox.es.js.map +1 -1
  71. package/dist/components/Combobox.cjs.js +2 -2
  72. package/dist/components/Combobox.es.js +2 -2
  73. package/dist/components/Command.cjs.js +1 -1
  74. package/dist/components/Command.es.js +1 -1
  75. package/dist/components/CommandPalette.cjs.js +2 -2
  76. package/dist/components/CommandPalette.es.js +2 -2
  77. package/dist/components/Comment.cjs.js +4 -4
  78. package/dist/components/Comment.es.js +5 -5
  79. package/dist/components/DataCodeSection.cjs.js +1 -1
  80. package/dist/components/DataCodeSection.es.js +1 -1
  81. package/dist/components/DataDetailsPanel.cjs.js +1 -1
  82. package/dist/components/DataDetailsPanel.es.js +1 -1
  83. package/dist/components/DataList.cjs.js +4 -4
  84. package/dist/components/DataList.es.js +4 -4
  85. package/dist/components/DataPanel.cjs.js +1 -1
  86. package/dist/components/DataPanel.es.js +1 -1
  87. package/dist/components/DateRangeTimeline.cjs.js +1 -1
  88. package/dist/components/DateRangeTimeline.es.js +1 -1
  89. package/dist/components/DateTimePicker.cjs.js +2 -2
  90. package/dist/components/DateTimePicker.es.js +2 -2
  91. package/dist/components/DateTimeRangePicker.cjs.js +1 -1
  92. package/dist/components/DateTimeRangePicker.es.js +1 -1
  93. package/dist/components/EmptyState.cjs.js +1 -1
  94. package/dist/components/EmptyState.es.js +1 -1
  95. package/dist/components/Entity.cjs.js +1 -1
  96. package/dist/components/Entity.es.js +1 -1
  97. package/dist/components/EntityHeader.cjs.js +1 -1
  98. package/dist/components/EntityHeader.es.js +1 -1
  99. package/dist/components/Entry.cjs.js +1 -1
  100. package/dist/components/Entry.es.js +1 -1
  101. package/dist/components/EnvironmentVariablesEditor.cjs.js +5 -5
  102. package/dist/components/EnvironmentVariablesEditor.es.js +5 -5
  103. package/dist/components/Field.cjs.js +1 -1
  104. package/dist/components/Field.es.js +1 -1
  105. package/dist/components/FileDropBackdrop.cjs.js +1 -1
  106. package/dist/components/FileDropBackdrop.es.js +1 -1
  107. package/dist/components/FilterBar.cjs.js +3 -3
  108. package/dist/components/FilterBar.es.js +4 -4
  109. package/dist/components/FormFieldBlocks.cjs.js +2 -2
  110. package/dist/components/FormFieldBlocks.es.js +2 -2
  111. package/dist/components/Header.cjs.js +1 -1
  112. package/dist/components/Header.es.js +1 -1
  113. package/dist/components/HorizontalBars.cjs.js +1 -1
  114. package/dist/components/HorizontalBars.es.js +1 -1
  115. package/dist/components/InputGroup.cjs.js +3 -1
  116. package/dist/components/InputGroup.cjs.js.map +1 -1
  117. package/dist/components/InputGroup.es.js +1 -1
  118. package/dist/components/InputNumber.cjs.js +95 -0
  119. package/dist/components/InputNumber.cjs.js.map +1 -0
  120. package/dist/components/InputNumber.d.ts +2 -0
  121. package/dist/components/InputNumber.es.js +68 -0
  122. package/dist/components/InputNumber.es.js.map +1 -0
  123. package/dist/components/JSONSchemaForm.cjs.js +2 -2
  124. package/dist/components/JSONSchemaForm.es.js +2 -2
  125. package/dist/components/KeyValueList.cjs.js +1 -1
  126. package/dist/components/KeyValueList.es.js +1 -1
  127. package/dist/components/ListSearch.cjs.js +1 -1
  128. package/dist/components/ListSearch.es.js +1 -1
  129. package/dist/components/LogsDataList.cjs.js +3 -1
  130. package/dist/components/LogsDataList.cjs.js.map +1 -1
  131. package/dist/components/LogsDataList.es.js +3 -1
  132. package/dist/components/LogsDataList.es.js.map +1 -1
  133. package/dist/components/MainHeader.cjs.js +1 -1
  134. package/dist/components/MainHeader.es.js +1 -1
  135. package/dist/components/MarkdownRenderer.cjs.js +1 -1
  136. package/dist/components/MarkdownRenderer.es.js +1 -1
  137. package/dist/components/Message.cjs.js +1 -1
  138. package/dist/components/Message.es.js +2 -2
  139. package/dist/components/MetricsCard.cjs.js +1 -1
  140. package/dist/components/MetricsCard.es.js +1 -1
  141. package/dist/components/MetricsKpiCard.cjs.js +1 -1
  142. package/dist/components/MetricsKpiCard.es.js +1 -1
  143. package/dist/components/MetricsLineChart.cjs.js +2 -2
  144. package/dist/components/MetricsLineChart.es.js +2 -2
  145. package/dist/components/MetricsStackedBarChart.cjs.js +1 -1
  146. package/dist/components/MetricsStackedBarChart.es.js +1 -1
  147. package/dist/components/Notice.cjs.js +1 -1
  148. package/dist/components/Notice.es.js +1 -1
  149. package/dist/components/PageHeader.cjs.js +1 -1
  150. package/dist/components/PageHeader.es.js +1 -1
  151. package/dist/components/PageLayout.cjs.js +1 -1
  152. package/dist/components/PageLayout.es.js +1 -1
  153. package/dist/components/ProductBadge.cjs.js +1 -1
  154. package/dist/components/ProductBadge.es.js +1 -1
  155. package/dist/components/PropertyFilter.cjs.js +3 -3
  156. package/dist/components/PropertyFilter.es.js +3 -3
  157. package/dist/components/RelativeTimestamp.cjs.js +1 -1
  158. package/dist/components/RelativeTimestamp.es.js +1 -1
  159. package/dist/components/RuleBuilder.cjs.js +2 -2
  160. package/dist/components/RuleBuilder.es.js +2 -2
  161. package/dist/components/ScatterPlotChart.cjs.js +1 -1
  162. package/dist/components/ScatterPlotChart.es.js +1 -1
  163. package/dist/components/SearchInput.cjs.js +1 -1
  164. package/dist/components/SearchInput.es.js +1 -1
  165. package/dist/components/Section.cjs.js +1 -1
  166. package/dist/components/Section.es.js +1 -1
  167. package/dist/components/SectionCard.cjs.js +1 -1
  168. package/dist/components/SectionCard.es.js +1 -1
  169. package/dist/components/Select.cjs.js +1 -1
  170. package/dist/components/Select.es.js +1 -1
  171. package/dist/components/SideDialog.cjs.js +1 -1
  172. package/dist/components/SideDialog.es.js +1 -1
  173. package/dist/components/StatusIndicators.cjs.js +1 -1
  174. package/dist/components/StatusIndicators.es.js +1 -1
  175. package/dist/components/Steps.cjs.js +1 -1
  176. package/dist/components/Steps.es.js +1 -1
  177. package/dist/components/Table.cjs.js +1 -1
  178. package/dist/components/Table.es.js +1 -1
  179. package/dist/components/Tabs.cjs.js +5 -4
  180. package/dist/components/Tabs.cjs.js.map +1 -1
  181. package/dist/components/Tabs.es.js +4 -3
  182. package/dist/components/Tabs.es.js.map +1 -1
  183. package/dist/components/Text.cjs.js +1 -1
  184. package/dist/components/Text.es.js +1 -1
  185. package/dist/components/ThinkingLevel.cjs.js +230 -0
  186. package/dist/components/ThinkingLevel.cjs.js.map +1 -0
  187. package/dist/components/ThinkingLevel.d.ts +2 -0
  188. package/dist/components/ThinkingLevel.es.js +223 -0
  189. package/dist/components/ThinkingLevel.es.js.map +1 -0
  190. package/dist/components/ThreadList.cjs.js +1 -1
  191. package/dist/components/ThreadList.es.js +1 -1
  192. package/dist/components/ThreadRail.cjs.js +1 -1
  193. package/dist/components/ThreadRail.es.js +1 -1
  194. package/dist/components/TokenBudget.cjs.js +1 -1
  195. package/dist/components/TokenBudget.es.js +1 -1
  196. package/dist/components/Tree.cjs.js +2 -487
  197. package/dist/components/Tree.cjs.js.map +1 -1
  198. package/dist/components/Tree.es.js +1 -471
  199. package/dist/components/Tree.es.js.map +1 -1
  200. package/dist/components/Truncate.cjs.js +1 -1
  201. package/dist/components/Truncate.es.js +1 -1
  202. package/dist/components/Txt.cjs.js +1 -1
  203. package/dist/components/Txt.es.js +1 -1
  204. package/dist/components/Workflow.cjs.js +4 -4
  205. package/dist/components/Workflow.es.js +4 -4
  206. package/dist/components/ai/activity.cjs.js +4 -4
  207. package/dist/components/ai/activity.es.js +4 -4
  208. package/dist/components/ai/ask-user.cjs.js +1 -1
  209. package/dist/components/ai/ask-user.es.js +1 -1
  210. package/dist/components/ai/plan.cjs.js +1 -1
  211. package/dist/components/ai/plan.es.js +1 -1
  212. package/dist/components/ai/task-list.cjs.js +1 -1
  213. package/dist/components/ai/task-list.es.js +1 -1
  214. package/dist/components/ai/tool-call.cjs.js +2 -2
  215. package/dist/components/ai/tool-call.es.js +2 -2
  216. package/dist/components/ai/transcript-divider.cjs.js +3 -11
  217. package/dist/components/ai/transcript-divider.cjs.js.map +1 -1
  218. package/dist/components/ai/transcript-divider.es.js +1 -13
  219. package/dist/components/ai/transcript-divider.es.js.map +1 -1
  220. package/dist/{data-code-section-Ds79F6W-.cjs → data-code-section-DIj4CMvD.cjs} +2 -2
  221. package/dist/{data-code-section-Ds79F6W-.cjs.map → data-code-section-DIj4CMvD.cjs.map} +1 -1
  222. package/dist/{data-code-section-DFxE6ckH.js → data-code-section-K-2Bj1zO.js} +2 -2
  223. package/dist/{data-code-section-DFxE6ckH.js.map → data-code-section-K-2Bj1zO.js.map} +1 -1
  224. package/dist/{data-list-CEIYm7FY.js → data-list-DdsyfT8B.js} +3 -3
  225. package/dist/{data-list-CEIYm7FY.js.map → data-list-DdsyfT8B.js.map} +1 -1
  226. package/dist/{data-list-Bqf-fhMx.cjs → data-list-DoKc-wSe.cjs} +3 -3
  227. package/dist/{data-list-Bqf-fhMx.cjs.map → data-list-DoKc-wSe.cjs.map} +1 -1
  228. package/dist/{data-list-spacer-BH2DjRdk.js → data-list-spacer-7QVTcgIS.js} +2 -2
  229. package/dist/{data-list-spacer-BH2DjRdk.js.map → data-list-spacer-7QVTcgIS.js.map} +1 -1
  230. package/dist/{data-list-spacer-DFvaAEqo.cjs → data-list-spacer-CD4hD-As.cjs} +2 -2
  231. package/dist/{data-list-spacer-DFvaAEqo.cjs.map → data-list-spacer-CD4hD-As.cjs.map} +1 -1
  232. package/dist/{data-panel-CbomKGJt.js → data-panel-CKvpHRUM.js} +4 -4
  233. package/dist/data-panel-CKvpHRUM.js.map +1 -0
  234. package/dist/{data-panel-o-QLWuFV.cjs → data-panel-YCvno_Di.cjs} +4 -4
  235. package/dist/data-panel-YCvno_Di.cjs.map +1 -0
  236. package/dist/{date-time-range-picker-Bb-CGVEL.cjs → date-time-range-picker-BbX8F_LY.cjs} +4 -4
  237. package/dist/{date-time-range-picker-Bb-CGVEL.cjs.map → date-time-range-picker-BbX8F_LY.cjs.map} +1 -1
  238. package/dist/{date-time-range-picker-B1zYIQTC.js → date-time-range-picker-DzPLKJol.js} +4 -4
  239. package/dist/{date-time-range-picker-B1zYIQTC.js.map → date-time-range-picker-DzPLKJol.js.map} +1 -1
  240. package/dist/domains/auth/components/permission-denied.cjs.js +1 -1
  241. package/dist/domains/auth/components/permission-denied.es.js +1 -1
  242. package/dist/domains/auth/components/session-expired.cjs.js +1 -1
  243. package/dist/domains/auth/components/session-expired.es.js +1 -1
  244. package/dist/domains/chat/components/badge-wrapper.cjs.js +1 -1
  245. package/dist/domains/chat/components/badge-wrapper.es.js +1 -1
  246. package/dist/domains/chat/components/network-choice-metadata-dialog.cjs.js +1 -1
  247. package/dist/domains/chat/components/network-choice-metadata-dialog.es.js +1 -1
  248. package/dist/domains/chat/components/section-label.cjs.js +1 -1
  249. package/dist/domains/chat/components/section-label.es.js +1 -1
  250. package/dist/domains/chat/messages/assistant-message-actions.cjs.js +1 -1
  251. package/dist/domains/chat/messages/assistant-message-actions.es.js +1 -1
  252. package/dist/domains/chat/messages/dataset-save-action.cjs.js +2 -2
  253. package/dist/domains/chat/messages/dataset-save-action.es.js +2 -2
  254. package/dist/domains/chat/messages/message-row.cjs.js +4 -4
  255. package/dist/domains/chat/messages/message-row.es.js +4 -4
  256. package/dist/domains/chat/messages/notification-signal-notice.cjs.js +1 -1
  257. package/dist/domains/chat/messages/notification-signal-notice.es.js +1 -1
  258. package/dist/domains/chat/messages/renderers/message-text.cjs.js +3 -3
  259. package/dist/domains/chat/messages/renderers/message-text.es.js +3 -3
  260. package/dist/domains/chat/messages/renderers/reasoning-part-renderer.cjs.js +1 -1
  261. package/dist/domains/chat/messages/renderers/reasoning-part-renderer.es.js +1 -1
  262. package/dist/domains/chat/messages/renderers/status-renderers.cjs.js +1 -1
  263. package/dist/domains/chat/messages/renderers/status-renderers.es.js +1 -1
  264. package/dist/domains/chat/messages/signal-badge.cjs.js +1 -1
  265. package/dist/domains/chat/messages/signal-badge.es.js +1 -1
  266. package/dist/domains/chat/messages/skill-message.cjs.js +3 -3
  267. package/dist/domains/chat/messages/skill-message.es.js +3 -3
  268. package/dist/domains/chat/messages/system-reminder-badge.cjs.js +1 -1
  269. package/dist/domains/chat/messages/system-reminder-badge.es.js +1 -1
  270. package/dist/domains/chat/messages/tripwire-notice.cjs.js +2 -2
  271. package/dist/domains/chat/messages/tripwire-notice.es.js +2 -2
  272. package/dist/domains/chat/tools/badges/ask-user-badge.cjs.js +1 -1
  273. package/dist/domains/chat/tools/badges/ask-user-badge.es.js +1 -1
  274. package/dist/domains/chat/tools/badges/background-task-metadata-dialog.cjs.js +1 -1
  275. package/dist/domains/chat/tools/badges/background-task-metadata-dialog.es.js +1 -1
  276. package/dist/domains/chat/tools/badges/code-mode-badge.cjs.js +1 -1
  277. package/dist/domains/chat/tools/badges/code-mode-badge.es.js +1 -1
  278. package/dist/domains/chat/tools/badges/file-tree-badge.cjs.js +3 -3
  279. package/dist/domains/chat/tools/badges/file-tree-badge.es.js +3 -3
  280. package/dist/domains/chat/tools/badges/observation-marker-badge.cjs.js +1 -1
  281. package/dist/domains/chat/tools/badges/observation-marker-badge.es.js +1 -1
  282. package/dist/domains/chat/tools/badges/observation-marker-details.cjs.js +3 -3
  283. package/dist/domains/chat/tools/badges/observation-marker-details.es.js +3 -3
  284. package/dist/domains/chat/tools/badges/observation-renderer.cjs.js +2 -2
  285. package/dist/domains/chat/tools/badges/observation-renderer.es.js +2 -2
  286. package/dist/domains/chat/tools/badges/sandbox-execution-badge.cjs.js +2 -2
  287. package/dist/domains/chat/tools/badges/sandbox-execution-badge.es.js +2 -2
  288. package/dist/domains/chat/tools/badges/tool-badge.cjs.js +2 -2
  289. package/dist/domains/chat/tools/badges/tool-badge.es.js +2 -2
  290. package/dist/domains/chat/tools/badges/workflow-badge.cjs.js +1 -1
  291. package/dist/domains/chat/tools/badges/workflow-badge.es.js +1 -1
  292. package/dist/domains/chat/tools/badges/workspace-link.cjs.js +1 -1
  293. package/dist/domains/chat/tools/badges/workspace-link.es.js +1 -1
  294. package/dist/domains/chat/tools/submit-plan-tool.cjs.js +2 -2
  295. package/dist/domains/chat/tools/submit-plan-tool.es.js +2 -2
  296. package/dist/domains/datasets/components/save-as-dataset-item-dialog.cjs.js +4 -4
  297. package/dist/domains/datasets/components/save-as-dataset-item-dialog.es.js +4 -4
  298. package/dist/domains/logs/components/log-data-panel.cjs.js +2 -2
  299. package/dist/domains/logs/components/log-data-panel.es.js +2 -2
  300. package/dist/domains/logs/components/logs-error-content.cjs.js +1 -1
  301. package/dist/domains/logs/components/logs-error-content.es.js +1 -1
  302. package/dist/domains/logs/components/logs-list-view.cjs.js +1 -1
  303. package/dist/domains/logs/components/logs-list-view.es.js +1 -1
  304. package/dist/domains/logs/components/no-logs-info.cjs.js +1 -1
  305. package/dist/domains/logs/components/no-logs-info.es.js +1 -1
  306. package/dist/domains/memory/components/flame-graph.cjs.js +1 -1
  307. package/dist/domains/memory/components/flame-graph.es.js +1 -1
  308. package/dist/domains/memory/components/memory-studio-panel.cjs.js +1 -1
  309. package/dist/domains/memory/components/memory-studio-panel.es.js +1 -1
  310. package/dist/domains/memory/components/observation-detail-view.cjs.js +3 -3
  311. package/dist/domains/memory/components/observation-detail-view.es.js +3 -3
  312. package/dist/domains/metrics/components/bar-list.cjs.js +1 -1
  313. package/dist/domains/metrics/components/bar-list.es.js +1 -1
  314. package/dist/domains/metrics/components/date-range-selector.cjs.js +1 -1
  315. package/dist/domains/metrics/components/date-range-selector.es.js +1 -1
  316. package/dist/domains/metrics/components/kpi-card-view.cjs.js +1 -1
  317. package/dist/domains/metrics/components/kpi-card-view.es.js +1 -1
  318. package/dist/domains/metrics/components/latency-card-view.cjs.js +8 -7
  319. package/dist/domains/metrics/components/latency-card-view.cjs.js.map +1 -1
  320. package/dist/domains/metrics/components/latency-card-view.es.js +7 -6
  321. package/dist/domains/metrics/components/latency-card-view.es.js.map +1 -1
  322. package/dist/domains/metrics/components/memory-card-view.cjs.js +7 -6
  323. package/dist/domains/metrics/components/memory-card-view.cjs.js.map +1 -1
  324. package/dist/domains/metrics/components/memory-card-view.es.js +6 -5
  325. package/dist/domains/metrics/components/memory-card-view.es.js.map +1 -1
  326. package/dist/domains/metrics/components/model-usage-cost-card-view.cjs.js +2 -2
  327. package/dist/domains/metrics/components/model-usage-cost-card-view.es.js +2 -2
  328. package/dist/domains/metrics/components/scores-card-view.cjs.js +8 -7
  329. package/dist/domains/metrics/components/scores-card-view.cjs.js.map +1 -1
  330. package/dist/domains/metrics/components/scores-card-view.es.js +7 -6
  331. package/dist/domains/metrics/components/scores-card-view.es.js.map +1 -1
  332. package/dist/domains/metrics/components/token-usage-by-agent-card-view.cjs.js +7 -6
  333. package/dist/domains/metrics/components/token-usage-by-agent-card-view.cjs.js.map +1 -1
  334. package/dist/domains/metrics/components/token-usage-by-agent-card-view.es.js +6 -5
  335. package/dist/domains/metrics/components/token-usage-by-agent-card-view.es.js.map +1 -1
  336. package/dist/domains/metrics/components/token-usage-timeline-card-view.cjs.js +8 -7
  337. package/dist/domains/metrics/components/token-usage-timeline-card-view.cjs.js.map +1 -1
  338. package/dist/domains/metrics/components/token-usage-timeline-card-view.es.js +7 -6
  339. package/dist/domains/metrics/components/token-usage-timeline-card-view.es.js.map +1 -1
  340. package/dist/domains/metrics/components/traces-volume-card-view.cjs.js +7 -6
  341. package/dist/domains/metrics/components/traces-volume-card-view.cjs.js.map +1 -1
  342. package/dist/domains/metrics/components/traces-volume-card-view.es.js +6 -5
  343. package/dist/domains/metrics/components/traces-volume-card-view.es.js.map +1 -1
  344. package/dist/domains/observability/components/add-trace-mocks-to-item-dialog.cjs.js +4 -4
  345. package/dist/domains/observability/components/add-trace-mocks-to-item-dialog.es.js +4 -4
  346. package/dist/domains/observability/components/trace-as-item-dialog.cjs.js +1 -1
  347. package/dist/domains/observability/components/trace-as-item-dialog.es.js +1 -1
  348. package/dist/domains/request-context/components/request-context-label.cjs.js +1 -1
  349. package/dist/domains/request-context/components/request-context-label.es.js +1 -1
  350. package/dist/domains/review/components/review-status-badge.cjs.js +1 -1
  351. package/dist/domains/review/components/review-status-badge.es.js +1 -1
  352. package/dist/domains/scores/components/score-as-item-dialog.cjs.js +1 -1
  353. package/dist/domains/scores/components/score-as-item-dialog.es.js +1 -1
  354. package/dist/domains/scores/components/score-data-panel.cjs.js +1 -1
  355. package/dist/domains/scores/components/score-data-panel.es.js +1 -1
  356. package/dist/domains/scores/components/span-scoring.cjs.js +3 -3
  357. package/dist/domains/scores/components/span-scoring.es.js +3 -3
  358. package/dist/domains/scores/components/trace-scores-tab.cjs.js +5 -4
  359. package/dist/domains/scores/components/trace-scores-tab.cjs.js.map +1 -1
  360. package/dist/domains/scores/components/trace-scores-tab.es.js +5 -4
  361. package/dist/domains/scores/components/trace-scores-tab.es.js.map +1 -1
  362. package/dist/domains/traces/components/feedback-thread.cjs.js +4 -4
  363. package/dist/domains/traces/components/feedback-thread.es.js +4 -4
  364. package/dist/domains/traces/components/no-traces-info.cjs.js +1 -1
  365. package/dist/domains/traces/components/no-traces-info.es.js +1 -1
  366. package/dist/domains/traces/components/span-data-panel-view.cjs.js +20 -15
  367. package/dist/domains/traces/components/span-data-panel-view.cjs.js.map +1 -1
  368. package/dist/domains/traces/components/span-data-panel-view.es.js +19 -14
  369. package/dist/domains/traces/components/span-data-panel-view.es.js.map +1 -1
  370. package/dist/domains/traces/components/span-payload/span-error-renderer.cjs.js +2 -2
  371. package/dist/domains/traces/components/span-payload/span-error-renderer.es.js +2 -2
  372. package/dist/domains/traces/components/span-payload/span-input-renderers.cjs.js +1 -1
  373. package/dist/domains/traces/components/span-payload/span-input-renderers.es.js +1 -1
  374. package/dist/domains/traces/components/span-payload/span-output-renderers.cjs.js +3 -3
  375. package/dist/domains/traces/components/span-payload/span-output-renderers.es.js +3 -3
  376. package/dist/domains/traces/components/span-payload/span-payload-messages.cjs.js +3 -3
  377. package/dist/domains/traces/components/span-payload/span-payload-messages.es.js +3 -3
  378. package/dist/domains/traces/components/span-payload/span-payload-primitives.cjs.js +2 -2
  379. package/dist/domains/traces/components/span-payload/span-payload-primitives.es.js +2 -2
  380. package/dist/domains/traces/components/span-payload/span-payload-processor.cjs.js +1 -1
  381. package/dist/domains/traces/components/span-payload/span-payload-processor.es.js +1 -1
  382. package/dist/domains/traces/components/span-payload/span-payload-section.cjs.js +3 -2
  383. package/dist/domains/traces/components/span-payload/span-payload-section.cjs.js.map +1 -1
  384. package/dist/domains/traces/components/span-payload/span-payload-section.es.js +2 -1
  385. package/dist/domains/traces/components/span-payload/span-payload-section.es.js.map +1 -1
  386. package/dist/domains/traces/components/span-payload/span-payload-tool.cjs.js +2 -2
  387. package/dist/domains/traces/components/span-payload/span-payload-tool.es.js +2 -2
  388. package/dist/domains/traces/components/span-payload/span-processor-attributes.cjs.js +3 -3
  389. package/dist/domains/traces/components/span-payload/span-processor-attributes.es.js +3 -3
  390. package/dist/domains/traces/components/span-summary-description.cjs.js +1 -1
  391. package/dist/domains/traces/components/span-summary-description.es.js +1 -1
  392. package/dist/domains/traces/components/span-timeline-row.cjs.js +1 -1
  393. package/dist/domains/traces/components/span-timeline-row.es.js +1 -1
  394. package/dist/domains/traces/components/span-token-usage.cjs.js +1 -1
  395. package/dist/domains/traces/components/span-token-usage.es.js +1 -1
  396. package/dist/domains/traces/components/span-type-legend.cjs.js +1 -1
  397. package/dist/domains/traces/components/span-type-legend.es.js +1 -1
  398. package/dist/domains/traces/components/thread-trace/thread-trace-details.cjs.js +5 -3
  399. package/dist/domains/traces/components/thread-trace/thread-trace-details.cjs.js.map +1 -1
  400. package/dist/domains/traces/components/thread-trace/thread-trace-details.es.js +5 -3
  401. package/dist/domains/traces/components/thread-trace/thread-trace-details.es.js.map +1 -1
  402. package/dist/domains/traces/components/thread-trace/thread-trace-list.cjs.js +3 -2
  403. package/dist/domains/traces/components/thread-trace/thread-trace-list.cjs.js.map +1 -1
  404. package/dist/domains/traces/components/thread-trace/thread-trace-list.es.js +3 -2
  405. package/dist/domains/traces/components/thread-trace/thread-trace-list.es.js.map +1 -1
  406. package/dist/domains/traces/components/thread-trace/thread-trace-messages.cjs.js +8 -16
  407. package/dist/domains/traces/components/thread-trace/thread-trace-messages.cjs.js.map +1 -1
  408. package/dist/domains/traces/components/thread-trace/thread-trace-messages.es.js +8 -15
  409. package/dist/domains/traces/components/thread-trace/thread-trace-messages.es.js.map +1 -1
  410. package/dist/domains/traces/components/thread-trace/thread-trace-root.cjs.js +2 -15
  411. package/dist/domains/traces/components/thread-trace/thread-trace-root.cjs.js.map +1 -1
  412. package/dist/domains/traces/components/thread-trace/thread-trace-root.es.js +2 -15
  413. package/dist/domains/traces/components/thread-trace/thread-trace-root.es.js.map +1 -1
  414. package/dist/domains/traces/components/thread-trace/thread-trace-row.cjs.js +26 -4
  415. package/dist/domains/traces/components/thread-trace/thread-trace-row.cjs.js.map +1 -1
  416. package/dist/domains/traces/components/thread-trace/thread-trace-row.es.js +26 -6
  417. package/dist/domains/traces/components/thread-trace/thread-trace-row.es.js.map +1 -1
  418. package/dist/domains/traces/components/thread-trace/thread-trace-span-panel.cjs.js +29 -24
  419. package/dist/domains/traces/components/thread-trace/thread-trace-span-panel.cjs.js.map +1 -1
  420. package/dist/domains/traces/components/thread-trace/thread-trace-span-panel.es.js +30 -25
  421. package/dist/domains/traces/components/thread-trace/thread-trace-span-panel.es.js.map +1 -1
  422. package/dist/domains/traces/components/thread-trace/thread-trace-spans.cjs.js +45 -45
  423. package/dist/domains/traces/components/thread-trace/thread-trace-spans.cjs.js.map +1 -1
  424. package/dist/domains/traces/components/thread-trace/thread-trace-spans.es.js +47 -47
  425. package/dist/domains/traces/components/thread-trace/thread-trace-spans.es.js.map +1 -1
  426. package/dist/domains/traces/components/thread-trace.cjs.js +2 -1
  427. package/dist/domains/traces/components/thread-trace.cjs.js.map +1 -1
  428. package/dist/domains/traces/components/thread-trace.es.js +4 -3
  429. package/dist/domains/traces/components/thread-trace.es.js.map +1 -1
  430. package/dist/domains/traces/components/thread-view-by-trace.cjs.js +43 -24
  431. package/dist/domains/traces/components/thread-view-by-trace.cjs.js.map +1 -1
  432. package/dist/domains/traces/components/thread-view-by-trace.es.js +46 -27
  433. package/dist/domains/traces/components/thread-view-by-trace.es.js.map +1 -1
  434. package/dist/domains/traces/components/thread-view-skeleton.cjs.js +28 -13
  435. package/dist/domains/traces/components/thread-view-skeleton.cjs.js.map +1 -1
  436. package/dist/domains/traces/components/thread-view-skeleton.es.js +28 -13
  437. package/dist/domains/traces/components/thread-view-skeleton.es.js.map +1 -1
  438. package/dist/domains/traces/components/timeline-name-col.cjs.js +5 -5
  439. package/dist/domains/traces/components/timeline-name-col.cjs.js.map +1 -1
  440. package/dist/domains/traces/components/timeline-name-col.es.js +5 -5
  441. package/dist/domains/traces/components/timeline-name-col.es.js.map +1 -1
  442. package/dist/domains/traces/components/timeline-timing-col.cjs.js +1 -1
  443. package/dist/domains/traces/components/timeline-timing-col.es.js +1 -1
  444. package/dist/domains/traces/components/trace-columns-menu.cjs.js +3 -3
  445. package/dist/domains/traces/components/trace-columns-menu.es.js +3 -3
  446. package/dist/domains/traces/components/trace-data-panel-view.cjs.js +72 -50
  447. package/dist/domains/traces/components/trace-data-panel-view.cjs.js.map +1 -1
  448. package/dist/domains/traces/components/trace-data-panel-view.es.js +72 -50
  449. package/dist/domains/traces/components/trace-data-panel-view.es.js.map +1 -1
  450. package/dist/domains/traces/components/trace-data-panel.cjs.js +1 -1
  451. package/dist/domains/traces/components/trace-data-panel.es.js +1 -1
  452. package/dist/domains/traces/components/trace-id-button.cjs.js +1 -1
  453. package/dist/domains/traces/components/trace-id-button.es.js +1 -1
  454. package/dist/domains/traces/components/trace-messages-panel.cjs.js +2 -16
  455. package/dist/domains/traces/components/trace-messages-panel.cjs.js.map +1 -1
  456. package/dist/domains/traces/components/trace-messages-panel.es.js +3 -17
  457. package/dist/domains/traces/components/trace-messages-panel.es.js.map +1 -1
  458. package/dist/domains/traces/components/trace-messages-skeleton.cjs.js +18 -15
  459. package/dist/domains/traces/components/trace-messages-skeleton.cjs.js.map +1 -1
  460. package/dist/domains/traces/components/trace-messages-skeleton.es.js +18 -15
  461. package/dist/domains/traces/components/trace-messages-skeleton.es.js.map +1 -1
  462. package/dist/domains/traces/components/trace-span-panel.cjs.js +77 -66
  463. package/dist/domains/traces/components/trace-span-panel.cjs.js.map +1 -1
  464. package/dist/domains/traces/components/trace-span-panel.es.js +78 -67
  465. package/dist/domains/traces/components/trace-span-panel.es.js.map +1 -1
  466. package/dist/domains/traces/components/trace-span-tree-skeleton.cjs.js +11 -13
  467. package/dist/domains/traces/components/trace-span-tree-skeleton.cjs.js.map +1 -1
  468. package/dist/domains/traces/components/trace-span-tree-skeleton.es.js +11 -13
  469. package/dist/domains/traces/components/trace-span-tree-skeleton.es.js.map +1 -1
  470. package/dist/domains/traces/components/trace-span-tree.cjs.js +1 -1
  471. package/dist/domains/traces/components/trace-span-tree.es.js +1 -1
  472. package/dist/domains/traces/components/trace-summary-description.cjs.js +2 -2
  473. package/dist/domains/traces/components/trace-summary-description.es.js +2 -2
  474. package/dist/domains/traces/components/trace-thread-item-view.cjs.js +2 -2
  475. package/dist/domains/traces/components/trace-thread-item-view.cjs.js.map +1 -1
  476. package/dist/domains/traces/components/trace-thread-item-view.es.js +2 -2
  477. package/dist/domains/traces/components/trace-thread-item-view.es.js.map +1 -1
  478. package/dist/domains/traces/components/trace-thread-panel.cjs.js +32 -21
  479. package/dist/domains/traces/components/trace-thread-panel.cjs.js.map +1 -1
  480. package/dist/domains/traces/components/trace-thread-panel.es.js +32 -21
  481. package/dist/domains/traces/components/trace-thread-panel.es.js.map +1 -1
  482. package/dist/domains/traces/components/trace-time-range-chip.cjs.js +2 -2
  483. package/dist/domains/traces/components/trace-time-range-chip.es.js +2 -2
  484. package/dist/domains/traces/components/traces-error-content.cjs.js +1 -1
  485. package/dist/domains/traces/components/traces-error-content.es.js +1 -1
  486. package/dist/domains/traces/components/traces-list-view.cjs.js +3 -3
  487. package/dist/domains/traces/components/traces-list-view.es.js +3 -3
  488. package/dist/domains/traces/components/traces-page-skeleton.cjs.js +2 -0
  489. package/dist/domains/traces/components/traces-page-skeleton.cjs.js.map +1 -1
  490. package/dist/domains/traces/components/traces-page-skeleton.es.js +2 -0
  491. package/dist/domains/traces/components/traces-page-skeleton.es.js.map +1 -1
  492. package/dist/domains/traces/hooks/use-branch.cjs.js +0 -3
  493. package/dist/domains/traces/hooks/use-branch.cjs.js.map +1 -1
  494. package/dist/domains/traces/hooks/use-branch.es.js +0 -3
  495. package/dist/domains/traces/hooks/use-branch.es.js.map +1 -1
  496. package/dist/domains/traces/hooks/use-trace-light-spans.cjs.js +0 -3
  497. package/dist/domains/traces/hooks/use-trace-light-spans.cjs.js.map +1 -1
  498. package/dist/domains/traces/hooks/use-trace-light-spans.es.js +0 -3
  499. package/dist/domains/traces/hooks/use-trace-light-spans.es.js.map +1 -1
  500. package/dist/domains/traces/hooks/use-trace-or-branch-spans.cjs.js.map +1 -1
  501. package/dist/domains/traces/hooks/use-trace-or-branch-spans.es.js.map +1 -1
  502. package/dist/domains/traces/hooks/use-trace-query.cjs.js +2 -0
  503. package/dist/domains/traces/hooks/use-trace-query.cjs.js.map +1 -1
  504. package/dist/domains/traces/hooks/use-trace-query.es.js +2 -0
  505. package/dist/domains/traces/hooks/use-trace-query.es.js.map +1 -1
  506. package/dist/domains/traces/hooks/use-trace-search.cjs.js +7 -2
  507. package/dist/domains/traces/hooks/use-trace-search.cjs.js.map +1 -1
  508. package/dist/domains/traces/hooks/use-trace-search.es.js +7 -2
  509. package/dist/domains/traces/hooks/use-trace-search.es.js.map +1 -1
  510. package/dist/domains/traces/hooks/use-trace-spans.cjs.js +1 -5
  511. package/dist/domains/traces/hooks/use-trace-spans.cjs.js.map +1 -1
  512. package/dist/domains/traces/hooks/use-trace-spans.es.js +1 -5
  513. package/dist/domains/traces/hooks/use-trace-spans.es.js.map +1 -1
  514. package/dist/domains/traces/utils/to-searchable-spans.cjs.js +0 -5
  515. package/dist/domains/traces/utils/to-searchable-spans.cjs.js.map +1 -1
  516. package/dist/domains/traces/utils/to-searchable-spans.es.js +1 -5
  517. package/dist/domains/traces/utils/to-searchable-spans.es.js.map +1 -1
  518. package/dist/domains/traces/utils.cjs.js +0 -1
  519. package/dist/domains/traces/utils.cjs.js.map +1 -1
  520. package/dist/domains/traces/utils.es.js +1 -1
  521. package/dist/domains/traces.cjs.js +0 -1
  522. package/dist/domains/traces.cjs.js.map +1 -1
  523. package/dist/domains/traces.es.js +1 -1
  524. package/dist/domains/workflows/components/workflow-combobox.cjs.js +1 -1
  525. package/dist/domains/workflows/components/workflow-combobox.es.js +1 -1
  526. package/dist/domains/workflows/components/workflow-entity-header.cjs.js +2 -2
  527. package/dist/domains/workflows/components/workflow-entity-header.es.js +2 -2
  528. package/dist/domains/workflows/components/workflow-step-detail.cjs.js +3 -3
  529. package/dist/domains/workflows/components/workflow-step-detail.es.js +3 -3
  530. package/dist/domains/workflows/components/workflows-list/no-workflows-info.cjs.js +1 -1
  531. package/dist/domains/workflows/components/workflows-list/no-workflows-info.es.js +1 -1
  532. package/dist/domains/workflows/components/workflows-list/workflows-list.cjs.js +3 -3
  533. package/dist/domains/workflows/components/workflows-list/workflows-list.es.js +3 -3
  534. package/dist/domains/workflows/runs/workflow-run-details.cjs.js +1 -1
  535. package/dist/domains/workflows/runs/workflow-run-details.es.js +1 -1
  536. package/dist/domains/workflows/runs/workflow-run-list.cjs.js +2 -2
  537. package/dist/domains/workflows/runs/workflow-run-list.es.js +2 -2
  538. package/dist/domains/workflows/workflow/data/workflow-data-button.cjs.js +1 -1
  539. package/dist/domains/workflows/workflow/data/workflow-data-button.es.js +1 -1
  540. package/dist/domains/workflows/workflow/data/workflow-data-inspector.cjs.js +2 -2
  541. package/dist/domains/workflows/workflow/data/workflow-data-inspector.es.js +2 -2
  542. package/dist/domains/workflows/workflow/input/workflow-json-input.cjs.js +1 -1
  543. package/dist/domains/workflows/workflow/input/workflow-json-input.es.js +1 -1
  544. package/dist/domains/workflows/workflow/input/workflow-processor-input.cjs.js +2 -2
  545. package/dist/domains/workflows/workflow/input/workflow-processor-input.es.js +2 -2
  546. package/dist/domains/workflows/workflow/use-workflow-graph-runtime.cjs.js +2 -2
  547. package/dist/domains/workflows/workflow/use-workflow-graph-runtime.es.js +2 -2
  548. package/dist/domains/workflows/workflow/workflow-body-graph.cjs.js +2 -2
  549. package/dist/domains/workflows/workflow/workflow-body-graph.es.js +2 -2
  550. package/dist/domains/workflows/workflow/workflow-data-edge.cjs.js +1 -1
  551. package/dist/domains/workflows/workflow/workflow-data-edge.es.js +1 -1
  552. package/dist/domains/workflows/workflow/workflow-debug-mode-switch.cjs.js +1 -1
  553. package/dist/domains/workflows/workflow/workflow-debug-mode-switch.es.js +1 -1
  554. package/dist/domains/workflows/workflow/workflow-debug-step-controls.cjs.js +1 -1
  555. package/dist/domains/workflows/workflow/workflow-debug-step-controls.es.js +1 -1
  556. package/dist/domains/workflows/workflow/workflow-graph-boundary.cjs.js +1 -1
  557. package/dist/domains/workflows/workflow/workflow-graph-boundary.es.js +1 -1
  558. package/dist/domains/workflows/workflow/workflow-graph-inner.cjs.js +2 -2
  559. package/dist/domains/workflows/workflow/workflow-graph-inner.es.js +2 -2
  560. package/dist/domains/workflows/workflow/workflow-graph-node.cjs.js +2 -2
  561. package/dist/domains/workflows/workflow/workflow-graph-node.es.js +2 -2
  562. package/dist/domains/workflows/workflow/workflow-input-data.cjs.js +1 -1
  563. package/dist/domains/workflows/workflow/workflow-input-data.es.js +1 -1
  564. package/dist/domains/workflows/workflow/workflow-input-type-toggle.cjs.js +1 -1
  565. package/dist/domains/workflows/workflow/workflow-input-type-toggle.es.js +1 -1
  566. package/dist/domains/workflows/workflow/workflow-nested-graph.cjs.js +4 -4
  567. package/dist/domains/workflows/workflow/workflow-nested-graph.es.js +4 -4
  568. package/dist/domains/workflows/workflow/workflow-run-data.cjs.js +6 -5
  569. package/dist/domains/workflows/workflow/workflow-run-data.cjs.js.map +1 -1
  570. package/dist/domains/workflows/workflow/workflow-run-data.es.js +5 -4
  571. package/dist/domains/workflows/workflow/workflow-run-data.es.js.map +1 -1
  572. package/dist/domains/workflows/workflow/workflow-run-error.cjs.js +1 -1
  573. package/dist/domains/workflows/workflow/workflow-run-error.es.js +1 -1
  574. package/dist/domains/workflows/workflow/workflow-run-header.cjs.js +3 -3
  575. package/dist/domains/workflows/workflow/workflow-run-header.es.js +3 -3
  576. package/dist/domains/workflows/workflow/workflow-status.cjs.js +1 -1
  577. package/dist/domains/workflows/workflow/workflow-status.es.js +1 -1
  578. package/dist/domains/workflows/workflow/workflow-steps-status.cjs.js +1 -1
  579. package/dist/domains/workflows/workflow/workflow-steps-status.es.js +1 -1
  580. package/dist/domains/workflows/workflow/workflow-suspended-steps.cjs.js +2 -2
  581. package/dist/domains/workflows/workflow/workflow-suspended-steps.es.js +2 -2
  582. package/dist/domains/workflows/workflow/workflow-time-travel-form.cjs.js +3 -3
  583. package/dist/domains/workflows/workflow/workflow-time-travel-form.es.js +3 -3
  584. package/dist/domains/workflows/workflow/workflow-timeline-row.cjs.js +1 -1
  585. package/dist/domains/workflows/workflow/workflow-timeline-row.es.js +1 -1
  586. package/dist/domains/workflows/workflow/workflow-timeline.cjs.js +1 -1
  587. package/dist/domains/workflows/workflow/workflow-timeline.es.js +1 -1
  588. package/dist/domains/workflows/workflow/workflow-trigger-header.cjs.js +2 -2
  589. package/dist/domains/workflows/workflow/workflow-trigger-header.es.js +2 -2
  590. package/dist/domains/workflows/workflow/workflow-trigger.cjs.js +1 -1
  591. package/dist/domains/workflows/workflow/workflow-trigger.es.js +1 -1
  592. package/dist/domains/workspace/components/frontmatter.cjs.js +13 -0
  593. package/dist/domains/workspace/components/frontmatter.cjs.js.map +1 -0
  594. package/dist/domains/workspace/components/frontmatter.d.ts +2 -0
  595. package/dist/domains/workspace/components/frontmatter.es.js +9 -0
  596. package/dist/domains/workspace/components/frontmatter.es.js.map +1 -0
  597. package/dist/domains/workspace/components/mount-icon.cjs.js +42 -0
  598. package/dist/domains/workspace/components/mount-icon.cjs.js.map +1 -0
  599. package/dist/domains/workspace/components/mount-icon.d.ts +2 -0
  600. package/dist/domains/workspace/components/mount-icon.es.js +38 -0
  601. package/dist/domains/workspace/components/mount-icon.es.js.map +1 -0
  602. package/dist/domains/workspace/components/use-workspace-context.cjs.js +16 -0
  603. package/dist/domains/workspace/components/use-workspace-context.cjs.js.map +1 -0
  604. package/dist/domains/workspace/components/use-workspace-context.d.ts +2 -0
  605. package/dist/domains/workspace/components/use-workspace-context.es.js +11 -0
  606. package/dist/domains/workspace/components/use-workspace-context.es.js.map +1 -0
  607. package/dist/domains/workspace/components/workspace-active-file.cjs.js +72 -0
  608. package/dist/domains/workspace/components/workspace-active-file.cjs.js.map +1 -0
  609. package/dist/domains/workspace/components/workspace-active-file.d.ts +2 -0
  610. package/dist/domains/workspace/components/workspace-active-file.es.js +67 -0
  611. package/dist/domains/workspace/components/workspace-active-file.es.js.map +1 -0
  612. package/dist/domains/workspace/components/workspace-add-skill-dialog.cjs.js +282 -0
  613. package/dist/domains/workspace/components/workspace-add-skill-dialog.cjs.js.map +1 -0
  614. package/dist/domains/workspace/components/workspace-add-skill-dialog.d.ts +2 -0
  615. package/dist/domains/workspace/components/workspace-add-skill-dialog.es.js +278 -0
  616. package/dist/domains/workspace/components/workspace-add-skill-dialog.es.js.map +1 -0
  617. package/dist/domains/workspace/components/workspace-add-skill.cjs.js +48 -0
  618. package/dist/domains/workspace/components/workspace-add-skill.cjs.js.map +1 -0
  619. package/dist/domains/workspace/components/workspace-add-skill.d.ts +2 -0
  620. package/dist/domains/workspace/components/workspace-add-skill.es.js +44 -0
  621. package/dist/domains/workspace/components/workspace-add-skill.es.js.map +1 -0
  622. package/dist/domains/workspace/components/workspace-context.cjs.js +88 -0
  623. package/dist/domains/workspace/components/workspace-context.cjs.js.map +1 -0
  624. package/dist/domains/workspace/components/workspace-context.d.ts +2 -0
  625. package/dist/domains/workspace/components/workspace-context.es.js +84 -0
  626. package/dist/domains/workspace/components/workspace-context.es.js.map +1 -0
  627. package/dist/domains/workspace/components/workspace-create-directory.cjs.js +68 -0
  628. package/dist/domains/workspace/components/workspace-create-directory.cjs.js.map +1 -0
  629. package/dist/domains/workspace/components/workspace-create-directory.d.ts +2 -0
  630. package/dist/domains/workspace/components/workspace-create-directory.es.js +64 -0
  631. package/dist/domains/workspace/components/workspace-create-directory.es.js.map +1 -0
  632. package/dist/domains/workspace/components/workspace-error.cjs.js +26 -0
  633. package/dist/domains/workspace/components/workspace-error.cjs.js.map +1 -0
  634. package/dist/domains/workspace/components/workspace-error.d.ts +2 -0
  635. package/dist/domains/workspace/components/workspace-error.es.js +22 -0
  636. package/dist/domains/workspace/components/workspace-error.es.js.map +1 -0
  637. package/dist/domains/workspace/components/workspace-markdown-preview.cjs.js +27 -0
  638. package/dist/domains/workspace/components/workspace-markdown-preview.cjs.js.map +1 -0
  639. package/dist/domains/workspace/components/workspace-markdown-preview.d.ts +2 -0
  640. package/dist/domains/workspace/components/workspace-markdown-preview.es.js +23 -0
  641. package/dist/domains/workspace/components/workspace-markdown-preview.es.js.map +1 -0
  642. package/dist/domains/workspace/components/workspace-parts.cjs.js +94 -0
  643. package/dist/domains/workspace/components/workspace-parts.cjs.js.map +1 -0
  644. package/dist/domains/workspace/components/workspace-parts.d.ts +2 -0
  645. package/dist/domains/workspace/components/workspace-parts.es.js +84 -0
  646. package/dist/domains/workspace/components/workspace-parts.es.js.map +1 -0
  647. package/dist/domains/workspace/components/workspace-search.cjs.js +117 -0
  648. package/dist/domains/workspace/components/workspace-search.cjs.js.map +1 -0
  649. package/dist/domains/workspace/components/workspace-search.d.ts +2 -0
  650. package/dist/domains/workspace/components/workspace-search.es.js +111 -0
  651. package/dist/domains/workspace/components/workspace-search.es.js.map +1 -0
  652. package/dist/domains/workspace/components/workspace-tree-view.cjs.js +34 -0
  653. package/dist/domains/workspace/components/workspace-tree-view.cjs.js.map +1 -0
  654. package/dist/domains/workspace/components/workspace-tree-view.d.ts +2 -0
  655. package/dist/domains/workspace/components/workspace-tree-view.es.js +30 -0
  656. package/dist/domains/workspace/components/workspace-tree-view.es.js.map +1 -0
  657. package/dist/domains/workspace/components/workspace-tree.cjs.js +245 -0
  658. package/dist/domains/workspace/components/workspace-tree.cjs.js.map +1 -0
  659. package/dist/domains/workspace/components/workspace-tree.d.ts +2 -0
  660. package/dist/domains/workspace/components/workspace-tree.es.js +241 -0
  661. package/dist/domains/workspace/components/workspace-tree.es.js.map +1 -0
  662. package/dist/domains/workspace/components/workspace.cjs.js +25 -0
  663. package/dist/domains/workspace/components/workspace.cjs.js.map +1 -0
  664. package/dist/domains/workspace/components/workspace.d.ts +2 -0
  665. package/dist/domains/workspace/components/workspace.es.js +21 -0
  666. package/dist/domains/workspace/components/workspace.es.js.map +1 -0
  667. package/dist/domains/workspace/file-type.cjs.js +25 -0
  668. package/dist/domains/workspace/file-type.cjs.js.map +1 -0
  669. package/dist/domains/workspace/file-type.d.ts +2 -0
  670. package/dist/domains/workspace/file-type.es.js +17 -0
  671. package/dist/domains/workspace/file-type.es.js.map +1 -0
  672. package/dist/domains/workspace/hooks/use-skills-sh.cjs.js +72 -0
  673. package/dist/domains/workspace/hooks/use-skills-sh.cjs.js.map +1 -0
  674. package/dist/domains/workspace/hooks/use-skills-sh.d.ts +2 -0
  675. package/dist/domains/workspace/hooks/use-skills-sh.es.js +65 -0
  676. package/dist/domains/workspace/hooks/use-skills-sh.es.js.map +1 -0
  677. package/dist/domains/workspace/hooks/use-workspace-directory.cjs.js +21 -0
  678. package/dist/domains/workspace/hooks/use-workspace-directory.cjs.js.map +1 -0
  679. package/dist/domains/workspace/hooks/use-workspace-directory.d.ts +2 -0
  680. package/dist/domains/workspace/hooks/use-workspace-directory.es.js +16 -0
  681. package/dist/domains/workspace/hooks/use-workspace-directory.es.js.map +1 -0
  682. package/dist/domains/workspace/hooks/use-workspace-file-content.cjs.js +22 -0
  683. package/dist/domains/workspace/hooks/use-workspace-file-content.cjs.js.map +1 -0
  684. package/dist/domains/workspace/hooks/use-workspace-file-content.d.ts +2 -0
  685. package/dist/domains/workspace/hooks/use-workspace-file-content.es.js +18 -0
  686. package/dist/domains/workspace/hooks/use-workspace-file-content.es.js.map +1 -0
  687. package/dist/domains/workspace/hooks/use-workspace-search.cjs.js +53 -0
  688. package/dist/domains/workspace/hooks/use-workspace-search.cjs.js.map +1 -0
  689. package/dist/domains/workspace/hooks/use-workspace-search.d.ts +2 -0
  690. package/dist/domains/workspace/hooks/use-workspace-search.es.js +49 -0
  691. package/dist/domains/workspace/hooks/use-workspace-search.es.js.map +1 -0
  692. package/dist/domains/workspace/path.cjs.js +17 -0
  693. package/dist/domains/workspace/path.cjs.js.map +1 -0
  694. package/dist/domains/workspace/path.d.ts +2 -0
  695. package/dist/domains/workspace/path.es.js +10 -0
  696. package/dist/domains/workspace/path.es.js.map +1 -0
  697. package/dist/domains/workspace.cjs.js +24 -0
  698. package/dist/domains/workspace.cjs.js.map +1 -0
  699. package/dist/domains/workspace.d.ts +2 -0
  700. package/dist/domains/workspace.es.js +9 -0
  701. package/dist/domains/workspace.es.js.map +1 -0
  702. package/dist/ee/signals/components/entity-index-compact-grid.cjs.js +2 -2
  703. package/dist/ee/signals/components/entity-index-compact-grid.es.js +2 -2
  704. package/dist/ee/signals/components/entity-index-list.cjs.js +4 -2
  705. package/dist/ee/signals/components/entity-index-list.cjs.js.map +1 -1
  706. package/dist/ee/signals/components/entity-index-list.es.js +4 -2
  707. package/dist/ee/signals/components/entity-index-list.es.js.map +1 -1
  708. package/dist/ee/signals/components/signals-empty-state.cjs.js +1 -1
  709. package/dist/ee/signals/components/signals-empty-state.es.js +1 -1
  710. package/dist/ee/signals/components/trace-intelligence-entity-detail.cjs.js +1 -1
  711. package/dist/ee/signals/components/trace-intelligence-entity-detail.es.js +1 -1
  712. package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js +4 -3
  713. package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js.map +1 -1
  714. package/dist/ee/signals/components/trace-intelligence-entity-index.es.js +4 -3
  715. package/dist/ee/signals/components/trace-intelligence-entity-index.es.js.map +1 -1
  716. package/dist/ee/signals/examples-pager.cjs.js +1 -1
  717. package/dist/ee/signals/examples-pager.es.js +1 -1
  718. package/dist/ee/signals/flow-card.cjs.js +1 -1
  719. package/dist/ee/signals/flow-card.es.js +1 -1
  720. package/dist/ee/signals/lifeline-row.cjs.js +1 -1
  721. package/dist/ee/signals/lifeline-row.es.js +1 -1
  722. package/dist/ee/signals/noise-detail-panel.cjs.js +1 -1
  723. package/dist/ee/signals/noise-detail-panel.es.js +1 -1
  724. package/dist/ee/signals/sankey-signals.cjs.js +4 -3
  725. package/dist/ee/signals/sankey-signals.cjs.js.map +1 -1
  726. package/dist/ee/signals/sankey-signals.es.js +3 -2
  727. package/dist/ee/signals/sankey-signals.es.js.map +1 -1
  728. package/dist/ee/signals/settings/signal-definition-form-dialog.cjs.js +3 -3
  729. package/dist/ee/signals/settings/signal-definition-form-dialog.es.js +3 -3
  730. package/dist/ee/signals/settings/trace-signal-settings.cjs.js +3 -3
  731. package/dist/ee/signals/settings/trace-signal-settings.es.js +3 -3
  732. package/dist/ee/signals/signal-delta-column.cjs.js +1 -1
  733. package/dist/ee/signals/signal-delta-column.es.js +1 -1
  734. package/dist/ee/signals/signal-lifelines.cjs.js +1 -1
  735. package/dist/ee/signals/signal-lifelines.es.js +1 -1
  736. package/dist/ee/signals/signals-error-state.cjs.js +1 -1
  737. package/dist/ee/signals/signals-error-state.es.js +1 -1
  738. package/dist/ee/signals/snapshot-timeline.cjs.js +1 -1
  739. package/dist/ee/signals/snapshot-timeline.es.js +1 -1
  740. package/dist/ee/signals/theme-compare.cjs.js +1 -1
  741. package/dist/ee/signals/theme-compare.es.js +1 -1
  742. package/dist/ee/signals/theme-detail-panel.cjs.js +1 -1
  743. package/dist/ee/signals/theme-detail-panel.es.js +1 -1
  744. package/dist/ee/signals/theme-filter-banner.cjs.js +1 -1
  745. package/dist/ee/signals/theme-filter-banner.es.js +1 -1
  746. package/dist/ee/signals/theme-lifelines.cjs.js +1 -1
  747. package/dist/ee/signals/theme-lifelines.es.js +1 -1
  748. package/dist/ee/signals/trace-insight-view.cjs.js +1 -1
  749. package/dist/ee/signals/trace-insight-view.es.js +1 -1
  750. package/dist/ee/signals/trace-intelligence-explainer.cjs.js +1 -1
  751. package/dist/ee/signals/trace-intelligence-explainer.es.js +1 -1
  752. package/dist/ee/signals/view-mode-tab.cjs.js +2 -2
  753. package/dist/ee/signals/view-mode-tab.es.js +2 -2
  754. package/dist/ee/topics/components/topic-trace-details-panel.cjs.js +2 -1
  755. package/dist/ee/topics/components/topic-trace-details-panel.cjs.js.map +1 -1
  756. package/dist/ee/topics/components/topic-trace-details-panel.es.js +2 -1
  757. package/dist/ee/topics/components/topic-trace-details-panel.es.js.map +1 -1
  758. package/dist/ee/topics/components/topic-trace-summary-list.cjs.js +2 -2
  759. package/dist/ee/topics/components/topic-trace-summary-list.es.js +2 -2
  760. package/dist/{entity-header-DEjkHoqj.cjs → entity-header-By57lpH8.cjs} +2 -2
  761. package/dist/{entity-header-DEjkHoqj.cjs.map → entity-header-By57lpH8.cjs.map} +1 -1
  762. package/dist/{entity-header-9qzr-3xQ.js → entity-header-DMjzE4Za.js} +2 -2
  763. package/dist/{entity-header-9qzr-3xQ.js.map → entity-header-DMjzE4Za.js.map} +1 -1
  764. package/dist/{field-BtvEQ68O.js → field-BiMIiq2Y.js} +3 -3
  765. package/dist/field-BiMIiq2Y.js.map +1 -0
  766. package/dist/{field-ip9xiOVa.cjs → field-BkeKcz_6.cjs} +3 -3
  767. package/dist/field-BkeKcz_6.cjs.map +1 -0
  768. package/dist/{field-error-id-4DYu4KZ2.cjs → field-error-id-4xiCVBJ_.cjs} +5 -5
  769. package/dist/field-error-id-4xiCVBJ_.cjs.map +1 -0
  770. package/dist/{field-error-id-BSQLcfHo.js → field-error-id-CSvLKtJE.js} +5 -5
  771. package/dist/field-error-id-CSvLKtJE.js.map +1 -0
  772. package/dist/{filter-bar-chip-Dmboyu1t.js → filter-bar-chip-CRejLco-.js} +2 -2
  773. package/dist/{filter-bar-chip-Dmboyu1t.js.map → filter-bar-chip-CRejLco-.js.map} +1 -1
  774. package/dist/{filter-bar-chip-BsWm7SQr.cjs → filter-bar-chip-Cr7kUN9G.cjs} +2 -2
  775. package/dist/{filter-bar-chip-BsWm7SQr.cjs.map → filter-bar-chip-Cr7kUN9G.cjs.map} +1 -1
  776. package/dist/hooks/use-fluid-hover.cjs.js +11 -0
  777. package/dist/hooks/use-fluid-hover.cjs.js.map +1 -1
  778. package/dist/hooks/use-fluid-hover.es.js +11 -0
  779. package/dist/hooks/use-fluid-hover.es.js.map +1 -1
  780. package/dist/{horizontal-bars-BSRESJsp.js → horizontal-bars-BL-GHeFh.js} +2 -2
  781. package/dist/{horizontal-bars-BSRESJsp.js.map → horizontal-bars-BL-GHeFh.js.map} +1 -1
  782. package/dist/{horizontal-bars-DRD7JkHL.cjs → horizontal-bars-D-rFCRbH.cjs} +2 -2
  783. package/dist/{horizontal-bars-DRD7JkHL.cjs.map → horizontal-bars-D-rFCRbH.cjs.map} +1 -1
  784. package/dist/icons/FileIcon.cjs.js +18 -0
  785. package/dist/icons/FileIcon.cjs.js.map +1 -0
  786. package/dist/icons/FileIcon.d.ts +2 -0
  787. package/dist/icons/FileIcon.es.js +14 -0
  788. package/dist/icons/FileIcon.es.js.map +1 -0
  789. package/dist/icons/SearchIcon.cjs.js +18 -0
  790. package/dist/icons/SearchIcon.cjs.js.map +1 -0
  791. package/dist/icons/SearchIcon.d.ts +2 -0
  792. package/dist/icons/SearchIcon.es.js +14 -0
  793. package/dist/icons/SearchIcon.es.js.map +1 -0
  794. package/dist/icons/TrashIcon.cjs.js +18 -0
  795. package/dist/icons/TrashIcon.cjs.js.map +1 -0
  796. package/dist/icons/TrashIcon.d.ts +2 -0
  797. package/dist/icons/TrashIcon.es.js +14 -0
  798. package/dist/icons/TrashIcon.es.js.map +1 -0
  799. package/dist/{input-group-wzirc-1k.js → input-group-D1XvzgI2.js} +10 -7
  800. package/dist/input-group-D1XvzgI2.js.map +1 -0
  801. package/dist/{input-group-BgCXLSRV.cjs → input-group-DBRe9V5t.cjs} +11 -6
  802. package/dist/input-group-DBRe9V5t.cjs.map +1 -0
  803. package/dist/layout/tabbed-container.cjs.js +11 -9
  804. package/dist/layout/tabbed-container.cjs.js.map +1 -1
  805. package/dist/layout/tabbed-container.es.js +9 -7
  806. package/dist/layout/tabbed-container.es.js.map +1 -1
  807. package/dist/lib/form/components/array-element-wrapper.cjs.js +1 -1
  808. package/dist/lib/form/components/array-element-wrapper.es.js +1 -1
  809. package/dist/lib/form/components/array-wrapper.cjs.js +1 -1
  810. package/dist/lib/form/components/array-wrapper.es.js +1 -1
  811. package/dist/lib/form/components/boolean-field.cjs.js +1 -1
  812. package/dist/lib/form/components/boolean-field.es.js +1 -1
  813. package/dist/lib/form/components/error-message.cjs.js +1 -1
  814. package/dist/lib/form/components/error-message.es.js +1 -1
  815. package/dist/lib/form/components/field-wrapper.cjs.js +1 -1
  816. package/dist/lib/form/components/field-wrapper.es.js +1 -1
  817. package/dist/lib/form/components/object-wrapper.cjs.js +1 -1
  818. package/dist/lib/form/components/object-wrapper.es.js +1 -1
  819. package/dist/lib/form/components/select-field.cjs.js +1 -1
  820. package/dist/lib/form/components/select-field.es.js +1 -1
  821. package/dist/lib/form/components/union-field.cjs.js +1 -1
  822. package/dist/lib/form/components/union-field.es.js +1 -1
  823. package/dist/{list-search-CTGQJCh1.cjs → list-search-CCHN2OMB.cjs} +2 -2
  824. package/dist/{list-search-CTGQJCh1.cjs.map → list-search-CCHN2OMB.cjs.map} +1 -1
  825. package/dist/{list-search-CmOCmTwL.js → list-search-DcACBmNB.js} +2 -2
  826. package/dist/{list-search-CmOCmTwL.js.map → list-search-DcACBmNB.js.map} +1 -1
  827. package/dist/{logs-data-list-B9CAqAHD.cjs → logs-data-list-BITdSK12.cjs} +4 -4
  828. package/dist/{logs-data-list-B9CAqAHD.cjs.map → logs-data-list-BITdSK12.cjs.map} +1 -1
  829. package/dist/{logs-data-list-DfzdzgXB.js → logs-data-list-PlH4_hgq.js} +4 -4
  830. package/dist/{logs-data-list-DfzdzgXB.js.map → logs-data-list-PlH4_hgq.js.map} +1 -1
  831. package/dist/{markdown-renderer-DPwN7Vtm.cjs → markdown-renderer-DRo-Hcuu.cjs} +2 -2
  832. package/dist/{markdown-renderer-DPwN7Vtm.cjs.map → markdown-renderer-DRo-Hcuu.cjs.map} +1 -1
  833. package/dist/{markdown-renderer-zvB6a8uj.js → markdown-renderer-XfWPF-B7.js} +2 -2
  834. package/dist/{markdown-renderer-zvB6a8uj.js.map → markdown-renderer-XfWPF-B7.js.map} +1 -1
  835. package/dist/{message-C1c5oZE7.cjs → message-DGDmsmOT.cjs} +2 -2
  836. package/dist/{message-C1c5oZE7.cjs.map → message-DGDmsmOT.cjs.map} +1 -1
  837. package/dist/{message-C7hocqft.js → message-DoxVrgBX.js} +2 -2
  838. package/dist/{message-C7hocqft.js.map → message-DoxVrgBX.js.map} +1 -1
  839. package/dist/{metrics-card-C1rTkbcn.js → metrics-card-DFEWxFkJ.js} +3 -3
  840. package/dist/{metrics-card-C1rTkbcn.js.map → metrics-card-DFEWxFkJ.js.map} +1 -1
  841. package/dist/{metrics-card-D7J9JDgn.cjs → metrics-card-xX9SHUpB.cjs} +3 -3
  842. package/dist/{metrics-card-D7J9JDgn.cjs.map → metrics-card-xX9SHUpB.cjs.map} +1 -1
  843. package/dist/{metrics-kpi-card-1hbihR2T.cjs → metrics-kpi-card-9L0j_oGY.cjs} +5 -14
  844. package/dist/metrics-kpi-card-9L0j_oGY.cjs.map +1 -0
  845. package/dist/{metrics-kpi-card-CiB88L41.js → metrics-kpi-card-DxcLqbDU.js} +5 -14
  846. package/dist/metrics-kpi-card-DxcLqbDU.js.map +1 -0
  847. package/dist/{metrics-line-chart-C3UMBQ38.js → metrics-line-chart-C9_EMuHK.js} +2 -2
  848. package/dist/{metrics-line-chart-C3UMBQ38.js.map → metrics-line-chart-C9_EMuHK.js.map} +1 -1
  849. package/dist/{metrics-line-chart-CjJxBbM-.cjs → metrics-line-chart-R-T_jyeP.cjs} +2 -2
  850. package/dist/{metrics-line-chart-CjJxBbM-.cjs.map → metrics-line-chart-R-T_jyeP.cjs.map} +1 -1
  851. package/dist/{metrics-line-chart-tooltip-DiXCgpik.cjs → metrics-line-chart-tooltip-BoG8nbkO.cjs} +2 -2
  852. package/dist/{metrics-line-chart-tooltip-DiXCgpik.cjs.map → metrics-line-chart-tooltip-BoG8nbkO.cjs.map} +1 -1
  853. package/dist/{metrics-line-chart-tooltip-mZXPH1yH.js → metrics-line-chart-tooltip-C3WAk3DN.js} +2 -2
  854. package/dist/{metrics-line-chart-tooltip-mZXPH1yH.js.map → metrics-line-chart-tooltip-C3WAk3DN.js.map} +1 -1
  855. package/dist/new/layout/page-header.cjs.js +1 -1
  856. package/dist/new/layout/page-header.es.js +1 -1
  857. package/dist/new/settings.cjs.js +2 -2
  858. package/dist/new/settings.es.js +2 -2
  859. package/dist/new/sidebar.cjs.js +1 -1
  860. package/dist/new/sidebar.es.js +1 -1
  861. package/dist/{notification-activity-CFR_b8eA.js → notification-activity-BDoleJAA.js} +4 -4
  862. package/dist/{notification-activity-CFR_b8eA.js.map → notification-activity-BDoleJAA.js.map} +1 -1
  863. package/dist/{notification-activity-Dk50wcE4.cjs → notification-activity-C_vZiswj.cjs} +4 -4
  864. package/dist/{notification-activity-Dk50wcE4.cjs.map → notification-activity-C_vZiswj.cjs.map} +1 -1
  865. package/dist/{page-header-DIS8V2TK.js → page-header-D5a7qrVc.js} +2 -2
  866. package/dist/{page-header-DIS8V2TK.js.map → page-header-D5a7qrVc.js.map} +1 -1
  867. package/dist/{page-header-C1WiOrTE.cjs → page-header-Dc2KSbnw.cjs} +2 -2
  868. package/dist/{page-header-C1WiOrTE.cjs.map → page-header-Dc2KSbnw.cjs.map} +1 -1
  869. package/dist/{plan-D8rM4i4S.cjs → plan-BBf7ONr7.cjs} +7 -6
  870. package/dist/{plan-D8rM4i4S.cjs.map → plan-BBf7ONr7.cjs.map} +1 -1
  871. package/dist/{plan-BtOryfz5.js → plan-BgvXKTEM.js} +6 -5
  872. package/dist/{plan-BtOryfz5.js.map → plan-BgvXKTEM.js.map} +1 -1
  873. package/dist/primitives/form-element.cjs.js +1 -1
  874. package/dist/primitives/form-element.cjs.js.map +1 -1
  875. package/dist/primitives/form-element.es.js +1 -1
  876. package/dist/primitives/form-element.es.js.map +1 -1
  877. package/dist/{reasoning-activity-6VkIbDT4.js → reasoning-activity-DTmKCDZ-.js} +3 -3
  878. package/dist/{reasoning-activity-6VkIbDT4.js.map → reasoning-activity-DTmKCDZ-.js.map} +1 -1
  879. package/dist/{reasoning-activity-DaXMgyr3.cjs → reasoning-activity-Dc6VbiMr.cjs} +3 -3
  880. package/dist/{reasoning-activity-DaXMgyr3.cjs.map → reasoning-activity-Dc6VbiMr.cjs.map} +1 -1
  881. package/dist/{relative-timestamp-BlmN8Vjn.cjs → relative-timestamp-Nnwtw7Rp.cjs} +2 -2
  882. package/dist/{relative-timestamp-BlmN8Vjn.cjs.map → relative-timestamp-Nnwtw7Rp.cjs.map} +1 -1
  883. package/dist/{relative-timestamp-Cnp4VeLp.js → relative-timestamp-Rn8mAobA.js} +2 -2
  884. package/dist/{relative-timestamp-Cnp4VeLp.js.map → relative-timestamp-Rn8mAobA.js.map} +1 -1
  885. package/dist/resize/panel-group.cjs.js +14 -2
  886. package/dist/resize/panel-group.cjs.js.map +1 -1
  887. package/dist/resize/panel-group.es.js +14 -2
  888. package/dist/resize/panel-group.es.js.map +1 -1
  889. package/dist/{search-input-BKXiYeed.js → search-input-63Y1_wgA.js} +3 -3
  890. package/dist/{search-input-BKXiYeed.js.map → search-input-63Y1_wgA.js.map} +1 -1
  891. package/dist/{search-input-T0orZ7Jf.cjs → search-input-CBhT3N4z.cjs} +3 -3
  892. package/dist/{search-input-T0orZ7Jf.cjs.map → search-input-CBhT3N4z.cjs.map} +1 -1
  893. package/dist/{section-Byml9qxH.cjs → section-C5r-Mtxk.cjs} +3 -3
  894. package/dist/{section-Byml9qxH.cjs.map → section-C5r-Mtxk.cjs.map} +1 -1
  895. package/dist/{section-DTooysg2.js → section-DYrbH35K.js} +3 -3
  896. package/dist/{section-DTooysg2.js.map → section-DYrbH35K.js.map} +1 -1
  897. package/dist/{select--ArpXYDc.js → select-CWxcmE3F.js} +2 -2
  898. package/dist/select-CWxcmE3F.js.map +1 -0
  899. package/dist/{select-DJQYAVcm.cjs → select-KV77JIvp.cjs} +2 -2
  900. package/dist/select-KV77JIvp.cjs.map +1 -0
  901. package/dist/{settings-row-B0jGFpVw.js → settings-row-Dc6ECXjj.js} +2 -2
  902. package/dist/{settings-row-B0jGFpVw.js.map → settings-row-Dc6ECXjj.js.map} +1 -1
  903. package/dist/{settings-row-Dt4WnnRf.cjs → settings-row-UPZXTcx1.cjs} +2 -2
  904. package/dist/{settings-row-Dt4WnnRf.cjs.map → settings-row-UPZXTcx1.cjs.map} +1 -1
  905. package/dist/{side-dialog-lQUx6B_M.cjs → side-dialog-CFTgnDXu.cjs} +2 -2
  906. package/dist/{side-dialog-lQUx6B_M.cjs.map → side-dialog-CFTgnDXu.cjs.map} +1 -1
  907. package/dist/{side-dialog-DZJc85m3.js → side-dialog-yvAvCday.js} +2 -2
  908. package/dist/{side-dialog-DZJc85m3.js.map → side-dialog-yvAvCday.js.map} +1 -1
  909. package/dist/{signal-activity-byCTRP86.cjs → signal-activity-BI-DRdjw.cjs} +4 -4
  910. package/dist/{signal-activity-byCTRP86.cjs.map → signal-activity-BI-DRdjw.cjs.map} +1 -1
  911. package/dist/{signal-activity-DW2ExjIp.js → signal-activity-_ChAbNsW.js} +4 -4
  912. package/dist/{signal-activity-DW2ExjIp.js.map → signal-activity-_ChAbNsW.js.map} +1 -1
  913. package/dist/{span-payload-primitives-CGamdu2t.js → span-payload-primitives-188dDV5s.js} +3 -3
  914. package/dist/{span-payload-primitives-CGamdu2t.js.map → span-payload-primitives-188dDV5s.js.map} +1 -1
  915. package/dist/{span-payload-primitives-SkL3U9hR.cjs → span-payload-primitives-DrKJXIc3.cjs} +3 -3
  916. package/dist/{span-payload-primitives-SkL3U9hR.cjs.map → span-payload-primitives-DrKJXIc3.cjs.map} +1 -1
  917. package/dist/src/domains/traces/components/span-data-panel-view.d.ts +3 -1
  918. package/dist/src/domains/traces/components/thread-trace/index.d.ts +23 -20
  919. package/dist/src/domains/traces/components/thread-trace/thread-trace-details.d.ts +1 -1
  920. package/dist/src/domains/traces/components/thread-trace/thread-trace-messages.d.ts +5 -15
  921. package/dist/src/domains/traces/components/thread-trace/thread-trace-root.d.ts +2 -2
  922. package/dist/src/domains/traces/components/thread-trace/thread-trace-row.d.ts +17 -2
  923. package/dist/src/domains/traces/components/thread-trace/thread-trace-span-panel.d.ts +3 -3
  924. package/dist/src/domains/traces/components/thread-trace/thread-trace-spans.d.ts +3 -4
  925. package/dist/src/domains/traces/components/thread-view-skeleton.d.ts +10 -4
  926. package/dist/src/domains/traces/components/trace-data-panel-view.d.ts +10 -3
  927. package/dist/src/domains/traces/components/trace-data-panel-view.stories.d.ts +7 -5
  928. package/dist/src/domains/traces/components/trace-messages-panel.d.ts +2 -10
  929. package/dist/src/domains/traces/components/trace-messages-skeleton.d.ts +9 -6
  930. package/dist/src/domains/traces/components/trace-span-panel.d.ts +1 -1
  931. package/dist/src/domains/traces/components/trace-span-tree-skeleton.d.ts +4 -6
  932. package/dist/src/domains/traces/components/trace-thread-panel.d.ts +7 -5
  933. package/dist/src/domains/traces/hooks/use-branch.d.ts +2 -2
  934. package/dist/src/domains/traces/hooks/use-trace-light-spans.d.ts +2 -2
  935. package/dist/src/domains/traces/hooks/use-trace-or-branch-spans.d.ts +2 -2
  936. package/dist/src/domains/traces/hooks/use-trace-query.d.ts +2 -0
  937. package/dist/src/domains/traces/hooks/use-trace-search.d.ts +11 -8
  938. package/dist/src/domains/traces/hooks/use-trace-spans.d.ts +1 -7
  939. package/dist/src/domains/traces/hooks/use-traces-list-source.d.ts +1 -0
  940. package/dist/src/domains/traces/utils/index.d.ts +1 -1
  941. package/dist/src/domains/traces/utils/to-searchable-spans.d.ts +2 -26
  942. package/dist/src/domains/workspace/components/frontmatter.d.ts +4 -0
  943. package/dist/src/domains/workspace/components/mount-icon.d.ts +6 -0
  944. package/dist/src/domains/workspace/components/use-workspace-context.d.ts +32 -0
  945. package/dist/src/domains/workspace/components/workspace-active-file.d.ts +13 -0
  946. package/dist/src/domains/workspace/components/workspace-add-skill-dialog.d.ts +39 -0
  947. package/dist/src/domains/workspace/components/workspace-add-skill.d.ts +10 -0
  948. package/dist/src/domains/workspace/components/workspace-context.d.ts +28 -0
  949. package/dist/src/domains/workspace/components/workspace-create-directory.d.ts +4 -0
  950. package/dist/src/domains/workspace/components/workspace-error.d.ts +5 -0
  951. package/dist/src/domains/workspace/components/workspace-markdown-preview.d.ts +4 -0
  952. package/dist/src/domains/workspace/components/workspace-parts.d.ts +25 -0
  953. package/dist/src/domains/workspace/components/workspace-search.d.ts +5 -0
  954. package/dist/src/domains/workspace/components/workspace-tree-view.d.ts +32 -0
  955. package/dist/src/domains/workspace/components/workspace-tree.d.ts +1 -0
  956. package/dist/src/domains/workspace/components/workspace.d.ts +18 -0
  957. package/dist/src/domains/workspace/file-type.d.ts +6 -0
  958. package/dist/src/domains/workspace/hooks/use-skills-sh.d.ts +51 -0
  959. package/dist/src/domains/workspace/hooks/use-workspace-directory.d.ts +17 -0
  960. package/dist/src/domains/workspace/hooks/use-workspace-file-content.d.ts +8 -0
  961. package/dist/src/domains/workspace/hooks/use-workspace-search.d.ts +11 -0
  962. package/dist/src/domains/workspace/index.d.ts +14 -0
  963. package/dist/src/domains/workspace/path.d.ts +6 -0
  964. package/dist/src/ds/components/Button/button.stories.d.ts +1 -0
  965. package/dist/src/ds/components/CollapsibleBox/collapsible-box.d.ts +5 -2
  966. package/dist/src/ds/components/CollapsibleBox/collapsible-box.stories.d.ts +1 -0
  967. package/dist/src/ds/components/Combobox/combobox-styles.d.ts +1 -1
  968. package/dist/src/ds/components/Command/command.stories.d.ts +1 -0
  969. package/dist/src/ds/components/InputGroup/input-group.d.ts +2 -0
  970. package/dist/src/ds/components/InputGroup/input-group.stories.d.ts +0 -1
  971. package/dist/src/ds/components/InputNumber/index.d.ts +1 -0
  972. package/dist/src/ds/components/InputNumber/input-number.d.ts +26 -0
  973. package/dist/src/ds/components/InputNumber/input-number.stories.d.ts +11 -0
  974. package/dist/src/ds/components/Tabs/tabs-context.d.ts +0 -1
  975. package/dist/src/ds/components/Tabs/tabs-list.d.ts +0 -7
  976. package/dist/src/ds/components/Tabs/tabs-root.d.ts +1 -1
  977. package/dist/src/ds/components/Tabs/tabs-tab.d.ts +3 -1
  978. package/dist/src/ds/components/Tabs/tabs.stories.d.ts +0 -1
  979. package/dist/src/ds/components/ThinkingLevel/index.d.ts +4 -0
  980. package/dist/src/ds/components/ThinkingLevel/thinking-level-picker.d.ts +17 -0
  981. package/dist/src/ds/components/ThinkingLevel/thinking-level-ramp.d.ts +9 -0
  982. package/dist/src/ds/components/ThinkingLevel/thinking-level-slider.d.ts +13 -0
  983. package/dist/src/ds/components/ThinkingLevel/thinking-level.stories.d.ts +14 -0
  984. package/dist/src/ds/components/ThinkingLevel/use-thinking-level-stop.d.ts +29 -0
  985. package/dist/src/ds/components/ai/transcript-divider/stories/transcript-divider.stories.d.ts +3 -0
  986. package/dist/src/ds/components/ai/transcript-divider/transcript-divider.d.ts +6 -1
  987. package/dist/src/ds/icons/FileIcon.d.ts +2 -0
  988. package/dist/src/ds/icons/SearchIcon.d.ts +2 -0
  989. package/dist/src/ds/icons/TrashIcon.d.ts +2 -0
  990. package/dist/src/ds/icons/index.d.ts +3 -0
  991. package/dist/src/ds/layout/tabbed-container/tabbed-container-root.d.ts +2 -1
  992. package/dist/src/ds/tokens/fonts.d.ts +1 -1
  993. package/dist/src/lib/resize/panel-group.d.ts +3 -1
  994. package/dist/style.css +270 -121
  995. package/dist/{tabs-content-DnscxcLI.cjs → tabs-content-DfH1hhpU.cjs} +3 -3
  996. package/dist/{tabs-content-DnscxcLI.cjs.map → tabs-content-DfH1hhpU.cjs.map} +1 -1
  997. package/dist/{tabs-content-CwbkTutf.js → tabs-content-OWF8un_n.js} +2 -2
  998. package/dist/{tabs-content-CwbkTutf.js.map → tabs-content-OWF8un_n.js.map} +1 -1
  999. package/dist/tabs-context-Cbuw7i0u.js +7 -0
  1000. package/dist/tabs-context-Cbuw7i0u.js.map +1 -0
  1001. package/dist/tabs-context-pnspPkI-.cjs +10 -0
  1002. package/dist/tabs-context-pnspPkI-.cjs.map +1 -0
  1003. package/dist/{tabs-root-C-ePF1y9.cjs → tabs-list-Tqj36HIL.cjs} +10 -43
  1004. package/dist/tabs-list-Tqj36HIL.cjs.map +1 -0
  1005. package/dist/{tabs-root-lrZZ3KwH.js → tabs-list-tLx5fgP0.js} +12 -44
  1006. package/dist/tabs-list-tLx5fgP0.js.map +1 -0
  1007. package/dist/tabs-root-BbzhUZl4.js +40 -0
  1008. package/dist/tabs-root-BbzhUZl4.js.map +1 -0
  1009. package/dist/tabs-root-Hkt7A6oq.cjs +42 -0
  1010. package/dist/tabs-root-Hkt7A6oq.cjs.map +1 -0
  1011. package/dist/tabs-root.css +0 -70
  1012. package/dist/{tabs-tab-BmIBFifi.cjs → tabs-tab-C-C2vX-D.cjs} +10 -7
  1013. package/dist/tabs-tab-C-C2vX-D.cjs.map +1 -0
  1014. package/dist/{tabs-tab-DoPSW-1s.js → tabs-tab-ClLIOGiC.js} +11 -6
  1015. package/dist/tabs-tab-ClLIOGiC.js.map +1 -0
  1016. package/dist/{text-and-icon-CuBm-Wjm.js → text-and-icon-Bo6NLLBl.js} +2 -2
  1017. package/dist/{text-and-icon-CuBm-Wjm.js.map → text-and-icon-Bo6NLLBl.js.map} +1 -1
  1018. package/dist/{text-and-icon-4eVhfmbb.cjs → text-and-icon-CvakH4YL.cjs} +2 -2
  1019. package/dist/{text-and-icon-4eVhfmbb.cjs.map → text-and-icon-CvakH4YL.cjs.map} +1 -1
  1020. package/dist/{thread-list-BTpezI4f.js → thread-list-D2zSEQWK.js} +2 -2
  1021. package/dist/{thread-list-BTpezI4f.js.map → thread-list-D2zSEQWK.js.map} +1 -1
  1022. package/dist/{thread-list-Drcptd4x.cjs → thread-list-DKBwiGfX.cjs} +2 -2
  1023. package/dist/{thread-list-Drcptd4x.cjs.map → thread-list-DKBwiGfX.cjs.map} +1 -1
  1024. package/dist/{time-picker-KE48KlpH.cjs → time-picker-Uz05Y0qU.cjs} +2 -2
  1025. package/dist/{time-picker-KE48KlpH.cjs.map → time-picker-Uz05Y0qU.cjs.map} +1 -1
  1026. package/dist/{time-picker-DRSAkFuj.js → time-picker-eQkyOP4X.js} +2 -2
  1027. package/dist/{time-picker-DRSAkFuj.js.map → time-picker-eQkyOP4X.js.map} +1 -1
  1028. package/dist/tokens.cjs.js +3 -0
  1029. package/dist/tokens.cjs.js.map +1 -1
  1030. package/dist/tokens.es.js +3 -0
  1031. package/dist/tokens.es.js.map +1 -1
  1032. package/dist/{tool-call-arguments-CtUKj7IB.js → tool-call-arguments-Cm5qfywz.js} +2 -2
  1033. package/dist/{tool-call-arguments-CtUKj7IB.js.map → tool-call-arguments-Cm5qfywz.js.map} +1 -1
  1034. package/dist/{tool-call-arguments-BemKsB9v.cjs → tool-call-arguments-cML2FFBk.cjs} +2 -2
  1035. package/dist/{tool-call-arguments-BemKsB9v.cjs.map → tool-call-arguments-cML2FFBk.cjs.map} +1 -1
  1036. package/dist/{tool-call-group-D_ioE9hT.cjs → tool-call-group-CALHT0zr.cjs} +3 -3
  1037. package/dist/{tool-call-group-D_ioE9hT.cjs.map → tool-call-group-CALHT0zr.cjs.map} +1 -1
  1038. package/dist/{tool-call-group-ZuYxpyDs.js → tool-call-group-UoMplOy2.js} +3 -3
  1039. package/dist/{tool-call-group-ZuYxpyDs.js.map → tool-call-group-UoMplOy2.js.map} +1 -1
  1040. package/dist/{traces-data-list-Dd8vMPQK.cjs → traces-data-list-D-wz-Je3.cjs} +5 -5
  1041. package/dist/{traces-data-list-Dd8vMPQK.cjs.map → traces-data-list-D-wz-Je3.cjs.map} +1 -1
  1042. package/dist/{traces-data-list-Fvl8mlih.js → traces-data-list-DmCgejAx.js} +5 -5
  1043. package/dist/{traces-data-list-Fvl8mlih.js.map → traces-data-list-DmCgejAx.js.map} +1 -1
  1044. package/dist/transcript-divider-273Bsdjs.cjs +30 -0
  1045. package/dist/transcript-divider-273Bsdjs.cjs.map +1 -0
  1046. package/dist/transcript-divider-CPIo8NUj.js +28 -0
  1047. package/dist/transcript-divider-CPIo8NUj.js.map +1 -0
  1048. package/dist/tree-DOVwqiSm.cjs +493 -0
  1049. package/dist/tree-DOVwqiSm.cjs.map +1 -0
  1050. package/dist/tree-DixCN7B0.js +472 -0
  1051. package/dist/tree-DixCN7B0.js.map +1 -0
  1052. package/dist/use-collapsible-box-B0t2_SvP.js +20 -0
  1053. package/dist/use-collapsible-box-B0t2_SvP.js.map +1 -0
  1054. package/dist/use-collapsible-box-BI80L4h_.cjs +23 -0
  1055. package/dist/use-collapsible-box-BI80L4h_.cjs.map +1 -0
  1056. package/dist/{use-workflow-graph-runtime-JQwLwNBD.js → use-workflow-graph-runtime-IZ-er4hs.js} +4 -4
  1057. package/dist/{use-workflow-graph-runtime-JQwLwNBD.js.map → use-workflow-graph-runtime-IZ-er4hs.js.map} +1 -1
  1058. package/dist/{use-workflow-graph-runtime-BNAtEa06.cjs → use-workflow-graph-runtime-t17K6Hkf.cjs} +4 -4
  1059. package/dist/{use-workflow-graph-runtime-BNAtEa06.cjs.map → use-workflow-graph-runtime-t17K6Hkf.cjs.map} +1 -1
  1060. package/dist/{workflow-condition-card-BjEAp0t6.cjs → workflow-condition-card-B_oDiQ6I.cjs} +3 -3
  1061. package/dist/{workflow-condition-card-BjEAp0t6.cjs.map → workflow-condition-card-B_oDiQ6I.cjs.map} +1 -1
  1062. package/dist/{workflow-condition-card-3J-As62x.js → workflow-condition-card-CLyskv_B.js} +3 -3
  1063. package/dist/{workflow-condition-card-3J-As62x.js.map → workflow-condition-card-CLyskv_B.js.map} +1 -1
  1064. package/dist/{workflow-data-edge-view-C4nbA2Fa.js → workflow-data-edge-view-JmkSlDp1.js} +2 -2
  1065. package/dist/{workflow-data-edge-view-C4nbA2Fa.js.map → workflow-data-edge-view-JmkSlDp1.js.map} +1 -1
  1066. package/dist/{workflow-data-edge-view-aHAZkZOH.cjs → workflow-data-edge-view-aNTgHQUk.cjs} +2 -2
  1067. package/dist/{workflow-data-edge-view-aHAZkZOH.cjs.map → workflow-data-edge-view-aNTgHQUk.cjs.map} +1 -1
  1068. package/dist/{workflow-debug-controls-tty6gLX2.js → workflow-debug-controls-CQc8ljAI.js} +3 -3
  1069. package/dist/{workflow-debug-controls-tty6gLX2.js.map → workflow-debug-controls-CQc8ljAI.js.map} +1 -1
  1070. package/dist/{workflow-debug-controls-VbxiluNZ.cjs → workflow-debug-controls-WXT05idC.cjs} +3 -3
  1071. package/dist/{workflow-debug-controls-VbxiluNZ.cjs.map → workflow-debug-controls-WXT05idC.cjs.map} +1 -1
  1072. package/dist/{workflow-edge-data-button-2aIkzgev.js → workflow-edge-data-button-B7bM7UqW.js} +2 -2
  1073. package/dist/{workflow-edge-data-button-2aIkzgev.js.map → workflow-edge-data-button-B7bM7UqW.js.map} +1 -1
  1074. package/dist/{workflow-edge-data-button-BFNO-TRL.cjs → workflow-edge-data-button-CHoNrfef.cjs} +2 -2
  1075. package/dist/{workflow-edge-data-button-BFNO-TRL.cjs.map → workflow-edge-data-button-CHoNrfef.cjs.map} +1 -1
  1076. package/package.json +10 -10
  1077. package/theme/colors.css +1 -1
  1078. package/theme/typography.css +19 -2
  1079. package/dist/Badge-D3EctKQo.cjs.map +0 -1
  1080. package/dist/Badge-DmOqFpXW.js.map +0 -1
  1081. package/dist/Txt-BP1SRHmL.js.map +0 -1
  1082. package/dist/Txt-DPmEpNbp.cjs.map +0 -1
  1083. package/dist/combobox-styles-mbcWlNZQ.js.map +0 -1
  1084. package/dist/combobox-styles-qL3FSgmU.cjs.map +0 -1
  1085. package/dist/command-Bm0VcX7X.cjs.map +0 -1
  1086. package/dist/command-DFin7kHN.js.map +0 -1
  1087. package/dist/data-panel-CbomKGJt.js.map +0 -1
  1088. package/dist/data-panel-o-QLWuFV.cjs.map +0 -1
  1089. package/dist/field-BtvEQ68O.js.map +0 -1
  1090. package/dist/field-error-id-4DYu4KZ2.cjs.map +0 -1
  1091. package/dist/field-error-id-BSQLcfHo.js.map +0 -1
  1092. package/dist/field-ip9xiOVa.cjs.map +0 -1
  1093. package/dist/input-group-BgCXLSRV.cjs.map +0 -1
  1094. package/dist/input-group-wzirc-1k.js.map +0 -1
  1095. package/dist/metrics-kpi-card-1hbihR2T.cjs.map +0 -1
  1096. package/dist/metrics-kpi-card-CiB88L41.js.map +0 -1
  1097. package/dist/select--ArpXYDc.js.map +0 -1
  1098. package/dist/select-DJQYAVcm.cjs.map +0 -1
  1099. package/dist/tabs-root-C-ePF1y9.cjs.map +0 -1
  1100. package/dist/tabs-root-lrZZ3KwH.js.map +0 -1
  1101. package/dist/tabs-tab-BmIBFifi.cjs.map +0 -1
  1102. package/dist/tabs-tab-DoPSW-1s.js.map +0 -1
  1103. package/dist/use-collapsible-box-CCvsF_a9.js +0 -54
  1104. package/dist/use-collapsible-box-CCvsF_a9.js.map +0 -1
  1105. package/dist/use-collapsible-box-CbQOkokQ.cjs +0 -58
  1106. package/dist/use-collapsible-box-CbQOkokQ.cjs.map +0 -1
@@ -7,6 +7,7 @@ const React = require('react');
7
7
  const domains_traces_hooks_useVisibleTraceRows = require('../../hooks/use-visible-trace-rows.cjs.js');
8
8
  const domains_traces_components_threadTrace_threadTraceContext = require('./thread-trace-context.cjs.js');
9
9
  const messageScroller = require('../../../../message-scroller-E05PLPmT.cjs');
10
+ const resize_panelGroup = require('../../../../resize/panel-group.cjs.js');
10
11
  const utils_cn = require('../../../../cn-DG0X1KEP.cjs');
11
12
 
12
13
  function ThreadTraceRoot({
@@ -95,21 +96,7 @@ function ThreadTraceRoot({
95
96
  autoScroll: true,
96
97
  preserveScrollOnPrepend: true,
97
98
  onReachStart: onLoadOlder,
98
- children: /* @__PURE__ */ jsxRuntime.jsx(
99
- "div",
100
- {
101
- "data-slot": "thread-trace",
102
- className: utils_cn.cn(
103
- // The span cell always exists and collapses to zero so opening/closing it animates
104
- // via `grid-template-columns`, like the trace panel's columns.
105
- "grid h-full min-h-0 transition-[grid-template-columns] duration-300 ease-in-out",
106
- selected ? "grid-cols-[minmax(0,2fr)_minmax(0,1fr)]" : "grid-cols-[minmax(0,2fr)_minmax(0,0fr)]",
107
- className
108
- ),
109
- ...props,
110
- children
111
- }
112
- )
99
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { "data-slot": "thread-trace", className: utils_cn.cn("flex h-full min-h-0", className), ...props, children: /* @__PURE__ */ jsxRuntime.jsx(resize_panelGroup.PanelGroup, { orientation: "horizontal", className: "min-h-0 flex-1", children }) })
113
100
  }
114
101
  ) });
115
102
  }
@@ -1 +1 @@
1
- {"version":3,"file":"thread-trace-root.cjs.js","sources":["../../../../../src/domains/traces/components/thread-trace/thread-trace-root.tsx"],"sourcesContent":["import { useCallback, useMemo, useRef, useState } from 'react';\nimport type { ComponentProps } from 'react';\n\nimport { useVisibleTraceRows } from '../../hooks/use-visible-trace-rows';\nimport { ThreadTraceContext } from './thread-trace-context';\nimport type { ThreadTraceContextValue, ThreadTraceHighlight, ThreadTraceSelectedSpan } from './thread-trace-context';\nimport { MessageScrollerProvider } from '@/ds/components/MessageScroller';\nimport { cn } from '@/lib/utils';\n\nexport interface ThreadTraceRootProps extends ComponentProps<'div'> {\n /** Trace ids in reading order (oldest first); must match the order of the rendered rows. */\n traceIds: string[];\n /** Fires when the reader scrolls up to the oldest loaded row; load the previous page here. */\n onLoadOlder?: () => void;\n /** Fires when a span detail opens or closes (`null`). */\n onSelectedSpanChange?: (selected: ThreadTraceSelectedSpan | null) => void;\n}\n\n/**\n * Owns the interaction state of a thread rendered as its traces: the selected span, the\n * highlighted spans, which rows are expanded, and which rows are on screen. Layout parts read it\n * through `useThreadTrace()` / `useThreadTraceRow()`; the root itself is the outer grid that gains a\n * side column while a span is selected.\n */\nexport function ThreadTraceRoot({\n traceIds,\n onLoadOlder,\n onSelectedSpanChange,\n className,\n children,\n ...props\n}: ThreadTraceRootProps) {\n const listRef = useRef<HTMLDivElement>(null);\n const { visibleTraceIds, currentTraceId } = useVisibleTraceRows(listRef, traceIds);\n\n const [selected, setSelected] = useState<ThreadTraceSelectedSpan | null>(null);\n const [highlight, setHighlight] = useState<ThreadTraceHighlight | null>(null);\n // Selecting a span expands its row and it stays expanded until the reader collapses it with \"Show less\".\n const [expandedTraceIds, setExpandedTraceIds] = useState<ReadonlySet<string>>(() => new Set());\n\n const setTraceExpanded = useCallback((traceId: string, expanded: boolean) => {\n setExpandedTraceIds(current => {\n if (current.has(traceId) === expanded) return current;\n const next = new Set(current);\n if (expanded) next.add(traceId);\n else next.delete(traceId);\n return next;\n });\n }, []);\n\n const selectSpan = useCallback(\n (traceId: string, spanId: string | undefined) => {\n const next = spanId ? { traceId, spanId } : null;\n setSelected(next);\n onSelectedSpanChange?.(next);\n if (spanId) setTraceExpanded(traceId, true);\n // Closing the panel also ends the highlight, like clearing the URL param on the traces page.\n if (!spanId) setHighlight(null);\n },\n [setTraceExpanded, onSelectedSpanChange],\n );\n\n // Fades the other spans and brings the last (most specific, deepest) span into view, since it is\n // the one most likely to sit below the fold. Opening a span's detail panel stays a separate,\n // deliberate click so highlighting does not hijack the side panel.\n const highlightSpans = useCallback(\n (traceId: string, spanIds: string[]) => {\n if (spanIds.length === 0) {\n setHighlight(null);\n return;\n }\n setHighlight({ traceId, spanIds });\n setTraceExpanded(traceId, true);\n },\n [setTraceExpanded],\n );\n\n const scrollToTrace = useCallback((traceId: string) => {\n const rows = listRef.current?.querySelectorAll<HTMLElement>('[data-trace-id]') ?? [];\n for (const row of rows) {\n if (row.dataset.traceId === traceId) {\n row.scrollIntoView({ behavior: 'smooth', block: 'start' });\n return;\n }\n }\n }, []);\n\n const contextValue = useMemo<ThreadTraceContextValue>(\n () => ({\n traceIds,\n selected,\n selectSpan,\n highlight,\n highlightSpans,\n expandedTraceIds,\n setTraceExpanded,\n visibleTraceIds,\n currentTraceId,\n scrollToTrace,\n listRef,\n }),\n [\n traceIds,\n selected,\n selectSpan,\n highlight,\n highlightSpans,\n expandedTraceIds,\n setTraceExpanded,\n visibleTraceIds,\n currentTraceId,\n scrollToTrace,\n ],\n );\n\n return (\n <ThreadTraceContext.Provider value={contextValue}>\n {/* Chat-like: opens on the latest turn, follows it while rows grow until the reader scrolls\n up, and keeps the reading position when older turns are prepended. */}\n <MessageScrollerProvider\n defaultScrollPosition=\"end\"\n autoScroll\n preserveScrollOnPrepend\n onReachStart={onLoadOlder}\n >\n <div\n data-slot=\"thread-trace\"\n className={cn(\n // The span cell always exists and collapses to zero so opening/closing it animates\n // via `grid-template-columns`, like the trace panel's columns.\n 'grid h-full min-h-0 transition-[grid-template-columns] duration-300 ease-in-out',\n selected ? 'grid-cols-[minmax(0,2fr)_minmax(0,1fr)]' : 'grid-cols-[minmax(0,2fr)_minmax(0,0fr)]',\n className,\n )}\n {...props}\n >\n {children}\n </div>\n </MessageScrollerProvider>\n </ThreadTraceContext.Provider>\n );\n}\n"],"names":["useRef","useVisibleTraceRows","useState","useCallback","useMemo","jsx","ThreadTraceContext","MessageScrollerProvider","cn"],"mappings":"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"}
1
+ {"version":3,"file":"thread-trace-root.cjs.js","sources":["../../../../../src/domains/traces/components/thread-trace/thread-trace-root.tsx"],"sourcesContent":["import { useCallback, useMemo, useRef, useState } from 'react';\nimport type { ComponentProps } from 'react';\n\nimport { useVisibleTraceRows } from '../../hooks/use-visible-trace-rows';\nimport { ThreadTraceContext } from './thread-trace-context';\nimport type { ThreadTraceContextValue, ThreadTraceHighlight, ThreadTraceSelectedSpan } from './thread-trace-context';\nimport { MessageScrollerProvider } from '@/ds/components/MessageScroller';\nimport { PanelGroup } from '@/lib/resize/panel-group';\nimport { cn } from '@/lib/utils';\n\nexport interface ThreadTraceRootProps extends ComponentProps<'div'> {\n /** Trace ids in reading order (oldest first); must match the order of the rendered rows. */\n traceIds: string[];\n /** Fires when the reader scrolls up to the oldest loaded row; load the previous page here. */\n onLoadOlder?: () => void;\n /** Fires when a span detail opens or closes (`null`). */\n onSelectedSpanChange?: (selected: ThreadTraceSelectedSpan | null) => void;\n}\n\n/**\n * Owns the interaction state of a thread rendered as its traces: the selected span, the\n * highlighted spans, which rows are expanded, and which rows are on screen. Layout parts read it\n * through `useThreadTrace()` / `useThreadTraceRow()`; the root itself is the resizable panel group that\n * gains a span column while a span is selected.\n */\nexport function ThreadTraceRoot({\n traceIds,\n onLoadOlder,\n onSelectedSpanChange,\n className,\n children,\n ...props\n}: ThreadTraceRootProps) {\n const listRef = useRef<HTMLDivElement>(null);\n const { visibleTraceIds, currentTraceId } = useVisibleTraceRows(listRef, traceIds);\n\n const [selected, setSelected] = useState<ThreadTraceSelectedSpan | null>(null);\n const [highlight, setHighlight] = useState<ThreadTraceHighlight | null>(null);\n // Selecting a span expands its row and it stays expanded until the reader collapses it with \"Collapse\".\n const [expandedTraceIds, setExpandedTraceIds] = useState<ReadonlySet<string>>(() => new Set());\n\n const setTraceExpanded = useCallback((traceId: string, expanded: boolean) => {\n setExpandedTraceIds(current => {\n if (current.has(traceId) === expanded) return current;\n const next = new Set(current);\n if (expanded) next.add(traceId);\n else next.delete(traceId);\n return next;\n });\n }, []);\n\n const selectSpan = useCallback(\n (traceId: string, spanId: string | undefined) => {\n const next = spanId ? { traceId, spanId } : null;\n setSelected(next);\n onSelectedSpanChange?.(next);\n if (spanId) setTraceExpanded(traceId, true);\n // Closing the panel also ends the highlight, like clearing the URL param on the traces page.\n if (!spanId) setHighlight(null);\n },\n [setTraceExpanded, onSelectedSpanChange],\n );\n\n // Fades the other spans and brings the last (most specific, deepest) span into view, since it is\n // the one most likely to sit below the fold. Opening a span's detail panel stays a separate,\n // deliberate click so highlighting does not hijack the side panel.\n const highlightSpans = useCallback(\n (traceId: string, spanIds: string[]) => {\n if (spanIds.length === 0) {\n setHighlight(null);\n return;\n }\n setHighlight({ traceId, spanIds });\n setTraceExpanded(traceId, true);\n },\n [setTraceExpanded],\n );\n\n const scrollToTrace = useCallback((traceId: string) => {\n const rows = listRef.current?.querySelectorAll<HTMLElement>('[data-trace-id]') ?? [];\n for (const row of rows) {\n if (row.dataset.traceId === traceId) {\n row.scrollIntoView({ behavior: 'smooth', block: 'start' });\n return;\n }\n }\n }, []);\n\n const contextValue = useMemo<ThreadTraceContextValue>(\n () => ({\n traceIds,\n selected,\n selectSpan,\n highlight,\n highlightSpans,\n expandedTraceIds,\n setTraceExpanded,\n visibleTraceIds,\n currentTraceId,\n scrollToTrace,\n listRef,\n }),\n [\n traceIds,\n selected,\n selectSpan,\n highlight,\n highlightSpans,\n expandedTraceIds,\n setTraceExpanded,\n visibleTraceIds,\n currentTraceId,\n scrollToTrace,\n ],\n );\n\n return (\n <ThreadTraceContext.Provider value={contextValue}>\n {/* Chat-like: opens on the latest turn, follows it while rows grow until the reader scrolls\n up, and keeps the reading position when older turns are prepended. */}\n <MessageScrollerProvider\n defaultScrollPosition=\"end\"\n autoScroll\n preserveScrollOnPrepend\n onReachStart={onLoadOlder}\n >\n <div data-slot=\"thread-trace\" className={cn('flex h-full min-h-0', className)} {...props}>\n <PanelGroup orientation=\"horizontal\" className=\"min-h-0 flex-1\">\n {children}\n </PanelGroup>\n </div>\n </MessageScrollerProvider>\n </ThreadTraceContext.Provider>\n );\n}\n"],"names":["useRef","useVisibleTraceRows","useState","useCallback","useMemo","jsx","ThreadTraceContext","MessageScrollerProvider","cn","PanelGroup"],"mappings":"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"}
@@ -3,6 +3,7 @@ import { useRef, useState, useCallback, useMemo } from 'react';
3
3
  import { useVisibleTraceRows } from '../../hooks/use-visible-trace-rows.es.js';
4
4
  import { ThreadTraceContext } from './thread-trace-context.es.js';
5
5
  import { d as MessageScrollerProvider } from '../../../../message-scroller-CiFr8MwT.js';
6
+ import { PanelGroup } from '../../../../resize/panel-group.es.js';
6
7
  import { c as cn } from '../../../../cn-65Adrsfj.js';
7
8
 
8
9
  function ThreadTraceRoot({
@@ -91,21 +92,7 @@ function ThreadTraceRoot({
91
92
  autoScroll: true,
92
93
  preserveScrollOnPrepend: true,
93
94
  onReachStart: onLoadOlder,
94
- children: /* @__PURE__ */ jsx(
95
- "div",
96
- {
97
- "data-slot": "thread-trace",
98
- className: cn(
99
- // The span cell always exists and collapses to zero so opening/closing it animates
100
- // via `grid-template-columns`, like the trace panel's columns.
101
- "grid h-full min-h-0 transition-[grid-template-columns] duration-300 ease-in-out",
102
- selected ? "grid-cols-[minmax(0,2fr)_minmax(0,1fr)]" : "grid-cols-[minmax(0,2fr)_minmax(0,0fr)]",
103
- className
104
- ),
105
- ...props,
106
- children
107
- }
108
- )
95
+ children: /* @__PURE__ */ jsx("div", { "data-slot": "thread-trace", className: cn("flex h-full min-h-0", className), ...props, children: /* @__PURE__ */ jsx(PanelGroup, { orientation: "horizontal", className: "min-h-0 flex-1", children }) })
109
96
  }
110
97
  ) });
111
98
  }
@@ -1 +1 @@
1
- {"version":3,"file":"thread-trace-root.es.js","sources":["../../../../../src/domains/traces/components/thread-trace/thread-trace-root.tsx"],"sourcesContent":["import { useCallback, useMemo, useRef, useState } from 'react';\nimport type { ComponentProps } from 'react';\n\nimport { useVisibleTraceRows } from '../../hooks/use-visible-trace-rows';\nimport { ThreadTraceContext } from './thread-trace-context';\nimport type { ThreadTraceContextValue, ThreadTraceHighlight, ThreadTraceSelectedSpan } from './thread-trace-context';\nimport { MessageScrollerProvider } from '@/ds/components/MessageScroller';\nimport { cn } from '@/lib/utils';\n\nexport interface ThreadTraceRootProps extends ComponentProps<'div'> {\n /** Trace ids in reading order (oldest first); must match the order of the rendered rows. */\n traceIds: string[];\n /** Fires when the reader scrolls up to the oldest loaded row; load the previous page here. */\n onLoadOlder?: () => void;\n /** Fires when a span detail opens or closes (`null`). */\n onSelectedSpanChange?: (selected: ThreadTraceSelectedSpan | null) => void;\n}\n\n/**\n * Owns the interaction state of a thread rendered as its traces: the selected span, the\n * highlighted spans, which rows are expanded, and which rows are on screen. Layout parts read it\n * through `useThreadTrace()` / `useThreadTraceRow()`; the root itself is the outer grid that gains a\n * side column while a span is selected.\n */\nexport function ThreadTraceRoot({\n traceIds,\n onLoadOlder,\n onSelectedSpanChange,\n className,\n children,\n ...props\n}: ThreadTraceRootProps) {\n const listRef = useRef<HTMLDivElement>(null);\n const { visibleTraceIds, currentTraceId } = useVisibleTraceRows(listRef, traceIds);\n\n const [selected, setSelected] = useState<ThreadTraceSelectedSpan | null>(null);\n const [highlight, setHighlight] = useState<ThreadTraceHighlight | null>(null);\n // Selecting a span expands its row and it stays expanded until the reader collapses it with \"Show less\".\n const [expandedTraceIds, setExpandedTraceIds] = useState<ReadonlySet<string>>(() => new Set());\n\n const setTraceExpanded = useCallback((traceId: string, expanded: boolean) => {\n setExpandedTraceIds(current => {\n if (current.has(traceId) === expanded) return current;\n const next = new Set(current);\n if (expanded) next.add(traceId);\n else next.delete(traceId);\n return next;\n });\n }, []);\n\n const selectSpan = useCallback(\n (traceId: string, spanId: string | undefined) => {\n const next = spanId ? { traceId, spanId } : null;\n setSelected(next);\n onSelectedSpanChange?.(next);\n if (spanId) setTraceExpanded(traceId, true);\n // Closing the panel also ends the highlight, like clearing the URL param on the traces page.\n if (!spanId) setHighlight(null);\n },\n [setTraceExpanded, onSelectedSpanChange],\n );\n\n // Fades the other spans and brings the last (most specific, deepest) span into view, since it is\n // the one most likely to sit below the fold. Opening a span's detail panel stays a separate,\n // deliberate click so highlighting does not hijack the side panel.\n const highlightSpans = useCallback(\n (traceId: string, spanIds: string[]) => {\n if (spanIds.length === 0) {\n setHighlight(null);\n return;\n }\n setHighlight({ traceId, spanIds });\n setTraceExpanded(traceId, true);\n },\n [setTraceExpanded],\n );\n\n const scrollToTrace = useCallback((traceId: string) => {\n const rows = listRef.current?.querySelectorAll<HTMLElement>('[data-trace-id]') ?? [];\n for (const row of rows) {\n if (row.dataset.traceId === traceId) {\n row.scrollIntoView({ behavior: 'smooth', block: 'start' });\n return;\n }\n }\n }, []);\n\n const contextValue = useMemo<ThreadTraceContextValue>(\n () => ({\n traceIds,\n selected,\n selectSpan,\n highlight,\n highlightSpans,\n expandedTraceIds,\n setTraceExpanded,\n visibleTraceIds,\n currentTraceId,\n scrollToTrace,\n listRef,\n }),\n [\n traceIds,\n selected,\n selectSpan,\n highlight,\n highlightSpans,\n expandedTraceIds,\n setTraceExpanded,\n visibleTraceIds,\n currentTraceId,\n scrollToTrace,\n ],\n );\n\n return (\n <ThreadTraceContext.Provider value={contextValue}>\n {/* Chat-like: opens on the latest turn, follows it while rows grow until the reader scrolls\n up, and keeps the reading position when older turns are prepended. */}\n <MessageScrollerProvider\n defaultScrollPosition=\"end\"\n autoScroll\n preserveScrollOnPrepend\n onReachStart={onLoadOlder}\n >\n <div\n data-slot=\"thread-trace\"\n className={cn(\n // The span cell always exists and collapses to zero so opening/closing it animates\n // via `grid-template-columns`, like the trace panel's columns.\n 'grid h-full min-h-0 transition-[grid-template-columns] duration-300 ease-in-out',\n selected ? 'grid-cols-[minmax(0,2fr)_minmax(0,1fr)]' : 'grid-cols-[minmax(0,2fr)_minmax(0,0fr)]',\n className,\n )}\n {...props}\n >\n {children}\n </div>\n </MessageScrollerProvider>\n </ThreadTraceContext.Provider>\n );\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"thread-trace-root.es.js","sources":["../../../../../src/domains/traces/components/thread-trace/thread-trace-root.tsx"],"sourcesContent":["import { useCallback, useMemo, useRef, useState } from 'react';\nimport type { ComponentProps } from 'react';\n\nimport { useVisibleTraceRows } from '../../hooks/use-visible-trace-rows';\nimport { ThreadTraceContext } from './thread-trace-context';\nimport type { ThreadTraceContextValue, ThreadTraceHighlight, ThreadTraceSelectedSpan } from './thread-trace-context';\nimport { MessageScrollerProvider } from '@/ds/components/MessageScroller';\nimport { PanelGroup } from '@/lib/resize/panel-group';\nimport { cn } from '@/lib/utils';\n\nexport interface ThreadTraceRootProps extends ComponentProps<'div'> {\n /** Trace ids in reading order (oldest first); must match the order of the rendered rows. */\n traceIds: string[];\n /** Fires when the reader scrolls up to the oldest loaded row; load the previous page here. */\n onLoadOlder?: () => void;\n /** Fires when a span detail opens or closes (`null`). */\n onSelectedSpanChange?: (selected: ThreadTraceSelectedSpan | null) => void;\n}\n\n/**\n * Owns the interaction state of a thread rendered as its traces: the selected span, the\n * highlighted spans, which rows are expanded, and which rows are on screen. Layout parts read it\n * through `useThreadTrace()` / `useThreadTraceRow()`; the root itself is the resizable panel group that\n * gains a span column while a span is selected.\n */\nexport function ThreadTraceRoot({\n traceIds,\n onLoadOlder,\n onSelectedSpanChange,\n className,\n children,\n ...props\n}: ThreadTraceRootProps) {\n const listRef = useRef<HTMLDivElement>(null);\n const { visibleTraceIds, currentTraceId } = useVisibleTraceRows(listRef, traceIds);\n\n const [selected, setSelected] = useState<ThreadTraceSelectedSpan | null>(null);\n const [highlight, setHighlight] = useState<ThreadTraceHighlight | null>(null);\n // Selecting a span expands its row and it stays expanded until the reader collapses it with \"Collapse\".\n const [expandedTraceIds, setExpandedTraceIds] = useState<ReadonlySet<string>>(() => new Set());\n\n const setTraceExpanded = useCallback((traceId: string, expanded: boolean) => {\n setExpandedTraceIds(current => {\n if (current.has(traceId) === expanded) return current;\n const next = new Set(current);\n if (expanded) next.add(traceId);\n else next.delete(traceId);\n return next;\n });\n }, []);\n\n const selectSpan = useCallback(\n (traceId: string, spanId: string | undefined) => {\n const next = spanId ? { traceId, spanId } : null;\n setSelected(next);\n onSelectedSpanChange?.(next);\n if (spanId) setTraceExpanded(traceId, true);\n // Closing the panel also ends the highlight, like clearing the URL param on the traces page.\n if (!spanId) setHighlight(null);\n },\n [setTraceExpanded, onSelectedSpanChange],\n );\n\n // Fades the other spans and brings the last (most specific, deepest) span into view, since it is\n // the one most likely to sit below the fold. Opening a span's detail panel stays a separate,\n // deliberate click so highlighting does not hijack the side panel.\n const highlightSpans = useCallback(\n (traceId: string, spanIds: string[]) => {\n if (spanIds.length === 0) {\n setHighlight(null);\n return;\n }\n setHighlight({ traceId, spanIds });\n setTraceExpanded(traceId, true);\n },\n [setTraceExpanded],\n );\n\n const scrollToTrace = useCallback((traceId: string) => {\n const rows = listRef.current?.querySelectorAll<HTMLElement>('[data-trace-id]') ?? [];\n for (const row of rows) {\n if (row.dataset.traceId === traceId) {\n row.scrollIntoView({ behavior: 'smooth', block: 'start' });\n return;\n }\n }\n }, []);\n\n const contextValue = useMemo<ThreadTraceContextValue>(\n () => ({\n traceIds,\n selected,\n selectSpan,\n highlight,\n highlightSpans,\n expandedTraceIds,\n setTraceExpanded,\n visibleTraceIds,\n currentTraceId,\n scrollToTrace,\n listRef,\n }),\n [\n traceIds,\n selected,\n selectSpan,\n highlight,\n highlightSpans,\n expandedTraceIds,\n setTraceExpanded,\n visibleTraceIds,\n currentTraceId,\n scrollToTrace,\n ],\n );\n\n return (\n <ThreadTraceContext.Provider value={contextValue}>\n {/* Chat-like: opens on the latest turn, follows it while rows grow until the reader scrolls\n up, and keeps the reading position when older turns are prepended. */}\n <MessageScrollerProvider\n defaultScrollPosition=\"end\"\n autoScroll\n preserveScrollOnPrepend\n onReachStart={onLoadOlder}\n >\n <div data-slot=\"thread-trace\" className={cn('flex h-full min-h-0', className)} {...props}>\n <PanelGroup orientation=\"horizontal\" className=\"min-h-0 flex-1\">\n {children}\n </PanelGroup>\n </div>\n </MessageScrollerProvider>\n </ThreadTraceContext.Provider>\n );\n}\n"],"names":[],"mappings":";;;;;;;;AAyBO,SAAS,eAAA,CAAgB;AAAA,EAC9B,QAAA;AAAA,EACA,WAAA;AAAA,EACA,oBAAA;AAAA,EACA,SAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAyB;AACvB,EAAA,MAAM,OAAA,GAAU,OAAuB,IAAI,CAAA;AAC3C,EAAA,MAAM,EAAE,eAAA,EAAiB,cAAA,EAAe,GAAI,mBAAA,CAAoB,SAAS,QAAQ,CAAA;AAEjF,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAI,SAAyC,IAAI,CAAA;AAC7E,EAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAI,SAAsC,IAAI,CAAA;AAE5E,EAAA,MAAM,CAAC,kBAAkB,mBAAmB,CAAA,GAAI,SAA8B,sBAAM,IAAI,KAAK,CAAA;AAE7F,EAAA,MAAM,gBAAA,GAAmB,WAAA,CAAY,CAAC,OAAA,EAAiB,QAAA,KAAsB;AAC3E,IAAA,mBAAA,CAAoB,CAAA,OAAA,KAAW;AAC7B,MAAA,IAAI,OAAA,CAAQ,GAAA,CAAI,OAAO,CAAA,KAAM,UAAU,OAAO,OAAA;AAC9C,MAAA,MAAM,IAAA,GAAO,IAAI,GAAA,CAAI,OAAO,CAAA;AAC5B,MAAA,IAAI,QAAA,EAAU,IAAA,CAAK,GAAA,CAAI,OAAO,CAAA;AAAA,WACzB,IAAA,CAAK,OAAO,OAAO,CAAA;AACxB,MAAA,OAAO,IAAA;AAAA,IACT,CAAC,CAAA;AAAA,EACH,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,MAAM,UAAA,GAAa,WAAA;AAAA,IACjB,CAAC,SAAiB,MAAA,KAA+B;AAC/C,MAAA,MAAM,IAAA,GAAO,MAAA,GAAS,EAAE,OAAA,EAAS,QAAO,GAAI,IAAA;AAC5C,MAAA,WAAA,CAAY,IAAI,CAAA;AAChB,MAAA,oBAAA,GAAuB,IAAI,CAAA;AAC3B,MAAA,IAAI,MAAA,EAAQ,gBAAA,CAAiB,OAAA,EAAS,IAAI,CAAA;AAE1C,MAAA,IAAI,CAAC,MAAA,EAAQ,YAAA,CAAa,IAAI,CAAA;AAAA,IAChC,CAAA;AAAA,IACA,CAAC,kBAAkB,oBAAoB;AAAA,GACzC;AAKA,EAAA,MAAM,cAAA,GAAiB,WAAA;AAAA,IACrB,CAAC,SAAiB,OAAA,KAAsB;AACtC,MAAA,IAAI,OAAA,CAAQ,WAAW,CAAA,EAAG;AACxB,QAAA,YAAA,CAAa,IAAI,CAAA;AACjB,QAAA;AAAA,MACF;AACA,MAAA,YAAA,CAAa,EAAE,OAAA,EAAS,OAAA,EAAS,CAAA;AACjC,MAAA,gBAAA,CAAiB,SAAS,IAAI,CAAA;AAAA,IAChC,CAAA;AAAA,IACA,CAAC,gBAAgB;AAAA,GACnB;AAEA,EAAA,MAAM,aAAA,GAAgB,WAAA,CAAY,CAAC,OAAA,KAAoB;AACrD,IAAA,MAAM,OAAO,OAAA,CAAQ,OAAA,EAAS,gBAAA,CAA8B,iBAAiB,KAAK,EAAC;AACnF,IAAA,KAAA,MAAW,OAAO,IAAA,EAAM;AACtB,MAAA,IAAI,GAAA,CAAI,OAAA,CAAQ,OAAA,KAAY,OAAA,EAAS;AACnC,QAAA,GAAA,CAAI,eAAe,EAAE,QAAA,EAAU,QAAA,EAAU,KAAA,EAAO,SAAS,CAAA;AACzD,QAAA;AAAA,MACF;AAAA,IACF;AAAA,EACF,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,MAAM,YAAA,GAAe,OAAA;AAAA,IACnB,OAAO;AAAA,MACL,QAAA;AAAA,MACA,QAAA;AAAA,MACA,UAAA;AAAA,MACA,SAAA;AAAA,MACA,cAAA;AAAA,MACA,gBAAA;AAAA,MACA,gBAAA;AAAA,MACA,eAAA;AAAA,MACA,cAAA;AAAA,MACA,aAAA;AAAA,MACA;AAAA,KACF,CAAA;AAAA,IACA;AAAA,MACE,QAAA;AAAA,MACA,QAAA;AAAA,MACA,UAAA;AAAA,MACA,SAAA;AAAA,MACA,cAAA;AAAA,MACA,gBAAA;AAAA,MACA,gBAAA;AAAA,MACA,eAAA;AAAA,MACA,cAAA;AAAA,MACA;AAAA;AACF,GACF;AAEA,EAAA,uBACE,GAAA,CAAC,kBAAA,CAAmB,QAAA,EAAnB,EAA4B,OAAO,YAAA,EAGlC,QAAA,kBAAA,GAAA;AAAA,IAAC,uBAAA;AAAA,IAAA;AAAA,MACC,qBAAA,EAAsB,KAAA;AAAA,MACtB,UAAA,EAAU,IAAA;AAAA,MACV,uBAAA,EAAuB,IAAA;AAAA,MACvB,YAAA,EAAc,WAAA;AAAA,MAEd,8BAAC,KAAA,EAAA,EAAI,WAAA,EAAU,gBAAe,SAAA,EAAW,EAAA,CAAG,uBAAuB,SAAS,CAAA,EAAI,GAAG,KAAA,EACjF,8BAAC,UAAA,EAAA,EAAW,WAAA,EAAY,cAAa,SAAA,EAAU,gBAAA,EAC5C,UACH,CAAA,EACF;AAAA;AAAA,GACF,EACF,CAAA;AAEJ;;;;"}
@@ -6,7 +6,9 @@ const jsxRuntime = require('react/jsx-runtime');
6
6
  const React = require('react');
7
7
  const domains_traces_components_threadTrace_threadTraceContext = require('./thread-trace-context.cjs.js');
8
8
  const domains_traces_components_threadTrace_threadTraceRowContext = require('./thread-trace-row-context.cjs.js');
9
+ const transcriptDivider = require('../../../../transcript-divider-273Bsdjs.cjs');
9
10
  const messageScroller = require('../../../../message-scroller-E05PLPmT.cjs');
11
+ const tabsRoot = require('../../../../tabs-root-Hkt7A6oq.cjs');
10
12
  const hooks_useMeasuredAutoHeight = require('../../../../hooks/use-measured-auto-height.cjs.js');
11
13
  const utils_cn = require('../../../../cn-DG0X1KEP.cjs');
12
14
 
@@ -76,13 +78,15 @@ function ThreadTraceRow({ traceId, className, children, ...props }) {
76
78
  ]
77
79
  );
78
80
  return /* @__PURE__ */ jsxRuntime.jsx(domains_traces_components_threadTrace_threadTraceRowContext.ThreadTraceRowContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsxRuntime.jsx(messageScroller.MessageScrollerItem, { messageId: traceId, className: "[content-visibility:visible]", children: /* @__PURE__ */ jsxRuntime.jsx(
79
- "div",
81
+ tabsRoot.Tabs,
80
82
  {
83
+ defaultTab: THREAD_TRACE_MESSAGES_TAB,
84
+ value: tab,
85
+ onValueChange: setTab,
81
86
  "data-slot": "thread-trace-row",
82
87
  className: utils_cn.cn(
83
- // Same fixed messages width as the trace panel; the details column takes the rest.
84
- "group grid grid-cols-[minmax(0,1fr)_minmax(0,1fr)] border-b border-border transition-opacity hover:opacity-100",
85
- isActive || isCurrent ? "opacity-100" : "opacity-50",
88
+ // `overflow-visible` overrides the tabs root scroll box so the messages column stays sticky.
89
+ "group flex flex-col overflow-visible pb-4",
86
90
  className
87
91
  ),
88
92
  "data-trace-id": traceId,
@@ -92,7 +96,25 @@ function ThreadTraceRow({ traceId, className, children, ...props }) {
92
96
  }
93
97
  ) }) });
94
98
  }
99
+ function ThreadTraceRowBody({ className, ...props }) {
100
+ return /* @__PURE__ */ jsxRuntime.jsx(
101
+ "div",
102
+ {
103
+ "data-slot": "thread-trace-row-body",
104
+ className: utils_cn.cn("grid grid-cols-[minmax(0,1fr)_minmax(0,1fr)]", className),
105
+ ...props
106
+ }
107
+ );
108
+ }
109
+ function ThreadTraceDivider({ label, children }) {
110
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { "data-slot": "thread-trace-divider", className: "grid grid-cols-[minmax(0,1fr)_minmax(0,1fr)]", children: [
111
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-w-0 pl-4", children: /* @__PURE__ */ jsxRuntime.jsx(transcriptDivider.TranscriptDivider, { label, hideLabel: true, children }) }),
112
+ /* @__PURE__ */ jsxRuntime.jsx("div", { "aria-hidden": true, className: "flex items-center pr-4", children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "h-px flex-1 bg-border" }) })
113
+ ] });
114
+ }
95
115
 
96
116
  exports.THREAD_TRACE_MESSAGES_TAB = THREAD_TRACE_MESSAGES_TAB;
117
+ exports.ThreadTraceDivider = ThreadTraceDivider;
97
118
  exports.ThreadTraceRow = ThreadTraceRow;
119
+ exports.ThreadTraceRowBody = ThreadTraceRowBody;
98
120
  //# sourceMappingURL=thread-trace-row.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"thread-trace-row.cjs.js","sources":["../../../../../src/domains/traces/components/thread-trace/thread-trace-row.tsx"],"sourcesContent":["import { useCallback, useMemo, useState } from 'react';\nimport type { ComponentProps } from 'react';\n\nimport { useThreadTrace } from './thread-trace-context';\nimport { ThreadTraceRowContext } from './thread-trace-row-context';\nimport type { ThreadTraceRowContextValue } from './thread-trace-row-context';\nimport { MessageScrollerItem } from '@/ds/components/MessageScroller';\nimport { useMeasuredAutoHeight } from '@/hooks/use-measured-auto-height';\nimport { cn } from '@/lib/utils';\n\nexport const THREAD_TRACE_MESSAGES_TAB = 'messages';\n\nexport interface ThreadTraceRowProps extends ComponentProps<'div'> {\n traceId: string;\n}\n\n/**\n * One agent turn: the messages column on the left and the details column on the right. The whole\n * row is dimmed unless it is the first one in view, hovered, or its span is open in the side panel,\n * so the reader keeps track of which turn they are on without hovering.\n */\nexport function ThreadTraceRow({ traceId, className, children, ...props }: ThreadTraceRowProps) {\n const root = useThreadTrace();\n\n const selectedSpanId = root.selected?.traceId === traceId ? root.selected.spanId : undefined;\n const featuredSpanIds = root.highlight?.traceId === traceId ? root.highlight.spanIds : undefined;\n const revealSpanId = featuredSpanIds?.at(-1);\n const isActive = selectedSpanId !== undefined;\n const isCurrent = root.currentTraceId === traceId;\n const isExpanded = root.expandedTraceIds.has(traceId);\n\n // A long trace is clamped to the real height of its messages column (not a nominal row height),\n // so the timeline never dwarfs the turn it belongs to. The refs live here because the messages\n // and the timeline are sibling parts.\n const messages = useMeasuredAutoHeight<HTMLDivElement>();\n const timeline = useMeasuredAutoHeight<HTMLDivElement>();\n const detailsHeader = useMeasuredAutoHeight<HTMLDivElement>();\n\n // Which view the messages column shows (Messages / Feedback / Scores), one per row.\n const [tab, setTab] = useState<string>(THREAD_TRACE_MESSAGES_TAB);\n // The clamp budget is the height of the *Messages* view: a short Feedback or Scores view\n // must not squash the span tree next to it, so the last Messages height is kept while\n // another view is showing.\n const [messagesViewHeight, setMessagesViewHeight] = useState<number | null>(null);\n if (tab === THREAD_TRACE_MESSAGES_TAB && messages.height !== messagesViewHeight) {\n setMessagesViewHeight(messages.height);\n }\n\n const { highlightSpans: rootHighlightSpans, setTraceExpanded } = root;\n const highlightSpans = useCallback(\n (spanIds: string[]) => rootHighlightSpans(traceId, spanIds),\n [rootHighlightSpans, traceId],\n );\n const setExpanded = useCallback(\n (expanded: boolean) => setTraceExpanded(traceId, expanded),\n [setTraceExpanded, traceId],\n );\n\n const contextValue = useMemo<ThreadTraceRowContextValue>(\n () => ({\n traceId,\n isActive,\n isCurrent,\n isExpanded,\n selectedSpanId,\n featuredSpanIds,\n revealSpanId,\n highlightSpans,\n setExpanded,\n tab,\n setTab,\n messagesRef: messages.ref,\n timelineRef: timeline.ref,\n detailsHeaderRef: detailsHeader.ref,\n messagesHeight: messagesViewHeight,\n timelineHeight: timeline.height,\n detailsHeaderHeight: detailsHeader.height,\n }),\n [\n traceId,\n isActive,\n isCurrent,\n isExpanded,\n selectedSpanId,\n featuredSpanIds,\n revealSpanId,\n highlightSpans,\n setExpanded,\n tab,\n messages.ref,\n timeline.ref,\n detailsHeader.ref,\n messagesViewHeight,\n timeline.height,\n detailsHeader.height,\n ],\n );\n\n return (\n <ThreadTraceRowContext.Provider value={contextValue}>\n {/* Registers the row with the scroller so prepends of older turns keep the reading position.\n Rows measure their own columns, so they stay rendered off screen. */}\n <MessageScrollerItem messageId={traceId} className=\"[content-visibility:visible]\">\n <div\n data-slot=\"thread-trace-row\"\n className={cn(\n // Same fixed messages width as the trace panel; the details column takes the rest.\n 'group grid grid-cols-[minmax(0,1fr)_minmax(0,1fr)] border-b border-border transition-opacity hover:opacity-100',\n isActive || isCurrent ? 'opacity-100' : 'opacity-50',\n className,\n )}\n data-trace-id={traceId}\n data-active={isActive || undefined}\n {...props}\n >\n {children}\n </div>\n </MessageScrollerItem>\n </ThreadTraceRowContext.Provider>\n );\n}\n"],"names":["useThreadTrace","useMeasuredAutoHeight","useState","useCallback","useMemo","jsx","ThreadTraceRowContext","MessageScrollerItem","cn"],"mappings":"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"}
1
+ {"version":3,"file":"thread-trace-row.cjs.js","sources":["../../../../../src/domains/traces/components/thread-trace/thread-trace-row.tsx"],"sourcesContent":["import { useCallback, useMemo, useState } from 'react';\nimport type { ComponentProps, ReactNode } from 'react';\n\nimport { useThreadTrace } from './thread-trace-context';\nimport { ThreadTraceRowContext } from './thread-trace-row-context';\nimport type { ThreadTraceRowContextValue } from './thread-trace-row-context';\nimport { TranscriptDivider } from '@/ds/components/ai/transcript-divider';\nimport { MessageScrollerItem } from '@/ds/components/MessageScroller';\nimport { Tabs } from '@/ds/components/Tabs';\nimport { useMeasuredAutoHeight } from '@/hooks/use-measured-auto-height';\nimport { cn } from '@/lib/utils';\n\nexport const THREAD_TRACE_MESSAGES_TAB = 'messages';\n\nexport interface ThreadTraceRowProps extends ComponentProps<'div'> {\n traceId: string;\n}\n\n/**\n * One agent turn: a `ThreadTrace.Divider` (turn label + tabs) above a `ThreadTrace.RowBody` holding\n * the messages column on the left and the details card on the right. The whole\n * row is dimmed unless it is the first one in view, hovered, or its span is open in the side panel,\n * so the reader keeps track of which turn they are on without hovering.\n */\nexport function ThreadTraceRow({ traceId, className, children, ...props }: ThreadTraceRowProps) {\n const root = useThreadTrace();\n\n const selectedSpanId = root.selected?.traceId === traceId ? root.selected.spanId : undefined;\n const featuredSpanIds = root.highlight?.traceId === traceId ? root.highlight.spanIds : undefined;\n const revealSpanId = featuredSpanIds?.at(-1);\n const isActive = selectedSpanId !== undefined;\n const isCurrent = root.currentTraceId === traceId;\n const isExpanded = root.expandedTraceIds.has(traceId);\n\n // A long trace is clamped to the real height of its messages column (not a nominal row height),\n // so the timeline never dwarfs the turn it belongs to. The refs live here because the messages\n // and the timeline are sibling parts.\n const messages = useMeasuredAutoHeight<HTMLDivElement>();\n const timeline = useMeasuredAutoHeight<HTMLDivElement>();\n const detailsHeader = useMeasuredAutoHeight<HTMLDivElement>();\n\n // Which view the messages column shows (Messages / Feedback / Scores), one per row.\n const [tab, setTab] = useState<string>(THREAD_TRACE_MESSAGES_TAB);\n // The clamp budget is the height of the *Messages* view: a short Feedback or Scores view\n // must not squash the span tree next to it, so the last Messages height is kept while\n // another view is showing.\n const [messagesViewHeight, setMessagesViewHeight] = useState<number | null>(null);\n if (tab === THREAD_TRACE_MESSAGES_TAB && messages.height !== messagesViewHeight) {\n setMessagesViewHeight(messages.height);\n }\n\n const { highlightSpans: rootHighlightSpans, setTraceExpanded } = root;\n const highlightSpans = useCallback(\n (spanIds: string[]) => rootHighlightSpans(traceId, spanIds),\n [rootHighlightSpans, traceId],\n );\n const setExpanded = useCallback(\n (expanded: boolean) => setTraceExpanded(traceId, expanded),\n [setTraceExpanded, traceId],\n );\n\n const contextValue = useMemo<ThreadTraceRowContextValue>(\n () => ({\n traceId,\n isActive,\n isCurrent,\n isExpanded,\n selectedSpanId,\n featuredSpanIds,\n revealSpanId,\n highlightSpans,\n setExpanded,\n tab,\n setTab,\n messagesRef: messages.ref,\n timelineRef: timeline.ref,\n detailsHeaderRef: detailsHeader.ref,\n messagesHeight: messagesViewHeight,\n timelineHeight: timeline.height,\n detailsHeaderHeight: detailsHeader.height,\n }),\n [\n traceId,\n isActive,\n isCurrent,\n isExpanded,\n selectedSpanId,\n featuredSpanIds,\n revealSpanId,\n highlightSpans,\n setExpanded,\n tab,\n messages.ref,\n timeline.ref,\n detailsHeader.ref,\n messagesViewHeight,\n timeline.height,\n detailsHeader.height,\n ],\n );\n\n return (\n <ThreadTraceRowContext.Provider value={contextValue}>\n {/* Registers the row with the scroller so prepends of older turns keep the reading position.\n Rows measure their own columns, so they stay rendered off screen. */}\n <MessageScrollerItem messageId={traceId} className=\"[content-visibility:visible]\">\n {/* The row is the tabs root, so the tab list in the divider drives the messages column. */}\n <Tabs<string>\n defaultTab={THREAD_TRACE_MESSAGES_TAB}\n value={tab}\n onValueChange={setTab}\n data-slot=\"thread-trace-row\"\n className={cn(\n // `overflow-visible` overrides the tabs root scroll box so the messages column stays sticky.\n 'group flex flex-col overflow-visible pb-4',\n className,\n )}\n data-trace-id={traceId}\n data-active={isActive || undefined}\n {...props}\n >\n {children}\n </Tabs>\n </MessageScrollerItem>\n </ThreadTraceRowContext.Provider>\n );\n}\n\nexport type ThreadTraceRowBodyProps = ComponentProps<'div'>;\n\n/** The two columns of a row: the messages on the left and the details card on the right, each padded on x. */\nexport function ThreadTraceRowBody({ className, ...props }: ThreadTraceRowBodyProps) {\n return (\n <div\n data-slot=\"thread-trace-row-body\"\n className={cn('grid grid-cols-[minmax(0,1fr)_minmax(0,1fr)]', className)}\n {...props}\n />\n );\n}\n\nexport interface ThreadTraceDividerProps {\n /** Names the turn, e.g. `Turn 1`. Used as the accessible name; not shown. */\n label: string;\n /** Typically the row's `ThreadTrace.TabList`. */\n children?: ReactNode;\n}\n\n/**\n * The rule above a row: a full-width line, with its content (e.g. a trace link and tabs) centered over the messages\n * column only, so the line runs on uninterrupted above the details card.\n */\nexport function ThreadTraceDivider({ label, children }: ThreadTraceDividerProps) {\n return (\n <div data-slot=\"thread-trace-divider\" className=\"grid grid-cols-[minmax(0,1fr)_minmax(0,1fr)]\">\n <div className=\"min-w-0 pl-4\">\n <TranscriptDivider label={label} hideLabel>\n {children}\n </TranscriptDivider>\n </div>\n <div aria-hidden className=\"flex items-center pr-4\">\n <span className=\"h-px flex-1 bg-border\" />\n </div>\n </div>\n );\n}\n"],"names":["useThreadTrace","useMeasuredAutoHeight","useState","useCallback","useMemo","jsx","ThreadTraceRowContext","MessageScrollerItem","Tabs","cn","jsxs","TranscriptDivider"],"mappings":"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"}
@@ -1,8 +1,10 @@
1
- import { jsx } from 'react/jsx-runtime';
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
2
2
  import { useState, useCallback, useMemo } from 'react';
3
3
  import { useThreadTrace } from './thread-trace-context.es.js';
4
4
  import { ThreadTraceRowContext } from './thread-trace-row-context.es.js';
5
+ import { T as TranscriptDivider } from '../../../../transcript-divider-CPIo8NUj.js';
5
6
  import { c as MessageScrollerItem } from '../../../../message-scroller-CiFr8MwT.js';
7
+ import { T as Tabs } from '../../../../tabs-root-BbzhUZl4.js';
6
8
  import { useMeasuredAutoHeight } from '../../../../hooks/use-measured-auto-height.es.js';
7
9
  import { c as cn } from '../../../../cn-65Adrsfj.js';
8
10
 
@@ -72,13 +74,15 @@ function ThreadTraceRow({ traceId, className, children, ...props }) {
72
74
  ]
73
75
  );
74
76
  return /* @__PURE__ */ jsx(ThreadTraceRowContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx(MessageScrollerItem, { messageId: traceId, className: "[content-visibility:visible]", children: /* @__PURE__ */ jsx(
75
- "div",
77
+ Tabs,
76
78
  {
79
+ defaultTab: THREAD_TRACE_MESSAGES_TAB,
80
+ value: tab,
81
+ onValueChange: setTab,
77
82
  "data-slot": "thread-trace-row",
78
83
  className: cn(
79
- // Same fixed messages width as the trace panel; the details column takes the rest.
80
- "group grid grid-cols-[minmax(0,1fr)_minmax(0,1fr)] border-b border-border transition-opacity hover:opacity-100",
81
- isActive || isCurrent ? "opacity-100" : "opacity-50",
84
+ // `overflow-visible` overrides the tabs root scroll box so the messages column stays sticky.
85
+ "group flex flex-col overflow-visible pb-4",
82
86
  className
83
87
  ),
84
88
  "data-trace-id": traceId,
@@ -88,6 +92,22 @@ function ThreadTraceRow({ traceId, className, children, ...props }) {
88
92
  }
89
93
  ) }) });
90
94
  }
95
+ function ThreadTraceRowBody({ className, ...props }) {
96
+ return /* @__PURE__ */ jsx(
97
+ "div",
98
+ {
99
+ "data-slot": "thread-trace-row-body",
100
+ className: cn("grid grid-cols-[minmax(0,1fr)_minmax(0,1fr)]", className),
101
+ ...props
102
+ }
103
+ );
104
+ }
105
+ function ThreadTraceDivider({ label, children }) {
106
+ return /* @__PURE__ */ jsxs("div", { "data-slot": "thread-trace-divider", className: "grid grid-cols-[minmax(0,1fr)_minmax(0,1fr)]", children: [
107
+ /* @__PURE__ */ jsx("div", { className: "min-w-0 pl-4", children: /* @__PURE__ */ jsx(TranscriptDivider, { label, hideLabel: true, children }) }),
108
+ /* @__PURE__ */ jsx("div", { "aria-hidden": true, className: "flex items-center pr-4", children: /* @__PURE__ */ jsx("span", { className: "h-px flex-1 bg-border" }) })
109
+ ] });
110
+ }
91
111
 
92
- export { THREAD_TRACE_MESSAGES_TAB, ThreadTraceRow };
112
+ export { THREAD_TRACE_MESSAGES_TAB, ThreadTraceDivider, ThreadTraceRow, ThreadTraceRowBody };
93
113
  //# sourceMappingURL=thread-trace-row.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"thread-trace-row.es.js","sources":["../../../../../src/domains/traces/components/thread-trace/thread-trace-row.tsx"],"sourcesContent":["import { useCallback, useMemo, useState } from 'react';\nimport type { ComponentProps } from 'react';\n\nimport { useThreadTrace } from './thread-trace-context';\nimport { ThreadTraceRowContext } from './thread-trace-row-context';\nimport type { ThreadTraceRowContextValue } from './thread-trace-row-context';\nimport { MessageScrollerItem } from '@/ds/components/MessageScroller';\nimport { useMeasuredAutoHeight } from '@/hooks/use-measured-auto-height';\nimport { cn } from '@/lib/utils';\n\nexport const THREAD_TRACE_MESSAGES_TAB = 'messages';\n\nexport interface ThreadTraceRowProps extends ComponentProps<'div'> {\n traceId: string;\n}\n\n/**\n * One agent turn: the messages column on the left and the details column on the right. The whole\n * row is dimmed unless it is the first one in view, hovered, or its span is open in the side panel,\n * so the reader keeps track of which turn they are on without hovering.\n */\nexport function ThreadTraceRow({ traceId, className, children, ...props }: ThreadTraceRowProps) {\n const root = useThreadTrace();\n\n const selectedSpanId = root.selected?.traceId === traceId ? root.selected.spanId : undefined;\n const featuredSpanIds = root.highlight?.traceId === traceId ? root.highlight.spanIds : undefined;\n const revealSpanId = featuredSpanIds?.at(-1);\n const isActive = selectedSpanId !== undefined;\n const isCurrent = root.currentTraceId === traceId;\n const isExpanded = root.expandedTraceIds.has(traceId);\n\n // A long trace is clamped to the real height of its messages column (not a nominal row height),\n // so the timeline never dwarfs the turn it belongs to. The refs live here because the messages\n // and the timeline are sibling parts.\n const messages = useMeasuredAutoHeight<HTMLDivElement>();\n const timeline = useMeasuredAutoHeight<HTMLDivElement>();\n const detailsHeader = useMeasuredAutoHeight<HTMLDivElement>();\n\n // Which view the messages column shows (Messages / Feedback / Scores), one per row.\n const [tab, setTab] = useState<string>(THREAD_TRACE_MESSAGES_TAB);\n // The clamp budget is the height of the *Messages* view: a short Feedback or Scores view\n // must not squash the span tree next to it, so the last Messages height is kept while\n // another view is showing.\n const [messagesViewHeight, setMessagesViewHeight] = useState<number | null>(null);\n if (tab === THREAD_TRACE_MESSAGES_TAB && messages.height !== messagesViewHeight) {\n setMessagesViewHeight(messages.height);\n }\n\n const { highlightSpans: rootHighlightSpans, setTraceExpanded } = root;\n const highlightSpans = useCallback(\n (spanIds: string[]) => rootHighlightSpans(traceId, spanIds),\n [rootHighlightSpans, traceId],\n );\n const setExpanded = useCallback(\n (expanded: boolean) => setTraceExpanded(traceId, expanded),\n [setTraceExpanded, traceId],\n );\n\n const contextValue = useMemo<ThreadTraceRowContextValue>(\n () => ({\n traceId,\n isActive,\n isCurrent,\n isExpanded,\n selectedSpanId,\n featuredSpanIds,\n revealSpanId,\n highlightSpans,\n setExpanded,\n tab,\n setTab,\n messagesRef: messages.ref,\n timelineRef: timeline.ref,\n detailsHeaderRef: detailsHeader.ref,\n messagesHeight: messagesViewHeight,\n timelineHeight: timeline.height,\n detailsHeaderHeight: detailsHeader.height,\n }),\n [\n traceId,\n isActive,\n isCurrent,\n isExpanded,\n selectedSpanId,\n featuredSpanIds,\n revealSpanId,\n highlightSpans,\n setExpanded,\n tab,\n messages.ref,\n timeline.ref,\n detailsHeader.ref,\n messagesViewHeight,\n timeline.height,\n detailsHeader.height,\n ],\n );\n\n return (\n <ThreadTraceRowContext.Provider value={contextValue}>\n {/* Registers the row with the scroller so prepends of older turns keep the reading position.\n Rows measure their own columns, so they stay rendered off screen. */}\n <MessageScrollerItem messageId={traceId} className=\"[content-visibility:visible]\">\n <div\n data-slot=\"thread-trace-row\"\n className={cn(\n // Same fixed messages width as the trace panel; the details column takes the rest.\n 'group grid grid-cols-[minmax(0,1fr)_minmax(0,1fr)] border-b border-border transition-opacity hover:opacity-100',\n isActive || isCurrent ? 'opacity-100' : 'opacity-50',\n className,\n )}\n data-trace-id={traceId}\n data-active={isActive || undefined}\n {...props}\n >\n {children}\n </div>\n </MessageScrollerItem>\n </ThreadTraceRowContext.Provider>\n );\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"thread-trace-row.es.js","sources":["../../../../../src/domains/traces/components/thread-trace/thread-trace-row.tsx"],"sourcesContent":["import { useCallback, useMemo, useState } from 'react';\nimport type { ComponentProps, ReactNode } from 'react';\n\nimport { useThreadTrace } from './thread-trace-context';\nimport { ThreadTraceRowContext } from './thread-trace-row-context';\nimport type { ThreadTraceRowContextValue } from './thread-trace-row-context';\nimport { TranscriptDivider } from '@/ds/components/ai/transcript-divider';\nimport { MessageScrollerItem } from '@/ds/components/MessageScroller';\nimport { Tabs } from '@/ds/components/Tabs';\nimport { useMeasuredAutoHeight } from '@/hooks/use-measured-auto-height';\nimport { cn } from '@/lib/utils';\n\nexport const THREAD_TRACE_MESSAGES_TAB = 'messages';\n\nexport interface ThreadTraceRowProps extends ComponentProps<'div'> {\n traceId: string;\n}\n\n/**\n * One agent turn: a `ThreadTrace.Divider` (turn label + tabs) above a `ThreadTrace.RowBody` holding\n * the messages column on the left and the details card on the right. The whole\n * row is dimmed unless it is the first one in view, hovered, or its span is open in the side panel,\n * so the reader keeps track of which turn they are on without hovering.\n */\nexport function ThreadTraceRow({ traceId, className, children, ...props }: ThreadTraceRowProps) {\n const root = useThreadTrace();\n\n const selectedSpanId = root.selected?.traceId === traceId ? root.selected.spanId : undefined;\n const featuredSpanIds = root.highlight?.traceId === traceId ? root.highlight.spanIds : undefined;\n const revealSpanId = featuredSpanIds?.at(-1);\n const isActive = selectedSpanId !== undefined;\n const isCurrent = root.currentTraceId === traceId;\n const isExpanded = root.expandedTraceIds.has(traceId);\n\n // A long trace is clamped to the real height of its messages column (not a nominal row height),\n // so the timeline never dwarfs the turn it belongs to. The refs live here because the messages\n // and the timeline are sibling parts.\n const messages = useMeasuredAutoHeight<HTMLDivElement>();\n const timeline = useMeasuredAutoHeight<HTMLDivElement>();\n const detailsHeader = useMeasuredAutoHeight<HTMLDivElement>();\n\n // Which view the messages column shows (Messages / Feedback / Scores), one per row.\n const [tab, setTab] = useState<string>(THREAD_TRACE_MESSAGES_TAB);\n // The clamp budget is the height of the *Messages* view: a short Feedback or Scores view\n // must not squash the span tree next to it, so the last Messages height is kept while\n // another view is showing.\n const [messagesViewHeight, setMessagesViewHeight] = useState<number | null>(null);\n if (tab === THREAD_TRACE_MESSAGES_TAB && messages.height !== messagesViewHeight) {\n setMessagesViewHeight(messages.height);\n }\n\n const { highlightSpans: rootHighlightSpans, setTraceExpanded } = root;\n const highlightSpans = useCallback(\n (spanIds: string[]) => rootHighlightSpans(traceId, spanIds),\n [rootHighlightSpans, traceId],\n );\n const setExpanded = useCallback(\n (expanded: boolean) => setTraceExpanded(traceId, expanded),\n [setTraceExpanded, traceId],\n );\n\n const contextValue = useMemo<ThreadTraceRowContextValue>(\n () => ({\n traceId,\n isActive,\n isCurrent,\n isExpanded,\n selectedSpanId,\n featuredSpanIds,\n revealSpanId,\n highlightSpans,\n setExpanded,\n tab,\n setTab,\n messagesRef: messages.ref,\n timelineRef: timeline.ref,\n detailsHeaderRef: detailsHeader.ref,\n messagesHeight: messagesViewHeight,\n timelineHeight: timeline.height,\n detailsHeaderHeight: detailsHeader.height,\n }),\n [\n traceId,\n isActive,\n isCurrent,\n isExpanded,\n selectedSpanId,\n featuredSpanIds,\n revealSpanId,\n highlightSpans,\n setExpanded,\n tab,\n messages.ref,\n timeline.ref,\n detailsHeader.ref,\n messagesViewHeight,\n timeline.height,\n detailsHeader.height,\n ],\n );\n\n return (\n <ThreadTraceRowContext.Provider value={contextValue}>\n {/* Registers the row with the scroller so prepends of older turns keep the reading position.\n Rows measure their own columns, so they stay rendered off screen. */}\n <MessageScrollerItem messageId={traceId} className=\"[content-visibility:visible]\">\n {/* The row is the tabs root, so the tab list in the divider drives the messages column. */}\n <Tabs<string>\n defaultTab={THREAD_TRACE_MESSAGES_TAB}\n value={tab}\n onValueChange={setTab}\n data-slot=\"thread-trace-row\"\n className={cn(\n // `overflow-visible` overrides the tabs root scroll box so the messages column stays sticky.\n 'group flex flex-col overflow-visible pb-4',\n className,\n )}\n data-trace-id={traceId}\n data-active={isActive || undefined}\n {...props}\n >\n {children}\n </Tabs>\n </MessageScrollerItem>\n </ThreadTraceRowContext.Provider>\n );\n}\n\nexport type ThreadTraceRowBodyProps = ComponentProps<'div'>;\n\n/** The two columns of a row: the messages on the left and the details card on the right, each padded on x. */\nexport function ThreadTraceRowBody({ className, ...props }: ThreadTraceRowBodyProps) {\n return (\n <div\n data-slot=\"thread-trace-row-body\"\n className={cn('grid grid-cols-[minmax(0,1fr)_minmax(0,1fr)]', className)}\n {...props}\n />\n );\n}\n\nexport interface ThreadTraceDividerProps {\n /** Names the turn, e.g. `Turn 1`. Used as the accessible name; not shown. */\n label: string;\n /** Typically the row's `ThreadTrace.TabList`. */\n children?: ReactNode;\n}\n\n/**\n * The rule above a row: a full-width line, with its content (e.g. a trace link and tabs) centered over the messages\n * column only, so the line runs on uninterrupted above the details card.\n */\nexport function ThreadTraceDivider({ label, children }: ThreadTraceDividerProps) {\n return (\n <div data-slot=\"thread-trace-divider\" className=\"grid grid-cols-[minmax(0,1fr)_minmax(0,1fr)]\">\n <div className=\"min-w-0 pl-4\">\n <TranscriptDivider label={label} hideLabel>\n {children}\n </TranscriptDivider>\n </div>\n <div aria-hidden className=\"flex items-center pr-4\">\n <span className=\"h-px flex-1 bg-border\" />\n </div>\n </div>\n );\n}\n"],"names":[],"mappings":"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"}
@@ -3,38 +3,42 @@
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
5
  const jsxRuntime = require('react/jsx-runtime');
6
+ const reactResizablePanels = require('react-resizable-panels');
6
7
  const domains_traces_hooks_useSpanDetail = require('../../hooks/use-span-detail.cjs.js');
7
8
  const domains_traces_hooks_useTraceSpanNavigation = require('../../hooks/use-trace-span-navigation.cjs.js');
8
9
  const domains_traces_hooks_useTraceSpans = require('../../hooks/use-trace-spans.cjs.js');
9
10
  const domains_traces_components_spanDataPanelView = require('../span-data-panel-view.cjs.js');
10
11
  const domains_traces_components_threadTrace_threadTraceContext = require('./thread-trace-context.cjs.js');
12
+ const resize_separator = require('../../../../resize/separator.cjs.js');
11
13
  const utils_cn = require('../../../../cn-DG0X1KEP.cjs');
12
14
 
13
15
  function ThreadTraceSpanPanel({ className, panelClassName, ...props }) {
14
16
  const { selected } = domains_traces_components_threadTrace_threadTraceContext.useThreadTrace();
15
- return /* @__PURE__ */ jsxRuntime.jsx(
16
- "div",
17
- {
18
- "data-slot": "thread-trace-span-panel",
19
- className: utils_cn.cn(
20
- // Same chrome as the span column of the trace panel: flush to the edge, divided by a left border.
21
- "flex min-h-0 min-w-0 flex-col overflow-hidden",
22
- selected && "animate-in border-l border-border duration-300 fade-in-0",
23
- className
24
- ),
25
- ...props,
26
- children: selected && // Keyed by trace only: the panel's queries already follow `spanId`, so prev/next keep the DOM.
27
- /* @__PURE__ */ jsxRuntime.jsx(
28
- SelectedSpanPanel,
29
- {
30
- traceId: selected.traceId,
31
- spanId: selected.spanId,
32
- panelClassName
33
- },
34
- selected.traceId
35
- )
36
- }
37
- );
17
+ if (!selected) return null;
18
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
19
+ /* @__PURE__ */ jsxRuntime.jsx(resize_separator.PanelSeparator, { variant: "pill" }),
20
+ /* @__PURE__ */ jsxRuntime.jsx(reactResizablePanels.Panel, { id: "thread-trace-span", minSize: 320, defaultSize: "35%", maxSize: "50%", children: /* @__PURE__ */ jsxRuntime.jsx(
21
+ "div",
22
+ {
23
+ "data-slot": "thread-trace-span-panel",
24
+ className: utils_cn.cn(
25
+ // Same chrome as the span column of the trace panel: flush to the edge, divided by a left border.
26
+ "flex h-full min-h-0 min-w-0 animate-in flex-col overflow-hidden border-l border-border duration-300 fade-in-0",
27
+ className
28
+ ),
29
+ ...props,
30
+ children: /* @__PURE__ */ jsxRuntime.jsx(
31
+ SelectedSpanPanel,
32
+ {
33
+ traceId: selected.traceId,
34
+ spanId: selected.spanId,
35
+ panelClassName
36
+ },
37
+ selected.traceId
38
+ )
39
+ }
40
+ ) })
41
+ ] });
38
42
  }
39
43
  function SelectedSpanPanel({ traceId, spanId, panelClassName }) {
40
44
  const { selectSpan } = domains_traces_components_threadTrace_threadTraceContext.useThreadTrace();
@@ -51,7 +55,8 @@ function SelectedSpanPanel({ traceId, spanId, panelClassName }) {
51
55
  span: spanDetailData?.span,
52
56
  isLoading,
53
57
  onPrevious: handlePreviousSpan,
54
- onNext: handleNextSpan
58
+ onNext: handleNextSpan,
59
+ onClose: () => selectSpan(traceId, void 0)
55
60
  }
56
61
  );
57
62
  }
@@ -1 +1 @@
1
- {"version":3,"file":"thread-trace-span-panel.cjs.js","sources":["../../../../../src/domains/traces/components/thread-trace/thread-trace-span-panel.tsx"],"sourcesContent":["import type { ComponentProps } from 'react';\n\nimport { useSpanDetail } from '../../hooks/use-span-detail';\nimport { useTraceSpanNavigation } from '../../hooks/use-trace-span-navigation';\nimport { useTraceSpans } from '../../hooks/use-trace-spans';\nimport { SpanDataPanelView } from '../span-data-panel-view';\nimport { useThreadTrace } from './thread-trace-context';\nimport { cn } from '@/lib/utils';\n\nexport interface ThreadTraceSpanPanelProps extends Omit<ComponentProps<'div'>, 'children'> {\n panelClassName?: string;\n}\n\n/**\n * The side panel with the selected span's detail. The cell stays mounted (empty) while no span\n * is selected so the root grid can animate its column open and closed.\n */\nexport function ThreadTraceSpanPanel({ className, panelClassName, ...props }: ThreadTraceSpanPanelProps) {\n const { selected } = useThreadTrace();\n return (\n <div\n data-slot=\"thread-trace-span-panel\"\n className={cn(\n // Same chrome as the span column of the trace panel: flush to the edge, divided by a left border.\n 'flex min-h-0 min-w-0 flex-col overflow-hidden',\n selected && 'animate-in border-l border-border duration-300 fade-in-0',\n className,\n )}\n {...props}\n >\n {selected && (\n // Keyed by trace only: the panel's queries already follow `spanId`, so prev/next keep the DOM.\n <SelectedSpanPanel\n key={selected.traceId}\n traceId={selected.traceId}\n spanId={selected.spanId}\n panelClassName={panelClassName}\n />\n )}\n </div>\n );\n}\n\ninterface SelectedSpanPanelProps {\n traceId: string;\n spanId: string;\n panelClassName?: string;\n}\n\nfunction SelectedSpanPanel({ traceId, spanId, panelClassName }: SelectedSpanPanelProps) {\n const { selectSpan } = useThreadTrace();\n const onSpanSelect = (nextSpanId: string | undefined) => selectSpan(traceId, nextSpanId);\n const { data: spanDetailData, isLoading } = useSpanDetail(traceId, spanId);\n const { data: traceData } = useTraceSpans(traceId);\n const { handlePreviousSpan, handleNextSpan } = useTraceSpanNavigation(traceData?.spans, spanId, onSpanSelect);\n\n return (\n <SpanDataPanelView\n className={panelClassName}\n traceId={traceId}\n spanId={spanId}\n span={spanDetailData?.span}\n isLoading={isLoading}\n onPrevious={handlePreviousSpan}\n onNext={handleNextSpan}\n />\n );\n}\n"],"names":["useThreadTrace","jsx","cn","useSpanDetail","useTraceSpans","useTraceSpanNavigation","SpanDataPanelView"],"mappings":";;;;;;;;;;;;AAiBO,SAAS,qBAAqB,EAAE,SAAA,EAAW,cAAA,EAAgB,GAAG,OAAM,EAA8B;AACvG,EAAA,MAAM,EAAE,QAAA,EAAS,GAAIA,uEAAA,EAAe;AACpC,EAAA,uBACEC,cAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,yBAAA;AAAA,MACV,SAAA,EAAWC,WAAA;AAAA;AAAA,QAET,+CAAA;AAAA,QACA,QAAA,IAAY,0DAAA;AAAA,QACZ;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEH,QAAA,EAAA,QAAA;AAAA,sBAECD,cAAA;AAAA,QAAC,iBAAA;AAAA,QAAA;AAAA,UAEC,SAAS,QAAA,CAAS,OAAA;AAAA,UAClB,QAAQ,QAAA,CAAS,MAAA;AAAA,UACjB;AAAA,SAAA;AAAA,QAHK,QAAA,CAAS;AAAA;AAIhB;AAAA,GAEJ;AAEJ;AAQA,SAAS,iBAAA,CAAkB,EAAE,OAAA,EAAS,MAAA,EAAQ,gBAAe,EAA2B;AACtF,EAAA,MAAM,EAAE,UAAA,EAAW,GAAID,uEAAA,EAAe;AACtC,EAAA,MAAM,YAAA,GAAe,CAAC,UAAA,KAAmC,UAAA,CAAW,SAAS,UAAU,CAAA;AACvF,EAAA,MAAM,EAAE,IAAA,EAAM,cAAA,EAAgB,WAAU,GAAIG,gDAAA,CAAc,SAAS,MAAM,CAAA;AACzE,EAAA,MAAM,EAAE,IAAA,EAAM,SAAA,EAAU,GAAIC,iDAAc,OAAO,CAAA;AACjD,EAAA,MAAM,EAAE,oBAAoB,cAAA,EAAe,GAAIC,mEAAuB,SAAA,EAAW,KAAA,EAAO,QAAQ,YAAY,CAAA;AAE5G,EAAA,uBACEJ,cAAA;AAAA,IAACK,6DAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,cAAA;AAAA,MACX,OAAA;AAAA,MACA,MAAA;AAAA,MACA,MAAM,cAAA,EAAgB,IAAA;AAAA,MACtB,SAAA;AAAA,MACA,UAAA,EAAY,kBAAA;AAAA,MACZ,MAAA,EAAQ;AAAA;AAAA,GACV;AAEJ;;;;"}
1
+ {"version":3,"file":"thread-trace-span-panel.cjs.js","sources":["../../../../../src/domains/traces/components/thread-trace/thread-trace-span-panel.tsx"],"sourcesContent":["import type { ComponentProps } from 'react';\nimport { Panel } from 'react-resizable-panels';\n\nimport { useSpanDetail } from '../../hooks/use-span-detail';\nimport { useTraceSpanNavigation } from '../../hooks/use-trace-span-navigation';\nimport { useTraceSpans } from '../../hooks/use-trace-spans';\nimport { SpanDataPanelView } from '../span-data-panel-view';\nimport { useThreadTrace } from './thread-trace-context';\nimport { PanelSeparator } from '@/lib/resize/separator';\nimport { cn } from '@/lib/utils';\n\nexport interface ThreadTraceSpanPanelProps extends Omit<ComponentProps<'div'>, 'children'> {\n panelClassName?: string;\n}\n\n/**\n * The resizable side column with the selected span's detail; rendered only while a\n * span is selected.\n */\nexport function ThreadTraceSpanPanel({ className, panelClassName, ...props }: ThreadTraceSpanPanelProps) {\n const { selected } = useThreadTrace();\n if (!selected) return null;\n return (\n <>\n <PanelSeparator variant=\"pill\" />\n <Panel id=\"thread-trace-span\" minSize={320} defaultSize=\"35%\" maxSize=\"50%\">\n <div\n data-slot=\"thread-trace-span-panel\"\n className={cn(\n // Same chrome as the span column of the trace panel: flush to the edge, divided by a left border.\n 'flex h-full min-h-0 min-w-0 animate-in flex-col overflow-hidden border-l border-border duration-300 fade-in-0',\n className,\n )}\n {...props}\n >\n {/* Keyed by trace only: the panel's queries already follow `spanId`, so prev/next keep the DOM. */}\n <SelectedSpanPanel\n key={selected.traceId}\n traceId={selected.traceId}\n spanId={selected.spanId}\n panelClassName={panelClassName}\n />\n </div>\n </Panel>\n </>\n );\n}\n\ninterface SelectedSpanPanelProps {\n traceId: string;\n spanId: string;\n panelClassName?: string;\n}\n\nfunction SelectedSpanPanel({ traceId, spanId, panelClassName }: SelectedSpanPanelProps) {\n const { selectSpan } = useThreadTrace();\n const onSpanSelect = (nextSpanId: string | undefined) => selectSpan(traceId, nextSpanId);\n const { data: spanDetailData, isLoading } = useSpanDetail(traceId, spanId);\n const { data: traceData } = useTraceSpans(traceId);\n const { handlePreviousSpan, handleNextSpan } = useTraceSpanNavigation(traceData?.spans, spanId, onSpanSelect);\n\n return (\n <SpanDataPanelView\n className={panelClassName}\n traceId={traceId}\n spanId={spanId}\n span={spanDetailData?.span}\n isLoading={isLoading}\n onPrevious={handlePreviousSpan}\n onNext={handleNextSpan}\n onClose={() => selectSpan(traceId, undefined)}\n />\n );\n}\n"],"names":["useThreadTrace","jsxs","Fragment","jsx","PanelSeparator","Panel","cn","useSpanDetail","useTraceSpans","useTraceSpanNavigation","SpanDataPanelView"],"mappings":";;;;;;;;;;;;;;AAmBO,SAAS,qBAAqB,EAAE,SAAA,EAAW,cAAA,EAAgB,GAAG,OAAM,EAA8B;AACvG,EAAA,MAAM,EAAE,QAAA,EAAS,GAAIA,uEAAA,EAAe;AACpC,EAAA,IAAI,CAAC,UAAU,OAAO,IAAA;AACtB,EAAA,uBACEC,eAAA,CAAAC,mBAAA,EAAA,EACE,QAAA,EAAA;AAAA,oBAAAC,cAAA,CAACC,+BAAA,EAAA,EAAe,SAAQ,MAAA,EAAO,CAAA;AAAA,oBAC/BD,cAAA,CAACE,8BAAM,EAAA,EAAG,mBAAA,EAAoB,SAAS,GAAA,EAAK,WAAA,EAAY,KAAA,EAAM,OAAA,EAAQ,KAAA,EACpE,QAAA,kBAAAF,cAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,WAAA,EAAU,yBAAA;AAAA,QACV,SAAA,EAAWG,WAAA;AAAA;AAAA,UAET,+GAAA;AAAA,UACA;AAAA,SACF;AAAA,QACC,GAAG,KAAA;AAAA,QAGJ,QAAA,kBAAAH,cAAA;AAAA,UAAC,iBAAA;AAAA,UAAA;AAAA,YAEC,SAAS,QAAA,CAAS,OAAA;AAAA,YAClB,QAAQ,QAAA,CAAS,MAAA;AAAA,YACjB;AAAA,WAAA;AAAA,UAHK,QAAA,CAAS;AAAA;AAIhB;AAAA,KACF,EACF;AAAA,GAAA,EACF,CAAA;AAEJ;AAQA,SAAS,iBAAA,CAAkB,EAAE,OAAA,EAAS,MAAA,EAAQ,gBAAe,EAA2B;AACtF,EAAA,MAAM,EAAE,UAAA,EAAW,GAAIH,uEAAA,EAAe;AACtC,EAAA,MAAM,YAAA,GAAe,CAAC,UAAA,KAAmC,UAAA,CAAW,SAAS,UAAU,CAAA;AACvF,EAAA,MAAM,EAAE,IAAA,EAAM,cAAA,EAAgB,WAAU,GAAIO,gDAAA,CAAc,SAAS,MAAM,CAAA;AACzE,EAAA,MAAM,EAAE,IAAA,EAAM,SAAA,EAAU,GAAIC,iDAAc,OAAO,CAAA;AACjD,EAAA,MAAM,EAAE,oBAAoB,cAAA,EAAe,GAAIC,mEAAuB,SAAA,EAAW,KAAA,EAAO,QAAQ,YAAY,CAAA;AAE5G,EAAA,uBACEN,cAAA;AAAA,IAACO,6DAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,cAAA;AAAA,MACX,OAAA;AAAA,MACA,MAAA;AAAA,MACA,MAAM,cAAA,EAAgB,IAAA;AAAA,MACtB,SAAA;AAAA,MACA,UAAA,EAAY,kBAAA;AAAA,MACZ,MAAA,EAAQ,cAAA;AAAA,MACR,OAAA,EAAS,MAAM,UAAA,CAAW,OAAA,EAAS,MAAS;AAAA;AAAA,GAC9C;AAEJ;;;;"}
@@ -1,36 +1,40 @@
1
- import { jsx } from 'react/jsx-runtime';
1
+ import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
2
+ import { Panel } from 'react-resizable-panels';
2
3
  import { useSpanDetail } from '../../hooks/use-span-detail.es.js';
3
4
  import { useTraceSpanNavigation } from '../../hooks/use-trace-span-navigation.es.js';
4
5
  import { useTraceSpans } from '../../hooks/use-trace-spans.es.js';
5
6
  import { SpanDataPanelView } from '../span-data-panel-view.es.js';
6
7
  import { useThreadTrace } from './thread-trace-context.es.js';
8
+ import { PanelSeparator } from '../../../../resize/separator.es.js';
7
9
  import { c as cn } from '../../../../cn-65Adrsfj.js';
8
10
 
9
11
  function ThreadTraceSpanPanel({ className, panelClassName, ...props }) {
10
12
  const { selected } = useThreadTrace();
11
- return /* @__PURE__ */ jsx(
12
- "div",
13
- {
14
- "data-slot": "thread-trace-span-panel",
15
- className: cn(
16
- // Same chrome as the span column of the trace panel: flush to the edge, divided by a left border.
17
- "flex min-h-0 min-w-0 flex-col overflow-hidden",
18
- selected && "animate-in border-l border-border duration-300 fade-in-0",
19
- className
20
- ),
21
- ...props,
22
- children: selected && // Keyed by trace only: the panel's queries already follow `spanId`, so prev/next keep the DOM.
23
- /* @__PURE__ */ jsx(
24
- SelectedSpanPanel,
25
- {
26
- traceId: selected.traceId,
27
- spanId: selected.spanId,
28
- panelClassName
29
- },
30
- selected.traceId
31
- )
32
- }
33
- );
13
+ if (!selected) return null;
14
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
15
+ /* @__PURE__ */ jsx(PanelSeparator, { variant: "pill" }),
16
+ /* @__PURE__ */ jsx(Panel, { id: "thread-trace-span", minSize: 320, defaultSize: "35%", maxSize: "50%", children: /* @__PURE__ */ jsx(
17
+ "div",
18
+ {
19
+ "data-slot": "thread-trace-span-panel",
20
+ className: cn(
21
+ // Same chrome as the span column of the trace panel: flush to the edge, divided by a left border.
22
+ "flex h-full min-h-0 min-w-0 animate-in flex-col overflow-hidden border-l border-border duration-300 fade-in-0",
23
+ className
24
+ ),
25
+ ...props,
26
+ children: /* @__PURE__ */ jsx(
27
+ SelectedSpanPanel,
28
+ {
29
+ traceId: selected.traceId,
30
+ spanId: selected.spanId,
31
+ panelClassName
32
+ },
33
+ selected.traceId
34
+ )
35
+ }
36
+ ) })
37
+ ] });
34
38
  }
35
39
  function SelectedSpanPanel({ traceId, spanId, panelClassName }) {
36
40
  const { selectSpan } = useThreadTrace();
@@ -47,7 +51,8 @@ function SelectedSpanPanel({ traceId, spanId, panelClassName }) {
47
51
  span: spanDetailData?.span,
48
52
  isLoading,
49
53
  onPrevious: handlePreviousSpan,
50
- onNext: handleNextSpan
54
+ onNext: handleNextSpan,
55
+ onClose: () => selectSpan(traceId, void 0)
51
56
  }
52
57
  );
53
58
  }
@@ -1 +1 @@
1
- {"version":3,"file":"thread-trace-span-panel.es.js","sources":["../../../../../src/domains/traces/components/thread-trace/thread-trace-span-panel.tsx"],"sourcesContent":["import type { ComponentProps } from 'react';\n\nimport { useSpanDetail } from '../../hooks/use-span-detail';\nimport { useTraceSpanNavigation } from '../../hooks/use-trace-span-navigation';\nimport { useTraceSpans } from '../../hooks/use-trace-spans';\nimport { SpanDataPanelView } from '../span-data-panel-view';\nimport { useThreadTrace } from './thread-trace-context';\nimport { cn } from '@/lib/utils';\n\nexport interface ThreadTraceSpanPanelProps extends Omit<ComponentProps<'div'>, 'children'> {\n panelClassName?: string;\n}\n\n/**\n * The side panel with the selected span's detail. The cell stays mounted (empty) while no span\n * is selected so the root grid can animate its column open and closed.\n */\nexport function ThreadTraceSpanPanel({ className, panelClassName, ...props }: ThreadTraceSpanPanelProps) {\n const { selected } = useThreadTrace();\n return (\n <div\n data-slot=\"thread-trace-span-panel\"\n className={cn(\n // Same chrome as the span column of the trace panel: flush to the edge, divided by a left border.\n 'flex min-h-0 min-w-0 flex-col overflow-hidden',\n selected && 'animate-in border-l border-border duration-300 fade-in-0',\n className,\n )}\n {...props}\n >\n {selected && (\n // Keyed by trace only: the panel's queries already follow `spanId`, so prev/next keep the DOM.\n <SelectedSpanPanel\n key={selected.traceId}\n traceId={selected.traceId}\n spanId={selected.spanId}\n panelClassName={panelClassName}\n />\n )}\n </div>\n );\n}\n\ninterface SelectedSpanPanelProps {\n traceId: string;\n spanId: string;\n panelClassName?: string;\n}\n\nfunction SelectedSpanPanel({ traceId, spanId, panelClassName }: SelectedSpanPanelProps) {\n const { selectSpan } = useThreadTrace();\n const onSpanSelect = (nextSpanId: string | undefined) => selectSpan(traceId, nextSpanId);\n const { data: spanDetailData, isLoading } = useSpanDetail(traceId, spanId);\n const { data: traceData } = useTraceSpans(traceId);\n const { handlePreviousSpan, handleNextSpan } = useTraceSpanNavigation(traceData?.spans, spanId, onSpanSelect);\n\n return (\n <SpanDataPanelView\n className={panelClassName}\n traceId={traceId}\n spanId={spanId}\n span={spanDetailData?.span}\n isLoading={isLoading}\n onPrevious={handlePreviousSpan}\n onNext={handleNextSpan}\n />\n );\n}\n"],"names":[],"mappings":";;;;;;;;AAiBO,SAAS,qBAAqB,EAAE,SAAA,EAAW,cAAA,EAAgB,GAAG,OAAM,EAA8B;AACvG,EAAA,MAAM,EAAE,QAAA,EAAS,GAAI,cAAA,EAAe;AACpC,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,yBAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA;AAAA,QAET,+CAAA;AAAA,QACA,QAAA,IAAY,0DAAA;AAAA,QACZ;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEH,QAAA,EAAA,QAAA;AAAA,sBAEC,GAAA;AAAA,QAAC,iBAAA;AAAA,QAAA;AAAA,UAEC,SAAS,QAAA,CAAS,OAAA;AAAA,UAClB,QAAQ,QAAA,CAAS,MAAA;AAAA,UACjB;AAAA,SAAA;AAAA,QAHK,QAAA,CAAS;AAAA;AAIhB;AAAA,GAEJ;AAEJ;AAQA,SAAS,iBAAA,CAAkB,EAAE,OAAA,EAAS,MAAA,EAAQ,gBAAe,EAA2B;AACtF,EAAA,MAAM,EAAE,UAAA,EAAW,GAAI,cAAA,EAAe;AACtC,EAAA,MAAM,YAAA,GAAe,CAAC,UAAA,KAAmC,UAAA,CAAW,SAAS,UAAU,CAAA;AACvF,EAAA,MAAM,EAAE,IAAA,EAAM,cAAA,EAAgB,WAAU,GAAI,aAAA,CAAc,SAAS,MAAM,CAAA;AACzE,EAAA,MAAM,EAAE,IAAA,EAAM,SAAA,EAAU,GAAI,cAAc,OAAO,CAAA;AACjD,EAAA,MAAM,EAAE,oBAAoB,cAAA,EAAe,GAAI,uBAAuB,SAAA,EAAW,KAAA,EAAO,QAAQ,YAAY,CAAA;AAE5G,EAAA,uBACE,GAAA;AAAA,IAAC,iBAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,cAAA;AAAA,MACX,OAAA;AAAA,MACA,MAAA;AAAA,MACA,MAAM,cAAA,EAAgB,IAAA;AAAA,MACtB,SAAA;AAAA,MACA,UAAA,EAAY,kBAAA;AAAA,MACZ,MAAA,EAAQ;AAAA;AAAA,GACV;AAEJ;;;;"}
1
+ {"version":3,"file":"thread-trace-span-panel.es.js","sources":["../../../../../src/domains/traces/components/thread-trace/thread-trace-span-panel.tsx"],"sourcesContent":["import type { ComponentProps } from 'react';\nimport { Panel } from 'react-resizable-panels';\n\nimport { useSpanDetail } from '../../hooks/use-span-detail';\nimport { useTraceSpanNavigation } from '../../hooks/use-trace-span-navigation';\nimport { useTraceSpans } from '../../hooks/use-trace-spans';\nimport { SpanDataPanelView } from '../span-data-panel-view';\nimport { useThreadTrace } from './thread-trace-context';\nimport { PanelSeparator } from '@/lib/resize/separator';\nimport { cn } from '@/lib/utils';\n\nexport interface ThreadTraceSpanPanelProps extends Omit<ComponentProps<'div'>, 'children'> {\n panelClassName?: string;\n}\n\n/**\n * The resizable side column with the selected span's detail; rendered only while a\n * span is selected.\n */\nexport function ThreadTraceSpanPanel({ className, panelClassName, ...props }: ThreadTraceSpanPanelProps) {\n const { selected } = useThreadTrace();\n if (!selected) return null;\n return (\n <>\n <PanelSeparator variant=\"pill\" />\n <Panel id=\"thread-trace-span\" minSize={320} defaultSize=\"35%\" maxSize=\"50%\">\n <div\n data-slot=\"thread-trace-span-panel\"\n className={cn(\n // Same chrome as the span column of the trace panel: flush to the edge, divided by a left border.\n 'flex h-full min-h-0 min-w-0 animate-in flex-col overflow-hidden border-l border-border duration-300 fade-in-0',\n className,\n )}\n {...props}\n >\n {/* Keyed by trace only: the panel's queries already follow `spanId`, so prev/next keep the DOM. */}\n <SelectedSpanPanel\n key={selected.traceId}\n traceId={selected.traceId}\n spanId={selected.spanId}\n panelClassName={panelClassName}\n />\n </div>\n </Panel>\n </>\n );\n}\n\ninterface SelectedSpanPanelProps {\n traceId: string;\n spanId: string;\n panelClassName?: string;\n}\n\nfunction SelectedSpanPanel({ traceId, spanId, panelClassName }: SelectedSpanPanelProps) {\n const { selectSpan } = useThreadTrace();\n const onSpanSelect = (nextSpanId: string | undefined) => selectSpan(traceId, nextSpanId);\n const { data: spanDetailData, isLoading } = useSpanDetail(traceId, spanId);\n const { data: traceData } = useTraceSpans(traceId);\n const { handlePreviousSpan, handleNextSpan } = useTraceSpanNavigation(traceData?.spans, spanId, onSpanSelect);\n\n return (\n <SpanDataPanelView\n className={panelClassName}\n traceId={traceId}\n spanId={spanId}\n span={spanDetailData?.span}\n isLoading={isLoading}\n onPrevious={handlePreviousSpan}\n onNext={handleNextSpan}\n onClose={() => selectSpan(traceId, undefined)}\n />\n );\n}\n"],"names":[],"mappings":";;;;;;;;;;AAmBO,SAAS,qBAAqB,EAAE,SAAA,EAAW,cAAA,EAAgB,GAAG,OAAM,EAA8B;AACvG,EAAA,MAAM,EAAE,QAAA,EAAS,GAAI,cAAA,EAAe;AACpC,EAAA,IAAI,CAAC,UAAU,OAAO,IAAA;AACtB,EAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,cAAA,EAAA,EAAe,SAAQ,MAAA,EAAO,CAAA;AAAA,oBAC/B,GAAA,CAAC,SAAM,EAAA,EAAG,mBAAA,EAAoB,SAAS,GAAA,EAAK,WAAA,EAAY,KAAA,EAAM,OAAA,EAAQ,KAAA,EACpE,QAAA,kBAAA,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,WAAA,EAAU,yBAAA;AAAA,QACV,SAAA,EAAW,EAAA;AAAA;AAAA,UAET,+GAAA;AAAA,UACA;AAAA,SACF;AAAA,QACC,GAAG,KAAA;AAAA,QAGJ,QAAA,kBAAA,GAAA;AAAA,UAAC,iBAAA;AAAA,UAAA;AAAA,YAEC,SAAS,QAAA,CAAS,OAAA;AAAA,YAClB,QAAQ,QAAA,CAAS,MAAA;AAAA,YACjB;AAAA,WAAA;AAAA,UAHK,QAAA,CAAS;AAAA;AAIhB;AAAA,KACF,EACF;AAAA,GAAA,EACF,CAAA;AAEJ;AAQA,SAAS,iBAAA,CAAkB,EAAE,OAAA,EAAS,MAAA,EAAQ,gBAAe,EAA2B;AACtF,EAAA,MAAM,EAAE,UAAA,EAAW,GAAI,cAAA,EAAe;AACtC,EAAA,MAAM,YAAA,GAAe,CAAC,UAAA,KAAmC,UAAA,CAAW,SAAS,UAAU,CAAA;AACvF,EAAA,MAAM,EAAE,IAAA,EAAM,cAAA,EAAgB,WAAU,GAAI,aAAA,CAAc,SAAS,MAAM,CAAA;AACzE,EAAA,MAAM,EAAE,IAAA,EAAM,SAAA,EAAU,GAAI,cAAc,OAAO,CAAA;AACjD,EAAA,MAAM,EAAE,oBAAoB,cAAA,EAAe,GAAI,uBAAuB,SAAA,EAAW,KAAA,EAAO,QAAQ,YAAY,CAAA;AAE5G,EAAA,uBACE,GAAA;AAAA,IAAC,iBAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,cAAA;AAAA,MACX,OAAA;AAAA,MACA,MAAA;AAAA,MACA,MAAM,cAAA,EAAgB,IAAA;AAAA,MACtB,SAAA;AAAA,MACA,UAAA,EAAY,kBAAA;AAAA,MACZ,MAAA,EAAQ,cAAA;AAAA,MACR,OAAA,EAAS,MAAM,UAAA,CAAW,OAAA,EAAS,MAAS;AAAA;AAAA,GAC9C;AAEJ;;;;"}