@mastra/playground-ui 58.0.0 → 59.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 (691) hide show
  1. package/README.md +62 -0
  2. package/dist/{Badge-TD55_qZJ.js → Badge-Bzn8Z-_I.js} +2 -2
  3. package/dist/Badge-Bzn8Z-_I.js.map +1 -0
  4. package/dist/{Badge-BEeYtjmv.cjs → Badge-DFNxcz-r.cjs} +2 -2
  5. package/dist/Badge-DFNxcz-r.cjs.map +1 -0
  6. package/dist/{Header-BVnFQlzE.js → Header-hTHhO02b.js} +2 -2
  7. package/dist/{Header-BVnFQlzE.js.map → Header-hTHhO02b.js.map} +1 -1
  8. package/dist/{Header-CGjhJ0nQ.cjs → Header-y51Sfo3G.cjs} +2 -2
  9. package/dist/{Header-CGjhJ0nQ.cjs.map → Header-y51Sfo3G.cjs.map} +1 -1
  10. package/dist/{Txt-DTh3Pa_a.js → Txt-BP1SRHmL.js} +4 -10
  11. package/dist/Txt-BP1SRHmL.js.map +1 -0
  12. package/dist/{Txt-B4-2nLaI.cjs → Txt-DPmEpNbp.cjs} +4 -10
  13. package/dist/Txt-DPmEpNbp.cjs.map +1 -0
  14. package/dist/{ask-user-BPpgiE7k.cjs → ask-user-4pnmHbuC.cjs} +3 -3
  15. package/dist/{ask-user-BPpgiE7k.cjs.map → ask-user-4pnmHbuC.cjs.map} +1 -1
  16. package/dist/{ask-user-jDUt7hgT.js → ask-user-CFcQN_7m.js} +3 -3
  17. package/dist/{ask-user-jDUt7hgT.js.map → ask-user-CFcQN_7m.js.map} +1 -1
  18. package/dist/{chat-notification-CmdRGO_D.js → chat-notification-BI_WRUvG.js} +3 -3
  19. package/dist/{chat-notification-CmdRGO_D.js.map → chat-notification-BI_WRUvG.js.map} +1 -1
  20. package/dist/{chat-notification-DJykWtoj.cjs → chat-notification-Dc7jwULm.cjs} +3 -3
  21. package/dist/{chat-notification-DJykWtoj.cjs.map → chat-notification-Dc7jwULm.cjs.map} +1 -1
  22. package/dist/{chat-signal-xs3FkPts.cjs → chat-signal-BodewV33.cjs} +3 -3
  23. package/dist/{chat-signal-xs3FkPts.cjs.map → chat-signal-BodewV33.cjs.map} +1 -1
  24. package/dist/{chat-signal-Vg8pGXwH.js → chat-signal-D0zw80bU.js} +3 -3
  25. package/dist/{chat-signal-Vg8pGXwH.js.map → chat-signal-D0zw80bU.js.map} +1 -1
  26. package/dist/{combobox-BoSB-muq.cjs → combobox-B19HJqE-.cjs} +2 -2
  27. package/dist/{combobox-BoSB-muq.cjs.map → combobox-B19HJqE-.cjs.map} +1 -1
  28. package/dist/{combobox-Cd0JPUQW.js → combobox-D_kmwSKS.js} +2 -2
  29. package/dist/{combobox-Cd0JPUQW.js.map → combobox-D_kmwSKS.js.map} +1 -1
  30. package/dist/components/Avatar.cjs.js +1 -1
  31. package/dist/components/Avatar.es.js +1 -1
  32. package/dist/components/Badge.cjs.js +1 -1
  33. package/dist/components/Badge.es.js +1 -1
  34. package/dist/components/ClampedText.cjs.js +1 -1
  35. package/dist/components/ClampedText.es.js +1 -1
  36. package/dist/components/Combobox.cjs.js +1 -1
  37. package/dist/components/Combobox.es.js +1 -1
  38. package/dist/components/Comment.cjs.js +2 -2
  39. package/dist/components/Comment.es.js +2 -2
  40. package/dist/components/CompactNumber.cjs.js +24 -0
  41. package/dist/components/CompactNumber.cjs.js.map +1 -0
  42. package/dist/components/CompactNumber.d.ts +2 -0
  43. package/dist/components/CompactNumber.es.js +20 -0
  44. package/dist/components/CompactNumber.es.js.map +1 -0
  45. package/dist/components/DataCodeSection.cjs.js +1 -1
  46. package/dist/components/DataCodeSection.es.js +1 -1
  47. package/dist/components/DataList.cjs.js +8 -14
  48. package/dist/components/DataList.cjs.js.map +1 -1
  49. package/dist/components/DataList.es.js +8 -14
  50. package/dist/components/DataList.es.js.map +1 -1
  51. package/dist/components/DataPanel.cjs.js +1 -1
  52. package/dist/components/DataPanel.es.js +1 -1
  53. package/dist/components/DateRangeTimeline.cjs.js +1 -1
  54. package/dist/components/DateRangeTimeline.es.js +1 -1
  55. package/dist/components/DateTimePicker.cjs.js +1 -1
  56. package/dist/components/DateTimePicker.es.js +1 -1
  57. package/dist/components/DateTimeRangePicker.cjs.js +1 -1
  58. package/dist/components/DateTimeRangePicker.es.js +1 -1
  59. package/dist/components/Entity.cjs.js +1 -1
  60. package/dist/components/Entity.es.js +1 -1
  61. package/dist/components/EntityHeader.cjs.js +1 -1
  62. package/dist/components/EntityHeader.es.js +1 -1
  63. package/dist/components/Entry.cjs.js +1 -1
  64. package/dist/components/Entry.es.js +1 -1
  65. package/dist/components/EnvironmentVariablesEditor.cjs.js +3 -3
  66. package/dist/components/EnvironmentVariablesEditor.es.js +3 -3
  67. package/dist/components/FilterBar.cjs.js +1 -1
  68. package/dist/components/FilterBar.es.js +1 -1
  69. package/dist/components/FormFieldBlocks.cjs.js +4 -4
  70. package/dist/components/FormFieldBlocks.es.js +4 -4
  71. package/dist/components/Header.cjs.js +1 -1
  72. package/dist/components/Header.es.js +1 -1
  73. package/dist/components/InlineCode.cjs.js +10 -0
  74. package/dist/components/InlineCode.cjs.js.map +1 -0
  75. package/dist/components/InlineCode.d.ts +2 -0
  76. package/dist/components/InlineCode.es.js +2 -0
  77. package/dist/components/InlineCode.es.js.map +1 -0
  78. package/dist/components/ItemList.cjs.js +5 -17
  79. package/dist/components/ItemList.cjs.js.map +1 -1
  80. package/dist/components/ItemList.es.js +5 -17
  81. package/dist/components/ItemList.es.js.map +1 -1
  82. package/dist/components/JSONSchemaForm.cjs.js +2 -2
  83. package/dist/components/JSONSchemaForm.es.js +2 -2
  84. package/dist/components/ListSearch.cjs.js +1 -1
  85. package/dist/components/ListSearch.es.js +1 -1
  86. package/dist/components/LogsDataList.cjs.js +2 -2
  87. package/dist/components/LogsDataList.es.js +2 -2
  88. package/dist/components/Message.cjs.js +4 -5
  89. package/dist/components/Message.cjs.js.map +1 -1
  90. package/dist/components/Message.es.js +4 -5
  91. package/dist/components/Message.es.js.map +1 -1
  92. package/dist/components/MetricsCard.cjs.js +1 -1
  93. package/dist/components/MetricsCard.es.js +1 -1
  94. package/dist/components/MetricsCardGroup.cjs.js +2 -11
  95. package/dist/components/MetricsCardGroup.cjs.js.map +1 -1
  96. package/dist/components/MetricsCardGroup.es.js +2 -11
  97. package/dist/components/MetricsCardGroup.es.js.map +1 -1
  98. package/dist/components/MetricsKpiCard.cjs.js +1 -1
  99. package/dist/components/MetricsKpiCard.es.js +1 -1
  100. package/dist/components/MetricsLineChart.cjs.js +2 -1
  101. package/dist/components/MetricsLineChart.cjs.js.map +1 -1
  102. package/dist/components/MetricsLineChart.es.js +1 -1
  103. package/dist/components/PageHeader.cjs.js +1 -1
  104. package/dist/components/PageHeader.es.js +1 -1
  105. package/dist/components/PageLayout.cjs.js +1 -1
  106. package/dist/components/PageLayout.es.js +1 -1
  107. package/dist/components/PropertyFilter.cjs.js +1 -1
  108. package/dist/components/PropertyFilter.es.js +1 -1
  109. package/dist/components/RelativeTimestamp.cjs.js +119 -0
  110. package/dist/components/RelativeTimestamp.cjs.js.map +1 -0
  111. package/dist/components/RelativeTimestamp.d.ts +2 -0
  112. package/dist/components/RelativeTimestamp.es.js +115 -0
  113. package/dist/components/RelativeTimestamp.es.js.map +1 -0
  114. package/dist/components/Section.cjs.js +1 -1
  115. package/dist/components/Section.es.js +1 -1
  116. package/dist/components/SettingsRow.cjs.js +1 -1
  117. package/dist/components/SettingsRow.es.js +1 -1
  118. package/dist/components/SideDialog.cjs.js +1 -1
  119. package/dist/components/SideDialog.es.js +1 -1
  120. package/dist/components/StatusIndicators.cjs.js +21 -14
  121. package/dist/components/StatusIndicators.cjs.js.map +1 -1
  122. package/dist/components/StatusIndicators.es.js +21 -15
  123. package/dist/components/StatusIndicators.es.js.map +1 -1
  124. package/dist/components/Table.cjs.js +3 -21
  125. package/dist/components/Table.cjs.js.map +1 -1
  126. package/dist/components/Table.es.js +3 -21
  127. package/dist/components/Table.es.js.map +1 -1
  128. package/dist/components/ThreadList.cjs.js +1 -1
  129. package/dist/components/ThreadList.es.js +1 -1
  130. package/dist/components/Truncate.cjs.js +1 -1
  131. package/dist/components/Truncate.es.js +1 -1
  132. package/dist/components/Txt.cjs.js +1 -1
  133. package/dist/components/Txt.es.js +1 -1
  134. package/dist/components/Workflow.cjs.js +9 -13
  135. package/dist/components/Workflow.cjs.js.map +1 -1
  136. package/dist/components/Workflow.es.js +9 -13
  137. package/dist/components/Workflow.es.js.map +1 -1
  138. package/dist/components/ai/ask-user.cjs.js +1 -1
  139. package/dist/components/ai/ask-user.es.js +1 -1
  140. package/dist/components/ai/chat-event.cjs.js +3 -3
  141. package/dist/components/ai/chat-event.es.js +4 -4
  142. package/dist/components/ai/plan.cjs.js +3 -3
  143. package/dist/components/ai/plan.cjs.js.map +1 -1
  144. package/dist/components/ai/plan.es.js +3 -3
  145. package/dist/components/ai/plan.es.js.map +1 -1
  146. package/dist/components/ai/task-list.cjs.js +370 -55
  147. package/dist/components/ai/task-list.cjs.js.map +1 -1
  148. package/dist/components/ai/task-list.es.js +374 -58
  149. package/dist/components/ai/task-list.es.js.map +1 -1
  150. package/dist/components/ai/tool-call.cjs.js +7 -9
  151. package/dist/components/ai/tool-call.cjs.js.map +1 -1
  152. package/dist/components/ai/tool-call.es.js +8 -10
  153. package/dist/components/ai/tool-call.es.js.map +1 -1
  154. package/dist/{data-code-section-Cth9zVkj.js → data-code-section-BKrCkj90.js} +2 -2
  155. package/dist/{data-code-section-Cth9zVkj.js.map → data-code-section-BKrCkj90.js.map} +1 -1
  156. package/dist/{data-code-section-DE4AgaTU.cjs → data-code-section-C9z94ytx.cjs} +2 -2
  157. package/dist/{data-code-section-DE4AgaTU.cjs.map → data-code-section-C9z94ytx.cjs.map} +1 -1
  158. package/dist/{data-list-DisTjDHP.js → data-list-5-nRJbEO.js} +3 -3
  159. package/dist/{data-list-DisTjDHP.js.map → data-list-5-nRJbEO.js.map} +1 -1
  160. package/dist/{data-list-PwFpP_mo.cjs → data-list-RI8c32dk.cjs} +3 -3
  161. package/dist/{data-list-PwFpP_mo.cjs.map → data-list-RI8c32dk.cjs.map} +1 -1
  162. package/dist/{data-list-skeleton-DAfM8AjW.js → data-list-skeleton-BrSh9Y_3.js} +2 -2
  163. package/dist/{data-list-skeleton-DAfM8AjW.js.map → data-list-skeleton-BrSh9Y_3.js.map} +1 -1
  164. package/dist/{data-list-skeleton-CjwR0o3w.cjs → data-list-skeleton-CgbWqYky.cjs} +2 -2
  165. package/dist/{data-list-skeleton-CjwR0o3w.cjs.map → data-list-skeleton-CgbWqYky.cjs.map} +1 -1
  166. package/dist/{data-list-spacer-DEcgVGFM.cjs → data-list-spacer-1OqlC7WX.cjs} +2 -2
  167. package/dist/{data-list-spacer-DEcgVGFM.cjs.map → data-list-spacer-1OqlC7WX.cjs.map} +1 -1
  168. package/dist/{data-list-spacer-BmorAN0V.js → data-list-spacer-D3Rn1evn.js} +2 -2
  169. package/dist/{data-list-spacer-BmorAN0V.js.map → data-list-spacer-D3Rn1evn.js.map} +1 -1
  170. package/dist/{data-list-top-DpbOA3uw.js → data-list-top-B-AopfvE.js} +13 -21
  171. package/dist/data-list-top-B-AopfvE.js.map +1 -0
  172. package/dist/{data-list-top-WGUY167p.cjs → data-list-top-DFnudSA_.cjs} +13 -21
  173. package/dist/data-list-top-DFnudSA_.cjs.map +1 -0
  174. package/dist/{data-panel-BQVTKo86.js → data-panel-BWgExbHs.js} +2 -2
  175. package/dist/{data-panel-BQVTKo86.js.map → data-panel-BWgExbHs.js.map} +1 -1
  176. package/dist/{data-panel-XPXrhYJI.cjs → data-panel-C_BqhzeL.cjs} +2 -2
  177. package/dist/{data-panel-XPXrhYJI.cjs.map → data-panel-C_BqhzeL.cjs.map} +1 -1
  178. package/dist/{date-time-range-picker-C-t3Kdpk.js → date-time-range-picker-Bnviv7s-.js} +2 -2
  179. package/dist/{date-time-range-picker-C-t3Kdpk.js.map → date-time-range-picker-Bnviv7s-.js.map} +1 -1
  180. package/dist/{date-time-range-picker-BCzvSYx3.cjs → date-time-range-picker-sT5qAW-_.cjs} +2 -2
  181. package/dist/{date-time-range-picker-BCzvSYx3.cjs.map → date-time-range-picker-sT5qAW-_.cjs.map} +1 -1
  182. package/dist/domains/capabilities/hooks/use-feedback-available.cjs.js +16 -0
  183. package/dist/domains/capabilities/hooks/use-feedback-available.cjs.js.map +1 -0
  184. package/dist/domains/capabilities/hooks/use-feedback-available.d.ts +2 -0
  185. package/dist/domains/capabilities/hooks/use-feedback-available.es.js +12 -0
  186. package/dist/domains/capabilities/hooks/use-feedback-available.es.js.map +1 -0
  187. package/dist/domains/capabilities/hooks/use-observability-capabilities.cjs.js +20 -0
  188. package/dist/domains/capabilities/hooks/use-observability-capabilities.cjs.js.map +1 -0
  189. package/dist/domains/capabilities/hooks/use-observability-capabilities.d.ts +2 -0
  190. package/dist/domains/capabilities/hooks/use-observability-capabilities.es.js +16 -0
  191. package/dist/domains/capabilities/hooks/use-observability-capabilities.es.js.map +1 -0
  192. package/dist/domains/capabilities/hooks/use-trace-query-available.cjs.js +16 -0
  193. package/dist/domains/capabilities/hooks/use-trace-query-available.cjs.js.map +1 -0
  194. package/dist/domains/capabilities/hooks/use-trace-query-available.d.ts +2 -0
  195. package/dist/domains/capabilities/hooks/use-trace-query-available.es.js +12 -0
  196. package/dist/domains/capabilities/hooks/use-trace-query-available.es.js.map +1 -0
  197. package/dist/domains/capabilities/hooks.cjs.js +14 -0
  198. package/dist/domains/capabilities/hooks.cjs.js.map +1 -0
  199. package/dist/domains/capabilities/hooks.d.ts +2 -0
  200. package/dist/domains/capabilities/hooks.es.js +4 -0
  201. package/dist/domains/capabilities/hooks.es.js.map +1 -0
  202. package/dist/domains/capabilities.cjs.js +14 -0
  203. package/dist/domains/capabilities.cjs.js.map +1 -0
  204. package/dist/domains/capabilities.d.ts +2 -0
  205. package/dist/domains/capabilities.es.js +4 -0
  206. package/dist/domains/capabilities.es.js.map +1 -0
  207. package/dist/domains/chat/attachments/attachment-kind.es.js +1 -1
  208. package/dist/domains/chat/components/badge-wrapper.cjs.js +1 -1
  209. package/dist/domains/chat/components/badge-wrapper.es.js +1 -1
  210. package/dist/domains/chat/components/network-choice-metadata-dialog.cjs.js +1 -1
  211. package/dist/domains/chat/components/network-choice-metadata-dialog.es.js +1 -1
  212. package/dist/domains/chat/components/section-label.cjs.js +1 -1
  213. package/dist/domains/chat/components/section-label.es.js +1 -1
  214. package/dist/domains/chat/messages/notification-signal-notice.cjs.js +1 -1
  215. package/dist/domains/chat/messages/notification-signal-notice.es.js +1 -1
  216. package/dist/domains/chat/messages/reasoning-streaming-line.cjs.js +1 -1
  217. package/dist/domains/chat/messages/reasoning-streaming-line.es.js +1 -1
  218. package/dist/domains/chat/messages/reasoning.cjs.js +4 -3
  219. package/dist/domains/chat/messages/reasoning.cjs.js.map +1 -1
  220. package/dist/domains/chat/messages/reasoning.es.js +4 -3
  221. package/dist/domains/chat/messages/reasoning.es.js.map +1 -1
  222. package/dist/domains/chat/messages/renderers/message-text.cjs.js +1 -1
  223. package/dist/domains/chat/messages/renderers/message-text.es.js +1 -1
  224. package/dist/domains/chat/messages/renderers/reasoning-part-renderer.cjs.js +2 -2
  225. package/dist/domains/chat/messages/renderers/reasoning-part-renderer.cjs.js.map +1 -1
  226. package/dist/domains/chat/messages/renderers/reasoning-part-renderer.es.js +2 -2
  227. package/dist/domains/chat/messages/renderers/reasoning-part-renderer.es.js.map +1 -1
  228. package/dist/domains/chat/messages/renderers/user-file-part-renderer.es.js +1 -1
  229. package/dist/domains/chat/messages/signal-badge.cjs.js +1 -1
  230. package/dist/domains/chat/messages/signal-badge.es.js +1 -1
  231. package/dist/domains/chat/messages/system-reminder-badge.cjs.js +1 -1
  232. package/dist/domains/chat/messages/system-reminder-badge.cjs.js.map +1 -1
  233. package/dist/domains/chat/messages/system-reminder-badge.es.js +1 -1
  234. package/dist/domains/chat/messages/system-reminder-badge.es.js.map +1 -1
  235. package/dist/domains/chat/messages/tripwire-notice.cjs.js +2 -2
  236. package/dist/domains/chat/messages/tripwire-notice.cjs.js.map +1 -1
  237. package/dist/domains/chat/messages/tripwire-notice.es.js +2 -2
  238. package/dist/domains/chat/messages/tripwire-notice.es.js.map +1 -1
  239. package/dist/domains/chat/tools/badges/ask-user-badge.cjs.js +1 -1
  240. package/dist/domains/chat/tools/badges/ask-user-badge.es.js +1 -1
  241. package/dist/domains/chat/tools/badges/code-mode-badge.cjs.js +3 -3
  242. package/dist/domains/chat/tools/badges/code-mode-badge.cjs.js.map +1 -1
  243. package/dist/domains/chat/tools/badges/code-mode-badge.es.js +3 -3
  244. package/dist/domains/chat/tools/badges/code-mode-badge.es.js.map +1 -1
  245. package/dist/domains/chat/tools/badges/observation-marker-badge.cjs.js +6 -4
  246. package/dist/domains/chat/tools/badges/observation-marker-badge.cjs.js.map +1 -1
  247. package/dist/domains/chat/tools/badges/observation-marker-badge.es.js +6 -4
  248. package/dist/domains/chat/tools/badges/observation-marker-badge.es.js.map +1 -1
  249. package/dist/domains/chat/tools/badges/observation-renderer.cjs.js +11 -8
  250. package/dist/domains/chat/tools/badges/observation-renderer.cjs.js.map +1 -1
  251. package/dist/domains/chat/tools/badges/observation-renderer.es.js +11 -8
  252. package/dist/domains/chat/tools/badges/observation-renderer.es.js.map +1 -1
  253. package/dist/domains/logs/components/log-data-panel.cjs.js +3 -6
  254. package/dist/domains/logs/components/log-data-panel.cjs.js.map +1 -1
  255. package/dist/domains/logs/components/log-data-panel.es.js +3 -6
  256. package/dist/domains/logs/components/log-data-panel.es.js.map +1 -1
  257. package/dist/domains/logs/components/logs-list-view.cjs.js +2 -2
  258. package/dist/domains/logs/components/logs-list-view.es.js +2 -2
  259. package/dist/domains/logs/components/no-logs-info.cjs.js +3 -4
  260. package/dist/domains/logs/components/no-logs-info.cjs.js.map +1 -1
  261. package/dist/domains/logs/components/no-logs-info.es.js +3 -4
  262. package/dist/domains/logs/components/no-logs-info.es.js.map +1 -1
  263. package/dist/domains/memory/components/flame-graph.cjs.js +7 -5
  264. package/dist/domains/memory/components/flame-graph.cjs.js.map +1 -1
  265. package/dist/domains/memory/components/flame-graph.es.js +8 -6
  266. package/dist/domains/memory/components/flame-graph.es.js.map +1 -1
  267. package/dist/domains/memory/components/memory-studio-panel.cjs.js +1 -1
  268. package/dist/domains/memory/components/memory-studio-panel.es.js +1 -1
  269. package/dist/domains/memory/components/observation-detail-view.cjs.js +4 -5
  270. package/dist/domains/memory/components/observation-detail-view.cjs.js.map +1 -1
  271. package/dist/domains/memory/components/observation-detail-view.es.js +4 -5
  272. package/dist/domains/memory/components/observation-detail-view.es.js.map +1 -1
  273. package/dist/domains/memory/components/thread-context-progress.cjs.js +1 -1
  274. package/dist/domains/memory/components/thread-context-progress.cjs.js.map +1 -1
  275. package/dist/domains/memory/components/thread-context-progress.es.js +1 -1
  276. package/dist/domains/memory/components/thread-context-progress.es.js.map +1 -1
  277. package/dist/domains/memory/lib/timeline.cjs.js +0 -9
  278. package/dist/domains/memory/lib/timeline.cjs.js.map +1 -1
  279. package/dist/domains/memory/lib/timeline.es.js +1 -9
  280. package/dist/domains/memory/lib/timeline.es.js.map +1 -1
  281. package/dist/domains/metrics/components/bar-list.cjs.js +4 -4
  282. package/dist/domains/metrics/components/bar-list.cjs.js.map +1 -1
  283. package/dist/domains/metrics/components/bar-list.es.js +4 -4
  284. package/dist/domains/metrics/components/bar-list.es.js.map +1 -1
  285. package/dist/domains/metrics/components/date-range-selector.cjs.js +1 -1
  286. package/dist/domains/metrics/components/date-range-selector.es.js +1 -1
  287. package/dist/domains/metrics/components/kpi-card-view.cjs.js +1 -1
  288. package/dist/domains/metrics/components/kpi-card-view.cjs.js.map +1 -1
  289. package/dist/domains/metrics/components/kpi-card-view.es.js +1 -1
  290. package/dist/domains/metrics/components/kpi-card-view.es.js.map +1 -1
  291. package/dist/domains/metrics/components/latency-card-view.cjs.js +33 -24
  292. package/dist/domains/metrics/components/latency-card-view.cjs.js.map +1 -1
  293. package/dist/domains/metrics/components/latency-card-view.es.js +34 -25
  294. package/dist/domains/metrics/components/latency-card-view.es.js.map +1 -1
  295. package/dist/domains/metrics/components/memory-card-view.cjs.js +9 -8
  296. package/dist/domains/metrics/components/memory-card-view.cjs.js.map +1 -1
  297. package/dist/domains/metrics/components/memory-card-view.es.js +8 -7
  298. package/dist/domains/metrics/components/memory-card-view.es.js.map +1 -1
  299. package/dist/domains/metrics/components/metrics-utils.cjs.js +0 -15
  300. package/dist/domains/metrics/components/metrics-utils.cjs.js.map +1 -1
  301. package/dist/domains/metrics/components/metrics-utils.es.js +1 -14
  302. package/dist/domains/metrics/components/metrics-utils.es.js.map +1 -1
  303. package/dist/domains/metrics/components/model-usage-cost-card-view.cjs.js +6 -5
  304. package/dist/domains/metrics/components/model-usage-cost-card-view.cjs.js.map +1 -1
  305. package/dist/domains/metrics/components/model-usage-cost-card-view.es.js +4 -3
  306. package/dist/domains/metrics/components/model-usage-cost-card-view.es.js.map +1 -1
  307. package/dist/domains/metrics/components/scores-card-view.cjs.js +5 -5
  308. package/dist/domains/metrics/components/scores-card-view.cjs.js.map +1 -1
  309. package/dist/domains/metrics/components/scores-card-view.es.js +5 -5
  310. package/dist/domains/metrics/components/scores-card-view.es.js.map +1 -1
  311. package/dist/domains/metrics/components/token-usage-by-agent-card-view.cjs.js +7 -6
  312. package/dist/domains/metrics/components/token-usage-by-agent-card-view.cjs.js.map +1 -1
  313. package/dist/domains/metrics/components/token-usage-by-agent-card-view.es.js +7 -6
  314. package/dist/domains/metrics/components/token-usage-by-agent-card-view.es.js.map +1 -1
  315. package/dist/domains/metrics/components/token-usage-timeline-card-view.cjs.js +13 -11
  316. package/dist/domains/metrics/components/token-usage-timeline-card-view.cjs.js.map +1 -1
  317. package/dist/domains/metrics/components/token-usage-timeline-card-view.es.js +13 -11
  318. package/dist/domains/metrics/components/token-usage-timeline-card-view.es.js.map +1 -1
  319. package/dist/domains/metrics/components/traces-volume-card-view.cjs.js +7 -6
  320. package/dist/domains/metrics/components/traces-volume-card-view.cjs.js.map +1 -1
  321. package/dist/domains/metrics/components/traces-volume-card-view.es.js +8 -7
  322. package/dist/domains/metrics/components/traces-volume-card-view.es.js.map +1 -1
  323. package/dist/domains/metrics/components.cjs.js +0 -2
  324. package/dist/domains/metrics/components.cjs.js.map +1 -1
  325. package/dist/domains/metrics/components.es.js +1 -1
  326. package/dist/domains/metrics/hooks/use-latency-metrics.cjs.js +11 -11
  327. package/dist/domains/metrics/hooks/use-latency-metrics.cjs.js.map +1 -1
  328. package/dist/domains/metrics/hooks/use-latency-metrics.es.js +12 -11
  329. package/dist/domains/metrics/hooks/use-latency-metrics.es.js.map +1 -1
  330. package/dist/domains/metrics/hooks/use-metrics.cjs.js +3 -3
  331. package/dist/domains/metrics/hooks/use-metrics.cjs.js.map +1 -1
  332. package/dist/domains/metrics/hooks/use-metrics.es.js +3 -3
  333. package/dist/domains/metrics/hooks/use-metrics.es.js.map +1 -1
  334. package/dist/domains/metrics/hooks/use-model-usage-cost-metrics.cjs.js +5 -5
  335. package/dist/domains/metrics/hooks/use-model-usage-cost-metrics.cjs.js.map +1 -1
  336. package/dist/domains/metrics/hooks/use-model-usage-cost-metrics.es.js +5 -5
  337. package/dist/domains/metrics/hooks/use-model-usage-cost-metrics.es.js.map +1 -1
  338. package/dist/domains/metrics/hooks/use-scores-metrics.cjs.js +6 -7
  339. package/dist/domains/metrics/hooks/use-scores-metrics.cjs.js.map +1 -1
  340. package/dist/domains/metrics/hooks/use-scores-metrics.es.js +6 -7
  341. package/dist/domains/metrics/hooks/use-scores-metrics.es.js.map +1 -1
  342. package/dist/domains/metrics/hooks/use-token-usage-timeseries.cjs.js +4 -12
  343. package/dist/domains/metrics/hooks/use-token-usage-timeseries.cjs.js.map +1 -1
  344. package/dist/domains/metrics/hooks/use-token-usage-timeseries.es.js +4 -12
  345. package/dist/domains/metrics/hooks/use-token-usage-timeseries.es.js.map +1 -1
  346. package/dist/domains/metrics/hooks.cjs.js +3 -0
  347. package/dist/domains/metrics/hooks.cjs.js.map +1 -1
  348. package/dist/domains/metrics/hooks.es.js +1 -0
  349. package/dist/domains/metrics/hooks.es.js.map +1 -1
  350. package/dist/domains/metrics/metrics-interval.cjs.js +20 -0
  351. package/dist/domains/metrics/metrics-interval.cjs.js.map +1 -0
  352. package/dist/domains/metrics/metrics-interval.d.ts +2 -0
  353. package/dist/domains/metrics/metrics-interval.es.js +15 -0
  354. package/dist/domains/metrics/metrics-interval.es.js.map +1 -0
  355. package/dist/domains/metrics.cjs.js +3 -2
  356. package/dist/domains/metrics.cjs.js.map +1 -1
  357. package/dist/domains/metrics.es.js +2 -1
  358. package/dist/domains/metrics.es.js.map +1 -1
  359. package/dist/domains/traces/components/no-traces-info.cjs.js +3 -4
  360. package/dist/domains/traces/components/no-traces-info.cjs.js.map +1 -1
  361. package/dist/domains/traces/components/no-traces-info.es.js +3 -4
  362. package/dist/domains/traces/components/no-traces-info.es.js.map +1 -1
  363. package/dist/domains/traces/components/span-data-panel-view.cjs.js +1 -1
  364. package/dist/domains/traces/components/span-data-panel-view.es.js +1 -1
  365. package/dist/domains/traces/components/span-payload/span-error-renderer.cjs.js +1 -1
  366. package/dist/domains/traces/components/span-payload/span-error-renderer.es.js +1 -1
  367. package/dist/domains/traces/components/span-payload/span-input-renderers.cjs.js +1 -1
  368. package/dist/domains/traces/components/span-payload/span-input-renderers.es.js +1 -1
  369. package/dist/domains/traces/components/span-payload/span-output-renderers.cjs.js +3 -2
  370. package/dist/domains/traces/components/span-payload/span-output-renderers.cjs.js.map +1 -1
  371. package/dist/domains/traces/components/span-payload/span-output-renderers.es.js +3 -2
  372. package/dist/domains/traces/components/span-payload/span-output-renderers.es.js.map +1 -1
  373. package/dist/domains/traces/components/span-payload/span-payload-json.cjs.js +1 -1
  374. package/dist/domains/traces/components/span-payload/span-payload-json.cjs.js.map +1 -1
  375. package/dist/domains/traces/components/span-payload/span-payload-json.es.js +1 -1
  376. package/dist/domains/traces/components/span-payload/span-payload-json.es.js.map +1 -1
  377. package/dist/domains/traces/components/span-payload/span-payload-messages.cjs.js +1 -1
  378. package/dist/domains/traces/components/span-payload/span-payload-messages.es.js +1 -1
  379. package/dist/domains/traces/components/span-payload/span-payload-primitives.cjs.js +1 -1
  380. package/dist/domains/traces/components/span-payload/span-payload-primitives.es.js +1 -1
  381. package/dist/domains/traces/components/span-payload/span-payload-processor.cjs.js +1 -1
  382. package/dist/domains/traces/components/span-payload/span-payload-processor.es.js +1 -1
  383. package/dist/domains/traces/components/span-payload/span-payload-tool.cjs.js +2 -2
  384. package/dist/domains/traces/components/span-payload/span-payload-tool.es.js +2 -2
  385. package/dist/domains/traces/components/span-payload/span-processor-attributes.cjs.js +3 -2
  386. package/dist/domains/traces/components/span-payload/span-processor-attributes.cjs.js.map +1 -1
  387. package/dist/domains/traces/components/span-payload/span-processor-attributes.es.js +3 -2
  388. package/dist/domains/traces/components/span-payload/span-processor-attributes.es.js.map +1 -1
  389. package/dist/domains/traces/components/span-summary-description.cjs.js +6 -4
  390. package/dist/domains/traces/components/span-summary-description.cjs.js.map +1 -1
  391. package/dist/domains/traces/components/span-summary-description.es.js +7 -5
  392. package/dist/domains/traces/components/span-summary-description.es.js.map +1 -1
  393. package/dist/domains/traces/components/span-timeline-row.cjs.js +3 -4
  394. package/dist/domains/traces/components/span-timeline-row.cjs.js.map +1 -1
  395. package/dist/domains/traces/components/span-timeline-row.es.js +3 -4
  396. package/dist/domains/traces/components/span-timeline-row.es.js.map +1 -1
  397. package/dist/domains/traces/components/span-timing-hover-card.cjs.js +6 -11
  398. package/dist/domains/traces/components/span-timing-hover-card.cjs.js.map +1 -1
  399. package/dist/domains/traces/components/span-timing-hover-card.es.js +6 -11
  400. package/dist/domains/traces/components/span-timing-hover-card.es.js.map +1 -1
  401. package/dist/domains/traces/components/span-type-legend.cjs.js +1 -1
  402. package/dist/domains/traces/components/span-type-legend.es.js +1 -1
  403. package/dist/domains/traces/components/thread-trace/thread-trace-details.cjs.js +1 -1
  404. package/dist/domains/traces/components/thread-trace/thread-trace-details.es.js +1 -1
  405. package/dist/domains/traces/components/thread-trace/thread-trace-messages.cjs.js +1 -1
  406. package/dist/domains/traces/components/thread-trace/thread-trace-messages.es.js +1 -1
  407. package/dist/domains/traces/components/timeline-timing-col.cjs.js +3 -4
  408. package/dist/domains/traces/components/timeline-timing-col.cjs.js.map +1 -1
  409. package/dist/domains/traces/components/timeline-timing-col.es.js +3 -4
  410. package/dist/domains/traces/components/timeline-timing-col.es.js.map +1 -1
  411. package/dist/domains/traces/components/trace-columns-menu.cjs.js +21 -18
  412. package/dist/domains/traces/components/trace-columns-menu.cjs.js.map +1 -1
  413. package/dist/domains/traces/components/trace-columns-menu.es.js +21 -18
  414. package/dist/domains/traces/components/trace-columns-menu.es.js.map +1 -1
  415. package/dist/domains/traces/components/trace-data-panel-view.cjs.js +2 -2
  416. package/dist/domains/traces/components/trace-data-panel-view.es.js +2 -2
  417. package/dist/domains/traces/components/trace-id-button.cjs.js +1 -1
  418. package/dist/domains/traces/components/trace-id-button.es.js +1 -1
  419. package/dist/domains/traces/components/trace-span-timeline.cjs.js +10 -4
  420. package/dist/domains/traces/components/trace-span-timeline.cjs.js.map +1 -1
  421. package/dist/domains/traces/components/trace-span-timeline.es.js +10 -4
  422. package/dist/domains/traces/components/trace-span-timeline.es.js.map +1 -1
  423. package/dist/domains/traces/components/trace-span-tree.cjs.js +3 -4
  424. package/dist/domains/traces/components/trace-span-tree.cjs.js.map +1 -1
  425. package/dist/domains/traces/components/trace-span-tree.es.js +3 -4
  426. package/dist/domains/traces/components/trace-span-tree.es.js.map +1 -1
  427. package/dist/domains/traces/components/trace-summary-description.cjs.js +13 -10
  428. package/dist/domains/traces/components/trace-summary-description.cjs.js.map +1 -1
  429. package/dist/domains/traces/components/trace-summary-description.es.js +13 -10
  430. package/dist/domains/traces/components/trace-summary-description.es.js.map +1 -1
  431. package/dist/domains/traces/components/trace-time-range-chip.cjs.js +1 -1
  432. package/dist/domains/traces/components/trace-time-range-chip.es.js +1 -1
  433. package/dist/domains/traces/components/traces-list-view.cjs.js +12 -10
  434. package/dist/domains/traces/components/traces-list-view.cjs.js.map +1 -1
  435. package/dist/domains/traces/components/traces-list-view.es.js +12 -10
  436. package/dist/domains/traces/components/traces-list-view.es.js.map +1 -1
  437. package/dist/domains/traces/components/traces-page-skeleton.cjs.js +1 -1
  438. package/dist/domains/traces/components/traces-page-skeleton.es.js +1 -1
  439. package/dist/domains/traces/hooks/use-branch.cjs.js +0 -1
  440. package/dist/domains/traces/hooks/use-branch.cjs.js.map +1 -1
  441. package/dist/domains/traces/hooks/use-branch.es.js +0 -1
  442. package/dist/domains/traces/hooks/use-branch.es.js.map +1 -1
  443. package/dist/domains/traces/hooks/use-trace-light-spans.cjs.js +0 -1
  444. package/dist/domains/traces/hooks/use-trace-light-spans.cjs.js.map +1 -1
  445. package/dist/domains/traces/hooks/use-trace-light-spans.es.js +0 -1
  446. package/dist/domains/traces/hooks/use-trace-light-spans.es.js.map +1 -1
  447. package/dist/domains/traces/hooks/use-trace-query.cjs.js +63 -3
  448. package/dist/domains/traces/hooks/use-trace-query.cjs.js.map +1 -1
  449. package/dist/domains/traces/hooks/use-trace-query.es.js +61 -4
  450. package/dist/domains/traces/hooks/use-trace-query.es.js.map +1 -1
  451. package/dist/domains/traces/hooks/use-trace-search.cjs.js +0 -1
  452. package/dist/domains/traces/hooks/use-trace-search.cjs.js.map +1 -1
  453. package/dist/domains/traces/hooks/use-trace-search.es.js +0 -1
  454. package/dist/domains/traces/hooks/use-trace-search.es.js.map +1 -1
  455. package/dist/domains/traces/hooks/use-trace-spans.cjs.js +0 -1
  456. package/dist/domains/traces/hooks/use-trace-spans.cjs.js.map +1 -1
  457. package/dist/domains/traces/hooks/use-trace-spans.es.js +0 -1
  458. package/dist/domains/traces/hooks/use-trace-spans.es.js.map +1 -1
  459. package/dist/domains/traces/hooks/use-traces-list-source.cjs.js +42 -0
  460. package/dist/domains/traces/hooks/use-traces-list-source.cjs.js.map +1 -0
  461. package/dist/domains/traces/hooks/use-traces-list-source.d.ts +2 -0
  462. package/dist/domains/traces/hooks/use-traces-list-source.es.js +38 -0
  463. package/dist/domains/traces/hooks/use-traces-list-source.es.js.map +1 -0
  464. package/dist/domains/traces/hooks.cjs.js +2 -0
  465. package/dist/domains/traces/hooks.cjs.js.map +1 -1
  466. package/dist/domains/traces/hooks.es.js +1 -0
  467. package/dist/domains/traces/hooks.es.js.map +1 -1
  468. package/dist/domains/traces/trace-filters.cjs.js +10 -1
  469. package/dist/domains/traces/trace-filters.cjs.js.map +1 -1
  470. package/dist/domains/traces/trace-filters.es.js +10 -1
  471. package/dist/domains/traces/trace-filters.es.js.map +1 -1
  472. package/dist/domains/traces/utils/span-utils.cjs.js +4 -36
  473. package/dist/domains/traces/utils/span-utils.cjs.js.map +1 -1
  474. package/dist/domains/traces/utils/span-utils.es.js +4 -32
  475. package/dist/domains/traces/utils/span-utils.es.js.map +1 -1
  476. package/dist/domains/traces/utils.cjs.js +1 -1
  477. package/dist/domains/traces/utils.es.js +1 -1
  478. package/dist/domains/traces.cjs.js +3 -1
  479. package/dist/domains/traces.cjs.js.map +1 -1
  480. package/dist/domains/traces.es.js +2 -1
  481. package/dist/domains/traces.es.js.map +1 -1
  482. package/dist/ee/signals/components/entity-index-compact-grid.cjs.js +1 -1
  483. package/dist/ee/signals/components/entity-index-compact-grid.es.js +1 -1
  484. package/dist/ee/signals/components/entity-index-list.cjs.js +2 -2
  485. package/dist/ee/signals/components/entity-index-list.es.js +2 -2
  486. package/dist/ee/signals/components/entity-index-model.cjs.js +3 -2
  487. package/dist/ee/signals/components/entity-index-model.cjs.js.map +1 -1
  488. package/dist/ee/signals/components/entity-index-model.es.js +3 -2
  489. package/dist/ee/signals/components/entity-index-model.es.js.map +1 -1
  490. package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js +2 -2
  491. package/dist/ee/signals/components/trace-intelligence-entity-index.es.js +2 -2
  492. package/dist/ee/signals/settings/signal-definition-form-dialog.cjs.js +2 -2
  493. package/dist/ee/signals/settings/signal-definition-form-dialog.es.js +2 -2
  494. package/dist/ee/signals/settings/trace-signal-settings.cjs.js +1 -1
  495. package/dist/ee/signals/settings/trace-signal-settings.es.js +1 -1
  496. package/dist/ee/signals/signal-formatting.cjs.js +6 -34
  497. package/dist/ee/signals/signal-formatting.cjs.js.map +1 -1
  498. package/dist/ee/signals/signal-formatting.es.js +6 -34
  499. package/dist/ee/signals/signal-formatting.es.js.map +1 -1
  500. package/dist/ee/signals/snapshot-timeline-data.cjs.js +1 -1
  501. package/dist/ee/signals/snapshot-timeline-data.cjs.js.map +1 -1
  502. package/dist/ee/signals/snapshot-timeline-data.es.js +1 -1
  503. package/dist/ee/signals/snapshot-timeline-data.es.js.map +1 -1
  504. package/dist/ee/signals/view-mode-tab.cjs.js +1 -1
  505. package/dist/ee/signals/view-mode-tab.es.js +1 -1
  506. package/dist/ee/topics/components/topic-trace-summary-list.cjs.js +1 -1
  507. package/dist/ee/topics/components/topic-trace-summary-list.es.js +1 -1
  508. package/dist/field-block-error-msg-Y0fi0HUC.js +22 -0
  509. package/dist/field-block-error-msg-Y0fi0HUC.js.map +1 -0
  510. package/dist/field-block-error-msg-oudJz2Hx.cjs +24 -0
  511. package/dist/field-block-error-msg-oudJz2Hx.cjs.map +1 -0
  512. package/dist/{field-error-id-DyWx33Fu.js → field-error-id-DD7OARLU.js} +2 -13
  513. package/dist/field-error-id-DD7OARLU.js.map +1 -0
  514. package/dist/{field-error-id-6EfqmQ4C.cjs → field-error-id-V_WejsRL.cjs} +4 -15
  515. package/dist/field-error-id-V_WejsRL.cjs.map +1 -0
  516. package/dist/hooks/use-elapsed-time.cjs.js +25 -0
  517. package/dist/hooks/use-elapsed-time.cjs.js.map +1 -0
  518. package/dist/hooks/use-elapsed-time.d.ts +2 -0
  519. package/dist/hooks/use-elapsed-time.es.js +21 -0
  520. package/dist/hooks/use-elapsed-time.es.js.map +1 -0
  521. package/dist/inline-code-BW6W121s.js +13 -0
  522. package/dist/inline-code-BW6W121s.js.map +1 -0
  523. package/dist/inline-code-CSwG-x8D.cjs +15 -0
  524. package/dist/inline-code-CSwG-x8D.cjs.map +1 -0
  525. package/dist/layout/tabbed-container.cjs.js +3 -3
  526. package/dist/layout/tabbed-container.es.js +3 -3
  527. package/dist/{list-search-S1mco9Bl.cjs → list-search-CsYQX8qR.cjs} +2 -2
  528. package/dist/{list-search-S1mco9Bl.cjs.map → list-search-CsYQX8qR.cjs.map} +1 -1
  529. package/dist/{list-search-FJ1O5F3S.js → list-search-D1FD8FCL.js} +2 -2
  530. package/dist/{list-search-FJ1O5F3S.js.map → list-search-D1FD8FCL.js.map} +1 -1
  531. package/dist/{logs-data-list-5BAeLU57.js → logs-data-list-BKE5vYZR.js} +4 -4
  532. package/dist/{logs-data-list-5BAeLU57.js.map → logs-data-list-BKE5vYZR.js.map} +1 -1
  533. package/dist/{logs-data-list-YL9yLKF3.cjs → logs-data-list-lJK0yGYj.cjs} +4 -4
  534. package/dist/{logs-data-list-YL9yLKF3.cjs.map → logs-data-list-lJK0yGYj.cjs.map} +1 -1
  535. package/dist/{metrics-card-Bzm6m1dy.js → metrics-card-C2RTi5Ew.js} +7 -7
  536. package/dist/metrics-card-C2RTi5Ew.js.map +1 -0
  537. package/dist/{metrics-card-DCCHIG-z.cjs → metrics-card-DzcVJTAN.cjs} +7 -7
  538. package/dist/metrics-card-DzcVJTAN.cjs.map +1 -0
  539. package/dist/{metrics-kpi-card-BrnFhFQm.js → metrics-kpi-card-BVCuXeDa.js} +21 -10
  540. package/dist/metrics-kpi-card-BVCuXeDa.js.map +1 -0
  541. package/dist/{metrics-kpi-card-Bhb4R4z0.cjs → metrics-kpi-card-DoIeHfv6.cjs} +21 -10
  542. package/dist/metrics-kpi-card-DoIeHfv6.cjs.map +1 -0
  543. package/dist/{metrics-line-chart-0FR3SYSt.cjs → metrics-line-chart-BNNRRxM8.cjs} +61 -25
  544. package/dist/metrics-line-chart-BNNRRxM8.cjs.map +1 -0
  545. package/dist/{metrics-line-chart-knlgw8bV.js → metrics-line-chart-CT_pqJtC.js} +62 -27
  546. package/dist/metrics-line-chart-CT_pqJtC.js.map +1 -0
  547. package/dist/new/layout/page-header.cjs.js +1 -1
  548. package/dist/new/layout/page-header.es.js +1 -1
  549. package/dist/new/settings.cjs.js +2 -2
  550. package/dist/new/settings.es.js +2 -2
  551. package/dist/{page-header-CyXAezlZ.js → page-header-BGyZw13s.js} +2 -2
  552. package/dist/page-header-BGyZw13s.js.map +1 -0
  553. package/dist/{page-header-Dk3s3XtC.cjs → page-header-CqvBk1wE.cjs} +2 -2
  554. package/dist/page-header-CqvBk1wE.cjs.map +1 -0
  555. package/dist/{schemes-C9EhSOkB.js → schemes-CGK3gQJ6.js} +2 -2
  556. package/dist/{schemes-C9EhSOkB.js.map → schemes-CGK3gQJ6.js.map} +1 -1
  557. package/dist/{search-field-block-fU3tStmB.js → search-field-block-Dj2KJyjQ.js} +2 -2
  558. package/dist/{search-field-block-fU3tStmB.js.map → search-field-block-Dj2KJyjQ.js.map} +1 -1
  559. package/dist/{search-field-block-7-ufp4uG.cjs → search-field-block-K_e_S9WY.cjs} +2 -2
  560. package/dist/{search-field-block-7-ufp4uG.cjs.map → search-field-block-K_e_S9WY.cjs.map} +1 -1
  561. package/dist/{section-B9OLuEq3.js → section-Bi0g7cn6.js} +2 -2
  562. package/dist/{section-B9OLuEq3.js.map → section-Bi0g7cn6.js.map} +1 -1
  563. package/dist/{section-CTihfzmc.cjs → section-p9vCSmPq.cjs} +2 -2
  564. package/dist/{section-CTihfzmc.cjs.map → section-p9vCSmPq.cjs.map} +1 -1
  565. package/dist/{select-field-block-BfiHq9t6.js → select-field-block-BF8v698d.js} +2 -2
  566. package/dist/{select-field-block-BfiHq9t6.js.map → select-field-block-BF8v698d.js.map} +1 -1
  567. package/dist/{select-field-block-DJo2cX9Y.cjs → select-field-block-CaGjpIKM.cjs} +2 -2
  568. package/dist/{select-field-block-DJo2cX9Y.cjs.map → select-field-block-CaGjpIKM.cjs.map} +1 -1
  569. package/dist/{settings-row-BoAuUUuH.cjs → settings-row-Cr8gaO5a.cjs} +14 -4
  570. package/dist/settings-row-Cr8gaO5a.cjs.map +1 -0
  571. package/dist/{settings-row-B2IekRyH.js → settings-row-Cr9DsBSX.js} +14 -4
  572. package/dist/settings-row-Cr9DsBSX.js.map +1 -0
  573. package/dist/{span-payload-primitives-Buq9V8nK.js → span-payload-primitives-Dmzm3mb2.js} +2 -2
  574. package/dist/{span-payload-primitives-Buq9V8nK.js.map → span-payload-primitives-Dmzm3mb2.js.map} +1 -1
  575. package/dist/{span-payload-primitives-CjlNH9C-.cjs → span-payload-primitives-Dq8WqqNm.cjs} +2 -2
  576. package/dist/{span-payload-primitives-CjlNH9C-.cjs.map → span-payload-primitives-Dq8WqqNm.cjs.map} +1 -1
  577. package/dist/src/domains/capabilities/hooks/index.d.ts +3 -0
  578. package/dist/src/domains/capabilities/hooks/use-feedback-available.d.ts +8 -0
  579. package/dist/src/domains/capabilities/hooks/use-observability-capabilities.d.ts +22 -0
  580. package/dist/src/domains/capabilities/hooks/use-trace-query-available.d.ts +8 -0
  581. package/dist/src/domains/capabilities/index.d.ts +1 -0
  582. package/dist/src/domains/chat/messages/reasoning.d.ts +3 -1
  583. package/dist/src/domains/chat/messages/renderers/reasoning-part-renderer.d.ts +3 -1
  584. package/dist/src/domains/chat/stories/reasoning.stories.d.ts +1 -1
  585. package/dist/src/domains/memory/lib/timeline.d.ts +0 -1
  586. package/dist/src/domains/metrics/components/index.d.ts +1 -1
  587. package/dist/src/domains/metrics/components/kpi-card-view.d.ts +2 -1
  588. package/dist/src/domains/metrics/components/latency-card-view.d.ts +4 -1
  589. package/dist/src/domains/metrics/components/metrics-utils.d.ts +0 -2
  590. package/dist/src/domains/metrics/hooks/index.d.ts +1 -0
  591. package/dist/src/domains/metrics/hooks/use-latency-metrics.d.ts +2 -2
  592. package/dist/src/domains/metrics/hooks/use-token-usage-timeseries.d.ts +2 -1
  593. package/dist/src/domains/metrics/metrics-interval.d.ts +7 -0
  594. package/dist/src/domains/traces/components/trace-columns-menu.d.ts +3 -1
  595. package/dist/src/domains/traces/components/trace-data-panel-view.stories.d.ts +1 -1
  596. package/dist/src/domains/traces/hooks/index.d.ts +1 -0
  597. package/dist/src/domains/traces/hooks/use-trace-query.d.ts +19 -2
  598. package/dist/src/domains/traces/hooks/use-traces-list-source.d.ts +46 -0
  599. package/dist/src/domains/traces/trace-filters.d.ts +6 -1
  600. package/dist/src/domains/traces/utils/index.d.ts +1 -1
  601. package/dist/src/domains/traces/utils/span-utils.d.ts +1 -6
  602. package/dist/src/ds/components/Card/Card.d.ts +2 -2
  603. package/dist/src/ds/components/CompactNumber/compact-number.d.ts +6 -0
  604. package/dist/src/ds/components/CompactNumber/compact-number.stories.d.ts +7 -0
  605. package/dist/src/ds/components/CompactNumber/index.d.ts +1 -0
  606. package/dist/src/ds/components/DataList/data-list-cells.d.ts +4 -3
  607. package/dist/src/ds/components/InlineCode/index.d.ts +1 -0
  608. package/dist/src/ds/components/InlineCode/inline-code.d.ts +3 -0
  609. package/dist/src/ds/components/InlineCode/inline-code.stories.d.ts +13 -0
  610. package/dist/src/ds/components/ItemList/item-list-date-cell.d.ts +3 -2
  611. package/dist/src/ds/components/MetricsCardGroup/metrics-card-group.d.ts +3 -8
  612. package/dist/src/ds/components/MetricsLineChart/index.d.ts +1 -0
  613. package/dist/src/ds/components/MetricsLineChart/metrics-line-chart-legend.d.ts +6 -0
  614. package/dist/src/ds/components/MetricsLineChart/metrics-line-chart.d.ts +6 -4
  615. package/dist/src/ds/components/MetricsLineChart/metrics-line-chart.stories.d.ts +1 -0
  616. package/dist/src/ds/components/RelativeTimestamp/index.d.ts +1 -0
  617. package/dist/src/ds/components/RelativeTimestamp/relative-timestamp.d.ts +6 -0
  618. package/dist/src/ds/components/RelativeTimestamp/relative-timestamp.stories.d.ts +7 -0
  619. package/dist/src/ds/components/StatusIndicators/status-dot-styles.d.ts +31 -2
  620. package/dist/src/ds/components/StatusIndicators/status-dot.stories.d.ts +3 -4
  621. package/dist/src/ds/components/StatusIndicators/status.d.ts +2 -3
  622. package/dist/src/ds/components/StatusIndicators/status.stories.d.ts +2 -1
  623. package/dist/src/ds/components/Txt/Txt.d.ts +5 -1
  624. package/dist/src/ds/components/ai/task-list/task-graph-node.d.ts +8 -0
  625. package/dist/src/ds/components/ai/task-list/task-graph.d.ts +8 -0
  626. package/dist/src/ds/components/ai/task-list/task-list.d.ts +4 -8
  627. package/dist/src/ds/components/ai/task-list/task-list.stories.d.ts +1 -1
  628. package/dist/src/ds/components/ai/task-list/use-focused-row-scroll.d.ts +12 -0
  629. package/dist/src/ds/new/layout/page-header/page-header.stories.d.ts +1 -0
  630. package/dist/src/ds/new/settings/settings-row.d.ts +3 -1
  631. package/dist/src/ds/new/settings/settings.stories.d.ts +1 -0
  632. package/dist/src/hooks/stories/state/use-elapsed-time.stories.d.ts +17 -0
  633. package/dist/src/hooks/use-elapsed-time.d.ts +2 -0
  634. package/dist/src/lib/cost.d.ts +6 -0
  635. package/dist/src/utils/cost.d.ts +1 -0
  636. package/dist/src/utils/date-format.d.ts +28 -0
  637. package/dist/src/utils/duration.d.ts +7 -1
  638. package/dist/src/utils/relative-time.d.ts +7 -0
  639. package/dist/style.css +329 -18
  640. package/dist/{text-field-block-DGIM1i3Z.js → text-field-block-BYPiO9h4.js} +2 -2
  641. package/dist/{text-field-block-DGIM1i3Z.js.map → text-field-block-BYPiO9h4.js.map} +1 -1
  642. package/dist/{text-field-block-DePCgDOh.cjs → text-field-block-CRh8sRXP.cjs} +2 -2
  643. package/dist/{text-field-block-DePCgDOh.cjs.map → text-field-block-CRh8sRXP.cjs.map} +1 -1
  644. package/dist/{tool-call-Bs-9Cah5.js → tool-call-CIeNEYpK.js} +2 -2
  645. package/dist/{tool-call-Bs-9Cah5.js.map → tool-call-CIeNEYpK.js.map} +1 -1
  646. package/dist/{tool-call-C0JeHe8Z.cjs → tool-call-CnEm3eE0.cjs} +2 -2
  647. package/dist/{tool-call-C0JeHe8Z.cjs.map → tool-call-CnEm3eE0.cjs.map} +1 -1
  648. package/dist/{traces-data-list-Dam8-XW-.cjs → traces-data-list-C5KZesk6.cjs} +5 -5
  649. package/dist/{traces-data-list-Dam8-XW-.cjs.map → traces-data-list-C5KZesk6.cjs.map} +1 -1
  650. package/dist/{traces-data-list-Dvi0s56v.js → traces-data-list-CdWW9J6z.js} +5 -5
  651. package/dist/{traces-data-list-Dvi0s56v.js.map → traces-data-list-CdWW9J6z.js.map} +1 -1
  652. package/dist/utils/cost.cjs.js +40 -0
  653. package/dist/utils/cost.cjs.js.map +1 -0
  654. package/dist/utils/cost.d.ts +2 -0
  655. package/dist/utils/cost.es.js +34 -0
  656. package/dist/utils/cost.es.js.map +1 -0
  657. package/dist/utils/date-format.cjs.js +99 -0
  658. package/dist/utils/date-format.cjs.js.map +1 -0
  659. package/dist/utils/date-format.d.ts +2 -0
  660. package/dist/utils/date-format.es.js +91 -0
  661. package/dist/utils/date-format.es.js.map +1 -0
  662. package/dist/utils/duration.cjs.js +19 -2
  663. package/dist/utils/duration.cjs.js.map +1 -1
  664. package/dist/utils/duration.es.js +18 -3
  665. package/dist/utils/duration.es.js.map +1 -1
  666. package/dist/utils/file.es.js +2 -2
  667. package/dist/utils/relative-time.cjs.js +12 -0
  668. package/dist/utils/relative-time.cjs.js.map +1 -0
  669. package/dist/utils/relative-time.d.ts +2 -0
  670. package/dist/utils/relative-time.es.js +8 -0
  671. package/dist/utils/relative-time.es.js.map +1 -0
  672. package/package.json +7 -7
  673. package/dist/Badge-BEeYtjmv.cjs.map +0 -1
  674. package/dist/Badge-TD55_qZJ.js.map +0 -1
  675. package/dist/Txt-B4-2nLaI.cjs.map +0 -1
  676. package/dist/Txt-DTh3Pa_a.js.map +0 -1
  677. package/dist/data-list-top-DpbOA3uw.js.map +0 -1
  678. package/dist/data-list-top-WGUY167p.cjs.map +0 -1
  679. package/dist/field-error-id-6EfqmQ4C.cjs.map +0 -1
  680. package/dist/field-error-id-DyWx33Fu.js.map +0 -1
  681. package/dist/metrics-card-Bzm6m1dy.js.map +0 -1
  682. package/dist/metrics-card-DCCHIG-z.cjs.map +0 -1
  683. package/dist/metrics-kpi-card-Bhb4R4z0.cjs.map +0 -1
  684. package/dist/metrics-kpi-card-BrnFhFQm.js.map +0 -1
  685. package/dist/metrics-line-chart-0FR3SYSt.cjs.map +0 -1
  686. package/dist/metrics-line-chart-knlgw8bV.js.map +0 -1
  687. package/dist/page-header-CyXAezlZ.js.map +0 -1
  688. package/dist/page-header-Dk3s3XtC.cjs.map +0 -1
  689. package/dist/settings-row-B2IekRyH.js.map +0 -1
  690. package/dist/settings-row-BoAuUUuH.cjs.map +0 -1
  691. package/dist/src/ds/components/Table/utils.d.ts +0 -4
@@ -1 +1 @@
1
- {"version":3,"file":"text-field-block-DePCgDOh.cjs","sources":["../src/ds/components/FormFieldBlocks/fields/text-field-block.tsx"],"sourcesContent":["import { Input } from '../../Input';\nimport type { InputProps } from '../../Input';\nimport { FieldBlock } from '../block/field-block';\nimport type { FieldBlockErrorMsgProps } from '../block/field-block-error-msg';\nimport type { FieldBlockHelpTextProps } from '../block/field-block-help-text';\nimport type { FieldBlockLabelProps } from '../block/field-block-label';\nimport type { FieldBlockLayoutProps } from '../block/field-block-layout';\nimport { fieldErrorId } from '../block/field-error-id';\nimport { VisuallyHidden } from '@/ds/primitives/visually-hidden';\n\nexport type TextFieldBlockProps = Pick<FieldBlockLayoutProps, 'layout' | 'labelColumnWidth'> &\n Omit<InputProps, 'name' | 'size'> & {\n name: string;\n labelIsHidden?: boolean;\n label?: FieldBlockLabelProps['children'];\n labelSize?: FieldBlockLabelProps['size'];\n helpText?: FieldBlockHelpTextProps['children'];\n errorMsg?: FieldBlockErrorMsgProps['children'];\n size?: InputProps['size'];\n };\n\nexport function TextFieldBlock({\n name,\n value,\n label,\n labelIsHidden = false,\n labelColumnWidth,\n helpText,\n error,\n errorMsg,\n required = false,\n disabled = false,\n labelSize,\n layout = 'vertical',\n placeholder,\n size = 'md',\n testId,\n className,\n 'aria-describedby': ariaDescribedBy,\n ...props\n}: TextFieldBlockProps) {\n const describedBy =\n [ariaDescribedBy, errorMsg ? fieldErrorId(name) : undefined].filter(Boolean).join(' ') || undefined;\n\n return (\n <FieldBlock.Layout layout={layout} labelColumnWidth={labelColumnWidth} className={className}>\n {layout === 'horizontal' ? (\n <FieldBlock.Column>\n <FieldBlock.Label name={name} required={required} disabled={disabled} size={labelSize || 'bigger'}>\n {labelIsHidden ? <VisuallyHidden>{label}</VisuallyHidden> : label}\n </FieldBlock.Label>\n </FieldBlock.Column>\n ) : null}\n <FieldBlock.Column>\n {!labelIsHidden && layout === 'vertical' ? (\n <FieldBlock.Label name={name} required={required} disabled={disabled} size={labelSize || 'default'}>\n {label}\n </FieldBlock.Label>\n ) : null}\n <FieldBlock.Column className=\"gap-1\">\n <Input\n id={`input-${name}`}\n name={name}\n disabled={disabled}\n required={required}\n value={value}\n placeholder={placeholder}\n data-testid={testId}\n size={size}\n error={error || Boolean(errorMsg)}\n aria-describedby={describedBy}\n {...props}\n />\n {helpText || errorMsg ? <FieldBlock.Message name={name} helpText={helpText} errorMsg={errorMsg} /> : null}\n </FieldBlock.Column>\n </FieldBlock.Column>\n </FieldBlock.Layout>\n );\n}\n"],"names":["fieldErrorId","FieldBlock","jsx","VisuallyHidden","jsxs","Input"],"mappings":";;;;;;;AAqBO,SAAS,cAAA,CAAe;AAAA,EAC7B,IAAA;AAAA,EACA,KAAA;AAAA,EACA,KAAA;AAAA,EACA,aAAA,GAAgB,KAAA;AAAA,EAChB,gBAAA;AAAA,EACA,QAAA;AAAA,EACA,KAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA,GAAW,KAAA;AAAA,EACX,QAAA,GAAW,KAAA;AAAA,EACX,SAAA;AAAA,EACA,MAAA,GAAS,UAAA;AAAA,EACT,WAAA;AAAA,EACA,IAAA,GAAO,IAAA;AAAA,EACP,MAAA;AAAA,EACA,SAAA;AAAA,EACA,kBAAA,EAAoB,eAAA;AAAA,EACpB,GAAG;AACL,CAAA,EAAwB;AACtB,EAAA,MAAM,WAAA,GACJ,CAAC,eAAA,EAAiB,QAAA,GAAWA,0BAAa,IAAI,CAAA,GAAI,MAAS,CAAA,CAAE,MAAA,CAAO,OAAO,CAAA,CAAE,IAAA,CAAK,GAAG,CAAA,IAAK,MAAA;AAE5F,EAAA,uCACGC,uBAAA,CAAW,MAAA,EAAX,EAAkB,MAAA,EAAgB,kBAAoC,SAAA,EACpE,QAAA,EAAA;AAAA,IAAA,MAAA,KAAW,YAAA,kCACTA,uBAAA,CAAW,MAAA,EAAX,EACC,QAAA,kBAAAC,cAAA,CAACD,uBAAA,CAAW,KAAA,EAAX,EAAiB,IAAA,EAAY,QAAA,EAAoB,UAAoB,IAAA,EAAM,SAAA,IAAa,UACtF,QAAA,EAAA,aAAA,mBAAgBC,cAAA,CAACC,sCAAgB,QAAA,EAAA,KAAA,EAAM,CAAA,GAAoB,KAAA,EAC9D,CAAA,EACF,CAAA,GACE,IAAA;AAAA,oBACJC,eAAA,CAACH,uBAAA,CAAW,MAAA,EAAX,EACE,QAAA,EAAA;AAAA,MAAA,CAAC,aAAA,IAAiB,MAAA,KAAW,UAAA,mBAC5BC,cAAA,CAACD,wBAAW,KAAA,EAAX,EAAiB,IAAA,EAAY,QAAA,EAAoB,QAAA,EAAoB,IAAA,EAAM,SAAA,IAAa,SAAA,EACtF,iBACH,CAAA,GACE,IAAA;AAAA,sBACJG,eAAA,CAACH,uBAAA,CAAW,MAAA,EAAX,EAAkB,WAAU,OAAA,EAC3B,QAAA,EAAA;AAAA,wBAAAC,cAAA;AAAA,UAACG,WAAA;AAAA,UAAA;AAAA,YACC,EAAA,EAAI,SAAS,IAAI,CAAA,CAAA;AAAA,YACjB,IAAA;AAAA,YACA,QAAA;AAAA,YACA,QAAA;AAAA,YACA,KAAA;AAAA,YACA,WAAA;AAAA,YACA,aAAA,EAAa,MAAA;AAAA,YACb,IAAA;AAAA,YACA,KAAA,EAAO,KAAA,IAAS,OAAA,CAAQ,QAAQ,CAAA;AAAA,YAChC,kBAAA,EAAkB,WAAA;AAAA,YACjB,GAAG;AAAA;AAAA,SACN;AAAA,QACC,QAAA,IAAY,2BAAWH,cAAA,CAACD,uBAAA,CAAW,SAAX,EAAmB,IAAA,EAAY,QAAA,EAAoB,QAAA,EAAoB,CAAA,GAAK;AAAA,OAAA,EACvG;AAAA,KAAA,EACF;AAAA,GAAA,EACF,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"text-field-block-CRh8sRXP.cjs","sources":["../src/ds/components/FormFieldBlocks/fields/text-field-block.tsx"],"sourcesContent":["import { Input } from '../../Input';\nimport type { InputProps } from '../../Input';\nimport { FieldBlock } from '../block/field-block';\nimport type { FieldBlockErrorMsgProps } from '../block/field-block-error-msg';\nimport type { FieldBlockHelpTextProps } from '../block/field-block-help-text';\nimport type { FieldBlockLabelProps } from '../block/field-block-label';\nimport type { FieldBlockLayoutProps } from '../block/field-block-layout';\nimport { fieldErrorId } from '../block/field-error-id';\nimport { VisuallyHidden } from '@/ds/primitives/visually-hidden';\n\nexport type TextFieldBlockProps = Pick<FieldBlockLayoutProps, 'layout' | 'labelColumnWidth'> &\n Omit<InputProps, 'name' | 'size'> & {\n name: string;\n labelIsHidden?: boolean;\n label?: FieldBlockLabelProps['children'];\n labelSize?: FieldBlockLabelProps['size'];\n helpText?: FieldBlockHelpTextProps['children'];\n errorMsg?: FieldBlockErrorMsgProps['children'];\n size?: InputProps['size'];\n };\n\nexport function TextFieldBlock({\n name,\n value,\n label,\n labelIsHidden = false,\n labelColumnWidth,\n helpText,\n error,\n errorMsg,\n required = false,\n disabled = false,\n labelSize,\n layout = 'vertical',\n placeholder,\n size = 'md',\n testId,\n className,\n 'aria-describedby': ariaDescribedBy,\n ...props\n}: TextFieldBlockProps) {\n const describedBy =\n [ariaDescribedBy, errorMsg ? fieldErrorId(name) : undefined].filter(Boolean).join(' ') || undefined;\n\n return (\n <FieldBlock.Layout layout={layout} labelColumnWidth={labelColumnWidth} className={className}>\n {layout === 'horizontal' ? (\n <FieldBlock.Column>\n <FieldBlock.Label name={name} required={required} disabled={disabled} size={labelSize || 'bigger'}>\n {labelIsHidden ? <VisuallyHidden>{label}</VisuallyHidden> : label}\n </FieldBlock.Label>\n </FieldBlock.Column>\n ) : null}\n <FieldBlock.Column>\n {!labelIsHidden && layout === 'vertical' ? (\n <FieldBlock.Label name={name} required={required} disabled={disabled} size={labelSize || 'default'}>\n {label}\n </FieldBlock.Label>\n ) : null}\n <FieldBlock.Column className=\"gap-1\">\n <Input\n id={`input-${name}`}\n name={name}\n disabled={disabled}\n required={required}\n value={value}\n placeholder={placeholder}\n data-testid={testId}\n size={size}\n error={error || Boolean(errorMsg)}\n aria-describedby={describedBy}\n {...props}\n />\n {helpText || errorMsg ? <FieldBlock.Message name={name} helpText={helpText} errorMsg={errorMsg} /> : null}\n </FieldBlock.Column>\n </FieldBlock.Column>\n </FieldBlock.Layout>\n );\n}\n"],"names":["fieldErrorId","FieldBlock","jsx","VisuallyHidden","jsxs","Input"],"mappings":";;;;;;;AAqBO,SAAS,cAAA,CAAe;AAAA,EAC7B,IAAA;AAAA,EACA,KAAA;AAAA,EACA,KAAA;AAAA,EACA,aAAA,GAAgB,KAAA;AAAA,EAChB,gBAAA;AAAA,EACA,QAAA;AAAA,EACA,KAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA,GAAW,KAAA;AAAA,EACX,QAAA,GAAW,KAAA;AAAA,EACX,SAAA;AAAA,EACA,MAAA,GAAS,UAAA;AAAA,EACT,WAAA;AAAA,EACA,IAAA,GAAO,IAAA;AAAA,EACP,MAAA;AAAA,EACA,SAAA;AAAA,EACA,kBAAA,EAAoB,eAAA;AAAA,EACpB,GAAG;AACL,CAAA,EAAwB;AACtB,EAAA,MAAM,WAAA,GACJ,CAAC,eAAA,EAAiB,QAAA,GAAWA,0BAAa,IAAI,CAAA,GAAI,MAAS,CAAA,CAAE,MAAA,CAAO,OAAO,CAAA,CAAE,IAAA,CAAK,GAAG,CAAA,IAAK,MAAA;AAE5F,EAAA,uCACGC,uBAAA,CAAW,MAAA,EAAX,EAAkB,MAAA,EAAgB,kBAAoC,SAAA,EACpE,QAAA,EAAA;AAAA,IAAA,MAAA,KAAW,YAAA,kCACTA,uBAAA,CAAW,MAAA,EAAX,EACC,QAAA,kBAAAC,cAAA,CAACD,uBAAA,CAAW,KAAA,EAAX,EAAiB,IAAA,EAAY,QAAA,EAAoB,UAAoB,IAAA,EAAM,SAAA,IAAa,UACtF,QAAA,EAAA,aAAA,mBAAgBC,cAAA,CAACC,sCAAgB,QAAA,EAAA,KAAA,EAAM,CAAA,GAAoB,KAAA,EAC9D,CAAA,EACF,CAAA,GACE,IAAA;AAAA,oBACJC,eAAA,CAACH,uBAAA,CAAW,MAAA,EAAX,EACE,QAAA,EAAA;AAAA,MAAA,CAAC,aAAA,IAAiB,MAAA,KAAW,UAAA,mBAC5BC,cAAA,CAACD,wBAAW,KAAA,EAAX,EAAiB,IAAA,EAAY,QAAA,EAAoB,QAAA,EAAoB,IAAA,EAAM,SAAA,IAAa,SAAA,EACtF,iBACH,CAAA,GACE,IAAA;AAAA,sBACJG,eAAA,CAACH,uBAAA,CAAW,MAAA,EAAX,EAAkB,WAAU,OAAA,EAC3B,QAAA,EAAA;AAAA,wBAAAC,cAAA;AAAA,UAACG,WAAA;AAAA,UAAA;AAAA,YACC,EAAA,EAAI,SAAS,IAAI,CAAA,CAAA;AAAA,YACjB,IAAA;AAAA,YACA,QAAA;AAAA,YACA,QAAA;AAAA,YACA,KAAA;AAAA,YACA,WAAA;AAAA,YACA,aAAA,EAAa,MAAA;AAAA,YACb,IAAA;AAAA,YACA,KAAA,EAAO,KAAA,IAAS,OAAA,CAAQ,QAAQ,CAAA;AAAA,YAChC,kBAAA,EAAkB,WAAA;AAAA,YACjB,GAAG;AAAA;AAAA,SACN;AAAA,QACC,QAAA,IAAY,2BAAWH,cAAA,CAACD,uBAAA,CAAW,SAAX,EAAmB,IAAA,EAAY,QAAA,EAAoB,QAAA,EAAoB,CAAA,GAAK;AAAA,OAAA,EACvG;AAAA,KAAA,EACF;AAAA,GAAA,EACF,CAAA;AAEJ;;;;"}
@@ -5,7 +5,7 @@ import { u as useArriving } from './use-watched-CG9KoWl3.js';
5
5
  import { C as Collapsible, b as CollapsibleTrigger, a as CollapsibleContent } from './collapsible-DhhP5p1j.js';
6
6
  import { C as CopyButton } from './copy-button-DcZ1mdw4.js';
7
7
  import { S as Shimmer } from './shimmer-BN7Dzm37.js';
8
- import { T as Txt } from './Txt-DTh3Pa_a.js';
8
+ import { T as Txt } from './Txt-BP1SRHmL.js';
9
9
  import { c as cn } from './cn-65Adrsfj.js';
10
10
 
11
11
  const ToolCallContext = createContext(void 0);
@@ -179,4 +179,4 @@ const ToolCallCommand = ({ command }) => /* @__PURE__ */ jsxs(ToolCallMono, { co
179
179
  ] });
180
180
 
181
181
  export { ToolCall as T, ToolCallTrigger as a, ToolCallTrailing as b, ToolCallContent as c, ToolCallHeader as d, ToolCallIcon as e, ToolCallLabel as f, ToolCallDetail as g, ToolCallSpacer as h, ToolCallDisclosure as i, ToolCallPresentedHeader as j, ToolCallMono as k, ToolCallSummary as l, ToolCallCommand as m };
182
- //# sourceMappingURL=tool-call-Bs-9Cah5.js.map
182
+ //# sourceMappingURL=tool-call-CIeNEYpK.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tool-call-Bs-9Cah5.js","sources":["../src/ds/components/ai/tool-call/tool-call.tsx"],"sourcesContent":["import { ChevronRight, X } from 'lucide-react';\nimport type { LucideIcon } from 'lucide-react';\nimport { createContext, useContext, useId, useState } from 'react';\nimport type { ComponentProps, ReactNode } from 'react';\nimport { useArriving } from '@/ds/components/Arrival';\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from '@/ds/components/Collapsible';\nimport { CopyButton } from '@/ds/components/CopyButton';\nimport { Shimmer } from '@/ds/components/Shimmer';\nimport { Txt } from '@/ds/components/Txt';\nimport { cn } from '@/lib/utils';\n\ntype ToolCallStatus = 'idle' | 'running' | 'error';\n\ninterface ToolCallContextValue {\n open: boolean;\n status: ToolCallStatus;\n}\n\nconst ToolCallContext = createContext<ToolCallContextValue | undefined>(undefined);\n\n// Stryker disable next-line ArrowFunction: the default callback is intentionally behaviorless.\nconst noopOpenChange = () => {};\n\nfunction useToolCall() {\n const context = useContext(ToolCallContext);\n if (!context) throw new Error('ToolCall compounds must be rendered within ToolCall');\n return context;\n}\n\nexport interface ToolCallProps extends Omit<\n ComponentProps<typeof Collapsible>,\n 'defaultOpen' | 'onOpenChange' | 'open'\n> {\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n status?: ToolCallStatus;\n}\n\nexport function ToolCall({\n open: controlledOpen,\n defaultOpen = false,\n onOpenChange = noopOpenChange,\n status = 'idle',\n className,\n children,\n ...props\n}: ToolCallProps) {\n const [uncontrolledOpen, setUncontrolledOpen] = useState(defaultOpen);\n const open = controlledOpen ?? uncontrolledOpen;\n const statusId = useId();\n\n const handleOpenChange = (nextOpen: boolean) => {\n if (controlledOpen === undefined) setUncontrolledOpen(nextOpen);\n onOpenChange(nextOpen);\n };\n\n return (\n <ToolCallContext.Provider value={{ open, status }}>\n <Collapsible\n open={open}\n onOpenChange={handleOpenChange}\n className={cn('max-w-full min-w-0', className)}\n role=\"group\"\n aria-busy={status === 'running'}\n aria-invalid={status === 'error' || undefined}\n aria-describedby={status === 'idle' ? undefined : statusId}\n data-status={status}\n {...props}\n >\n {children}\n {status !== 'idle' && (\n <span id={statusId} className=\"sr-only\">\n {status === 'running' ? 'Tool call running' : 'Tool call failed'}\n </span>\n )}\n </Collapsible>\n </ToolCallContext.Provider>\n );\n}\n\nexport const ToolCallTrigger = ({ className, ...props }: ComponentProps<typeof CollapsibleTrigger>) => (\n <CollapsibleTrigger\n className={cn(\n 'group/row w-full cursor-pointer rounded-md text-left transition-colors hover:bg-fill focus-visible:ring-1 focus-visible:ring-accent1 focus-visible:outline-hidden motion-reduce:transition-none',\n className,\n )}\n {...props}\n />\n);\n\nexport const ToolCallHeader = ({ className, children, ...props }: ComponentProps<'span'>) => {\n const { status } = useToolCall();\n\n return (\n <Shimmer\n active={status === 'running'}\n className={cn('flex w-full min-w-0 items-center gap-2 px-1.5 py-1', className)}\n {...props}\n >\n {children}\n </Shimmer>\n );\n};\n\nexport const ToolCallIcon = ({ className, ...props }: ComponentProps<'span'>) => (\n <span className={cn('flex size-4 shrink-0 items-center justify-center', className)} {...props} />\n);\n\nexport const ToolCallLabel = ({ className, ...props }: ComponentProps<typeof Txt>) => (\n <Txt as=\"span\" variant=\"caption\" tone=\"muted\" className={cn('max-w-[55%] shrink-0 truncate', className)} {...props} />\n);\n\nexport const ToolCallDetail = ({ className, ...props }: ComponentProps<typeof Txt>) => {\n const arriving = useArriving();\n\n return (\n <Txt\n as=\"span\"\n variant=\"meta\"\n tone=\"muted\"\n font=\"mono\"\n className={cn('min-w-0 truncate', arriving, className)}\n {...props}\n />\n );\n};\n\nexport const ToolCallSummary = ({ className, ...props }: ComponentProps<'span'>) => (\n <span className={cn('flex min-w-0 items-center gap-1', className)} {...props} />\n);\n\nexport interface ToolCallSpacerProps extends ComponentProps<'span'> {\n rule?: boolean;\n}\n\nexport const ToolCallSpacer = ({ rule, className, ...props }: ToolCallSpacerProps) => (\n <span\n aria-hidden\n className={cn('min-w-2 flex-1', rule && 'h-px bg-border mask-r-from-[calc(100%-min(100%,160px))]', className)}\n {...props}\n />\n);\n\nexport const ToolCallTrailing = ({ className, ...props }: ComponentProps<'span'>) => (\n <span className={cn('flex shrink-0 items-center', className)} {...props} />\n);\n\nexport const ToolCallDisclosure = ({ className, children, ...props }: ComponentProps<'span'>) => {\n const { open } = useToolCall();\n\n return (\n <span className={cn('flex size-4 shrink-0 items-center justify-center', className)} {...props}>\n <span\n aria-hidden\n className={cn(\n 'flex shrink-0 items-center text-muted-foreground opacity-0 transition duration-150 motion-reduce:transition-none',\n 'group-hover/row:opacity-100 group-focus-visible/row:opacity-100',\n open && 'rotate-90 opacity-100',\n )}\n >\n {children ?? <ChevronRight size={13} />}\n </span>\n </span>\n );\n};\n\nexport interface ToolCallPresentedHeaderProps extends Omit<ComponentProps<typeof ToolCallHeader>, 'children'> {\n /** Rendered ahead of the icon, e.g. a timestamp. */\n leading?: ReactNode;\n icon: LucideIcon;\n label: string;\n detail?: string;\n disclosure?: boolean;\n}\n\n/** The canonical header of a presented tool call: icon, label, detail, failure mark, chevron. */\nexport const ToolCallPresentedHeader = ({\n leading,\n icon: Icon,\n label,\n detail,\n disclosure = true,\n ...props\n}: ToolCallPresentedHeaderProps) => {\n const { status } = useToolCall();\n\n return (\n <ToolCallHeader {...props}>\n {leading}\n <ToolCallIcon>\n <Icon\n size={14}\n strokeWidth={1.75}\n aria-hidden\n className={status === 'error' ? 'text-error/80' : 'text-placeholder'}\n />\n </ToolCallIcon>\n <ToolCallLabel>{label}</ToolCallLabel>\n {detail && <ToolCallDetail>{detail}</ToolCallDetail>}\n <ToolCallSpacer />\n {status === 'error' && (\n <ToolCallTrailing>\n <X size={13} role=\"img\" aria-label=\"Failed\" className=\"shrink-0 text-error\" />\n </ToolCallTrailing>\n )}\n {disclosure && <ToolCallDisclosure />}\n </ToolCallHeader>\n );\n};\n\nexport const ToolCallContent = ({ className, children, ...props }: ComponentProps<typeof CollapsibleContent>) => (\n <CollapsibleContent className=\"max-w-full min-w-0\" {...props}>\n <div\n className={cn(\n \"relative ml-[14px] flex max-w-full min-w-0 flex-col gap-1.5 py-1.5 pr-1 pl-4 before:absolute before:inset-y-0 before:left-0 before:w-px before:bg-border before:mask-b-from-[calc(100%-min(40%,80px))] before:content-['']\",\n className,\n )}\n >\n {children}\n </div>\n </CollapsibleContent>\n);\n\nexport interface ToolCallMonoProps extends ComponentProps<'pre'> {\n copyText: string;\n}\n\n/** Monospace body block of an expanded call — arguments, command, output — with a hover copy. */\nexport const ToolCallMono = ({ copyText, className, children, ...props }: ToolCallMonoProps) => (\n <div className=\"group/block relative max-w-full min-w-0\">\n <pre\n className={cn(\n 'm-0 max-h-60 max-w-full overflow-auto rounded-md bg-fill px-3 py-2 font-mono text-caption break-words whitespace-pre-wrap',\n className,\n )}\n {...props}\n >\n {children}\n </pre>\n <CopyButton\n content={copyText}\n size=\"sm\"\n variant=\"ghost\"\n className=\"absolute top-1 right-1 opacity-0 transition-opacity group-hover/block:opacity-100 focus-visible:opacity-100\"\n />\n </div>\n);\n\n/** A shell command as the body shows it: `$` in the margin, the copy takes the command alone. */\nexport const ToolCallCommand = ({ command }: { command: string }) => (\n <ToolCallMono copyText={command} className=\"text-foreground\">\n <span className=\"text-muted-foreground select-none\">$ </span>\n {command}\n </ToolCallMono>\n);\n\nexport type { ToolCallStatus };\n"],"names":[],"mappings":";;;;;;;;;;AAkBA,MAAM,eAAA,GAAkB,cAAgD,MAAS,CAAA;AAGjF,MAAM,iBAAiB,MAAM;AAAC,CAAA;AAE9B,SAAS,WAAA,GAAc;AACrB,EAAA,MAAM,OAAA,GAAU,WAAW,eAAe,CAAA;AAC1C,EAAA,IAAI,CAAC,OAAA,EAAS,MAAM,IAAI,MAAM,qDAAqD,CAAA;AACnF,EAAA,OAAO,OAAA;AACT;AAYO,SAAS,QAAA,CAAS;AAAA,EACvB,IAAA,EAAM,cAAA;AAAA,EACN,WAAA,GAAc,KAAA;AAAA,EACd,YAAA,GAAe,cAAA;AAAA,EACf,MAAA,GAAS,MAAA;AAAA,EACT,SAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAkB;AAChB,EAAA,MAAM,CAAC,gBAAA,EAAkB,mBAAmB,CAAA,GAAI,SAAS,WAAW,CAAA;AACpE,EAAA,MAAM,OAAO,cAAA,IAAkB,gBAAA;AAC/B,EAAA,MAAM,WAAW,KAAA,EAAM;AAEvB,EAAA,MAAM,gBAAA,GAAmB,CAAC,QAAA,KAAsB;AAC9C,IAAA,IAAI,cAAA,KAAmB,MAAA,EAAW,mBAAA,CAAoB,QAAQ,CAAA;AAC9D,IAAA,YAAA,CAAa,QAAQ,CAAA;AAAA,EACvB,CAAA;AAEA,EAAA,uBACE,GAAA,CAAC,gBAAgB,QAAA,EAAhB,EAAyB,OAAO,EAAE,IAAA,EAAM,QAAO,EAC9C,QAAA,kBAAA,IAAA;AAAA,IAAC,WAAA;AAAA,IAAA;AAAA,MACC,IAAA;AAAA,MACA,YAAA,EAAc,gBAAA;AAAA,MACd,SAAA,EAAW,EAAA,CAAG,oBAAA,EAAsB,SAAS,CAAA;AAAA,MAC7C,IAAA,EAAK,OAAA;AAAA,MACL,aAAW,MAAA,KAAW,SAAA;AAAA,MACtB,cAAA,EAAc,WAAW,OAAA,IAAW,MAAA;AAAA,MACpC,kBAAA,EAAkB,MAAA,KAAW,MAAA,GAAS,MAAA,GAAY,QAAA;AAAA,MAClD,aAAA,EAAa,MAAA;AAAA,MACZ,GAAG,KAAA;AAAA,MAEH,QAAA,EAAA;AAAA,QAAA,QAAA;AAAA,QACA,MAAA,KAAW,MAAA,oBACV,GAAA,CAAC,MAAA,EAAA,EAAK,EAAA,EAAI,QAAA,EAAU,SAAA,EAAU,SAAA,EAC3B,QAAA,EAAA,MAAA,KAAW,SAAA,GAAY,mBAAA,GAAsB,kBAAA,EAChD;AAAA;AAAA;AAAA,GAEJ,EACF,CAAA;AAEJ;AAEO,MAAM,kBAAkB,CAAC,EAAE,SAAA,EAAW,GAAG,OAAM,qBACpD,GAAA;AAAA,EAAC,kBAAA;AAAA,EAAA;AAAA,IACC,SAAA,EAAW,EAAA;AAAA,MACT,iMAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN;AAGK,MAAM,iBAAiB,CAAC,EAAE,WAAW,QAAA,EAAU,GAAG,OAAM,KAA8B;AAC3F,EAAA,MAAM,EAAE,MAAA,EAAO,GAAI,WAAA,EAAY;AAE/B,EAAA,uBACE,GAAA;AAAA,IAAC,OAAA;AAAA,IAAA;AAAA,MACC,QAAQ,MAAA,KAAW,SAAA;AAAA,MACnB,SAAA,EAAW,EAAA,CAAG,oDAAA,EAAsD,SAAS,CAAA;AAAA,MAC5E,GAAG,KAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ;AAEO,MAAM,YAAA,GAAe,CAAC,EAAE,SAAA,EAAW,GAAG,KAAA,EAAM,qBACjD,GAAA,CAAC,MAAA,EAAA,EAAK,WAAW,EAAA,CAAG,kDAAA,EAAoD,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO;AAG1F,MAAM,aAAA,GAAgB,CAAC,EAAE,SAAA,EAAW,GAAG,KAAA,EAAM,yBACjD,GAAA,EAAA,EAAI,EAAA,EAAG,QAAO,OAAA,EAAQ,SAAA,EAAU,MAAK,OAAA,EAAQ,SAAA,EAAW,GAAG,+BAAA,EAAiC,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO;AAG/G,MAAM,iBAAiB,CAAC,EAAE,SAAA,EAAW,GAAG,OAAM,KAAkC;AACrF,EAAA,MAAM,WAAW,WAAA,EAAY;AAE7B,EAAA,uBACE,GAAA;AAAA,IAAC,GAAA;AAAA,IAAA;AAAA,MACC,EAAA,EAAG,MAAA;AAAA,MACH,OAAA,EAAQ,MAAA;AAAA,MACR,IAAA,EAAK,OAAA;AAAA,MACL,IAAA,EAAK,MAAA;AAAA,MACL,SAAA,EAAW,EAAA,CAAG,kBAAA,EAAoB,QAAA,EAAU,SAAS,CAAA;AAAA,MACpD,GAAG;AAAA;AAAA,GACN;AAEJ;AAEO,MAAM,eAAA,GAAkB,CAAC,EAAE,SAAA,EAAW,GAAG,KAAA,EAAM,qBACpD,GAAA,CAAC,MAAA,EAAA,EAAK,WAAW,EAAA,CAAG,iCAAA,EAAmC,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO;AAOzE,MAAM,iBAAiB,CAAC,EAAE,MAAM,SAAA,EAAW,GAAG,OAAM,qBACzD,GAAA;AAAA,EAAC,MAAA;AAAA,EAAA;AAAA,IACC,aAAA,EAAW,IAAA;AAAA,IACX,SAAA,EAAW,EAAA,CAAG,gBAAA,EAAkB,IAAA,IAAQ,2DAA2D,SAAS,CAAA;AAAA,IAC3G,GAAG;AAAA;AACN;AAGK,MAAM,gBAAA,GAAmB,CAAC,EAAE,SAAA,EAAW,GAAG,KAAA,EAAM,qBACrD,GAAA,CAAC,MAAA,EAAA,EAAK,WAAW,EAAA,CAAG,4BAAA,EAA8B,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO;AAGpE,MAAM,qBAAqB,CAAC,EAAE,WAAW,QAAA,EAAU,GAAG,OAAM,KAA8B;AAC/F,EAAA,MAAM,EAAE,IAAA,EAAK,GAAI,WAAA,EAAY;AAE7B,EAAA,uBACE,GAAA,CAAC,UAAK,SAAA,EAAW,EAAA,CAAG,oDAAoD,SAAS,CAAA,EAAI,GAAG,KAAA,EACtF,QAAA,kBAAA,GAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,aAAA,EAAW,IAAA;AAAA,MACX,SAAA,EAAW,EAAA;AAAA,QACT,kHAAA;AAAA,QACA,iEAAA;AAAA,QACA,IAAA,IAAQ;AAAA,OACV;AAAA,MAEC,QAAA,EAAA,QAAA,oBAAY,GAAA,CAAC,YAAA,EAAA,EAAa,IAAA,EAAM,EAAA,EAAI;AAAA;AAAA,GACvC,EACF,CAAA;AAEJ;AAYO,MAAM,0BAA0B,CAAC;AAAA,EACtC,OAAA;AAAA,EACA,IAAA,EAAM,IAAA;AAAA,EACN,KAAA;AAAA,EACA,MAAA;AAAA,EACA,UAAA,GAAa,IAAA;AAAA,EACb,GAAG;AACL,CAAA,KAAoC;AAClC,EAAA,MAAM,EAAE,MAAA,EAAO,GAAI,WAAA,EAAY;AAE/B,EAAA,uBACE,IAAA,CAAC,cAAA,EAAA,EAAgB,GAAG,KAAA,EACjB,QAAA,EAAA;AAAA,IAAA,OAAA;AAAA,wBACA,YAAA,EAAA,EACC,QAAA,kBAAA,GAAA;AAAA,MAAC,IAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAM,EAAA;AAAA,QACN,WAAA,EAAa,IAAA;AAAA,QACb,aAAA,EAAW,IAAA;AAAA,QACX,SAAA,EAAW,MAAA,KAAW,OAAA,GAAU,eAAA,GAAkB;AAAA;AAAA,KACpD,EACF,CAAA;AAAA,oBACA,GAAA,CAAC,iBAAe,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,IACrB,MAAA,oBAAU,GAAA,CAAC,cAAA,EAAA,EAAgB,QAAA,EAAA,MAAA,EAAO,CAAA;AAAA,wBAClC,cAAA,EAAA,EAAe,CAAA;AAAA,IACf,MAAA,KAAW,OAAA,oBACV,GAAA,CAAC,gBAAA,EAAA,EACC,8BAAC,CAAA,EAAA,EAAE,IAAA,EAAM,EAAA,EAAI,IAAA,EAAK,KAAA,EAAM,YAAA,EAAW,QAAA,EAAS,SAAA,EAAU,uBAAsB,CAAA,EAC9E,CAAA;AAAA,IAED,UAAA,wBAAe,kBAAA,EAAA,EAAmB;AAAA,GAAA,EACrC,CAAA;AAEJ;AAEO,MAAM,eAAA,GAAkB,CAAC,EAAE,SAAA,EAAW,QAAA,EAAU,GAAG,KAAA,EAAM,qBAC9D,GAAA,CAAC,kBAAA,EAAA,EAAmB,SAAA,EAAU,oBAAA,EAAsB,GAAG,KAAA,EACrD,QAAA,kBAAA,GAAA;AAAA,EAAC,KAAA;AAAA,EAAA;AAAA,IACC,SAAA,EAAW,EAAA;AAAA,MACT,4NAAA;AAAA,MACA;AAAA,KACF;AAAA,IAEC;AAAA;AACH,CAAA,EACF;AAQK,MAAM,YAAA,GAAe,CAAC,EAAE,QAAA,EAAU,SAAA,EAAW,QAAA,EAAU,GAAG,KAAA,EAAM,qBACrE,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,yCAAA,EACb,QAAA,EAAA;AAAA,kBAAA,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA;AAAA,QACT,2HAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAAA,kBACA,GAAA;AAAA,IAAC,UAAA;AAAA,IAAA;AAAA,MACC,OAAA,EAAS,QAAA;AAAA,MACT,IAAA,EAAK,IAAA;AAAA,MACL,OAAA,EAAQ,OAAA;AAAA,MACR,SAAA,EAAU;AAAA;AAAA;AACZ,CAAA,EACF;AAIK,MAAM,eAAA,GAAkB,CAAC,EAAE,OAAA,EAAQ,0BACvC,YAAA,EAAA,EAAa,QAAA,EAAU,OAAA,EAAS,SAAA,EAAU,iBAAA,EACzC,QAAA,EAAA;AAAA,kBAAA,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,mCAAA,EAAoC,QAAA,EAAA,IAAA,EAAE,CAAA;AAAA,EACrD;AAAA,CAAA,EACH;;;;"}
1
+ {"version":3,"file":"tool-call-CIeNEYpK.js","sources":["../src/ds/components/ai/tool-call/tool-call.tsx"],"sourcesContent":["import { ChevronRight, X } from 'lucide-react';\nimport type { LucideIcon } from 'lucide-react';\nimport { createContext, useContext, useId, useState } from 'react';\nimport type { ComponentProps, ReactNode } from 'react';\nimport { useArriving } from '@/ds/components/Arrival';\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from '@/ds/components/Collapsible';\nimport { CopyButton } from '@/ds/components/CopyButton';\nimport { Shimmer } from '@/ds/components/Shimmer';\nimport { Txt } from '@/ds/components/Txt';\nimport { cn } from '@/lib/utils';\n\ntype ToolCallStatus = 'idle' | 'running' | 'error';\n\ninterface ToolCallContextValue {\n open: boolean;\n status: ToolCallStatus;\n}\n\nconst ToolCallContext = createContext<ToolCallContextValue | undefined>(undefined);\n\n// Stryker disable next-line ArrowFunction: the default callback is intentionally behaviorless.\nconst noopOpenChange = () => {};\n\nfunction useToolCall() {\n const context = useContext(ToolCallContext);\n if (!context) throw new Error('ToolCall compounds must be rendered within ToolCall');\n return context;\n}\n\nexport interface ToolCallProps extends Omit<\n ComponentProps<typeof Collapsible>,\n 'defaultOpen' | 'onOpenChange' | 'open'\n> {\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n status?: ToolCallStatus;\n}\n\nexport function ToolCall({\n open: controlledOpen,\n defaultOpen = false,\n onOpenChange = noopOpenChange,\n status = 'idle',\n className,\n children,\n ...props\n}: ToolCallProps) {\n const [uncontrolledOpen, setUncontrolledOpen] = useState(defaultOpen);\n const open = controlledOpen ?? uncontrolledOpen;\n const statusId = useId();\n\n const handleOpenChange = (nextOpen: boolean) => {\n if (controlledOpen === undefined) setUncontrolledOpen(nextOpen);\n onOpenChange(nextOpen);\n };\n\n return (\n <ToolCallContext.Provider value={{ open, status }}>\n <Collapsible\n open={open}\n onOpenChange={handleOpenChange}\n className={cn('max-w-full min-w-0', className)}\n role=\"group\"\n aria-busy={status === 'running'}\n aria-invalid={status === 'error' || undefined}\n aria-describedby={status === 'idle' ? undefined : statusId}\n data-status={status}\n {...props}\n >\n {children}\n {status !== 'idle' && (\n <span id={statusId} className=\"sr-only\">\n {status === 'running' ? 'Tool call running' : 'Tool call failed'}\n </span>\n )}\n </Collapsible>\n </ToolCallContext.Provider>\n );\n}\n\nexport const ToolCallTrigger = ({ className, ...props }: ComponentProps<typeof CollapsibleTrigger>) => (\n <CollapsibleTrigger\n className={cn(\n 'group/row w-full cursor-pointer rounded-md text-left transition-colors hover:bg-fill focus-visible:ring-1 focus-visible:ring-accent1 focus-visible:outline-hidden motion-reduce:transition-none',\n className,\n )}\n {...props}\n />\n);\n\nexport const ToolCallHeader = ({ className, children, ...props }: ComponentProps<'span'>) => {\n const { status } = useToolCall();\n\n return (\n <Shimmer\n active={status === 'running'}\n className={cn('flex w-full min-w-0 items-center gap-2 px-1.5 py-1', className)}\n {...props}\n >\n {children}\n </Shimmer>\n );\n};\n\nexport const ToolCallIcon = ({ className, ...props }: ComponentProps<'span'>) => (\n <span className={cn('flex size-4 shrink-0 items-center justify-center', className)} {...props} />\n);\n\nexport const ToolCallLabel = ({ className, ...props }: ComponentProps<typeof Txt>) => (\n <Txt as=\"span\" variant=\"caption\" tone=\"muted\" className={cn('max-w-[55%] shrink-0 truncate', className)} {...props} />\n);\n\nexport const ToolCallDetail = ({ className, ...props }: ComponentProps<typeof Txt>) => {\n const arriving = useArriving();\n\n return (\n <Txt\n as=\"span\"\n variant=\"meta\"\n tone=\"muted\"\n font=\"mono\"\n className={cn('min-w-0 truncate', arriving, className)}\n {...props}\n />\n );\n};\n\nexport const ToolCallSummary = ({ className, ...props }: ComponentProps<'span'>) => (\n <span className={cn('flex min-w-0 items-center gap-1', className)} {...props} />\n);\n\nexport interface ToolCallSpacerProps extends ComponentProps<'span'> {\n rule?: boolean;\n}\n\nexport const ToolCallSpacer = ({ rule, className, ...props }: ToolCallSpacerProps) => (\n <span\n aria-hidden\n className={cn('min-w-2 flex-1', rule && 'h-px bg-border mask-r-from-[calc(100%-min(100%,160px))]', className)}\n {...props}\n />\n);\n\nexport const ToolCallTrailing = ({ className, ...props }: ComponentProps<'span'>) => (\n <span className={cn('flex shrink-0 items-center', className)} {...props} />\n);\n\nexport const ToolCallDisclosure = ({ className, children, ...props }: ComponentProps<'span'>) => {\n const { open } = useToolCall();\n\n return (\n <span className={cn('flex size-4 shrink-0 items-center justify-center', className)} {...props}>\n <span\n aria-hidden\n className={cn(\n 'flex shrink-0 items-center text-muted-foreground opacity-0 transition duration-150 motion-reduce:transition-none',\n 'group-hover/row:opacity-100 group-focus-visible/row:opacity-100',\n open && 'rotate-90 opacity-100',\n )}\n >\n {children ?? <ChevronRight size={13} />}\n </span>\n </span>\n );\n};\n\nexport interface ToolCallPresentedHeaderProps extends Omit<ComponentProps<typeof ToolCallHeader>, 'children'> {\n /** Rendered ahead of the icon, e.g. a timestamp. */\n leading?: ReactNode;\n icon: LucideIcon;\n label: string;\n detail?: string;\n disclosure?: boolean;\n}\n\n/** The canonical header of a presented tool call: icon, label, detail, failure mark, chevron. */\nexport const ToolCallPresentedHeader = ({\n leading,\n icon: Icon,\n label,\n detail,\n disclosure = true,\n ...props\n}: ToolCallPresentedHeaderProps) => {\n const { status } = useToolCall();\n\n return (\n <ToolCallHeader {...props}>\n {leading}\n <ToolCallIcon>\n <Icon\n size={14}\n strokeWidth={1.75}\n aria-hidden\n className={status === 'error' ? 'text-error/80' : 'text-placeholder'}\n />\n </ToolCallIcon>\n <ToolCallLabel>{label}</ToolCallLabel>\n {detail && <ToolCallDetail>{detail}</ToolCallDetail>}\n <ToolCallSpacer />\n {status === 'error' && (\n <ToolCallTrailing>\n <X size={13} role=\"img\" aria-label=\"Failed\" className=\"shrink-0 text-error\" />\n </ToolCallTrailing>\n )}\n {disclosure && <ToolCallDisclosure />}\n </ToolCallHeader>\n );\n};\n\nexport const ToolCallContent = ({ className, children, ...props }: ComponentProps<typeof CollapsibleContent>) => (\n <CollapsibleContent className=\"max-w-full min-w-0\" {...props}>\n <div\n className={cn(\n \"relative ml-[14px] flex max-w-full min-w-0 flex-col gap-1.5 py-1.5 pr-1 pl-4 before:absolute before:inset-y-0 before:left-0 before:w-px before:bg-border before:mask-b-from-[calc(100%-min(40%,80px))] before:content-['']\",\n className,\n )}\n >\n {children}\n </div>\n </CollapsibleContent>\n);\n\nexport interface ToolCallMonoProps extends ComponentProps<'pre'> {\n copyText: string;\n}\n\n/** Monospace body block of an expanded call — arguments, command, output — with a hover copy. */\nexport const ToolCallMono = ({ copyText, className, children, ...props }: ToolCallMonoProps) => (\n <div className=\"group/block relative max-w-full min-w-0\">\n <pre\n className={cn(\n 'm-0 max-h-60 max-w-full overflow-auto rounded-md bg-fill px-3 py-2 font-mono text-caption break-words whitespace-pre-wrap',\n className,\n )}\n {...props}\n >\n {children}\n </pre>\n <CopyButton\n content={copyText}\n size=\"sm\"\n variant=\"ghost\"\n className=\"absolute top-1 right-1 opacity-0 transition-opacity group-hover/block:opacity-100 focus-visible:opacity-100\"\n />\n </div>\n);\n\n/** A shell command as the body shows it: `$` in the margin, the copy takes the command alone. */\nexport const ToolCallCommand = ({ command }: { command: string }) => (\n <ToolCallMono copyText={command} className=\"text-foreground\">\n <span className=\"text-muted-foreground select-none\">$ </span>\n {command}\n </ToolCallMono>\n);\n\nexport type { ToolCallStatus };\n"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@ const useWatched = require('./use-watched-BixmYWp0.cjs');
7
7
  const collapsible = require('./collapsible-BFSJouuI.cjs');
8
8
  const copyButton = require('./copy-button-D2MTGxq_.cjs');
9
9
  const shimmer = require('./shimmer-DbSkqomT.cjs');
10
- const Txt = require('./Txt-B4-2nLaI.cjs');
10
+ const Txt = require('./Txt-DPmEpNbp.cjs');
11
11
  const utils_cn = require('./cn-DG0X1KEP.cjs');
12
12
 
13
13
  const ToolCallContext = React.createContext(void 0);
@@ -194,4 +194,4 @@ exports.ToolCallSpacer = ToolCallSpacer;
194
194
  exports.ToolCallSummary = ToolCallSummary;
195
195
  exports.ToolCallTrailing = ToolCallTrailing;
196
196
  exports.ToolCallTrigger = ToolCallTrigger;
197
- //# sourceMappingURL=tool-call-C0JeHe8Z.cjs.map
197
+ //# sourceMappingURL=tool-call-CnEm3eE0.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"tool-call-C0JeHe8Z.cjs","sources":["../src/ds/components/ai/tool-call/tool-call.tsx"],"sourcesContent":["import { ChevronRight, X } from 'lucide-react';\nimport type { LucideIcon } from 'lucide-react';\nimport { createContext, useContext, useId, useState } from 'react';\nimport type { ComponentProps, ReactNode } from 'react';\nimport { useArriving } from '@/ds/components/Arrival';\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from '@/ds/components/Collapsible';\nimport { CopyButton } from '@/ds/components/CopyButton';\nimport { Shimmer } from '@/ds/components/Shimmer';\nimport { Txt } from '@/ds/components/Txt';\nimport { cn } from '@/lib/utils';\n\ntype ToolCallStatus = 'idle' | 'running' | 'error';\n\ninterface ToolCallContextValue {\n open: boolean;\n status: ToolCallStatus;\n}\n\nconst ToolCallContext = createContext<ToolCallContextValue | undefined>(undefined);\n\n// Stryker disable next-line ArrowFunction: the default callback is intentionally behaviorless.\nconst noopOpenChange = () => {};\n\nfunction useToolCall() {\n const context = useContext(ToolCallContext);\n if (!context) throw new Error('ToolCall compounds must be rendered within ToolCall');\n return context;\n}\n\nexport interface ToolCallProps extends Omit<\n ComponentProps<typeof Collapsible>,\n 'defaultOpen' | 'onOpenChange' | 'open'\n> {\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n status?: ToolCallStatus;\n}\n\nexport function ToolCall({\n open: controlledOpen,\n defaultOpen = false,\n onOpenChange = noopOpenChange,\n status = 'idle',\n className,\n children,\n ...props\n}: ToolCallProps) {\n const [uncontrolledOpen, setUncontrolledOpen] = useState(defaultOpen);\n const open = controlledOpen ?? uncontrolledOpen;\n const statusId = useId();\n\n const handleOpenChange = (nextOpen: boolean) => {\n if (controlledOpen === undefined) setUncontrolledOpen(nextOpen);\n onOpenChange(nextOpen);\n };\n\n return (\n <ToolCallContext.Provider value={{ open, status }}>\n <Collapsible\n open={open}\n onOpenChange={handleOpenChange}\n className={cn('max-w-full min-w-0', className)}\n role=\"group\"\n aria-busy={status === 'running'}\n aria-invalid={status === 'error' || undefined}\n aria-describedby={status === 'idle' ? undefined : statusId}\n data-status={status}\n {...props}\n >\n {children}\n {status !== 'idle' && (\n <span id={statusId} className=\"sr-only\">\n {status === 'running' ? 'Tool call running' : 'Tool call failed'}\n </span>\n )}\n </Collapsible>\n </ToolCallContext.Provider>\n );\n}\n\nexport const ToolCallTrigger = ({ className, ...props }: ComponentProps<typeof CollapsibleTrigger>) => (\n <CollapsibleTrigger\n className={cn(\n 'group/row w-full cursor-pointer rounded-md text-left transition-colors hover:bg-fill focus-visible:ring-1 focus-visible:ring-accent1 focus-visible:outline-hidden motion-reduce:transition-none',\n className,\n )}\n {...props}\n />\n);\n\nexport const ToolCallHeader = ({ className, children, ...props }: ComponentProps<'span'>) => {\n const { status } = useToolCall();\n\n return (\n <Shimmer\n active={status === 'running'}\n className={cn('flex w-full min-w-0 items-center gap-2 px-1.5 py-1', className)}\n {...props}\n >\n {children}\n </Shimmer>\n );\n};\n\nexport const ToolCallIcon = ({ className, ...props }: ComponentProps<'span'>) => (\n <span className={cn('flex size-4 shrink-0 items-center justify-center', className)} {...props} />\n);\n\nexport const ToolCallLabel = ({ className, ...props }: ComponentProps<typeof Txt>) => (\n <Txt as=\"span\" variant=\"caption\" tone=\"muted\" className={cn('max-w-[55%] shrink-0 truncate', className)} {...props} />\n);\n\nexport const ToolCallDetail = ({ className, ...props }: ComponentProps<typeof Txt>) => {\n const arriving = useArriving();\n\n return (\n <Txt\n as=\"span\"\n variant=\"meta\"\n tone=\"muted\"\n font=\"mono\"\n className={cn('min-w-0 truncate', arriving, className)}\n {...props}\n />\n );\n};\n\nexport const ToolCallSummary = ({ className, ...props }: ComponentProps<'span'>) => (\n <span className={cn('flex min-w-0 items-center gap-1', className)} {...props} />\n);\n\nexport interface ToolCallSpacerProps extends ComponentProps<'span'> {\n rule?: boolean;\n}\n\nexport const ToolCallSpacer = ({ rule, className, ...props }: ToolCallSpacerProps) => (\n <span\n aria-hidden\n className={cn('min-w-2 flex-1', rule && 'h-px bg-border mask-r-from-[calc(100%-min(100%,160px))]', className)}\n {...props}\n />\n);\n\nexport const ToolCallTrailing = ({ className, ...props }: ComponentProps<'span'>) => (\n <span className={cn('flex shrink-0 items-center', className)} {...props} />\n);\n\nexport const ToolCallDisclosure = ({ className, children, ...props }: ComponentProps<'span'>) => {\n const { open } = useToolCall();\n\n return (\n <span className={cn('flex size-4 shrink-0 items-center justify-center', className)} {...props}>\n <span\n aria-hidden\n className={cn(\n 'flex shrink-0 items-center text-muted-foreground opacity-0 transition duration-150 motion-reduce:transition-none',\n 'group-hover/row:opacity-100 group-focus-visible/row:opacity-100',\n open && 'rotate-90 opacity-100',\n )}\n >\n {children ?? <ChevronRight size={13} />}\n </span>\n </span>\n );\n};\n\nexport interface ToolCallPresentedHeaderProps extends Omit<ComponentProps<typeof ToolCallHeader>, 'children'> {\n /** Rendered ahead of the icon, e.g. a timestamp. */\n leading?: ReactNode;\n icon: LucideIcon;\n label: string;\n detail?: string;\n disclosure?: boolean;\n}\n\n/** The canonical header of a presented tool call: icon, label, detail, failure mark, chevron. */\nexport const ToolCallPresentedHeader = ({\n leading,\n icon: Icon,\n label,\n detail,\n disclosure = true,\n ...props\n}: ToolCallPresentedHeaderProps) => {\n const { status } = useToolCall();\n\n return (\n <ToolCallHeader {...props}>\n {leading}\n <ToolCallIcon>\n <Icon\n size={14}\n strokeWidth={1.75}\n aria-hidden\n className={status === 'error' ? 'text-error/80' : 'text-placeholder'}\n />\n </ToolCallIcon>\n <ToolCallLabel>{label}</ToolCallLabel>\n {detail && <ToolCallDetail>{detail}</ToolCallDetail>}\n <ToolCallSpacer />\n {status === 'error' && (\n <ToolCallTrailing>\n <X size={13} role=\"img\" aria-label=\"Failed\" className=\"shrink-0 text-error\" />\n </ToolCallTrailing>\n )}\n {disclosure && <ToolCallDisclosure />}\n </ToolCallHeader>\n );\n};\n\nexport const ToolCallContent = ({ className, children, ...props }: ComponentProps<typeof CollapsibleContent>) => (\n <CollapsibleContent className=\"max-w-full min-w-0\" {...props}>\n <div\n className={cn(\n \"relative ml-[14px] flex max-w-full min-w-0 flex-col gap-1.5 py-1.5 pr-1 pl-4 before:absolute before:inset-y-0 before:left-0 before:w-px before:bg-border before:mask-b-from-[calc(100%-min(40%,80px))] before:content-['']\",\n className,\n )}\n >\n {children}\n </div>\n </CollapsibleContent>\n);\n\nexport interface ToolCallMonoProps extends ComponentProps<'pre'> {\n copyText: string;\n}\n\n/** Monospace body block of an expanded call — arguments, command, output — with a hover copy. */\nexport const ToolCallMono = ({ copyText, className, children, ...props }: ToolCallMonoProps) => (\n <div className=\"group/block relative max-w-full min-w-0\">\n <pre\n className={cn(\n 'm-0 max-h-60 max-w-full overflow-auto rounded-md bg-fill px-3 py-2 font-mono text-caption break-words whitespace-pre-wrap',\n className,\n )}\n {...props}\n >\n {children}\n </pre>\n <CopyButton\n content={copyText}\n size=\"sm\"\n variant=\"ghost\"\n className=\"absolute top-1 right-1 opacity-0 transition-opacity group-hover/block:opacity-100 focus-visible:opacity-100\"\n />\n </div>\n);\n\n/** A shell command as the body shows it: `$` in the margin, the copy takes the command alone. */\nexport const ToolCallCommand = ({ command }: { command: string }) => (\n <ToolCallMono copyText={command} className=\"text-foreground\">\n <span className=\"text-muted-foreground select-none\">$ </span>\n {command}\n </ToolCallMono>\n);\n\nexport type { ToolCallStatus };\n"],"names":["createContext","useContext","useState","useId","jsx","jsxs","Collapsible","cn","CollapsibleTrigger","Shimmer","Txt","useArriving","ChevronRight","X","CollapsibleContent","CopyButton"],"mappings":"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"}
1
+ {"version":3,"file":"tool-call-CnEm3eE0.cjs","sources":["../src/ds/components/ai/tool-call/tool-call.tsx"],"sourcesContent":["import { ChevronRight, X } from 'lucide-react';\nimport type { LucideIcon } from 'lucide-react';\nimport { createContext, useContext, useId, useState } from 'react';\nimport type { ComponentProps, ReactNode } from 'react';\nimport { useArriving } from '@/ds/components/Arrival';\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from '@/ds/components/Collapsible';\nimport { CopyButton } from '@/ds/components/CopyButton';\nimport { Shimmer } from '@/ds/components/Shimmer';\nimport { Txt } from '@/ds/components/Txt';\nimport { cn } from '@/lib/utils';\n\ntype ToolCallStatus = 'idle' | 'running' | 'error';\n\ninterface ToolCallContextValue {\n open: boolean;\n status: ToolCallStatus;\n}\n\nconst ToolCallContext = createContext<ToolCallContextValue | undefined>(undefined);\n\n// Stryker disable next-line ArrowFunction: the default callback is intentionally behaviorless.\nconst noopOpenChange = () => {};\n\nfunction useToolCall() {\n const context = useContext(ToolCallContext);\n if (!context) throw new Error('ToolCall compounds must be rendered within ToolCall');\n return context;\n}\n\nexport interface ToolCallProps extends Omit<\n ComponentProps<typeof Collapsible>,\n 'defaultOpen' | 'onOpenChange' | 'open'\n> {\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n status?: ToolCallStatus;\n}\n\nexport function ToolCall({\n open: controlledOpen,\n defaultOpen = false,\n onOpenChange = noopOpenChange,\n status = 'idle',\n className,\n children,\n ...props\n}: ToolCallProps) {\n const [uncontrolledOpen, setUncontrolledOpen] = useState(defaultOpen);\n const open = controlledOpen ?? uncontrolledOpen;\n const statusId = useId();\n\n const handleOpenChange = (nextOpen: boolean) => {\n if (controlledOpen === undefined) setUncontrolledOpen(nextOpen);\n onOpenChange(nextOpen);\n };\n\n return (\n <ToolCallContext.Provider value={{ open, status }}>\n <Collapsible\n open={open}\n onOpenChange={handleOpenChange}\n className={cn('max-w-full min-w-0', className)}\n role=\"group\"\n aria-busy={status === 'running'}\n aria-invalid={status === 'error' || undefined}\n aria-describedby={status === 'idle' ? undefined : statusId}\n data-status={status}\n {...props}\n >\n {children}\n {status !== 'idle' && (\n <span id={statusId} className=\"sr-only\">\n {status === 'running' ? 'Tool call running' : 'Tool call failed'}\n </span>\n )}\n </Collapsible>\n </ToolCallContext.Provider>\n );\n}\n\nexport const ToolCallTrigger = ({ className, ...props }: ComponentProps<typeof CollapsibleTrigger>) => (\n <CollapsibleTrigger\n className={cn(\n 'group/row w-full cursor-pointer rounded-md text-left transition-colors hover:bg-fill focus-visible:ring-1 focus-visible:ring-accent1 focus-visible:outline-hidden motion-reduce:transition-none',\n className,\n )}\n {...props}\n />\n);\n\nexport const ToolCallHeader = ({ className, children, ...props }: ComponentProps<'span'>) => {\n const { status } = useToolCall();\n\n return (\n <Shimmer\n active={status === 'running'}\n className={cn('flex w-full min-w-0 items-center gap-2 px-1.5 py-1', className)}\n {...props}\n >\n {children}\n </Shimmer>\n );\n};\n\nexport const ToolCallIcon = ({ className, ...props }: ComponentProps<'span'>) => (\n <span className={cn('flex size-4 shrink-0 items-center justify-center', className)} {...props} />\n);\n\nexport const ToolCallLabel = ({ className, ...props }: ComponentProps<typeof Txt>) => (\n <Txt as=\"span\" variant=\"caption\" tone=\"muted\" className={cn('max-w-[55%] shrink-0 truncate', className)} {...props} />\n);\n\nexport const ToolCallDetail = ({ className, ...props }: ComponentProps<typeof Txt>) => {\n const arriving = useArriving();\n\n return (\n <Txt\n as=\"span\"\n variant=\"meta\"\n tone=\"muted\"\n font=\"mono\"\n className={cn('min-w-0 truncate', arriving, className)}\n {...props}\n />\n );\n};\n\nexport const ToolCallSummary = ({ className, ...props }: ComponentProps<'span'>) => (\n <span className={cn('flex min-w-0 items-center gap-1', className)} {...props} />\n);\n\nexport interface ToolCallSpacerProps extends ComponentProps<'span'> {\n rule?: boolean;\n}\n\nexport const ToolCallSpacer = ({ rule, className, ...props }: ToolCallSpacerProps) => (\n <span\n aria-hidden\n className={cn('min-w-2 flex-1', rule && 'h-px bg-border mask-r-from-[calc(100%-min(100%,160px))]', className)}\n {...props}\n />\n);\n\nexport const ToolCallTrailing = ({ className, ...props }: ComponentProps<'span'>) => (\n <span className={cn('flex shrink-0 items-center', className)} {...props} />\n);\n\nexport const ToolCallDisclosure = ({ className, children, ...props }: ComponentProps<'span'>) => {\n const { open } = useToolCall();\n\n return (\n <span className={cn('flex size-4 shrink-0 items-center justify-center', className)} {...props}>\n <span\n aria-hidden\n className={cn(\n 'flex shrink-0 items-center text-muted-foreground opacity-0 transition duration-150 motion-reduce:transition-none',\n 'group-hover/row:opacity-100 group-focus-visible/row:opacity-100',\n open && 'rotate-90 opacity-100',\n )}\n >\n {children ?? <ChevronRight size={13} />}\n </span>\n </span>\n );\n};\n\nexport interface ToolCallPresentedHeaderProps extends Omit<ComponentProps<typeof ToolCallHeader>, 'children'> {\n /** Rendered ahead of the icon, e.g. a timestamp. */\n leading?: ReactNode;\n icon: LucideIcon;\n label: string;\n detail?: string;\n disclosure?: boolean;\n}\n\n/** The canonical header of a presented tool call: icon, label, detail, failure mark, chevron. */\nexport const ToolCallPresentedHeader = ({\n leading,\n icon: Icon,\n label,\n detail,\n disclosure = true,\n ...props\n}: ToolCallPresentedHeaderProps) => {\n const { status } = useToolCall();\n\n return (\n <ToolCallHeader {...props}>\n {leading}\n <ToolCallIcon>\n <Icon\n size={14}\n strokeWidth={1.75}\n aria-hidden\n className={status === 'error' ? 'text-error/80' : 'text-placeholder'}\n />\n </ToolCallIcon>\n <ToolCallLabel>{label}</ToolCallLabel>\n {detail && <ToolCallDetail>{detail}</ToolCallDetail>}\n <ToolCallSpacer />\n {status === 'error' && (\n <ToolCallTrailing>\n <X size={13} role=\"img\" aria-label=\"Failed\" className=\"shrink-0 text-error\" />\n </ToolCallTrailing>\n )}\n {disclosure && <ToolCallDisclosure />}\n </ToolCallHeader>\n );\n};\n\nexport const ToolCallContent = ({ className, children, ...props }: ComponentProps<typeof CollapsibleContent>) => (\n <CollapsibleContent className=\"max-w-full min-w-0\" {...props}>\n <div\n className={cn(\n \"relative ml-[14px] flex max-w-full min-w-0 flex-col gap-1.5 py-1.5 pr-1 pl-4 before:absolute before:inset-y-0 before:left-0 before:w-px before:bg-border before:mask-b-from-[calc(100%-min(40%,80px))] before:content-['']\",\n className,\n )}\n >\n {children}\n </div>\n </CollapsibleContent>\n);\n\nexport interface ToolCallMonoProps extends ComponentProps<'pre'> {\n copyText: string;\n}\n\n/** Monospace body block of an expanded call — arguments, command, output — with a hover copy. */\nexport const ToolCallMono = ({ copyText, className, children, ...props }: ToolCallMonoProps) => (\n <div className=\"group/block relative max-w-full min-w-0\">\n <pre\n className={cn(\n 'm-0 max-h-60 max-w-full overflow-auto rounded-md bg-fill px-3 py-2 font-mono text-caption break-words whitespace-pre-wrap',\n className,\n )}\n {...props}\n >\n {children}\n </pre>\n <CopyButton\n content={copyText}\n size=\"sm\"\n variant=\"ghost\"\n className=\"absolute top-1 right-1 opacity-0 transition-opacity group-hover/block:opacity-100 focus-visible:opacity-100\"\n />\n </div>\n);\n\n/** A shell command as the body shows it: `$` in the margin, the copy takes the command alone. */\nexport const ToolCallCommand = ({ command }: { command: string }) => (\n <ToolCallMono copyText={command} className=\"text-foreground\">\n <span className=\"text-muted-foreground select-none\">$ </span>\n {command}\n </ToolCallMono>\n);\n\nexport type { ToolCallStatus };\n"],"names":["createContext","useContext","useState","useId","jsx","jsxs","Collapsible","cn","CollapsibleTrigger","Shimmer","Txt","useArriving","ChevronRight","X","CollapsibleContent","CopyButton"],"mappings":"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"}
@@ -1,11 +1,11 @@
1
1
  'use strict';
2
2
 
3
3
  const jsxRuntime = require('react/jsx-runtime');
4
- const dataListTop = require('./data-list-top-WGUY167p.cjs');
5
- const dataListSpacer = require('./data-list-spacer-DEcgVGFM.cjs');
6
- const dataList = require('./data-list-PwFpP_mo.cjs');
4
+ const dataListTop = require('./data-list-top-DFnudSA_.cjs');
5
+ const dataListSpacer = require('./data-list-spacer-1OqlC7WX.cjs');
6
+ const dataList = require('./data-list-RI8c32dk.cjs');
7
7
  const lucideReact = require('lucide-react');
8
- const Badge = require('./Badge-BEeYtjmv.cjs');
8
+ const Badge = require('./Badge-DFNxcz-r.cjs');
9
9
  const tooltip = require('./tooltip-FvWL16Xn.cjs');
10
10
  const icons_AgentIcon = require('./icons/AgentIcon.cjs.js');
11
11
  const icons_McpServerIcon = require('./icons/McpServerIcon.cjs.js');
@@ -94,4 +94,4 @@ const TracesDataList = Object.assign(TracesDataListRoot, {
94
94
  });
95
95
 
96
96
  exports.TracesDataList = TracesDataList;
97
- //# sourceMappingURL=traces-data-list-Dam8-XW-.cjs.map
97
+ //# sourceMappingURL=traces-data-list-C5KZesk6.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"traces-data-list-Dam8-XW-.cjs","sources":["../src/ds/components/DataList/TracesDataList/traces-data-list-cells.tsx","../src/ds/components/DataList/TracesDataList/traces-data-list.tsx"],"sourcesContent":["import { CornerDownRightIcon, DatabaseIcon, ListTreeIcon, RouteIcon } from 'lucide-react';\nimport type { ComponentType, SVGProps } from 'react';\nimport { DataListCell, DataListTextCell } from '../data-list-cells';\nimport { Badge } from '@/ds/components/Badge';\nimport type { BadgeVariant } from '@/ds/components/Badge';\nimport { Tooltip, TooltipContent, TooltipTrigger } from '@/ds/components/Tooltip';\nimport { AgentIcon } from '@/ds/icons/AgentIcon';\nimport { McpServerIcon } from '@/ds/icons/McpServerIcon';\nimport { MemoryIcon } from '@/ds/icons/MemoryIcon';\nimport { ProcessorIcon } from '@/ds/icons/ProcessorIcon';\nimport { ScorersIcon } from '@/ds/icons/ScorersIcon';\nimport { ToolsIcon } from '@/ds/icons/ToolsIcon';\nimport { WorkflowIcon } from '@/ds/icons/WorkflowIcon';\nimport { cn } from '@/lib/utils';\n\n// ---------------------------------------------------------------------------\n// NameCell\n// ---------------------------------------------------------------------------\n\nexport interface TracesDataListNameCellProps {\n name?: string | null;\n /** `null`/missing → root span (Trace). Set → nested span (Subtrace). Drives the leading level icon. */\n parentSpanId?: string | null;\n /** When true, the leading level icon is wrapped in a Trace/Subtrace tooltip. Off by default —\n * only meaningful in branches mode, where rows mix root traces and subtraces. */\n showLevelTooltip?: boolean;\n}\n\nexport function TracesDataListNameCell({ name, parentSpanId, showLevelTooltip }: TracesDataListNameCellProps) {\n const isRoot = parentSpanId == null;\n const Icon = isRoot ? ListTreeIcon : CornerDownRightIcon;\n const label = isRoot ? 'Trace' : 'Subtrace';\n const icon = (\n <span aria-label={label} className=\"inline-flex shrink-0\">\n <Icon className={cn('size-4 shrink-0', isRoot ? 'text-muted-foreground' : 'text-placeholder')} aria-hidden />\n </span>\n );\n return (\n <DataListCell className=\"flex min-w-0 items-center gap-2 text-body-sm text-muted-foreground\">\n {showLevelTooltip ? (\n <Tooltip>\n <TooltipTrigger asChild>{icon}</TooltipTrigger>\n <TooltipContent>{label}</TooltipContent>\n </Tooltip>\n ) : (\n icon\n )}\n <span className=\"min-w-0 truncate\">{name || '-'}</span>\n </DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// InputCell\n// ---------------------------------------------------------------------------\n\nexport interface TracesDataListInputCellProps {\n input?: string | null;\n}\n\nexport function TracesDataListInputCell({ input }: TracesDataListInputCellProps) {\n return <DataListTextCell font=\"mono\">{input || '-'}</DataListTextCell>;\n}\n\n// ---------------------------------------------------------------------------\n// TypeCell\n// ---------------------------------------------------------------------------\n\ntype EntityTypeDisplay = { label: string; Icon: ComponentType<SVGProps<SVGSVGElement>> };\n\n// Keys are lowercase `EntityType` enum values (plus legacy `workflow`).\nconst ENTITY_TYPE_DISPLAY: Record<string, EntityTypeDisplay> = {\n agent: { label: 'Agent', Icon: AgentIcon },\n workflow: { label: 'Workflow', Icon: WorkflowIcon },\n workflow_run: { label: 'Workflow', Icon: WorkflowIcon },\n workflow_step: { label: 'Step', Icon: WorkflowIcon },\n tool: { label: 'Tool', Icon: ToolsIcon },\n scorer: { label: 'Scorer', Icon: ScorersIcon },\n memory: { label: 'Memory', Icon: MemoryIcon },\n mcp_server: { label: 'MCP Server', Icon: McpServerIcon },\n input_processor: { label: 'Processor', Icon: ProcessorIcon },\n input_step_processor: { label: 'Processor', Icon: ProcessorIcon },\n output_processor: { label: 'Processor', Icon: ProcessorIcon },\n output_step_processor: { label: 'Processor', Icon: ProcessorIcon },\n tool_result_processor: { label: 'Processor', Icon: ProcessorIcon },\n rag_ingestion: { label: 'RAG', Icon: DatabaseIcon },\n trajectory: { label: 'Trajectory', Icon: RouteIcon },\n};\n\nexport interface TracesDataListTypeCellProps {\n entityType?: string | null;\n}\n\nexport function TracesDataListTypeCell({ entityType }: TracesDataListTypeCellProps) {\n const display = entityType ? ENTITY_TYPE_DISPLAY[entityType.toLowerCase()] : undefined;\n\n return (\n <DataListCell className=\"flex min-w-0 items-center gap-2\">\n {display ? (\n <>\n <display.Icon className=\"size-3.5 shrink-0 text-placeholder\" aria-hidden />\n <span className=\"min-w-0 truncate text-body-sm\">{display.label}</span>\n </>\n ) : (\n '-'\n )}\n </DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// StatusCell\n// ---------------------------------------------------------------------------\n\nconst UNSET_STATUS_CONFIG: { label: string; variant: BadgeVariant } = { label: '-', variant: 'neutral' };\n\nconst STATUS_CONFIG: Record<string, { label: string; variant: BadgeVariant }> = {\n completed: { label: 'OK', variant: 'green' },\n ok: { label: 'OK', variant: 'green' },\n success: { label: 'OK', variant: 'green' },\n error: { label: 'ERR', variant: 'red' },\n running: { label: 'RUN', variant: 'neutral' },\n unset: UNSET_STATUS_CONFIG,\n};\n\nexport interface TracesDataListStatusCellProps {\n status?: string | null;\n}\n\nexport function TracesDataListStatusCell({ status }: TracesDataListStatusCellProps) {\n const key = (status ?? 'unset').toLowerCase();\n const config = STATUS_CONFIG[key] ?? UNSET_STATUS_CONFIG;\n\n return (\n <DataListCell>\n <Badge size=\"xs\" variant={config.variant}>\n {config.label}\n </Badge>\n </DataListCell>\n );\n}\n","import type { ComponentProps } from 'react';\nimport { DataListCreatedCell, DataListIdCell } from '../data-list-cells';\nimport { DataListNextPageLoading } from '../data-list-next-page-loading';\nimport { DataListNoMatch } from '../data-list-no-match';\nimport { DataListRoot } from '../data-list-root';\nimport { DataListRowButton } from '../data-list-row-button';\nimport { DataListSortableTopCell } from '../data-list-sortable-top-cell';\nimport { DataListSpacer } from '../data-list-spacer';\nimport { DataListSubheader } from '../data-list-subheader';\nimport { DataListSubHeading } from '../data-list-subheading';\nimport { DataListTop } from '../data-list-top';\nimport { DataListTopCell, DataListTopCellWithTooltip } from '../data-list-top-cell';\nimport {\n TracesDataListNameCell,\n TracesDataListInputCell,\n TracesDataListTypeCell,\n TracesDataListStatusCell,\n} from './traces-data-list-cells';\n\n// oxlint-disable-next-line react/only-export-components -- compound component root, same pattern as ScoresDataList\n// eslint-disable-next-line react-refresh/only-export-components -- compound component root, same pattern as ScoresDataList\nfunction TracesDataListRoot(props: ComponentProps<typeof DataListRoot>) {\n return <DataListRoot {...props} />;\n}\n\nexport const TracesDataList = Object.assign(TracesDataListRoot, {\n Top: DataListTop,\n TopCell: DataListTopCell,\n SortableTopCell: DataListSortableTopCell,\n TopCellWithTooltip: DataListTopCellWithTooltip,\n RowButton: DataListRowButton,\n NoMatch: DataListNoMatch,\n Subheader: DataListSubheader,\n SubHeading: DataListSubHeading,\n Spacer: DataListSpacer,\n IdCell: DataListIdCell,\n CreatedCell: DataListCreatedCell,\n NameCell: TracesDataListNameCell,\n InputCell: TracesDataListInputCell,\n TypeCell: TracesDataListTypeCell,\n StatusCell: TracesDataListStatusCell,\n NextPageLoading: DataListNextPageLoading,\n});\n"],"names":["ListTreeIcon","CornerDownRightIcon","jsx","cn","jsxs","DataListCell","Tooltip","TooltipTrigger","TooltipContent","DataListTextCell","AgentIcon","WorkflowIcon","ToolsIcon","ScorersIcon","MemoryIcon","McpServerIcon","ProcessorIcon","DatabaseIcon","RouteIcon","Fragment","Badge","DataListRoot","DataListTop","DataListTopCell","DataListSortableTopCell","DataListTopCellWithTooltip","DataListRowButton","DataListNoMatch","DataListSubheader","DataListSubHeading","DataListSpacer","DataListIdCell","DataListCreatedCell","DataListNextPageLoading"],"mappings":"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"}
1
+ {"version":3,"file":"traces-data-list-C5KZesk6.cjs","sources":["../src/ds/components/DataList/TracesDataList/traces-data-list-cells.tsx","../src/ds/components/DataList/TracesDataList/traces-data-list.tsx"],"sourcesContent":["import { CornerDownRightIcon, DatabaseIcon, ListTreeIcon, RouteIcon } from 'lucide-react';\nimport type { ComponentType, SVGProps } from 'react';\nimport { DataListCell, DataListTextCell } from '../data-list-cells';\nimport { Badge } from '@/ds/components/Badge';\nimport type { BadgeVariant } from '@/ds/components/Badge';\nimport { Tooltip, TooltipContent, TooltipTrigger } from '@/ds/components/Tooltip';\nimport { AgentIcon } from '@/ds/icons/AgentIcon';\nimport { McpServerIcon } from '@/ds/icons/McpServerIcon';\nimport { MemoryIcon } from '@/ds/icons/MemoryIcon';\nimport { ProcessorIcon } from '@/ds/icons/ProcessorIcon';\nimport { ScorersIcon } from '@/ds/icons/ScorersIcon';\nimport { ToolsIcon } from '@/ds/icons/ToolsIcon';\nimport { WorkflowIcon } from '@/ds/icons/WorkflowIcon';\nimport { cn } from '@/lib/utils';\n\n// ---------------------------------------------------------------------------\n// NameCell\n// ---------------------------------------------------------------------------\n\nexport interface TracesDataListNameCellProps {\n name?: string | null;\n /** `null`/missing → root span (Trace). Set → nested span (Subtrace). Drives the leading level icon. */\n parentSpanId?: string | null;\n /** When true, the leading level icon is wrapped in a Trace/Subtrace tooltip. Off by default —\n * only meaningful in branches mode, where rows mix root traces and subtraces. */\n showLevelTooltip?: boolean;\n}\n\nexport function TracesDataListNameCell({ name, parentSpanId, showLevelTooltip }: TracesDataListNameCellProps) {\n const isRoot = parentSpanId == null;\n const Icon = isRoot ? ListTreeIcon : CornerDownRightIcon;\n const label = isRoot ? 'Trace' : 'Subtrace';\n const icon = (\n <span aria-label={label} className=\"inline-flex shrink-0\">\n <Icon className={cn('size-4 shrink-0', isRoot ? 'text-muted-foreground' : 'text-placeholder')} aria-hidden />\n </span>\n );\n return (\n <DataListCell className=\"flex min-w-0 items-center gap-2 text-body-sm text-muted-foreground\">\n {showLevelTooltip ? (\n <Tooltip>\n <TooltipTrigger asChild>{icon}</TooltipTrigger>\n <TooltipContent>{label}</TooltipContent>\n </Tooltip>\n ) : (\n icon\n )}\n <span className=\"min-w-0 truncate\">{name || '-'}</span>\n </DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// InputCell\n// ---------------------------------------------------------------------------\n\nexport interface TracesDataListInputCellProps {\n input?: string | null;\n}\n\nexport function TracesDataListInputCell({ input }: TracesDataListInputCellProps) {\n return <DataListTextCell font=\"mono\">{input || '-'}</DataListTextCell>;\n}\n\n// ---------------------------------------------------------------------------\n// TypeCell\n// ---------------------------------------------------------------------------\n\ntype EntityTypeDisplay = { label: string; Icon: ComponentType<SVGProps<SVGSVGElement>> };\n\n// Keys are lowercase `EntityType` enum values (plus legacy `workflow`).\nconst ENTITY_TYPE_DISPLAY: Record<string, EntityTypeDisplay> = {\n agent: { label: 'Agent', Icon: AgentIcon },\n workflow: { label: 'Workflow', Icon: WorkflowIcon },\n workflow_run: { label: 'Workflow', Icon: WorkflowIcon },\n workflow_step: { label: 'Step', Icon: WorkflowIcon },\n tool: { label: 'Tool', Icon: ToolsIcon },\n scorer: { label: 'Scorer', Icon: ScorersIcon },\n memory: { label: 'Memory', Icon: MemoryIcon },\n mcp_server: { label: 'MCP Server', Icon: McpServerIcon },\n input_processor: { label: 'Processor', Icon: ProcessorIcon },\n input_step_processor: { label: 'Processor', Icon: ProcessorIcon },\n output_processor: { label: 'Processor', Icon: ProcessorIcon },\n output_step_processor: { label: 'Processor', Icon: ProcessorIcon },\n tool_result_processor: { label: 'Processor', Icon: ProcessorIcon },\n rag_ingestion: { label: 'RAG', Icon: DatabaseIcon },\n trajectory: { label: 'Trajectory', Icon: RouteIcon },\n};\n\nexport interface TracesDataListTypeCellProps {\n entityType?: string | null;\n}\n\nexport function TracesDataListTypeCell({ entityType }: TracesDataListTypeCellProps) {\n const display = entityType ? ENTITY_TYPE_DISPLAY[entityType.toLowerCase()] : undefined;\n\n return (\n <DataListCell className=\"flex min-w-0 items-center gap-2\">\n {display ? (\n <>\n <display.Icon className=\"size-3.5 shrink-0 text-placeholder\" aria-hidden />\n <span className=\"min-w-0 truncate text-body-sm\">{display.label}</span>\n </>\n ) : (\n '-'\n )}\n </DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// StatusCell\n// ---------------------------------------------------------------------------\n\nconst UNSET_STATUS_CONFIG: { label: string; variant: BadgeVariant } = { label: '-', variant: 'neutral' };\n\nconst STATUS_CONFIG: Record<string, { label: string; variant: BadgeVariant }> = {\n completed: { label: 'OK', variant: 'green' },\n ok: { label: 'OK', variant: 'green' },\n success: { label: 'OK', variant: 'green' },\n error: { label: 'ERR', variant: 'red' },\n running: { label: 'RUN', variant: 'neutral' },\n unset: UNSET_STATUS_CONFIG,\n};\n\nexport interface TracesDataListStatusCellProps {\n status?: string | null;\n}\n\nexport function TracesDataListStatusCell({ status }: TracesDataListStatusCellProps) {\n const key = (status ?? 'unset').toLowerCase();\n const config = STATUS_CONFIG[key] ?? UNSET_STATUS_CONFIG;\n\n return (\n <DataListCell>\n <Badge size=\"xs\" variant={config.variant}>\n {config.label}\n </Badge>\n </DataListCell>\n );\n}\n","import type { ComponentProps } from 'react';\nimport { DataListCreatedCell, DataListIdCell } from '../data-list-cells';\nimport { DataListNextPageLoading } from '../data-list-next-page-loading';\nimport { DataListNoMatch } from '../data-list-no-match';\nimport { DataListRoot } from '../data-list-root';\nimport { DataListRowButton } from '../data-list-row-button';\nimport { DataListSortableTopCell } from '../data-list-sortable-top-cell';\nimport { DataListSpacer } from '../data-list-spacer';\nimport { DataListSubheader } from '../data-list-subheader';\nimport { DataListSubHeading } from '../data-list-subheading';\nimport { DataListTop } from '../data-list-top';\nimport { DataListTopCell, DataListTopCellWithTooltip } from '../data-list-top-cell';\nimport {\n TracesDataListNameCell,\n TracesDataListInputCell,\n TracesDataListTypeCell,\n TracesDataListStatusCell,\n} from './traces-data-list-cells';\n\n// oxlint-disable-next-line react/only-export-components -- compound component root, same pattern as ScoresDataList\n// eslint-disable-next-line react-refresh/only-export-components -- compound component root, same pattern as ScoresDataList\nfunction TracesDataListRoot(props: ComponentProps<typeof DataListRoot>) {\n return <DataListRoot {...props} />;\n}\n\nexport const TracesDataList = Object.assign(TracesDataListRoot, {\n Top: DataListTop,\n TopCell: DataListTopCell,\n SortableTopCell: DataListSortableTopCell,\n TopCellWithTooltip: DataListTopCellWithTooltip,\n RowButton: DataListRowButton,\n NoMatch: DataListNoMatch,\n Subheader: DataListSubheader,\n SubHeading: DataListSubHeading,\n Spacer: DataListSpacer,\n IdCell: DataListIdCell,\n CreatedCell: DataListCreatedCell,\n NameCell: TracesDataListNameCell,\n InputCell: TracesDataListInputCell,\n TypeCell: TracesDataListTypeCell,\n StatusCell: TracesDataListStatusCell,\n NextPageLoading: DataListNextPageLoading,\n});\n"],"names":["ListTreeIcon","CornerDownRightIcon","jsx","cn","jsxs","DataListCell","Tooltip","TooltipTrigger","TooltipContent","DataListTextCell","AgentIcon","WorkflowIcon","ToolsIcon","ScorersIcon","MemoryIcon","McpServerIcon","ProcessorIcon","DatabaseIcon","RouteIcon","Fragment","Badge","DataListRoot","DataListTop","DataListTopCell","DataListSortableTopCell","DataListTopCellWithTooltip","DataListRowButton","DataListNoMatch","DataListSubheader","DataListSubHeading","DataListSpacer","DataListIdCell","DataListCreatedCell","DataListNextPageLoading"],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
- import { c as DataListCell, e as DataListTextCell, j as DataListCreatedCell, k as DataListIdCell, i as DataListTopCellWithTooltip, b as DataListTopCell, a as DataListTop, D as DataListRoot } from './data-list-top-DpbOA3uw.js';
3
- import { D as DataListNextPageLoading, b as DataListSpacer, a as DataListNoMatch, d as DataListRowButton, f as DataListSortableTopCell } from './data-list-spacer-BmorAN0V.js';
4
- import { a as DataListSubHeading, b as DataListSubheader } from './data-list-DisTjDHP.js';
2
+ import { c as DataListCell, e as DataListTextCell, j as DataListCreatedCell, k as DataListIdCell, i as DataListTopCellWithTooltip, b as DataListTopCell, a as DataListTop, D as DataListRoot } from './data-list-top-B-AopfvE.js';
3
+ import { D as DataListNextPageLoading, b as DataListSpacer, a as DataListNoMatch, d as DataListRowButton, f as DataListSortableTopCell } from './data-list-spacer-D3Rn1evn.js';
4
+ import { a as DataListSubHeading, b as DataListSubheader } from './data-list-5-nRJbEO.js';
5
5
  import { RouteIcon, DatabaseIcon, ListTreeIcon, CornerDownRightIcon } from 'lucide-react';
6
- import { B as Badge } from './Badge-TD55_qZJ.js';
6
+ import { B as Badge } from './Badge-Bzn8Z-_I.js';
7
7
  import { T as Tooltip, c as TooltipTrigger, a as TooltipContent } from './tooltip-BrDiP0RI.js';
8
8
  import { AgentIcon } from './icons/AgentIcon.es.js';
9
9
  import { McpServerIcon } from './icons/McpServerIcon.es.js';
@@ -92,4 +92,4 @@ const TracesDataList = Object.assign(TracesDataListRoot, {
92
92
  });
93
93
 
94
94
  export { TracesDataList as T };
95
- //# sourceMappingURL=traces-data-list-Dvi0s56v.js.map
95
+ //# sourceMappingURL=traces-data-list-CdWW9J6z.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"traces-data-list-Dvi0s56v.js","sources":["../src/ds/components/DataList/TracesDataList/traces-data-list-cells.tsx","../src/ds/components/DataList/TracesDataList/traces-data-list.tsx"],"sourcesContent":["import { CornerDownRightIcon, DatabaseIcon, ListTreeIcon, RouteIcon } from 'lucide-react';\nimport type { ComponentType, SVGProps } from 'react';\nimport { DataListCell, DataListTextCell } from '../data-list-cells';\nimport { Badge } from '@/ds/components/Badge';\nimport type { BadgeVariant } from '@/ds/components/Badge';\nimport { Tooltip, TooltipContent, TooltipTrigger } from '@/ds/components/Tooltip';\nimport { AgentIcon } from '@/ds/icons/AgentIcon';\nimport { McpServerIcon } from '@/ds/icons/McpServerIcon';\nimport { MemoryIcon } from '@/ds/icons/MemoryIcon';\nimport { ProcessorIcon } from '@/ds/icons/ProcessorIcon';\nimport { ScorersIcon } from '@/ds/icons/ScorersIcon';\nimport { ToolsIcon } from '@/ds/icons/ToolsIcon';\nimport { WorkflowIcon } from '@/ds/icons/WorkflowIcon';\nimport { cn } from '@/lib/utils';\n\n// ---------------------------------------------------------------------------\n// NameCell\n// ---------------------------------------------------------------------------\n\nexport interface TracesDataListNameCellProps {\n name?: string | null;\n /** `null`/missing → root span (Trace). Set → nested span (Subtrace). Drives the leading level icon. */\n parentSpanId?: string | null;\n /** When true, the leading level icon is wrapped in a Trace/Subtrace tooltip. Off by default —\n * only meaningful in branches mode, where rows mix root traces and subtraces. */\n showLevelTooltip?: boolean;\n}\n\nexport function TracesDataListNameCell({ name, parentSpanId, showLevelTooltip }: TracesDataListNameCellProps) {\n const isRoot = parentSpanId == null;\n const Icon = isRoot ? ListTreeIcon : CornerDownRightIcon;\n const label = isRoot ? 'Trace' : 'Subtrace';\n const icon = (\n <span aria-label={label} className=\"inline-flex shrink-0\">\n <Icon className={cn('size-4 shrink-0', isRoot ? 'text-muted-foreground' : 'text-placeholder')} aria-hidden />\n </span>\n );\n return (\n <DataListCell className=\"flex min-w-0 items-center gap-2 text-body-sm text-muted-foreground\">\n {showLevelTooltip ? (\n <Tooltip>\n <TooltipTrigger asChild>{icon}</TooltipTrigger>\n <TooltipContent>{label}</TooltipContent>\n </Tooltip>\n ) : (\n icon\n )}\n <span className=\"min-w-0 truncate\">{name || '-'}</span>\n </DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// InputCell\n// ---------------------------------------------------------------------------\n\nexport interface TracesDataListInputCellProps {\n input?: string | null;\n}\n\nexport function TracesDataListInputCell({ input }: TracesDataListInputCellProps) {\n return <DataListTextCell font=\"mono\">{input || '-'}</DataListTextCell>;\n}\n\n// ---------------------------------------------------------------------------\n// TypeCell\n// ---------------------------------------------------------------------------\n\ntype EntityTypeDisplay = { label: string; Icon: ComponentType<SVGProps<SVGSVGElement>> };\n\n// Keys are lowercase `EntityType` enum values (plus legacy `workflow`).\nconst ENTITY_TYPE_DISPLAY: Record<string, EntityTypeDisplay> = {\n agent: { label: 'Agent', Icon: AgentIcon },\n workflow: { label: 'Workflow', Icon: WorkflowIcon },\n workflow_run: { label: 'Workflow', Icon: WorkflowIcon },\n workflow_step: { label: 'Step', Icon: WorkflowIcon },\n tool: { label: 'Tool', Icon: ToolsIcon },\n scorer: { label: 'Scorer', Icon: ScorersIcon },\n memory: { label: 'Memory', Icon: MemoryIcon },\n mcp_server: { label: 'MCP Server', Icon: McpServerIcon },\n input_processor: { label: 'Processor', Icon: ProcessorIcon },\n input_step_processor: { label: 'Processor', Icon: ProcessorIcon },\n output_processor: { label: 'Processor', Icon: ProcessorIcon },\n output_step_processor: { label: 'Processor', Icon: ProcessorIcon },\n tool_result_processor: { label: 'Processor', Icon: ProcessorIcon },\n rag_ingestion: { label: 'RAG', Icon: DatabaseIcon },\n trajectory: { label: 'Trajectory', Icon: RouteIcon },\n};\n\nexport interface TracesDataListTypeCellProps {\n entityType?: string | null;\n}\n\nexport function TracesDataListTypeCell({ entityType }: TracesDataListTypeCellProps) {\n const display = entityType ? ENTITY_TYPE_DISPLAY[entityType.toLowerCase()] : undefined;\n\n return (\n <DataListCell className=\"flex min-w-0 items-center gap-2\">\n {display ? (\n <>\n <display.Icon className=\"size-3.5 shrink-0 text-placeholder\" aria-hidden />\n <span className=\"min-w-0 truncate text-body-sm\">{display.label}</span>\n </>\n ) : (\n '-'\n )}\n </DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// StatusCell\n// ---------------------------------------------------------------------------\n\nconst UNSET_STATUS_CONFIG: { label: string; variant: BadgeVariant } = { label: '-', variant: 'neutral' };\n\nconst STATUS_CONFIG: Record<string, { label: string; variant: BadgeVariant }> = {\n completed: { label: 'OK', variant: 'green' },\n ok: { label: 'OK', variant: 'green' },\n success: { label: 'OK', variant: 'green' },\n error: { label: 'ERR', variant: 'red' },\n running: { label: 'RUN', variant: 'neutral' },\n unset: UNSET_STATUS_CONFIG,\n};\n\nexport interface TracesDataListStatusCellProps {\n status?: string | null;\n}\n\nexport function TracesDataListStatusCell({ status }: TracesDataListStatusCellProps) {\n const key = (status ?? 'unset').toLowerCase();\n const config = STATUS_CONFIG[key] ?? UNSET_STATUS_CONFIG;\n\n return (\n <DataListCell>\n <Badge size=\"xs\" variant={config.variant}>\n {config.label}\n </Badge>\n </DataListCell>\n );\n}\n","import type { ComponentProps } from 'react';\nimport { DataListCreatedCell, DataListIdCell } from '../data-list-cells';\nimport { DataListNextPageLoading } from '../data-list-next-page-loading';\nimport { DataListNoMatch } from '../data-list-no-match';\nimport { DataListRoot } from '../data-list-root';\nimport { DataListRowButton } from '../data-list-row-button';\nimport { DataListSortableTopCell } from '../data-list-sortable-top-cell';\nimport { DataListSpacer } from '../data-list-spacer';\nimport { DataListSubheader } from '../data-list-subheader';\nimport { DataListSubHeading } from '../data-list-subheading';\nimport { DataListTop } from '../data-list-top';\nimport { DataListTopCell, DataListTopCellWithTooltip } from '../data-list-top-cell';\nimport {\n TracesDataListNameCell,\n TracesDataListInputCell,\n TracesDataListTypeCell,\n TracesDataListStatusCell,\n} from './traces-data-list-cells';\n\n// oxlint-disable-next-line react/only-export-components -- compound component root, same pattern as ScoresDataList\n// eslint-disable-next-line react-refresh/only-export-components -- compound component root, same pattern as ScoresDataList\nfunction TracesDataListRoot(props: ComponentProps<typeof DataListRoot>) {\n return <DataListRoot {...props} />;\n}\n\nexport const TracesDataList = Object.assign(TracesDataListRoot, {\n Top: DataListTop,\n TopCell: DataListTopCell,\n SortableTopCell: DataListSortableTopCell,\n TopCellWithTooltip: DataListTopCellWithTooltip,\n RowButton: DataListRowButton,\n NoMatch: DataListNoMatch,\n Subheader: DataListSubheader,\n SubHeading: DataListSubHeading,\n Spacer: DataListSpacer,\n IdCell: DataListIdCell,\n CreatedCell: DataListCreatedCell,\n NameCell: TracesDataListNameCell,\n InputCell: TracesDataListInputCell,\n TypeCell: TracesDataListTypeCell,\n StatusCell: TracesDataListStatusCell,\n NextPageLoading: DataListNextPageLoading,\n});\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"traces-data-list-CdWW9J6z.js","sources":["../src/ds/components/DataList/TracesDataList/traces-data-list-cells.tsx","../src/ds/components/DataList/TracesDataList/traces-data-list.tsx"],"sourcesContent":["import { CornerDownRightIcon, DatabaseIcon, ListTreeIcon, RouteIcon } from 'lucide-react';\nimport type { ComponentType, SVGProps } from 'react';\nimport { DataListCell, DataListTextCell } from '../data-list-cells';\nimport { Badge } from '@/ds/components/Badge';\nimport type { BadgeVariant } from '@/ds/components/Badge';\nimport { Tooltip, TooltipContent, TooltipTrigger } from '@/ds/components/Tooltip';\nimport { AgentIcon } from '@/ds/icons/AgentIcon';\nimport { McpServerIcon } from '@/ds/icons/McpServerIcon';\nimport { MemoryIcon } from '@/ds/icons/MemoryIcon';\nimport { ProcessorIcon } from '@/ds/icons/ProcessorIcon';\nimport { ScorersIcon } from '@/ds/icons/ScorersIcon';\nimport { ToolsIcon } from '@/ds/icons/ToolsIcon';\nimport { WorkflowIcon } from '@/ds/icons/WorkflowIcon';\nimport { cn } from '@/lib/utils';\n\n// ---------------------------------------------------------------------------\n// NameCell\n// ---------------------------------------------------------------------------\n\nexport interface TracesDataListNameCellProps {\n name?: string | null;\n /** `null`/missing → root span (Trace). Set → nested span (Subtrace). Drives the leading level icon. */\n parentSpanId?: string | null;\n /** When true, the leading level icon is wrapped in a Trace/Subtrace tooltip. Off by default —\n * only meaningful in branches mode, where rows mix root traces and subtraces. */\n showLevelTooltip?: boolean;\n}\n\nexport function TracesDataListNameCell({ name, parentSpanId, showLevelTooltip }: TracesDataListNameCellProps) {\n const isRoot = parentSpanId == null;\n const Icon = isRoot ? ListTreeIcon : CornerDownRightIcon;\n const label = isRoot ? 'Trace' : 'Subtrace';\n const icon = (\n <span aria-label={label} className=\"inline-flex shrink-0\">\n <Icon className={cn('size-4 shrink-0', isRoot ? 'text-muted-foreground' : 'text-placeholder')} aria-hidden />\n </span>\n );\n return (\n <DataListCell className=\"flex min-w-0 items-center gap-2 text-body-sm text-muted-foreground\">\n {showLevelTooltip ? (\n <Tooltip>\n <TooltipTrigger asChild>{icon}</TooltipTrigger>\n <TooltipContent>{label}</TooltipContent>\n </Tooltip>\n ) : (\n icon\n )}\n <span className=\"min-w-0 truncate\">{name || '-'}</span>\n </DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// InputCell\n// ---------------------------------------------------------------------------\n\nexport interface TracesDataListInputCellProps {\n input?: string | null;\n}\n\nexport function TracesDataListInputCell({ input }: TracesDataListInputCellProps) {\n return <DataListTextCell font=\"mono\">{input || '-'}</DataListTextCell>;\n}\n\n// ---------------------------------------------------------------------------\n// TypeCell\n// ---------------------------------------------------------------------------\n\ntype EntityTypeDisplay = { label: string; Icon: ComponentType<SVGProps<SVGSVGElement>> };\n\n// Keys are lowercase `EntityType` enum values (plus legacy `workflow`).\nconst ENTITY_TYPE_DISPLAY: Record<string, EntityTypeDisplay> = {\n agent: { label: 'Agent', Icon: AgentIcon },\n workflow: { label: 'Workflow', Icon: WorkflowIcon },\n workflow_run: { label: 'Workflow', Icon: WorkflowIcon },\n workflow_step: { label: 'Step', Icon: WorkflowIcon },\n tool: { label: 'Tool', Icon: ToolsIcon },\n scorer: { label: 'Scorer', Icon: ScorersIcon },\n memory: { label: 'Memory', Icon: MemoryIcon },\n mcp_server: { label: 'MCP Server', Icon: McpServerIcon },\n input_processor: { label: 'Processor', Icon: ProcessorIcon },\n input_step_processor: { label: 'Processor', Icon: ProcessorIcon },\n output_processor: { label: 'Processor', Icon: ProcessorIcon },\n output_step_processor: { label: 'Processor', Icon: ProcessorIcon },\n tool_result_processor: { label: 'Processor', Icon: ProcessorIcon },\n rag_ingestion: { label: 'RAG', Icon: DatabaseIcon },\n trajectory: { label: 'Trajectory', Icon: RouteIcon },\n};\n\nexport interface TracesDataListTypeCellProps {\n entityType?: string | null;\n}\n\nexport function TracesDataListTypeCell({ entityType }: TracesDataListTypeCellProps) {\n const display = entityType ? ENTITY_TYPE_DISPLAY[entityType.toLowerCase()] : undefined;\n\n return (\n <DataListCell className=\"flex min-w-0 items-center gap-2\">\n {display ? (\n <>\n <display.Icon className=\"size-3.5 shrink-0 text-placeholder\" aria-hidden />\n <span className=\"min-w-0 truncate text-body-sm\">{display.label}</span>\n </>\n ) : (\n '-'\n )}\n </DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// StatusCell\n// ---------------------------------------------------------------------------\n\nconst UNSET_STATUS_CONFIG: { label: string; variant: BadgeVariant } = { label: '-', variant: 'neutral' };\n\nconst STATUS_CONFIG: Record<string, { label: string; variant: BadgeVariant }> = {\n completed: { label: 'OK', variant: 'green' },\n ok: { label: 'OK', variant: 'green' },\n success: { label: 'OK', variant: 'green' },\n error: { label: 'ERR', variant: 'red' },\n running: { label: 'RUN', variant: 'neutral' },\n unset: UNSET_STATUS_CONFIG,\n};\n\nexport interface TracesDataListStatusCellProps {\n status?: string | null;\n}\n\nexport function TracesDataListStatusCell({ status }: TracesDataListStatusCellProps) {\n const key = (status ?? 'unset').toLowerCase();\n const config = STATUS_CONFIG[key] ?? UNSET_STATUS_CONFIG;\n\n return (\n <DataListCell>\n <Badge size=\"xs\" variant={config.variant}>\n {config.label}\n </Badge>\n </DataListCell>\n );\n}\n","import type { ComponentProps } from 'react';\nimport { DataListCreatedCell, DataListIdCell } from '../data-list-cells';\nimport { DataListNextPageLoading } from '../data-list-next-page-loading';\nimport { DataListNoMatch } from '../data-list-no-match';\nimport { DataListRoot } from '../data-list-root';\nimport { DataListRowButton } from '../data-list-row-button';\nimport { DataListSortableTopCell } from '../data-list-sortable-top-cell';\nimport { DataListSpacer } from '../data-list-spacer';\nimport { DataListSubheader } from '../data-list-subheader';\nimport { DataListSubHeading } from '../data-list-subheading';\nimport { DataListTop } from '../data-list-top';\nimport { DataListTopCell, DataListTopCellWithTooltip } from '../data-list-top-cell';\nimport {\n TracesDataListNameCell,\n TracesDataListInputCell,\n TracesDataListTypeCell,\n TracesDataListStatusCell,\n} from './traces-data-list-cells';\n\n// oxlint-disable-next-line react/only-export-components -- compound component root, same pattern as ScoresDataList\n// eslint-disable-next-line react-refresh/only-export-components -- compound component root, same pattern as ScoresDataList\nfunction TracesDataListRoot(props: ComponentProps<typeof DataListRoot>) {\n return <DataListRoot {...props} />;\n}\n\nexport const TracesDataList = Object.assign(TracesDataListRoot, {\n Top: DataListTop,\n TopCell: DataListTopCell,\n SortableTopCell: DataListSortableTopCell,\n TopCellWithTooltip: DataListTopCellWithTooltip,\n RowButton: DataListRowButton,\n NoMatch: DataListNoMatch,\n Subheader: DataListSubheader,\n SubHeading: DataListSubHeading,\n Spacer: DataListSpacer,\n IdCell: DataListIdCell,\n CreatedCell: DataListCreatedCell,\n NameCell: TracesDataListNameCell,\n InputCell: TracesDataListInputCell,\n TypeCell: TracesDataListTypeCell,\n StatusCell: TracesDataListStatusCell,\n NextPageLoading: DataListNextPageLoading,\n});\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
+
5
+ const compactNumber = new Intl.NumberFormat("en-US", { notation: "compact", maximumSignificantDigits: 3 });
6
+ const fullNumber = new Intl.NumberFormat("en-US");
7
+ const currencyCodes = new Set(Intl.supportedValuesOf("currency"));
8
+ function isCurrency(code) {
9
+ return code !== void 0 && currencyCodes.has(code.toUpperCase());
10
+ }
11
+ function money(currency, options) {
12
+ return new Intl.NumberFormat("en-US", { style: "currency", currency, ...options });
13
+ }
14
+ function formatCompactNumber(value, { currency } = {}) {
15
+ if (!isCurrency(currency)) return compactNumber.format(value);
16
+ const size = Math.abs(value);
17
+ if (size < 100) return formatFullNumber(value, { currency });
18
+ if (size < 1e3) return money(currency, { maximumFractionDigits: 0 }).format(value);
19
+ return money(currency, { notation: "compact", maximumSignificantDigits: 3 }).format(value);
20
+ }
21
+ function formatFullNumber(value, { currency } = {}) {
22
+ if (!isCurrency(currency)) return fullNumber.format(value);
23
+ const formatter = money(currency, {});
24
+ const smallestUnit = 10 ** -(formatter.resolvedOptions().maximumFractionDigits ?? 2);
25
+ if (value !== 0 && Math.abs(value) < smallestUnit) {
26
+ return `${value < 0 ? "-" : ""}<${formatter.format(smallestUnit)}`;
27
+ }
28
+ return formatter.format(value);
29
+ }
30
+ function formatCost(value, unit) {
31
+ const isUsd = !unit || unit.toLowerCase() === "usd";
32
+ const amount = value > 0 && value < 0.01 ? "<0.01" : value.toFixed(2);
33
+ if (!isUsd) return `${amount} ${unit}`;
34
+ return amount.startsWith("<") ? "<$0.01" : `$${amount}`;
35
+ }
36
+
37
+ exports.formatCompactNumber = formatCompactNumber;
38
+ exports.formatCost = formatCost;
39
+ exports.formatFullNumber = formatFullNumber;
40
+ //# sourceMappingURL=cost.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cost.cjs.js","sources":["../../src/lib/cost.ts"],"sourcesContent":["export interface CompactNumberFormatOptions {\n currency?: string;\n}\n\nconst compactNumber = new Intl.NumberFormat('en-US', { notation: 'compact', maximumSignificantDigits: 3 });\nconst fullNumber = new Intl.NumberFormat('en-US');\n\nconst currencyCodes = new Set(Intl.supportedValuesOf('currency'));\n\nfunction isCurrency(code: string | undefined): code is string {\n return code !== undefined && currencyCodes.has(code.toUpperCase());\n}\n\nfunction money(currency: string, options: Intl.NumberFormatOptions) {\n return new Intl.NumberFormat('en-US', { style: 'currency', currency, ...options });\n}\n\nexport function formatCompactNumber(value: number, { currency }: CompactNumberFormatOptions = {}): string {\n if (!isCurrency(currency)) return compactNumber.format(value);\n const size = Math.abs(value);\n if (size < 100) return formatFullNumber(value, { currency });\n if (size < 1000) return money(currency, { maximumFractionDigits: 0 }).format(value);\n return money(currency, { notation: 'compact', maximumSignificantDigits: 3 }).format(value);\n}\n\nexport function formatFullNumber(value: number, { currency }: CompactNumberFormatOptions = {}): string {\n if (!isCurrency(currency)) return fullNumber.format(value);\n const formatter = money(currency, {});\n const smallestUnit = 10 ** -(formatter.resolvedOptions().maximumFractionDigits ?? 2);\n if (value !== 0 && Math.abs(value) < smallestUnit) {\n return `${value < 0 ? '-' : ''}<${formatter.format(smallestUnit)}`;\n }\n return formatter.format(value);\n}\n\nexport function formatCost(value: number, unit?: string | null): string {\n const isUsd = !unit || unit.toLowerCase() === 'usd';\n const amount = value > 0 && value < 0.01 ? '<0.01' : value.toFixed(2);\n if (!isUsd) return `${amount} ${unit}`;\n return amount.startsWith('<') ? '<$0.01' : `$${amount}`;\n}\n"],"names":[],"mappings":";;;;AAIA,MAAM,aAAA,GAAgB,IAAI,IAAA,CAAK,YAAA,CAAa,OAAA,EAAS,EAAE,QAAA,EAAU,SAAA,EAAW,wBAAA,EAA0B,CAAA,EAAG,CAAA;AACzG,MAAM,UAAA,GAAa,IAAI,IAAA,CAAK,YAAA,CAAa,OAAO,CAAA;AAEhD,MAAM,gBAAgB,IAAI,GAAA,CAAI,IAAA,CAAK,iBAAA,CAAkB,UAAU,CAAC,CAAA;AAEhE,SAAS,WAAW,IAAA,EAA0C;AAC5D,EAAA,OAAO,SAAS,MAAA,IAAa,aAAA,CAAc,GAAA,CAAI,IAAA,CAAK,aAAa,CAAA;AACnE;AAEA,SAAS,KAAA,CAAM,UAAkB,OAAA,EAAmC;AAClE,EAAA,OAAO,IAAI,IAAA,CAAK,YAAA,CAAa,OAAA,EAAS,EAAE,OAAO,UAAA,EAAY,QAAA,EAAU,GAAG,OAAA,EAAS,CAAA;AACnF;AAEO,SAAS,oBAAoB,KAAA,EAAe,EAAE,QAAA,EAAS,GAAgC,EAAC,EAAW;AACxG,EAAA,IAAI,CAAC,UAAA,CAAW,QAAQ,GAAG,OAAO,aAAA,CAAc,OAAO,KAAK,CAAA;AAC5D,EAAA,MAAM,IAAA,GAAO,IAAA,CAAK,GAAA,CAAI,KAAK,CAAA;AAC3B,EAAA,IAAI,OAAO,GAAA,EAAK,OAAO,iBAAiB,KAAA,EAAO,EAAE,UAAU,CAAA;AAC3D,EAAA,IAAI,IAAA,GAAO,GAAA,EAAM,OAAO,KAAA,CAAM,QAAA,EAAU,EAAE,qBAAA,EAAuB,CAAA,EAAG,CAAA,CAAE,MAAA,CAAO,KAAK,CAAA;AAClF,EAAA,OAAO,KAAA,CAAM,QAAA,EAAU,EAAE,QAAA,EAAU,SAAA,EAAW,0BAA0B,CAAA,EAAG,CAAA,CAAE,MAAA,CAAO,KAAK,CAAA;AAC3F;AAEO,SAAS,iBAAiB,KAAA,EAAe,EAAE,QAAA,EAAS,GAAgC,EAAC,EAAW;AACrG,EAAA,IAAI,CAAC,UAAA,CAAW,QAAQ,GAAG,OAAO,UAAA,CAAW,OAAO,KAAK,CAAA;AACzD,EAAA,MAAM,SAAA,GAAY,KAAA,CAAM,QAAA,EAAU,EAAE,CAAA;AACpC,EAAA,MAAM,eAAe,EAAA,IAAM,EAAE,SAAA,CAAU,eAAA,GAAkB,qBAAA,IAAyB,CAAA,CAAA;AAClF,EAAA,IAAI,UAAU,CAAA,IAAK,IAAA,CAAK,GAAA,CAAI,KAAK,IAAI,YAAA,EAAc;AACjD,IAAA,OAAO,CAAA,EAAG,QAAQ,CAAA,GAAI,GAAA,GAAM,EAAE,CAAA,CAAA,EAAI,SAAA,CAAU,MAAA,CAAO,YAAY,CAAC,CAAA,CAAA;AAAA,EAClE;AACA,EAAA,OAAO,SAAA,CAAU,OAAO,KAAK,CAAA;AAC/B;AAEO,SAAS,UAAA,CAAW,OAAe,IAAA,EAA8B;AACtE,EAAA,MAAM,KAAA,GAAQ,CAAC,IAAA,IAAQ,IAAA,CAAK,aAAY,KAAM,KAAA;AAC9C,EAAA,MAAM,MAAA,GAAS,QAAQ,CAAA,IAAK,KAAA,GAAQ,OAAO,OAAA,GAAU,KAAA,CAAM,QAAQ,CAAC,CAAA;AACpE,EAAA,IAAI,CAAC,KAAA,EAAO,OAAO,CAAA,EAAG,MAAM,IAAI,IAAI,CAAA,CAAA;AACpC,EAAA,OAAO,OAAO,UAAA,CAAW,GAAG,CAAA,GAAI,QAAA,GAAW,IAAI,MAAM,CAAA,CAAA;AACvD;;;;;;"}
@@ -0,0 +1,2 @@
1
+ export * from '../src/utils/cost'
2
+ export {}
@@ -0,0 +1,34 @@
1
+ const compactNumber = new Intl.NumberFormat("en-US", { notation: "compact", maximumSignificantDigits: 3 });
2
+ const fullNumber = new Intl.NumberFormat("en-US");
3
+ const currencyCodes = new Set(Intl.supportedValuesOf("currency"));
4
+ function isCurrency(code) {
5
+ return code !== void 0 && currencyCodes.has(code.toUpperCase());
6
+ }
7
+ function money(currency, options) {
8
+ return new Intl.NumberFormat("en-US", { style: "currency", currency, ...options });
9
+ }
10
+ function formatCompactNumber(value, { currency } = {}) {
11
+ if (!isCurrency(currency)) return compactNumber.format(value);
12
+ const size = Math.abs(value);
13
+ if (size < 100) return formatFullNumber(value, { currency });
14
+ if (size < 1e3) return money(currency, { maximumFractionDigits: 0 }).format(value);
15
+ return money(currency, { notation: "compact", maximumSignificantDigits: 3 }).format(value);
16
+ }
17
+ function formatFullNumber(value, { currency } = {}) {
18
+ if (!isCurrency(currency)) return fullNumber.format(value);
19
+ const formatter = money(currency, {});
20
+ const smallestUnit = 10 ** -(formatter.resolvedOptions().maximumFractionDigits ?? 2);
21
+ if (value !== 0 && Math.abs(value) < smallestUnit) {
22
+ return `${value < 0 ? "-" : ""}<${formatter.format(smallestUnit)}`;
23
+ }
24
+ return formatter.format(value);
25
+ }
26
+ function formatCost(value, unit) {
27
+ const isUsd = !unit || unit.toLowerCase() === "usd";
28
+ const amount = value > 0 && value < 0.01 ? "<0.01" : value.toFixed(2);
29
+ if (!isUsd) return `${amount} ${unit}`;
30
+ return amount.startsWith("<") ? "<$0.01" : `$${amount}`;
31
+ }
32
+
33
+ export { formatCompactNumber, formatCost, formatFullNumber };
34
+ //# sourceMappingURL=cost.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cost.es.js","sources":["../../src/lib/cost.ts"],"sourcesContent":["export interface CompactNumberFormatOptions {\n currency?: string;\n}\n\nconst compactNumber = new Intl.NumberFormat('en-US', { notation: 'compact', maximumSignificantDigits: 3 });\nconst fullNumber = new Intl.NumberFormat('en-US');\n\nconst currencyCodes = new Set(Intl.supportedValuesOf('currency'));\n\nfunction isCurrency(code: string | undefined): code is string {\n return code !== undefined && currencyCodes.has(code.toUpperCase());\n}\n\nfunction money(currency: string, options: Intl.NumberFormatOptions) {\n return new Intl.NumberFormat('en-US', { style: 'currency', currency, ...options });\n}\n\nexport function formatCompactNumber(value: number, { currency }: CompactNumberFormatOptions = {}): string {\n if (!isCurrency(currency)) return compactNumber.format(value);\n const size = Math.abs(value);\n if (size < 100) return formatFullNumber(value, { currency });\n if (size < 1000) return money(currency, { maximumFractionDigits: 0 }).format(value);\n return money(currency, { notation: 'compact', maximumSignificantDigits: 3 }).format(value);\n}\n\nexport function formatFullNumber(value: number, { currency }: CompactNumberFormatOptions = {}): string {\n if (!isCurrency(currency)) return fullNumber.format(value);\n const formatter = money(currency, {});\n const smallestUnit = 10 ** -(formatter.resolvedOptions().maximumFractionDigits ?? 2);\n if (value !== 0 && Math.abs(value) < smallestUnit) {\n return `${value < 0 ? '-' : ''}<${formatter.format(smallestUnit)}`;\n }\n return formatter.format(value);\n}\n\nexport function formatCost(value: number, unit?: string | null): string {\n const isUsd = !unit || unit.toLowerCase() === 'usd';\n const amount = value > 0 && value < 0.01 ? '<0.01' : value.toFixed(2);\n if (!isUsd) return `${amount} ${unit}`;\n return amount.startsWith('<') ? '<$0.01' : `$${amount}`;\n}\n"],"names":[],"mappings":"AAIA,MAAM,aAAA,GAAgB,IAAI,IAAA,CAAK,YAAA,CAAa,OAAA,EAAS,EAAE,QAAA,EAAU,SAAA,EAAW,wBAAA,EAA0B,CAAA,EAAG,CAAA;AACzG,MAAM,UAAA,GAAa,IAAI,IAAA,CAAK,YAAA,CAAa,OAAO,CAAA;AAEhD,MAAM,gBAAgB,IAAI,GAAA,CAAI,IAAA,CAAK,iBAAA,CAAkB,UAAU,CAAC,CAAA;AAEhE,SAAS,WAAW,IAAA,EAA0C;AAC5D,EAAA,OAAO,SAAS,MAAA,IAAa,aAAA,CAAc,GAAA,CAAI,IAAA,CAAK,aAAa,CAAA;AACnE;AAEA,SAAS,KAAA,CAAM,UAAkB,OAAA,EAAmC;AAClE,EAAA,OAAO,IAAI,IAAA,CAAK,YAAA,CAAa,OAAA,EAAS,EAAE,OAAO,UAAA,EAAY,QAAA,EAAU,GAAG,OAAA,EAAS,CAAA;AACnF;AAEO,SAAS,oBAAoB,KAAA,EAAe,EAAE,QAAA,EAAS,GAAgC,EAAC,EAAW;AACxG,EAAA,IAAI,CAAC,UAAA,CAAW,QAAQ,GAAG,OAAO,aAAA,CAAc,OAAO,KAAK,CAAA;AAC5D,EAAA,MAAM,IAAA,GAAO,IAAA,CAAK,GAAA,CAAI,KAAK,CAAA;AAC3B,EAAA,IAAI,OAAO,GAAA,EAAK,OAAO,iBAAiB,KAAA,EAAO,EAAE,UAAU,CAAA;AAC3D,EAAA,IAAI,IAAA,GAAO,GAAA,EAAM,OAAO,KAAA,CAAM,QAAA,EAAU,EAAE,qBAAA,EAAuB,CAAA,EAAG,CAAA,CAAE,MAAA,CAAO,KAAK,CAAA;AAClF,EAAA,OAAO,KAAA,CAAM,QAAA,EAAU,EAAE,QAAA,EAAU,SAAA,EAAW,0BAA0B,CAAA,EAAG,CAAA,CAAE,MAAA,CAAO,KAAK,CAAA;AAC3F;AAEO,SAAS,iBAAiB,KAAA,EAAe,EAAE,QAAA,EAAS,GAAgC,EAAC,EAAW;AACrG,EAAA,IAAI,CAAC,UAAA,CAAW,QAAQ,GAAG,OAAO,UAAA,CAAW,OAAO,KAAK,CAAA;AACzD,EAAA,MAAM,SAAA,GAAY,KAAA,CAAM,QAAA,EAAU,EAAE,CAAA;AACpC,EAAA,MAAM,eAAe,EAAA,IAAM,EAAE,SAAA,CAAU,eAAA,GAAkB,qBAAA,IAAyB,CAAA,CAAA;AAClF,EAAA,IAAI,UAAU,CAAA,IAAK,IAAA,CAAK,GAAA,CAAI,KAAK,IAAI,YAAA,EAAc;AACjD,IAAA,OAAO,CAAA,EAAG,QAAQ,CAAA,GAAI,GAAA,GAAM,EAAE,CAAA,CAAA,EAAI,SAAA,CAAU,MAAA,CAAO,YAAY,CAAC,CAAA,CAAA;AAAA,EAClE;AACA,EAAA,OAAO,SAAA,CAAU,OAAO,KAAK,CAAA;AAC/B;AAEO,SAAS,UAAA,CAAW,OAAe,IAAA,EAA8B;AACtE,EAAA,MAAM,KAAA,GAAQ,CAAC,IAAA,IAAQ,IAAA,CAAK,aAAY,KAAM,KAAA;AAC9C,EAAA,MAAM,MAAA,GAAS,QAAQ,CAAA,IAAK,KAAA,GAAQ,OAAO,OAAA,GAAU,KAAA,CAAM,QAAQ,CAAC,CAAA;AACpE,EAAA,IAAI,CAAC,KAAA,EAAO,OAAO,CAAA,EAAG,MAAM,IAAI,IAAI,CAAA,CAAA;AACpC,EAAA,OAAO,OAAO,UAAA,CAAW,GAAG,CAAA,GAAI,QAAA,GAAW,IAAI,MAAM,CAAA,CAAA;AACvD;;;;"}
@@ -0,0 +1,99 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
+
5
+ function toDate(value) {
6
+ if (value == null) return void 0;
7
+ const date = value instanceof Date ? value : new Date(value);
8
+ return Number.isNaN(date.getTime()) ? void 0 : date;
9
+ }
10
+ const PRESET_OPTIONS = {
11
+ time: { hour: "numeric", minute: "2-digit" },
12
+ "time-seconds": { hour: "numeric", minute: "2-digit", second: "2-digit" },
13
+ "date-time": { month: "short", day: "numeric", year: "numeric", hour: "numeric", minute: "2-digit" },
14
+ "date-time-seconds": {
15
+ month: "short",
16
+ day: "numeric",
17
+ year: "numeric",
18
+ hour: "numeric",
19
+ minute: "2-digit",
20
+ second: "2-digit"
21
+ },
22
+ calendar: { year: "numeric", month: "numeric", day: "numeric", calendar: "gregory", numberingSystem: "latn" },
23
+ dayMonth: { month: "short", day: "numeric" },
24
+ dayMonthYear: { month: "short", day: "numeric", year: "numeric" },
25
+ precise: {
26
+ month: "short",
27
+ day: "numeric",
28
+ year: "numeric",
29
+ hour: "numeric",
30
+ minute: "2-digit",
31
+ second: "2-digit",
32
+ fractionalSecondDigits: 3
33
+ },
34
+ timePrecise: { hour: "numeric", minute: "2-digit", second: "2-digit", fractionalSecondDigits: 3 }
35
+ };
36
+ const formatters = /* @__PURE__ */ new Map();
37
+ function getFormatter(key, locale, timeZone) {
38
+ const cacheKey = `${locale ?? ""}|${timeZone ?? ""}|${key}`;
39
+ let formatter = formatters.get(cacheKey);
40
+ if (!formatter) {
41
+ formatter = new Intl.DateTimeFormat(locale, { ...PRESET_OPTIONS[key], timeZone });
42
+ formatters.set(cacheKey, formatter);
43
+ }
44
+ return formatter;
45
+ }
46
+ function calendarDate(date, timeZone) {
47
+ const parts = getFormatter("calendar", "en-US", timeZone).formatToParts(date);
48
+ return {
49
+ year: parts.find((part) => part.type === "year")?.value,
50
+ month: parts.find((part) => part.type === "month")?.value,
51
+ day: parts.find((part) => part.type === "day")?.value
52
+ };
53
+ }
54
+ function formatShortDate(value, { locale, now, timeZone } = {}) {
55
+ const date = toDate(value);
56
+ if (!date) return void 0;
57
+ const reference = new Date(now ?? Date.now());
58
+ const key = calendarDate(date, timeZone).year === calendarDate(reference, timeZone).year ? "dayMonth" : "dayMonthYear";
59
+ return getFormatter(key, locale, timeZone).format(date);
60
+ }
61
+ function formatDate(value, preset, options = {}) {
62
+ const date = toDate(value);
63
+ if (!date) return void 0;
64
+ const { locale, now, timeZone } = options;
65
+ if (preset === "relative-time") {
66
+ const diff = date.getTime() - new Date(now ?? Date.now()).getTime();
67
+ const abs = Math.abs(diff);
68
+ if (abs < 5e3) return "just now";
69
+ const units = [
70
+ { limit: 6e4, size: 1e3, unit: "s" },
71
+ { limit: 36e5, size: 6e4, unit: "m" },
72
+ { limit: 864e5, size: 36e5, unit: "h" },
73
+ { limit: 7 * 864e5, size: 864e5, unit: "d" }
74
+ ];
75
+ const match = units.find(({ limit }) => abs < limit);
76
+ if (!match) return formatDate(date, "date", options);
77
+ const label = `${Math.floor(abs / match.size)}${match.unit}`;
78
+ return diff < 0 ? `${label} ago` : `in ${label}`;
79
+ }
80
+ if (preset === "date") return formatShortDate(date, options);
81
+ return getFormatter(preset, locale, timeZone).format(date);
82
+ }
83
+ function formatDateRange(start, end, options = {}) {
84
+ const from = toDate(start);
85
+ const to = toDate(end);
86
+ if (!from || !to) return void 0;
87
+ return getFormatter("dayMonthYear", options.locale, options.timeZone).formatRange(from, to).replace(/\u2009/g, " ");
88
+ }
89
+ function formatTimestampPrecise(value, { locale, withDate = true } = {}) {
90
+ const date = toDate(value);
91
+ return date ? getFormatter(withDate ? "precise" : "timePrecise", locale).format(date) : void 0;
92
+ }
93
+
94
+ exports.formatDate = formatDate;
95
+ exports.formatDateRange = formatDateRange;
96
+ exports.formatShortDate = formatShortDate;
97
+ exports.formatTimestampPrecise = formatTimestampPrecise;
98
+ exports.toDate = toDate;
99
+ //# sourceMappingURL=date-format.cjs.js.map