@mastra/playground-ui 62.0.0-alpha.2 → 62.0.0-alpha.4

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 (492) hide show
  1. package/dist/{activity-maXCNWZp.js → activity-BsrB5ADa.js} +7 -5
  2. package/dist/activity-BsrB5ADa.js.map +1 -0
  3. package/dist/{activity-pXCpwxxi.cjs → activity-CaFdLiPz.cjs} +6 -4
  4. package/dist/activity-CaFdLiPz.cjs.map +1 -0
  5. package/dist/app-shell.css +7 -0
  6. package/dist/{ask-user-card-C14RGsoO.cjs → ask-user-card-BHIYyRdy.cjs} +2 -2
  7. package/dist/{ask-user-card-C14RGsoO.cjs.map → ask-user-card-BHIYyRdy.cjs.map} +1 -1
  8. package/dist/{ask-user-card-C01JQ7bo.js → ask-user-card-BaaCfWFs.js} +2 -2
  9. package/dist/{ask-user-card-C01JQ7bo.js.map → ask-user-card-BaaCfWFs.js.map} +1 -1
  10. package/dist/{collapsible-BzlQAuym.cjs → collapsible-C6BZhVRG.cjs} +2 -10
  11. package/dist/collapsible-C6BZhVRG.cjs.map +1 -0
  12. package/dist/{collapsible-8h5KBZPX.js → collapsible-DglEffBF.js} +2 -10
  13. package/dist/collapsible-DglEffBF.js.map +1 -0
  14. package/dist/{combobox-8_JEWMYs.js → combobox-CMu7NDj6.js} +10 -2
  15. package/dist/combobox-CMu7NDj6.js.map +1 -0
  16. package/dist/{combobox-Csiduxme.cjs → combobox-DW7-4bGp.cjs} +10 -2
  17. package/dist/combobox-DW7-4bGp.cjs.map +1 -0
  18. package/dist/{command-C-i5cx8D.js → command-BW5Jyad6.js} +4 -2
  19. package/dist/command-BW5Jyad6.js.map +1 -0
  20. package/dist/{command-Cq-K24jI.cjs → command-Bv53_kMY.cjs} +4 -2
  21. package/dist/command-Bv53_kMY.cjs.map +1 -0
  22. package/dist/components/ClampedText.cjs.js +2 -2
  23. package/dist/components/ClampedText.cjs.js.map +1 -1
  24. package/dist/components/ClampedText.es.js +2 -2
  25. package/dist/components/ClampedText.es.js.map +1 -1
  26. package/dist/components/Collapsible.cjs.js +1 -1
  27. package/dist/components/Collapsible.es.js +1 -1
  28. package/dist/components/Combobox.cjs.js +1 -1
  29. package/dist/components/Combobox.es.js +1 -1
  30. package/dist/components/Command.cjs.js +1 -1
  31. package/dist/components/Command.es.js +1 -1
  32. package/dist/components/CommandPalette.cjs.js +1 -1
  33. package/dist/components/CommandPalette.es.js +1 -1
  34. package/dist/components/Comment.cjs.js +1 -1
  35. package/dist/components/Comment.es.js +1 -1
  36. package/dist/components/Composer.cjs.js +1 -1
  37. package/dist/components/Composer.es.js +1 -1
  38. package/dist/components/DataCodeSection.cjs.js +1 -1
  39. package/dist/components/DataCodeSection.es.js +1 -1
  40. package/dist/components/DataList.cjs.js +3 -3
  41. package/dist/components/DataList.es.js +4 -4
  42. package/dist/components/DataPanel.cjs.js +1 -1
  43. package/dist/components/DataPanel.es.js +1 -1
  44. package/dist/components/DateTimePicker.cjs.js +1 -1
  45. package/dist/components/DateTimePicker.es.js +1 -1
  46. package/dist/components/DateTimeRangePicker.cjs.js +1 -1
  47. package/dist/components/DateTimeRangePicker.es.js +1 -1
  48. package/dist/components/DisclosureChevron.cjs.js +10 -0
  49. package/dist/components/DisclosureChevron.cjs.js.map +1 -0
  50. package/dist/components/DisclosureChevron.d.ts +2 -0
  51. package/dist/components/DisclosureChevron.es.js +2 -0
  52. package/dist/components/DisclosureChevron.es.js.map +1 -0
  53. package/dist/components/EnvironmentVariablesEditor.cjs.js +2 -2
  54. package/dist/components/EnvironmentVariablesEditor.es.js +2 -2
  55. package/dist/components/FilterBar.cjs.js +3 -1
  56. package/dist/components/FilterBar.cjs.js.map +1 -1
  57. package/dist/components/FilterBar.es.js +4 -2
  58. package/dist/components/FilterBar.es.js.map +1 -1
  59. package/dist/components/FormFieldBlocks.cjs.js +1 -1
  60. package/dist/components/FormFieldBlocks.es.js +1 -1
  61. package/dist/components/Input.cjs.js +1 -1
  62. package/dist/components/Input.es.js +1 -1
  63. package/dist/components/InputGroup.cjs.js +1 -1
  64. package/dist/components/InputGroup.es.js +1 -1
  65. package/dist/components/InputNumber.cjs.js +5 -3
  66. package/dist/components/InputNumber.cjs.js.map +1 -1
  67. package/dist/components/InputNumber.es.js +5 -3
  68. package/dist/components/InputNumber.es.js.map +1 -1
  69. package/dist/components/JSONSchemaForm.cjs.js +1 -1
  70. package/dist/components/JSONSchemaForm.es.js +1 -1
  71. package/dist/components/ListSearch.cjs.js +1 -1
  72. package/dist/components/ListSearch.es.js +1 -1
  73. package/dist/components/LogsDataList.cjs.js +3 -3
  74. package/dist/components/LogsDataList.es.js +3 -3
  75. package/dist/components/PageLayout.cjs.js +1 -1
  76. package/dist/components/PageLayout.cjs.js.map +1 -1
  77. package/dist/components/PageLayout.es.js +1 -1
  78. package/dist/components/PageLayout.es.js.map +1 -1
  79. package/dist/components/PropertyFilter.cjs.js +2 -2
  80. package/dist/components/PropertyFilter.es.js +3 -3
  81. package/dist/components/RuleBuilder.cjs.js +1 -1
  82. package/dist/components/RuleBuilder.es.js +1 -1
  83. package/dist/components/SavedViews.cjs.js +3 -1
  84. package/dist/components/SavedViews.cjs.js.map +1 -1
  85. package/dist/components/SavedViews.es.js +3 -1
  86. package/dist/components/SavedViews.es.js.map +1 -1
  87. package/dist/components/SearchInput.cjs.js +1 -1
  88. package/dist/components/SearchInput.es.js +1 -1
  89. package/dist/components/Sidebar.cjs.js +5 -4
  90. package/dist/components/Sidebar.cjs.js.map +1 -1
  91. package/dist/components/Sidebar.es.js +5 -4
  92. package/dist/components/Sidebar.es.js.map +1 -1
  93. package/dist/components/Tree.cjs.js +1 -1
  94. package/dist/components/Tree.es.js +1 -1
  95. package/dist/components/Workflow.cjs.js +1 -1
  96. package/dist/components/Workflow.es.js +1 -1
  97. package/dist/components/ai/activity.cjs.js +4 -4
  98. package/dist/components/ai/activity.es.js +4 -4
  99. package/dist/components/ai/ask-user.cjs.js +1 -1
  100. package/dist/components/ai/ask-user.es.js +1 -1
  101. package/dist/components/ai/tool-approval.cjs.js +1 -1
  102. package/dist/components/ai/tool-approval.es.js +1 -1
  103. package/dist/components/ai/tool-call.cjs.js +1 -1
  104. package/dist/components/ai/tool-call.es.js +1 -1
  105. package/dist/{composer-DhxSetWI.cjs → composer-Cg5bXN1r.cjs} +5 -3
  106. package/dist/composer-Cg5bXN1r.cjs.map +1 -0
  107. package/dist/{composer-CIfMr8q5.js → composer-CxmOOUX8.js} +5 -3
  108. package/dist/composer-CxmOOUX8.js.map +1 -0
  109. package/dist/{data-code-section-CvLs4lM8.js → data-code-section-B1dGZ0ds.js} +2 -2
  110. package/dist/{data-code-section-CvLs4lM8.js.map → data-code-section-B1dGZ0ds.js.map} +1 -1
  111. package/dist/{data-code-section-D0NR1REP.cjs → data-code-section-BTZPG2zM.cjs} +2 -2
  112. package/dist/{data-code-section-D0NR1REP.cjs.map → data-code-section-BTZPG2zM.cjs.map} +1 -1
  113. package/dist/{data-list-BfepBJLG.js → data-list-4UMxoFNU.js} +192 -11
  114. package/dist/data-list-4UMxoFNU.js.map +1 -0
  115. package/dist/{data-list-oQsJVUa6.cjs → data-list-CqVYt2aN.cjs} +191 -10
  116. package/dist/data-list-CqVYt2aN.cjs.map +1 -0
  117. package/dist/{data-list-skeleton-BE7yRNks.cjs → data-list-skeleton-BMGppDAy.cjs} +3 -3
  118. package/dist/data-list-skeleton-BMGppDAy.cjs.map +1 -0
  119. package/dist/{data-list-skeleton-DnVnqTGL.js → data-list-skeleton-DGNzfd4Y.js} +3 -3
  120. package/dist/data-list-skeleton-DGNzfd4Y.js.map +1 -0
  121. package/dist/{data-panel-BLk0mZe6.js → data-panel-VYp4slDb.js} +2 -2
  122. package/dist/{data-panel-BLk0mZe6.js.map → data-panel-VYp4slDb.js.map} +1 -1
  123. package/dist/{data-panel-BaqnMzRn.cjs → data-panel-r1LYHphg.cjs} +2 -2
  124. package/dist/{data-panel-BaqnMzRn.cjs.map → data-panel-r1LYHphg.cjs.map} +1 -1
  125. package/dist/date-time-range-picker-BBbF3LWF.cjs +210 -0
  126. package/dist/date-time-range-picker-BBbF3LWF.cjs.map +1 -0
  127. package/dist/date-time-range-picker-CUUg0sIl.js +208 -0
  128. package/dist/date-time-range-picker-CUUg0sIl.js.map +1 -0
  129. package/dist/disclosure-chevron-BWZ8Alz1.js +33 -0
  130. package/dist/disclosure-chevron-BWZ8Alz1.js.map +1 -0
  131. package/dist/disclosure-chevron-B_gmYFR5.cjs +35 -0
  132. package/dist/disclosure-chevron-B_gmYFR5.cjs.map +1 -0
  133. package/dist/domains/chat/attachments/composer-attachment-list.cjs.js +1 -1
  134. package/dist/domains/chat/attachments/composer-attachment-list.es.js +1 -1
  135. package/dist/domains/chat/components/badge-wrapper.cjs.js +1 -1
  136. package/dist/domains/chat/components/badge-wrapper.es.js +1 -1
  137. package/dist/domains/chat/context/chat-context.cjs.js.map +1 -1
  138. package/dist/domains/chat/context/chat-context.es.js.map +1 -1
  139. package/dist/domains/chat/messages/message-row.cjs.js +2 -2
  140. package/dist/domains/chat/messages/message-row.es.js +2 -2
  141. package/dist/domains/chat/messages/notification-signal-notice.cjs.js +1 -1
  142. package/dist/domains/chat/messages/notification-signal-notice.es.js +1 -1
  143. package/dist/domains/chat/messages/renderers/message-text.cjs.js +16 -8
  144. package/dist/domains/chat/messages/renderers/message-text.cjs.js.map +1 -1
  145. package/dist/domains/chat/messages/renderers/message-text.es.js +17 -9
  146. package/dist/domains/chat/messages/renderers/message-text.es.js.map +1 -1
  147. package/dist/domains/chat/messages/renderers/reasoning-part-renderer.cjs.js +1 -1
  148. package/dist/domains/chat/messages/renderers/reasoning-part-renderer.es.js +1 -1
  149. package/dist/domains/chat/messages/signal-badge.cjs.js +1 -1
  150. package/dist/domains/chat/messages/signal-badge.es.js +1 -1
  151. package/dist/domains/chat/messages/skill-message.cjs.js +2 -2
  152. package/dist/domains/chat/messages/skill-message.es.js +2 -2
  153. package/dist/domains/chat/messages/system-reminder-badge.cjs.js +1 -1
  154. package/dist/domains/chat/messages/system-reminder-badge.es.js +1 -1
  155. package/dist/domains/chat/tools/badges/agent-badge-wrapper.cjs.js +1 -1
  156. package/dist/domains/chat/tools/badges/agent-badge-wrapper.es.js +1 -1
  157. package/dist/domains/chat/tools/badges/agent-badge.cjs.js +1 -1
  158. package/dist/domains/chat/tools/badges/agent-badge.es.js +1 -1
  159. package/dist/domains/chat/tools/badges/ask-user-badge.cjs.js +1 -1
  160. package/dist/domains/chat/tools/badges/ask-user-badge.es.js +1 -1
  161. package/dist/domains/chat/tools/badges/observation-marker-badge.cjs.js +1 -1
  162. package/dist/domains/chat/tools/badges/observation-marker-badge.es.js +1 -1
  163. package/dist/domains/chat/tools/badges/observation-marker-details.cjs.js +1 -1
  164. package/dist/domains/chat/tools/badges/observation-marker-details.es.js +1 -1
  165. package/dist/domains/chat/tools/badges/tool-approval-badge.cjs.js +1 -1
  166. package/dist/domains/chat/tools/badges/tool-approval-badge.es.js +1 -1
  167. package/dist/domains/chat/tools/badges/workflow-badge.cjs.js +1 -2
  168. package/dist/domains/chat/tools/badges/workflow-badge.cjs.js.map +1 -1
  169. package/dist/domains/chat/tools/badges/workflow-badge.es.js +1 -2
  170. package/dist/domains/chat/tools/badges/workflow-badge.es.js.map +1 -1
  171. package/dist/domains/chat/tools/tool-card.cjs.js +1 -1
  172. package/dist/domains/chat/tools/tool-card.es.js +1 -1
  173. package/dist/domains/logs/components/log-data-panel.cjs.js +1 -1
  174. package/dist/domains/logs/components/log-data-panel.es.js +1 -1
  175. package/dist/domains/logs/components/logs-list-view.cjs.js +3 -3
  176. package/dist/domains/logs/components/logs-list-view.es.js +3 -3
  177. package/dist/domains/logs/components/logs-toolbar.cjs.js +1 -1
  178. package/dist/domains/logs/components/logs-toolbar.es.js +1 -1
  179. package/dist/domains/metrics/components/agent-runs-card.cjs.js +0 -1
  180. package/dist/domains/metrics/components/agent-runs-card.cjs.js.map +1 -1
  181. package/dist/domains/metrics/components/agent-runs-card.es.js +0 -1
  182. package/dist/domains/metrics/components/agent-runs-card.es.js.map +1 -1
  183. package/dist/domains/metrics/components/date-range-selector.cjs.js +1 -1
  184. package/dist/domains/metrics/components/date-range-selector.es.js +1 -1
  185. package/dist/domains/metrics/components/failure-rate-card.cjs.js +2 -1
  186. package/dist/domains/metrics/components/failure-rate-card.cjs.js.map +1 -1
  187. package/dist/domains/metrics/components/failure-rate-card.es.js +2 -1
  188. package/dist/domains/metrics/components/failure-rate-card.es.js.map +1 -1
  189. package/dist/domains/metrics/components/latency-card.cjs.js +0 -1
  190. package/dist/domains/metrics/components/latency-card.cjs.js.map +1 -1
  191. package/dist/domains/metrics/components/latency-card.es.js +0 -1
  192. package/dist/domains/metrics/components/latency-card.es.js.map +1 -1
  193. package/dist/domains/metrics/components/scores-card.cjs.js +0 -1
  194. package/dist/domains/metrics/components/scores-card.cjs.js.map +1 -1
  195. package/dist/domains/metrics/components/scores-card.es.js +0 -1
  196. package/dist/domains/metrics/components/scores-card.es.js.map +1 -1
  197. package/dist/domains/metrics/components/token-usage-card.cjs.js +0 -1
  198. package/dist/domains/metrics/components/token-usage-card.cjs.js.map +1 -1
  199. package/dist/domains/metrics/components/token-usage-card.es.js +0 -1
  200. package/dist/domains/metrics/components/token-usage-card.es.js.map +1 -1
  201. package/dist/domains/scores/components/score-data-panel.cjs.js +13 -11
  202. package/dist/domains/scores/components/score-data-panel.cjs.js.map +1 -1
  203. package/dist/domains/scores/components/score-data-panel.es.js +13 -11
  204. package/dist/domains/scores/components/score-data-panel.es.js.map +1 -1
  205. package/dist/domains/scores/components/span-scoring.cjs.js +1 -1
  206. package/dist/domains/scores/components/span-scoring.es.js +1 -1
  207. package/dist/domains/scores/components/trace-scores-tab.cjs.js +5 -21
  208. package/dist/domains/scores/components/trace-scores-tab.cjs.js.map +1 -1
  209. package/dist/domains/scores/components/trace-scores-tab.es.js +5 -21
  210. package/dist/domains/scores/components/trace-scores-tab.es.js.map +1 -1
  211. package/dist/domains/traces/components/feedback-thread.cjs.js +1 -1
  212. package/dist/domains/traces/components/feedback-thread.es.js +1 -1
  213. package/dist/domains/traces/components/span-data-panel-view.cjs.js +1 -1
  214. package/dist/domains/traces/components/span-data-panel-view.es.js +1 -1
  215. package/dist/domains/traces/components/span-payload/span-error-renderer.cjs.js +1 -1
  216. package/dist/domains/traces/components/span-payload/span-error-renderer.es.js +1 -1
  217. package/dist/domains/traces/components/span-payload/span-input-renderers.cjs.js +1 -1
  218. package/dist/domains/traces/components/span-payload/span-input-renderers.es.js +1 -1
  219. package/dist/domains/traces/components/span-payload/span-output-renderers.cjs.js +2 -2
  220. package/dist/domains/traces/components/span-payload/span-output-renderers.es.js +2 -2
  221. package/dist/domains/traces/components/span-payload/span-payload-messages.cjs.js +2 -2
  222. package/dist/domains/traces/components/span-payload/span-payload-messages.es.js +2 -2
  223. package/dist/domains/traces/components/span-payload/span-payload-primitives.cjs.js +3 -3
  224. package/dist/domains/traces/components/span-payload/span-payload-primitives.es.js +3 -3
  225. package/dist/domains/traces/components/span-payload/span-payload-processor.cjs.js +1 -1
  226. package/dist/domains/traces/components/span-payload/span-payload-processor.es.js +1 -1
  227. package/dist/domains/traces/components/span-payload/span-payload-tool.cjs.js +2 -2
  228. package/dist/domains/traces/components/span-payload/span-payload-tool.es.js +2 -2
  229. package/dist/domains/traces/components/span-payload/span-processor-attributes.cjs.js +1 -1
  230. package/dist/domains/traces/components/span-payload/span-processor-attributes.es.js +1 -1
  231. package/dist/domains/traces/components/span-summary-description.cjs.js +1 -1
  232. package/dist/domains/traces/components/span-summary-description.es.js +1 -1
  233. package/dist/domains/traces/components/thread-trace/thread-trace-details.cjs.js +1 -1
  234. package/dist/domains/traces/components/thread-trace/thread-trace-details.es.js +1 -1
  235. package/dist/domains/traces/components/thread-view-by-trace.cjs.js +0 -1
  236. package/dist/domains/traces/components/thread-view-by-trace.cjs.js.map +1 -1
  237. package/dist/domains/traces/components/thread-view-by-trace.es.js +0 -1
  238. package/dist/domains/traces/components/thread-view-by-trace.es.js.map +1 -1
  239. package/dist/domains/traces/components/trace-columns-menu.cjs.js +1 -1
  240. package/dist/domains/traces/components/trace-columns-menu.es.js +1 -1
  241. package/dist/domains/traces/components/trace-data-panel-view.cjs.js +56 -21
  242. package/dist/domains/traces/components/trace-data-panel-view.cjs.js.map +1 -1
  243. package/dist/domains/traces/components/trace-data-panel-view.es.js +57 -22
  244. package/dist/domains/traces/components/trace-data-panel-view.es.js.map +1 -1
  245. package/dist/domains/traces/components/trace-data-panel.cjs.js +4 -5
  246. package/dist/domains/traces/components/trace-data-panel.cjs.js.map +1 -1
  247. package/dist/domains/traces/components/trace-data-panel.es.js +4 -5
  248. package/dist/domains/traces/components/trace-data-panel.es.js.map +1 -1
  249. package/dist/domains/traces/components/trace-id-button.cjs.js +1 -1
  250. package/dist/domains/traces/components/trace-id-button.es.js +1 -1
  251. package/dist/domains/traces/components/trace-summary-description.cjs.js +1 -1
  252. package/dist/domains/traces/components/trace-summary-description.es.js +1 -1
  253. package/dist/domains/traces/components/trace-thread-panel.cjs.js +1 -1
  254. package/dist/domains/traces/components/trace-thread-panel.es.js +1 -1
  255. package/dist/domains/traces/components/trace-time-range-chip.cjs.js +2 -2
  256. package/dist/domains/traces/components/trace-time-range-chip.es.js +2 -2
  257. package/dist/domains/traces/components/traces-list-view.cjs.js +126 -112
  258. package/dist/domains/traces/components/traces-list-view.cjs.js.map +1 -1
  259. package/dist/domains/traces/components/traces-list-view.es.js +127 -113
  260. package/dist/domains/traces/components/traces-list-view.es.js.map +1 -1
  261. package/dist/domains/traces/components/traces-page-skeleton.cjs.js +2 -2
  262. package/dist/domains/traces/components/traces-page-skeleton.es.js +2 -2
  263. package/dist/domains/traces/trace-list-columns.cjs.js +15 -0
  264. package/dist/domains/traces/trace-list-columns.cjs.js.map +1 -1
  265. package/dist/domains/traces/trace-list-columns.es.js +15 -1
  266. package/dist/domains/traces/trace-list-columns.es.js.map +1 -1
  267. package/dist/domains/workflows/components/workflow-combobox.cjs.js +1 -1
  268. package/dist/domains/workflows/components/workflow-combobox.es.js +1 -1
  269. package/dist/domains/workflows/components/workflow-information.cjs.js +3 -2
  270. package/dist/domains/workflows/components/workflow-information.cjs.js.map +1 -1
  271. package/dist/domains/workflows/components/workflow-information.es.js +4 -3
  272. package/dist/domains/workflows/components/workflow-information.es.js.map +1 -1
  273. package/dist/domains/workflows/components/workflow-step-detail.cjs.js +2 -2
  274. package/dist/domains/workflows/components/workflow-step-detail.es.js +2 -2
  275. package/dist/domains/workflows/components/workflows-list/workflows-list.cjs.js +4 -3
  276. package/dist/domains/workflows/components/workflows-list/workflows-list.cjs.js.map +1 -1
  277. package/dist/domains/workflows/components/workflows-list/workflows-list.es.js +5 -4
  278. package/dist/domains/workflows/components/workflows-list/workflows-list.es.js.map +1 -1
  279. package/dist/domains/workflows/runs/workflow-run-list.cjs.js +3 -3
  280. package/dist/domains/workflows/runs/workflow-run-list.cjs.js.map +1 -1
  281. package/dist/domains/workflows/runs/workflow-run-list.es.js +3 -3
  282. package/dist/domains/workflows/runs/workflow-run-list.es.js.map +1 -1
  283. package/dist/domains/workflows/workflow/use-workflow-graph-runtime.cjs.js +2 -2
  284. package/dist/domains/workflows/workflow/use-workflow-graph-runtime.es.js +2 -2
  285. package/dist/domains/workflows/workflow/workflow-body-graph.cjs.js +1 -1
  286. package/dist/domains/workflows/workflow/workflow-body-graph.es.js +1 -1
  287. package/dist/domains/workflows/workflow/workflow-card.cjs.js +13 -11
  288. package/dist/domains/workflows/workflow/workflow-card.cjs.js.map +1 -1
  289. package/dist/domains/workflows/workflow/workflow-card.es.js +13 -11
  290. package/dist/domains/workflows/workflow/workflow-card.es.js.map +1 -1
  291. package/dist/domains/workflows/workflow/workflow-graph-inner.cjs.js +2 -2
  292. package/dist/domains/workflows/workflow/workflow-graph-inner.es.js +2 -2
  293. package/dist/domains/workflows/workflow/workflow-graph-node.cjs.js +2 -2
  294. package/dist/domains/workflows/workflow/workflow-graph-node.es.js +2 -2
  295. package/dist/domains/workflows/workflow/workflow-input-data.cjs.js +3 -2
  296. package/dist/domains/workflows/workflow/workflow-input-data.cjs.js.map +1 -1
  297. package/dist/domains/workflows/workflow/workflow-input-data.es.js +4 -3
  298. package/dist/domains/workflows/workflow/workflow-input-data.es.js.map +1 -1
  299. package/dist/domains/workflows/workflow/workflow-nested-graph.cjs.js +2 -2
  300. package/dist/domains/workflows/workflow/workflow-nested-graph.es.js +2 -2
  301. package/dist/domains/workflows/workflow/workflow-run-data.cjs.js +3 -2
  302. package/dist/domains/workflows/workflow/workflow-run-data.cjs.js.map +1 -1
  303. package/dist/domains/workflows/workflow/workflow-run-data.es.js +4 -3
  304. package/dist/domains/workflows/workflow/workflow-run-data.es.js.map +1 -1
  305. package/dist/domains/workflows/workflow/workflow-suspended-steps.cjs.js +3 -9
  306. package/dist/domains/workflows/workflow/workflow-suspended-steps.cjs.js.map +1 -1
  307. package/dist/domains/workflows/workflow/workflow-suspended-steps.es.js +4 -10
  308. package/dist/domains/workflows/workflow/workflow-suspended-steps.es.js.map +1 -1
  309. package/dist/domains/workflows/workflow/workflow-time-travel-form.cjs.js +3 -2
  310. package/dist/domains/workflows/workflow/workflow-time-travel-form.cjs.js.map +1 -1
  311. package/dist/domains/workflows/workflow/workflow-time-travel-form.es.js +4 -3
  312. package/dist/domains/workflows/workflow/workflow-time-travel-form.es.js.map +1 -1
  313. package/dist/domains/workflows/workflow/workflow-timeline.cjs.js +3 -8
  314. package/dist/domains/workflows/workflow/workflow-timeline.cjs.js.map +1 -1
  315. package/dist/domains/workflows/workflow/workflow-timeline.es.js +4 -9
  316. package/dist/domains/workflows/workflow/workflow-timeline.es.js.map +1 -1
  317. package/dist/domains/workspace/components/workspace-add-skill-dialog.cjs.js +1 -1
  318. package/dist/domains/workspace/components/workspace-add-skill-dialog.es.js +1 -1
  319. package/dist/domains/workspace/components/workspace-create-directory.cjs.js +1 -1
  320. package/dist/domains/workspace/components/workspace-create-directory.es.js +1 -1
  321. package/dist/domains/workspace/components/workspace-search.cjs.js +1 -1
  322. package/dist/domains/workspace/components/workspace-search.es.js +1 -1
  323. package/dist/domains/workspace/components/workspace-tree.cjs.js +1 -1
  324. package/dist/domains/workspace/components/workspace-tree.es.js +1 -1
  325. package/dist/ee/signals/components/entity-index-list.cjs.js +1 -1
  326. package/dist/ee/signals/components/entity-index-list.es.js +1 -1
  327. package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js +3 -3
  328. package/dist/ee/signals/components/trace-intelligence-entity-index.es.js +3 -3
  329. package/dist/ee/signals/settings/signal-definition-form-dialog.cjs.js +1 -1
  330. package/dist/ee/signals/settings/signal-definition-form-dialog.es.js +1 -1
  331. package/dist/ee/signals/signal-lifelines.cjs.js +2 -8
  332. package/dist/ee/signals/signal-lifelines.cjs.js.map +1 -1
  333. package/dist/ee/signals/signal-lifelines.es.js +2 -8
  334. package/dist/ee/signals/signal-lifelines.es.js.map +1 -1
  335. package/dist/ee/topics/components/topic-trace-summary-list.cjs.js +2 -2
  336. package/dist/ee/topics/components/topic-trace-summary-list.es.js +2 -2
  337. package/dist/{filter-bar-chip-BBPHw-rX.cjs → filter-bar-chip-BUlEVUgT.cjs} +3 -1
  338. package/dist/filter-bar-chip-BUlEVUgT.cjs.map +1 -0
  339. package/dist/{filter-bar-chip-SX3vDA7h.js → filter-bar-chip-DBjcrQFh.js} +3 -1
  340. package/dist/filter-bar-chip-DBjcrQFh.js.map +1 -0
  341. package/dist/hooks/use-local-storage-state.es.js +1 -1
  342. package/dist/{input-vi0ICZHe.js → input-DQFUjtnh.js} +4 -2
  343. package/dist/input-DQFUjtnh.js.map +1 -0
  344. package/dist/{input-group-C7WC6xGL.js → input-group-C_2SrLdX.js} +4 -2
  345. package/dist/input-group-C_2SrLdX.js.map +1 -0
  346. package/dist/{input-group-CGbhXsmd.cjs → input-group-Cxfp0mxQ.cjs} +4 -2
  347. package/dist/input-group-Cxfp0mxQ.cjs.map +1 -0
  348. package/dist/{input-HPE241gI.cjs → input-zdqTky_C.cjs} +4 -2
  349. package/dist/input-zdqTky_C.cjs.map +1 -0
  350. package/dist/layout/tabbed-container.cjs.js +3 -3
  351. package/dist/layout/tabbed-container.es.js +3 -3
  352. package/dist/lib/form/components/array-element-wrapper.cjs.js +3 -2
  353. package/dist/lib/form/components/array-element-wrapper.cjs.js.map +1 -1
  354. package/dist/lib/form/components/array-element-wrapper.es.js +4 -3
  355. package/dist/lib/form/components/array-element-wrapper.es.js.map +1 -1
  356. package/dist/lib/form/components/number-field.cjs.js +1 -1
  357. package/dist/lib/form/components/number-field.es.js +1 -1
  358. package/dist/lib/form/components/object-wrapper.cjs.js +3 -2
  359. package/dist/lib/form/components/object-wrapper.cjs.js.map +1 -1
  360. package/dist/lib/form/components/object-wrapper.es.js +4 -3
  361. package/dist/lib/form/components/object-wrapper.es.js.map +1 -1
  362. package/dist/lib/form/components/record-field.cjs.js +1 -1
  363. package/dist/lib/form/components/record-field.es.js +1 -1
  364. package/dist/{list-search-DTVH9Fbj.cjs → list-search-CA5w3QHa.cjs} +2 -2
  365. package/dist/{list-search-DTVH9Fbj.cjs.map → list-search-CA5w3QHa.cjs.map} +1 -1
  366. package/dist/{list-search-CTZVTRUd.js → list-search-Ce89eOzO.js} +2 -2
  367. package/dist/{list-search-CTZVTRUd.js.map → list-search-Ce89eOzO.js.map} +1 -1
  368. package/dist/{logs-data-list-BgFT_0qi.cjs → logs-data-list-C5UGLFo1.cjs} +2 -2
  369. package/dist/{logs-data-list-BgFT_0qi.cjs.map → logs-data-list-C5UGLFo1.cjs.map} +1 -1
  370. package/dist/{logs-data-list-C-F2jh04.js → logs-data-list-CgrUlafS.js} +2 -2
  371. package/dist/{logs-data-list-C-F2jh04.js.map → logs-data-list-CgrUlafS.js.map} +1 -1
  372. package/dist/new/layout/app-shell.cjs.js +1 -1
  373. package/dist/new/layout/app-shell.cjs.js.map +1 -1
  374. package/dist/new/layout/app-shell.es.js +1 -1
  375. package/dist/new/layout/app-shell.es.js.map +1 -1
  376. package/dist/{notification-activity-Bz0h5LOR.cjs → notification-activity-C2AcNOyq.cjs} +2 -2
  377. package/dist/{notification-activity-Bz0h5LOR.cjs.map → notification-activity-C2AcNOyq.cjs.map} +1 -1
  378. package/dist/{notification-activity-DTXzghFr.js → notification-activity-DquzIOZw.js} +2 -2
  379. package/dist/{notification-activity-DTXzghFr.js.map → notification-activity-DquzIOZw.js.map} +1 -1
  380. package/dist/primitives/chart-frame.cjs.js +1 -1
  381. package/dist/primitives/chart-frame.cjs.js.map +1 -1
  382. package/dist/primitives/chart-frame.es.js +1 -1
  383. package/dist/primitives/chart-frame.es.js.map +1 -1
  384. package/dist/primitives/password-manager-autofill.cjs.js +34 -0
  385. package/dist/primitives/password-manager-autofill.cjs.js.map +1 -0
  386. package/dist/primitives/password-manager-autofill.d.ts +2 -0
  387. package/dist/primitives/password-manager-autofill.es.js +28 -0
  388. package/dist/primitives/password-manager-autofill.es.js.map +1 -0
  389. package/dist/primitives/textarea-control.cjs.js +12 -2
  390. package/dist/primitives/textarea-control.cjs.js.map +1 -1
  391. package/dist/primitives/textarea-control.es.js +12 -2
  392. package/dist/primitives/textarea-control.es.js.map +1 -1
  393. package/dist/{property-filter-applied-7dHzckeW.cjs → property-filter-applied-ACNa3kYG.cjs} +4 -2
  394. package/dist/property-filter-applied-ACNa3kYG.cjs.map +1 -0
  395. package/dist/{property-filter-applied-CdbOixsW.js → property-filter-applied-e0Vg1895.js} +4 -2
  396. package/dist/property-filter-applied-e0Vg1895.js.map +1 -0
  397. package/dist/{reasoning-activity-D2sXBAxE.cjs → reasoning-activity-Cl7kaqgZ.cjs} +2 -2
  398. package/dist/{reasoning-activity-D2sXBAxE.cjs.map → reasoning-activity-Cl7kaqgZ.cjs.map} +1 -1
  399. package/dist/{reasoning-activity-Cpp4iYTw.js → reasoning-activity-D8AF1htp.js} +2 -2
  400. package/dist/{reasoning-activity-Cpp4iYTw.js.map → reasoning-activity-D8AF1htp.js.map} +1 -1
  401. package/dist/{search-input-CUGl4cVg.cjs → search-input-BHF2RziH.cjs} +2 -2
  402. package/dist/{search-input-CUGl4cVg.cjs.map → search-input-BHF2RziH.cjs.map} +1 -1
  403. package/dist/{search-input-iS3IW0Qo.js → search-input-BgVjoPtF.js} +2 -2
  404. package/dist/{search-input-iS3IW0Qo.js.map → search-input-BgVjoPtF.js.map} +1 -1
  405. package/dist/{signal-activity-CtSExTzh.js → signal-activity-BiWlOFhu.js} +2 -2
  406. package/dist/{signal-activity-CtSExTzh.js.map → signal-activity-BiWlOFhu.js.map} +1 -1
  407. package/dist/{signal-activity-Rh1YO0x6.cjs → signal-activity-aXcUgxDg.cjs} +2 -2
  408. package/dist/{signal-activity-Rh1YO0x6.cjs.map → signal-activity-aXcUgxDg.cjs.map} +1 -1
  409. package/dist/{span-payload-primitives-wxQ0IDhF.js → span-payload-primitives-D_Z6D-Aj.js} +6 -6
  410. package/dist/span-payload-primitives-D_Z6D-Aj.js.map +1 -0
  411. package/dist/{span-payload-primitives-DqZn_Q29.cjs → span-payload-primitives-XZgE4FGT.cjs} +6 -6
  412. package/dist/span-payload-primitives-XZgE4FGT.cjs.map +1 -0
  413. package/dist/src/domains/chat/context/chat-context.d.ts +5 -1
  414. package/dist/src/domains/traces/components/traces-list-view.d.ts +3 -1
  415. package/dist/src/domains/traces/trace-list-columns.d.ts +2 -0
  416. package/dist/src/ds/components/DataList/data-list-column-order.d.ts +22 -0
  417. package/dist/src/ds/components/DataList/data-list-reorder-context.d.ts +9 -0
  418. package/dist/src/ds/components/DataList/data-list-root.d.ts +16 -1
  419. package/dist/src/ds/components/DateTimeRangePicker/custom-range-editor.d.ts +12 -0
  420. package/dist/src/ds/components/DisclosureChevron/disclosure-chevron.d.ts +13 -0
  421. package/dist/src/ds/components/DisclosureChevron/index.d.ts +1 -0
  422. package/dist/src/ds/components/Input/input.d.ts +12 -1
  423. package/dist/src/ds/components/InputGroup/input-group.d.ts +1 -1
  424. package/dist/src/ds/components/InputNumber/input-number.d.ts +1 -1
  425. package/dist/src/ds/components/Tree/tree-context.d.ts +1 -0
  426. package/dist/src/ds/primitives/chart-frame.d.ts +4 -1
  427. package/dist/src/ds/primitives/password-manager-autofill.d.ts +29 -0
  428. package/dist/src/ds/primitives/textarea-control.d.ts +1 -1
  429. package/dist/style.css +18 -23
  430. package/dist/{tool-approval-CWOuZz47.cjs → tool-approval-DEfU8dPG.cjs} +2 -2
  431. package/dist/{tool-approval-CWOuZz47.cjs.map → tool-approval-DEfU8dPG.cjs.map} +1 -1
  432. package/dist/{tool-approval-BabMPJSL.js → tool-approval-DM8lvaCK.js} +2 -2
  433. package/dist/{tool-approval-BabMPJSL.js.map → tool-approval-DM8lvaCK.js.map} +1 -1
  434. package/dist/{tool-call-group-BPQTXJST.cjs → tool-call-group-CFpdexuw.cjs} +2 -2
  435. package/dist/{tool-call-group-BPQTXJST.cjs.map → tool-call-group-CFpdexuw.cjs.map} +1 -1
  436. package/dist/{tool-call-group-bE2C2hCK.js → tool-call-group-CZBqGjMh.js} +2 -2
  437. package/dist/{tool-call-group-bE2C2hCK.js.map → tool-call-group-CZBqGjMh.js.map} +1 -1
  438. package/dist/{tool-card-D-w1SgXq.js → tool-card-B0HX-uhD.js} +2 -2
  439. package/dist/tool-card-B0HX-uhD.js.map +1 -0
  440. package/dist/{tool-card-LNK49o-E.cjs → tool-card-CHyHNezE.cjs} +2 -2
  441. package/dist/tool-card-CHyHNezE.cjs.map +1 -0
  442. package/dist/{traces-data-list-DRSy_7KT.cjs → traces-data-list-DCa7QLQ3.cjs} +2 -2
  443. package/dist/{traces-data-list-DRSy_7KT.cjs.map → traces-data-list-DCa7QLQ3.cjs.map} +1 -1
  444. package/dist/{traces-data-list-C89IFLf8.js → traces-data-list-Dig7T40-.js} +2 -2
  445. package/dist/{traces-data-list-C89IFLf8.js.map → traces-data-list-Dig7T40-.js.map} +1 -1
  446. package/dist/{tree-DyVaMIwA.js → tree-BodKFJWV.js} +8 -5
  447. package/dist/tree-BodKFJWV.js.map +1 -0
  448. package/dist/{tree-JtAQw7a7.cjs → tree-vhKmzihm.cjs} +7 -4
  449. package/dist/tree-vhKmzihm.cjs.map +1 -0
  450. package/dist/{use-workflow-graph-runtime-FHoQYtWa.cjs → use-workflow-graph-runtime-B_ihs9Ev.cjs} +2 -2
  451. package/dist/{use-workflow-graph-runtime-FHoQYtWa.cjs.map → use-workflow-graph-runtime-B_ihs9Ev.cjs.map} +1 -1
  452. package/dist/{use-workflow-graph-runtime-XT_aoo-Z.js → use-workflow-graph-runtime-OyDXm_6V.js} +2 -2
  453. package/dist/{use-workflow-graph-runtime-XT_aoo-Z.js.map → use-workflow-graph-runtime-OyDXm_6V.js.map} +1 -1
  454. package/dist/{workflow-condition-card-Dy-0c_PT.cjs → workflow-condition-card-BF0PmJDV.cjs} +5 -4
  455. package/dist/workflow-condition-card-BF0PmJDV.cjs.map +1 -0
  456. package/dist/{workflow-condition-card-D30tufXt.js → workflow-condition-card-BVnfl6Zi.js} +5 -4
  457. package/dist/workflow-condition-card-BVnfl6Zi.js.map +1 -0
  458. package/package.json +9 -9
  459. package/dist/activity-maXCNWZp.js.map +0 -1
  460. package/dist/activity-pXCpwxxi.cjs.map +0 -1
  461. package/dist/collapsible-8h5KBZPX.js.map +0 -1
  462. package/dist/collapsible-BzlQAuym.cjs.map +0 -1
  463. package/dist/combobox-8_JEWMYs.js.map +0 -1
  464. package/dist/combobox-Csiduxme.cjs.map +0 -1
  465. package/dist/command-C-i5cx8D.js.map +0 -1
  466. package/dist/command-Cq-K24jI.cjs.map +0 -1
  467. package/dist/composer-CIfMr8q5.js.map +0 -1
  468. package/dist/composer-DhxSetWI.cjs.map +0 -1
  469. package/dist/data-list-BfepBJLG.js.map +0 -1
  470. package/dist/data-list-oQsJVUa6.cjs.map +0 -1
  471. package/dist/data-list-skeleton-BE7yRNks.cjs.map +0 -1
  472. package/dist/data-list-skeleton-DnVnqTGL.js.map +0 -1
  473. package/dist/date-time-range-picker-BA3e2LFA.js +0 -180
  474. package/dist/date-time-range-picker-BA3e2LFA.js.map +0 -1
  475. package/dist/date-time-range-picker-BNepacnP.cjs +0 -182
  476. package/dist/date-time-range-picker-BNepacnP.cjs.map +0 -1
  477. package/dist/filter-bar-chip-BBPHw-rX.cjs.map +0 -1
  478. package/dist/filter-bar-chip-SX3vDA7h.js.map +0 -1
  479. package/dist/input-HPE241gI.cjs.map +0 -1
  480. package/dist/input-group-C7WC6xGL.js.map +0 -1
  481. package/dist/input-group-CGbhXsmd.cjs.map +0 -1
  482. package/dist/input-vi0ICZHe.js.map +0 -1
  483. package/dist/property-filter-applied-7dHzckeW.cjs.map +0 -1
  484. package/dist/property-filter-applied-CdbOixsW.js.map +0 -1
  485. package/dist/span-payload-primitives-DqZn_Q29.cjs.map +0 -1
  486. package/dist/span-payload-primitives-wxQ0IDhF.js.map +0 -1
  487. package/dist/tool-card-D-w1SgXq.js.map +0 -1
  488. package/dist/tool-card-LNK49o-E.cjs.map +0 -1
  489. package/dist/tree-DyVaMIwA.js.map +0 -1
  490. package/dist/tree-JtAQw7a7.cjs.map +0 -1
  491. package/dist/workflow-condition-card-D30tufXt.js.map +0 -1
  492. package/dist/workflow-condition-card-Dy-0c_PT.cjs.map +0 -1
@@ -1,6 +1,6 @@
1
1
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
2
  import { Info, Layers } from 'lucide-react';
3
- import { g as ActivityItem } from './activity-maXCNWZp.js';
3
+ import { g as ActivityItem } from './activity-BsrB5ADa.js';
4
4
  import { m as messagePreviewShowsAll, a as messagePreview } from './message-preview-BnmthmiK.js';
5
5
  import { B as Badge } from './Badge-3-G2I_cx.js';
6
6
  import { T as Txt } from './Txt-BuzYj7Vy.js';
@@ -41,4 +41,4 @@ function SignalActivity({ kind, label, message, detail, mode, defaultOpen }) {
41
41
  }
42
42
 
43
43
  export { SignalActivity as S };
44
- //# sourceMappingURL=signal-activity-CtSExTzh.js.map
44
+ //# sourceMappingURL=signal-activity-BiWlOFhu.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"signal-activity-CtSExTzh.js","sources":["../src/ds/components/ai/activity/presets/signal-activity.tsx"],"sourcesContent":["import { Info, Layers } from 'lucide-react';\nimport { ActivityItem } from '../activity';\nimport { messagePreview, messagePreviewShowsAll } from './message-preview';\nimport { Badge } from '@/ds/components/Badge';\nimport { Txt } from '@/ds/components/Txt';\n\nexport interface SignalActivityProps {\n kind: 'state' | 'reactive' | 'reminder';\n label: string;\n message: string;\n detail?: string;\n mode?: string;\n defaultOpen?: boolean;\n}\n\nconst signalKinds = {\n state: {\n icon: <Layers className=\"text-badge-purple-indicator\" aria-hidden />,\n body: { variant: 'caption' },\n },\n reactive: {\n icon: <Info aria-hidden />,\n body: { variant: 'caption' },\n },\n reminder: {\n icon: <Info className=\"text-info-indicator\" aria-hidden />,\n body: { variant: 'meta', font: 'mono' },\n },\n} as const;\n\nexport function SignalActivity({ kind, label, message, detail, mode, defaultOpen }: SignalActivityProps) {\n const { icon, body } = signalKinds[kind];\n const lineHoldsMessage = detail === undefined && messagePreviewShowsAll(message);\n\n return (\n <ActivityItem\n icon={icon}\n label={label}\n detail={detail ?? messagePreview(message)}\n badges={mode ? <Badge size=\"xs\">{mode}</Badge> : undefined}\n defaultOpen={defaultOpen}\n data-signal-kind={kind}\n aria-label={`Signal: ${label}`}\n >\n {message && !lineHoldsMessage && (\n <>\n {detail && (\n <Txt variant=\"meta\" font=\"mono\" tone=\"muted\" className=\"break-all\">\n {detail}\n </Txt>\n )}\n <Txt {...body} className=\"break-words whitespace-pre-wrap\">\n {message}\n </Txt>\n </>\n )}\n </ActivityItem>\n );\n}\n"],"names":[],"mappings":";;;;;;;AAeA,MAAM,WAAA,GAAc;AAAA,EAClB,KAAA,EAAO;AAAA,IACL,sBAAM,GAAA,CAAC,MAAA,EAAA,EAAO,SAAA,EAAU,6BAAA,EAA8B,eAAW,IAAA,EAAC,CAAA;AAAA,IAClE,IAAA,EAAM,EAAE,OAAA,EAAS,SAAA;AAAU,GAC7B;AAAA,EACA,QAAA,EAAU;AAAA,IACR,IAAA,kBAAM,GAAA,CAAC,IAAA,EAAA,EAAK,aAAA,EAAW,IAAA,EAAC,CAAA;AAAA,IACxB,IAAA,EAAM,EAAE,OAAA,EAAS,SAAA;AAAU,GAC7B;AAAA,EACA,QAAA,EAAU;AAAA,IACR,sBAAM,GAAA,CAAC,IAAA,EAAA,EAAK,SAAA,EAAU,qBAAA,EAAsB,eAAW,IAAA,EAAC,CAAA;AAAA,IACxD,IAAA,EAAM,EAAE,OAAA,EAAS,MAAA,EAAQ,MAAM,MAAA;AAAO;AAE1C,CAAA;AAEO,SAAS,cAAA,CAAe,EAAE,IAAA,EAAM,KAAA,EAAO,SAAS,MAAA,EAAQ,IAAA,EAAM,aAAY,EAAwB;AACvG,EAAA,MAAM,EAAE,IAAA,EAAM,IAAA,EAAK,GAAI,YAAY,IAAI,CAAA;AACvC,EAAA,MAAM,gBAAA,GAAmB,MAAA,KAAW,MAAA,IAAa,sBAAA,CAAuB,OAAO,CAAA;AAE/E,EAAA,uBACE,GAAA;AAAA,IAAC,YAAA;AAAA,IAAA;AAAA,MACC,IAAA;AAAA,MACA,KAAA;AAAA,MACA,MAAA,EAAQ,MAAA,IAAU,cAAA,CAAe,OAAO,CAAA;AAAA,MACxC,QAAQ,IAAA,mBAAO,GAAA,CAAC,SAAM,IAAA,EAAK,IAAA,EAAM,gBAAK,CAAA,GAAW,MAAA;AAAA,MACjD,WAAA;AAAA,MACA,kBAAA,EAAkB,IAAA;AAAA,MAClB,YAAA,EAAY,WAAW,KAAK,CAAA,CAAA;AAAA,MAE3B,QAAA,EAAA,OAAA,IAAW,CAAC,gBAAA,oBACX,IAAA,CAAA,QAAA,EAAA,EACG,QAAA,EAAA;AAAA,QAAA,MAAA,oBACC,GAAA,CAAC,GAAA,EAAA,EAAI,OAAA,EAAQ,MAAA,EAAO,IAAA,EAAK,QAAO,IAAA,EAAK,OAAA,EAAQ,SAAA,EAAU,WAAA,EACpD,QAAA,EAAA,MAAA,EACH,CAAA;AAAA,4BAED,GAAA,EAAA,EAAK,GAAG,IAAA,EAAM,SAAA,EAAU,mCACtB,QAAA,EAAA,OAAA,EACH;AAAA,OAAA,EACF;AAAA;AAAA,GAEJ;AAEJ;;;;"}
1
+ {"version":3,"file":"signal-activity-BiWlOFhu.js","sources":["../src/ds/components/ai/activity/presets/signal-activity.tsx"],"sourcesContent":["import { Info, Layers } from 'lucide-react';\nimport { ActivityItem } from '../activity';\nimport { messagePreview, messagePreviewShowsAll } from './message-preview';\nimport { Badge } from '@/ds/components/Badge';\nimport { Txt } from '@/ds/components/Txt';\n\nexport interface SignalActivityProps {\n kind: 'state' | 'reactive' | 'reminder';\n label: string;\n message: string;\n detail?: string;\n mode?: string;\n defaultOpen?: boolean;\n}\n\nconst signalKinds = {\n state: {\n icon: <Layers className=\"text-badge-purple-indicator\" aria-hidden />,\n body: { variant: 'caption' },\n },\n reactive: {\n icon: <Info aria-hidden />,\n body: { variant: 'caption' },\n },\n reminder: {\n icon: <Info className=\"text-info-indicator\" aria-hidden />,\n body: { variant: 'meta', font: 'mono' },\n },\n} as const;\n\nexport function SignalActivity({ kind, label, message, detail, mode, defaultOpen }: SignalActivityProps) {\n const { icon, body } = signalKinds[kind];\n const lineHoldsMessage = detail === undefined && messagePreviewShowsAll(message);\n\n return (\n <ActivityItem\n icon={icon}\n label={label}\n detail={detail ?? messagePreview(message)}\n badges={mode ? <Badge size=\"xs\">{mode}</Badge> : undefined}\n defaultOpen={defaultOpen}\n data-signal-kind={kind}\n aria-label={`Signal: ${label}`}\n >\n {message && !lineHoldsMessage && (\n <>\n {detail && (\n <Txt variant=\"meta\" font=\"mono\" tone=\"muted\" className=\"break-all\">\n {detail}\n </Txt>\n )}\n <Txt {...body} className=\"break-words whitespace-pre-wrap\">\n {message}\n </Txt>\n </>\n )}\n </ActivityItem>\n );\n}\n"],"names":[],"mappings":";;;;;;;AAeA,MAAM,WAAA,GAAc;AAAA,EAClB,KAAA,EAAO;AAAA,IACL,sBAAM,GAAA,CAAC,MAAA,EAAA,EAAO,SAAA,EAAU,6BAAA,EAA8B,eAAW,IAAA,EAAC,CAAA;AAAA,IAClE,IAAA,EAAM,EAAE,OAAA,EAAS,SAAA;AAAU,GAC7B;AAAA,EACA,QAAA,EAAU;AAAA,IACR,IAAA,kBAAM,GAAA,CAAC,IAAA,EAAA,EAAK,aAAA,EAAW,IAAA,EAAC,CAAA;AAAA,IACxB,IAAA,EAAM,EAAE,OAAA,EAAS,SAAA;AAAU,GAC7B;AAAA,EACA,QAAA,EAAU;AAAA,IACR,sBAAM,GAAA,CAAC,IAAA,EAAA,EAAK,SAAA,EAAU,qBAAA,EAAsB,eAAW,IAAA,EAAC,CAAA;AAAA,IACxD,IAAA,EAAM,EAAE,OAAA,EAAS,MAAA,EAAQ,MAAM,MAAA;AAAO;AAE1C,CAAA;AAEO,SAAS,cAAA,CAAe,EAAE,IAAA,EAAM,KAAA,EAAO,SAAS,MAAA,EAAQ,IAAA,EAAM,aAAY,EAAwB;AACvG,EAAA,MAAM,EAAE,IAAA,EAAM,IAAA,EAAK,GAAI,YAAY,IAAI,CAAA;AACvC,EAAA,MAAM,gBAAA,GAAmB,MAAA,KAAW,MAAA,IAAa,sBAAA,CAAuB,OAAO,CAAA;AAE/E,EAAA,uBACE,GAAA;AAAA,IAAC,YAAA;AAAA,IAAA;AAAA,MACC,IAAA;AAAA,MACA,KAAA;AAAA,MACA,MAAA,EAAQ,MAAA,IAAU,cAAA,CAAe,OAAO,CAAA;AAAA,MACxC,QAAQ,IAAA,mBAAO,GAAA,CAAC,SAAM,IAAA,EAAK,IAAA,EAAM,gBAAK,CAAA,GAAW,MAAA;AAAA,MACjD,WAAA;AAAA,MACA,kBAAA,EAAkB,IAAA;AAAA,MAClB,YAAA,EAAY,WAAW,KAAK,CAAA,CAAA;AAAA,MAE3B,QAAA,EAAA,OAAA,IAAW,CAAC,gBAAA,oBACX,IAAA,CAAA,QAAA,EAAA,EACG,QAAA,EAAA;AAAA,QAAA,MAAA,oBACC,GAAA,CAAC,GAAA,EAAA,EAAI,OAAA,EAAQ,MAAA,EAAO,IAAA,EAAK,QAAO,IAAA,EAAK,OAAA,EAAQ,SAAA,EAAU,WAAA,EACpD,QAAA,EAAA,MAAA,EACH,CAAA;AAAA,4BAED,GAAA,EAAA,EAAK,GAAG,IAAA,EAAM,SAAA,EAAU,mCACtB,QAAA,EAAA,OAAA,EACH;AAAA,OAAA,EACF;AAAA;AAAA,GAEJ;AAEJ;;;;"}
@@ -2,7 +2,7 @@
2
2
 
3
3
  const jsxRuntime = require('react/jsx-runtime');
4
4
  const lucideReact = require('lucide-react');
5
- const activity = require('./activity-pXCpwxxi.cjs');
5
+ const activity = require('./activity-CaFdLiPz.cjs');
6
6
  const messagePreview = require('./message-preview-4Fmotm9o.cjs');
7
7
  const Badge = require('./Badge-BF6FbLH_.cjs');
8
8
  const Txt = require('./Txt-DXjXpX9r.cjs');
@@ -43,4 +43,4 @@ function SignalActivity({ kind, label, message, detail, mode, defaultOpen }) {
43
43
  }
44
44
 
45
45
  exports.SignalActivity = SignalActivity;
46
- //# sourceMappingURL=signal-activity-Rh1YO0x6.cjs.map
46
+ //# sourceMappingURL=signal-activity-aXcUgxDg.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"signal-activity-Rh1YO0x6.cjs","sources":["../src/ds/components/ai/activity/presets/signal-activity.tsx"],"sourcesContent":["import { Info, Layers } from 'lucide-react';\nimport { ActivityItem } from '../activity';\nimport { messagePreview, messagePreviewShowsAll } from './message-preview';\nimport { Badge } from '@/ds/components/Badge';\nimport { Txt } from '@/ds/components/Txt';\n\nexport interface SignalActivityProps {\n kind: 'state' | 'reactive' | 'reminder';\n label: string;\n message: string;\n detail?: string;\n mode?: string;\n defaultOpen?: boolean;\n}\n\nconst signalKinds = {\n state: {\n icon: <Layers className=\"text-badge-purple-indicator\" aria-hidden />,\n body: { variant: 'caption' },\n },\n reactive: {\n icon: <Info aria-hidden />,\n body: { variant: 'caption' },\n },\n reminder: {\n icon: <Info className=\"text-info-indicator\" aria-hidden />,\n body: { variant: 'meta', font: 'mono' },\n },\n} as const;\n\nexport function SignalActivity({ kind, label, message, detail, mode, defaultOpen }: SignalActivityProps) {\n const { icon, body } = signalKinds[kind];\n const lineHoldsMessage = detail === undefined && messagePreviewShowsAll(message);\n\n return (\n <ActivityItem\n icon={icon}\n label={label}\n detail={detail ?? messagePreview(message)}\n badges={mode ? <Badge size=\"xs\">{mode}</Badge> : undefined}\n defaultOpen={defaultOpen}\n data-signal-kind={kind}\n aria-label={`Signal: ${label}`}\n >\n {message && !lineHoldsMessage && (\n <>\n {detail && (\n <Txt variant=\"meta\" font=\"mono\" tone=\"muted\" className=\"break-all\">\n {detail}\n </Txt>\n )}\n <Txt {...body} className=\"break-words whitespace-pre-wrap\">\n {message}\n </Txt>\n </>\n )}\n </ActivityItem>\n );\n}\n"],"names":["jsx","Layers","Info","messagePreviewShowsAll","ActivityItem","messagePreview","Badge","jsxs","Fragment","Txt"],"mappings":";;;;;;;;;AAeA,MAAM,WAAA,GAAc;AAAA,EAClB,KAAA,EAAO;AAAA,IACL,sBAAMA,cAAA,CAACC,kBAAA,EAAA,EAAO,SAAA,EAAU,6BAAA,EAA8B,eAAW,IAAA,EAAC,CAAA;AAAA,IAClE,IAAA,EAAM,EAAE,OAAA,EAAS,SAAA;AAAU,GAC7B;AAAA,EACA,QAAA,EAAU;AAAA,IACR,IAAA,kBAAMD,cAAA,CAACE,gBAAA,EAAA,EAAK,aAAA,EAAW,IAAA,EAAC,CAAA;AAAA,IACxB,IAAA,EAAM,EAAE,OAAA,EAAS,SAAA;AAAU,GAC7B;AAAA,EACA,QAAA,EAAU;AAAA,IACR,sBAAMF,cAAA,CAACE,gBAAA,EAAA,EAAK,SAAA,EAAU,qBAAA,EAAsB,eAAW,IAAA,EAAC,CAAA;AAAA,IACxD,IAAA,EAAM,EAAE,OAAA,EAAS,MAAA,EAAQ,MAAM,MAAA;AAAO;AAE1C,CAAA;AAEO,SAAS,cAAA,CAAe,EAAE,IAAA,EAAM,KAAA,EAAO,SAAS,MAAA,EAAQ,IAAA,EAAM,aAAY,EAAwB;AACvG,EAAA,MAAM,EAAE,IAAA,EAAM,IAAA,EAAK,GAAI,YAAY,IAAI,CAAA;AACvC,EAAA,MAAM,gBAAA,GAAmB,MAAA,KAAW,MAAA,IAAaC,qCAAA,CAAuB,OAAO,CAAA;AAE/E,EAAA,uBACEH,cAAA;AAAA,IAACI,qBAAA;AAAA,IAAA;AAAA,MACC,IAAA;AAAA,MACA,KAAA;AAAA,MACA,MAAA,EAAQ,MAAA,IAAUC,6BAAA,CAAe,OAAO,CAAA;AAAA,MACxC,QAAQ,IAAA,mBAAOL,cAAA,CAACM,eAAM,IAAA,EAAK,IAAA,EAAM,gBAAK,CAAA,GAAW,MAAA;AAAA,MACjD,WAAA;AAAA,MACA,kBAAA,EAAkB,IAAA;AAAA,MAClB,YAAA,EAAY,WAAW,KAAK,CAAA,CAAA;AAAA,MAE3B,QAAA,EAAA,OAAA,IAAW,CAAC,gBAAA,oBACXC,eAAA,CAAAC,mBAAA,EAAA,EACG,QAAA,EAAA;AAAA,QAAA,MAAA,oBACCR,cAAA,CAACS,OAAA,EAAA,EAAI,OAAA,EAAQ,MAAA,EAAO,IAAA,EAAK,QAAO,IAAA,EAAK,OAAA,EAAQ,SAAA,EAAU,WAAA,EACpD,QAAA,EAAA,MAAA,EACH,CAAA;AAAA,uCAEDA,OAAA,EAAA,EAAK,GAAG,IAAA,EAAM,SAAA,EAAU,mCACtB,QAAA,EAAA,OAAA,EACH;AAAA,OAAA,EACF;AAAA;AAAA,GAEJ;AAEJ;;;;"}
1
+ {"version":3,"file":"signal-activity-aXcUgxDg.cjs","sources":["../src/ds/components/ai/activity/presets/signal-activity.tsx"],"sourcesContent":["import { Info, Layers } from 'lucide-react';\nimport { ActivityItem } from '../activity';\nimport { messagePreview, messagePreviewShowsAll } from './message-preview';\nimport { Badge } from '@/ds/components/Badge';\nimport { Txt } from '@/ds/components/Txt';\n\nexport interface SignalActivityProps {\n kind: 'state' | 'reactive' | 'reminder';\n label: string;\n message: string;\n detail?: string;\n mode?: string;\n defaultOpen?: boolean;\n}\n\nconst signalKinds = {\n state: {\n icon: <Layers className=\"text-badge-purple-indicator\" aria-hidden />,\n body: { variant: 'caption' },\n },\n reactive: {\n icon: <Info aria-hidden />,\n body: { variant: 'caption' },\n },\n reminder: {\n icon: <Info className=\"text-info-indicator\" aria-hidden />,\n body: { variant: 'meta', font: 'mono' },\n },\n} as const;\n\nexport function SignalActivity({ kind, label, message, detail, mode, defaultOpen }: SignalActivityProps) {\n const { icon, body } = signalKinds[kind];\n const lineHoldsMessage = detail === undefined && messagePreviewShowsAll(message);\n\n return (\n <ActivityItem\n icon={icon}\n label={label}\n detail={detail ?? messagePreview(message)}\n badges={mode ? <Badge size=\"xs\">{mode}</Badge> : undefined}\n defaultOpen={defaultOpen}\n data-signal-kind={kind}\n aria-label={`Signal: ${label}`}\n >\n {message && !lineHoldsMessage && (\n <>\n {detail && (\n <Txt variant=\"meta\" font=\"mono\" tone=\"muted\" className=\"break-all\">\n {detail}\n </Txt>\n )}\n <Txt {...body} className=\"break-words whitespace-pre-wrap\">\n {message}\n </Txt>\n </>\n )}\n </ActivityItem>\n );\n}\n"],"names":["jsx","Layers","Info","messagePreviewShowsAll","ActivityItem","messagePreview","Badge","jsxs","Fragment","Txt"],"mappings":";;;;;;;;;AAeA,MAAM,WAAA,GAAc;AAAA,EAClB,KAAA,EAAO;AAAA,IACL,sBAAMA,cAAA,CAACC,kBAAA,EAAA,EAAO,SAAA,EAAU,6BAAA,EAA8B,eAAW,IAAA,EAAC,CAAA;AAAA,IAClE,IAAA,EAAM,EAAE,OAAA,EAAS,SAAA;AAAU,GAC7B;AAAA,EACA,QAAA,EAAU;AAAA,IACR,IAAA,kBAAMD,cAAA,CAACE,gBAAA,EAAA,EAAK,aAAA,EAAW,IAAA,EAAC,CAAA;AAAA,IACxB,IAAA,EAAM,EAAE,OAAA,EAAS,SAAA;AAAU,GAC7B;AAAA,EACA,QAAA,EAAU;AAAA,IACR,sBAAMF,cAAA,CAACE,gBAAA,EAAA,EAAK,SAAA,EAAU,qBAAA,EAAsB,eAAW,IAAA,EAAC,CAAA;AAAA,IACxD,IAAA,EAAM,EAAE,OAAA,EAAS,MAAA,EAAQ,MAAM,MAAA;AAAO;AAE1C,CAAA;AAEO,SAAS,cAAA,CAAe,EAAE,IAAA,EAAM,KAAA,EAAO,SAAS,MAAA,EAAQ,IAAA,EAAM,aAAY,EAAwB;AACvG,EAAA,MAAM,EAAE,IAAA,EAAM,IAAA,EAAK,GAAI,YAAY,IAAI,CAAA;AACvC,EAAA,MAAM,gBAAA,GAAmB,MAAA,KAAW,MAAA,IAAaC,qCAAA,CAAuB,OAAO,CAAA;AAE/E,EAAA,uBACEH,cAAA;AAAA,IAACI,qBAAA;AAAA,IAAA;AAAA,MACC,IAAA;AAAA,MACA,KAAA;AAAA,MACA,MAAA,EAAQ,MAAA,IAAUC,6BAAA,CAAe,OAAO,CAAA;AAAA,MACxC,QAAQ,IAAA,mBAAOL,cAAA,CAACM,eAAM,IAAA,EAAK,IAAA,EAAM,gBAAK,CAAA,GAAW,MAAA;AAAA,MACjD,WAAA;AAAA,MACA,kBAAA,EAAkB,IAAA;AAAA,MAClB,YAAA,EAAY,WAAW,KAAK,CAAA,CAAA;AAAA,MAE3B,QAAA,EAAA,OAAA,IAAW,CAAC,gBAAA,oBACXC,eAAA,CAAAC,mBAAA,EAAA,EACG,QAAA,EAAA;AAAA,QAAA,MAAA,oBACCR,cAAA,CAACS,OAAA,EAAA,EAAI,OAAA,EAAQ,MAAA,EAAO,IAAA,EAAK,QAAO,IAAA,EAAK,OAAA,EAAQ,SAAA,EAAU,WAAA,EACpD,QAAA,EAAA,MAAA,EACH,CAAA;AAAA,uCAEDA,OAAA,EAAA,EAAK,GAAG,IAAA,EAAM,SAAA,EAAU,mCACtB,QAAA,EAAA,OAAA,EACH;AAAA,OAAA,EACF;AAAA;AAAA,GAEJ;AAEJ;;;;"}
@@ -1,11 +1,11 @@
1
1
  import { jsx, jsxs } from 'react/jsx-runtime';
2
- import { ChevronRightIcon } from 'lucide-react';
3
2
  import { SpanPayloadJson } from './domains/traces/components/span-payload/span-payload-json.es.js';
4
- import { C as Collapsible, b as CollapsibleTrigger, a as CollapsibleContent } from './collapsible-8h5KBZPX.js';
3
+ import { C as Collapsible, b as CollapsibleTrigger, a as CollapsibleContent } from './collapsible-DglEffBF.js';
4
+ import { D as DisclosureChevron } from './disclosure-chevron-BWZ8Alz1.js';
5
5
  import { M as MarkdownRenderer } from './markdown-renderer-9YP7IIQd.js';
6
6
  import { T as Txt } from './Txt-BuzYj7Vy.js';
7
7
  import { BadgeWrapper } from './domains/chat/components/badge-wrapper.es.js';
8
- import { e as ActivityHeadline } from './activity-maXCNWZp.js';
8
+ import { e as ActivityHeadline } from './activity-BsrB5ADa.js';
9
9
  import { p as presentTool } from './tool-presentation-BXAo24Ir.js';
10
10
 
11
11
  const isRecord = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
@@ -56,8 +56,8 @@ function SpanPayloadCollapsible({
56
56
  defaultOpen = false
57
57
  }) {
58
58
  return /* @__PURE__ */ jsxs(Collapsible, { defaultOpen, children: [
59
- /* @__PURE__ */ jsxs(CollapsibleTrigger, { className: "flex items-center gap-1 text-meta text-placeholder uppercase [&>svg]:size-3", children: [
60
- /* @__PURE__ */ jsx(ChevronRightIcon, {}),
59
+ /* @__PURE__ */ jsxs(CollapsibleTrigger, { className: "flex items-center gap-1 text-meta text-placeholder uppercase", children: [
60
+ /* @__PURE__ */ jsx(DisclosureChevron, { direction: "right", className: "size-3" }),
61
61
  label
62
62
  ] }),
63
63
  /* @__PURE__ */ jsx(CollapsibleContent, { className: "pt-1.5", children })
@@ -68,4 +68,4 @@ function SpanPayloadToolCalls({ toolCalls }) {
68
68
  }
69
69
 
70
70
  export { SpanPayloadField as S, SpanPayloadMarkdown as a, SpanPayloadToolCalls as b, SpanPayloadCollapsible as c, SpanPayloadLabel as d, SpanPayloadTool as e };
71
- //# sourceMappingURL=span-payload-primitives-wxQ0IDhF.js.map
71
+ //# sourceMappingURL=span-payload-primitives-D_Z6D-Aj.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"span-payload-primitives-D_Z6D-Aj.js","sources":["../src/domains/traces/components/span-payload/span-payload-tool.tsx","../src/domains/traces/components/span-payload/span-payload-primitives.tsx"],"sourcesContent":["import { SpanPayloadJson } from './span-payload-json';\nimport { SpanPayloadField, SpanPayloadLabel } from './span-payload-primitives';\nimport { BadgeWrapper } from '@/domains/chat/components/badge-wrapper';\nimport { ActivityHeadline } from '@/ds/components/ai/activity';\nimport { presentTool } from '@/ds/components/ai/tool-call/tool-presentation';\n\nconst isRecord = (value: unknown): value is Record<string, unknown> =>\n typeof value === 'object' && value !== null && !Array.isArray(value);\n\nexport function SpanPayloadTool({ value, showLabel = true }: { value: unknown; showLabel?: boolean }) {\n if (!isRecord(value)) return <SpanPayloadJson value={value} />;\n const call = value.type === 'tool-invocation' ? value.toolInvocation : value;\n if (!isRecord(call) || typeof call.toolName !== 'string' || !call.toolName) {\n return <SpanPayloadJson value={value} />;\n }\n const input = 'args' in call ? call.args : call.input;\n const output = 'result' in call ? call.result : call.output;\n const error = call.isError === true || call.state === 'output-error';\n const errorText = typeof call.errorText === 'string' ? call.errorText : undefined;\n const { icon: ToolIcon, label, detail, description } = presentTool(call.toolName, input);\n const hasBody = input !== undefined || output !== undefined || errorText !== undefined;\n return (\n <div data-slot=\"span-payload-tool\" className=\"flex flex-col gap-2\">\n {showLabel && <SpanPayloadLabel>{value.type === 'tool-result' ? 'Tool result' : 'Tool call'}</SpanPayloadLabel>}\n <BadgeWrapper\n status={error ? 'error' : 'idle'}\n header={\n <ActivityHeadline icon={<ToolIcon aria-hidden />} label={label} detail={detail} description={description} />\n }\n >\n {hasBody && (\n <div className=\"flex flex-col gap-3\">\n {input !== undefined && (\n <SpanPayloadField label=\"Arguments\">\n <SpanPayloadJson value={input} />\n </SpanPayloadField>\n )}\n {output !== undefined && (\n <SpanPayloadField label=\"Result\">\n <SpanPayloadJson value={output} />\n </SpanPayloadField>\n )}\n {errorText !== undefined && (\n <SpanPayloadField label=\"Error\">\n <SpanPayloadJson value={errorText} />\n </SpanPayloadField>\n )}\n </div>\n )}\n </BadgeWrapper>\n </div>\n );\n}\n","import type { ReactNode } from 'react';\nimport { SpanPayloadTool } from './span-payload-tool';\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from '@/ds/components/Collapsible';\nimport { DisclosureChevron } from '@/ds/components/DisclosureChevron';\nimport { MarkdownRenderer } from '@/ds/components/MarkdownRenderer';\nimport { Txt } from '@/ds/components/Txt';\n\n/** Small-caps label above a field of a rich payload. */\nexport function SpanPayloadLabel({ children }: { children: ReactNode }) {\n return (\n <Txt as=\"span\" variant=\"meta\" tone=\"faint\" className=\"block uppercase\">\n {children}\n </Txt>\n );\n}\n\nexport function SpanPayloadField({ label, children }: { label: ReactNode; children: ReactNode }) {\n return (\n <div data-slot=\"span-payload-field\" className=\"flex flex-col gap-1.5\">\n <SpanPayloadLabel>{label}</SpanPayloadLabel>\n {children}\n </div>\n );\n}\n\nexport function SpanPayloadMarkdown({ children }: { children: string }) {\n return (\n <div data-slot=\"span-payload-markdown\" className=\"text-foreground\">\n <MarkdownRenderer>{children}</MarkdownRenderer>\n </div>\n );\n}\n\n/** A collapsed block for secondary data (reasoning, steps, warnings…). */\nexport function SpanPayloadCollapsible({\n label,\n children,\n defaultOpen = false,\n}: {\n label: ReactNode;\n children: ReactNode;\n defaultOpen?: boolean;\n}) {\n return (\n <Collapsible defaultOpen={defaultOpen}>\n <CollapsibleTrigger className=\"flex items-center gap-1 text-meta text-placeholder uppercase\">\n <DisclosureChevron direction=\"right\" className=\"size-3\" />\n {label}\n </CollapsibleTrigger>\n <CollapsibleContent className=\"pt-1.5\">{children}</CollapsibleContent>\n </Collapsible>\n );\n}\n\n/** Tool calls as core records them: `{ toolName, args | input }` when they have that shape, JSON otherwise. */\nexport function SpanPayloadToolCalls({ toolCalls }: { toolCalls: unknown[] }) {\n return (\n <ul data-slot=\"span-payload-tool-calls\" className=\"flex flex-col gap-2\">\n {toolCalls.map((call, index) => (\n <li key={index}>\n <SpanPayloadTool value={call} showLabel={false} />\n </li>\n ))}\n </ul>\n );\n}\n"],"names":[],"mappings":"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"}
@@ -1,13 +1,13 @@
1
1
  'use strict';
2
2
 
3
3
  const jsxRuntime = require('react/jsx-runtime');
4
- const lucideReact = require('lucide-react');
5
4
  const domains_traces_components_spanPayload_spanPayloadJson = require('./domains/traces/components/span-payload/span-payload-json.cjs.js');
6
- const collapsible = require('./collapsible-BzlQAuym.cjs');
5
+ const collapsible = require('./collapsible-C6BZhVRG.cjs');
6
+ const disclosureChevron = require('./disclosure-chevron-B_gmYFR5.cjs');
7
7
  const markdownRenderer = require('./markdown-renderer-B2RV53gr.cjs');
8
8
  const Txt = require('./Txt-DXjXpX9r.cjs');
9
9
  const domains_chat_components_badgeWrapper = require('./domains/chat/components/badge-wrapper.cjs.js');
10
- const activity = require('./activity-pXCpwxxi.cjs');
10
+ const activity = require('./activity-CaFdLiPz.cjs');
11
11
  const toolPresentation = require('./tool-presentation-WLS6d1ws.cjs');
12
12
 
13
13
  const isRecord = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
@@ -58,8 +58,8 @@ function SpanPayloadCollapsible({
58
58
  defaultOpen = false
59
59
  }) {
60
60
  return /* @__PURE__ */ jsxRuntime.jsxs(collapsible.Collapsible, { defaultOpen, children: [
61
- /* @__PURE__ */ jsxRuntime.jsxs(collapsible.CollapsibleTrigger, { className: "flex items-center gap-1 text-meta text-placeholder uppercase [&>svg]:size-3", children: [
62
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronRightIcon, {}),
61
+ /* @__PURE__ */ jsxRuntime.jsxs(collapsible.CollapsibleTrigger, { className: "flex items-center gap-1 text-meta text-placeholder uppercase", children: [
62
+ /* @__PURE__ */ jsxRuntime.jsx(disclosureChevron.DisclosureChevron, { direction: "right", className: "size-3" }),
63
63
  label
64
64
  ] }),
65
65
  /* @__PURE__ */ jsxRuntime.jsx(collapsible.CollapsibleContent, { className: "pt-1.5", children })
@@ -75,4 +75,4 @@ exports.SpanPayloadLabel = SpanPayloadLabel;
75
75
  exports.SpanPayloadMarkdown = SpanPayloadMarkdown;
76
76
  exports.SpanPayloadTool = SpanPayloadTool;
77
77
  exports.SpanPayloadToolCalls = SpanPayloadToolCalls;
78
- //# sourceMappingURL=span-payload-primitives-DqZn_Q29.cjs.map
78
+ //# sourceMappingURL=span-payload-primitives-XZgE4FGT.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"span-payload-primitives-XZgE4FGT.cjs","sources":["../src/domains/traces/components/span-payload/span-payload-tool.tsx","../src/domains/traces/components/span-payload/span-payload-primitives.tsx"],"sourcesContent":["import { SpanPayloadJson } from './span-payload-json';\nimport { SpanPayloadField, SpanPayloadLabel } from './span-payload-primitives';\nimport { BadgeWrapper } from '@/domains/chat/components/badge-wrapper';\nimport { ActivityHeadline } from '@/ds/components/ai/activity';\nimport { presentTool } from '@/ds/components/ai/tool-call/tool-presentation';\n\nconst isRecord = (value: unknown): value is Record<string, unknown> =>\n typeof value === 'object' && value !== null && !Array.isArray(value);\n\nexport function SpanPayloadTool({ value, showLabel = true }: { value: unknown; showLabel?: boolean }) {\n if (!isRecord(value)) return <SpanPayloadJson value={value} />;\n const call = value.type === 'tool-invocation' ? value.toolInvocation : value;\n if (!isRecord(call) || typeof call.toolName !== 'string' || !call.toolName) {\n return <SpanPayloadJson value={value} />;\n }\n const input = 'args' in call ? call.args : call.input;\n const output = 'result' in call ? call.result : call.output;\n const error = call.isError === true || call.state === 'output-error';\n const errorText = typeof call.errorText === 'string' ? call.errorText : undefined;\n const { icon: ToolIcon, label, detail, description } = presentTool(call.toolName, input);\n const hasBody = input !== undefined || output !== undefined || errorText !== undefined;\n return (\n <div data-slot=\"span-payload-tool\" className=\"flex flex-col gap-2\">\n {showLabel && <SpanPayloadLabel>{value.type === 'tool-result' ? 'Tool result' : 'Tool call'}</SpanPayloadLabel>}\n <BadgeWrapper\n status={error ? 'error' : 'idle'}\n header={\n <ActivityHeadline icon={<ToolIcon aria-hidden />} label={label} detail={detail} description={description} />\n }\n >\n {hasBody && (\n <div className=\"flex flex-col gap-3\">\n {input !== undefined && (\n <SpanPayloadField label=\"Arguments\">\n <SpanPayloadJson value={input} />\n </SpanPayloadField>\n )}\n {output !== undefined && (\n <SpanPayloadField label=\"Result\">\n <SpanPayloadJson value={output} />\n </SpanPayloadField>\n )}\n {errorText !== undefined && (\n <SpanPayloadField label=\"Error\">\n <SpanPayloadJson value={errorText} />\n </SpanPayloadField>\n )}\n </div>\n )}\n </BadgeWrapper>\n </div>\n );\n}\n","import type { ReactNode } from 'react';\nimport { SpanPayloadTool } from './span-payload-tool';\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from '@/ds/components/Collapsible';\nimport { DisclosureChevron } from '@/ds/components/DisclosureChevron';\nimport { MarkdownRenderer } from '@/ds/components/MarkdownRenderer';\nimport { Txt } from '@/ds/components/Txt';\n\n/** Small-caps label above a field of a rich payload. */\nexport function SpanPayloadLabel({ children }: { children: ReactNode }) {\n return (\n <Txt as=\"span\" variant=\"meta\" tone=\"faint\" className=\"block uppercase\">\n {children}\n </Txt>\n );\n}\n\nexport function SpanPayloadField({ label, children }: { label: ReactNode; children: ReactNode }) {\n return (\n <div data-slot=\"span-payload-field\" className=\"flex flex-col gap-1.5\">\n <SpanPayloadLabel>{label}</SpanPayloadLabel>\n {children}\n </div>\n );\n}\n\nexport function SpanPayloadMarkdown({ children }: { children: string }) {\n return (\n <div data-slot=\"span-payload-markdown\" className=\"text-foreground\">\n <MarkdownRenderer>{children}</MarkdownRenderer>\n </div>\n );\n}\n\n/** A collapsed block for secondary data (reasoning, steps, warnings…). */\nexport function SpanPayloadCollapsible({\n label,\n children,\n defaultOpen = false,\n}: {\n label: ReactNode;\n children: ReactNode;\n defaultOpen?: boolean;\n}) {\n return (\n <Collapsible defaultOpen={defaultOpen}>\n <CollapsibleTrigger className=\"flex items-center gap-1 text-meta text-placeholder uppercase\">\n <DisclosureChevron direction=\"right\" className=\"size-3\" />\n {label}\n </CollapsibleTrigger>\n <CollapsibleContent className=\"pt-1.5\">{children}</CollapsibleContent>\n </Collapsible>\n );\n}\n\n/** Tool calls as core records them: `{ toolName, args | input }` when they have that shape, JSON otherwise. */\nexport function SpanPayloadToolCalls({ toolCalls }: { toolCalls: unknown[] }) {\n return (\n <ul data-slot=\"span-payload-tool-calls\" className=\"flex flex-col gap-2\">\n {toolCalls.map((call, index) => (\n <li key={index}>\n <SpanPayloadTool value={call} showLabel={false} />\n </li>\n ))}\n </ul>\n );\n}\n"],"names":["jsx","SpanPayloadJson","presentTool","jsxs","BadgeWrapper","ActivityHeadline","Txt","MarkdownRenderer","Collapsible","CollapsibleTrigger","DisclosureChevron","CollapsibleContent"],"mappings":"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"}
@@ -29,7 +29,11 @@ export interface RunningContextValue {
29
29
  canSendWhileStreaming: boolean;
30
30
  }
31
31
  export interface SendContextValue {
32
- send: (args: ChatSendArgs) => void;
32
+ /**
33
+ * Resolves to `false` when the server can't have stored the message (no response, or a refusal such
34
+ * as a body too large), so the composer can put it back.
35
+ */
36
+ send: (args: ChatSendArgs) => void | Promise<boolean>;
33
37
  }
34
38
  export interface TasksContextValue {
35
39
  tasks: TaskItem[];
@@ -54,9 +54,11 @@ export type TracesListViewProps = {
54
54
  onSortChange?: (direction: DataListSort, key: 'startedAt') => void;
55
55
  /** When provided, custom column headers offer an `is <value>` filter for every value currently listed. */
56
56
  onFilterByField?: (field: TraceCustomColumn, value: string) => void;
57
+ /** Storage id for the persisted column order. Use a distinct id per page so each keeps its own order. */
58
+ listId?: string;
57
59
  };
58
60
  /**
59
61
  * Virtualized presentational list. Renders only the visible window via TanStack Virtual, and
60
62
  * uses DataList primitives for layout (CSS Grid with subgrid rows).
61
63
  */
62
- export declare function TracesListView({ traces, isLoading, isFetchingNextPage, hasNextPage, setEndOfListElement, filtersApplied, featuredTraceId, featuredSpanId, isBranchesMode, recentlyAddedKeys, columnPreferences, usageByTraceId, onTraceClick, createdSort, onSortChange, onFilterByField, }: TracesListViewProps): import("react").JSX.Element;
64
+ export declare function TracesListView({ traces, isLoading, isFetchingNextPage, hasNextPage, setEndOfListElement, filtersApplied, featuredTraceId, featuredSpanId, isBranchesMode, recentlyAddedKeys, columnPreferences, usageByTraceId, onTraceClick, createdSort, onSortChange, onFilterByField, listId, }: TracesListViewProps): import("react").JSX.Element;
@@ -16,6 +16,8 @@ export declare const DEFAULT_TRACE_COLUMN_PREFERENCES: TraceColumnPreferences;
16
16
  export declare function isTraceCustomColumn(value: unknown): value is TraceCustomColumn;
17
17
  export declare function parseTraceColumnPreferences(serialized: string | undefined): TraceColumnPreferences;
18
18
  export declare function serializeTraceColumnPreferences(preferences: TraceColumnPreferences): string;
19
+ /** Stable key per column of `buildTraceListColumns`, in the same order. Used to persist the column order. */
20
+ export declare function buildTraceListColumnKeys(preferences: TraceColumnPreferences): string[];
19
21
  export declare function buildTraceListColumns(preferences: TraceColumnPreferences): string;
20
22
  /** Core names root spans `agent run: 'id'` (+ optional ` (resumed)`); the Primitive type column already carries
21
23
  * the kind, so the list shows just the id and any suffix. Core names are untouched for exporters. */
@@ -0,0 +1,22 @@
1
+ import { z } from 'zod/v4';
2
+ export declare const columnOrderSchema: z.ZodArray<z.ZodNumber>;
3
+ export declare const getColumnOrderStorageKey: (id: string) => string;
4
+ /** Tracks of a grid template, or `null` when it uses `repeat()` (track count unknown). */
5
+ export declare function splitGridTracks(columns: string): string[] | null;
6
+ export declare const identityOrder: (count: number) => number[];
7
+ /** Returns `stored` when it is a permutation of `0..count-1`, otherwise the identity order. */
8
+ export declare function normalizeOrder(stored: number[] | undefined, count: number): number[];
9
+ export declare const keyedColumnOrderSchema: z.ZodArray<z.ZodString>;
10
+ /**
11
+ * Maps a stored key order onto the current columns. Stored keys that are not
12
+ * rendered are skipped; columns missing from the stored order (newly added)
13
+ * are inserted at their default position. Returns column indexes in visual order.
14
+ */
15
+ export declare function resolveKeyedOrder(stored: string[] | undefined, keys: string[]): number[];
16
+ /**
17
+ * Moves a visible column and returns the next stored key order. Keys of columns
18
+ * that are not rendered right now are kept at the end so they are not forgotten.
19
+ */
20
+ export declare function moveKeyedOrder(stored: string[] | undefined, keys: string[], from: number, to: number): string[];
21
+ /** Moves the item at visual position `from` to visual position `to`. */
22
+ export declare function moveIndex(order: number[], from: number, to: number): number[];
@@ -0,0 +1,9 @@
1
+ export type DataListReorderContextValue = {
2
+ reorderable: boolean;
3
+ /** `order[visualPosition] = originalColumnIndex`. */
4
+ order: number[];
5
+ /** Moves the column at visual position `from` to visual position `to`. */
6
+ move: (from: number, to: number) => void;
7
+ };
8
+ export declare const DataListReorderContext: import('react').Context<DataListReorderContextValue>;
9
+ export declare const useDataListReorder: () => DataListReorderContextValue;
@@ -36,5 +36,20 @@ export type DataListRootProps = Omit<ScrollAreaProps, 'children' | 'orientation'
36
36
  * scrolls normally.
37
37
  */
38
38
  scrollRef?: RefObject<HTMLDivElement | null>;
39
+ /**
40
+ * Lets users drag header cells (or press Alt+Arrow on a focused header cell)
41
+ * to reorder columns. Requires `id`: the order is persisted in localStorage
42
+ * under that id. Sticky cells stay pinned. Supported for flat lists whose
43
+ * header and rows span the full grid; `repeat()` templates are not supported.
44
+ */
45
+ reorderable?: boolean;
46
+ /** Stable identifier of the list, used to persist the column order when `reorderable`. */
47
+ id?: string;
48
+ /**
49
+ * Stable key per column, in `columns` order. With `reorderable`, the order is
50
+ * persisted by key, so it survives columns being shown, hidden or added.
51
+ * Without it, the order is persisted by index and resets when the column count changes.
52
+ */
53
+ columnKeys?: string[];
39
54
  };
40
- export declare function DataListRoot({ children, columns, className, fit, variant, mask, scrollRef, ...props }: DataListRootProps): import("react").JSX.Element;
55
+ export declare function DataListRoot({ reorderable, id, columns, columnKeys, ...props }: DataListRootProps): import("react").JSX.Element;
@@ -0,0 +1,12 @@
1
+ export interface CustomRangeEditorProps {
2
+ dateFrom?: Date;
3
+ dateTo?: Date;
4
+ disabled?: boolean;
5
+ onApply: (from: Date | undefined, to: Date | undefined) => void;
6
+ onShowPresets: () => void;
7
+ }
8
+ /**
9
+ * The custom range popover body. It mounts each time the popover opens, so its drafts
10
+ * start from the current range without the picker resetting them.
11
+ */
12
+ export declare function CustomRangeEditor({ dateFrom, dateTo, disabled, onApply, onShowPresets }: CustomRangeEditorProps): import("react").JSX.Element;
@@ -0,0 +1,13 @@
1
+ import { ComponentProps } from 'react';
2
+ export type DisclosureChevronDirection = 'down' | 'up' | 'right';
3
+ export interface DisclosureChevronProps extends Omit<ComponentProps<'svg'>, 'ref'> {
4
+ /** Where the chevron points while closed (default: down). Down and up flip 180°, right turns 90°. */
5
+ direction?: DisclosureChevronDirection;
6
+ /**
7
+ * Overrides the trigger's state. Leave unset: the chevron follows the nearest
8
+ * `aria-expanded="true"` ancestor, which every Base UI trigger sets.
9
+ */
10
+ open?: boolean;
11
+ }
12
+ /** The chevron in an expandable trigger (menu, select, collapsible, "show more") that turns while it is open. */
13
+ export declare function DisclosureChevron({ direction, open, className, ...props }: DisclosureChevronProps): import("react").JSX.Element;
@@ -0,0 +1 @@
1
+ export * from './disclosure-chevron';
@@ -11,6 +11,17 @@ export type InputProps = Omit<React.ComponentProps<'input'>, 'size'> & Omit<Vari
11
11
  testId?: string;
12
12
  /** @deprecated Wrap the control in `<Field invalid>`, or set `aria-invalid` on a control outside a `Field`. */
13
13
  error?: boolean;
14
+ /**
15
+ * Leave unset (or `"off"`) for app data: the field renders `autocomplete="off"` plus the
16
+ * ignore attributes of the common password managers, so a "Name" field doesn't get an
17
+ * identity popup. Pass a real autofill token (`email`, `username`, `current-password`,
18
+ * `new-password`, `one-time-code`, ...) on credential and account forms to opt back in.
19
+ */
20
+ autoComplete?: React.HTMLInputAutoCompleteAttribute;
14
21
  };
15
- declare function Input({ className, size, testId, variant, error, ...props }: InputProps): React.JSX.Element;
22
+ /**
23
+ * Single-line text field. Opts out of password manager autofill unless `autoComplete`
24
+ * names a real autofill token; see `textFieldAutofillProps`.
25
+ */
26
+ declare function Input({ className, size, testId, variant, error, autoComplete, ...props }: InputProps): React.JSX.Element;
16
27
  export { Input };
@@ -19,7 +19,7 @@ export type InputGroupInputProps = Omit<React.ComponentProps<'input'>, 'size'> &
19
19
  /** @deprecated Wrap the group in `<Field invalid>`, or set `aria-invalid` on a control outside a `Field`. */
20
20
  error?: boolean;
21
21
  };
22
- declare function InputGroupInput({ className, testId, error, type, ...props }: InputGroupInputProps): React.JSX.Element;
22
+ declare function InputGroupInput({ className, testId, error, type, autoComplete, ...props }: InputGroupInputProps): React.JSX.Element;
23
23
  export type InputGroupTextareaProps = React.ComponentProps<'textarea'> & {
24
24
  testId?: string;
25
25
  /** @deprecated Wrap the group in `<Field invalid>`, or set `aria-invalid` on a control outside a `Field`. */
@@ -13,7 +13,7 @@ declare function InputNumberGroup({ className, size, ...props }: InputNumberGrou
13
13
  type InputNumberInputProps = Omit<NumberFieldPrimitive.Input.Props, 'className'> & {
14
14
  className?: string;
15
15
  };
16
- declare function InputNumberInput({ className, ...props }: InputNumberInputProps): React.JSX.Element;
16
+ declare function InputNumberInput({ className, autoComplete, ...props }: InputNumberInputProps): React.JSX.Element;
17
17
  type InputNumberDecrementProps = Omit<NumberFieldPrimitive.Decrement.Props, 'className'> & {
18
18
  className?: string;
19
19
  };
@@ -13,6 +13,7 @@ export declare function TreeProvider({ children, value }: {
13
13
  export declare function useTreeContext(): TreeContextValue | null;
14
14
  export interface TreeFolderContextValue {
15
15
  isFocused: boolean;
16
+ isOpen: boolean;
16
17
  }
17
18
  export declare function TreeFolderProvider({ children, value }: {
18
19
  children: React.ReactNode;
@@ -14,7 +14,10 @@ export declare function timeXAxis({ data, xKey, timestampKey, xLabels, plotWidth
14
14
  xLabels: ChartXLabels;
15
15
  plotWidth: number;
16
16
  }): import("react").JSX.Element;
17
- /** Width of the y-axis label column when shown. */
17
+ /**
18
+ * Room the y-axis labels take at most. The axis itself is as wide as its longest label, so the
19
+ * labels line up with the card's content; this only sizes the plot for spacing the x labels.
20
+ */
18
21
  export declare const Y_AXIS_WIDTH = 44;
19
22
  export declare function valueYAxis({ id, show, size, formatter, domain, right, }: {
20
23
  id?: string | number;
@@ -0,0 +1,29 @@
1
+ export declare const passwordManagerIgnoreAttributes: {
2
+ readonly 'data-1p-ignore': "true";
3
+ readonly 'data-lpignore': "true";
4
+ readonly 'data-bwignore': "true";
5
+ readonly 'data-form-type': "other";
6
+ readonly 'data-protonpass-ignore': "true";
7
+ };
8
+ /**
9
+ * Props that keep browser autofill and the common password managers off a field. Spread
10
+ * them on a text field that never takes a credential (a search box, a rename input).
11
+ */
12
+ export declare const passwordManagerOptOutProps: {
13
+ readonly 'data-1p-ignore': "true";
14
+ readonly 'data-lpignore': "true";
15
+ readonly 'data-bwignore': "true";
16
+ readonly 'data-form-type': "other";
17
+ readonly 'data-protonpass-ignore': "true";
18
+ readonly autoComplete: "off";
19
+ };
20
+ export type TextFieldAutofillProps = typeof passwordManagerOptOutProps | {
21
+ autoComplete: string;
22
+ };
23
+ /**
24
+ * Autofill props for a DS text field. With no `autoComplete` (or `"off"`), the field opts
25
+ * out of browser autofill and of the common password managers. Any other value is an
26
+ * explicit autofill token and is passed through untouched, with no ignore hints.
27
+ * Spread it after the caller's props so the opt-out reaches the DOM.
28
+ */
29
+ export declare function textFieldAutofillProps(autoComplete: string | undefined): TextFieldAutofillProps;
@@ -1,3 +1,3 @@
1
1
  import type * as React from 'react';
2
2
  export type TextareaControlProps = React.ComponentProps<'textarea'>;
3
- export declare function TextareaControl({ id, name, disabled, ref, ...props }: TextareaControlProps): React.JSX.Element;
3
+ export declare function TextareaControl({ id, name, disabled, ref, autoComplete, ...props }: TextareaControlProps): React.JSX.Element;
package/dist/style.css CHANGED
@@ -1770,10 +1770,6 @@
1770
1770
  margin-left: calc(var(--spacing) * -1);
1771
1771
  }
1772
1772
 
1773
- .-ml-2 {
1774
- margin-left: calc(var(--spacing) * -2);
1775
- }
1776
-
1777
1773
  .-ml-4 {
1778
1774
  margin-left: calc(var(--spacing) * -4);
1779
1775
  }
@@ -1963,6 +1959,11 @@
1963
1959
  height: calc(var(--spacing) * 3.5);
1964
1960
  }
1965
1961
 
1962
+ .size-3\.25 {
1963
+ width: calc(var(--spacing) * 3.25);
1964
+ height: calc(var(--spacing) * 3.25);
1965
+ }
1966
+
1966
1967
  .size-4 {
1967
1968
  width: calc(var(--spacing) * 4);
1968
1969
  height: calc(var(--spacing) * 4);
@@ -9550,6 +9551,14 @@
9550
9551
  }
9551
9552
  }
9552
9553
 
9554
+ :where([aria-expanded="true"]) .in-aria-expanded\:rotate-90 {
9555
+ rotate: 90deg;
9556
+ }
9557
+
9558
+ :where([aria-expanded="true"]) .in-aria-expanded\:rotate-180 {
9559
+ rotate: 180deg;
9560
+ }
9561
+
9553
9562
  :where([data-disabled]) .in-data-disabled\:text-muted-foreground {
9554
9563
  color: var(--muted-foreground);
9555
9564
  }
@@ -9865,6 +9874,11 @@
9865
9874
  opacity: .5;
9866
9875
  }
9867
9876
 
9877
+ .data-drop-target\:shadow-\[inset_2px_0_0_var\(--border-focus\)\][data-drop-target] {
9878
+ --tw-shadow: inset 2px 0 0 var(--tw-shadow-color, var(--border-focus));
9879
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
9880
+ }
9881
+
9868
9882
  .data-featured\:before\:bg-surface-panel[data-featured]:before {
9869
9883
  content: var(--tw-content);
9870
9884
  background-color: var(--surface-panel);
@@ -12578,21 +12592,6 @@
12578
12592
  opacity: .7;
12579
12593
  }
12580
12594
 
12581
- .\[\&\>svg\]\:transition-transform > svg {
12582
- transition-property: transform, translate, scale, rotate;
12583
- transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
12584
- transition-duration: var(--tw-duration, var(--default-transition-duration));
12585
- }
12586
-
12587
- .\[\&\>svg\]\:duration-normal > svg {
12588
- transition-duration: var(--duration-normal);
12589
- }
12590
-
12591
- .\[\&\>svg\]\:ease-out-custom > svg {
12592
- --tw-ease: var(--ease-out-custom);
12593
- transition-timing-function: var(--ease-out-custom);
12594
- }
12595
-
12596
12595
  .group-data-\[variant\=default\]\/section\:\[\&\>svg\]\:size-\[1\.2em\]:is(:where(.group\/section)[data-variant="default"] *) > svg {
12597
12596
  width: 1.2em;
12598
12597
  height: 1.2em;
@@ -12633,10 +12632,6 @@
12633
12632
  height: var(--spacing-table-row-small);
12634
12633
  }
12635
12634
 
12636
- .\[\&\[data-panel-open\]\>svg\]\:rotate-90[data-panel-open] > svg {
12637
- rotate: 90deg;
12638
- }
12639
-
12640
12635
  .\[\&\[type\=number\]\]\:\[appearance\:textfield\][type="number"] {
12641
12636
  appearance: textfield;
12642
12637
  }
@@ -2,7 +2,7 @@
2
2
 
3
3
  const jsxRuntime = require('react/jsx-runtime');
4
4
  const lucideReact = require('lucide-react');
5
- const activity = require('./activity-pXCpwxxi.cjs');
5
+ const activity = require('./activity-CaFdLiPz.cjs');
6
6
  const toolCallArguments = require('./tool-call-arguments-D_59g8vR.cjs');
7
7
  const toolPresentation = require('./tool-presentation-WLS6d1ws.cjs');
8
8
  const Badge = require('./Badge-BF6FbLH_.cjs');
@@ -72,4 +72,4 @@ function ToolApproval({ toolName, args, status, children, ...actions }) {
72
72
  exports.ToolApproval = ToolApproval;
73
73
  exports.ToolApprovalActions = ToolApprovalActions;
74
74
  exports.ToolApprovalStatus = ToolApprovalStatus;
75
- //# sourceMappingURL=tool-approval-CWOuZz47.cjs.map
75
+ //# sourceMappingURL=tool-approval-DEfU8dPG.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"tool-approval-CWOuZz47.cjs","sources":["../src/ds/components/ai/tool-approval/tool-approval.tsx"],"sourcesContent":["import { Check, ShieldCheck, X } from 'lucide-react';\nimport type { LucideIcon } from 'lucide-react';\nimport type { ReactNode } from 'react';\nimport { Activity, ActivityContent, ActivityHeader, ActivityIcon, ActivityTrigger } from '../activity';\nimport { presentTool, ToolCallArguments } from '../tool-call';\nimport { Badge } from '@/ds/components/Badge';\nimport type { BadgeVariant } from '@/ds/components/Badge';\nimport { Button } from '@/ds/components/Button';\nimport { Txt } from '@/ds/components/Txt';\n\ntype ToolApprovalDecision = 'approved' | 'declined';\n\nconst approvalStates = {\n pending: { label: 'Approval required', variant: 'warning', icon: ShieldCheck },\n approved: { label: 'Approved', variant: 'success', icon: Check },\n declined: { label: 'Declined', variant: 'neutral', icon: X },\n} satisfies Record<'pending' | ToolApprovalDecision, { label: string; variant: BadgeVariant; icon: LucideIcon }>;\n\nexport interface ToolApprovalStatusProps {\n status?: ToolApprovalDecision;\n}\n\nexport function ToolApprovalStatus({ status }: ToolApprovalStatusProps) {\n const { label, variant, icon: StatusIcon } = approvalStates[status ?? 'pending'];\n return (\n <span role=\"status\" className=\"inline-flex shrink-0\">\n <Badge variant={variant} emphasis=\"subtle\" size=\"sm\" icon={<StatusIcon aria-hidden />}>\n {label}\n </Badge>\n </span>\n );\n}\n\nexport interface ToolApprovalActionsProps {\n onApprove: () => void;\n onDecline: () => void;\n disabled?: boolean;\n toolName?: string;\n autoFocus?: boolean;\n}\n\nexport function ToolApprovalActions({\n onApprove,\n onDecline,\n disabled = false,\n toolName,\n autoFocus = false,\n}: ToolApprovalActionsProps) {\n return (\n <div className=\"flex flex-wrap items-center gap-2\">\n <Button\n type=\"button\"\n variant=\"primary\"\n size=\"sm\"\n icon={<Check aria-hidden />}\n aria-label={toolName ? `Approve ${toolName}` : undefined}\n autoFocus={autoFocus}\n disabled={disabled}\n onClick={onApprove}\n >\n Approve\n </Button>\n <Button\n type=\"button\"\n size=\"sm\"\n icon={<X aria-hidden />}\n aria-label={toolName ? `Decline ${toolName}` : undefined}\n disabled={disabled}\n onClick={onDecline}\n >\n Decline\n </Button>\n </div>\n );\n}\n\nexport interface ToolApprovalProps extends ToolApprovalActionsProps, ToolApprovalStatusProps {\n toolName: string;\n args?: unknown;\n /** Custom details replace the default argument renderer. */\n children?: ReactNode;\n}\n\nexport function ToolApproval({ toolName, args, status, children, ...actions }: ToolApprovalProps) {\n const { icon: ToolIcon } = presentTool(toolName, args);\n\n return (\n <Activity open foldable={false} className=\"my-2\" aria-label={`Tool approval for ${toolName}`}>\n <ActivityTrigger>\n <ActivityHeader className=\"flex-wrap\">\n <ActivityIcon>\n <ToolIcon aria-hidden />\n </ActivityIcon>\n <Txt as=\"span\" variant=\"caption\" tone=\"muted\" font=\"mono\" className=\"min-w-0 break-all\">\n {toolName}\n </Txt>\n <ToolApprovalStatus status={status} />\n </ActivityHeader>\n </ActivityTrigger>\n <ActivityContent>\n {children ?? <ToolCallArguments toolName={toolName} args={args} showFullContent />}\n {!status && <ToolApprovalActions toolName={toolName} {...actions} />}\n </ActivityContent>\n </Activity>\n );\n}\n"],"names":["ShieldCheck","Check","X","jsx","Badge","jsxs","Button","presentTool","Activity","ActivityTrigger","ActivityHeader","ActivityIcon","Txt","ActivityContent","ToolCallArguments"],"mappings":"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"}
1
+ {"version":3,"file":"tool-approval-DEfU8dPG.cjs","sources":["../src/ds/components/ai/tool-approval/tool-approval.tsx"],"sourcesContent":["import { Check, ShieldCheck, X } from 'lucide-react';\nimport type { LucideIcon } from 'lucide-react';\nimport type { ReactNode } from 'react';\nimport { Activity, ActivityContent, ActivityHeader, ActivityIcon, ActivityTrigger } from '../activity';\nimport { presentTool, ToolCallArguments } from '../tool-call';\nimport { Badge } from '@/ds/components/Badge';\nimport type { BadgeVariant } from '@/ds/components/Badge';\nimport { Button } from '@/ds/components/Button';\nimport { Txt } from '@/ds/components/Txt';\n\ntype ToolApprovalDecision = 'approved' | 'declined';\n\nconst approvalStates = {\n pending: { label: 'Approval required', variant: 'warning', icon: ShieldCheck },\n approved: { label: 'Approved', variant: 'success', icon: Check },\n declined: { label: 'Declined', variant: 'neutral', icon: X },\n} satisfies Record<'pending' | ToolApprovalDecision, { label: string; variant: BadgeVariant; icon: LucideIcon }>;\n\nexport interface ToolApprovalStatusProps {\n status?: ToolApprovalDecision;\n}\n\nexport function ToolApprovalStatus({ status }: ToolApprovalStatusProps) {\n const { label, variant, icon: StatusIcon } = approvalStates[status ?? 'pending'];\n return (\n <span role=\"status\" className=\"inline-flex shrink-0\">\n <Badge variant={variant} emphasis=\"subtle\" size=\"sm\" icon={<StatusIcon aria-hidden />}>\n {label}\n </Badge>\n </span>\n );\n}\n\nexport interface ToolApprovalActionsProps {\n onApprove: () => void;\n onDecline: () => void;\n disabled?: boolean;\n toolName?: string;\n autoFocus?: boolean;\n}\n\nexport function ToolApprovalActions({\n onApprove,\n onDecline,\n disabled = false,\n toolName,\n autoFocus = false,\n}: ToolApprovalActionsProps) {\n return (\n <div className=\"flex flex-wrap items-center gap-2\">\n <Button\n type=\"button\"\n variant=\"primary\"\n size=\"sm\"\n icon={<Check aria-hidden />}\n aria-label={toolName ? `Approve ${toolName}` : undefined}\n autoFocus={autoFocus}\n disabled={disabled}\n onClick={onApprove}\n >\n Approve\n </Button>\n <Button\n type=\"button\"\n size=\"sm\"\n icon={<X aria-hidden />}\n aria-label={toolName ? `Decline ${toolName}` : undefined}\n disabled={disabled}\n onClick={onDecline}\n >\n Decline\n </Button>\n </div>\n );\n}\n\nexport interface ToolApprovalProps extends ToolApprovalActionsProps, ToolApprovalStatusProps {\n toolName: string;\n args?: unknown;\n /** Custom details replace the default argument renderer. */\n children?: ReactNode;\n}\n\nexport function ToolApproval({ toolName, args, status, children, ...actions }: ToolApprovalProps) {\n const { icon: ToolIcon } = presentTool(toolName, args);\n\n return (\n <Activity open foldable={false} className=\"my-2\" aria-label={`Tool approval for ${toolName}`}>\n <ActivityTrigger>\n <ActivityHeader className=\"flex-wrap\">\n <ActivityIcon>\n <ToolIcon aria-hidden />\n </ActivityIcon>\n <Txt as=\"span\" variant=\"caption\" tone=\"muted\" font=\"mono\" className=\"min-w-0 break-all\">\n {toolName}\n </Txt>\n <ToolApprovalStatus status={status} />\n </ActivityHeader>\n </ActivityTrigger>\n <ActivityContent>\n {children ?? <ToolCallArguments toolName={toolName} args={args} showFullContent />}\n {!status && <ToolApprovalActions toolName={toolName} {...actions} />}\n </ActivityContent>\n </Activity>\n );\n}\n"],"names":["ShieldCheck","Check","X","jsx","Badge","jsxs","Button","presentTool","Activity","ActivityTrigger","ActivityHeader","ActivityIcon","Txt","ActivityContent","ToolCallArguments"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import { Check, X, ShieldCheck } from 'lucide-react';
3
- import { A as Activity, m as ActivityTrigger, d as ActivityHeader, f as ActivityIcon, a as ActivityContent } from './activity-maXCNWZp.js';
3
+ import { A as Activity, m as ActivityTrigger, d as ActivityHeader, f as ActivityIcon, a as ActivityContent } from './activity-BsrB5ADa.js';
4
4
  import { T as ToolCallArguments } from './tool-call-arguments-fd023vLB.js';
5
5
  import { p as presentTool } from './tool-presentation-BXAo24Ir.js';
6
6
  import { B as Badge } from './Badge-3-G2I_cx.js';
@@ -68,4 +68,4 @@ function ToolApproval({ toolName, args, status, children, ...actions }) {
68
68
  }
69
69
 
70
70
  export { ToolApproval as T, ToolApprovalActions as a, ToolApprovalStatus as b };
71
- //# sourceMappingURL=tool-approval-BabMPJSL.js.map
71
+ //# sourceMappingURL=tool-approval-DM8lvaCK.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tool-approval-BabMPJSL.js","sources":["../src/ds/components/ai/tool-approval/tool-approval.tsx"],"sourcesContent":["import { Check, ShieldCheck, X } from 'lucide-react';\nimport type { LucideIcon } from 'lucide-react';\nimport type { ReactNode } from 'react';\nimport { Activity, ActivityContent, ActivityHeader, ActivityIcon, ActivityTrigger } from '../activity';\nimport { presentTool, ToolCallArguments } from '../tool-call';\nimport { Badge } from '@/ds/components/Badge';\nimport type { BadgeVariant } from '@/ds/components/Badge';\nimport { Button } from '@/ds/components/Button';\nimport { Txt } from '@/ds/components/Txt';\n\ntype ToolApprovalDecision = 'approved' | 'declined';\n\nconst approvalStates = {\n pending: { label: 'Approval required', variant: 'warning', icon: ShieldCheck },\n approved: { label: 'Approved', variant: 'success', icon: Check },\n declined: { label: 'Declined', variant: 'neutral', icon: X },\n} satisfies Record<'pending' | ToolApprovalDecision, { label: string; variant: BadgeVariant; icon: LucideIcon }>;\n\nexport interface ToolApprovalStatusProps {\n status?: ToolApprovalDecision;\n}\n\nexport function ToolApprovalStatus({ status }: ToolApprovalStatusProps) {\n const { label, variant, icon: StatusIcon } = approvalStates[status ?? 'pending'];\n return (\n <span role=\"status\" className=\"inline-flex shrink-0\">\n <Badge variant={variant} emphasis=\"subtle\" size=\"sm\" icon={<StatusIcon aria-hidden />}>\n {label}\n </Badge>\n </span>\n );\n}\n\nexport interface ToolApprovalActionsProps {\n onApprove: () => void;\n onDecline: () => void;\n disabled?: boolean;\n toolName?: string;\n autoFocus?: boolean;\n}\n\nexport function ToolApprovalActions({\n onApprove,\n onDecline,\n disabled = false,\n toolName,\n autoFocus = false,\n}: ToolApprovalActionsProps) {\n return (\n <div className=\"flex flex-wrap items-center gap-2\">\n <Button\n type=\"button\"\n variant=\"primary\"\n size=\"sm\"\n icon={<Check aria-hidden />}\n aria-label={toolName ? `Approve ${toolName}` : undefined}\n autoFocus={autoFocus}\n disabled={disabled}\n onClick={onApprove}\n >\n Approve\n </Button>\n <Button\n type=\"button\"\n size=\"sm\"\n icon={<X aria-hidden />}\n aria-label={toolName ? `Decline ${toolName}` : undefined}\n disabled={disabled}\n onClick={onDecline}\n >\n Decline\n </Button>\n </div>\n );\n}\n\nexport interface ToolApprovalProps extends ToolApprovalActionsProps, ToolApprovalStatusProps {\n toolName: string;\n args?: unknown;\n /** Custom details replace the default argument renderer. */\n children?: ReactNode;\n}\n\nexport function ToolApproval({ toolName, args, status, children, ...actions }: ToolApprovalProps) {\n const { icon: ToolIcon } = presentTool(toolName, args);\n\n return (\n <Activity open foldable={false} className=\"my-2\" aria-label={`Tool approval for ${toolName}`}>\n <ActivityTrigger>\n <ActivityHeader className=\"flex-wrap\">\n <ActivityIcon>\n <ToolIcon aria-hidden />\n </ActivityIcon>\n <Txt as=\"span\" variant=\"caption\" tone=\"muted\" font=\"mono\" className=\"min-w-0 break-all\">\n {toolName}\n </Txt>\n <ToolApprovalStatus status={status} />\n </ActivityHeader>\n </ActivityTrigger>\n <ActivityContent>\n {children ?? <ToolCallArguments toolName={toolName} args={args} showFullContent />}\n {!status && <ToolApprovalActions toolName={toolName} {...actions} />}\n </ActivityContent>\n </Activity>\n );\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-approval-DM8lvaCK.js","sources":["../src/ds/components/ai/tool-approval/tool-approval.tsx"],"sourcesContent":["import { Check, ShieldCheck, X } from 'lucide-react';\nimport type { LucideIcon } from 'lucide-react';\nimport type { ReactNode } from 'react';\nimport { Activity, ActivityContent, ActivityHeader, ActivityIcon, ActivityTrigger } from '../activity';\nimport { presentTool, ToolCallArguments } from '../tool-call';\nimport { Badge } from '@/ds/components/Badge';\nimport type { BadgeVariant } from '@/ds/components/Badge';\nimport { Button } from '@/ds/components/Button';\nimport { Txt } from '@/ds/components/Txt';\n\ntype ToolApprovalDecision = 'approved' | 'declined';\n\nconst approvalStates = {\n pending: { label: 'Approval required', variant: 'warning', icon: ShieldCheck },\n approved: { label: 'Approved', variant: 'success', icon: Check },\n declined: { label: 'Declined', variant: 'neutral', icon: X },\n} satisfies Record<'pending' | ToolApprovalDecision, { label: string; variant: BadgeVariant; icon: LucideIcon }>;\n\nexport interface ToolApprovalStatusProps {\n status?: ToolApprovalDecision;\n}\n\nexport function ToolApprovalStatus({ status }: ToolApprovalStatusProps) {\n const { label, variant, icon: StatusIcon } = approvalStates[status ?? 'pending'];\n return (\n <span role=\"status\" className=\"inline-flex shrink-0\">\n <Badge variant={variant} emphasis=\"subtle\" size=\"sm\" icon={<StatusIcon aria-hidden />}>\n {label}\n </Badge>\n </span>\n );\n}\n\nexport interface ToolApprovalActionsProps {\n onApprove: () => void;\n onDecline: () => void;\n disabled?: boolean;\n toolName?: string;\n autoFocus?: boolean;\n}\n\nexport function ToolApprovalActions({\n onApprove,\n onDecline,\n disabled = false,\n toolName,\n autoFocus = false,\n}: ToolApprovalActionsProps) {\n return (\n <div className=\"flex flex-wrap items-center gap-2\">\n <Button\n type=\"button\"\n variant=\"primary\"\n size=\"sm\"\n icon={<Check aria-hidden />}\n aria-label={toolName ? `Approve ${toolName}` : undefined}\n autoFocus={autoFocus}\n disabled={disabled}\n onClick={onApprove}\n >\n Approve\n </Button>\n <Button\n type=\"button\"\n size=\"sm\"\n icon={<X aria-hidden />}\n aria-label={toolName ? `Decline ${toolName}` : undefined}\n disabled={disabled}\n onClick={onDecline}\n >\n Decline\n </Button>\n </div>\n );\n}\n\nexport interface ToolApprovalProps extends ToolApprovalActionsProps, ToolApprovalStatusProps {\n toolName: string;\n args?: unknown;\n /** Custom details replace the default argument renderer. */\n children?: ReactNode;\n}\n\nexport function ToolApproval({ toolName, args, status, children, ...actions }: ToolApprovalProps) {\n const { icon: ToolIcon } = presentTool(toolName, args);\n\n return (\n <Activity open foldable={false} className=\"my-2\" aria-label={`Tool approval for ${toolName}`}>\n <ActivityTrigger>\n <ActivityHeader className=\"flex-wrap\">\n <ActivityIcon>\n <ToolIcon aria-hidden />\n </ActivityIcon>\n <Txt as=\"span\" variant=\"caption\" tone=\"muted\" font=\"mono\" className=\"min-w-0 break-all\">\n {toolName}\n </Txt>\n <ToolApprovalStatus status={status} />\n </ActivityHeader>\n </ActivityTrigger>\n <ActivityContent>\n {children ?? <ToolCallArguments toolName={toolName} args={args} showFullContent />}\n {!status && <ToolApprovalActions toolName={toolName} {...actions} />}\n </ActivityContent>\n </Activity>\n );\n}\n"],"names":[],"mappings":"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"}