@mastra/playground-ui 68.0.0-alpha.0 → 68.0.0-alpha.2

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 (836) hide show
  1. package/dist/{ActionRow-BfK77pCT.cjs → ActionRow-BlC9GAef.cjs} +4 -4
  2. package/dist/ActionRow-BlC9GAef.cjs.map +1 -0
  3. package/dist/{ActionRow-Cd6tOC2K.js → ActionRow-DCrRCvBq.js} +4 -4
  4. package/dist/ActionRow-DCrRCvBq.js.map +1 -0
  5. package/dist/{Button-Bw1e3ONi.js → Button-CLXTbAY8.js} +42 -13
  6. package/dist/Button-CLXTbAY8.js.map +1 -0
  7. package/dist/{Button-YQRflC47.cjs → Button-DLcMcuUL.cjs} +58 -11
  8. package/dist/Button-DLcMcuUL.cjs.map +1 -0
  9. package/dist/{CodeEditor-CJ9jC9lu.cjs → CodeEditor-CLzs0yVc.cjs} +4 -4
  10. package/dist/{CodeEditor-CJ9jC9lu.cjs.map → CodeEditor-CLzs0yVc.cjs.map} +1 -1
  11. package/dist/{CodeEditor-CPVxj7WS.js → CodeEditor-COnz9c6B.js} +4 -4
  12. package/dist/{CodeEditor-CPVxj7WS.js.map → CodeEditor-COnz9c6B.js.map} +1 -1
  13. package/dist/{Comment-VFJq2wRp.js → Comment-0n98b_f_.js} +3 -3
  14. package/dist/{Comment-VFJq2wRp.js.map → Comment-0n98b_f_.js.map} +1 -1
  15. package/dist/{Comment-KYUQzeSu.cjs → Comment-Cg0f7eLa.cjs} +3 -3
  16. package/dist/{Comment-KYUQzeSu.cjs.map → Comment-Cg0f7eLa.cjs.map} +1 -1
  17. package/dist/{DataCodeSection-CZRPsStI.cjs → DataCodeSection-CFxXsQWH.cjs} +10 -10
  18. package/dist/DataCodeSection-CFxXsQWH.cjs.map +1 -0
  19. package/dist/{DataCodeSection-Ckd47p_S.js → DataCodeSection-PY9XEg2C.js} +8 -8
  20. package/dist/DataCodeSection-PY9XEg2C.js.map +1 -0
  21. package/dist/{DataDetailsPanel-_CK0Huk6.js → DataDetailsPanel-CohEKPm4.js} +5 -5
  22. package/dist/{DataDetailsPanel-_CK0Huk6.js.map → DataDetailsPanel-CohEKPm4.js.map} +1 -1
  23. package/dist/{DataDetailsPanel-DFhM9H5D.cjs → DataDetailsPanel-DiyjEXqK.cjs} +6 -6
  24. package/dist/{DataDetailsPanel-DFhM9H5D.cjs.map → DataDetailsPanel-DiyjEXqK.cjs.map} +1 -1
  25. package/dist/{DataList-2tIlQsLc.js → DataList-CUhRQAv6.js} +2 -2
  26. package/dist/{DataList-2tIlQsLc.js.map → DataList-CUhRQAv6.js.map} +1 -1
  27. package/dist/{DataList-Czwmwyvp.cjs → DataList-Cj0mfk19.cjs} +2 -2
  28. package/dist/{DataList-Czwmwyvp.cjs.map → DataList-Cj0mfk19.cjs.map} +1 -1
  29. package/dist/{DataPanel-C0Ll76Ne.cjs → DataPanel-Coc9h35I.cjs} +3 -3
  30. package/dist/{DataPanel-C0Ll76Ne.cjs.map → DataPanel-Coc9h35I.cjs.map} +1 -1
  31. package/dist/{DataPanel-CY1W5LHJ.js → DataPanel-IgB9D5PO.js} +3 -3
  32. package/dist/{DataPanel-CY1W5LHJ.js.map → DataPanel-IgB9D5PO.js.map} +1 -1
  33. package/dist/{Dialog-CjaiCrkv.cjs → Dialog-BvWF9HE-.cjs} +2 -2
  34. package/dist/{Dialog-CjaiCrkv.cjs.map → Dialog-BvWF9HE-.cjs.map} +1 -1
  35. package/dist/{Dialog-CKtTR8h3.js → Dialog-DaWtxwd9.js} +2 -2
  36. package/dist/{Dialog-CKtTR8h3.js.map → Dialog-DaWtxwd9.js.map} +1 -1
  37. package/dist/{ErrorBoundary-Bm0LL_b7.cjs → ErrorBoundary-B5GjmA6V.cjs} +2 -2
  38. package/dist/{ErrorBoundary-Bm0LL_b7.cjs.map → ErrorBoundary-B5GjmA6V.cjs.map} +1 -1
  39. package/dist/{ErrorBoundary-95_6A77S.js → ErrorBoundary-Cat3KU86.js} +2 -2
  40. package/dist/{ErrorBoundary-95_6A77S.js.map → ErrorBoundary-Cat3KU86.js.map} +1 -1
  41. package/dist/{FilterBar--4oguuVe.js → FilterBar-BgW2dqRQ.js} +21 -25
  42. package/dist/FilterBar-BgW2dqRQ.js.map +1 -0
  43. package/dist/{FilterBar-BUd4f7oi.cjs → FilterBar-CQl04O6t.cjs} +21 -25
  44. package/dist/FilterBar-CQl04O6t.cjs.map +1 -0
  45. package/dist/{LogsDataList-Cslabh8K.js → LogsDataList-BI2C5OJz.js} +2 -2
  46. package/dist/{LogsDataList-Cslabh8K.js.map → LogsDataList-BI2C5OJz.js.map} +1 -1
  47. package/dist/{LogsDataList-DMmxAt_t.cjs → LogsDataList-CCIfUPGo.cjs} +2 -2
  48. package/dist/{LogsDataList-DMmxAt_t.cjs.map → LogsDataList-CCIfUPGo.cjs.map} +1 -1
  49. package/dist/{MarkdownRenderer-DME2xKTk.js → MarkdownRenderer-2GOXQJEv.js} +3 -3
  50. package/dist/{MarkdownRenderer-DME2xKTk.js.map → MarkdownRenderer-2GOXQJEv.js.map} +1 -1
  51. package/dist/{MarkdownRenderer-CS6u5drO.cjs → MarkdownRenderer-CB8Z_CHc.cjs} +4 -4
  52. package/dist/{MarkdownRenderer-CS6u5drO.cjs.map → MarkdownRenderer-CB8Z_CHc.cjs.map} +1 -1
  53. package/dist/{Message-nVI6tMS3.js → Message-CWzi5F_Q.js} +2 -2
  54. package/dist/{Message-nVI6tMS3.js.map → Message-CWzi5F_Q.js.map} +1 -1
  55. package/dist/{Message-DsCNQpou.cjs → Message-jj56lxNL.cjs} +2 -2
  56. package/dist/{Message-DsCNQpou.cjs.map → Message-jj56lxNL.cjs.map} +1 -1
  57. package/dist/{MetricsTable-D-aZf3dk.cjs → MetricsTable-BSl81oNe.cjs} +44 -9
  58. package/dist/MetricsTable-BSl81oNe.cjs.map +1 -0
  59. package/dist/{MetricsTable-CRPeLHe1.js → MetricsTable-DID6LRoP.js} +44 -9
  60. package/dist/MetricsTable-DID6LRoP.js.map +1 -0
  61. package/dist/{Notice-CyKngbbv.js → Notice-C-8oOZZF.js} +2 -2
  62. package/dist/{Notice-CyKngbbv.js.map → Notice-C-8oOZZF.js.map} +1 -1
  63. package/dist/{Notice-DWNeCe-t.cjs → Notice-JZ7SW7q6.cjs} +2 -2
  64. package/dist/{Notice-DWNeCe-t.cjs.map → Notice-JZ7SW7q6.cjs.map} +1 -1
  65. package/dist/{Workflow-BVWvgDmI.js → Workflow-C3SlEdP-.js} +5 -5
  66. package/dist/{Workflow-BVWvgDmI.js.map → Workflow-C3SlEdP-.js.map} +1 -1
  67. package/dist/{Workflow-BeF6pIO9.cjs → Workflow-DSWQ-ROz.cjs} +5 -5
  68. package/dist/{Workflow-BeF6pIO9.cjs.map → Workflow-DSWQ-ROz.cjs.map} +1 -1
  69. package/dist/{activity-DAK8tj7r.cjs → activity-DyB5H3gF.cjs} +2 -2
  70. package/dist/{activity-DAK8tj7r.cjs.map → activity-DyB5H3gF.cjs.map} +1 -1
  71. package/dist/{activity-CM34JyW-.js → activity-rJ1NQl_2.js} +2 -2
  72. package/dist/{activity-CM34JyW-.js.map → activity-rJ1NQl_2.js.map} +1 -1
  73. package/dist/{ask-user-C82m_G9W.cjs → ask-user-C1p2PEYe.cjs} +3 -3
  74. package/dist/ask-user-C1p2PEYe.cjs.map +1 -0
  75. package/dist/{ask-user-BdjH9F7G.js → ask-user-DPznrqGO.js} +3 -3
  76. package/dist/ask-user-DPznrqGO.js.map +1 -0
  77. package/dist/buttons-group-Dc6R7YSs.cjs +48 -0
  78. package/dist/buttons-group-Dc6R7YSs.cjs.map +1 -0
  79. package/dist/buttons-group-DkFlnMiL.js +35 -0
  80. package/dist/buttons-group-DkFlnMiL.js.map +1 -0
  81. package/dist/{ButtonsGroup.css → buttons-group.css} +2 -0
  82. package/dist/chart-plot.css +5 -4
  83. package/dist/clear-filters-button-Buc973vw.cjs +27 -0
  84. package/dist/clear-filters-button-Buc973vw.cjs.map +1 -0
  85. package/dist/clear-filters-button-CNrRuHOY.js +22 -0
  86. package/dist/clear-filters-button-CNrRuHOY.js.map +1 -0
  87. package/dist/{combobox-wFudhN8F.js → combobox-D21no8t5.js} +5 -5
  88. package/dist/{combobox-wFudhN8F.js.map → combobox-D21no8t5.js.map} +1 -1
  89. package/dist/{combobox-8kNAJFlj.cjs → combobox-DIT_6xiG.cjs} +5 -5
  90. package/dist/combobox-DIT_6xiG.cjs.map +1 -0
  91. package/dist/{combobox-parts-BZVXwbG7.cjs → combobox-parts-C4phOq4t.cjs} +10 -18
  92. package/dist/combobox-parts-C4phOq4t.cjs.map +1 -0
  93. package/dist/{combobox-parts-W7KRQUsV.js → combobox-parts-D90ir0Py.js} +11 -19
  94. package/dist/combobox-parts-D90ir0Py.js.map +1 -0
  95. package/dist/components/ActionRow.cjs.js +1 -1
  96. package/dist/components/ActionRow.es.js +1 -1
  97. package/dist/components/AlertDialog.cjs.js +2 -2
  98. package/dist/components/AlertDialog.es.js +2 -2
  99. package/dist/components/Button.cjs.js +4 -1
  100. package/dist/components/Button.es.js +2 -2
  101. package/dist/components/ButtonsGroup.cjs.js +3 -38
  102. package/dist/components/ButtonsGroup.es.js +1 -35
  103. package/dist/components/ClampedText.cjs.js +1 -1
  104. package/dist/components/ClampedText.es.js +1 -1
  105. package/dist/components/ClearFiltersButton.cjs.js +3 -0
  106. package/dist/components/ClearFiltersButton.d.ts +1 -0
  107. package/dist/components/ClearFiltersButton.es.js +1 -0
  108. package/dist/components/CodeBlock.cjs.js +3 -3
  109. package/dist/components/CodeBlock.es.js +3 -3
  110. package/dist/components/CodeEditor.cjs.js +1 -1
  111. package/dist/components/CodeEditor.es.js +1 -1
  112. package/dist/components/CollapsibleBox.cjs.js +1 -1
  113. package/dist/components/CollapsibleBox.es.js +1 -1
  114. package/dist/components/Combobox.cjs.js +2 -2
  115. package/dist/components/Combobox.es.js +2 -2
  116. package/dist/components/Command.cjs.js +3 -2
  117. package/dist/components/Command.cjs.js.map +1 -1
  118. package/dist/components/Command.es.js +3 -2
  119. package/dist/components/Command.es.js.map +1 -1
  120. package/dist/components/Comment.cjs.js +1 -1
  121. package/dist/components/Comment.es.js +1 -1
  122. package/dist/components/CopyButton.cjs.js +1 -1
  123. package/dist/components/CopyButton.es.js +1 -1
  124. package/dist/components/DataCodeSection.cjs.js +1 -1
  125. package/dist/components/DataCodeSection.es.js +1 -1
  126. package/dist/components/DataDetailsPanel.cjs.js +1 -1
  127. package/dist/components/DataDetailsPanel.es.js +1 -1
  128. package/dist/components/DataList.cjs.js +3 -3
  129. package/dist/components/DataList.es.js +3 -3
  130. package/dist/components/DataPanel.cjs.js +1 -1
  131. package/dist/components/DataPanel.es.js +1 -1
  132. package/dist/components/DateRangeTimeline.cjs.js +1 -1
  133. package/dist/components/DateRangeTimeline.es.js +1 -1
  134. package/dist/components/DateTimePicker.cjs.js +3 -3
  135. package/dist/components/DateTimePicker.cjs.js.map +1 -1
  136. package/dist/components/DateTimePicker.es.js +3 -3
  137. package/dist/components/DateTimePicker.es.js.map +1 -1
  138. package/dist/components/DateTimeRangePicker.cjs.js +2 -2
  139. package/dist/components/DateTimeRangePicker.es.js +1 -1
  140. package/dist/components/Dialog.cjs.js +1 -1
  141. package/dist/components/Dialog.es.js +1 -1
  142. package/dist/components/DisabledFeatureButton.cjs.js +1 -1
  143. package/dist/components/DisabledFeatureButton.es.js +1 -1
  144. package/dist/components/Drawer.cjs.js +1 -1
  145. package/dist/components/Drawer.es.js +1 -1
  146. package/dist/components/EnvironmentVariablesEditor.cjs.js +4 -4
  147. package/dist/components/EnvironmentVariablesEditor.es.js +4 -4
  148. package/dist/components/ErrorBoundary.cjs.js +1 -1
  149. package/dist/components/ErrorBoundary.es.js +1 -1
  150. package/dist/components/FilterBar.cjs.js +7 -2
  151. package/dist/components/FilterBar.es.js +4 -3
  152. package/dist/components/FormFieldBlocks.cjs.js +3 -3
  153. package/dist/components/FormFieldBlocks.cjs.js.map +1 -1
  154. package/dist/components/FormFieldBlocks.es.js +3 -3
  155. package/dist/components/FormFieldBlocks.es.js.map +1 -1
  156. package/dist/components/InputGroup.cjs.js +1 -1
  157. package/dist/components/InputGroup.es.js +1 -1
  158. package/dist/components/InputNumber.cjs.js +2 -2
  159. package/dist/components/InputNumber.es.js +2 -2
  160. package/dist/components/JSONSchemaForm.cjs.js +2 -2
  161. package/dist/components/JSONSchemaForm.es.js +2 -2
  162. package/dist/components/ListSearch.cjs.js +1 -1
  163. package/dist/components/ListSearch.es.js +1 -1
  164. package/dist/components/LogsDataList.cjs.js +2 -2
  165. package/dist/components/LogsDataList.es.js +2 -2
  166. package/dist/components/MarkdownRenderer.cjs.js +1 -1
  167. package/dist/components/MarkdownRenderer.es.js +1 -1
  168. package/dist/components/Message.cjs.js +1 -1
  169. package/dist/components/Message.es.js +1 -1
  170. package/dist/components/MetricsTable.cjs.js +1 -1
  171. package/dist/components/MetricsTable.es.js +1 -1
  172. package/dist/components/Notice.cjs.js +1 -1
  173. package/dist/components/Notice.es.js +1 -1
  174. package/dist/components/PrevNextNav.cjs.js +1 -1
  175. package/dist/components/PrevNextNav.es.js +1 -1
  176. package/dist/components/PropertyFilter.cjs.js +4 -4
  177. package/dist/components/PropertyFilter.cjs.js.map +1 -1
  178. package/dist/components/PropertyFilter.es.js +4 -4
  179. package/dist/components/PropertyFilter.es.js.map +1 -1
  180. package/dist/components/RuleBuilder.cjs.js +2 -2
  181. package/dist/components/RuleBuilder.es.js +2 -2
  182. package/dist/components/SavedViews.cjs.js +4 -3
  183. package/dist/components/SavedViews.cjs.js.map +1 -1
  184. package/dist/components/SavedViews.es.js +4 -3
  185. package/dist/components/SavedViews.es.js.map +1 -1
  186. package/dist/components/SearchInput.cjs.js +5 -2
  187. package/dist/components/SearchInput.cjs.js.map +1 -1
  188. package/dist/components/SearchInput.es.js +5 -2
  189. package/dist/components/SearchInput.es.js.map +1 -1
  190. package/dist/components/Select.cjs.js +1 -1
  191. package/dist/components/Select.es.js +1 -1
  192. package/dist/components/SideDialog.cjs.js +5 -5
  193. package/dist/components/SideDialog.cjs.js.map +1 -1
  194. package/dist/components/SideDialog.es.js +4 -4
  195. package/dist/components/Sidebar.cjs.js +11 -11
  196. package/dist/components/Sidebar.cjs.js.map +1 -1
  197. package/dist/components/Sidebar.es.js +12 -12
  198. package/dist/components/Sidebar.es.js.map +1 -1
  199. package/dist/components/Tabs.cjs.js +2 -2
  200. package/dist/components/Tabs.es.js +2 -2
  201. package/dist/components/ThreadList.cjs.js +1 -1
  202. package/dist/components/ThreadList.es.js +1 -1
  203. package/dist/components/Toaster.cjs.js +2 -2
  204. package/dist/components/Toaster.es.js +2 -2
  205. package/dist/components/Truncate.cjs.js +1 -1
  206. package/dist/components/Truncate.es.js +1 -1
  207. package/dist/components/Workflow.cjs.js +1 -1
  208. package/dist/components/Workflow.es.js +1 -1
  209. package/dist/components/ai/activity.cjs.js +1 -1
  210. package/dist/components/ai/activity.es.js +1 -1
  211. package/dist/components/ai/ask-user.cjs.js +1 -1
  212. package/dist/components/ai/ask-user.es.js +1 -1
  213. package/dist/components/ai/plan.cjs.js +2 -2
  214. package/dist/components/ai/plan.es.js +2 -2
  215. package/dist/components/ai/tool-approval.cjs.js +1 -1
  216. package/dist/components/ai/tool-approval.es.js +1 -1
  217. package/dist/components/ai/tool-call.cjs.js +1 -1
  218. package/dist/components/ai/tool-call.es.js +1 -1
  219. package/dist/{copy-button-CF-X4iDj.js → copy-button-BXrbevLn.js} +2 -2
  220. package/dist/{copy-button-CF-X4iDj.js.map → copy-button-BXrbevLn.js.map} +1 -1
  221. package/dist/{copy-button-BYEFKNpo.cjs → copy-button-DJAQ6_3o.cjs} +2 -2
  222. package/dist/{copy-button-BYEFKNpo.cjs.map → copy-button-DJAQ6_3o.cjs.map} +1 -1
  223. package/dist/{data-list-BkimqE_P.cjs → data-list-C4Vmq5HA.cjs} +2 -2
  224. package/dist/{data-list-BkimqE_P.cjs.map → data-list-C4Vmq5HA.cjs.map} +1 -1
  225. package/dist/{data-list-evmf5xWI.js → data-list-DHCOoLmj.js} +2 -2
  226. package/dist/{data-list-evmf5xWI.js.map → data-list-DHCOoLmj.js.map} +1 -1
  227. package/dist/{DateTimeRangePicker-HmPOHwAQ.cjs → date-time-range-picker-CTt7Od0P.cjs} +71 -57
  228. package/dist/date-time-range-picker-CTt7Od0P.cjs.map +1 -0
  229. package/dist/{DateTimeRangePicker-C_Lie_2P.js → date-time-range-picker-DKh1K9Iy.js} +72 -58
  230. package/dist/date-time-range-picker-DKh1K9Iy.js.map +1 -0
  231. package/dist/domains/auth/components/session-expired.cjs.js +2 -2
  232. package/dist/domains/auth/components/session-expired.es.js +2 -2
  233. package/dist/domains/chat/activity/activity-stretch-line.cjs.js +1 -1
  234. package/dist/domains/chat/activity/activity-stretch-line.es.js +1 -1
  235. package/dist/domains/chat/activity/components/activity-fold.cjs.js +1 -1
  236. package/dist/domains/chat/activity/components/activity-fold.es.js +1 -1
  237. package/dist/domains/chat/activity/components/activity-timed-trigger.cjs.js +1 -1
  238. package/dist/domains/chat/activity/components/activity-timed-trigger.es.js +1 -1
  239. package/dist/domains/chat/activity/components/calls-panel.cjs.js +1 -1
  240. package/dist/domains/chat/activity/components/calls-panel.es.js +1 -1
  241. package/dist/domains/chat/activity/components/stretch-content.cjs.js +1 -1
  242. package/dist/domains/chat/activity/components/stretch-content.es.js +1 -1
  243. package/dist/domains/chat/activity/components/stretch-thought.cjs.js +1 -1
  244. package/dist/domains/chat/activity/components/stretch-thought.es.js +1 -1
  245. package/dist/domains/chat/activity/model/activity-segments.cjs.js +1 -1
  246. package/dist/domains/chat/activity/model/activity-segments.es.js +1 -1
  247. package/dist/domains/chat/activity/model/activity-words.cjs.js +1 -1
  248. package/dist/domains/chat/activity/model/activity-words.es.js +1 -1
  249. package/dist/domains/chat/attachments/attachment-preview-dialog.cjs.js +2 -2
  250. package/dist/domains/chat/attachments/attachment-preview-dialog.es.js +2 -2
  251. package/dist/domains/chat/attachments/composer-attachment.cjs.js +1 -1
  252. package/dist/domains/chat/attachments/composer-attachment.es.js +1 -1
  253. package/dist/domains/chat/components/badge-wrapper.cjs.js +1 -1
  254. package/dist/domains/chat/components/badge-wrapper.es.js +1 -1
  255. package/dist/domains/chat/components/network-choice-metadata-dialog.cjs.js +3 -3
  256. package/dist/domains/chat/components/network-choice-metadata-dialog.es.js +3 -3
  257. package/dist/domains/chat/knowledge/pinned-knowledge.cjs.js +1 -1
  258. package/dist/domains/chat/knowledge/pinned-knowledge.es.js +1 -1
  259. package/dist/domains/chat/messages/assistant-message-actions.cjs.js +2 -2
  260. package/dist/domains/chat/messages/assistant-message-actions.es.js +2 -2
  261. package/dist/domains/chat/messages/dataset-save-action.cjs.js +5 -5
  262. package/dist/domains/chat/messages/dataset-save-action.es.js +5 -5
  263. package/dist/domains/chat/messages/message-row.cjs.js +4 -4
  264. package/dist/domains/chat/messages/message-row.es.js +4 -4
  265. package/dist/domains/chat/messages/notification-signal-notice.cjs.js +1 -1
  266. package/dist/domains/chat/messages/notification-signal-notice.es.js +1 -1
  267. package/dist/domains/chat/messages/reasoning-content.cjs.js +1 -1
  268. package/dist/domains/chat/messages/reasoning-content.es.js +1 -1
  269. package/dist/domains/chat/messages/renderers/message-text.cjs.js +2 -2
  270. package/dist/domains/chat/messages/renderers/message-text.es.js +2 -2
  271. package/dist/domains/chat/messages/renderers/reasoning-part-renderer.cjs.js +1 -1
  272. package/dist/domains/chat/messages/renderers/reasoning-part-renderer.es.js +1 -1
  273. package/dist/domains/chat/messages/renderers/status-renderers.cjs.js +1 -1
  274. package/dist/domains/chat/messages/renderers/status-renderers.es.js +1 -1
  275. package/dist/domains/chat/messages/signal-badge.cjs.js +1 -1
  276. package/dist/domains/chat/messages/signal-badge.es.js +1 -1
  277. package/dist/domains/chat/messages/skill-message.cjs.js +2 -2
  278. package/dist/domains/chat/messages/skill-message.es.js +2 -2
  279. package/dist/domains/chat/messages/system-reminder-badge.cjs.js +1 -1
  280. package/dist/domains/chat/messages/system-reminder-badge.es.js +1 -1
  281. package/dist/domains/chat/messages/tripwire-notice.cjs.js +2 -2
  282. package/dist/domains/chat/messages/tripwire-notice.es.js +2 -2
  283. package/dist/domains/chat/tools/badges/agent-badge-wrapper.cjs.js +1 -1
  284. package/dist/domains/chat/tools/badges/agent-badge-wrapper.es.js +1 -1
  285. package/dist/domains/chat/tools/badges/agent-badge.cjs.js +1 -1
  286. package/dist/domains/chat/tools/badges/agent-badge.es.js +1 -1
  287. package/dist/domains/chat/tools/badges/ask-user-badge.cjs.js +1 -1
  288. package/dist/domains/chat/tools/badges/ask-user-badge.es.js +1 -1
  289. package/dist/domains/chat/tools/badges/background-task-metadata-dialog.cjs.js +3 -3
  290. package/dist/domains/chat/tools/badges/background-task-metadata-dialog.es.js +3 -3
  291. package/dist/domains/chat/tools/badges/code-mode-badge.cjs.js +1 -1
  292. package/dist/domains/chat/tools/badges/code-mode-badge.es.js +1 -1
  293. package/dist/domains/chat/tools/badges/file-tree-badge.cjs.js +1 -1
  294. package/dist/domains/chat/tools/badges/file-tree-badge.es.js +1 -1
  295. package/dist/domains/chat/tools/badges/knowledge-tool-badge.cjs.js +1 -1
  296. package/dist/domains/chat/tools/badges/knowledge-tool-badge.es.js +1 -1
  297. package/dist/domains/chat/tools/badges/mcp-task-chip.cjs.js +1 -1
  298. package/dist/domains/chat/tools/badges/mcp-task-chip.es.js +1 -1
  299. package/dist/domains/chat/tools/badges/observation-marker-badge.cjs.js +2 -2
  300. package/dist/domains/chat/tools/badges/observation-marker-badge.es.js +2 -2
  301. package/dist/domains/chat/tools/badges/observation-marker-details.cjs.js +2 -2
  302. package/dist/domains/chat/tools/badges/observation-marker-details.es.js +2 -2
  303. package/dist/domains/chat/tools/badges/observation-renderer.cjs.js +1 -1
  304. package/dist/domains/chat/tools/badges/observation-renderer.es.js +1 -1
  305. package/dist/domains/chat/tools/badges/sandbox-execution-badge.cjs.js +1 -1
  306. package/dist/domains/chat/tools/badges/sandbox-execution-badge.es.js +1 -1
  307. package/dist/domains/chat/tools/badges/tool-approval-badge.cjs.js +1 -1
  308. package/dist/domains/chat/tools/badges/tool-approval-badge.es.js +1 -1
  309. package/dist/domains/chat/tools/badges/tool-badge.cjs.js +2 -2
  310. package/dist/domains/chat/tools/badges/tool-badge.es.js +2 -2
  311. package/dist/domains/chat/tools/badges/workflow-badge.cjs.js +3 -3
  312. package/dist/domains/chat/tools/badges/workflow-badge.es.js +3 -3
  313. package/dist/domains/chat/tools/connect-prompt-tool.cjs.js +3 -3
  314. package/dist/domains/chat/tools/connect-prompt-tool.es.js +3 -3
  315. package/dist/domains/chat/tools/submit-plan-tool.cjs.js +1 -1
  316. package/dist/domains/chat/tools/submit-plan-tool.es.js +1 -1
  317. package/dist/domains/chat/tools/tool-card.cjs.js +1 -1
  318. package/dist/domains/chat/tools/tool-card.es.js +1 -1
  319. package/dist/domains/chat/tools/tool-groups.cjs.js +1 -1
  320. package/dist/domains/chat/tools/tool-groups.es.js +1 -1
  321. package/dist/domains/dashboards/components/dashboard-renderer.cjs.js +1 -1
  322. package/dist/domains/dashboards/components/dashboard-renderer.es.js +1 -1
  323. package/dist/domains/dashboards/kinds/table/table-view.cjs.js +1 -1
  324. package/dist/domains/dashboards/kinds/table/table-view.es.js +1 -1
  325. package/dist/domains/dashboards/metrics-dashboard.cjs.js +1 -1
  326. package/dist/domains/dashboards/metrics-dashboard.cjs.js.map +1 -1
  327. package/dist/domains/dashboards/metrics-dashboard.es.js +1 -1
  328. package/dist/domains/dashboards/metrics-dashboard.es.js.map +1 -1
  329. package/dist/domains/datasets/components/add-dataset-item-dialog/add-dataset-item-dialog.cjs.js +4 -4
  330. package/dist/domains/datasets/components/add-dataset-item-dialog/add-dataset-item-dialog.es.js +4 -4
  331. package/dist/domains/datasets/components/add-dataset-item-dialog/dataset-picker.cjs.js +1 -1
  332. package/dist/domains/datasets/components/add-dataset-item-dialog/dataset-picker.es.js +1 -1
  333. package/dist/domains/datasets/components/add-dataset-item-dialog/trajectory-editor.cjs.js +3 -3
  334. package/dist/domains/datasets/components/add-dataset-item-dialog/trajectory-editor.es.js +3 -3
  335. package/dist/domains/datasets/components/save-as-dataset-item-dialog.cjs.js +5 -5
  336. package/dist/domains/datasets/components/save-as-dataset-item-dialog.es.js +5 -5
  337. package/dist/domains/knowledge/components/KnowledgePageDetail.cjs.js +1 -1
  338. package/dist/domains/knowledge/components/KnowledgePageDetail.es.js +1 -1
  339. package/dist/domains/logs/components/log-data-panel.cjs.js +6 -6
  340. package/dist/domains/logs/components/log-data-panel.cjs.js.map +1 -1
  341. package/dist/domains/logs/components/log-data-panel.es.js +4 -4
  342. package/dist/domains/logs/components/logs-list-view.cjs.js +2 -2
  343. package/dist/domains/logs/components/logs-list-view.es.js +2 -2
  344. package/dist/domains/logs/components/logs-saved-views.cjs.js +1 -1
  345. package/dist/domains/logs/components/logs-saved-views.es.js +1 -1
  346. package/dist/domains/logs/components/logs-toolbar.cjs.js +1 -1
  347. package/dist/domains/logs/components/logs-toolbar.es.js +1 -1
  348. package/dist/domains/logs/components/no-logs-info.cjs.js +1 -1
  349. package/dist/domains/logs/components/no-logs-info.es.js +1 -1
  350. package/dist/domains/logs/hooks/use-logs-filter-persistence.cjs.js +1 -1
  351. package/dist/domains/logs/hooks/use-logs-filter-persistence.es.js +1 -1
  352. package/dist/domains/memory/components/flame-graph.cjs.js +1 -1
  353. package/dist/domains/memory/components/flame-graph.es.js +1 -1
  354. package/dist/domains/memory/components/memory-studio-panel.cjs.js +1 -1
  355. package/dist/domains/memory/components/memory-studio-panel.es.js +1 -1
  356. package/dist/domains/metrics/components/breakdown/breakdown-table.cjs.js +2 -2
  357. package/dist/domains/metrics/components/breakdown/breakdown-table.cjs.js.map +1 -1
  358. package/dist/domains/metrics/components/breakdown/breakdown-table.es.js +2 -2
  359. package/dist/domains/metrics/components/breakdown/breakdown-table.es.js.map +1 -1
  360. package/dist/domains/metrics/components/card-action-buttons.cjs.js +1 -1
  361. package/dist/domains/metrics/components/card-action-buttons.es.js +1 -1
  362. package/dist/domains/metrics/components/chart-card-error.cjs.js +1 -1
  363. package/dist/domains/metrics/components/chart-card-error.es.js +1 -1
  364. package/dist/domains/metrics/components/date-range-selector.cjs.js +2 -2
  365. package/dist/domains/metrics/components/date-range-selector.cjs.js.map +1 -1
  366. package/dist/domains/metrics/components/date-range-selector.es.js +1 -1
  367. package/dist/domains/metrics/components/metrics-time-range-chip.cjs.js +4 -4
  368. package/dist/domains/metrics/components/metrics-time-range-chip.cjs.js.map +1 -1
  369. package/dist/domains/metrics/components/metrics-time-range-chip.es.js +4 -4
  370. package/dist/domains/metrics/components/metrics-time-range-chip.es.js.map +1 -1
  371. package/dist/domains/metrics/drilldown.cjs.js +1 -1
  372. package/dist/domains/metrics/drilldown.es.js +1 -1
  373. package/dist/domains/metrics/metrics-filters.cjs.js +1 -1
  374. package/dist/domains/metrics/metrics-filters.es.js +1 -1
  375. package/dist/domains/observability/hooks/use-observability-list-filters.cjs.js +1 -1
  376. package/dist/domains/observability/hooks/use-observability-list-filters.es.js +1 -1
  377. package/dist/domains/observability/observability-list-url-state.cjs.js +1 -1
  378. package/dist/domains/observability/observability-list-url-state.es.js +1 -1
  379. package/dist/domains/observability/saved-view-state.cjs.js +1 -1
  380. package/dist/domains/observability/saved-view-state.es.js +1 -1
  381. package/dist/domains/observability/saved-views/observability-saved-views.cjs.js +1 -1
  382. package/dist/domains/observability/saved-views/observability-saved-views.es.js +1 -1
  383. package/dist/domains/observability/saved-views.cjs.js +1 -1
  384. package/dist/domains/observability/saved-views.es.js +1 -1
  385. package/dist/domains/observability.cjs.js +1 -1
  386. package/dist/domains/observability.es.js +1 -1
  387. package/dist/domains/scores/components/score-data-panel.cjs.js +2 -2
  388. package/dist/domains/scores/components/score-data-panel.es.js +2 -2
  389. package/dist/domains/scores/components/span-scoring.cjs.js +6 -6
  390. package/dist/domains/scores/components/span-scoring.cjs.js.map +1 -1
  391. package/dist/domains/scores/components/span-scoring.es.js +6 -6
  392. package/dist/domains/scores/components/span-scoring.es.js.map +1 -1
  393. package/dist/domains/scores/components/trace-scores-list.cjs.js +2 -2
  394. package/dist/domains/scores/components/trace-scores-list.es.js +2 -2
  395. package/dist/domains/scores/components/trace-scores-tab.cjs.js +1 -1
  396. package/dist/domains/scores/components/trace-scores-tab.es.js +1 -1
  397. package/dist/domains/skills/skill-simple-form.cjs.js +3 -3
  398. package/dist/domains/skills/skill-simple-form.cjs.js.map +1 -1
  399. package/dist/domains/skills/skill-simple-form.es.js +3 -3
  400. package/dist/domains/skills/skill-simple-form.es.js.map +1 -1
  401. package/dist/domains/spans/components/spans-explorer-body.cjs.js +8 -8
  402. package/dist/domains/spans/components/spans-explorer-body.cjs.js.map +1 -1
  403. package/dist/domains/spans/components/spans-explorer-body.es.js +8 -8
  404. package/dist/domains/spans/components/spans-explorer-body.es.js.map +1 -1
  405. package/dist/domains/spans/components/spans-filter-bar.cjs.js +6 -6
  406. package/dist/domains/spans/components/spans-filter-bar.cjs.js.map +1 -1
  407. package/dist/domains/spans/components/spans-filter-bar.es.js +6 -6
  408. package/dist/domains/spans/components/spans-filter-bar.es.js.map +1 -1
  409. package/dist/domains/spans/hooks/use-spans-filter-bar.cjs.js +5 -5
  410. package/dist/domains/spans/hooks/use-spans-filter-bar.cjs.js.map +1 -1
  411. package/dist/domains/spans/hooks/use-spans-filter-bar.es.js +5 -5
  412. package/dist/domains/spans/hooks/use-spans-filter-bar.es.js.map +1 -1
  413. package/dist/domains/spans/span-filters.cjs.js +2 -2
  414. package/dist/domains/spans/span-filters.cjs.js.map +1 -1
  415. package/dist/domains/spans/span-filters.es.js +2 -2
  416. package/dist/domains/spans/span-filters.es.js.map +1 -1
  417. package/dist/domains/threads/components/threads-explorer-body.cjs.js +8 -8
  418. package/dist/domains/threads/components/threads-explorer-body.cjs.js.map +1 -1
  419. package/dist/domains/threads/components/threads-explorer-body.es.js +8 -8
  420. package/dist/domains/threads/components/threads-explorer-body.es.js.map +1 -1
  421. package/dist/domains/threads/components/threads-filter-bar.cjs.js +6 -6
  422. package/dist/domains/threads/components/threads-filter-bar.cjs.js.map +1 -1
  423. package/dist/domains/threads/components/threads-filter-bar.es.js +6 -6
  424. package/dist/domains/threads/components/threads-filter-bar.es.js.map +1 -1
  425. package/dist/domains/threads/hooks/use-threads-filter-bar.cjs.js +5 -5
  426. package/dist/domains/threads/hooks/use-threads-filter-bar.cjs.js.map +1 -1
  427. package/dist/domains/threads/hooks/use-threads-filter-bar.es.js +5 -5
  428. package/dist/domains/threads/hooks/use-threads-filter-bar.es.js.map +1 -1
  429. package/dist/domains/threads/thread-filters.cjs.js +2 -2
  430. package/dist/domains/threads/thread-filters.cjs.js.map +1 -1
  431. package/dist/domains/threads/thread-filters.es.js +2 -2
  432. package/dist/domains/threads/thread-filters.es.js.map +1 -1
  433. package/dist/domains/traces/components/columns-menu/columns-menu.cjs.js +1 -1
  434. package/dist/domains/traces/components/columns-menu/columns-menu.es.js +1 -1
  435. package/dist/domains/traces/components/feedback-thread.cjs.js +4 -4
  436. package/dist/domains/traces/components/feedback-thread.cjs.js.map +1 -1
  437. package/dist/domains/traces/components/feedback-thread.es.js +4 -4
  438. package/dist/domains/traces/components/feedback-thread.es.js.map +1 -1
  439. package/dist/domains/traces/components/span-data-panel-view.cjs.js +5 -5
  440. package/dist/domains/traces/components/span-data-panel-view.es.js +5 -5
  441. package/dist/domains/traces/components/span-details-view.cjs.js +1 -1
  442. package/dist/domains/traces/components/span-details-view.es.js +1 -1
  443. package/dist/domains/traces/components/span-outcome.cjs.js +1 -1
  444. package/dist/domains/traces/components/span-outcome.es.js +1 -1
  445. package/dist/domains/traces/components/span-payload/span-error-renderer.cjs.js +2 -2
  446. package/dist/domains/traces/components/span-payload/span-error-renderer.es.js +2 -2
  447. package/dist/domains/traces/components/span-payload/span-input-renderers.cjs.js +1 -1
  448. package/dist/domains/traces/components/span-payload/span-input-renderers.es.js +1 -1
  449. package/dist/domains/traces/components/span-payload/span-output-renderers.cjs.js +3 -3
  450. package/dist/domains/traces/components/span-payload/span-output-renderers.es.js +3 -3
  451. package/dist/domains/traces/components/span-payload/span-payload-json.cjs.js +1 -1
  452. package/dist/domains/traces/components/span-payload/span-payload-json.es.js +1 -1
  453. package/dist/domains/traces/components/span-payload/span-payload-messages.cjs.js +3 -3
  454. package/dist/domains/traces/components/span-payload/span-payload-messages.es.js +3 -3
  455. package/dist/domains/traces/components/span-payload/span-payload-primitives.cjs.js +1 -1
  456. package/dist/domains/traces/components/span-payload/span-payload-primitives.es.js +1 -1
  457. package/dist/domains/traces/components/span-payload/span-payload-processor.cjs.js +1 -1
  458. package/dist/domains/traces/components/span-payload/span-payload-processor.es.js +1 -1
  459. package/dist/domains/traces/components/span-payload/span-payload-section.cjs.js +2 -2
  460. package/dist/domains/traces/components/span-payload/span-payload-section.es.js +2 -2
  461. package/dist/domains/traces/components/span-payload/span-payload-tool.cjs.js +1 -1
  462. package/dist/domains/traces/components/span-payload/span-payload-tool.es.js +1 -1
  463. package/dist/domains/traces/components/span-payload/span-processor-mutations.cjs.js +1 -1
  464. package/dist/domains/traces/components/span-payload/span-processor-mutations.es.js +1 -1
  465. package/dist/domains/traces/components/span-payload/span-tools-section.cjs.js +1 -1
  466. package/dist/domains/traces/components/span-payload/span-tools-section.es.js +1 -1
  467. package/dist/domains/traces/components/span-summary-description.cjs.js +1 -1
  468. package/dist/domains/traces/components/span-summary-description.es.js +1 -1
  469. package/dist/domains/traces/components/thread-trace/thread-trace-details.cjs.js +1 -1
  470. package/dist/domains/traces/components/thread-trace/thread-trace-details.es.js +1 -1
  471. package/dist/domains/traces/components/thread-trace/thread-trace-messages.cjs.js +2 -2
  472. package/dist/domains/traces/components/thread-trace/thread-trace-messages.es.js +2 -2
  473. package/dist/domains/traces/components/thread-trace/thread-trace-row.cjs.js +1 -1
  474. package/dist/domains/traces/components/thread-trace/thread-trace-row.es.js +1 -1
  475. package/dist/domains/traces/components/thread-trace/thread-trace-spans.cjs.js +1 -1
  476. package/dist/domains/traces/components/thread-trace/thread-trace-spans.es.js +1 -1
  477. package/dist/domains/traces/components/thread-view-by-trace.cjs.js +1 -1
  478. package/dist/domains/traces/components/thread-view-by-trace.es.js +1 -1
  479. package/dist/domains/traces/components/trace-columns-menu.cjs.js +5 -6
  480. package/dist/domains/traces/components/trace-columns-menu.cjs.js.map +1 -1
  481. package/dist/domains/traces/components/trace-columns-menu.es.js +5 -6
  482. package/dist/domains/traces/components/trace-columns-menu.es.js.map +1 -1
  483. package/dist/domains/traces/components/trace-data-panel-view.cjs.js +5 -5
  484. package/dist/domains/traces/components/trace-data-panel-view.cjs.js.map +1 -1
  485. package/dist/domains/traces/components/trace-data-panel-view.es.js +5 -5
  486. package/dist/domains/traces/components/trace-data-panel-view.es.js.map +1 -1
  487. package/dist/domains/traces/components/trace-data-panel.cjs.js +1 -1
  488. package/dist/domains/traces/components/trace-data-panel.es.js +1 -1
  489. package/dist/domains/traces/components/trace-details-view.cjs.js +1 -1
  490. package/dist/domains/traces/components/trace-details-view.es.js +1 -1
  491. package/dist/domains/traces/components/trace-error-cell.cjs.js +1 -1
  492. package/dist/domains/traces/components/trace-error-cell.es.js +1 -1
  493. package/dist/domains/traces/components/trace-error-summary.cjs.js +1 -1
  494. package/dist/domains/traces/components/trace-error-summary.es.js +1 -1
  495. package/dist/domains/traces/components/trace-id-button.cjs.js +1 -1
  496. package/dist/domains/traces/components/trace-id-button.es.js +1 -1
  497. package/dist/domains/traces/components/trace-span-panel.cjs.js +1 -1
  498. package/dist/domains/traces/components/trace-span-panel.es.js +1 -1
  499. package/dist/domains/traces/components/trace-summary-description.cjs.js +1 -1
  500. package/dist/domains/traces/components/trace-summary-description.es.js +1 -1
  501. package/dist/domains/traces/components/trace-thread-item-view.cjs.js +1 -1
  502. package/dist/domains/traces/components/trace-thread-item-view.es.js +1 -1
  503. package/dist/domains/traces/components/trace-thread-panel.cjs.js +1 -1
  504. package/dist/domains/traces/components/trace-thread-panel.es.js +1 -1
  505. package/dist/domains/traces/components/traces-explorer/traces-explorer-actions.cjs.js +1 -1
  506. package/dist/domains/traces/components/traces-explorer/traces-explorer-actions.es.js +1 -1
  507. package/dist/domains/traces/components/traces-explorer/traces-explorer-filter-bar.cjs.js +6 -6
  508. package/dist/domains/traces/components/traces-explorer/traces-explorer-filter-bar.cjs.js.map +1 -1
  509. package/dist/domains/traces/components/traces-explorer/traces-explorer-filter-bar.es.js +6 -6
  510. package/dist/domains/traces/components/traces-explorer/traces-explorer-filter-bar.es.js.map +1 -1
  511. package/dist/domains/traces/components/traces-explorer/traces-explorer-root.cjs.js +1 -1
  512. package/dist/domains/traces/components/traces-explorer/traces-explorer-root.es.js +1 -1
  513. package/dist/domains/traces/components/traces-explorer/traces-explorer-saved-views.cjs.js +1 -1
  514. package/dist/domains/traces/components/traces-explorer/traces-explorer-saved-views.es.js +1 -1
  515. package/dist/domains/traces/components/traces-explorer/use-traces-filter-bar.cjs.js +5 -5
  516. package/dist/domains/traces/components/traces-explorer/use-traces-filter-bar.cjs.js.map +1 -1
  517. package/dist/domains/traces/components/traces-explorer/use-traces-filter-bar.es.js +5 -5
  518. package/dist/domains/traces/components/traces-explorer/use-traces-filter-bar.es.js.map +1 -1
  519. package/dist/domains/traces/components/traces-list-mode-toggle.cjs.js +1 -1
  520. package/dist/domains/traces/components/traces-list-mode-toggle.es.js +1 -1
  521. package/dist/domains/traces/components/traces-list-view.cjs.js +2 -2
  522. package/dist/domains/traces/components/traces-list-view.es.js +2 -2
  523. package/dist/domains/traces/components/traces-page-skeleton.cjs.js +2 -2
  524. package/dist/domains/traces/components/traces-page-skeleton.cjs.js.map +1 -1
  525. package/dist/domains/traces/components/traces-page-skeleton.es.js +2 -2
  526. package/dist/domains/traces/components/traces-page-skeleton.es.js.map +1 -1
  527. package/dist/domains/traces/components/traces-spans-switch.cjs.js +1 -1
  528. package/dist/domains/traces/components/traces-spans-switch.es.js +1 -1
  529. package/dist/domains/traces/hooks/use-download-trace-json.cjs.js +1 -1
  530. package/dist/domains/traces/hooks/use-download-trace-json.es.js +1 -1
  531. package/dist/domains/traces/trace-filters.cjs.js +1 -1
  532. package/dist/domains/traces/trace-filters.es.js +1 -1
  533. package/dist/domains/traces/trace-query-filters.cjs.js +1 -1
  534. package/dist/domains/traces/trace-query-filters.es.js +1 -1
  535. package/dist/domains/traces.cjs.js +1 -1
  536. package/dist/domains/traces.es.js +1 -1
  537. package/dist/domains/workflows/components/workflow-combobox.cjs.js +3 -3
  538. package/dist/domains/workflows/components/workflow-combobox.cjs.js.map +1 -1
  539. package/dist/domains/workflows/components/workflow-combobox.es.js +3 -3
  540. package/dist/domains/workflows/components/workflow-combobox.es.js.map +1 -1
  541. package/dist/domains/workflows/components/workflow-information.cjs.js +2 -2
  542. package/dist/domains/workflows/components/workflow-information.es.js +2 -2
  543. package/dist/domains/workflows/components/workflow-layout.cjs.js +1 -1
  544. package/dist/domains/workflows/components/workflow-layout.es.js +1 -1
  545. package/dist/domains/workflows/components/workflow-step-detail.cjs.js +2 -2
  546. package/dist/domains/workflows/components/workflow-step-detail.es.js +2 -2
  547. package/dist/domains/workflows/components/workflows-list/no-workflows-info.cjs.js +1 -1
  548. package/dist/domains/workflows/components/workflows-list/no-workflows-info.es.js +1 -1
  549. package/dist/domains/workflows/components/workflows-list/workflows-list.cjs.js +2 -2
  550. package/dist/domains/workflows/components/workflows-list/workflows-list.es.js +2 -2
  551. package/dist/domains/workflows/context/use-stream-for-run.cjs.js +1 -1
  552. package/dist/domains/workflows/context/use-stream-for-run.es.js +1 -1
  553. package/dist/domains/workflows/runs/workflow-run-list.cjs.js +1 -1
  554. package/dist/domains/workflows/runs/workflow-run-list.es.js +1 -1
  555. package/dist/domains/workflows/workflow/data/workflow-data-button.cjs.js +1 -1
  556. package/dist/domains/workflows/workflow/data/workflow-data-button.es.js +1 -1
  557. package/dist/domains/workflows/workflow/data/workflow-data-inspector.cjs.js +2 -2
  558. package/dist/domains/workflows/workflow/data/workflow-data-inspector.es.js +2 -2
  559. package/dist/domains/workflows/workflow/input/workflow-json-input.cjs.js +1 -1
  560. package/dist/domains/workflows/workflow/input/workflow-json-input.es.js +1 -1
  561. package/dist/domains/workflows/workflow/input/workflow-processor-input.cjs.js +2 -2
  562. package/dist/domains/workflows/workflow/input/workflow-processor-input.cjs.js.map +1 -1
  563. package/dist/domains/workflows/workflow/input/workflow-processor-input.es.js +2 -2
  564. package/dist/domains/workflows/workflow/input/workflow-processor-input.es.js.map +1 -1
  565. package/dist/domains/workflows/workflow/use-workflow-graph-runtime.cjs.js +1 -1
  566. package/dist/domains/workflows/workflow/use-workflow-graph-runtime.es.js +1 -1
  567. package/dist/domains/workflows/workflow/utils.cjs.js +1 -1
  568. package/dist/domains/workflows/workflow/utils.es.js +1 -1
  569. package/dist/domains/workflows/workflow/workflow-body-graph.cjs.js +1 -1
  570. package/dist/domains/workflows/workflow/workflow-body-graph.es.js +1 -1
  571. package/dist/domains/workflows/workflow/workflow-cancel-button.cjs.js +1 -1
  572. package/dist/domains/workflows/workflow/workflow-cancel-button.es.js +1 -1
  573. package/dist/domains/workflows/workflow/workflow-data-edge.cjs.js +1 -1
  574. package/dist/domains/workflows/workflow/workflow-data-edge.es.js +1 -1
  575. package/dist/domains/workflows/workflow/workflow-debug-step-controls.cjs.js +1 -1
  576. package/dist/domains/workflows/workflow/workflow-debug-step-controls.es.js +1 -1
  577. package/dist/domains/workflows/workflow/workflow-graph-boundary.cjs.js +3 -3
  578. package/dist/domains/workflows/workflow/workflow-graph-boundary.es.js +3 -3
  579. package/dist/domains/workflows/workflow/workflow-graph-inner.cjs.js +2 -2
  580. package/dist/domains/workflows/workflow/workflow-graph-inner.es.js +2 -2
  581. package/dist/domains/workflows/workflow/workflow-graph-layout.cjs.js +1 -1
  582. package/dist/domains/workflows/workflow/workflow-graph-layout.es.js +1 -1
  583. package/dist/domains/workflows/workflow/workflow-graph-node.cjs.js +1 -1
  584. package/dist/domains/workflows/workflow/workflow-graph-node.es.js +1 -1
  585. package/dist/domains/workflows/workflow/workflow-graph.cjs.js +1 -1
  586. package/dist/domains/workflows/workflow/workflow-graph.es.js +1 -1
  587. package/dist/domains/workflows/workflow/workflow-map-config-dialog.cjs.js +3 -3
  588. package/dist/domains/workflows/workflow/workflow-map-config-dialog.es.js +3 -3
  589. package/dist/domains/workflows/workflow/workflow-nested-graph.cjs.js +1 -1
  590. package/dist/domains/workflows/workflow/workflow-nested-graph.es.js +1 -1
  591. package/dist/domains/workflows/workflow/workflow-run-data.cjs.js +3 -3
  592. package/dist/domains/workflows/workflow/workflow-run-data.es.js +3 -3
  593. package/dist/domains/workflows/workflow/workflow-run-error.cjs.js +1 -1
  594. package/dist/domains/workflows/workflow/workflow-run-error.es.js +1 -1
  595. package/dist/domains/workflows/workflow/workflow-run-header.cjs.js +1 -1
  596. package/dist/domains/workflows/workflow/workflow-run-header.es.js +1 -1
  597. package/dist/domains/workflows/workflow/workflow-status.cjs.js +1 -1
  598. package/dist/domains/workflows/workflow/workflow-status.es.js +1 -1
  599. package/dist/domains/workflows/workflow/workflow-step-action-bar.cjs.js +2 -2
  600. package/dist/domains/workflows/workflow/workflow-step-action-bar.es.js +2 -2
  601. package/dist/domains/workflows/workflow/workflow-step-node-utils.cjs.js +1 -1
  602. package/dist/domains/workflows/workflow/workflow-step-node-utils.es.js +1 -1
  603. package/dist/domains/workflows/workflow/workflow-suspended-steps.cjs.js +2 -2
  604. package/dist/domains/workflows/workflow/workflow-suspended-steps.es.js +2 -2
  605. package/dist/domains/workflows/workflow/workflow-time-travel-form.cjs.js +2 -2
  606. package/dist/domains/workflows/workflow/workflow-time-travel-form.es.js +2 -2
  607. package/dist/domains/workflows/workflow/workflow-timeline-row.cjs.js +1 -1
  608. package/dist/domains/workflows/workflow/workflow-timeline-row.es.js +1 -1
  609. package/dist/domains/workflows/workflow/workflow-timeline.cjs.js +1 -1
  610. package/dist/domains/workflows/workflow/workflow-timeline.es.js +1 -1
  611. package/dist/domains/workflows/workflow/workflow-trigger-form.cjs.js +1 -1
  612. package/dist/domains/workflows/workflow/workflow-trigger-form.es.js +1 -1
  613. package/dist/domains/workflows/workflow/workflow-trigger-header.cjs.js +1 -1
  614. package/dist/domains/workflows/workflow/workflow-trigger-header.es.js +1 -1
  615. package/dist/domains/workflows/workflow/workflow-trigger.cjs.js +1 -1
  616. package/dist/domains/workflows/workflow/workflow-trigger.es.js +1 -1
  617. package/dist/domains/workspace/components/workspace-add-skill-dialog.cjs.js +4 -4
  618. package/dist/domains/workspace/components/workspace-add-skill-dialog.cjs.js.map +1 -1
  619. package/dist/domains/workspace/components/workspace-add-skill-dialog.es.js +4 -4
  620. package/dist/domains/workspace/components/workspace-add-skill-dialog.es.js.map +1 -1
  621. package/dist/domains/workspace/components/workspace-add-skill.cjs.js +1 -1
  622. package/dist/domains/workspace/components/workspace-add-skill.es.js +1 -1
  623. package/dist/domains/workspace/components/workspace-create-directory.cjs.js +2 -2
  624. package/dist/domains/workspace/components/workspace-create-directory.es.js +2 -2
  625. package/dist/domains/workspace/components/workspace-error.cjs.js +1 -1
  626. package/dist/domains/workspace/components/workspace-error.es.js +1 -1
  627. package/dist/domains/workspace/components/workspace-markdown-preview.cjs.js +1 -1
  628. package/dist/domains/workspace/components/workspace-markdown-preview.es.js +1 -1
  629. package/dist/domains/workspace/components/workspace-search.cjs.js +1 -1
  630. package/dist/domains/workspace/components/workspace-search.es.js +1 -1
  631. package/dist/domains/workspace/components/workspace-tree.cjs.js +1 -1
  632. package/dist/domains/workspace/components/workspace-tree.es.js +1 -1
  633. package/dist/ee/signals/components/entity-index-list.cjs.js +1 -1
  634. package/dist/ee/signals/components/entity-index-list.es.js +1 -1
  635. package/dist/ee/signals/components/signals-empty-state.cjs.js +1 -1
  636. package/dist/ee/signals/components/signals-empty-state.es.js +1 -1
  637. package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js +6 -6
  638. package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js.map +1 -1
  639. package/dist/ee/signals/components/trace-intelligence-entity-index.es.js +5 -5
  640. package/dist/ee/signals/examples-pager.cjs.js +1 -1
  641. package/dist/ee/signals/examples-pager.es.js +1 -1
  642. package/dist/ee/signals/sankey-signals.cjs.js +1 -1
  643. package/dist/ee/signals/sankey-signals.es.js +1 -1
  644. package/dist/ee/signals/settings/signal-definition-form-dialog.cjs.js +2 -2
  645. package/dist/ee/signals/settings/signal-definition-form-dialog.es.js +2 -2
  646. package/dist/ee/signals/settings/trace-signal-settings.cjs.js +3 -3
  647. package/dist/ee/signals/settings/trace-signal-settings.es.js +3 -3
  648. package/dist/ee/signals/signals-error-state.cjs.js +1 -1
  649. package/dist/ee/signals/signals-error-state.es.js +1 -1
  650. package/dist/ee/signals/snapshot-timeline.cjs.js +1 -1
  651. package/dist/ee/signals/snapshot-timeline.es.js +1 -1
  652. package/dist/ee/signals/theme-filter-banner.cjs.js +1 -1
  653. package/dist/ee/signals/theme-filter-banner.es.js +1 -1
  654. package/dist/ee/signals/trace-insight-view.cjs.js +1 -1
  655. package/dist/ee/signals/trace-insight-view.es.js +1 -1
  656. package/dist/ee/signals/view-mode-tab.cjs.js +1 -1
  657. package/dist/ee/signals/view-mode-tab.es.js +1 -1
  658. package/dist/ee/topics/components/topic-trace-summary-list.cjs.js +2 -2
  659. package/dist/ee/topics/components/topic-trace-summary-list.es.js +2 -2
  660. package/dist/{filter-bar-chip-7O02P9Vk.js → filter-bar-chip-CABeKrtf.js} +88 -73
  661. package/dist/filter-bar-chip-CABeKrtf.js.map +1 -0
  662. package/dist/{filter-bar-chip-BUyMf8XQ.cjs → filter-bar-chip-Cg-UbIwP.cjs} +90 -81
  663. package/dist/filter-bar-chip-Cg-UbIwP.cjs.map +1 -0
  664. package/dist/filter-bar-chip.css +22 -0
  665. package/dist/filter-bar-time-range-BA-pXMlo.cjs +83 -0
  666. package/dist/filter-bar-time-range-BA-pXMlo.cjs.map +1 -0
  667. package/dist/filter-bar-time-range-mg9JeYue.js +60 -0
  668. package/dist/filter-bar-time-range-mg9JeYue.js.map +1 -0
  669. package/dist/hooks/use-copy-to-clipboard.cjs.js +1 -1
  670. package/dist/hooks/use-copy-to-clipboard.es.js +1 -1
  671. package/dist/{input-group-uDpFNnSW.cjs → input-group-DVJLZDBL.cjs} +6 -4
  672. package/dist/input-group-DVJLZDBL.cjs.map +1 -0
  673. package/dist/{input-group-g85FYfze.js → input-group-QKKV_ouF.js} +7 -5
  674. package/dist/input-group-QKKV_ouF.js.map +1 -0
  675. package/dist/layout/tabbed-container.cjs.js +1 -1
  676. package/dist/layout/tabbed-container.es.js +1 -1
  677. package/dist/lib/form/components/array-element-wrapper.cjs.js +1 -1
  678. package/dist/lib/form/components/array-element-wrapper.es.js +1 -1
  679. package/dist/lib/form/components/array-wrapper.cjs.js +1 -1
  680. package/dist/lib/form/components/array-wrapper.es.js +1 -1
  681. package/dist/lib/form/components/date-field.cjs.js +1 -1
  682. package/dist/lib/form/components/date-field.es.js +1 -1
  683. package/dist/lib/form/components/error-message.cjs.js +1 -1
  684. package/dist/lib/form/components/error-message.es.js +1 -1
  685. package/dist/lib/form/components/form-submit-row.cjs.js +1 -1
  686. package/dist/lib/form/components/form-submit-row.es.js +1 -1
  687. package/dist/lib/form/components/record-field.cjs.js +1 -1
  688. package/dist/lib/form/components/record-field.es.js +1 -1
  689. package/dist/lib/form/components/select-field.cjs.js +1 -1
  690. package/dist/lib/form/components/select-field.es.js +1 -1
  691. package/dist/lib/form/components/submit-button.cjs.js +1 -1
  692. package/dist/lib/form/components/submit-button.es.js +1 -1
  693. package/dist/{list-search-BEJmYa9a.cjs → list-search-BtRno5As.cjs} +2 -2
  694. package/dist/list-search-BtRno5As.cjs.map +1 -0
  695. package/dist/{list-search-bg7WzULj.js → list-search-CkhsTFdG.js} +2 -2
  696. package/dist/list-search-CkhsTFdG.js.map +1 -0
  697. package/dist/{observability-saved-views-Zlz74syw.js → observability-saved-views-CjKTEp1V.js} +4 -4
  698. package/dist/observability-saved-views-CjKTEp1V.js.map +1 -0
  699. package/dist/{observability-saved-views-BNU3GkK6.cjs → observability-saved-views-Daizz4tU.cjs} +4 -4
  700. package/dist/observability-saved-views-Daizz4tU.cjs.map +1 -0
  701. package/dist/primitives/chart-plot.cjs.js +8 -6
  702. package/dist/primitives/chart-plot.cjs.js.map +1 -1
  703. package/dist/primitives/chart-plot.es.js +8 -6
  704. package/dist/primitives/chart-plot.es.js.map +1 -1
  705. package/dist/primitives/control-icon.cjs.js +9 -0
  706. package/dist/primitives/control-icon.cjs.js.map +1 -0
  707. package/dist/primitives/control-icon.d.ts +1 -0
  708. package/dist/primitives/control-icon.es.js +8 -0
  709. package/dist/primitives/control-icon.es.js.map +1 -0
  710. package/dist/primitives/control-size.cjs.js +6 -0
  711. package/dist/primitives/control-size.cjs.js.map +1 -1
  712. package/dist/primitives/control-size.es.js +6 -1
  713. package/dist/primitives/control-size.es.js.map +1 -1
  714. package/dist/primitives/menu-item.cjs.js +3 -3
  715. package/dist/primitives/menu-item.cjs.js.map +1 -1
  716. package/dist/primitives/menu-item.es.js +3 -3
  717. package/dist/primitives/menu-item.es.js.map +1 -1
  718. package/dist/primitives/trigger-button.cjs.js +1 -1
  719. package/dist/primitives/trigger-button.es.js +1 -1
  720. package/dist/{property-filter-applied-DRglaEj-.js → property-filter-applied--U5EZdaA.js} +4 -4
  721. package/dist/property-filter-applied--U5EZdaA.js.map +1 -0
  722. package/dist/{property-filter-applied-DqsPFbYM.cjs → property-filter-applied-BkkIObRq.cjs} +19 -19
  723. package/dist/property-filter-applied-BkkIObRq.cjs.map +1 -0
  724. package/dist/{select-BbFpEBAY.js → select-BdIZEdcy.js} +4 -8
  725. package/dist/select-BdIZEdcy.js.map +1 -0
  726. package/dist/{select-NySY9Men.cjs → select-Dg8L5ROX.cjs} +3 -7
  727. package/dist/select-Dg8L5ROX.cjs.map +1 -0
  728. package/dist/{span-payload-primitives-ChvD2RrN.js → span-payload-primitives-B3RdahsC.js} +3 -3
  729. package/dist/{span-payload-primitives-ChvD2RrN.js.map → span-payload-primitives-B3RdahsC.js.map} +1 -1
  730. package/dist/{span-payload-primitives-w1vtAXAw.cjs → span-payload-primitives-_2d-pAOD.cjs} +3 -3
  731. package/dist/{span-payload-primitives-w1vtAXAw.cjs.map → span-payload-primitives-_2d-pAOD.cjs.map} +1 -1
  732. package/dist/src/domains/metrics/components/metrics-time-range-chip.d.ts +2 -2
  733. package/dist/src/domains/spans/components/spans-filter-bar.d.ts +1 -1
  734. package/dist/src/domains/spans/hooks/use-spans-filter-bar.d.ts +1 -1
  735. package/dist/src/domains/spans/span-filters.d.ts +1 -1
  736. package/dist/src/domains/threads/components/threads-filter-bar.d.ts +1 -1
  737. package/dist/src/domains/threads/hooks/use-threads-filter-bar.d.ts +1 -1
  738. package/dist/src/domains/threads/thread-filters.d.ts +1 -1
  739. package/dist/src/domains/traces/components/traces-explorer/traces-explorer-filter-bar.d.ts +3 -3
  740. package/dist/src/domains/traces/components/traces-page-skeleton.d.ts +1 -1
  741. package/dist/src/ds/components/Button/Button.d.ts +15 -0
  742. package/dist/src/ds/components/ClearFiltersButton/clear-filters-button.d.ts +12 -0
  743. package/dist/src/ds/components/ClearFiltersButton/index.d.ts +1 -0
  744. package/dist/src/ds/components/Combobox/combobox-styles.d.ts +0 -1
  745. package/dist/src/ds/components/DateTimeRangePicker/date-time-range-picker.d.ts +12 -11
  746. package/dist/src/ds/components/FilterBar/filter-bar-chip.d.ts +10 -7
  747. package/dist/src/ds/components/FilterBar/filter-bar-time-range.d.ts +19 -0
  748. package/dist/src/ds/components/FilterBar/filter-bar.d.ts +2 -0
  749. package/dist/src/ds/components/FilterBar/index.d.ts +2 -0
  750. package/dist/src/ds/components/FilterBar/use-filter-bar-item-keys.d.ts +23 -0
  751. package/dist/src/ds/components/ListSearch/list-search.d.ts +1 -0
  752. package/dist/src/ds/components/MetricsTable/metrics-table-rows.d.ts +10 -3
  753. package/dist/src/ds/components/MetricsTable/metrics-table.d.ts +1 -1
  754. package/dist/src/ds/primitives/control-icon.d.ts +3 -0
  755. package/dist/src/ds/primitives/control-size.d.ts +1 -0
  756. package/dist/style.css +131 -65
  757. package/dist/{tabbed-container-CFEImJOK.cjs → tabbed-container-B4lCBgRP.cjs} +6 -6
  758. package/dist/{tabbed-container-CFEImJOK.cjs.map → tabbed-container-B4lCBgRP.cjs.map} +1 -1
  759. package/dist/{tabbed-container-BKUqfEKy.js → tabbed-container-DI1GI1Qv.js} +6 -6
  760. package/dist/{tabbed-container-BKUqfEKy.js.map → tabbed-container-DI1GI1Qv.js.map} +1 -1
  761. package/dist/{tabs-content-DgR3Hik1.cjs → tabs-content-CmXe5ML0.cjs} +2 -2
  762. package/dist/{tabs-content-DgR3Hik1.cjs.map → tabs-content-CmXe5ML0.cjs.map} +1 -1
  763. package/dist/{tabs-content-cpV6A9c3.js → tabs-content-D__B9hd-.js} +2 -2
  764. package/dist/{tabs-content-cpV6A9c3.js.map → tabs-content-D__B9hd-.js.map} +1 -1
  765. package/dist/{tabs-tab-UT1JliwK.js → tabs-tab-CYTZevdV.js} +2 -2
  766. package/dist/{tabs-tab-UT1JliwK.js.map → tabs-tab-CYTZevdV.js.map} +1 -1
  767. package/dist/{tabs-tab-Qp3RJ17z.cjs → tabs-tab-DGwfHVDr.cjs} +2 -2
  768. package/dist/{tabs-tab-Qp3RJ17z.cjs.map → tabs-tab-DGwfHVDr.cjs.map} +1 -1
  769. package/dist/{toast-api-WhxnAT9F.js → toast-api-D_rrRhNG.js} +2 -2
  770. package/dist/{toast-api-WhxnAT9F.js.map → toast-api-D_rrRhNG.js.map} +1 -1
  771. package/dist/{toast-api-Bv87KHu_.cjs → toast-api-qtkOucy2.cjs} +2 -2
  772. package/dist/{toast-api-Bv87KHu_.cjs.map → toast-api-qtkOucy2.cjs.map} +1 -1
  773. package/dist/{tool-approval-Dfi0uAKU.cjs → tool-approval-1qiB4hhG.cjs} +4 -4
  774. package/dist/{tool-approval-Dfi0uAKU.cjs.map → tool-approval-1qiB4hhG.cjs.map} +1 -1
  775. package/dist/{tool-approval-DHeCkWHT.js → tool-approval-B6MFcaKV.js} +4 -4
  776. package/dist/{tool-approval-DHeCkWHT.js.map → tool-approval-B6MFcaKV.js.map} +1 -1
  777. package/dist/{tool-call-BCsDhIhs.cjs → tool-call-Bu66PkD-.cjs} +3 -3
  778. package/dist/{tool-call-BCsDhIhs.cjs.map → tool-call-Bu66PkD-.cjs.map} +1 -1
  779. package/dist/{tool-call-CILZa3tn.js → tool-call-Ch9-jjXU.js} +3 -3
  780. package/dist/{tool-call-CILZa3tn.js.map → tool-call-Ch9-jjXU.js.map} +1 -1
  781. package/dist/{tool-card-CJ7Kxi-U.cjs → tool-card-DrqPZfPQ.cjs} +4 -4
  782. package/dist/{tool-card-CJ7Kxi-U.cjs.map → tool-card-DrqPZfPQ.cjs.map} +1 -1
  783. package/dist/{tool-card-C3sDFUWc.js → tool-card-sO6P2Qj4.js} +4 -4
  784. package/dist/{tool-card-C3sDFUWc.js.map → tool-card-sO6P2Qj4.js.map} +1 -1
  785. package/dist/{trace-filters-BJaebsxJ.js → trace-filters-CaWkw779.js} +2 -3
  786. package/dist/trace-filters-CaWkw779.js.map +1 -0
  787. package/dist/{trace-filters-BNEZ31HX.cjs → trace-filters-a0N9bf52.cjs} +1 -2
  788. package/dist/trace-filters-a0N9bf52.cjs.map +1 -0
  789. package/dist/{use-workflow-graph-runtime-deTN_q_G.js → use-workflow-graph-runtime-BKNhOKsH.js} +3 -3
  790. package/dist/{use-workflow-graph-runtime-deTN_q_G.js.map → use-workflow-graph-runtime-BKNhOKsH.js.map} +1 -1
  791. package/dist/{use-workflow-graph-runtime-DkwQjMEV.cjs → use-workflow-graph-runtime-DYao-08R.cjs} +3 -3
  792. package/dist/{use-workflow-graph-runtime-DkwQjMEV.cjs.map → use-workflow-graph-runtime-DYao-08R.cjs.map} +1 -1
  793. package/dist/utils/toast.cjs.js +1 -1
  794. package/dist/utils/toast.es.js +1 -1
  795. package/oxlint/index.js +90 -0
  796. package/package.json +9 -9
  797. package/theme.css +5 -0
  798. package/dist/ActionRow-BfK77pCT.cjs.map +0 -1
  799. package/dist/ActionRow-Cd6tOC2K.js.map +0 -1
  800. package/dist/Button-Bw1e3ONi.js.map +0 -1
  801. package/dist/Button-YQRflC47.cjs.map +0 -1
  802. package/dist/DataCodeSection-CZRPsStI.cjs.map +0 -1
  803. package/dist/DataCodeSection-Ckd47p_S.js.map +0 -1
  804. package/dist/DateTimeRangePicker-C_Lie_2P.js.map +0 -1
  805. package/dist/DateTimeRangePicker-HmPOHwAQ.cjs.map +0 -1
  806. package/dist/FilterBar--4oguuVe.js.map +0 -1
  807. package/dist/FilterBar-BUd4f7oi.cjs.map +0 -1
  808. package/dist/MetricsTable-CRPeLHe1.js.map +0 -1
  809. package/dist/MetricsTable-D-aZf3dk.cjs.map +0 -1
  810. package/dist/ask-user-BdjH9F7G.js.map +0 -1
  811. package/dist/ask-user-C82m_G9W.cjs.map +0 -1
  812. package/dist/combobox-8kNAJFlj.cjs.map +0 -1
  813. package/dist/combobox-parts-BZVXwbG7.cjs.map +0 -1
  814. package/dist/combobox-parts-W7KRQUsV.js.map +0 -1
  815. package/dist/components/ButtonsGroup.cjs.js.map +0 -1
  816. package/dist/components/ButtonsGroup.es.js.map +0 -1
  817. package/dist/domains/traces/components/trace-time-range-chip.cjs.js +0 -90
  818. package/dist/domains/traces/components/trace-time-range-chip.cjs.js.map +0 -1
  819. package/dist/domains/traces/components/trace-time-range-chip.d.ts +0 -1
  820. package/dist/domains/traces/components/trace-time-range-chip.es.js +0 -86
  821. package/dist/domains/traces/components/trace-time-range-chip.es.js.map +0 -1
  822. package/dist/filter-bar-chip-7O02P9Vk.js.map +0 -1
  823. package/dist/filter-bar-chip-BUyMf8XQ.cjs.map +0 -1
  824. package/dist/input-group-g85FYfze.js.map +0 -1
  825. package/dist/input-group-uDpFNnSW.cjs.map +0 -1
  826. package/dist/list-search-BEJmYa9a.cjs.map +0 -1
  827. package/dist/list-search-bg7WzULj.js.map +0 -1
  828. package/dist/observability-saved-views-BNU3GkK6.cjs.map +0 -1
  829. package/dist/observability-saved-views-Zlz74syw.js.map +0 -1
  830. package/dist/property-filter-applied-DRglaEj-.js.map +0 -1
  831. package/dist/property-filter-applied-DqsPFbYM.cjs.map +0 -1
  832. package/dist/select-BbFpEBAY.js.map +0 -1
  833. package/dist/select-NySY9Men.cjs.map +0 -1
  834. package/dist/src/domains/traces/components/trace-time-range-chip.d.ts +0 -22
  835. package/dist/trace-filters-BJaebsxJ.js.map +0 -1
  836. package/dist/trace-filters-BNEZ31HX.cjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"log-data-panel.cjs.js","names":["formatTimestampPrecise","DataPanel","_Fragment","DataKeysAndValues","Fragment","ButtonsGroup","Button","ArrowRightIcon","Txt","CopyButton"],"sources":["../../../../src/domains/logs/components/log-data-panel.tsx"],"sourcesContent":["import { ArrowRightIcon } from 'lucide-react';\nimport { Fragment } from 'react';\nimport type { LogRecord } from '../types';\nimport { Button } from '@/ds/components/Button';\nimport { ButtonsGroup } from '@/ds/components/ButtonsGroup';\nimport { CopyButton } from '@/ds/components/CopyButton';\nimport { DataKeysAndValues } from '@/ds/components/DataKeysAndValues';\nimport { DataPanel } from '@/ds/components/DataPanel';\nimport { Txt } from '@/ds/components/Txt';\nimport { formatTimestampPrecise } from '@/utils/date-format';\n\nexport interface LogDataPanelProps {\n /** Always mount the panel and pass `undefined` to close it, so the drawer can animate out. */\n log?: LogRecord;\n onClose: () => void;\n onTraceClick?: (traceId: string) => void;\n onSpanClick?: (traceId: string, spanId: string) => void;\n onPrevious?: () => void;\n onNext?: () => void;\n depth?: 1 | 2 | 3;\n}\n\nexport function LogDataPanel({\n log,\n onClose,\n onTraceClick,\n onSpanClick,\n onPrevious,\n onNext,\n depth,\n}: LogDataPanelProps) {\n const formattedDate = log ? (formatTimestampPrecise(log.timestamp) ?? '') : '';\n\n return (\n <DataPanel open={!!log} onClose={onClose} title={log ? `Log ${formattedDate}` : 'Log'} depth={depth}>\n {log && (\n <>\n <DataPanel.Header>\n <DataPanel.CloseButton onClick={onClose} />\n <DataPanel.Heading>Log · {formattedDate}</DataPanel.Heading>\n <DataPanel.HeaderActions>\n <DataPanel.NextPrevNav\n onPrevious={onPrevious}\n onNext={onNext}\n previousLabel=\"Go to previous log\"\n nextLabel=\"Go to next log\"\n />\n </DataPanel.HeaderActions>\n </DataPanel.Header>\n\n <DataPanel.Content>\n <div className=\"grid gap-6 p-2\">\n <DataKeysAndValues>\n {log.entityType && (\n <>\n <DataKeysAndValues.Key>Entity Type</DataKeysAndValues.Key>\n <DataKeysAndValues.Value>{log.entityType}</DataKeysAndValues.Value>\n </>\n )}\n {log.entityName && (\n <>\n <DataKeysAndValues.Key>Entity Name</DataKeysAndValues.Key>\n <DataKeysAndValues.Value>{log.entityName}</DataKeysAndValues.Value>\n </>\n )}\n {log.serviceName && (\n <>\n <DataKeysAndValues.Key>Service</DataKeysAndValues.Key>\n <DataKeysAndValues.Value>{log.serviceName}</DataKeysAndValues.Value>\n </>\n )}\n {log.environment && (\n <>\n <DataKeysAndValues.Key>Environment</DataKeysAndValues.Key>\n <DataKeysAndValues.Value>{log.environment}</DataKeysAndValues.Value>\n </>\n )}\n {log.source && (\n <>\n <DataKeysAndValues.Key>Source</DataKeysAndValues.Key>\n <DataKeysAndValues.Value>{log.source}</DataKeysAndValues.Value>\n </>\n )}\n {log.metadata &&\n Object.entries(log.metadata).map(([key, value]) => (\n <Fragment key={key}>\n <DataKeysAndValues.Key>{key}</DataKeysAndValues.Key>\n <DataKeysAndValues.Value>{String(value)}</DataKeysAndValues.Value>\n </Fragment>\n ))}\n </DataKeysAndValues>\n\n <DataPanel.CodeSection title=\"Message\" codeStr={log.message} simplified />\n\n {(log.traceId || log.spanId) && (\n <div className=\"grid gap-2\">\n {log.traceId && (\n <ButtonsGroup className=\"w-full min-w-0\">\n <Button\n className=\"min-w-0 flex-1 justify-between overflow-hidden\"\n icon={<ArrowRightIcon />}\n onClick={() => log.traceId && onTraceClick?.(log.traceId)}\n >\n <span>Trace</span>\n <Txt as=\"span\" variant=\"caption\" tone=\"faint\" className=\"ml-auto min-w-0 truncate\">\n # {log.traceId}\n </Txt>\n </Button>\n <CopyButton content={log.traceId} tooltip=\"Copy trace ID to clipboard\" />\n </ButtonsGroup>\n )}\n {log.spanId && (\n <ButtonsGroup className=\"w-full min-w-0\">\n <Button\n className=\"min-w-0 flex-1 justify-between overflow-hidden\"\n disabled={!log.traceId || !onSpanClick}\n onClick={() => log.traceId && log.spanId && onSpanClick?.(log.traceId, log.spanId)}\n icon={<ArrowRightIcon />}\n >\n <span>Span</span>\n <Txt as=\"span\" variant=\"caption\" tone=\"faint\" className=\"ml-auto min-w-0 truncate\">\n # {log.spanId}\n </Txt>\n </Button>\n <CopyButton content={log.spanId} tooltip=\"Copy span ID to clipboard\" />\n </ButtonsGroup>\n )}\n </div>\n )}\n\n {log.data && Object.keys(log.data).length > 0 && (\n <DataPanel.CodeSection title=\"Data\" codeStr={JSON.stringify(log.data, null, 2)} />\n )}\n </div>\n </DataPanel.Content>\n </>\n )}\n </DataPanel>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"log-data-panel.cjs.js","names":["formatTimestampPrecise","DataPanel","_Fragment","DataKeysAndValues","Fragment","ButtonsGroup","Button","ArrowRightIcon","Txt","CopyButton"],"sources":["../../../../src/domains/logs/components/log-data-panel.tsx"],"sourcesContent":["import { ArrowRightIcon } from 'lucide-react';\nimport { Fragment } from 'react';\nimport type { LogRecord } from '../types';\nimport { Button } from '@/ds/components/Button';\nimport { ButtonsGroup } from '@/ds/components/ButtonsGroup';\nimport { CopyButton } from '@/ds/components/CopyButton';\nimport { DataKeysAndValues } from '@/ds/components/DataKeysAndValues';\nimport { DataPanel } from '@/ds/components/DataPanel';\nimport { Txt } from '@/ds/components/Txt';\nimport { formatTimestampPrecise } from '@/utils/date-format';\n\nexport interface LogDataPanelProps {\n /** Always mount the panel and pass `undefined` to close it, so the drawer can animate out. */\n log?: LogRecord;\n onClose: () => void;\n onTraceClick?: (traceId: string) => void;\n onSpanClick?: (traceId: string, spanId: string) => void;\n onPrevious?: () => void;\n onNext?: () => void;\n depth?: 1 | 2 | 3;\n}\n\nexport function LogDataPanel({\n log,\n onClose,\n onTraceClick,\n onSpanClick,\n onPrevious,\n onNext,\n depth,\n}: LogDataPanelProps) {\n const formattedDate = log ? (formatTimestampPrecise(log.timestamp) ?? '') : '';\n\n return (\n <DataPanel open={!!log} onClose={onClose} title={log ? `Log ${formattedDate}` : 'Log'} depth={depth}>\n {log && (\n <>\n <DataPanel.Header>\n <DataPanel.CloseButton onClick={onClose} />\n <DataPanel.Heading>Log · {formattedDate}</DataPanel.Heading>\n <DataPanel.HeaderActions>\n <DataPanel.NextPrevNav\n onPrevious={onPrevious}\n onNext={onNext}\n previousLabel=\"Go to previous log\"\n nextLabel=\"Go to next log\"\n />\n </DataPanel.HeaderActions>\n </DataPanel.Header>\n\n <DataPanel.Content>\n <div className=\"grid gap-6 p-2\">\n <DataKeysAndValues>\n {log.entityType && (\n <>\n <DataKeysAndValues.Key>Entity Type</DataKeysAndValues.Key>\n <DataKeysAndValues.Value>{log.entityType}</DataKeysAndValues.Value>\n </>\n )}\n {log.entityName && (\n <>\n <DataKeysAndValues.Key>Entity Name</DataKeysAndValues.Key>\n <DataKeysAndValues.Value>{log.entityName}</DataKeysAndValues.Value>\n </>\n )}\n {log.serviceName && (\n <>\n <DataKeysAndValues.Key>Service</DataKeysAndValues.Key>\n <DataKeysAndValues.Value>{log.serviceName}</DataKeysAndValues.Value>\n </>\n )}\n {log.environment && (\n <>\n <DataKeysAndValues.Key>Environment</DataKeysAndValues.Key>\n <DataKeysAndValues.Value>{log.environment}</DataKeysAndValues.Value>\n </>\n )}\n {log.source && (\n <>\n <DataKeysAndValues.Key>Source</DataKeysAndValues.Key>\n <DataKeysAndValues.Value>{log.source}</DataKeysAndValues.Value>\n </>\n )}\n {log.metadata &&\n Object.entries(log.metadata).map(([key, value]) => (\n <Fragment key={key}>\n <DataKeysAndValues.Key>{key}</DataKeysAndValues.Key>\n <DataKeysAndValues.Value>{String(value)}</DataKeysAndValues.Value>\n </Fragment>\n ))}\n </DataKeysAndValues>\n\n <DataPanel.CodeSection title=\"Message\" codeStr={log.message} simplified />\n\n {(log.traceId || log.spanId) && (\n <div className=\"grid gap-2\">\n {log.traceId && (\n <ButtonsGroup className=\"w-full min-w-0\">\n <Button\n className=\"min-w-0 flex-1 justify-between overflow-hidden\"\n icon={<ArrowRightIcon />}\n onClick={() => log.traceId && onTraceClick?.(log.traceId)}\n >\n <span>Trace</span>\n <Txt as=\"span\" variant=\"caption\" tone=\"faint\" className=\"ml-auto min-w-0 truncate\">\n # {log.traceId}\n </Txt>\n </Button>\n <CopyButton content={log.traceId} tooltip=\"Copy trace ID to clipboard\" />\n </ButtonsGroup>\n )}\n {log.spanId && (\n <ButtonsGroup className=\"w-full min-w-0\">\n <Button\n className=\"min-w-0 flex-1 justify-between overflow-hidden\"\n disabled={!log.traceId || !onSpanClick}\n onClick={() => log.traceId && log.spanId && onSpanClick?.(log.traceId, log.spanId)}\n icon={<ArrowRightIcon />}\n >\n <span>Span</span>\n <Txt as=\"span\" variant=\"caption\" tone=\"faint\" className=\"ml-auto min-w-0 truncate\">\n # {log.spanId}\n </Txt>\n </Button>\n <CopyButton content={log.spanId} tooltip=\"Copy span ID to clipboard\" />\n </ButtonsGroup>\n )}\n </div>\n )}\n\n {log.data && Object.keys(log.data).length > 0 && (\n <DataPanel.CodeSection title=\"Data\" codeStr={JSON.stringify(log.data, null, 2)} />\n )}\n </div>\n </DataPanel.Content>\n </>\n )}\n </DataPanel>\n );\n}\n"],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  import { formatTimestampPrecise } from "../../../utils/date-format.es.js";
2
- import { t as Button } from "../../../Button-Bw1e3ONi.js";
2
+ import { t as Button } from "../../../Button-CLXTbAY8.js";
3
3
  import { t as Txt } from "../../../Txt-BM6TVV_c.js";
4
- import { t as CopyButton } from "../../../copy-button-CF-X4iDj.js";
5
- import { ButtonsGroup } from "../../../components/ButtonsGroup.es.js";
6
- import { t as DataPanel } from "../../../DataPanel-CY1W5LHJ.js";
4
+ import { t as CopyButton } from "../../../copy-button-BXrbevLn.js";
5
+ import { t as ButtonsGroup } from "../../../buttons-group-DkFlnMiL.js";
6
+ import { t as DataPanel } from "../../../DataPanel-IgB9D5PO.js";
7
7
  import { t as DataKeysAndValues } from "../../../DataKeysAndValues-PwOmGxyp.js";
8
8
  import { Fragment } from "react";
9
9
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
@@ -1,7 +1,7 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_DataList = require("../../../DataList-Czwmwyvp.cjs");
2
+ const require_DataList = require("../../../DataList-Cj0mfk19.cjs");
3
3
  const require_use_data_list_keyboard = require("../../../use-data-list-keyboard-BCLBdaWR.cjs");
4
- const require_LogsDataList = require("../../../LogsDataList-DMmxAt_t.cjs");
4
+ const require_LogsDataList = require("../../../LogsDataList-CCIfUPGo.cjs");
5
5
  let react = require("react");
6
6
  let react_jsx_runtime = require("react/jsx-runtime");
7
7
  let _tanstack_react_virtual = require("@tanstack/react-virtual");
@@ -1,6 +1,6 @@
1
- import { r as DataListSkeleton } from "../../../DataList-2tIlQsLc.js";
1
+ import { r as DataListSkeleton } from "../../../DataList-CUhRQAv6.js";
2
2
  import { t as useDataListKeyboard } from "../../../use-data-list-keyboard-fJXq2T3y.js";
3
- import { t as LogsDataList } from "../../../LogsDataList-Cslabh8K.js";
3
+ import { t as LogsDataList } from "../../../LogsDataList-BI2C5OJz.js";
4
4
  import { useEffect, useRef } from "react";
5
5
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
6
6
  import { useVirtualizer } from "@tanstack/react-virtual";
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_observability_saved_views = require("../../../observability-saved-views-BNU3GkK6.cjs");
2
+ const require_observability_saved_views = require("../../../observability-saved-views-Daizz4tU.cjs");
3
3
  let react_jsx_runtime = require("react/jsx-runtime");
4
4
  // src/domains/logs/components/logs-saved-views.tsx
5
5
  /** Saved views of the logs page, placed by the host next to `LogsToolbar`. Renders nothing without a `SavedViewsProvider`. */
@@ -1,4 +1,4 @@
1
- import { t as ObservabilitySavedViews } from "../../../observability-saved-views-Zlz74syw.js";
1
+ import { t as ObservabilitySavedViews } from "../../../observability-saved-views-CjKTEp1V.js";
2
2
  import { jsx } from "react/jsx-runtime";
3
3
  // src/domains/logs/components/logs-saved-views.tsx
4
4
  /** Saved views of the logs page, placed by the host next to `LogsToolbar`. Renders nothing without a `SavedViewsProvider`. */
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_utils = require("../../../utils-uDc1ofX1.cjs");
3
- const require_property_filter_applied = require("../../../property-filter-applied-DqsPFbYM.cjs");
3
+ const require_property_filter_applied = require("../../../property-filter-applied-BkkIObRq.cjs");
4
4
  let react_jsx_runtime = require("react/jsx-runtime");
5
5
  // src/domains/logs/components/logs-toolbar.tsx
6
6
  function LogsToolbar({ onClear, onRemoveAll, onSave, onRemoveSaved, isLoading, filterFields, filterTokens, onFilterTokensChange, autoFocusFilterFieldId }) {
@@ -1,5 +1,5 @@
1
1
  import { t as cn } from "../../../utils-DQx8TpNT.js";
2
- import { r as PropertyFilterActions, t as PropertyFilterApplied } from "../../../property-filter-applied-DRglaEj-.js";
2
+ import { r as PropertyFilterActions, t as PropertyFilterApplied } from "../../../property-filter-applied--U5EZdaA.js";
3
3
  import { jsx, jsxs } from "react/jsx-runtime";
4
4
  // src/domains/logs/components/logs-toolbar.tsx
5
5
  function LogsToolbar({ onClear, onRemoveAll, onSave, onRemoveSaved, isLoading, filterFields, filterTokens, onFilterTokensChange, autoFocusFilterFieldId }) {
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_utils_date_format = require("../../../utils/date-format.cjs.js");
3
- const require_Button = require("../../../Button-YQRflC47.cjs");
3
+ const require_Button = require("../../../Button-DLcMcuUL.cjs");
4
4
  const require_EmptyState = require("../../../EmptyState-DxDHlYqD.cjs");
5
5
  let react_jsx_runtime = require("react/jsx-runtime");
6
6
  let lucide_react = require("lucide-react");
@@ -1,5 +1,5 @@
1
1
  import { formatDate } from "../../../utils/date-format.es.js";
2
- import { t as Button } from "../../../Button-Bw1e3ONi.js";
2
+ import { t as Button } from "../../../Button-CLXTbAY8.js";
3
3
  import { n as EmptyState } from "../../../EmptyState-P-Gy898T.js";
4
4
  import { jsx } from "react/jsx-runtime";
5
5
  import { ExternalLinkIcon } from "lucide-react";
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_toast_api = require("../../../toast-api-Bv87KHu_.cjs");
2
+ const require_toast_api = require("../../../toast-api-qtkOucy2.cjs");
3
3
  const require_domains_logs_log_filters = require("../log-filters.cjs.js");
4
4
  let react = require("react");
5
5
  // src/domains/logs/hooks/use-logs-filter-persistence.tsx
@@ -1,4 +1,4 @@
1
- import { t as toast } from "../../../toast-api-WhxnAT9F.js";
1
+ import { t as toast } from "../../../toast-api-D_rrRhNG.js";
2
2
  import { clearSavedLogsFilters, hasAnyLogsFilterParams, loadLogsFiltersFromStorage, saveLogsFiltersToStorage } from "../log-filters.es.js";
3
3
  import { useCallback, useEffect, useRef, useState } from "react";
4
4
  // src/domains/logs/hooks/use-logs-filter-persistence.tsx
@@ -1,7 +1,7 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_utils_date_format = require("../../../utils/date-format.cjs.js");
3
3
  const require_primitives_raised_surface = require("../../../primitives/raised-surface.cjs.js");
4
- const require_Button = require("../../../Button-YQRflC47.cjs");
4
+ const require_Button = require("../../../Button-DLcMcuUL.cjs");
5
5
  const require_Txt = require("../../../Txt-BnoSqxKE.cjs");
6
6
  const require_domains_memory_lib_timeline = require("../lib/timeline.cjs.js");
7
7
  const require_domains_memory_components_flame_graph_data = require("./flame-graph-data.cjs.js");
@@ -1,6 +1,6 @@
1
1
  import { formatDate } from "../../../utils/date-format.es.js";
2
2
  import { overlaySurfaceStyle } from "../../../primitives/raised-surface.es.js";
3
- import { t as Button } from "../../../Button-Bw1e3ONi.js";
3
+ import { t as Button } from "../../../Button-CLXTbAY8.js";
4
4
  import { t as Txt } from "../../../Txt-BM6TVV_c.js";
5
5
  import { tToTimestamp } from "../lib/timeline.es.js";
6
6
  import { getAreaRowYMax, isEventPoint, toActiveObservationData, toBufferedObservationData, toCombinedRowData, toContextData, toEventData, toMessageData, toSelectedT } from "./flame-graph-data.es.js";
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_Button = require("../../../Button-YQRflC47.cjs");
2
+ const require_Button = require("../../../Button-DLcMcuUL.cjs");
3
3
  const require_Txt = require("../../../Txt-BnoSqxKE.cjs");
4
4
  const require_icons_MemoryIcon = require("../../../icons/MemoryIcon.cjs.js");
5
5
  const require_components_Skeleton = require("../../../components/Skeleton.cjs.js");
@@ -1,4 +1,4 @@
1
- import { t as Button } from "../../../Button-Bw1e3ONi.js";
1
+ import { t as Button } from "../../../Button-CLXTbAY8.js";
2
2
  import { t as Txt } from "../../../Txt-BM6TVV_c.js";
3
3
  import { MemoryIcon } from "../../../icons/MemoryIcon.es.js";
4
4
  import { Skeleton } from "../../../components/Skeleton.es.js";
@@ -9,7 +9,7 @@ const require_domains_metrics_components_breakdown_breakdown_change_description
9
9
  const require_domains_metrics_components_breakdown_breakdown_figure = require("./breakdown-figure.cjs.js");
10
10
  const require_domains_metrics_components_breakdown_breakdown_text = require("./breakdown-text.cjs.js");
11
11
  const require_domains_metrics_hooks_use_metrics_scope = require("../../hooks/use-metrics-scope.cjs.js");
12
- const require_MetricsTable = require("../../../../MetricsTable-D-aZf3dk.cjs");
12
+ const require_MetricsTable = require("../../../../MetricsTable-BSl81oNe.cjs");
13
13
  const require_domains_metrics_components_breakdown_breakdown_change_cell = require("./breakdown-change-cell.cjs.js");
14
14
  const require_domains_metrics_components_breakdown_breakdown_cost_cell = require("./breakdown-cost-cell.cjs.js");
15
15
  const require_domains_metrics_components_breakdown_breakdown_frame = require("./breakdown-frame.cjs.js");
@@ -17,7 +17,7 @@ const require_domains_metrics_components_breakdown_breakdown_row_name = require(
17
17
  let react = require("react");
18
18
  let react_jsx_runtime = require("react/jsx-runtime");
19
19
  // src/domains/metrics/components/breakdown/breakdown-table.tsx
20
- var PAGE_SIZE = 13;
20
+ var PAGE_SIZE = 10;
21
21
  /** Busiest first; where a third click on a column's header returns to. */
22
22
  var DEFAULT_SORT = {
23
23
  column: "count",
@@ -1 +1 @@
1
- {"version":3,"file":"breakdown-table.cjs.js","names":["useMetricsScope","useState","isChangeMetric","BreakdownFrame","ChartCardError","hasErrors","showsProject","buildBreakdownRows","threadResources","previousFigures","tableRows","volumeLabel","rowChange","BreakdownRowName","BreakdownText","BreakdownFigure","formatPercent","formatDuration","formatCount","BreakdownCostCell","countDescription","BreakdownChangeDescription","comparedLabel","BreakdownChangeCell","ChartArea","MetricsTable","drilldownFor","Txt"],"sources":["../../../../../src/domains/metrics/components/breakdown/breakdown-table.tsx"],"sourcesContent":["import type { AggregateTracesResponse } from '@mastra/client-js';\nimport type { UseQueryResult } from '@tanstack/react-query';\nimport { useState } from 'react';\nimport { useMetricsScope } from '../../hooks/use-metrics-scope';\nimport type { useMetricsUsageTotals } from '../../hooks/use-metrics-usage-totals';\nimport { buildBreakdownRows, hasErrors, previousFigures, rowChange, threadResources } from '../../lib/breakdown';\nimport type { BreakdownRow, BreakdownTab, ChangeMetric } from '../../lib/breakdown';\nimport {\n DASH,\n comparedLabel,\n countDescription,\n drilldownFor,\n isChangeMetric,\n showsProject,\n tableRows,\n volumeLabel,\n} from '../../lib/breakdown-table';\nimport { formatCount, formatDuration, formatPercent } from '../../lib/chart-format';\nimport { ChartArea } from '../chart-area';\nimport { ChartCardError } from '../chart-card-error';\nimport { BreakdownChangeCell } from './breakdown-change-cell';\nimport { BreakdownChangeDescription } from './breakdown-change-description';\nimport { BreakdownCostCell } from './breakdown-cost-cell';\nimport { BreakdownFigure } from './breakdown-figure';\nimport { BreakdownFrame } from './breakdown-frame';\nimport type { BreakdownFrameProps } from './breakdown-frame';\nimport { BreakdownRowName } from './breakdown-row-name';\nimport { BreakdownText } from './breakdown-text';\nimport { MetricsTable } from '@/ds/components/MetricsTable';\nimport type { MetricsTableColumn, MetricsTableSort } from '@/ds/components/MetricsTable';\nimport { Txt } from '@/ds/components/Txt';\n\ntype UsageTotals = ReturnType<typeof useMetricsUsageTotals>;\n\nconst PAGE_SIZE = 13;\n\n/** Busiest first; where a third click on a column's header returns to. */\nconst DEFAULT_SORT: MetricsTableSort = { column: 'count', direction: 'desc' };\n\n/** The first column's header: what each row is. */\nconst NAME_HEADER: Record<BreakdownTab, string> = {\n projects: 'Project',\n agents: 'Agent',\n workflows: 'Workflow',\n tools: 'Tool',\n models: 'Model',\n threads: 'Thread',\n environments: 'Environment',\n};\n\nconst EMPTY: Record<BreakdownTab, string> = {\n projects: 'No traces in this range.',\n agents: 'No agent runs in this range.',\n workflows: 'No workflow runs in this range.',\n tools: 'No tool calls in this range.',\n models: 'No model usage in this range.',\n threads: 'No traces with a thread in this range.',\n environments: 'No traces in this range.',\n};\n\nexport type BreakdownTableProps = BreakdownFrameProps & {\n tab: BreakdownTab;\n groupBy: string[];\n window: { start: Date; end: Date };\n aggregate?: UseQueryResult<AggregateTracesResponse>;\n /** Tokens and cost per row. */\n totals?: UsageTotals;\n /** Model spans per row (Models tab). */\n spans?: UsageTotals;\n /** Rows naming each thread's resource (Threads tab). */\n resources?: UseQueryResult<AggregateTracesResponse>;\n previousAggregate?: UseQueryResult<AggregateTracesResponse>;\n previousUsage?: UsageTotals;\n previousSpans?: UsageTotals;\n /** The server's row cap, named when it truncates. */\n limit: number;\n};\n\n/** One tab's sortable table, with % Change against the previous window. */\nexport function BreakdownTable({\n tab,\n groupBy,\n window,\n aggregate,\n totals,\n spans,\n resources,\n previousAggregate,\n previousUsage,\n previousSpans,\n limit,\n ...frame\n}: BreakdownTableProps) {\n const scope = useMetricsScope();\n const [sort, setSort] = useState<MetricsTableSort>(DEFAULT_SORT);\n const [metric, setMetric] = useState<ChangeMetric>('count');\n const onSortChange = (next = DEFAULT_SORT) => {\n setSort(next);\n if (isChangeMetric(next.column)) setMetric(next.column);\n };\n\n const current = [aggregate, totals, spans].filter(q => q !== undefined);\n if (current.some(q => q.isError)) {\n return (\n <BreakdownFrame {...frame} tab={tab}>\n <ChartCardError onRetry={() => current.forEach(q => q.isError && void q.refetch())} />\n </BreakdownFrame>\n );\n }\n\n const isLoading = current.some(q => q.isLoading);\n const errors = hasErrors(tab);\n const usage = totals !== undefined;\n const project = showsProject(tab, frame.byProject);\n const truncated = aggregate?.data?.truncated === true;\n const built = isLoading\n ? []\n : buildBreakdownRows({\n tab,\n groupBy,\n aggregateRows: aggregate?.data?.rows,\n usageGroups: totals?.data?.groups,\n spanGroups: spans?.data?.groups,\n // The resource is a nicety: the table doesn't wait for it, and shows a dash without it.\n resources: resources?.data ? threadResources(resources.data.rows) : undefined,\n });\n // The previous window never holds the table up: until it answers, or if it fails, Change shows a dash.\n const previousSettled = [previousAggregate, previousUsage, previousSpans].every(\n q => !q || (!q.isLoading && !q.isError),\n );\n const previous =\n previousSettled && !isLoading\n ? previousFigures({\n tab,\n groupBy,\n aggregateRows: previousAggregate?.data?.rows,\n usageGroups: previousUsage?.data?.groups,\n spanGroups: previousSpans?.data?.groups,\n })\n : undefined;\n const rows = tableRows({ tab, built, previous, truncated, groupBy, usage });\n const volume = volumeLabel(tab);\n\n const changeOf = (row: BreakdownRow) => (previous ? rowChange(row, previous.get(row.key), metric) : undefined);\n const projectName = (row: BreakdownRow) => {\n if (!row.projectId) return DASH;\n return scope.projectLabel?.(row.projectId) ?? row.projectId;\n };\n\n const nameColumn: MetricsTableColumn<BreakdownRow> = {\n id: 'name',\n header: NAME_HEADER[tab],\n width: 'minmax(12rem,3fr)',\n cell: row => <BreakdownRowName tab={tab} row={row} />,\n };\n const projectColumn: MetricsTableColumn<BreakdownRow> = {\n id: 'project',\n header: 'Project',\n width: 'minmax(8rem,2fr)',\n cell: row => <BreakdownText text={projectName(row)} />,\n };\n const resourceColumn: MetricsTableColumn<BreakdownRow> = {\n id: 'resource',\n header: 'Resource',\n width: 'minmax(6rem,1fr)',\n cell: row => <BreakdownText text={row.resource ?? DASH} />,\n };\n const errorColumns: MetricsTableColumn<BreakdownRow>[] = [\n {\n id: 'errorRate',\n header: 'Errors',\n align: 'end',\n sortValue: row => row.errorRate,\n cell: row => (\n <BreakdownFigure muted>{row.errorRate === undefined ? DASH : formatPercent(row.errorRate)}</BreakdownFigure>\n ),\n },\n {\n id: 'p95',\n header: 'P95 latency',\n align: 'end',\n sortValue: row => row.p95,\n cell: row => <BreakdownFigure muted>{row.p95 === undefined ? DASH : formatDuration(row.p95)}</BreakdownFigure>,\n },\n ];\n const usageColumns: MetricsTableColumn<BreakdownRow>[] = [\n {\n id: 'tokens',\n header: 'Tokens',\n align: 'end',\n sortValue: row => row.tokens,\n cell: row => <BreakdownFigure muted>{row.tokens === undefined ? DASH : formatCount(row.tokens)}</BreakdownFigure>,\n },\n {\n id: 'cost',\n header: 'Cost',\n align: 'end',\n sortValue: row => row.cost,\n cell: row => (\n <BreakdownFigure muted>\n <BreakdownCostCell row={row} />\n </BreakdownFigure>\n ),\n },\n ];\n const countColumn: MetricsTableColumn<BreakdownRow> = {\n id: 'count',\n header: volume,\n align: 'end',\n description: countDescription(tab),\n sortValue: row => row.count,\n cell: row => <BreakdownFigure>{formatCount(row.count)}</BreakdownFigure>,\n };\n const changeColumn: MetricsTableColumn<BreakdownRow> = {\n id: 'change',\n header: '% Change',\n align: 'end',\n description: <BreakdownChangeDescription window={window} label={comparedLabel(tab, metric)} />,\n // Sorted by the change shown: biggest rise first, biggest fall first the other way. New rows\n // have no change to rank, so they sort last.\n sortValue: row => changeOf(row)?.change,\n cell: row => (\n <BreakdownFigure>\n <BreakdownChangeCell change={changeOf(row)} metric={metric} />\n </BreakdownFigure>\n ),\n };\n const columns = [\n nameColumn,\n ...(project ? [projectColumn] : []),\n ...(tab === 'threads' ? [resourceColumn] : []),\n ...(errors ? errorColumns : []),\n ...(usage ? usageColumns : []),\n countColumn,\n changeColumn,\n ];\n\n return (\n <BreakdownFrame {...frame} tab={tab} isUpdating={aggregate?.isPlaceholderData}>\n <ChartArea>\n <MetricsTable\n key={tab}\n aria-label={`${NAME_HEADER[tab]} breakdown`}\n columns={columns}\n rows={rows}\n getRowKey={row => row.key}\n sort={sort}\n defaultSort={DEFAULT_SORT}\n onSortChange={onSortChange}\n onRowClick={frame.onRowClick && (row => frame.onRowClick?.(drilldownFor(tab, row)))}\n pageSize={PAGE_SIZE}\n isLoading={isLoading}\n empty={EMPTY[tab]}\n />\n {!isLoading && truncated && (\n <Txt variant=\"caption\" tone=\"muted\" className=\"pt-2\">\n Showing the {formatCount(limit)} busiest; sorting covers only these.\n </Txt>\n )}\n </ChartArea>\n </BreakdownFrame>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"breakdown-table.cjs.js","names":["useMetricsScope","useState","isChangeMetric","BreakdownFrame","ChartCardError","hasErrors","showsProject","buildBreakdownRows","threadResources","previousFigures","tableRows","volumeLabel","rowChange","BreakdownRowName","BreakdownText","BreakdownFigure","formatPercent","formatDuration","formatCount","BreakdownCostCell","countDescription","BreakdownChangeDescription","comparedLabel","BreakdownChangeCell","ChartArea","MetricsTable","drilldownFor","Txt"],"sources":["../../../../../src/domains/metrics/components/breakdown/breakdown-table.tsx"],"sourcesContent":["import type { AggregateTracesResponse } from '@mastra/client-js';\nimport type { UseQueryResult } from '@tanstack/react-query';\nimport { useState } from 'react';\nimport { useMetricsScope } from '../../hooks/use-metrics-scope';\nimport type { useMetricsUsageTotals } from '../../hooks/use-metrics-usage-totals';\nimport { buildBreakdownRows, hasErrors, previousFigures, rowChange, threadResources } from '../../lib/breakdown';\nimport type { BreakdownRow, BreakdownTab, ChangeMetric } from '../../lib/breakdown';\nimport {\n DASH,\n comparedLabel,\n countDescription,\n drilldownFor,\n isChangeMetric,\n showsProject,\n tableRows,\n volumeLabel,\n} from '../../lib/breakdown-table';\nimport { formatCount, formatDuration, formatPercent } from '../../lib/chart-format';\nimport { ChartArea } from '../chart-area';\nimport { ChartCardError } from '../chart-card-error';\nimport { BreakdownChangeCell } from './breakdown-change-cell';\nimport { BreakdownChangeDescription } from './breakdown-change-description';\nimport { BreakdownCostCell } from './breakdown-cost-cell';\nimport { BreakdownFigure } from './breakdown-figure';\nimport { BreakdownFrame } from './breakdown-frame';\nimport type { BreakdownFrameProps } from './breakdown-frame';\nimport { BreakdownRowName } from './breakdown-row-name';\nimport { BreakdownText } from './breakdown-text';\nimport { MetricsTable } from '@/ds/components/MetricsTable';\nimport type { MetricsTableColumn, MetricsTableSort } from '@/ds/components/MetricsTable';\nimport { Txt } from '@/ds/components/Txt';\n\ntype UsageTotals = ReturnType<typeof useMetricsUsageTotals>;\n\nconst PAGE_SIZE = 10;\n\n/** Busiest first; where a third click on a column's header returns to. */\nconst DEFAULT_SORT: MetricsTableSort = { column: 'count', direction: 'desc' };\n\n/** The first column's header: what each row is. */\nconst NAME_HEADER: Record<BreakdownTab, string> = {\n projects: 'Project',\n agents: 'Agent',\n workflows: 'Workflow',\n tools: 'Tool',\n models: 'Model',\n threads: 'Thread',\n environments: 'Environment',\n};\n\nconst EMPTY: Record<BreakdownTab, string> = {\n projects: 'No traces in this range.',\n agents: 'No agent runs in this range.',\n workflows: 'No workflow runs in this range.',\n tools: 'No tool calls in this range.',\n models: 'No model usage in this range.',\n threads: 'No traces with a thread in this range.',\n environments: 'No traces in this range.',\n};\n\nexport type BreakdownTableProps = BreakdownFrameProps & {\n tab: BreakdownTab;\n groupBy: string[];\n window: { start: Date; end: Date };\n aggregate?: UseQueryResult<AggregateTracesResponse>;\n /** Tokens and cost per row. */\n totals?: UsageTotals;\n /** Model spans per row (Models tab). */\n spans?: UsageTotals;\n /** Rows naming each thread's resource (Threads tab). */\n resources?: UseQueryResult<AggregateTracesResponse>;\n previousAggregate?: UseQueryResult<AggregateTracesResponse>;\n previousUsage?: UsageTotals;\n previousSpans?: UsageTotals;\n /** The server's row cap, named when it truncates. */\n limit: number;\n};\n\n/** One tab's sortable table, with % Change against the previous window. */\nexport function BreakdownTable({\n tab,\n groupBy,\n window,\n aggregate,\n totals,\n spans,\n resources,\n previousAggregate,\n previousUsage,\n previousSpans,\n limit,\n ...frame\n}: BreakdownTableProps) {\n const scope = useMetricsScope();\n const [sort, setSort] = useState<MetricsTableSort>(DEFAULT_SORT);\n const [metric, setMetric] = useState<ChangeMetric>('count');\n const onSortChange = (next = DEFAULT_SORT) => {\n setSort(next);\n if (isChangeMetric(next.column)) setMetric(next.column);\n };\n\n const current = [aggregate, totals, spans].filter(q => q !== undefined);\n if (current.some(q => q.isError)) {\n return (\n <BreakdownFrame {...frame} tab={tab}>\n <ChartCardError onRetry={() => current.forEach(q => q.isError && void q.refetch())} />\n </BreakdownFrame>\n );\n }\n\n const isLoading = current.some(q => q.isLoading);\n const errors = hasErrors(tab);\n const usage = totals !== undefined;\n const project = showsProject(tab, frame.byProject);\n const truncated = aggregate?.data?.truncated === true;\n const built = isLoading\n ? []\n : buildBreakdownRows({\n tab,\n groupBy,\n aggregateRows: aggregate?.data?.rows,\n usageGroups: totals?.data?.groups,\n spanGroups: spans?.data?.groups,\n // The resource is a nicety: the table doesn't wait for it, and shows a dash without it.\n resources: resources?.data ? threadResources(resources.data.rows) : undefined,\n });\n // The previous window never holds the table up: until it answers, or if it fails, Change shows a dash.\n const previousSettled = [previousAggregate, previousUsage, previousSpans].every(\n q => !q || (!q.isLoading && !q.isError),\n );\n const previous =\n previousSettled && !isLoading\n ? previousFigures({\n tab,\n groupBy,\n aggregateRows: previousAggregate?.data?.rows,\n usageGroups: previousUsage?.data?.groups,\n spanGroups: previousSpans?.data?.groups,\n })\n : undefined;\n const rows = tableRows({ tab, built, previous, truncated, groupBy, usage });\n const volume = volumeLabel(tab);\n\n const changeOf = (row: BreakdownRow) => (previous ? rowChange(row, previous.get(row.key), metric) : undefined);\n const projectName = (row: BreakdownRow) => {\n if (!row.projectId) return DASH;\n return scope.projectLabel?.(row.projectId) ?? row.projectId;\n };\n\n const nameColumn: MetricsTableColumn<BreakdownRow> = {\n id: 'name',\n header: NAME_HEADER[tab],\n width: 'minmax(12rem,3fr)',\n cell: row => <BreakdownRowName tab={tab} row={row} />,\n };\n const projectColumn: MetricsTableColumn<BreakdownRow> = {\n id: 'project',\n header: 'Project',\n width: 'minmax(8rem,2fr)',\n cell: row => <BreakdownText text={projectName(row)} />,\n };\n const resourceColumn: MetricsTableColumn<BreakdownRow> = {\n id: 'resource',\n header: 'Resource',\n width: 'minmax(6rem,1fr)',\n cell: row => <BreakdownText text={row.resource ?? DASH} />,\n };\n const errorColumns: MetricsTableColumn<BreakdownRow>[] = [\n {\n id: 'errorRate',\n header: 'Errors',\n align: 'end',\n sortValue: row => row.errorRate,\n cell: row => (\n <BreakdownFigure muted>{row.errorRate === undefined ? DASH : formatPercent(row.errorRate)}</BreakdownFigure>\n ),\n },\n {\n id: 'p95',\n header: 'P95 latency',\n align: 'end',\n sortValue: row => row.p95,\n cell: row => <BreakdownFigure muted>{row.p95 === undefined ? DASH : formatDuration(row.p95)}</BreakdownFigure>,\n },\n ];\n const usageColumns: MetricsTableColumn<BreakdownRow>[] = [\n {\n id: 'tokens',\n header: 'Tokens',\n align: 'end',\n sortValue: row => row.tokens,\n cell: row => <BreakdownFigure muted>{row.tokens === undefined ? DASH : formatCount(row.tokens)}</BreakdownFigure>,\n },\n {\n id: 'cost',\n header: 'Cost',\n align: 'end',\n sortValue: row => row.cost,\n cell: row => (\n <BreakdownFigure muted>\n <BreakdownCostCell row={row} />\n </BreakdownFigure>\n ),\n },\n ];\n const countColumn: MetricsTableColumn<BreakdownRow> = {\n id: 'count',\n header: volume,\n align: 'end',\n description: countDescription(tab),\n sortValue: row => row.count,\n cell: row => <BreakdownFigure>{formatCount(row.count)}</BreakdownFigure>,\n };\n const changeColumn: MetricsTableColumn<BreakdownRow> = {\n id: 'change',\n header: '% Change',\n align: 'end',\n description: <BreakdownChangeDescription window={window} label={comparedLabel(tab, metric)} />,\n // Sorted by the change shown: biggest rise first, biggest fall first the other way. New rows\n // have no change to rank, so they sort last.\n sortValue: row => changeOf(row)?.change,\n cell: row => (\n <BreakdownFigure>\n <BreakdownChangeCell change={changeOf(row)} metric={metric} />\n </BreakdownFigure>\n ),\n };\n const columns = [\n nameColumn,\n ...(project ? [projectColumn] : []),\n ...(tab === 'threads' ? [resourceColumn] : []),\n ...(errors ? errorColumns : []),\n ...(usage ? usageColumns : []),\n countColumn,\n changeColumn,\n ];\n\n return (\n <BreakdownFrame {...frame} tab={tab} isUpdating={aggregate?.isPlaceholderData}>\n <ChartArea>\n <MetricsTable\n key={tab}\n aria-label={`${NAME_HEADER[tab]} breakdown`}\n columns={columns}\n rows={rows}\n getRowKey={row => row.key}\n sort={sort}\n defaultSort={DEFAULT_SORT}\n onSortChange={onSortChange}\n onRowClick={frame.onRowClick && (row => frame.onRowClick?.(drilldownFor(tab, row)))}\n pageSize={PAGE_SIZE}\n isLoading={isLoading}\n empty={EMPTY[tab]}\n />\n {!isLoading && truncated && (\n <Txt variant=\"caption\" tone=\"muted\" className=\"pt-2\">\n Showing the {formatCount(limit)} busiest; sorting covers only these.\n </Txt>\n )}\n </ChartArea>\n </BreakdownFrame>\n );\n}\n"],"mappings":"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"}
@@ -8,7 +8,7 @@ import { BreakdownChangeDescription } from "./breakdown-change-description.es.js
8
8
  import { BreakdownFigure } from "./breakdown-figure.es.js";
9
9
  import { BreakdownText } from "./breakdown-text.es.js";
10
10
  import { useMetricsScope } from "../../hooks/use-metrics-scope.es.js";
11
- import { t as MetricsTable } from "../../../../MetricsTable-CRPeLHe1.js";
11
+ import { t as MetricsTable } from "../../../../MetricsTable-DID6LRoP.js";
12
12
  import { BreakdownChangeCell } from "./breakdown-change-cell.es.js";
13
13
  import { BreakdownCostCell } from "./breakdown-cost-cell.es.js";
14
14
  import { BreakdownFrame } from "./breakdown-frame.es.js";
@@ -16,7 +16,7 @@ import { BreakdownRowName } from "./breakdown-row-name.es.js";
16
16
  import { useState } from "react";
17
17
  import { jsx, jsxs } from "react/jsx-runtime";
18
18
  // src/domains/metrics/components/breakdown/breakdown-table.tsx
19
- var PAGE_SIZE = 13;
19
+ var PAGE_SIZE = 10;
20
20
  /** Busiest first; where a third click on a column's header returns to. */
21
21
  var DEFAULT_SORT = {
22
22
  column: "count",
@@ -1 +1 @@
1
- {"version":3,"file":"breakdown-table.es.js","names":[],"sources":["../../../../../src/domains/metrics/components/breakdown/breakdown-table.tsx"],"sourcesContent":["import type { AggregateTracesResponse } from '@mastra/client-js';\nimport type { UseQueryResult } from '@tanstack/react-query';\nimport { useState } from 'react';\nimport { useMetricsScope } from '../../hooks/use-metrics-scope';\nimport type { useMetricsUsageTotals } from '../../hooks/use-metrics-usage-totals';\nimport { buildBreakdownRows, hasErrors, previousFigures, rowChange, threadResources } from '../../lib/breakdown';\nimport type { BreakdownRow, BreakdownTab, ChangeMetric } from '../../lib/breakdown';\nimport {\n DASH,\n comparedLabel,\n countDescription,\n drilldownFor,\n isChangeMetric,\n showsProject,\n tableRows,\n volumeLabel,\n} from '../../lib/breakdown-table';\nimport { formatCount, formatDuration, formatPercent } from '../../lib/chart-format';\nimport { ChartArea } from '../chart-area';\nimport { ChartCardError } from '../chart-card-error';\nimport { BreakdownChangeCell } from './breakdown-change-cell';\nimport { BreakdownChangeDescription } from './breakdown-change-description';\nimport { BreakdownCostCell } from './breakdown-cost-cell';\nimport { BreakdownFigure } from './breakdown-figure';\nimport { BreakdownFrame } from './breakdown-frame';\nimport type { BreakdownFrameProps } from './breakdown-frame';\nimport { BreakdownRowName } from './breakdown-row-name';\nimport { BreakdownText } from './breakdown-text';\nimport { MetricsTable } from '@/ds/components/MetricsTable';\nimport type { MetricsTableColumn, MetricsTableSort } from '@/ds/components/MetricsTable';\nimport { Txt } from '@/ds/components/Txt';\n\ntype UsageTotals = ReturnType<typeof useMetricsUsageTotals>;\n\nconst PAGE_SIZE = 13;\n\n/** Busiest first; where a third click on a column's header returns to. */\nconst DEFAULT_SORT: MetricsTableSort = { column: 'count', direction: 'desc' };\n\n/** The first column's header: what each row is. */\nconst NAME_HEADER: Record<BreakdownTab, string> = {\n projects: 'Project',\n agents: 'Agent',\n workflows: 'Workflow',\n tools: 'Tool',\n models: 'Model',\n threads: 'Thread',\n environments: 'Environment',\n};\n\nconst EMPTY: Record<BreakdownTab, string> = {\n projects: 'No traces in this range.',\n agents: 'No agent runs in this range.',\n workflows: 'No workflow runs in this range.',\n tools: 'No tool calls in this range.',\n models: 'No model usage in this range.',\n threads: 'No traces with a thread in this range.',\n environments: 'No traces in this range.',\n};\n\nexport type BreakdownTableProps = BreakdownFrameProps & {\n tab: BreakdownTab;\n groupBy: string[];\n window: { start: Date; end: Date };\n aggregate?: UseQueryResult<AggregateTracesResponse>;\n /** Tokens and cost per row. */\n totals?: UsageTotals;\n /** Model spans per row (Models tab). */\n spans?: UsageTotals;\n /** Rows naming each thread's resource (Threads tab). */\n resources?: UseQueryResult<AggregateTracesResponse>;\n previousAggregate?: UseQueryResult<AggregateTracesResponse>;\n previousUsage?: UsageTotals;\n previousSpans?: UsageTotals;\n /** The server's row cap, named when it truncates. */\n limit: number;\n};\n\n/** One tab's sortable table, with % Change against the previous window. */\nexport function BreakdownTable({\n tab,\n groupBy,\n window,\n aggregate,\n totals,\n spans,\n resources,\n previousAggregate,\n previousUsage,\n previousSpans,\n limit,\n ...frame\n}: BreakdownTableProps) {\n const scope = useMetricsScope();\n const [sort, setSort] = useState<MetricsTableSort>(DEFAULT_SORT);\n const [metric, setMetric] = useState<ChangeMetric>('count');\n const onSortChange = (next = DEFAULT_SORT) => {\n setSort(next);\n if (isChangeMetric(next.column)) setMetric(next.column);\n };\n\n const current = [aggregate, totals, spans].filter(q => q !== undefined);\n if (current.some(q => q.isError)) {\n return (\n <BreakdownFrame {...frame} tab={tab}>\n <ChartCardError onRetry={() => current.forEach(q => q.isError && void q.refetch())} />\n </BreakdownFrame>\n );\n }\n\n const isLoading = current.some(q => q.isLoading);\n const errors = hasErrors(tab);\n const usage = totals !== undefined;\n const project = showsProject(tab, frame.byProject);\n const truncated = aggregate?.data?.truncated === true;\n const built = isLoading\n ? []\n : buildBreakdownRows({\n tab,\n groupBy,\n aggregateRows: aggregate?.data?.rows,\n usageGroups: totals?.data?.groups,\n spanGroups: spans?.data?.groups,\n // The resource is a nicety: the table doesn't wait for it, and shows a dash without it.\n resources: resources?.data ? threadResources(resources.data.rows) : undefined,\n });\n // The previous window never holds the table up: until it answers, or if it fails, Change shows a dash.\n const previousSettled = [previousAggregate, previousUsage, previousSpans].every(\n q => !q || (!q.isLoading && !q.isError),\n );\n const previous =\n previousSettled && !isLoading\n ? previousFigures({\n tab,\n groupBy,\n aggregateRows: previousAggregate?.data?.rows,\n usageGroups: previousUsage?.data?.groups,\n spanGroups: previousSpans?.data?.groups,\n })\n : undefined;\n const rows = tableRows({ tab, built, previous, truncated, groupBy, usage });\n const volume = volumeLabel(tab);\n\n const changeOf = (row: BreakdownRow) => (previous ? rowChange(row, previous.get(row.key), metric) : undefined);\n const projectName = (row: BreakdownRow) => {\n if (!row.projectId) return DASH;\n return scope.projectLabel?.(row.projectId) ?? row.projectId;\n };\n\n const nameColumn: MetricsTableColumn<BreakdownRow> = {\n id: 'name',\n header: NAME_HEADER[tab],\n width: 'minmax(12rem,3fr)',\n cell: row => <BreakdownRowName tab={tab} row={row} />,\n };\n const projectColumn: MetricsTableColumn<BreakdownRow> = {\n id: 'project',\n header: 'Project',\n width: 'minmax(8rem,2fr)',\n cell: row => <BreakdownText text={projectName(row)} />,\n };\n const resourceColumn: MetricsTableColumn<BreakdownRow> = {\n id: 'resource',\n header: 'Resource',\n width: 'minmax(6rem,1fr)',\n cell: row => <BreakdownText text={row.resource ?? DASH} />,\n };\n const errorColumns: MetricsTableColumn<BreakdownRow>[] = [\n {\n id: 'errorRate',\n header: 'Errors',\n align: 'end',\n sortValue: row => row.errorRate,\n cell: row => (\n <BreakdownFigure muted>{row.errorRate === undefined ? DASH : formatPercent(row.errorRate)}</BreakdownFigure>\n ),\n },\n {\n id: 'p95',\n header: 'P95 latency',\n align: 'end',\n sortValue: row => row.p95,\n cell: row => <BreakdownFigure muted>{row.p95 === undefined ? DASH : formatDuration(row.p95)}</BreakdownFigure>,\n },\n ];\n const usageColumns: MetricsTableColumn<BreakdownRow>[] = [\n {\n id: 'tokens',\n header: 'Tokens',\n align: 'end',\n sortValue: row => row.tokens,\n cell: row => <BreakdownFigure muted>{row.tokens === undefined ? DASH : formatCount(row.tokens)}</BreakdownFigure>,\n },\n {\n id: 'cost',\n header: 'Cost',\n align: 'end',\n sortValue: row => row.cost,\n cell: row => (\n <BreakdownFigure muted>\n <BreakdownCostCell row={row} />\n </BreakdownFigure>\n ),\n },\n ];\n const countColumn: MetricsTableColumn<BreakdownRow> = {\n id: 'count',\n header: volume,\n align: 'end',\n description: countDescription(tab),\n sortValue: row => row.count,\n cell: row => <BreakdownFigure>{formatCount(row.count)}</BreakdownFigure>,\n };\n const changeColumn: MetricsTableColumn<BreakdownRow> = {\n id: 'change',\n header: '% Change',\n align: 'end',\n description: <BreakdownChangeDescription window={window} label={comparedLabel(tab, metric)} />,\n // Sorted by the change shown: biggest rise first, biggest fall first the other way. New rows\n // have no change to rank, so they sort last.\n sortValue: row => changeOf(row)?.change,\n cell: row => (\n <BreakdownFigure>\n <BreakdownChangeCell change={changeOf(row)} metric={metric} />\n </BreakdownFigure>\n ),\n };\n const columns = [\n nameColumn,\n ...(project ? [projectColumn] : []),\n ...(tab === 'threads' ? [resourceColumn] : []),\n ...(errors ? errorColumns : []),\n ...(usage ? usageColumns : []),\n countColumn,\n changeColumn,\n ];\n\n return (\n <BreakdownFrame {...frame} tab={tab} isUpdating={aggregate?.isPlaceholderData}>\n <ChartArea>\n <MetricsTable\n key={tab}\n aria-label={`${NAME_HEADER[tab]} breakdown`}\n columns={columns}\n rows={rows}\n getRowKey={row => row.key}\n sort={sort}\n defaultSort={DEFAULT_SORT}\n onSortChange={onSortChange}\n onRowClick={frame.onRowClick && (row => frame.onRowClick?.(drilldownFor(tab, row)))}\n pageSize={PAGE_SIZE}\n isLoading={isLoading}\n empty={EMPTY[tab]}\n />\n {!isLoading && truncated && (\n <Txt variant=\"caption\" tone=\"muted\" className=\"pt-2\">\n Showing the {formatCount(limit)} busiest; sorting covers only these.\n </Txt>\n )}\n </ChartArea>\n </BreakdownFrame>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"breakdown-table.es.js","names":[],"sources":["../../../../../src/domains/metrics/components/breakdown/breakdown-table.tsx"],"sourcesContent":["import type { AggregateTracesResponse } from '@mastra/client-js';\nimport type { UseQueryResult } from '@tanstack/react-query';\nimport { useState } from 'react';\nimport { useMetricsScope } from '../../hooks/use-metrics-scope';\nimport type { useMetricsUsageTotals } from '../../hooks/use-metrics-usage-totals';\nimport { buildBreakdownRows, hasErrors, previousFigures, rowChange, threadResources } from '../../lib/breakdown';\nimport type { BreakdownRow, BreakdownTab, ChangeMetric } from '../../lib/breakdown';\nimport {\n DASH,\n comparedLabel,\n countDescription,\n drilldownFor,\n isChangeMetric,\n showsProject,\n tableRows,\n volumeLabel,\n} from '../../lib/breakdown-table';\nimport { formatCount, formatDuration, formatPercent } from '../../lib/chart-format';\nimport { ChartArea } from '../chart-area';\nimport { ChartCardError } from '../chart-card-error';\nimport { BreakdownChangeCell } from './breakdown-change-cell';\nimport { BreakdownChangeDescription } from './breakdown-change-description';\nimport { BreakdownCostCell } from './breakdown-cost-cell';\nimport { BreakdownFigure } from './breakdown-figure';\nimport { BreakdownFrame } from './breakdown-frame';\nimport type { BreakdownFrameProps } from './breakdown-frame';\nimport { BreakdownRowName } from './breakdown-row-name';\nimport { BreakdownText } from './breakdown-text';\nimport { MetricsTable } from '@/ds/components/MetricsTable';\nimport type { MetricsTableColumn, MetricsTableSort } from '@/ds/components/MetricsTable';\nimport { Txt } from '@/ds/components/Txt';\n\ntype UsageTotals = ReturnType<typeof useMetricsUsageTotals>;\n\nconst PAGE_SIZE = 10;\n\n/** Busiest first; where a third click on a column's header returns to. */\nconst DEFAULT_SORT: MetricsTableSort = { column: 'count', direction: 'desc' };\n\n/** The first column's header: what each row is. */\nconst NAME_HEADER: Record<BreakdownTab, string> = {\n projects: 'Project',\n agents: 'Agent',\n workflows: 'Workflow',\n tools: 'Tool',\n models: 'Model',\n threads: 'Thread',\n environments: 'Environment',\n};\n\nconst EMPTY: Record<BreakdownTab, string> = {\n projects: 'No traces in this range.',\n agents: 'No agent runs in this range.',\n workflows: 'No workflow runs in this range.',\n tools: 'No tool calls in this range.',\n models: 'No model usage in this range.',\n threads: 'No traces with a thread in this range.',\n environments: 'No traces in this range.',\n};\n\nexport type BreakdownTableProps = BreakdownFrameProps & {\n tab: BreakdownTab;\n groupBy: string[];\n window: { start: Date; end: Date };\n aggregate?: UseQueryResult<AggregateTracesResponse>;\n /** Tokens and cost per row. */\n totals?: UsageTotals;\n /** Model spans per row (Models tab). */\n spans?: UsageTotals;\n /** Rows naming each thread's resource (Threads tab). */\n resources?: UseQueryResult<AggregateTracesResponse>;\n previousAggregate?: UseQueryResult<AggregateTracesResponse>;\n previousUsage?: UsageTotals;\n previousSpans?: UsageTotals;\n /** The server's row cap, named when it truncates. */\n limit: number;\n};\n\n/** One tab's sortable table, with % Change against the previous window. */\nexport function BreakdownTable({\n tab,\n groupBy,\n window,\n aggregate,\n totals,\n spans,\n resources,\n previousAggregate,\n previousUsage,\n previousSpans,\n limit,\n ...frame\n}: BreakdownTableProps) {\n const scope = useMetricsScope();\n const [sort, setSort] = useState<MetricsTableSort>(DEFAULT_SORT);\n const [metric, setMetric] = useState<ChangeMetric>('count');\n const onSortChange = (next = DEFAULT_SORT) => {\n setSort(next);\n if (isChangeMetric(next.column)) setMetric(next.column);\n };\n\n const current = [aggregate, totals, spans].filter(q => q !== undefined);\n if (current.some(q => q.isError)) {\n return (\n <BreakdownFrame {...frame} tab={tab}>\n <ChartCardError onRetry={() => current.forEach(q => q.isError && void q.refetch())} />\n </BreakdownFrame>\n );\n }\n\n const isLoading = current.some(q => q.isLoading);\n const errors = hasErrors(tab);\n const usage = totals !== undefined;\n const project = showsProject(tab, frame.byProject);\n const truncated = aggregate?.data?.truncated === true;\n const built = isLoading\n ? []\n : buildBreakdownRows({\n tab,\n groupBy,\n aggregateRows: aggregate?.data?.rows,\n usageGroups: totals?.data?.groups,\n spanGroups: spans?.data?.groups,\n // The resource is a nicety: the table doesn't wait for it, and shows a dash without it.\n resources: resources?.data ? threadResources(resources.data.rows) : undefined,\n });\n // The previous window never holds the table up: until it answers, or if it fails, Change shows a dash.\n const previousSettled = [previousAggregate, previousUsage, previousSpans].every(\n q => !q || (!q.isLoading && !q.isError),\n );\n const previous =\n previousSettled && !isLoading\n ? previousFigures({\n tab,\n groupBy,\n aggregateRows: previousAggregate?.data?.rows,\n usageGroups: previousUsage?.data?.groups,\n spanGroups: previousSpans?.data?.groups,\n })\n : undefined;\n const rows = tableRows({ tab, built, previous, truncated, groupBy, usage });\n const volume = volumeLabel(tab);\n\n const changeOf = (row: BreakdownRow) => (previous ? rowChange(row, previous.get(row.key), metric) : undefined);\n const projectName = (row: BreakdownRow) => {\n if (!row.projectId) return DASH;\n return scope.projectLabel?.(row.projectId) ?? row.projectId;\n };\n\n const nameColumn: MetricsTableColumn<BreakdownRow> = {\n id: 'name',\n header: NAME_HEADER[tab],\n width: 'minmax(12rem,3fr)',\n cell: row => <BreakdownRowName tab={tab} row={row} />,\n };\n const projectColumn: MetricsTableColumn<BreakdownRow> = {\n id: 'project',\n header: 'Project',\n width: 'minmax(8rem,2fr)',\n cell: row => <BreakdownText text={projectName(row)} />,\n };\n const resourceColumn: MetricsTableColumn<BreakdownRow> = {\n id: 'resource',\n header: 'Resource',\n width: 'minmax(6rem,1fr)',\n cell: row => <BreakdownText text={row.resource ?? DASH} />,\n };\n const errorColumns: MetricsTableColumn<BreakdownRow>[] = [\n {\n id: 'errorRate',\n header: 'Errors',\n align: 'end',\n sortValue: row => row.errorRate,\n cell: row => (\n <BreakdownFigure muted>{row.errorRate === undefined ? DASH : formatPercent(row.errorRate)}</BreakdownFigure>\n ),\n },\n {\n id: 'p95',\n header: 'P95 latency',\n align: 'end',\n sortValue: row => row.p95,\n cell: row => <BreakdownFigure muted>{row.p95 === undefined ? DASH : formatDuration(row.p95)}</BreakdownFigure>,\n },\n ];\n const usageColumns: MetricsTableColumn<BreakdownRow>[] = [\n {\n id: 'tokens',\n header: 'Tokens',\n align: 'end',\n sortValue: row => row.tokens,\n cell: row => <BreakdownFigure muted>{row.tokens === undefined ? DASH : formatCount(row.tokens)}</BreakdownFigure>,\n },\n {\n id: 'cost',\n header: 'Cost',\n align: 'end',\n sortValue: row => row.cost,\n cell: row => (\n <BreakdownFigure muted>\n <BreakdownCostCell row={row} />\n </BreakdownFigure>\n ),\n },\n ];\n const countColumn: MetricsTableColumn<BreakdownRow> = {\n id: 'count',\n header: volume,\n align: 'end',\n description: countDescription(tab),\n sortValue: row => row.count,\n cell: row => <BreakdownFigure>{formatCount(row.count)}</BreakdownFigure>,\n };\n const changeColumn: MetricsTableColumn<BreakdownRow> = {\n id: 'change',\n header: '% Change',\n align: 'end',\n description: <BreakdownChangeDescription window={window} label={comparedLabel(tab, metric)} />,\n // Sorted by the change shown: biggest rise first, biggest fall first the other way. New rows\n // have no change to rank, so they sort last.\n sortValue: row => changeOf(row)?.change,\n cell: row => (\n <BreakdownFigure>\n <BreakdownChangeCell change={changeOf(row)} metric={metric} />\n </BreakdownFigure>\n ),\n };\n const columns = [\n nameColumn,\n ...(project ? [projectColumn] : []),\n ...(tab === 'threads' ? [resourceColumn] : []),\n ...(errors ? errorColumns : []),\n ...(usage ? usageColumns : []),\n countColumn,\n changeColumn,\n ];\n\n return (\n <BreakdownFrame {...frame} tab={tab} isUpdating={aggregate?.isPlaceholderData}>\n <ChartArea>\n <MetricsTable\n key={tab}\n aria-label={`${NAME_HEADER[tab]} breakdown`}\n columns={columns}\n rows={rows}\n getRowKey={row => row.key}\n sort={sort}\n defaultSort={DEFAULT_SORT}\n onSortChange={onSortChange}\n onRowClick={frame.onRowClick && (row => frame.onRowClick?.(drilldownFor(tab, row)))}\n pageSize={PAGE_SIZE}\n isLoading={isLoading}\n empty={EMPTY[tab]}\n />\n {!isLoading && truncated && (\n <Txt variant=\"caption\" tone=\"muted\" className=\"pt-2\">\n Showing the {formatCount(limit)} busiest; sorting covers only these.\n </Txt>\n )}\n </ChartArea>\n </BreakdownFrame>\n );\n}\n"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_Button = require("../../../Button-YQRflC47.cjs");
2
+ const require_Button = require("../../../Button-DLcMcuUL.cjs");
3
3
  const require_icons_TraceIcon = require("../../../icons/TraceIcon.cjs.js");
4
4
  let react_jsx_runtime = require("react/jsx-runtime");
5
5
  let lucide_react = require("lucide-react");
@@ -1,4 +1,4 @@
1
- import { t as Button } from "../../../Button-Bw1e3ONi.js";
1
+ import { t as Button } from "../../../Button-CLXTbAY8.js";
2
2
  import { TraceIcon } from "../../../icons/TraceIcon.es.js";
3
3
  import { jsx } from "react/jsx-runtime";
4
4
  import { ListTreeIcon, LogsIcon, MessagesSquareIcon } from "lucide-react";
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_Button = require("../../../Button-YQRflC47.cjs");
2
+ const require_Button = require("../../../Button-DLcMcuUL.cjs");
3
3
  const require_domains_auth_components_permission_denied = require("../../auth/components/permission-denied.cjs.js");
4
4
  const require_domains_auth_components_session_expired = require("../../auth/components/session-expired.cjs.js");
5
5
  const require_MetricsCard = require("../../../MetricsCard-CEB-f2sv.cjs");
@@ -1,4 +1,4 @@
1
- import { t as Button } from "../../../Button-Bw1e3ONi.js";
1
+ import { t as Button } from "../../../Button-CLXTbAY8.js";
2
2
  import { PermissionDenied } from "../../auth/components/permission-denied.es.js";
3
3
  import { SessionExpired } from "../../auth/components/session-expired.es.js";
4
4
  import { t as MetricsCard } from "../../../MetricsCard-M8awJ2B_.js";
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_domains_metrics_hooks_use_metrics = require("../hooks/use-metrics.cjs.js");
3
- const require_DateTimeRangePicker = require("../../../DateTimeRangePicker-HmPOHwAQ.cjs");
3
+ const require_date_time_range_picker = require("../../../date-time-range-picker-CTt7Od0P.cjs");
4
4
  const require_domains_metrics_metrics_date_presets = require("../metrics-date-presets.cjs.js");
5
5
  let react = require("react");
6
6
  let react_jsx_runtime = require("react/jsx-runtime");
@@ -12,7 +12,7 @@ function DateRangeSelector() {
12
12
  presetRef.current = datePreset;
13
13
  const customRangeRef = (0, react.useRef)(customRange);
14
14
  customRangeRef.current = customRange;
15
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_DateTimeRangePicker.DateTimeRangePicker, {
15
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_date_time_range_picker.DateTimeRangePicker, {
16
16
  preset: require_domains_metrics_metrics_date_presets.toPickerPreset(datePreset),
17
17
  onPresetChange: (next) => {
18
18
  const mapped = require_domains_metrics_metrics_date_presets.fromPickerPreset(next);
@@ -1 +1 @@
1
- {"version":3,"file":"date-range-selector.cjs.js","names":["useMetrics","useRef","DateTimeRangePicker","toPickerPreset","fromPickerPreset","METRICS_PICKER_PRESETS"],"sources":["../../../../src/domains/metrics/components/date-range-selector.tsx"],"sourcesContent":["import { useRef } from 'react';\nimport { DateTimeRangePicker } from '../../../ds/components/DateTimeRangePicker';\nimport { useMetrics } from '../hooks/use-metrics';\nimport { fromPickerPreset, METRICS_PICKER_PRESETS, toPickerPreset } from '../metrics-date-presets';\n\n/** @deprecated The metrics dashboard picks its range from the filter bar. Use `MetricsTimeRangeChip`. */\nexport function DateRangeSelector() {\n const { datePreset, setDatePreset, customRange, setCustomRange } = useMetrics();\n\n // The picker reports each field separately and also fires onDateChange right\n // after a non-custom preset switch. Track the latest preset and range\n // synchronously so the guard below skips those calls and the second field\n // change still sees the first one.\n const presetRef = useRef(datePreset);\n presetRef.current = datePreset;\n const customRangeRef = useRef(customRange);\n customRangeRef.current = customRange;\n\n return (\n <DateTimeRangePicker\n preset={toPickerPreset(datePreset)}\n onPresetChange={next => {\n const mapped = fromPickerPreset(next);\n presetRef.current = mapped;\n setDatePreset(mapped);\n }}\n dateFrom={customRange?.from}\n dateTo={customRange?.to}\n onDateChange={(value, type) => {\n if (presetRef.current !== 'custom') return;\n const next = { ...customRangeRef.current, [type]: value };\n customRangeRef.current = next;\n setCustomRange(next);\n }}\n presets={METRICS_PICKER_PRESETS}\n />\n );\n}\n"],"mappings":";;;;;;;;AAMA,SAAgB,oBAAoB;CAClC,MAAM,EAAE,YAAY,eAAe,aAAa,mBAAmBA,0CAAAA,WAAW;CAM9E,MAAM,aAAA,GAAYC,MAAAA,OAAAA,CAAO,UAAU;CACnC,UAAU,UAAU;CACpB,MAAM,kBAAA,GAAiBA,MAAAA,OAAAA,CAAO,WAAW;CACzC,eAAe,UAAU;CAEzB,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,4BAAAA,qBAAD;EACE,QAAQC,6CAAAA,eAAe,UAAU;EACjC,iBAAgB,SAAQ;GACtB,MAAM,SAASC,6CAAAA,iBAAiB,IAAI;GACpC,UAAU,UAAU;GACpB,cAAc,MAAM;EACtB;EACA,UAAU,aAAa;EACvB,QAAQ,aAAa;EACrB,eAAe,OAAO,SAAS;GAC7B,IAAI,UAAU,YAAY,UAAU;GACpC,MAAM,OAAO;IAAE,GAAG,eAAe;KAAU,OAAO;GAAM;GACxD,eAAe,UAAU;GACzB,eAAe,IAAI;EACrB;EACA,SAASC,6CAAAA;CACV,CAAA;AAEL"}
1
+ {"version":3,"file":"date-range-selector.cjs.js","names":["useMetrics","useRef","DateTimeRangePicker","toPickerPreset","fromPickerPreset","METRICS_PICKER_PRESETS"],"sources":["../../../../src/domains/metrics/components/date-range-selector.tsx"],"sourcesContent":["import { useRef } from 'react';\nimport { DateTimeRangePicker } from '../../../ds/components/DateTimeRangePicker';\nimport { useMetrics } from '../hooks/use-metrics';\nimport { fromPickerPreset, METRICS_PICKER_PRESETS, toPickerPreset } from '../metrics-date-presets';\n\n/** @deprecated The metrics dashboard picks its range from the filter bar. Use `MetricsTimeRangeChip`. */\nexport function DateRangeSelector() {\n const { datePreset, setDatePreset, customRange, setCustomRange } = useMetrics();\n\n // The picker reports each field separately and also fires onDateChange right\n // after a non-custom preset switch. Track the latest preset and range\n // synchronously so the guard below skips those calls and the second field\n // change still sees the first one.\n const presetRef = useRef(datePreset);\n presetRef.current = datePreset;\n const customRangeRef = useRef(customRange);\n customRangeRef.current = customRange;\n\n return (\n <DateTimeRangePicker\n preset={toPickerPreset(datePreset)}\n onPresetChange={next => {\n const mapped = fromPickerPreset(next);\n presetRef.current = mapped;\n setDatePreset(mapped);\n }}\n dateFrom={customRange?.from}\n dateTo={customRange?.to}\n onDateChange={(value, type) => {\n if (presetRef.current !== 'custom') return;\n const next = { ...customRangeRef.current, [type]: value };\n customRangeRef.current = next;\n setCustomRange(next);\n }}\n presets={METRICS_PICKER_PRESETS}\n />\n );\n}\n"],"mappings":";;;;;;;;AAMA,SAAgB,oBAAoB;CAClC,MAAM,EAAE,YAAY,eAAe,aAAa,mBAAmBA,0CAAAA,WAAW;CAM9E,MAAM,aAAA,GAAYC,MAAAA,OAAAA,CAAO,UAAU;CACnC,UAAU,UAAU;CACpB,MAAM,kBAAA,GAAiBA,MAAAA,OAAAA,CAAO,WAAW;CACzC,eAAe,UAAU;CAEzB,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,+BAAAA,qBAAD;EACE,QAAQC,6CAAAA,eAAe,UAAU;EACjC,iBAAgB,SAAQ;GACtB,MAAM,SAASC,6CAAAA,iBAAiB,IAAI;GACpC,UAAU,UAAU;GACpB,cAAc,MAAM;EACtB;EACA,UAAU,aAAa;EACvB,QAAQ,aAAa;EACrB,eAAe,OAAO,SAAS;GAC7B,IAAI,UAAU,YAAY,UAAU;GACpC,MAAM,OAAO;IAAE,GAAG,eAAe;KAAU,OAAO;GAAM;GACxD,eAAe,UAAU;GACzB,eAAe,IAAI;EACrB;EACA,SAASC,6CAAAA;CACV,CAAA;AAEL"}
@@ -1,5 +1,5 @@
1
1
  import { useMetrics } from "../hooks/use-metrics.es.js";
2
- import { t as DateTimeRangePicker } from "../../../DateTimeRangePicker-C_Lie_2P.js";
2
+ import { t as DateTimeRangePicker } from "../../../date-time-range-picker-DKh1K9Iy.js";
3
3
  import { METRICS_PICKER_PRESETS, fromPickerPreset, toPickerPreset } from "../metrics-date-presets.es.js";
4
4
  import { useRef } from "react";
5
5
  import { jsx } from "react/jsx-runtime";
@@ -1,18 +1,18 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_domains_metrics_hooks_use_metrics = require("../hooks/use-metrics.cjs.js");
3
3
  const require_domains_metrics_metrics_date_presets = require("../metrics-date-presets.cjs.js");
4
- const require_domains_traces_components_trace_time_range_chip = require("../../traces/components/trace-time-range-chip.cjs.js");
5
4
  const require_domains_metrics_hooks_use_trace_retention_min_date = require("../hooks/use-trace-retention-min-date.cjs.js");
5
+ const require_filter_bar_time_range = require("../../../filter-bar-time-range-BA-pXMlo.cjs");
6
6
  let react_jsx_runtime = require("react/jsx-runtime");
7
7
  // src/domains/metrics/components/metrics-time-range-chip.tsx
8
8
  /**
9
- * The dashboard's date range as the filter bar's `Time` chip, the same chip the Traces page shows.
10
- * Render it from `FilterBar.Chips` for `TRACE_TIME_RANGE_ITEM`, inside a `MetricsProvider`.
9
+ * The dashboard's date range as the filter bar's time range, the same control the Traces page shows.
10
+ * Render it from `FilterBar.Chips` for `FILTER_BAR_TIME_RANGE_ITEM`, inside a `MetricsProvider`.
11
11
  */
12
12
  function MetricsTimeRangeChip() {
13
13
  const { datePreset, setDatePreset, customRange, setCustomRange } = require_domains_metrics_hooks_use_metrics.useMetrics();
14
14
  const minDate = require_domains_metrics_hooks_use_trace_retention_min_date.useTraceRetentionMinDate();
15
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_domains_traces_components_trace_time_range_chip.TraceTimeRangeChip, {
15
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_filter_bar_time_range.FilterBarTimeRange, {
16
16
  preset: require_domains_metrics_metrics_date_presets.toPickerPreset(datePreset),
17
17
  onPresetChange: (next) => setDatePreset(require_domains_metrics_metrics_date_presets.fromPickerPreset(next)),
18
18
  dateFrom: customRange?.from,
@@ -1 +1 @@
1
- {"version":3,"file":"metrics-time-range-chip.cjs.js","names":["useMetrics","useTraceRetentionMinDate","TraceTimeRangeChip","toPickerPreset","fromPickerPreset","METRICS_PICKER_PRESETS"],"sources":["../../../../src/domains/metrics/components/metrics-time-range-chip.tsx"],"sourcesContent":["import { TraceTimeRangeChip } from '../../traces/components/trace-time-range-chip';\nimport { useMetrics } from '../hooks/use-metrics';\nimport { useTraceRetentionMinDate } from '../hooks/use-trace-retention-min-date';\nimport { fromPickerPreset, METRICS_PICKER_PRESETS, toPickerPreset } from '../metrics-date-presets';\n\n/**\n * The dashboard's date range as the filter bar's `Time` chip, the same chip the Traces page shows.\n * Render it from `FilterBar.Chips` for `TRACE_TIME_RANGE_ITEM`, inside a `MetricsProvider`.\n */\nexport function MetricsTimeRangeChip() {\n const { datePreset, setDatePreset, customRange, setCustomRange } = useMetrics();\n const minDate = useTraceRetentionMinDate();\n\n return (\n <TraceTimeRangeChip\n preset={toPickerPreset(datePreset)}\n onPresetChange={next => setDatePreset(fromPickerPreset(next))}\n dateFrom={customRange?.from}\n dateTo={customRange?.to}\n // Relative presets derive their window from the preset alone; only an applied custom range\n // carries bounds, and both land in one update.\n onDateRangeChange={(from, to) => setCustomRange({ from, to })}\n presets={METRICS_PICKER_PRESETS}\n minDate={minDate}\n />\n );\n}\n"],"mappings":";;;;;;;;;;;AASA,SAAgB,uBAAuB;CACrC,MAAM,EAAE,YAAY,eAAe,aAAa,mBAAmBA,0CAAAA,WAAW;CAC9E,MAAM,UAAUC,2DAAAA,yBAAyB;CAEzC,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,wDAAAA,oBAAD;EACE,QAAQC,6CAAAA,eAAe,UAAU;EACjC,iBAAgB,SAAQ,cAAcC,6CAAAA,iBAAiB,IAAI,CAAC;EAC5D,UAAU,aAAa;EACvB,QAAQ,aAAa;EAGrB,oBAAoB,MAAM,OAAO,eAAe;GAAE;GAAM;EAAG,CAAC;EAC5D,SAASC,6CAAAA;EACA;CACV,CAAA;AAEL"}
1
+ {"version":3,"file":"metrics-time-range-chip.cjs.js","names":["useMetrics","useTraceRetentionMinDate","FilterBarTimeRange","toPickerPreset","fromPickerPreset","METRICS_PICKER_PRESETS"],"sources":["../../../../src/domains/metrics/components/metrics-time-range-chip.tsx"],"sourcesContent":["import { useMetrics } from '../hooks/use-metrics';\nimport { useTraceRetentionMinDate } from '../hooks/use-trace-retention-min-date';\nimport { fromPickerPreset, METRICS_PICKER_PRESETS, toPickerPreset } from '../metrics-date-presets';\nimport { FilterBarTimeRange } from '@/ds/components/FilterBar/filter-bar-time-range';\n\n/**\n * The dashboard's date range as the filter bar's time range, the same control the Traces page shows.\n * Render it from `FilterBar.Chips` for `FILTER_BAR_TIME_RANGE_ITEM`, inside a `MetricsProvider`.\n */\nexport function MetricsTimeRangeChip() {\n const { datePreset, setDatePreset, customRange, setCustomRange } = useMetrics();\n const minDate = useTraceRetentionMinDate();\n\n return (\n <FilterBarTimeRange\n preset={toPickerPreset(datePreset)}\n onPresetChange={next => setDatePreset(fromPickerPreset(next))}\n dateFrom={customRange?.from}\n dateTo={customRange?.to}\n // Relative presets derive their window from the preset alone; only an applied custom range\n // carries bounds, and both land in one update.\n onDateRangeChange={(from, to) => setCustomRange({ from, to })}\n presets={METRICS_PICKER_PRESETS}\n minDate={minDate}\n />\n );\n}\n"],"mappings":";;;;;;;;;;;AASA,SAAgB,uBAAuB;CACrC,MAAM,EAAE,YAAY,eAAe,aAAa,mBAAmBA,0CAAAA,WAAW;CAC9E,MAAM,UAAUC,2DAAAA,yBAAyB;CAEzC,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,8BAAAA,oBAAD;EACE,QAAQC,6CAAAA,eAAe,UAAU;EACjC,iBAAgB,SAAQ,cAAcC,6CAAAA,iBAAiB,IAAI,CAAC;EAC5D,UAAU,aAAa;EACvB,QAAQ,aAAa;EAGrB,oBAAoB,MAAM,OAAO,eAAe;GAAE;GAAM;EAAG,CAAC;EAC5D,SAASC,6CAAAA;EACA;CACV,CAAA;AAEL"}
@@ -1,17 +1,17 @@
1
1
  import { useMetrics } from "../hooks/use-metrics.es.js";
2
2
  import { METRICS_PICKER_PRESETS, fromPickerPreset, toPickerPreset } from "../metrics-date-presets.es.js";
3
- import { TraceTimeRangeChip } from "../../traces/components/trace-time-range-chip.es.js";
4
3
  import { useTraceRetentionMinDate } from "../hooks/use-trace-retention-min-date.es.js";
4
+ import { i as FilterBarTimeRange } from "../../../filter-bar-time-range-mg9JeYue.js";
5
5
  import { jsx } from "react/jsx-runtime";
6
6
  // src/domains/metrics/components/metrics-time-range-chip.tsx
7
7
  /**
8
- * The dashboard's date range as the filter bar's `Time` chip, the same chip the Traces page shows.
9
- * Render it from `FilterBar.Chips` for `TRACE_TIME_RANGE_ITEM`, inside a `MetricsProvider`.
8
+ * The dashboard's date range as the filter bar's time range, the same control the Traces page shows.
9
+ * Render it from `FilterBar.Chips` for `FILTER_BAR_TIME_RANGE_ITEM`, inside a `MetricsProvider`.
10
10
  */
11
11
  function MetricsTimeRangeChip() {
12
12
  const { datePreset, setDatePreset, customRange, setCustomRange } = useMetrics();
13
13
  const minDate = useTraceRetentionMinDate();
14
- return /* @__PURE__ */ jsx(TraceTimeRangeChip, {
14
+ return /* @__PURE__ */ jsx(FilterBarTimeRange, {
15
15
  preset: toPickerPreset(datePreset),
16
16
  onPresetChange: (next) => setDatePreset(fromPickerPreset(next)),
17
17
  dateFrom: customRange?.from,
@@ -1 +1 @@
1
- {"version":3,"file":"metrics-time-range-chip.es.js","names":[],"sources":["../../../../src/domains/metrics/components/metrics-time-range-chip.tsx"],"sourcesContent":["import { TraceTimeRangeChip } from '../../traces/components/trace-time-range-chip';\nimport { useMetrics } from '../hooks/use-metrics';\nimport { useTraceRetentionMinDate } from '../hooks/use-trace-retention-min-date';\nimport { fromPickerPreset, METRICS_PICKER_PRESETS, toPickerPreset } from '../metrics-date-presets';\n\n/**\n * The dashboard's date range as the filter bar's `Time` chip, the same chip the Traces page shows.\n * Render it from `FilterBar.Chips` for `TRACE_TIME_RANGE_ITEM`, inside a `MetricsProvider`.\n */\nexport function MetricsTimeRangeChip() {\n const { datePreset, setDatePreset, customRange, setCustomRange } = useMetrics();\n const minDate = useTraceRetentionMinDate();\n\n return (\n <TraceTimeRangeChip\n preset={toPickerPreset(datePreset)}\n onPresetChange={next => setDatePreset(fromPickerPreset(next))}\n dateFrom={customRange?.from}\n dateTo={customRange?.to}\n // Relative presets derive their window from the preset alone; only an applied custom range\n // carries bounds, and both land in one update.\n onDateRangeChange={(from, to) => setCustomRange({ from, to })}\n presets={METRICS_PICKER_PRESETS}\n minDate={minDate}\n />\n );\n}\n"],"mappings":";;;;;;;;;;AASA,SAAgB,uBAAuB;CACrC,MAAM,EAAE,YAAY,eAAe,aAAa,mBAAmB,WAAW;CAC9E,MAAM,UAAU,yBAAyB;CAEzC,OACE,oBAAC,oBAAD;EACE,QAAQ,eAAe,UAAU;EACjC,iBAAgB,SAAQ,cAAc,iBAAiB,IAAI,CAAC;EAC5D,UAAU,aAAa;EACvB,QAAQ,aAAa;EAGrB,oBAAoB,MAAM,OAAO,eAAe;GAAE;GAAM;EAAG,CAAC;EAC5D,SAAS;EACA;CACV,CAAA;AAEL"}
1
+ {"version":3,"file":"metrics-time-range-chip.es.js","names":[],"sources":["../../../../src/domains/metrics/components/metrics-time-range-chip.tsx"],"sourcesContent":["import { useMetrics } from '../hooks/use-metrics';\nimport { useTraceRetentionMinDate } from '../hooks/use-trace-retention-min-date';\nimport { fromPickerPreset, METRICS_PICKER_PRESETS, toPickerPreset } from '../metrics-date-presets';\nimport { FilterBarTimeRange } from '@/ds/components/FilterBar/filter-bar-time-range';\n\n/**\n * The dashboard's date range as the filter bar's time range, the same control the Traces page shows.\n * Render it from `FilterBar.Chips` for `FILTER_BAR_TIME_RANGE_ITEM`, inside a `MetricsProvider`.\n */\nexport function MetricsTimeRangeChip() {\n const { datePreset, setDatePreset, customRange, setCustomRange } = useMetrics();\n const minDate = useTraceRetentionMinDate();\n\n return (\n <FilterBarTimeRange\n preset={toPickerPreset(datePreset)}\n onPresetChange={next => setDatePreset(fromPickerPreset(next))}\n dateFrom={customRange?.from}\n dateTo={customRange?.to}\n // Relative presets derive their window from the preset alone; only an applied custom range\n // carries bounds, and both land in one update.\n onDateRangeChange={(from, to) => setCustomRange({ from, to })}\n presets={METRICS_PICKER_PRESETS}\n minDate={minDate}\n />\n );\n}\n"],"mappings":";;;;;;;;;;AASA,SAAgB,uBAAuB;CACrC,MAAM,EAAE,YAAY,eAAe,aAAa,mBAAmB,WAAW;CAC9E,MAAM,UAAU,yBAAyB;CAEzC,OACE,oBAAC,oBAAD;EACE,QAAQ,eAAe,UAAU;EACjC,iBAAgB,SAAQ,cAAc,iBAAiB,IAAI,CAAC;EAC5D,UAAU,aAAa;EACvB,QAAQ,aAAa;EAGrB,oBAAoB,MAAM,OAAO,eAAe;GAAE;GAAM;EAAG,CAAC;EAC5D,SAAS;EACA;CACV,CAAA;AAEL"}
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_trace_filters = require("../../trace-filters-BNEZ31HX.cjs");
2
+ const require_trace_filters = require("../../trace-filters-a0N9bf52.cjs");
3
3
  const require_domains_logs_log_filters = require("../logs/log-filters.cjs.js");
4
4
  // src/domains/metrics/drilldown.ts
5
5
  /** Map the metrics date preset (`24h`, `3d`, …) to the equivalent traces /
@@ -1,4 +1,4 @@
1
- import { C as TRACE_ROOT_ENTITY_TYPE_PARAM, T as TRACE_STATUS_PARAM, a as TRACE_DATE_FROM_PARAM, c as TRACE_DATE_TO_PARAM, d as TRACE_FILTER_GROUP_PARAM, m as TRACE_LIST_MODE_PARAM, o as TRACE_DATE_PRESET_PARAM, x as TRACE_PROPERTY_FILTER_PARAM_BY_FIELD } from "../../trace-filters-BJaebsxJ.js";
1
+ import { C as TRACE_ROOT_ENTITY_TYPE_PARAM, T as TRACE_STATUS_PARAM, a as TRACE_DATE_FROM_PARAM, c as TRACE_DATE_TO_PARAM, d as TRACE_FILTER_GROUP_PARAM, m as TRACE_LIST_MODE_PARAM, o as TRACE_DATE_PRESET_PARAM, x as TRACE_PROPERTY_FILTER_PARAM_BY_FIELD } from "../../trace-filters-CaWkw779.js";
2
2
  import { LOGS_DATE_FROM_PARAM, LOGS_DATE_PRESET_PARAM, LOGS_DATE_TO_PARAM, LOGS_PROPERTY_FILTER_PARAM_BY_FIELD, LOGS_ROOT_ENTITY_TYPE_PARAM } from "../logs/log-filters.es.js";
3
3
  // src/domains/metrics/drilldown.ts
4
4
  /** Map the metrics date preset (`24h`, `3d`, …) to the equivalent traces /
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_trace_filters = require("../../trace-filters-BNEZ31HX.cjs");
2
+ const require_trace_filters = require("../../trace-filters-a0N9bf52.cjs");
3
3
  let lucide_react = require("lucide-react");
4
4
  // src/domains/metrics/metrics-filters.ts
5
5
  /** Primitive type options — matches the traces filter vocabulary. */
@@ -1,4 +1,4 @@
1
- import { Q as traceFilterFieldIcon, Z as traceFilterFieldColor } from "../../trace-filters-BJaebsxJ.js";
1
+ import { Q as traceFilterFieldIcon, Z as traceFilterFieldColor } from "../../trace-filters-CaWkw779.js";
2
2
  import { CloudIcon, CpuIcon } from "lucide-react";
3
3
  // src/domains/metrics/metrics-filters.ts
4
4
  /** Primitive type options — matches the traces filter vocabulary. */
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_trace_filters = require("../../../trace-filters-BNEZ31HX.cjs");
2
+ const require_trace_filters = require("../../../trace-filters-a0N9bf52.cjs");
3
3
  const require_domains_traces_components_traces_explorer_traces_explorer_actions = require("../../traces/components/traces-explorer/traces-explorer-actions.cjs.js");
4
4
  const require_domains_observability_observability_list_url_state = require("../observability-list-url-state.cjs.js");
5
5
  const require_domains_observability_list_polling = require("../list-polling.cjs.js");
@@ -1,4 +1,4 @@
1
- import { ft as resolveTraceQueryTimeRange } from "../../../trace-filters-BJaebsxJ.js";
1
+ import { ft as resolveTraceQueryTimeRange } from "../../../trace-filters-CaWkw779.js";
2
2
  import { resolveTracesDateWindow } from "../../traces/components/traces-explorer/traces-explorer-actions.es.js";
3
3
  import { OBSERVABILITY_LIST_DEFAULT_DATE_PRESET, OBSERVABILITY_LIST_SORT_FIELDS, readObservabilityListDates, readObservabilityListFilters, readObservabilityListSort, writeObservabilityListDates, writeObservabilityListFilters, writeObservabilityListSort } from "../observability-list-url-state.es.js";
4
4
  import { recoveryRefetchInterval } from "../list-polling.es.js";