@mastra/playground-ui 63.0.1-alpha.0 → 63.1.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 (419) hide show
  1. package/dist/{alert-dialog-DVAC9zdj.js → alert-dialog-Cpx4g1sS.js} +2 -2
  2. package/dist/{alert-dialog-DVAC9zdj.js.map → alert-dialog-Cpx4g1sS.js.map} +1 -1
  3. package/dist/{alert-dialog-C-ODvRWT.cjs → alert-dialog-Djojjgjo.cjs} +2 -2
  4. package/dist/{alert-dialog-C-ODvRWT.cjs.map → alert-dialog-Djojjgjo.cjs.map} +1 -1
  5. package/dist/{code-block-vvYFcnqm.js → code-block-BzUcNWrb.js} +2 -2
  6. package/dist/{code-block-vvYFcnqm.js.map → code-block-BzUcNWrb.js.map} +1 -1
  7. package/dist/{code-block-BuGosknt.cjs → code-block-CKLCdWtP.cjs} +2 -2
  8. package/dist/{code-block-BuGosknt.cjs.map → code-block-CKLCdWtP.cjs.map} +1 -1
  9. package/dist/{combobox-fEMKH9nJ.cjs → combobox-CdTP_FZ0.cjs} +9 -2
  10. package/dist/combobox-CdTP_FZ0.cjs.map +1 -0
  11. package/dist/{combobox-so2V71F7.js → combobox-CeYDCkXk.js} +9 -2
  12. package/dist/combobox-CeYDCkXk.js.map +1 -0
  13. package/dist/{command-B_C36ppQ.cjs → command-CSl9Mfrp.cjs} +3 -3
  14. package/dist/{command-B_C36ppQ.cjs.map → command-CSl9Mfrp.cjs.map} +1 -1
  15. package/dist/{command-DMqzDhzs.js → command-DQAGSkdK.js} +3 -3
  16. package/dist/{command-DMqzDhzs.js.map → command-DQAGSkdK.js.map} +1 -1
  17. package/dist/components/AlertDialog.cjs.js +1 -1
  18. package/dist/components/AlertDialog.es.js +1 -1
  19. package/dist/components/CodeBlock.cjs.js +1 -1
  20. package/dist/components/CodeBlock.es.js +1 -1
  21. package/dist/components/Combobox.cjs.js +1 -1
  22. package/dist/components/Combobox.es.js +1 -1
  23. package/dist/components/Command.cjs.js +1 -1
  24. package/dist/components/Command.es.js +1 -1
  25. package/dist/components/CommandPalette.cjs.js +2 -2
  26. package/dist/components/CommandPalette.es.js +2 -2
  27. package/dist/components/Comment.cjs.js +1 -1
  28. package/dist/components/Comment.es.js +1 -1
  29. package/dist/components/Composer.cjs.js +2 -2
  30. package/dist/components/Composer.es.js +2 -2
  31. package/dist/components/DataCodeSection.cjs.js +1 -1
  32. package/dist/components/DataCodeSection.es.js +1 -1
  33. package/dist/components/DataList.cjs.js +3 -3
  34. package/dist/components/DataList.es.js +4 -4
  35. package/dist/components/DataPanel.cjs.js +1 -1
  36. package/dist/components/DataPanel.es.js +1 -1
  37. package/dist/components/DateTimeRangePicker.cjs.js +1 -1
  38. package/dist/components/DateTimeRangePicker.es.js +1 -1
  39. package/dist/components/Dialog.cjs.js +2 -2
  40. package/dist/components/Dialog.es.js +2 -2
  41. package/dist/components/DropdownMenu.cjs.js +1 -1
  42. package/dist/components/DropdownMenu.es.js +1 -1
  43. package/dist/components/EnvironmentVariablesEditor.cjs.js +2 -2
  44. package/dist/components/EnvironmentVariablesEditor.es.js +2 -2
  45. package/dist/components/InputGroup.cjs.js +1 -1
  46. package/dist/components/InputGroup.es.js +1 -1
  47. package/dist/components/InputNumber.cjs.js +1 -1
  48. package/dist/components/InputNumber.es.js +1 -1
  49. package/dist/components/ListSearch.cjs.js +1 -1
  50. package/dist/components/ListSearch.es.js +1 -1
  51. package/dist/components/LogsDataList.cjs.js +3 -3
  52. package/dist/components/LogsDataList.es.js +3 -3
  53. package/dist/components/MarkdownRenderer.cjs.js +1 -1
  54. package/dist/components/MarkdownRenderer.es.js +1 -1
  55. package/dist/components/MetricsCard.cjs.js +1 -1
  56. package/dist/components/MetricsCard.es.js +1 -1
  57. package/dist/components/PageLayout.cjs.js +11 -8
  58. package/dist/components/PageLayout.cjs.js.map +1 -1
  59. package/dist/components/PageLayout.es.js +11 -8
  60. package/dist/components/PageLayout.es.js.map +1 -1
  61. package/dist/components/PropertyFilter.cjs.js +2 -2
  62. package/dist/components/PropertyFilter.es.js +3 -3
  63. package/dist/components/SavedViews.cjs.js +1 -1
  64. package/dist/components/SavedViews.es.js +1 -1
  65. package/dist/components/ScrollArea.cjs.js +1 -1
  66. package/dist/components/ScrollArea.es.js +1 -1
  67. package/dist/components/SearchInput.cjs.js +1 -1
  68. package/dist/components/SearchInput.es.js +1 -1
  69. package/dist/components/Sidebar.cjs.js +3 -3
  70. package/dist/components/Sidebar.es.js +3 -3
  71. package/dist/components/Tabs.cjs.js +1 -1
  72. package/dist/components/Tabs.es.js +1 -1
  73. package/dist/components/ThreadRail.cjs.js +1 -1
  74. package/dist/components/ThreadRail.es.js +1 -1
  75. package/dist/components/Workflow.cjs.js +3 -3
  76. package/dist/components/Workflow.es.js +3 -3
  77. package/dist/components/ai/activity.cjs.js +1 -1
  78. package/dist/components/ai/activity.es.js +1 -1
  79. package/dist/components/ai/plan.cjs.js +1 -1
  80. package/dist/components/ai/plan.es.js +1 -1
  81. package/dist/components/ai/task-list.cjs.js +1 -1
  82. package/dist/components/ai/task-list.es.js +1 -1
  83. package/dist/components/ai/tool-approval.cjs.js +1 -1
  84. package/dist/components/ai/tool-approval.es.js +1 -1
  85. package/dist/components/ai/tool-call.cjs.js +2 -2
  86. package/dist/components/ai/tool-call.es.js +2 -2
  87. package/dist/{composer-CxmOOUX8.js → composer-B0i1WZgt.js} +2 -2
  88. package/dist/{composer-CxmOOUX8.js.map → composer-B0i1WZgt.js.map} +1 -1
  89. package/dist/{composer-Cg5bXN1r.cjs → composer-DJsfHivH.cjs} +2 -2
  90. package/dist/{composer-Cg5bXN1r.cjs.map → composer-DJsfHivH.cjs.map} +1 -1
  91. package/dist/{data-code-section-Bs8sHDux.cjs → data-code-section-BB2RWius.cjs} +3 -3
  92. package/dist/{data-code-section-Bs8sHDux.cjs.map → data-code-section-BB2RWius.cjs.map} +1 -1
  93. package/dist/{data-code-section-CqdjmClK.js → data-code-section-DsU-ubVW.js} +3 -3
  94. package/dist/{data-code-section-CqdjmClK.js.map → data-code-section-DsU-ubVW.js.map} +1 -1
  95. package/dist/{data-list-BLfHObw8.cjs → data-list-2svaWtkq.cjs} +2 -2
  96. package/dist/{data-list-BLfHObw8.cjs.map → data-list-2svaWtkq.cjs.map} +1 -1
  97. package/dist/{data-list-B2ArWwsJ.js → data-list-BbOYiz4B.js} +2 -2
  98. package/dist/{data-list-B2ArWwsJ.js.map → data-list-BbOYiz4B.js.map} +1 -1
  99. package/dist/{data-list-skeleton-BGJD4qMF.cjs → data-list-skeleton-C-j6Sf0F.cjs} +2 -2
  100. package/dist/{data-list-skeleton-BGJD4qMF.cjs.map → data-list-skeleton-C-j6Sf0F.cjs.map} +1 -1
  101. package/dist/{data-list-skeleton-BNsWWamC.js → data-list-skeleton-C9Zm5XMX.js} +2 -2
  102. package/dist/{data-list-skeleton-BNsWWamC.js.map → data-list-skeleton-C9Zm5XMX.js.map} +1 -1
  103. package/dist/{data-panel-Wjgbl6zx.cjs → data-panel-CtFwwsPs.cjs} +2 -2
  104. package/dist/{data-panel-Wjgbl6zx.cjs.map → data-panel-CtFwwsPs.cjs.map} +1 -1
  105. package/dist/{data-panel-BdCw3F_h.js → data-panel-CwIdwpov.js} +2 -2
  106. package/dist/{data-panel-BdCw3F_h.js.map → data-panel-CwIdwpov.js.map} +1 -1
  107. package/dist/{date-time-range-picker-SU1Q1h1h.js → date-time-range-picker-BT9qan60.js} +2 -2
  108. package/dist/{date-time-range-picker-SU1Q1h1h.js.map → date-time-range-picker-BT9qan60.js.map} +1 -1
  109. package/dist/{date-time-range-picker-ByNvjYuV.cjs → date-time-range-picker-DQa5XLST.cjs} +2 -2
  110. package/dist/{date-time-range-picker-ByNvjYuV.cjs.map → date-time-range-picker-DQa5XLST.cjs.map} +1 -1
  111. package/dist/{dialog-B5nLi0ER.cjs → dialog-BAlSUqcF.cjs} +2 -2
  112. package/dist/{dialog-B5nLi0ER.cjs.map → dialog-BAlSUqcF.cjs.map} +1 -1
  113. package/dist/{dialog-Jz2ZfO-z.js → dialog-CboDo8Pj.js} +2 -2
  114. package/dist/{dialog-Jz2ZfO-z.js.map → dialog-CboDo8Pj.js.map} +1 -1
  115. package/dist/{dialog-action-DdkbsKfP.cjs → dialog-action-DWE9XalB.cjs} +2 -2
  116. package/dist/{dialog-action-DdkbsKfP.cjs.map → dialog-action-DWE9XalB.cjs.map} +1 -1
  117. package/dist/{dialog-action-BxXhAz-P.js → dialog-action-DpctEQ9l.js} +2 -2
  118. package/dist/{dialog-action-BxXhAz-P.js.map → dialog-action-DpctEQ9l.js.map} +1 -1
  119. package/dist/domains/chat/attachments/attachment-preview-dialog.cjs.js +1 -1
  120. package/dist/domains/chat/attachments/attachment-preview-dialog.es.js +1 -1
  121. package/dist/domains/chat/attachments/composer-attachment-list.cjs.js +2 -2
  122. package/dist/domains/chat/attachments/composer-attachment-list.es.js +2 -2
  123. package/dist/domains/chat/components/network-choice-metadata-dialog.cjs.js +1 -1
  124. package/dist/domains/chat/components/network-choice-metadata-dialog.es.js +1 -1
  125. package/dist/domains/chat/messages/dataset-save-action.cjs.js +2 -2
  126. package/dist/domains/chat/messages/dataset-save-action.es.js +2 -2
  127. package/dist/domains/chat/messages/message-row.cjs.js +1 -1
  128. package/dist/domains/chat/messages/message-row.es.js +1 -1
  129. package/dist/domains/chat/messages/renderers/message-text.cjs.js +1 -1
  130. package/dist/domains/chat/messages/renderers/message-text.es.js +1 -1
  131. package/dist/domains/chat/messages/renderers/reasoning-part-renderer.cjs.js +1 -1
  132. package/dist/domains/chat/messages/renderers/reasoning-part-renderer.es.js +1 -1
  133. package/dist/domains/chat/messages/skill-message.cjs.js +2 -2
  134. package/dist/domains/chat/messages/skill-message.es.js +2 -2
  135. package/dist/domains/chat/tools/badges/background-task-metadata-dialog.cjs.js +1 -1
  136. package/dist/domains/chat/tools/badges/background-task-metadata-dialog.es.js +1 -1
  137. package/dist/domains/chat/tools/badges/code-mode-badge.cjs.js +1 -1
  138. package/dist/domains/chat/tools/badges/code-mode-badge.es.js +1 -1
  139. package/dist/domains/chat/tools/badges/file-tree-badge.cjs.js +1 -1
  140. package/dist/domains/chat/tools/badges/file-tree-badge.es.js +1 -1
  141. package/dist/domains/chat/tools/badges/observation-marker-details.cjs.js +1 -1
  142. package/dist/domains/chat/tools/badges/observation-marker-details.es.js +1 -1
  143. package/dist/domains/chat/tools/badges/observation-renderer.cjs.js +1 -1
  144. package/dist/domains/chat/tools/badges/observation-renderer.es.js +1 -1
  145. package/dist/domains/chat/tools/badges/tool-approval-badge.cjs.js +1 -1
  146. package/dist/domains/chat/tools/badges/tool-approval-badge.es.js +1 -1
  147. package/dist/domains/chat/tools/badges/tool-badge.cjs.js +1 -1
  148. package/dist/domains/chat/tools/badges/tool-badge.es.js +1 -1
  149. package/dist/domains/chat/tools/badges/workflow-badge.cjs.js +1 -2
  150. package/dist/domains/chat/tools/badges/workflow-badge.cjs.js.map +1 -1
  151. package/dist/domains/chat/tools/badges/workflow-badge.es.js +1 -2
  152. package/dist/domains/chat/tools/badges/workflow-badge.es.js.map +1 -1
  153. package/dist/domains/chat/tools/submit-plan-tool.cjs.js +1 -1
  154. package/dist/domains/chat/tools/submit-plan-tool.es.js +1 -1
  155. package/dist/domains/logs/components/log-data-panel.cjs.js +1 -1
  156. package/dist/domains/logs/components/log-data-panel.es.js +1 -1
  157. package/dist/domains/logs/components/logs-list-view.cjs.js +3 -3
  158. package/dist/domains/logs/components/logs-list-view.es.js +3 -3
  159. package/dist/domains/logs/components/logs-toolbar.cjs.js +1 -1
  160. package/dist/domains/logs/components/logs-toolbar.es.js +1 -1
  161. package/dist/domains/metrics/components/agent-runs-card.cjs.js +1 -1
  162. package/dist/domains/metrics/components/agent-runs-card.es.js +1 -1
  163. package/dist/domains/metrics/components/chart-area.cjs.js +1 -1
  164. package/dist/domains/metrics/components/chart-area.es.js +1 -1
  165. package/dist/domains/metrics/components/chart-card-error.cjs.js +1 -1
  166. package/dist/domains/metrics/components/chart-card-error.es.js +1 -1
  167. package/dist/domains/metrics/components/chart-card.cjs.js +1 -1
  168. package/dist/domains/metrics/components/chart-card.es.js +1 -1
  169. package/dist/domains/metrics/components/date-range-selector.cjs.js +5 -44
  170. package/dist/domains/metrics/components/date-range-selector.cjs.js.map +1 -1
  171. package/dist/domains/metrics/components/date-range-selector.es.js +3 -42
  172. package/dist/domains/metrics/components/date-range-selector.es.js.map +1 -1
  173. package/dist/domains/metrics/components/failure-rate-card.cjs.js +1 -1
  174. package/dist/domains/metrics/components/failure-rate-card.es.js +1 -1
  175. package/dist/domains/metrics/components/latency-card.cjs.js +1 -1
  176. package/dist/domains/metrics/components/latency-card.es.js +1 -1
  177. package/dist/domains/metrics/components/metrics-time-range-chip.cjs.js +26 -0
  178. package/dist/domains/metrics/components/metrics-time-range-chip.cjs.js.map +1 -0
  179. package/dist/domains/metrics/components/metrics-time-range-chip.d.ts +2 -0
  180. package/dist/domains/metrics/components/metrics-time-range-chip.es.js +22 -0
  181. package/dist/domains/metrics/components/metrics-time-range-chip.es.js.map +1 -0
  182. package/dist/domains/metrics/components/scores-card.cjs.js +1 -1
  183. package/dist/domains/metrics/components/scores-card.es.js +1 -1
  184. package/dist/domains/metrics/components/token-usage-card.cjs.js +1 -1
  185. package/dist/domains/metrics/components/token-usage-card.es.js +1 -1
  186. package/dist/domains/metrics/components/trace-volume-card.cjs.js +1 -1
  187. package/dist/domains/metrics/components/trace-volume-card.es.js +1 -1
  188. package/dist/domains/metrics/components/usage-card.cjs.js +1 -1
  189. package/dist/domains/metrics/components/usage-card.es.js +1 -1
  190. package/dist/domains/metrics/components.cjs.js +2 -0
  191. package/dist/domains/metrics/components.cjs.js.map +1 -1
  192. package/dist/domains/metrics/components.es.js +1 -0
  193. package/dist/domains/metrics/components.es.js.map +1 -1
  194. package/dist/domains/metrics/hooks.cjs.js +4 -0
  195. package/dist/domains/metrics/hooks.cjs.js.map +1 -1
  196. package/dist/domains/metrics/hooks.es.js +1 -1
  197. package/dist/domains/metrics/metrics-date-presets.cjs.js +49 -0
  198. package/dist/domains/metrics/metrics-date-presets.cjs.js.map +1 -0
  199. package/dist/domains/metrics/metrics-date-presets.d.ts +2 -0
  200. package/dist/domains/metrics/metrics-date-presets.es.js +43 -0
  201. package/dist/domains/metrics/metrics-date-presets.es.js.map +1 -0
  202. package/dist/domains/metrics/metrics-filters.cjs.js +94 -0
  203. package/dist/domains/metrics/metrics-filters.cjs.js.map +1 -1
  204. package/dist/domains/metrics/metrics-filters.es.js +91 -1
  205. package/dist/domains/metrics/metrics-filters.es.js.map +1 -1
  206. package/dist/domains/metrics.cjs.js +6 -0
  207. package/dist/domains/metrics.cjs.js.map +1 -1
  208. package/dist/domains/metrics.es.js +2 -1
  209. package/dist/domains/metrics.es.js.map +1 -1
  210. package/dist/domains/scores/components/score-data-panel.cjs.js +1 -1
  211. package/dist/domains/scores/components/score-data-panel.es.js +1 -1
  212. package/dist/domains/scores/components/span-scoring.cjs.js +3 -3
  213. package/dist/domains/scores/components/span-scoring.es.js +3 -3
  214. package/dist/domains/scores/components/trace-scores-tab.cjs.js +1 -1
  215. package/dist/domains/scores/components/trace-scores-tab.es.js +1 -1
  216. package/dist/domains/traces/components/feedback-thread.cjs.js +3 -3
  217. package/dist/domains/traces/components/feedback-thread.es.js +3 -3
  218. package/dist/domains/traces/components/span-data-panel-view.cjs.js +2 -2
  219. package/dist/domains/traces/components/span-data-panel-view.es.js +2 -2
  220. package/dist/domains/traces/components/span-payload/span-error-renderer.cjs.js +1 -1
  221. package/dist/domains/traces/components/span-payload/span-error-renderer.es.js +1 -1
  222. package/dist/domains/traces/components/span-payload/span-input-renderers.cjs.js +1 -1
  223. package/dist/domains/traces/components/span-payload/span-input-renderers.es.js +1 -1
  224. package/dist/domains/traces/components/span-payload/span-output-renderers.cjs.js +2 -2
  225. package/dist/domains/traces/components/span-payload/span-output-renderers.es.js +2 -2
  226. package/dist/domains/traces/components/span-payload/span-payload-messages.cjs.js +2 -2
  227. package/dist/domains/traces/components/span-payload/span-payload-messages.es.js +2 -2
  228. package/dist/domains/traces/components/span-payload/span-payload-primitives.cjs.js +2 -2
  229. package/dist/domains/traces/components/span-payload/span-payload-primitives.es.js +2 -2
  230. package/dist/domains/traces/components/span-payload/span-payload-processor.cjs.js +1 -1
  231. package/dist/domains/traces/components/span-payload/span-payload-processor.es.js +1 -1
  232. package/dist/domains/traces/components/span-payload/span-payload-tool.cjs.js +1 -1
  233. package/dist/domains/traces/components/span-payload/span-payload-tool.es.js +1 -1
  234. package/dist/domains/traces/components/span-payload/span-processor-attributes.cjs.js +1 -1
  235. package/dist/domains/traces/components/span-payload/span-processor-attributes.es.js +1 -1
  236. package/dist/domains/traces/components/span-summary-description.cjs.js +1 -1
  237. package/dist/domains/traces/components/span-summary-description.es.js +1 -1
  238. package/dist/domains/traces/components/thread-trace/thread-trace-details.cjs.js +1 -1
  239. package/dist/domains/traces/components/thread-trace/thread-trace-details.es.js +1 -1
  240. package/dist/domains/traces/components/thread-trace/thread-trace-messages.cjs.js +1 -1
  241. package/dist/domains/traces/components/thread-trace/thread-trace-messages.es.js +1 -1
  242. package/dist/domains/traces/components/thread-view-by-trace.cjs.js +0 -1
  243. package/dist/domains/traces/components/thread-view-by-trace.cjs.js.map +1 -1
  244. package/dist/domains/traces/components/thread-view-by-trace.es.js +0 -1
  245. package/dist/domains/traces/components/thread-view-by-trace.es.js.map +1 -1
  246. package/dist/domains/traces/components/trace-columns-menu.cjs.js +4 -4
  247. package/dist/domains/traces/components/trace-columns-menu.es.js +4 -4
  248. package/dist/domains/traces/components/trace-data-panel-view.cjs.js +4 -4
  249. package/dist/domains/traces/components/trace-data-panel-view.es.js +4 -4
  250. package/dist/domains/traces/components/trace-data-panel.cjs.js +2 -3
  251. package/dist/domains/traces/components/trace-data-panel.cjs.js.map +1 -1
  252. package/dist/domains/traces/components/trace-data-panel.es.js +2 -3
  253. package/dist/domains/traces/components/trace-data-panel.es.js.map +1 -1
  254. package/dist/domains/traces/components/trace-id-button.cjs.js +1 -1
  255. package/dist/domains/traces/components/trace-id-button.es.js +1 -1
  256. package/dist/domains/traces/components/trace-summary-description.cjs.js +1 -1
  257. package/dist/domains/traces/components/trace-summary-description.es.js +1 -1
  258. package/dist/domains/traces/components/trace-thread-panel.cjs.js +1 -1
  259. package/dist/domains/traces/components/trace-thread-panel.es.js +1 -1
  260. package/dist/domains/traces/components/trace-time-range-chip.cjs.js +1 -1
  261. package/dist/domains/traces/components/trace-time-range-chip.es.js +1 -1
  262. package/dist/domains/traces/components/traces-list-mode-toggle.cjs.js +1 -1
  263. package/dist/domains/traces/components/traces-list-mode-toggle.es.js +1 -1
  264. package/dist/domains/traces/components/traces-list-view.cjs.js +4 -4
  265. package/dist/domains/traces/components/traces-list-view.es.js +4 -4
  266. package/dist/domains/traces/components/traces-page-skeleton.cjs.js +2 -2
  267. package/dist/domains/traces/components/traces-page-skeleton.es.js +2 -2
  268. package/dist/domains/workflows/components/workflow-combobox.cjs.js +1 -1
  269. package/dist/domains/workflows/components/workflow-combobox.es.js +1 -1
  270. package/dist/domains/workflows/components/workflow-information.cjs.js +1 -1
  271. package/dist/domains/workflows/components/workflow-information.es.js +1 -1
  272. package/dist/domains/workflows/components/workflows-list/workflows-list.cjs.js +2 -2
  273. package/dist/domains/workflows/components/workflows-list/workflows-list.es.js +2 -2
  274. package/dist/domains/workflows/runs/workflow-run-list.cjs.js +2 -2
  275. package/dist/domains/workflows/runs/workflow-run-list.es.js +2 -2
  276. package/dist/domains/workflows/workflow/data/workflow-data-button.cjs.js +1 -1
  277. package/dist/domains/workflows/workflow/data/workflow-data-button.es.js +1 -1
  278. package/dist/domains/workflows/workflow/workflow-data-edge.cjs.js +1 -1
  279. package/dist/domains/workflows/workflow/workflow-data-edge.es.js +1 -1
  280. package/dist/domains/workflows/workflow/workflow-map-config-dialog.cjs.js +1 -1
  281. package/dist/domains/workflows/workflow/workflow-map-config-dialog.es.js +1 -1
  282. package/dist/domains/workflows/workflow/workflow-run-data.cjs.js +1 -1
  283. package/dist/domains/workflows/workflow/workflow-run-data.es.js +1 -1
  284. package/dist/domains/workflows/workflow/workflow-step-action-bar.cjs.js +2 -2
  285. package/dist/domains/workflows/workflow/workflow-step-action-bar.es.js +2 -2
  286. package/dist/domains/workflows/workflow/workflow-trigger.cjs.js +1 -1
  287. package/dist/domains/workflows/workflow/workflow-trigger.es.js +1 -1
  288. package/dist/domains/workspace/components/workspace-active-file.cjs.js +1 -1
  289. package/dist/domains/workspace/components/workspace-active-file.es.js +1 -1
  290. package/dist/domains/workspace/components/workspace-add-skill-dialog.cjs.js +5 -5
  291. package/dist/domains/workspace/components/workspace-add-skill-dialog.es.js +5 -5
  292. package/dist/domains/workspace/components/workspace-create-directory.cjs.js +1 -1
  293. package/dist/domains/workspace/components/workspace-create-directory.es.js +1 -1
  294. package/dist/domains/workspace/components/workspace-markdown-preview.cjs.js +2 -2
  295. package/dist/domains/workspace/components/workspace-markdown-preview.es.js +2 -2
  296. package/dist/domains/workspace/components/workspace-parts.cjs.js +1 -1
  297. package/dist/domains/workspace/components/workspace-parts.es.js +1 -1
  298. package/dist/domains/workspace/components/workspace-tree.cjs.js +1 -1
  299. package/dist/domains/workspace/components/workspace-tree.es.js +1 -1
  300. package/dist/{dropdown-menu-D8GR_NhL.js → dropdown-menu-C6VtAiYJ.js} +43 -4
  301. package/dist/dropdown-menu-C6VtAiYJ.js.map +1 -0
  302. package/dist/{dropdown-menu-Bg96BCnK.cjs → dropdown-menu-dHvHFLji.cjs} +42 -3
  303. package/dist/dropdown-menu-dHvHFLji.cjs.map +1 -0
  304. package/dist/ee/signals/components/entity-index-compact-grid.cjs.js +1 -1
  305. package/dist/ee/signals/components/entity-index-compact-grid.es.js +1 -1
  306. package/dist/ee/signals/components/entity-index-list.cjs.js +1 -1
  307. package/dist/ee/signals/components/entity-index-list.es.js +1 -1
  308. package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js +3 -3
  309. package/dist/ee/signals/components/trace-intelligence-entity-index.es.js +3 -3
  310. package/dist/ee/signals/sankey-signals.cjs.js +1 -1
  311. package/dist/ee/signals/sankey-signals.es.js +1 -1
  312. package/dist/ee/signals/settings/signal-definition-form-dialog.cjs.js +2 -2
  313. package/dist/ee/signals/settings/signal-definition-form-dialog.es.js +2 -2
  314. package/dist/ee/topics/components/topic-trace-summary-list.cjs.js +2 -2
  315. package/dist/ee/topics/components/topic-trace-summary-list.es.js +2 -2
  316. package/dist/{input-group-DQuyC9Pz.cjs → input-group-Bj2RbkNg.cjs} +20 -3
  317. package/dist/input-group-Bj2RbkNg.cjs.map +1 -0
  318. package/dist/{input-group-CIIwoggO.js → input-group-CrumkDCF.js} +20 -3
  319. package/dist/input-group-CrumkDCF.js.map +1 -0
  320. package/dist/layout/tabbed-container.cjs.js +4 -4
  321. package/dist/layout/tabbed-container.es.js +4 -4
  322. package/dist/{list-search-Cwp-OPvC.js → list-search-C7ro2_qL.js} +2 -2
  323. package/dist/{list-search-Cwp-OPvC.js.map → list-search-C7ro2_qL.js.map} +1 -1
  324. package/dist/{list-search-C5j3HYkb.cjs → list-search-Y3z6P6IO.cjs} +2 -2
  325. package/dist/{list-search-C5j3HYkb.cjs.map → list-search-Y3z6P6IO.cjs.map} +1 -1
  326. package/dist/{logs-data-list-B-gmgU74.js → logs-data-list-0_z4s0Sj.js} +2 -2
  327. package/dist/{logs-data-list-B-gmgU74.js.map → logs-data-list-0_z4s0Sj.js.map} +1 -1
  328. package/dist/{logs-data-list-CaXnNnC5.cjs → logs-data-list-D4sVbF23.cjs} +2 -2
  329. package/dist/{logs-data-list-CaXnNnC5.cjs.map → logs-data-list-D4sVbF23.cjs.map} +1 -1
  330. package/dist/{markdown-renderer-BXTNiZbz.cjs → markdown-renderer-BRu3RpQD.cjs} +3 -3
  331. package/dist/{markdown-renderer-BXTNiZbz.cjs.map → markdown-renderer-BRu3RpQD.cjs.map} +1 -1
  332. package/dist/{markdown-renderer-Ct-q_KTF.js → markdown-renderer-WesDzhMr.js} +3 -3
  333. package/dist/{markdown-renderer-Ct-q_KTF.js.map → markdown-renderer-WesDzhMr.js.map} +1 -1
  334. package/dist/{metrics-card-C33VsuXf.js → metrics-card-BI5okAsj.js} +2 -2
  335. package/dist/{metrics-card-C33VsuXf.js.map → metrics-card-BI5okAsj.js.map} +1 -1
  336. package/dist/{metrics-card-CxOVpP1t.cjs → metrics-card-CcesVPLN.cjs} +2 -2
  337. package/dist/{metrics-card-CxOVpP1t.cjs.map → metrics-card-CcesVPLN.cjs.map} +1 -1
  338. package/dist/{plan-TXWANP1R.js → plan-CBiLa54G.js} +2 -2
  339. package/dist/{plan-TXWANP1R.js.map → plan-CBiLa54G.js.map} +1 -1
  340. package/dist/{plan-CL-lbDuy.cjs → plan-ColU7p3H.cjs} +2 -2
  341. package/dist/{plan-CL-lbDuy.cjs.map → plan-ColU7p3H.cjs.map} +1 -1
  342. package/dist/primitives/menu-item.cjs.js +2 -0
  343. package/dist/primitives/menu-item.cjs.js.map +1 -1
  344. package/dist/primitives/menu-item.es.js +2 -1
  345. package/dist/primitives/menu-item.es.js.map +1 -1
  346. package/dist/{property-filter-applied-Ru3OQoGo.js → property-filter-applied-BCeGn2zQ.js} +2 -2
  347. package/dist/{property-filter-applied-Ru3OQoGo.js.map → property-filter-applied-BCeGn2zQ.js.map} +1 -1
  348. package/dist/{property-filter-applied-BBvaTC4B.cjs → property-filter-applied-CpelyBH9.cjs} +2 -2
  349. package/dist/{property-filter-applied-BBvaTC4B.cjs.map → property-filter-applied-CpelyBH9.cjs.map} +1 -1
  350. package/dist/{reasoning-activity-CFEaSv4J.cjs → reasoning-activity-B8bR8ib_.cjs} +2 -2
  351. package/dist/{reasoning-activity-CFEaSv4J.cjs.map → reasoning-activity-B8bR8ib_.cjs.map} +1 -1
  352. package/dist/{reasoning-activity-CHlEe011.js → reasoning-activity-DLrXgE9k.js} +2 -2
  353. package/dist/{reasoning-activity-CHlEe011.js.map → reasoning-activity-DLrXgE9k.js.map} +1 -1
  354. package/dist/{scroll-area-CVgjRzTS.cjs → scroll-area-BakRKj2k.cjs} +3 -3
  355. package/dist/scroll-area-BakRKj2k.cjs.map +1 -0
  356. package/dist/{scroll-area-BywIlj3F.js → scroll-area-D6gKFavi.js} +3 -3
  357. package/dist/scroll-area-D6gKFavi.js.map +1 -0
  358. package/dist/{search-input-RybUdqzg.js → search-input-BEAKPGH8.js} +2 -2
  359. package/dist/{search-input-RybUdqzg.js.map → search-input-BEAKPGH8.js.map} +1 -1
  360. package/dist/{search-input-2DhcUIvn.cjs → search-input-DdRhkYqy.cjs} +2 -2
  361. package/dist/{search-input-2DhcUIvn.cjs.map → search-input-DdRhkYqy.cjs.map} +1 -1
  362. package/dist/{span-payload-primitives-DIxmotnO.cjs → span-payload-primitives-BymKsUAo.cjs} +2 -2
  363. package/dist/{span-payload-primitives-DIxmotnO.cjs.map → span-payload-primitives-BymKsUAo.cjs.map} +1 -1
  364. package/dist/{span-payload-primitives-dTs5UrjA.js → span-payload-primitives-DBNNkmHo.js} +2 -2
  365. package/dist/{span-payload-primitives-dTs5UrjA.js.map → span-payload-primitives-DBNNkmHo.js.map} +1 -1
  366. package/dist/src/domains/metrics/components/date-range-selector.d.ts +1 -0
  367. package/dist/src/domains/metrics/components/index.d.ts +1 -0
  368. package/dist/src/domains/metrics/components/metrics-time-range-chip.d.ts +5 -0
  369. package/dist/src/domains/metrics/hooks/index.d.ts +1 -1
  370. package/dist/src/domains/metrics/metrics-date-presets.d.ts +6 -0
  371. package/dist/src/domains/metrics/metrics-filters.d.ts +23 -1
  372. package/dist/src/ds/components/Combobox/combobox.d.ts +2 -0
  373. package/dist/src/ds/components/DropdownMenu/dropdown-menu.d.ts +19 -6
  374. package/dist/src/ds/components/InputGroup/input-group.d.ts +6 -2
  375. package/dist/src/ds/components/PageLayout/page-layout.d.ts +8 -1
  376. package/dist/src/ds/components/ScrollArea/scroll-area.d.ts +2 -1
  377. package/dist/src/ds/primitives/menu-item.d.ts +1 -0
  378. package/dist/style.css +16 -4
  379. package/dist/{tabs-list-DY_hziv7.js → tabs-list-CDep3C2w.js} +2 -2
  380. package/dist/{tabs-list-DY_hziv7.js.map → tabs-list-CDep3C2w.js.map} +1 -1
  381. package/dist/{tabs-list-xikY_dug.cjs → tabs-list-DwQsMVKI.cjs} +2 -2
  382. package/dist/{tabs-list-xikY_dug.cjs.map → tabs-list-DwQsMVKI.cjs.map} +1 -1
  383. package/dist/{tool-approval-TB8r2U_c.js → tool-approval-BK2j7aj_.js} +2 -2
  384. package/dist/{tool-approval-TB8r2U_c.js.map → tool-approval-BK2j7aj_.js.map} +1 -1
  385. package/dist/{tool-approval-S6ml_xyU.cjs → tool-approval-Bza_sgxa.cjs} +2 -2
  386. package/dist/{tool-approval-S6ml_xyU.cjs.map → tool-approval-Bza_sgxa.cjs.map} +1 -1
  387. package/dist/{tool-call-arguments-CCkJ1btR.js → tool-call-arguments-BLCAiFYg.js} +2 -2
  388. package/dist/{tool-call-arguments-CCkJ1btR.js.map → tool-call-arguments-BLCAiFYg.js.map} +1 -1
  389. package/dist/{tool-call-arguments-DyukJmhY.cjs → tool-call-arguments-CK3kQ_FX.cjs} +2 -2
  390. package/dist/{tool-call-arguments-DyukJmhY.cjs.map → tool-call-arguments-CK3kQ_FX.cjs.map} +1 -1
  391. package/dist/{tool-call-group-CZBqGjMh.js → tool-call-group-C_zxf6OA.js} +2 -2
  392. package/dist/{tool-call-group-CZBqGjMh.js.map → tool-call-group-C_zxf6OA.js.map} +1 -1
  393. package/dist/{tool-call-group-CFpdexuw.cjs → tool-call-group-Cdgv7red.cjs} +2 -2
  394. package/dist/{tool-call-group-CFpdexuw.cjs.map → tool-call-group-Cdgv7red.cjs.map} +1 -1
  395. package/dist/{traces-data-list-1X6UBM6Y.js → traces-data-list-C05UwTiE.js} +2 -2
  396. package/dist/{traces-data-list-1X6UBM6Y.js.map → traces-data-list-C05UwTiE.js.map} +1 -1
  397. package/dist/{traces-data-list-BXSXW3E6.cjs → traces-data-list-DPA5T14k.cjs} +2 -2
  398. package/dist/{traces-data-list-BXSXW3E6.cjs.map → traces-data-list-DPA5T14k.cjs.map} +1 -1
  399. package/dist/{workflow-data-edge-view-De0xCrVu.js → workflow-data-edge-view-BWyUa9am.js} +2 -2
  400. package/dist/{workflow-data-edge-view-De0xCrVu.js.map → workflow-data-edge-view-BWyUa9am.js.map} +1 -1
  401. package/dist/{workflow-data-edge-view-kmB6j-ui.cjs → workflow-data-edge-view-BpnN4W_5.cjs} +2 -2
  402. package/dist/{workflow-data-edge-view-kmB6j-ui.cjs.map → workflow-data-edge-view-BpnN4W_5.cjs.map} +1 -1
  403. package/dist/{workflow-edge-data-button-av1zCMfP.cjs → workflow-edge-data-button-Du5ZDm72.cjs} +2 -2
  404. package/dist/{workflow-edge-data-button-av1zCMfP.cjs.map → workflow-edge-data-button-Du5ZDm72.cjs.map} +1 -1
  405. package/dist/{workflow-edge-data-button-CXbj67U9.js → workflow-edge-data-button-DvGFB2L6.js} +2 -2
  406. package/dist/{workflow-edge-data-button-CXbj67U9.js.map → workflow-edge-data-button-DvGFB2L6.js.map} +1 -1
  407. package/dist/{workflow-step-action-BsBZk7j6.cjs → workflow-step-action-DNrU8on1.cjs} +2 -2
  408. package/dist/{workflow-step-action-BsBZk7j6.cjs.map → workflow-step-action-DNrU8on1.cjs.map} +1 -1
  409. package/dist/{workflow-step-action-AG05Ly8P.js → workflow-step-action-ac1gNDdn.js} +2 -2
  410. package/dist/{workflow-step-action-AG05Ly8P.js.map → workflow-step-action-ac1gNDdn.js.map} +1 -1
  411. package/package.json +8 -8
  412. package/dist/combobox-fEMKH9nJ.cjs.map +0 -1
  413. package/dist/combobox-so2V71F7.js.map +0 -1
  414. package/dist/dropdown-menu-Bg96BCnK.cjs.map +0 -1
  415. package/dist/dropdown-menu-D8GR_NhL.js.map +0 -1
  416. package/dist/input-group-CIIwoggO.js.map +0 -1
  417. package/dist/input-group-DQuyC9Pz.cjs.map +0 -1
  418. package/dist/scroll-area-BywIlj3F.js.map +0 -1
  419. package/dist/scroll-area-CVgjRzTS.cjs.map +0 -1
@@ -4,7 +4,7 @@ import { parseToolArgs, workspaceMetadata } from './workspace-data-parts.es.js';
4
4
  import { WorkspaceLink } from './workspace-link.es.js';
5
5
  import { awaitsToolApproval } from './awaits-tool-approval.es.js';
6
6
  import { ToolApprovalBadge } from './tool-approval-badge.es.js';
7
- import { T as ToolCallArguments } from '../../../../tool-call-arguments-CCkJ1btR.js';
7
+ import { T as ToolCallArguments } from '../../../../tool-call-arguments-BLCAiFYg.js';
8
8
  import { T as ToolCallOutput } from '../../../../tool-call-output-qgqn19KC.js';
9
9
  import { p as presentTool } from '../../../../tool-presentation-BXAo24Ir.js';
10
10
  import { T as Txt } from '../../../../Txt-BuzYj7Vy.js';
@@ -8,7 +8,7 @@ const domains_chat_tools_badges_observationMarkerFormat = require('./observation
8
8
  const domains_chat_tools_badges_observationRenderer = require('./observation-renderer.cjs.js');
9
9
  const activity = require('../../../../activity-CaFdLiPz.cjs');
10
10
  const code = require('../../../../code-Dcah35Gp.cjs');
11
- const markdownRenderer = require('../../../../markdown-renderer-BXTNiZbz.cjs');
11
+ const markdownRenderer = require('../../../../markdown-renderer-BRu3RpQD.cjs');
12
12
  const Txt = require('../../../../Txt-DXjXpX9r.cjs');
13
13
  const utils_duration = require('../../../../utils/duration.cjs.js');
14
14
 
@@ -4,7 +4,7 @@ import { formatTokens, extractedValueEntries, formatExtractedValue, compressionR
4
4
  import { ObservationRenderer } from './observation-renderer.es.js';
5
5
  import { g as ActivityItem } from '../../../../activity-BsrB5ADa.js';
6
6
  import { C as Code } from '../../../../code-DAXWNzvf.js';
7
- import { M as MarkdownRenderer } from '../../../../markdown-renderer-Ct-q_KTF.js';
7
+ import { M as MarkdownRenderer } from '../../../../markdown-renderer-WesDzhMr.js';
8
8
  import { T as Txt } from '../../../../Txt-BuzYj7Vy.js';
9
9
  import { formatDuration } from '../../../../utils/duration.es.js';
10
10
 
@@ -5,7 +5,7 @@ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toString
5
5
  const jsxRuntime = require('react/jsx-runtime');
6
6
  const React = require('react');
7
7
  const domains_memory_lib_observationPriority = require('../../../memory/lib/observation-priority.cjs.js');
8
- const markdownRenderer = require('../../../../markdown-renderer-BXTNiZbz.cjs');
8
+ const markdownRenderer = require('../../../../markdown-renderer-BRu3RpQD.cjs');
9
9
  const Txt = require('../../../../Txt-DXjXpX9r.cjs');
10
10
  const utils_cn = require('../../../../cn-TqD01zH-.cjs');
11
11
 
@@ -1,7 +1,7 @@
1
1
  import { jsx, jsxs } from 'react/jsx-runtime';
2
2
  import { useMemo } from 'react';
3
3
  import { observationPriorityTone, observationPriorityByEmoji } from '../../../memory/lib/observation-priority.es.js';
4
- import { M as MarkdownRenderer } from '../../../../markdown-renderer-Ct-q_KTF.js';
4
+ import { M as MarkdownRenderer } from '../../../../markdown-renderer-WesDzhMr.js';
5
5
  import { T as Txt } from '../../../../Txt-BuzYj7Vy.js';
6
6
  import { c as cn } from '../../../../cn-coERSHz5.js';
7
7
 
@@ -6,7 +6,7 @@ const jsxRuntime = require('react/jsx-runtime');
6
6
  const domains_chat_components_badgeWrapper = require('../../components/badge-wrapper.cjs.js');
7
7
  const domains_chat_context_toolCallContext = require('../../context/tool-call-context.cjs.js');
8
8
  const domains_chat_tools_badges_awaitsToolApproval = require('./awaits-tool-approval.cjs.js');
9
- const toolApproval = require('../../../../tool-approval-S6ml_xyU.cjs');
9
+ const toolApproval = require('../../../../tool-approval-Bza_sgxa.cjs');
10
10
 
11
11
  function useToolApproval(request) {
12
12
  const { toolCallId, toolApprovalMetadata, toolName, isNetwork, isGenerateMode } = request;
@@ -2,7 +2,7 @@ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
2
  import { BadgeWrapper } from '../../components/badge-wrapper.es.js';
3
3
  import { useOptionalToolCall } from '../../context/tool-call-context.es.js';
4
4
  import { awaitsToolApproval } from './awaits-tool-approval.es.js';
5
- import { a as ToolApprovalActions, b as ToolApprovalStatus } from '../../../../tool-approval-TB8r2U_c.js';
5
+ import { a as ToolApprovalActions, b as ToolApprovalStatus } from '../../../../tool-approval-BK2j7aj_.js';
6
6
 
7
7
  function useToolApproval(request) {
8
8
  const { toolCallId, toolApprovalMetadata, toolName, isNetwork, isGenerateMode } = request;
@@ -9,7 +9,7 @@ const domains_chat_components_sectionLabel = require('../../components/section-l
9
9
  const domains_chat_tools_badges_awaitsToolApproval = require('./awaits-tool-approval.cjs.js');
10
10
  const domains_chat_tools_badges_toolApprovalBadge = require('./tool-approval-badge.cjs.js');
11
11
  const ansi = require('../../../../ansi-fAtbeDQN.cjs');
12
- const toolCallArguments = require('../../../../tool-call-arguments-DyukJmhY.cjs');
12
+ const toolCallArguments = require('../../../../tool-call-arguments-CK3kQ_FX.cjs');
13
13
  const toolCallOutput = require('../../../../tool-call-output-xx1drXqO.cjs');
14
14
  const toolPresentation = require('../../../../tool-presentation-WLS6d1ws.cjs');
15
15
  const codeEditor = require('../../../../code-editor-CH8c-KF1.cjs');
@@ -5,7 +5,7 @@ import { SectionLabel } from '../../components/section-label.es.js';
5
5
  import { awaitsToolApproval } from './awaits-tool-approval.es.js';
6
6
  import { ToolApprovalBadge } from './tool-approval-badge.es.js';
7
7
  import { s as stripSerializedAnsi } from '../../../../ansi-Cq_bKF5J.js';
8
- import { T as ToolCallArguments } from '../../../../tool-call-arguments-CCkJ1btR.js';
8
+ import { T as ToolCallArguments } from '../../../../tool-call-arguments-BLCAiFYg.js';
9
9
  import { T as ToolCallOutput } from '../../../../tool-call-output-qgqn19KC.js';
10
10
  import { p as presentTool, s as stringifyToolValue, h as hasToolArguments } from '../../../../tool-presentation-BXAo24Ir.js';
11
11
  import { C as CodeEditor } from '../../../../code-editor-B_v1EfzX.js';
@@ -15,7 +15,6 @@ const domains_chat_tools_badges_toolApprovalBadge = require('./tool-approval-bad
15
15
  const domains_requestContext_hooks_useEntityRequestContext = require('../../../request-context/hooks/use-entity-request-context.cjs.js');
16
16
  const domains_workflows_context_workflowRunContext = require('../../../workflows/context/workflow-run-context.cjs.js');
17
17
  require('@tanstack/react-query');
18
- require('../../../../toast-C8a7bWV8.cjs');
19
18
  const domains_workflows_context_workflowStepDetailContext = require('../../../workflows/context/workflow-step-detail-context.cjs.js');
20
19
  const domains_workflows_context_workflowStepDetailProvider = require('../../../workflows/context/workflow-step-detail-provider.cjs.js');
21
20
  const domains_workflows_context_workflowSelectedStepContext = require('../../../workflows/context/workflow-selected-step-context.cjs.js');
@@ -39,7 +38,7 @@ require('@autoform/react');
39
38
  require('@lukeed/uuid');
40
39
  require('../../../../lib/form/dynamic-form.cjs.js');
41
40
  const icons_WorkflowIcon = require('../../../../icons/WorkflowIcon.cjs.js');
42
- require('../../../../data-list-BLfHObw8.cjs');
41
+ require('../../../../data-list-2svaWtkq.cjs');
43
42
  require('../../../../keyboard/keyboard-shortcuts-context.cjs.js');
44
43
  const lib_framework = require('../../../../lib/framework.cjs.js');
45
44
  require('../../../workflows/components/workflow-information.cjs.js');
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-badge.cjs.js","sources":["../../../../../src/domains/chat/tools/badges/workflow-badge.tsx"],"sourcesContent":["import type { GetWorkflowResponse } from '@mastra/client-js';\nimport { useWorkflow } from '@mastra/react/hooks/workflows';\nimport { Eye } from 'lucide-react';\nimport { useContext, useEffect } from 'react';\nimport { BackgroundTaskMetadataDialogTrigger } from './background-task-metadata-dialog';\nimport type { MessageMetadata } from '@/domains/chat';\n\nimport { LoadingBadge } from '@/domains/chat/components/loading-badge';\nimport { NetworkChoiceMetadataDialogTrigger } from '@/domains/chat/components/network-choice-metadata-dialog';\nimport { SectionLabel } from '@/domains/chat/components/section-label';\nimport { awaitsToolApproval } from '@/domains/chat/tools/badges/awaits-tool-approval';\nimport type { ToolApprovalRequest } from '@/domains/chat/tools/badges/tool-approval-badge';\nimport { ToolApprovalBadge } from '@/domains/chat/tools/badges/tool-approval-badge';\nimport { useEntityRequestContext } from '@/domains/request-context/hooks/use-entity-request-context';\nimport {\n WorkflowGraph,\n WorkflowRunContext,\n WorkflowSelectedStepProvider,\n WorkflowStepDetailProvider,\n useWorkflowStepDetail,\n} from '@/domains/workflows';\nimport { WorkflowStepDetailContent } from '@/domains/workflows/components/workflow-step-detail';\nimport { PlaygroundWorkflowRunProvider } from '@/domains/workflows/context/playground-workflow-run-provider';\nimport type { WorkflowRunStreamResult } from '@/domains/workflows/context/workflow-run-context';\nimport { ToolCallMono } from '@/ds/components/ai/tool-call';\nimport { Button } from '@/ds/components/Button';\nimport { CodeEditor } from '@/ds/components/CodeEditor';\nimport { WorkflowIcon } from '@/ds/icons/WorkflowIcon';\nimport { useLinkComponent } from '@/lib/framework';\n\nexport interface WorkflowBadgeProps extends Omit<ToolApprovalRequest, 'toolCalled'> {\n workflowId: string;\n result?: any;\n isStreaming?: boolean;\n metadata?: MessageMetadata;\n suspendPayload?: any;\n toolCalled?: boolean;\n}\n\nexport const WorkflowBadge = ({\n result,\n workflowId,\n isStreaming,\n metadata,\n toolCallId,\n toolApprovalMetadata,\n suspendPayload,\n toolName,\n isNetwork,\n toolCalled,\n}: WorkflowBadgeProps) => {\n const { runId, status } = result || {};\n const { data: workflow, isLoading: isWorkflowLoading } = useWorkflow({\n workflowId,\n requestContext: useEntityRequestContext('workflow', workflowId)[0],\n queryOptions: { enabled: Boolean(workflowId) },\n });\n const routingDecision = metadata?.mode === 'network' ? metadata.routingDecision : undefined;\n const selectionReason =\n metadata?.mode === 'network' ? (routingDecision?.selectionReason ?? metadata.selectionReason) : undefined;\n const agentNetworkInput = metadata?.mode === 'network' ? (routingDecision ?? metadata.agentInput) : undefined;\n\n const bgEntry =\n (metadata?.mode === 'stream' || metadata?.mode === 'generate') && metadata?.backgroundTasks\n ? metadata.backgroundTasks[toolCallId]\n : undefined;\n\n let suspendPayloadSlot =\n typeof suspendPayload === 'string' ? (\n <ToolCallMono copyText={suspendPayload} className=\"text-muted-foreground\">\n {suspendPayload}\n </ToolCallMono>\n ) : (\n <CodeEditor data={suspendPayload} data-testid=\"tool-suspend-payload\" />\n );\n\n if (isWorkflowLoading || !workflow) return <LoadingBadge />;\n\n const toolCalledOrFinished = toolCalled ?? !!status;\n const showsRun = isStreaming || Boolean(runId);\n const hasBody =\n showsRun ||\n Boolean(suspendPayload) ||\n awaitsToolApproval({ toolApprovalMetadata, toolCalled: toolCalledOrFinished });\n\n return (\n <ToolApprovalBadge\n approval={{\n toolCalled: toolCalledOrFinished,\n toolCallId,\n toolApprovalMetadata,\n toolName,\n isNetwork,\n isGenerateMode: metadata?.mode === 'generate',\n }}\n data-testid=\"workflow-badge\"\n icon={<WorkflowIcon className=\"text-span-workflow\" />}\n title={workflow.name}\n initialCollapsed={false}\n extraInfo={\n metadata?.mode === 'network' ? (\n <NetworkChoiceMetadataDialogTrigger\n selectionReason={selectionReason ?? ''}\n input={agentNetworkInput as string | Record<string, unknown> | undefined}\n />\n ) : bgEntry?.taskId && bgEntry?.startedAt ? (\n <BackgroundTaskMetadataDialogTrigger backgroundTask={bgEntry} />\n ) : null\n }\n >\n {hasBody && (\n <>\n {!isStreaming && runId && (\n <PlaygroundWorkflowRunProvider workflowId={workflowId} initialRunId={runId} withoutTimeTravel>\n <WorkflowBadgeExtended workflowId={workflowId} workflow={workflow} runId={runId} />\n </PlaygroundWorkflowRunProvider>\n )}\n\n {isStreaming && <WorkflowBadgeExtended workflowId={workflowId} workflow={workflow} runId={runId} />}\n\n {suspendPayloadSlot !== undefined && suspendPayload && (\n <div>\n <SectionLabel>Workflow suspend payload</SectionLabel>\n {suspendPayloadSlot}\n </div>\n )}\n </>\n )}\n </ToolApprovalBadge>\n );\n};\n\ninterface WorkflowBadgeExtendedProps {\n workflowId: string;\n runId?: string;\n workflow: GetWorkflowResponse;\n}\n\nconst WorkflowBadgeExtended = ({ workflowId, workflow, runId }: WorkflowBadgeExtendedProps) => {\n const requestContext = useEntityRequestContext('workflow', workflowId)[0];\n const { Link } = useLinkComponent();\n const { isLoadingRunExecutionResult } = useContext(WorkflowRunContext);\n\n return (\n <>\n <div className=\"flex items-center gap-2 pb-2\">\n <Button icon={<WorkflowIcon />} render={<Link href={`/workflows/${workflowId}/graph`} />}>\n Go to workflow\n </Button>\n {runId && (\n <Button icon={<Eye />} render={<Link href={`/workflows/${workflowId}/graph/${runId}`} />}>\n See run\n </Button>\n )}\n </div>\n\n <WorkflowSelectedStepProvider>\n <WorkflowStepDetailProvider>\n <div className=\"h-[60vh] w-full overflow-hidden rounded-md\">\n <WorkflowGraph\n workflowId={workflowId}\n workflow={workflow}\n isLoading={isLoadingRunExecutionResult}\n requestContext={requestContext}\n />\n </div>\n <WorkflowBadgeStepDetail requestContext={requestContext} />\n </WorkflowStepDetailProvider>\n </WorkflowSelectedStepProvider>\n </>\n );\n};\n\nconst WorkflowBadgeStepDetail = ({ requestContext }: { requestContext: Record<string, any> }) => {\n const { stepDetail } = useWorkflowStepDetail();\n if (!stepDetail) return null;\n return (\n <div className=\"mt-2 flex max-h-[60vh] flex-col overflow-hidden rounded-md border border-border bg-background\">\n <WorkflowStepDetailContent requestContext={requestContext} />\n </div>\n );\n};\n\n// eslint-disable-next-line react-refresh/only-export-components\nexport const useWorkflowStream = (workflowFullState?: WorkflowRunStreamResult) => {\n const { setResult } = useContext(WorkflowRunContext);\n\n useEffect(() => {\n if (!workflowFullState) return;\n setResult(workflowFullState);\n }, [workflowFullState, setResult]);\n};\n"],"names":["useWorkflow","useEntityRequestContext","jsx","ToolCallMono","CodeEditor","LoadingBadge","awaitsToolApproval","ToolApprovalBadge","WorkflowIcon","NetworkChoiceMetadataDialogTrigger","BackgroundTaskMetadataDialogTrigger","jsxs","Fragment","PlaygroundWorkflowRunProvider","SectionLabel","useLinkComponent","useContext","WorkflowRunContext","Button","Eye","WorkflowSelectedStepProvider","WorkflowStepDetailProvider","WorkflowGraph","useWorkflowStepDetail","WorkflowStepDetailContent","useEffect"],"mappings":"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"}
1
+ {"version":3,"file":"workflow-badge.cjs.js","sources":["../../../../../src/domains/chat/tools/badges/workflow-badge.tsx"],"sourcesContent":["import type { GetWorkflowResponse } from '@mastra/client-js';\nimport { useWorkflow } from '@mastra/react/hooks/workflows';\nimport { Eye } from 'lucide-react';\nimport { useContext, useEffect } from 'react';\nimport { BackgroundTaskMetadataDialogTrigger } from './background-task-metadata-dialog';\nimport type { MessageMetadata } from '@/domains/chat';\n\nimport { LoadingBadge } from '@/domains/chat/components/loading-badge';\nimport { NetworkChoiceMetadataDialogTrigger } from '@/domains/chat/components/network-choice-metadata-dialog';\nimport { SectionLabel } from '@/domains/chat/components/section-label';\nimport { awaitsToolApproval } from '@/domains/chat/tools/badges/awaits-tool-approval';\nimport type { ToolApprovalRequest } from '@/domains/chat/tools/badges/tool-approval-badge';\nimport { ToolApprovalBadge } from '@/domains/chat/tools/badges/tool-approval-badge';\nimport { useEntityRequestContext } from '@/domains/request-context/hooks/use-entity-request-context';\nimport {\n WorkflowGraph,\n WorkflowRunContext,\n WorkflowSelectedStepProvider,\n WorkflowStepDetailProvider,\n useWorkflowStepDetail,\n} from '@/domains/workflows';\nimport { WorkflowStepDetailContent } from '@/domains/workflows/components/workflow-step-detail';\nimport { PlaygroundWorkflowRunProvider } from '@/domains/workflows/context/playground-workflow-run-provider';\nimport type { WorkflowRunStreamResult } from '@/domains/workflows/context/workflow-run-context';\nimport { ToolCallMono } from '@/ds/components/ai/tool-call';\nimport { Button } from '@/ds/components/Button';\nimport { CodeEditor } from '@/ds/components/CodeEditor';\nimport { WorkflowIcon } from '@/ds/icons/WorkflowIcon';\nimport { useLinkComponent } from '@/lib/framework';\n\nexport interface WorkflowBadgeProps extends Omit<ToolApprovalRequest, 'toolCalled'> {\n workflowId: string;\n result?: any;\n isStreaming?: boolean;\n metadata?: MessageMetadata;\n suspendPayload?: any;\n toolCalled?: boolean;\n}\n\nexport const WorkflowBadge = ({\n result,\n workflowId,\n isStreaming,\n metadata,\n toolCallId,\n toolApprovalMetadata,\n suspendPayload,\n toolName,\n isNetwork,\n toolCalled,\n}: WorkflowBadgeProps) => {\n const { runId, status } = result || {};\n const { data: workflow, isLoading: isWorkflowLoading } = useWorkflow({\n workflowId,\n requestContext: useEntityRequestContext('workflow', workflowId)[0],\n queryOptions: { enabled: Boolean(workflowId) },\n });\n const routingDecision = metadata?.mode === 'network' ? metadata.routingDecision : undefined;\n const selectionReason =\n metadata?.mode === 'network' ? (routingDecision?.selectionReason ?? metadata.selectionReason) : undefined;\n const agentNetworkInput = metadata?.mode === 'network' ? (routingDecision ?? metadata.agentInput) : undefined;\n\n const bgEntry =\n (metadata?.mode === 'stream' || metadata?.mode === 'generate') && metadata?.backgroundTasks\n ? metadata.backgroundTasks[toolCallId]\n : undefined;\n\n let suspendPayloadSlot =\n typeof suspendPayload === 'string' ? (\n <ToolCallMono copyText={suspendPayload} className=\"text-muted-foreground\">\n {suspendPayload}\n </ToolCallMono>\n ) : (\n <CodeEditor data={suspendPayload} data-testid=\"tool-suspend-payload\" />\n );\n\n if (isWorkflowLoading || !workflow) return <LoadingBadge />;\n\n const toolCalledOrFinished = toolCalled ?? !!status;\n const showsRun = isStreaming || Boolean(runId);\n const hasBody =\n showsRun ||\n Boolean(suspendPayload) ||\n awaitsToolApproval({ toolApprovalMetadata, toolCalled: toolCalledOrFinished });\n\n return (\n <ToolApprovalBadge\n approval={{\n toolCalled: toolCalledOrFinished,\n toolCallId,\n toolApprovalMetadata,\n toolName,\n isNetwork,\n isGenerateMode: metadata?.mode === 'generate',\n }}\n data-testid=\"workflow-badge\"\n icon={<WorkflowIcon className=\"text-span-workflow\" />}\n title={workflow.name}\n initialCollapsed={false}\n extraInfo={\n metadata?.mode === 'network' ? (\n <NetworkChoiceMetadataDialogTrigger\n selectionReason={selectionReason ?? ''}\n input={agentNetworkInput as string | Record<string, unknown> | undefined}\n />\n ) : bgEntry?.taskId && bgEntry?.startedAt ? (\n <BackgroundTaskMetadataDialogTrigger backgroundTask={bgEntry} />\n ) : null\n }\n >\n {hasBody && (\n <>\n {!isStreaming && runId && (\n <PlaygroundWorkflowRunProvider workflowId={workflowId} initialRunId={runId} withoutTimeTravel>\n <WorkflowBadgeExtended workflowId={workflowId} workflow={workflow} runId={runId} />\n </PlaygroundWorkflowRunProvider>\n )}\n\n {isStreaming && <WorkflowBadgeExtended workflowId={workflowId} workflow={workflow} runId={runId} />}\n\n {suspendPayloadSlot !== undefined && suspendPayload && (\n <div>\n <SectionLabel>Workflow suspend payload</SectionLabel>\n {suspendPayloadSlot}\n </div>\n )}\n </>\n )}\n </ToolApprovalBadge>\n );\n};\n\ninterface WorkflowBadgeExtendedProps {\n workflowId: string;\n runId?: string;\n workflow: GetWorkflowResponse;\n}\n\nconst WorkflowBadgeExtended = ({ workflowId, workflow, runId }: WorkflowBadgeExtendedProps) => {\n const requestContext = useEntityRequestContext('workflow', workflowId)[0];\n const { Link } = useLinkComponent();\n const { isLoadingRunExecutionResult } = useContext(WorkflowRunContext);\n\n return (\n <>\n <div className=\"flex items-center gap-2 pb-2\">\n <Button icon={<WorkflowIcon />} render={<Link href={`/workflows/${workflowId}/graph`} />}>\n Go to workflow\n </Button>\n {runId && (\n <Button icon={<Eye />} render={<Link href={`/workflows/${workflowId}/graph/${runId}`} />}>\n See run\n </Button>\n )}\n </div>\n\n <WorkflowSelectedStepProvider>\n <WorkflowStepDetailProvider>\n <div className=\"h-[60vh] w-full overflow-hidden rounded-md\">\n <WorkflowGraph\n workflowId={workflowId}\n workflow={workflow}\n isLoading={isLoadingRunExecutionResult}\n requestContext={requestContext}\n />\n </div>\n <WorkflowBadgeStepDetail requestContext={requestContext} />\n </WorkflowStepDetailProvider>\n </WorkflowSelectedStepProvider>\n </>\n );\n};\n\nconst WorkflowBadgeStepDetail = ({ requestContext }: { requestContext: Record<string, any> }) => {\n const { stepDetail } = useWorkflowStepDetail();\n if (!stepDetail) return null;\n return (\n <div className=\"mt-2 flex max-h-[60vh] flex-col overflow-hidden rounded-md border border-border bg-background\">\n <WorkflowStepDetailContent requestContext={requestContext} />\n </div>\n );\n};\n\n// eslint-disable-next-line react-refresh/only-export-components\nexport const useWorkflowStream = (workflowFullState?: WorkflowRunStreamResult) => {\n const { setResult } = useContext(WorkflowRunContext);\n\n useEffect(() => {\n if (!workflowFullState) return;\n setResult(workflowFullState);\n }, [workflowFullState, setResult]);\n};\n"],"names":["useWorkflow","useEntityRequestContext","jsx","ToolCallMono","CodeEditor","LoadingBadge","awaitsToolApproval","ToolApprovalBadge","WorkflowIcon","NetworkChoiceMetadataDialogTrigger","BackgroundTaskMetadataDialogTrigger","jsxs","Fragment","PlaygroundWorkflowRunProvider","SectionLabel","useLinkComponent","useContext","WorkflowRunContext","Button","Eye","WorkflowSelectedStepProvider","WorkflowStepDetailProvider","WorkflowGraph","useWorkflowStepDetail","WorkflowStepDetailContent","useEffect"],"mappings":"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"}
@@ -11,7 +11,6 @@ import { ToolApprovalBadge } from './tool-approval-badge.es.js';
11
11
  import { useEntityRequestContext } from '../../../request-context/hooks/use-entity-request-context.es.js';
12
12
  import { WorkflowRunContext } from '../../../workflows/context/workflow-run-context.es.js';
13
13
  import '@tanstack/react-query';
14
- import '../../../../toast-WCmYXnuT.js';
15
14
  import { useWorkflowStepDetail } from '../../../workflows/context/workflow-step-detail-context.es.js';
16
15
  import { WorkflowStepDetailProvider } from '../../../workflows/context/workflow-step-detail-provider.es.js';
17
16
  import { WorkflowSelectedStepProvider } from '../../../workflows/context/workflow-selected-step-context.es.js';
@@ -35,7 +34,7 @@ import '@autoform/react';
35
34
  import '@lukeed/uuid';
36
35
  import '../../../../lib/form/dynamic-form.es.js';
37
36
  import { WorkflowIcon } from '../../../../icons/WorkflowIcon.es.js';
38
- import '../../../../data-list-B2ArWwsJ.js';
37
+ import '../../../../data-list-BbOYiz4B.js';
39
38
  import '../../../../keyboard/keyboard-shortcuts-context.es.js';
40
39
  import { useLinkComponent } from '../../../../lib/framework.es.js';
41
40
  import '../../../workflows/components/workflow-information.es.js';
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-badge.es.js","sources":["../../../../../src/domains/chat/tools/badges/workflow-badge.tsx"],"sourcesContent":["import type { GetWorkflowResponse } from '@mastra/client-js';\nimport { useWorkflow } from '@mastra/react/hooks/workflows';\nimport { Eye } from 'lucide-react';\nimport { useContext, useEffect } from 'react';\nimport { BackgroundTaskMetadataDialogTrigger } from './background-task-metadata-dialog';\nimport type { MessageMetadata } from '@/domains/chat';\n\nimport { LoadingBadge } from '@/domains/chat/components/loading-badge';\nimport { NetworkChoiceMetadataDialogTrigger } from '@/domains/chat/components/network-choice-metadata-dialog';\nimport { SectionLabel } from '@/domains/chat/components/section-label';\nimport { awaitsToolApproval } from '@/domains/chat/tools/badges/awaits-tool-approval';\nimport type { ToolApprovalRequest } from '@/domains/chat/tools/badges/tool-approval-badge';\nimport { ToolApprovalBadge } from '@/domains/chat/tools/badges/tool-approval-badge';\nimport { useEntityRequestContext } from '@/domains/request-context/hooks/use-entity-request-context';\nimport {\n WorkflowGraph,\n WorkflowRunContext,\n WorkflowSelectedStepProvider,\n WorkflowStepDetailProvider,\n useWorkflowStepDetail,\n} from '@/domains/workflows';\nimport { WorkflowStepDetailContent } from '@/domains/workflows/components/workflow-step-detail';\nimport { PlaygroundWorkflowRunProvider } from '@/domains/workflows/context/playground-workflow-run-provider';\nimport type { WorkflowRunStreamResult } from '@/domains/workflows/context/workflow-run-context';\nimport { ToolCallMono } from '@/ds/components/ai/tool-call';\nimport { Button } from '@/ds/components/Button';\nimport { CodeEditor } from '@/ds/components/CodeEditor';\nimport { WorkflowIcon } from '@/ds/icons/WorkflowIcon';\nimport { useLinkComponent } from '@/lib/framework';\n\nexport interface WorkflowBadgeProps extends Omit<ToolApprovalRequest, 'toolCalled'> {\n workflowId: string;\n result?: any;\n isStreaming?: boolean;\n metadata?: MessageMetadata;\n suspendPayload?: any;\n toolCalled?: boolean;\n}\n\nexport const WorkflowBadge = ({\n result,\n workflowId,\n isStreaming,\n metadata,\n toolCallId,\n toolApprovalMetadata,\n suspendPayload,\n toolName,\n isNetwork,\n toolCalled,\n}: WorkflowBadgeProps) => {\n const { runId, status } = result || {};\n const { data: workflow, isLoading: isWorkflowLoading } = useWorkflow({\n workflowId,\n requestContext: useEntityRequestContext('workflow', workflowId)[0],\n queryOptions: { enabled: Boolean(workflowId) },\n });\n const routingDecision = metadata?.mode === 'network' ? metadata.routingDecision : undefined;\n const selectionReason =\n metadata?.mode === 'network' ? (routingDecision?.selectionReason ?? metadata.selectionReason) : undefined;\n const agentNetworkInput = metadata?.mode === 'network' ? (routingDecision ?? metadata.agentInput) : undefined;\n\n const bgEntry =\n (metadata?.mode === 'stream' || metadata?.mode === 'generate') && metadata?.backgroundTasks\n ? metadata.backgroundTasks[toolCallId]\n : undefined;\n\n let suspendPayloadSlot =\n typeof suspendPayload === 'string' ? (\n <ToolCallMono copyText={suspendPayload} className=\"text-muted-foreground\">\n {suspendPayload}\n </ToolCallMono>\n ) : (\n <CodeEditor data={suspendPayload} data-testid=\"tool-suspend-payload\" />\n );\n\n if (isWorkflowLoading || !workflow) return <LoadingBadge />;\n\n const toolCalledOrFinished = toolCalled ?? !!status;\n const showsRun = isStreaming || Boolean(runId);\n const hasBody =\n showsRun ||\n Boolean(suspendPayload) ||\n awaitsToolApproval({ toolApprovalMetadata, toolCalled: toolCalledOrFinished });\n\n return (\n <ToolApprovalBadge\n approval={{\n toolCalled: toolCalledOrFinished,\n toolCallId,\n toolApprovalMetadata,\n toolName,\n isNetwork,\n isGenerateMode: metadata?.mode === 'generate',\n }}\n data-testid=\"workflow-badge\"\n icon={<WorkflowIcon className=\"text-span-workflow\" />}\n title={workflow.name}\n initialCollapsed={false}\n extraInfo={\n metadata?.mode === 'network' ? (\n <NetworkChoiceMetadataDialogTrigger\n selectionReason={selectionReason ?? ''}\n input={agentNetworkInput as string | Record<string, unknown> | undefined}\n />\n ) : bgEntry?.taskId && bgEntry?.startedAt ? (\n <BackgroundTaskMetadataDialogTrigger backgroundTask={bgEntry} />\n ) : null\n }\n >\n {hasBody && (\n <>\n {!isStreaming && runId && (\n <PlaygroundWorkflowRunProvider workflowId={workflowId} initialRunId={runId} withoutTimeTravel>\n <WorkflowBadgeExtended workflowId={workflowId} workflow={workflow} runId={runId} />\n </PlaygroundWorkflowRunProvider>\n )}\n\n {isStreaming && <WorkflowBadgeExtended workflowId={workflowId} workflow={workflow} runId={runId} />}\n\n {suspendPayloadSlot !== undefined && suspendPayload && (\n <div>\n <SectionLabel>Workflow suspend payload</SectionLabel>\n {suspendPayloadSlot}\n </div>\n )}\n </>\n )}\n </ToolApprovalBadge>\n );\n};\n\ninterface WorkflowBadgeExtendedProps {\n workflowId: string;\n runId?: string;\n workflow: GetWorkflowResponse;\n}\n\nconst WorkflowBadgeExtended = ({ workflowId, workflow, runId }: WorkflowBadgeExtendedProps) => {\n const requestContext = useEntityRequestContext('workflow', workflowId)[0];\n const { Link } = useLinkComponent();\n const { isLoadingRunExecutionResult } = useContext(WorkflowRunContext);\n\n return (\n <>\n <div className=\"flex items-center gap-2 pb-2\">\n <Button icon={<WorkflowIcon />} render={<Link href={`/workflows/${workflowId}/graph`} />}>\n Go to workflow\n </Button>\n {runId && (\n <Button icon={<Eye />} render={<Link href={`/workflows/${workflowId}/graph/${runId}`} />}>\n See run\n </Button>\n )}\n </div>\n\n <WorkflowSelectedStepProvider>\n <WorkflowStepDetailProvider>\n <div className=\"h-[60vh] w-full overflow-hidden rounded-md\">\n <WorkflowGraph\n workflowId={workflowId}\n workflow={workflow}\n isLoading={isLoadingRunExecutionResult}\n requestContext={requestContext}\n />\n </div>\n <WorkflowBadgeStepDetail requestContext={requestContext} />\n </WorkflowStepDetailProvider>\n </WorkflowSelectedStepProvider>\n </>\n );\n};\n\nconst WorkflowBadgeStepDetail = ({ requestContext }: { requestContext: Record<string, any> }) => {\n const { stepDetail } = useWorkflowStepDetail();\n if (!stepDetail) return null;\n return (\n <div className=\"mt-2 flex max-h-[60vh] flex-col overflow-hidden rounded-md border border-border bg-background\">\n <WorkflowStepDetailContent requestContext={requestContext} />\n </div>\n );\n};\n\n// eslint-disable-next-line react-refresh/only-export-components\nexport const useWorkflowStream = (workflowFullState?: WorkflowRunStreamResult) => {\n const { setResult } = useContext(WorkflowRunContext);\n\n useEffect(() => {\n if (!workflowFullState) return;\n setResult(workflowFullState);\n }, [workflowFullState, setResult]);\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workflow-badge.es.js","sources":["../../../../../src/domains/chat/tools/badges/workflow-badge.tsx"],"sourcesContent":["import type { GetWorkflowResponse } from '@mastra/client-js';\nimport { useWorkflow } from '@mastra/react/hooks/workflows';\nimport { Eye } from 'lucide-react';\nimport { useContext, useEffect } from 'react';\nimport { BackgroundTaskMetadataDialogTrigger } from './background-task-metadata-dialog';\nimport type { MessageMetadata } from '@/domains/chat';\n\nimport { LoadingBadge } from '@/domains/chat/components/loading-badge';\nimport { NetworkChoiceMetadataDialogTrigger } from '@/domains/chat/components/network-choice-metadata-dialog';\nimport { SectionLabel } from '@/domains/chat/components/section-label';\nimport { awaitsToolApproval } from '@/domains/chat/tools/badges/awaits-tool-approval';\nimport type { ToolApprovalRequest } from '@/domains/chat/tools/badges/tool-approval-badge';\nimport { ToolApprovalBadge } from '@/domains/chat/tools/badges/tool-approval-badge';\nimport { useEntityRequestContext } from '@/domains/request-context/hooks/use-entity-request-context';\nimport {\n WorkflowGraph,\n WorkflowRunContext,\n WorkflowSelectedStepProvider,\n WorkflowStepDetailProvider,\n useWorkflowStepDetail,\n} from '@/domains/workflows';\nimport { WorkflowStepDetailContent } from '@/domains/workflows/components/workflow-step-detail';\nimport { PlaygroundWorkflowRunProvider } from '@/domains/workflows/context/playground-workflow-run-provider';\nimport type { WorkflowRunStreamResult } from '@/domains/workflows/context/workflow-run-context';\nimport { ToolCallMono } from '@/ds/components/ai/tool-call';\nimport { Button } from '@/ds/components/Button';\nimport { CodeEditor } from '@/ds/components/CodeEditor';\nimport { WorkflowIcon } from '@/ds/icons/WorkflowIcon';\nimport { useLinkComponent } from '@/lib/framework';\n\nexport interface WorkflowBadgeProps extends Omit<ToolApprovalRequest, 'toolCalled'> {\n workflowId: string;\n result?: any;\n isStreaming?: boolean;\n metadata?: MessageMetadata;\n suspendPayload?: any;\n toolCalled?: boolean;\n}\n\nexport const WorkflowBadge = ({\n result,\n workflowId,\n isStreaming,\n metadata,\n toolCallId,\n toolApprovalMetadata,\n suspendPayload,\n toolName,\n isNetwork,\n toolCalled,\n}: WorkflowBadgeProps) => {\n const { runId, status } = result || {};\n const { data: workflow, isLoading: isWorkflowLoading } = useWorkflow({\n workflowId,\n requestContext: useEntityRequestContext('workflow', workflowId)[0],\n queryOptions: { enabled: Boolean(workflowId) },\n });\n const routingDecision = metadata?.mode === 'network' ? metadata.routingDecision : undefined;\n const selectionReason =\n metadata?.mode === 'network' ? (routingDecision?.selectionReason ?? metadata.selectionReason) : undefined;\n const agentNetworkInput = metadata?.mode === 'network' ? (routingDecision ?? metadata.agentInput) : undefined;\n\n const bgEntry =\n (metadata?.mode === 'stream' || metadata?.mode === 'generate') && metadata?.backgroundTasks\n ? metadata.backgroundTasks[toolCallId]\n : undefined;\n\n let suspendPayloadSlot =\n typeof suspendPayload === 'string' ? (\n <ToolCallMono copyText={suspendPayload} className=\"text-muted-foreground\">\n {suspendPayload}\n </ToolCallMono>\n ) : (\n <CodeEditor data={suspendPayload} data-testid=\"tool-suspend-payload\" />\n );\n\n if (isWorkflowLoading || !workflow) return <LoadingBadge />;\n\n const toolCalledOrFinished = toolCalled ?? !!status;\n const showsRun = isStreaming || Boolean(runId);\n const hasBody =\n showsRun ||\n Boolean(suspendPayload) ||\n awaitsToolApproval({ toolApprovalMetadata, toolCalled: toolCalledOrFinished });\n\n return (\n <ToolApprovalBadge\n approval={{\n toolCalled: toolCalledOrFinished,\n toolCallId,\n toolApprovalMetadata,\n toolName,\n isNetwork,\n isGenerateMode: metadata?.mode === 'generate',\n }}\n data-testid=\"workflow-badge\"\n icon={<WorkflowIcon className=\"text-span-workflow\" />}\n title={workflow.name}\n initialCollapsed={false}\n extraInfo={\n metadata?.mode === 'network' ? (\n <NetworkChoiceMetadataDialogTrigger\n selectionReason={selectionReason ?? ''}\n input={agentNetworkInput as string | Record<string, unknown> | undefined}\n />\n ) : bgEntry?.taskId && bgEntry?.startedAt ? (\n <BackgroundTaskMetadataDialogTrigger backgroundTask={bgEntry} />\n ) : null\n }\n >\n {hasBody && (\n <>\n {!isStreaming && runId && (\n <PlaygroundWorkflowRunProvider workflowId={workflowId} initialRunId={runId} withoutTimeTravel>\n <WorkflowBadgeExtended workflowId={workflowId} workflow={workflow} runId={runId} />\n </PlaygroundWorkflowRunProvider>\n )}\n\n {isStreaming && <WorkflowBadgeExtended workflowId={workflowId} workflow={workflow} runId={runId} />}\n\n {suspendPayloadSlot !== undefined && suspendPayload && (\n <div>\n <SectionLabel>Workflow suspend payload</SectionLabel>\n {suspendPayloadSlot}\n </div>\n )}\n </>\n )}\n </ToolApprovalBadge>\n );\n};\n\ninterface WorkflowBadgeExtendedProps {\n workflowId: string;\n runId?: string;\n workflow: GetWorkflowResponse;\n}\n\nconst WorkflowBadgeExtended = ({ workflowId, workflow, runId }: WorkflowBadgeExtendedProps) => {\n const requestContext = useEntityRequestContext('workflow', workflowId)[0];\n const { Link } = useLinkComponent();\n const { isLoadingRunExecutionResult } = useContext(WorkflowRunContext);\n\n return (\n <>\n <div className=\"flex items-center gap-2 pb-2\">\n <Button icon={<WorkflowIcon />} render={<Link href={`/workflows/${workflowId}/graph`} />}>\n Go to workflow\n </Button>\n {runId && (\n <Button icon={<Eye />} render={<Link href={`/workflows/${workflowId}/graph/${runId}`} />}>\n See run\n </Button>\n )}\n </div>\n\n <WorkflowSelectedStepProvider>\n <WorkflowStepDetailProvider>\n <div className=\"h-[60vh] w-full overflow-hidden rounded-md\">\n <WorkflowGraph\n workflowId={workflowId}\n workflow={workflow}\n isLoading={isLoadingRunExecutionResult}\n requestContext={requestContext}\n />\n </div>\n <WorkflowBadgeStepDetail requestContext={requestContext} />\n </WorkflowStepDetailProvider>\n </WorkflowSelectedStepProvider>\n </>\n );\n};\n\nconst WorkflowBadgeStepDetail = ({ requestContext }: { requestContext: Record<string, any> }) => {\n const { stepDetail } = useWorkflowStepDetail();\n if (!stepDetail) return null;\n return (\n <div className=\"mt-2 flex max-h-[60vh] flex-col overflow-hidden rounded-md border border-border bg-background\">\n <WorkflowStepDetailContent requestContext={requestContext} />\n </div>\n );\n};\n\n// eslint-disable-next-line react-refresh/only-export-components\nexport const useWorkflowStream = (workflowFullState?: WorkflowRunStreamResult) => {\n const { setResult } = useContext(WorkflowRunContext);\n\n useEffect(() => {\n if (!workflowFullState) return;\n setResult(workflowFullState);\n }, [workflowFullState, setResult]);\n};\n"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@ const agents = require('@mastra/react/hooks/agents');
7
7
  const lucideReact = require('lucide-react');
8
8
  const React = require('react');
9
9
  const domains_chat_context_toolCallContext = require('../context/tool-call-context.cjs.js');
10
- const plan = require('../../../plan-CL-lbDuy.cjs');
10
+ const plan = require('../../../plan-ColU7p3H.cjs');
11
11
  const Button = require('../../../Button-CAVPKK09.cjs');
12
12
  const skeleton = require('../../../skeleton-bUFvB8ok.cjs');
13
13
  const textarea = require('../../../textarea-Cy51PMd4.cjs');
@@ -3,7 +3,7 @@ import { useAgentPlan } from '@mastra/react/hooks/agents';
3
3
  import { X, MessageSquareText, Check } from 'lucide-react';
4
4
  import { useState } from 'react';
5
5
  import { useToolCall } from '../context/tool-call-context.es.js';
6
- import { P as Plan, h as PlanHeader, k as PlanLabel, i as PlanHeaderActions, e as PlanCopyButton, b as PlanBody, j as PlanIntro, o as PlanTitle, m as PlanPath, l as PlanMain, c as PlanContent, f as PlanExpandButton, n as PlanStatus } from '../../../plan-TXWANP1R.js';
6
+ import { P as Plan, h as PlanHeader, k as PlanLabel, i as PlanHeaderActions, e as PlanCopyButton, b as PlanBody, j as PlanIntro, o as PlanTitle, m as PlanPath, l as PlanMain, c as PlanContent, f as PlanExpandButton, n as PlanStatus } from '../../../plan-CBiLa54G.js';
7
7
  import { B as Button } from '../../../Button-60jVnaHt.js';
8
8
  import { S as Skeleton } from '../../../skeleton-Bjxvf3Y-.js';
9
9
  import { T as Textarea } from '../../../textarea-Bl3htAGs.js';
@@ -9,7 +9,7 @@ const Button = require('../../../Button-CAVPKK09.cjs');
9
9
  const buttonsGroup = require('../../../buttons-group-C2lPe7sm.cjs');
10
10
  const copyButton = require('../../../copy-button-5tVWqoTk.cjs');
11
11
  const dataKeysAndValues = require('../../../data-keys-and-values-C1I--hWn.cjs');
12
- const dataPanel = require('../../../data-panel-Wjgbl6zx.cjs');
12
+ const dataPanel = require('../../../data-panel-CtFwwsPs.cjs');
13
13
  const Txt = require('../../../Txt-DXjXpX9r.cjs');
14
14
  const utils_dateFormat = require('../../../utils/date-format.cjs.js');
15
15
 
@@ -5,7 +5,7 @@ import { B as Button } from '../../../Button-60jVnaHt.js';
5
5
  import { B as ButtonsGroup } from '../../../buttons-group-BU9ErJSH.js';
6
6
  import { C as CopyButton } from '../../../copy-button-Af_Qt7G1.js';
7
7
  import { D as DataKeysAndValues } from '../../../data-keys-and-values-B1u00ihh.js';
8
- import { D as DataPanel } from '../../../data-panel-BdCw3F_h.js';
8
+ import { D as DataPanel } from '../../../data-panel-CwIdwpov.js';
9
9
  import { T as Txt } from '../../../Txt-BuzYj7Vy.js';
10
10
  import { formatTimestampPrecise } from '../../../utils/date-format.es.js';
11
11
 
@@ -5,10 +5,10 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
5
5
  const jsxRuntime = require('react/jsx-runtime');
6
6
  const reactVirtual = require('@tanstack/react-virtual');
7
7
  const React = require('react');
8
- require('../../../data-list-BLfHObw8.cjs');
9
- const dataListSkeleton = require('../../../data-list-skeleton-BGJD4qMF.cjs');
8
+ require('../../../data-list-2svaWtkq.cjs');
9
+ const dataListSkeleton = require('../../../data-list-skeleton-C-j6Sf0F.cjs');
10
10
  const useDataListKeyboard = require('../../../use-data-list-keyboard-DF3tLe10.cjs');
11
- const logsDataList = require('../../../logs-data-list-CaXnNnC5.cjs');
11
+ const logsDataList = require('../../../logs-data-list-D4sVbF23.cjs');
12
12
 
13
13
  const COLUMNS = "6rem 9rem 5rem 10rem minmax(8rem,1fr) minmax(8rem,1fr)";
14
14
  const ROW_HEIGHT = 36;
@@ -1,10 +1,10 @@
1
1
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
2
  import { useVirtualizer } from '@tanstack/react-virtual';
3
3
  import { useRef, useEffect } from 'react';
4
- import '../../../data-list-B2ArWwsJ.js';
5
- import { D as DataListSkeleton } from '../../../data-list-skeleton-BNsWWamC.js';
4
+ import '../../../data-list-BbOYiz4B.js';
5
+ import { D as DataListSkeleton } from '../../../data-list-skeleton-C9Zm5XMX.js';
6
6
  import { u as useDataListKeyboard } from '../../../use-data-list-keyboard-DFQr4t38.js';
7
- import { L as LogsDataList } from '../../../logs-data-list-B-gmgU74.js';
7
+ import { L as LogsDataList } from '../../../logs-data-list-0_z4s0Sj.js';
8
8
 
9
9
  const COLUMNS = "6rem 9rem 5rem 10rem minmax(8rem,1fr) minmax(8rem,1fr)";
10
10
  const ROW_HEIGHT = 36;
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
5
  const jsxRuntime = require('react/jsx-runtime');
6
- const propertyFilterApplied = require('../../../property-filter-applied-BBvaTC4B.cjs');
6
+ const propertyFilterApplied = require('../../../property-filter-applied-CpelyBH9.cjs');
7
7
  const utils_cn = require('../../../cn-TqD01zH-.cjs');
8
8
 
9
9
  function LogsToolbar({
@@ -1,5 +1,5 @@
1
1
  import { jsxs, jsx } from 'react/jsx-runtime';
2
- import { P as PropertyFilterApplied, a as PropertyFilterActions } from '../../../property-filter-applied-Ru3OQoGo.js';
2
+ import { P as PropertyFilterApplied, a as PropertyFilterActions } from '../../../property-filter-applied-BCeGn2zQ.js';
3
3
  import { c as cn } from '../../../cn-coERSHz5.js';
4
4
 
5
5
  function LogsToolbar({
@@ -12,7 +12,7 @@ const domains_metrics_lib_metricsBuckets = require('../lib/metrics-buckets.cjs.j
12
12
  const domains_metrics_components_chartArea = require('./chart-area.cjs.js');
13
13
  const domains_metrics_components_chartCard = require('./chart-card.cjs.js');
14
14
  const domains_metrics_components_chartCardError = require('./chart-card-error.cjs.js');
15
- const metricsCard = require('../../../metrics-card-CxOVpP1t.cjs');
15
+ const metricsCard = require('../../../metrics-card-CcesVPLN.cjs');
16
16
  const metricsStackedBarChart = require('../../../metrics-stacked-bar-chart-BKhaGInr.cjs');
17
17
 
18
18
  const SERIES = [
@@ -8,7 +8,7 @@ import { bucketPlan, bucketWindow } from '../lib/metrics-buckets.es.js';
8
8
  import { ChartArea } from './chart-area.es.js';
9
9
  import { ChartCard } from './chart-card.es.js';
10
10
  import { ChartCardError } from './chart-card-error.es.js';
11
- import { M as MetricsCard } from '../../../metrics-card-C33VsuXf.js';
11
+ import { M as MetricsCard } from '../../../metrics-card-BI5okAsj.js';
12
12
  import { M as MetricsStackedBarChart } from '../../../metrics-stacked-bar-chart-3MKRp0RI.js';
13
13
 
14
14
  const SERIES = [
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
5
  const jsxRuntime = require('react/jsx-runtime');
6
- const metricsCard = require('../../../metrics-card-CxOVpP1t.cjs');
6
+ const metricsCard = require('../../../metrics-card-CcesVPLN.cjs');
7
7
 
8
8
  function ChartArea({ isEmpty = false, emptyMessage = "No data in this range.", children }) {
9
9
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative flex min-h-0 flex-1 flex-col", children: [
@@ -1,5 +1,5 @@
1
1
  import { jsxs, jsx } from 'react/jsx-runtime';
2
- import { M as MetricsCard } from '../../../metrics-card-C33VsuXf.js';
2
+ import { M as MetricsCard } from '../../../metrics-card-BI5okAsj.js';
3
3
 
4
4
  function ChartArea({ isEmpty = false, emptyMessage = "No data in this range.", children }) {
5
5
  return /* @__PURE__ */ jsxs("div", { className: "relative flex min-h-0 flex-1 flex-col", children: [
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
5
  const jsxRuntime = require('react/jsx-runtime');
6
- const metricsCard = require('../../../metrics-card-CxOVpP1t.cjs');
6
+ const metricsCard = require('../../../metrics-card-CcesVPLN.cjs');
7
7
 
8
8
  function ChartCardError() {
9
9
  return /* @__PURE__ */ jsxRuntime.jsx(metricsCard.MetricsCard.Error, { message: "Couldn't load this data. Try again in a moment.", className: "h-full" });
@@ -1,5 +1,5 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
- import { M as MetricsCard } from '../../../metrics-card-C33VsuXf.js';
2
+ import { M as MetricsCard } from '../../../metrics-card-BI5okAsj.js';
3
3
 
4
4
  function ChartCardError() {
5
5
  return /* @__PURE__ */ jsx(MetricsCard.Error, { message: "Couldn't load this data. Try again in a moment.", className: "h-full" });
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
5
  const jsxRuntime = require('react/jsx-runtime');
6
- const metricsCard = require('../../../metrics-card-CxOVpP1t.cjs');
6
+ const metricsCard = require('../../../metrics-card-CcesVPLN.cjs');
7
7
  const utils_cn = require('../../../cn-TqD01zH-.cjs');
8
8
 
9
9
  function ChartCard({
@@ -1,5 +1,5 @@
1
1
  import { jsxs, jsx } from 'react/jsx-runtime';
2
- import { M as MetricsCard } from '../../../metrics-card-C33VsuXf.js';
2
+ import { M as MetricsCard } from '../../../metrics-card-BI5okAsj.js';
3
3
  import { c as cn } from '../../../cn-coERSHz5.js';
4
4
 
5
5
  function ChartCard({
@@ -4,49 +4,10 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
5
  const jsxRuntime = require('react/jsx-runtime');
6
6
  const React = require('react');
7
- const dateTimeRangePicker = require('../../../date-time-range-picker-ByNvjYuV.cjs');
7
+ const dateTimeRangePicker = require('../../../date-time-range-picker-DQa5XLST.cjs');
8
8
  const domains_metrics_hooks_useMetrics = require('../hooks/use-metrics.cjs.js');
9
+ const domains_metrics_metricsDatePresets = require('../metrics-date-presets.cjs.js');
9
10
 
10
- const METRICS_PRESETS = [
11
- "last-24h",
12
- "last-3d",
13
- "last-7d",
14
- "last-14d",
15
- "last-30d",
16
- "custom"
17
- ];
18
- function toPickerPreset(preset) {
19
- switch (preset) {
20
- case "3d":
21
- return "last-3d";
22
- case "7d":
23
- return "last-7d";
24
- case "14d":
25
- return "last-14d";
26
- case "30d":
27
- return "last-30d";
28
- case "custom":
29
- return "custom";
30
- default:
31
- return "last-24h";
32
- }
33
- }
34
- function fromPickerPreset(preset) {
35
- switch (preset) {
36
- case "last-3d":
37
- return "3d";
38
- case "last-7d":
39
- return "7d";
40
- case "last-14d":
41
- return "14d";
42
- case "last-30d":
43
- return "30d";
44
- case "custom":
45
- return "custom";
46
- default:
47
- return "24h";
48
- }
49
- }
50
11
  function DateRangeSelector() {
51
12
  const { datePreset, setDatePreset, customRange, setCustomRange } = domains_metrics_hooks_useMetrics.useMetrics();
52
13
  const presetRef = React.useRef(datePreset);
@@ -56,9 +17,9 @@ function DateRangeSelector() {
56
17
  return /* @__PURE__ */ jsxRuntime.jsx(
57
18
  dateTimeRangePicker.DateTimeRangePicker,
58
19
  {
59
- preset: toPickerPreset(datePreset),
20
+ preset: domains_metrics_metricsDatePresets.toPickerPreset(datePreset),
60
21
  onPresetChange: (next) => {
61
- const mapped = fromPickerPreset(next);
22
+ const mapped = domains_metrics_metricsDatePresets.fromPickerPreset(next);
62
23
  presetRef.current = mapped;
63
24
  setDatePreset(mapped);
64
25
  },
@@ -70,7 +31,7 @@ function DateRangeSelector() {
70
31
  customRangeRef.current = next;
71
32
  setCustomRange(next);
72
33
  },
73
- presets: METRICS_PRESETS
34
+ presets: domains_metrics_metricsDatePresets.METRICS_PICKER_PRESETS
74
35
  }
75
36
  );
76
37
  }
@@ -1 +1 @@
1
- {"version":3,"file":"date-range-selector.cjs.js","sources":["../../../../src/domains/metrics/components/date-range-selector.tsx"],"sourcesContent":["import { useRef } from 'react';\nimport { DateTimeRangePicker } from '../../../ds/components/DateTimeRangePicker';\nimport type { DateRangePreset } from '../../../ds/components/DateTimeRangePicker';\nimport { useMetrics } from '../hooks/use-metrics';\nimport type { DatePreset } from '../hooks/use-metrics';\n\nconst METRICS_PRESETS: readonly DateRangePreset[] = [\n 'last-24h',\n 'last-3d',\n 'last-7d',\n 'last-14d',\n 'last-30d',\n 'custom',\n];\n\nfunction toPickerPreset(preset: DatePreset): DateRangePreset {\n switch (preset) {\n case '3d':\n return 'last-3d';\n case '7d':\n return 'last-7d';\n case '14d':\n return 'last-14d';\n case '30d':\n return 'last-30d';\n case 'custom':\n return 'custom';\n default:\n return 'last-24h';\n }\n}\n\nfunction fromPickerPreset(preset: DateRangePreset): DatePreset {\n switch (preset) {\n case 'last-3d':\n return '3d';\n case 'last-7d':\n return '7d';\n case 'last-14d':\n return '14d';\n case 'last-30d':\n return '30d';\n case 'custom':\n return 'custom';\n default:\n return '24h';\n }\n}\n\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_PRESETS}\n />\n );\n}\n"],"names":["useMetrics","useRef","jsx","DateTimeRangePicker"],"mappings":";;;;;;;;;AAMA,MAAM,eAAA,GAA8C;AAAA,EAClD,UAAA;AAAA,EACA,SAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA,UAAA;AAAA,EACA;AACF,CAAA;AAEA,SAAS,eAAe,MAAA,EAAqC;AAC3D,EAAA,QAAQ,MAAA;AAAQ,IACd,KAAK,IAAA;AACH,MAAA,OAAO,SAAA;AAAA,IACT,KAAK,IAAA;AACH,MAAA,OAAO,SAAA;AAAA,IACT,KAAK,KAAA;AACH,MAAA,OAAO,UAAA;AAAA,IACT,KAAK,KAAA;AACH,MAAA,OAAO,UAAA;AAAA,IACT,KAAK,QAAA;AACH,MAAA,OAAO,QAAA;AAAA,IACT;AACE,MAAA,OAAO,UAAA;AAAA;AAEb;AAEA,SAAS,iBAAiB,MAAA,EAAqC;AAC7D,EAAA,QAAQ,MAAA;AAAQ,IACd,KAAK,SAAA;AACH,MAAA,OAAO,IAAA;AAAA,IACT,KAAK,SAAA;AACH,MAAA,OAAO,IAAA;AAAA,IACT,KAAK,UAAA;AACH,MAAA,OAAO,KAAA;AAAA,IACT,KAAK,UAAA;AACH,MAAA,OAAO,KAAA;AAAA,IACT,KAAK,QAAA;AACH,MAAA,OAAO,QAAA;AAAA,IACT;AACE,MAAA,OAAO,KAAA;AAAA;AAEb;AAEO,SAAS,iBAAA,GAAoB;AAClC,EAAA,MAAM,EAAE,UAAA,EAAY,aAAA,EAAe,WAAA,EAAa,cAAA,KAAmBA,2CAAA,EAAW;AAM9E,EAAA,MAAM,SAAA,GAAYC,aAAO,UAAU,CAAA;AACnC,EAAA,SAAA,CAAU,OAAA,GAAU,UAAA;AACpB,EAAA,MAAM,cAAA,GAAiBA,aAAO,WAAW,CAAA;AACzC,EAAA,cAAA,CAAe,OAAA,GAAU,WAAA;AAEzB,EAAA,uBACEC,cAAA;AAAA,IAACC,uCAAA;AAAA,IAAA;AAAA,MACC,MAAA,EAAQ,eAAe,UAAU,CAAA;AAAA,MACjC,gBAAgB,CAAA,IAAA,KAAQ;AACtB,QAAA,MAAM,MAAA,GAAS,iBAAiB,IAAI,CAAA;AACpC,QAAA,SAAA,CAAU,OAAA,GAAU,MAAA;AACpB,QAAA,aAAA,CAAc,MAAM,CAAA;AAAA,MACtB,CAAA;AAAA,MACA,UAAU,WAAA,EAAa,IAAA;AAAA,MACvB,QAAQ,WAAA,EAAa,EAAA;AAAA,MACrB,YAAA,EAAc,CAAC,KAAA,EAAO,IAAA,KAAS;AAC7B,QAAA,IAAI,SAAA,CAAU,YAAY,QAAA,EAAU;AACpC,QAAA,MAAM,IAAA,GAAO,EAAE,GAAG,cAAA,CAAe,SAAS,CAAC,IAAI,GAAG,KAAA,EAAM;AACxD,QAAA,cAAA,CAAe,OAAA,GAAU,IAAA;AACzB,QAAA,cAAA,CAAe,IAAI,CAAA;AAAA,MACrB,CAAA;AAAA,MACA,OAAA,EAAS;AAAA;AAAA,GACX;AAEJ;;;;"}
1
+ {"version":3,"file":"date-range-selector.cjs.js","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"],"names":["useMetrics","useRef","jsx","DateTimeRangePicker","toPickerPreset","fromPickerPreset","METRICS_PICKER_PRESETS"],"mappings":";;;;;;;;;;AAMO,SAAS,iBAAA,GAAoB;AAClC,EAAA,MAAM,EAAE,UAAA,EAAY,aAAA,EAAe,WAAA,EAAa,cAAA,KAAmBA,2CAAA,EAAW;AAM9E,EAAA,MAAM,SAAA,GAAYC,aAAO,UAAU,CAAA;AACnC,EAAA,SAAA,CAAU,OAAA,GAAU,UAAA;AACpB,EAAA,MAAM,cAAA,GAAiBA,aAAO,WAAW,CAAA;AACzC,EAAA,cAAA,CAAe,OAAA,GAAU,WAAA;AAEzB,EAAA,uBACEC,cAAA;AAAA,IAACC,uCAAA;AAAA,IAAA;AAAA,MACC,MAAA,EAAQC,kDAAe,UAAU,CAAA;AAAA,MACjC,gBAAgB,CAAA,IAAA,KAAQ;AACtB,QAAA,MAAM,MAAA,GAASC,oDAAiB,IAAI,CAAA;AACpC,QAAA,SAAA,CAAU,OAAA,GAAU,MAAA;AACpB,QAAA,aAAA,CAAc,MAAM,CAAA;AAAA,MACtB,CAAA;AAAA,MACA,UAAU,WAAA,EAAa,IAAA;AAAA,MACvB,QAAQ,WAAA,EAAa,EAAA;AAAA,MACrB,YAAA,EAAc,CAAC,KAAA,EAAO,IAAA,KAAS;AAC7B,QAAA,IAAI,SAAA,CAAU,YAAY,QAAA,EAAU;AACpC,QAAA,MAAM,IAAA,GAAO,EAAE,GAAG,cAAA,CAAe,SAAS,CAAC,IAAI,GAAG,KAAA,EAAM;AACxD,QAAA,cAAA,CAAe,OAAA,GAAU,IAAA;AACzB,QAAA,cAAA,CAAe,IAAI,CAAA;AAAA,MACrB,CAAA;AAAA,MACA,OAAA,EAASC;AAAA;AAAA,GACX;AAEJ;;;;"}
@@ -1,48 +1,9 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
2
  import { useRef } from 'react';
3
- import { D as DateTimeRangePicker } from '../../../date-time-range-picker-SU1Q1h1h.js';
3
+ import { D as DateTimeRangePicker } from '../../../date-time-range-picker-BT9qan60.js';
4
4
  import { useMetrics } from '../hooks/use-metrics.es.js';
5
+ import { METRICS_PICKER_PRESETS, toPickerPreset, fromPickerPreset } from '../metrics-date-presets.es.js';
5
6
 
6
- const METRICS_PRESETS = [
7
- "last-24h",
8
- "last-3d",
9
- "last-7d",
10
- "last-14d",
11
- "last-30d",
12
- "custom"
13
- ];
14
- function toPickerPreset(preset) {
15
- switch (preset) {
16
- case "3d":
17
- return "last-3d";
18
- case "7d":
19
- return "last-7d";
20
- case "14d":
21
- return "last-14d";
22
- case "30d":
23
- return "last-30d";
24
- case "custom":
25
- return "custom";
26
- default:
27
- return "last-24h";
28
- }
29
- }
30
- function fromPickerPreset(preset) {
31
- switch (preset) {
32
- case "last-3d":
33
- return "3d";
34
- case "last-7d":
35
- return "7d";
36
- case "last-14d":
37
- return "14d";
38
- case "last-30d":
39
- return "30d";
40
- case "custom":
41
- return "custom";
42
- default:
43
- return "24h";
44
- }
45
- }
46
7
  function DateRangeSelector() {
47
8
  const { datePreset, setDatePreset, customRange, setCustomRange } = useMetrics();
48
9
  const presetRef = useRef(datePreset);
@@ -66,7 +27,7 @@ function DateRangeSelector() {
66
27
  customRangeRef.current = next;
67
28
  setCustomRange(next);
68
29
  },
69
- presets: METRICS_PRESETS
30
+ presets: METRICS_PICKER_PRESETS
70
31
  }
71
32
  );
72
33
  }
@@ -1 +1 @@
1
- {"version":3,"file":"date-range-selector.es.js","sources":["../../../../src/domains/metrics/components/date-range-selector.tsx"],"sourcesContent":["import { useRef } from 'react';\nimport { DateTimeRangePicker } from '../../../ds/components/DateTimeRangePicker';\nimport type { DateRangePreset } from '../../../ds/components/DateTimeRangePicker';\nimport { useMetrics } from '../hooks/use-metrics';\nimport type { DatePreset } from '../hooks/use-metrics';\n\nconst METRICS_PRESETS: readonly DateRangePreset[] = [\n 'last-24h',\n 'last-3d',\n 'last-7d',\n 'last-14d',\n 'last-30d',\n 'custom',\n];\n\nfunction toPickerPreset(preset: DatePreset): DateRangePreset {\n switch (preset) {\n case '3d':\n return 'last-3d';\n case '7d':\n return 'last-7d';\n case '14d':\n return 'last-14d';\n case '30d':\n return 'last-30d';\n case 'custom':\n return 'custom';\n default:\n return 'last-24h';\n }\n}\n\nfunction fromPickerPreset(preset: DateRangePreset): DatePreset {\n switch (preset) {\n case 'last-3d':\n return '3d';\n case 'last-7d':\n return '7d';\n case 'last-14d':\n return '14d';\n case 'last-30d':\n return '30d';\n case 'custom':\n return 'custom';\n default:\n return '24h';\n }\n}\n\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_PRESETS}\n />\n );\n}\n"],"names":[],"mappings":";;;;;AAMA,MAAM,eAAA,GAA8C;AAAA,EAClD,UAAA;AAAA,EACA,SAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA,UAAA;AAAA,EACA;AACF,CAAA;AAEA,SAAS,eAAe,MAAA,EAAqC;AAC3D,EAAA,QAAQ,MAAA;AAAQ,IACd,KAAK,IAAA;AACH,MAAA,OAAO,SAAA;AAAA,IACT,KAAK,IAAA;AACH,MAAA,OAAO,SAAA;AAAA,IACT,KAAK,KAAA;AACH,MAAA,OAAO,UAAA;AAAA,IACT,KAAK,KAAA;AACH,MAAA,OAAO,UAAA;AAAA,IACT,KAAK,QAAA;AACH,MAAA,OAAO,QAAA;AAAA,IACT;AACE,MAAA,OAAO,UAAA;AAAA;AAEb;AAEA,SAAS,iBAAiB,MAAA,EAAqC;AAC7D,EAAA,QAAQ,MAAA;AAAQ,IACd,KAAK,SAAA;AACH,MAAA,OAAO,IAAA;AAAA,IACT,KAAK,SAAA;AACH,MAAA,OAAO,IAAA;AAAA,IACT,KAAK,UAAA;AACH,MAAA,OAAO,KAAA;AAAA,IACT,KAAK,UAAA;AACH,MAAA,OAAO,KAAA;AAAA,IACT,KAAK,QAAA;AACH,MAAA,OAAO,QAAA;AAAA,IACT;AACE,MAAA,OAAO,KAAA;AAAA;AAEb;AAEO,SAAS,iBAAA,GAAoB;AAClC,EAAA,MAAM,EAAE,UAAA,EAAY,aAAA,EAAe,WAAA,EAAa,cAAA,KAAmB,UAAA,EAAW;AAM9E,EAAA,MAAM,SAAA,GAAY,OAAO,UAAU,CAAA;AACnC,EAAA,SAAA,CAAU,OAAA,GAAU,UAAA;AACpB,EAAA,MAAM,cAAA,GAAiB,OAAO,WAAW,CAAA;AACzC,EAAA,cAAA,CAAe,OAAA,GAAU,WAAA;AAEzB,EAAA,uBACE,GAAA;AAAA,IAAC,mBAAA;AAAA,IAAA;AAAA,MACC,MAAA,EAAQ,eAAe,UAAU,CAAA;AAAA,MACjC,gBAAgB,CAAA,IAAA,KAAQ;AACtB,QAAA,MAAM,MAAA,GAAS,iBAAiB,IAAI,CAAA;AACpC,QAAA,SAAA,CAAU,OAAA,GAAU,MAAA;AACpB,QAAA,aAAA,CAAc,MAAM,CAAA;AAAA,MACtB,CAAA;AAAA,MACA,UAAU,WAAA,EAAa,IAAA;AAAA,MACvB,QAAQ,WAAA,EAAa,EAAA;AAAA,MACrB,YAAA,EAAc,CAAC,KAAA,EAAO,IAAA,KAAS;AAC7B,QAAA,IAAI,SAAA,CAAU,YAAY,QAAA,EAAU;AACpC,QAAA,MAAM,IAAA,GAAO,EAAE,GAAG,cAAA,CAAe,SAAS,CAAC,IAAI,GAAG,KAAA,EAAM;AACxD,QAAA,cAAA,CAAe,OAAA,GAAU,IAAA;AACzB,QAAA,cAAA,CAAe,IAAI,CAAA;AAAA,MACrB,CAAA;AAAA,MACA,OAAA,EAAS;AAAA;AAAA,GACX;AAEJ;;;;"}
1
+ {"version":3,"file":"date-range-selector.es.js","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"],"names":[],"mappings":";;;;;;AAMO,SAAS,iBAAA,GAAoB;AAClC,EAAA,MAAM,EAAE,UAAA,EAAY,aAAA,EAAe,WAAA,EAAa,cAAA,KAAmB,UAAA,EAAW;AAM9E,EAAA,MAAM,SAAA,GAAY,OAAO,UAAU,CAAA;AACnC,EAAA,SAAA,CAAU,OAAA,GAAU,UAAA;AACpB,EAAA,MAAM,cAAA,GAAiB,OAAO,WAAW,CAAA;AACzC,EAAA,cAAA,CAAe,OAAA,GAAU,WAAA;AAEzB,EAAA,uBACE,GAAA;AAAA,IAAC,mBAAA;AAAA,IAAA;AAAA,MACC,MAAA,EAAQ,eAAe,UAAU,CAAA;AAAA,MACjC,gBAAgB,CAAA,IAAA,KAAQ;AACtB,QAAA,MAAM,MAAA,GAAS,iBAAiB,IAAI,CAAA;AACpC,QAAA,SAAA,CAAU,OAAA,GAAU,MAAA;AACpB,QAAA,aAAA,CAAc,MAAM,CAAA;AAAA,MACtB,CAAA;AAAA,MACA,UAAU,WAAA,EAAa,IAAA;AAAA,MACvB,QAAQ,WAAA,EAAa,EAAA;AAAA,MACrB,YAAA,EAAc,CAAC,KAAA,EAAO,IAAA,KAAS;AAC7B,QAAA,IAAI,SAAA,CAAU,YAAY,QAAA,EAAU;AACpC,QAAA,MAAM,IAAA,GAAO,EAAE,GAAG,cAAA,CAAe,SAAS,CAAC,IAAI,GAAG,KAAA,EAAM;AACxD,QAAA,cAAA,CAAe,OAAA,GAAU,IAAA;AACzB,QAAA,cAAA,CAAe,IAAI,CAAA;AAAA,MACrB,CAAA;AAAA,MACA,OAAA,EAAS;AAAA;AAAA,GACX;AAEJ;;;;"}