@mastra/playground-ui 58.0.0 → 59.0.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (691) hide show
  1. package/README.md +62 -0
  2. package/dist/{Badge-TD55_qZJ.js → Badge-Bzn8Z-_I.js} +2 -2
  3. package/dist/Badge-Bzn8Z-_I.js.map +1 -0
  4. package/dist/{Badge-BEeYtjmv.cjs → Badge-DFNxcz-r.cjs} +2 -2
  5. package/dist/Badge-DFNxcz-r.cjs.map +1 -0
  6. package/dist/{Header-BVnFQlzE.js → Header-hTHhO02b.js} +2 -2
  7. package/dist/{Header-BVnFQlzE.js.map → Header-hTHhO02b.js.map} +1 -1
  8. package/dist/{Header-CGjhJ0nQ.cjs → Header-y51Sfo3G.cjs} +2 -2
  9. package/dist/{Header-CGjhJ0nQ.cjs.map → Header-y51Sfo3G.cjs.map} +1 -1
  10. package/dist/{Txt-DTh3Pa_a.js → Txt-BP1SRHmL.js} +4 -10
  11. package/dist/Txt-BP1SRHmL.js.map +1 -0
  12. package/dist/{Txt-B4-2nLaI.cjs → Txt-DPmEpNbp.cjs} +4 -10
  13. package/dist/Txt-DPmEpNbp.cjs.map +1 -0
  14. package/dist/{ask-user-BPpgiE7k.cjs → ask-user-4pnmHbuC.cjs} +3 -3
  15. package/dist/{ask-user-BPpgiE7k.cjs.map → ask-user-4pnmHbuC.cjs.map} +1 -1
  16. package/dist/{ask-user-jDUt7hgT.js → ask-user-CFcQN_7m.js} +3 -3
  17. package/dist/{ask-user-jDUt7hgT.js.map → ask-user-CFcQN_7m.js.map} +1 -1
  18. package/dist/{chat-notification-CmdRGO_D.js → chat-notification-BI_WRUvG.js} +3 -3
  19. package/dist/{chat-notification-CmdRGO_D.js.map → chat-notification-BI_WRUvG.js.map} +1 -1
  20. package/dist/{chat-notification-DJykWtoj.cjs → chat-notification-Dc7jwULm.cjs} +3 -3
  21. package/dist/{chat-notification-DJykWtoj.cjs.map → chat-notification-Dc7jwULm.cjs.map} +1 -1
  22. package/dist/{chat-signal-xs3FkPts.cjs → chat-signal-BodewV33.cjs} +3 -3
  23. package/dist/{chat-signal-xs3FkPts.cjs.map → chat-signal-BodewV33.cjs.map} +1 -1
  24. package/dist/{chat-signal-Vg8pGXwH.js → chat-signal-D0zw80bU.js} +3 -3
  25. package/dist/{chat-signal-Vg8pGXwH.js.map → chat-signal-D0zw80bU.js.map} +1 -1
  26. package/dist/{combobox-BoSB-muq.cjs → combobox-B19HJqE-.cjs} +2 -2
  27. package/dist/{combobox-BoSB-muq.cjs.map → combobox-B19HJqE-.cjs.map} +1 -1
  28. package/dist/{combobox-Cd0JPUQW.js → combobox-D_kmwSKS.js} +2 -2
  29. package/dist/{combobox-Cd0JPUQW.js.map → combobox-D_kmwSKS.js.map} +1 -1
  30. package/dist/components/Avatar.cjs.js +1 -1
  31. package/dist/components/Avatar.es.js +1 -1
  32. package/dist/components/Badge.cjs.js +1 -1
  33. package/dist/components/Badge.es.js +1 -1
  34. package/dist/components/ClampedText.cjs.js +1 -1
  35. package/dist/components/ClampedText.es.js +1 -1
  36. package/dist/components/Combobox.cjs.js +1 -1
  37. package/dist/components/Combobox.es.js +1 -1
  38. package/dist/components/Comment.cjs.js +2 -2
  39. package/dist/components/Comment.es.js +2 -2
  40. package/dist/components/CompactNumber.cjs.js +24 -0
  41. package/dist/components/CompactNumber.cjs.js.map +1 -0
  42. package/dist/components/CompactNumber.d.ts +2 -0
  43. package/dist/components/CompactNumber.es.js +20 -0
  44. package/dist/components/CompactNumber.es.js.map +1 -0
  45. package/dist/components/DataCodeSection.cjs.js +1 -1
  46. package/dist/components/DataCodeSection.es.js +1 -1
  47. package/dist/components/DataList.cjs.js +8 -14
  48. package/dist/components/DataList.cjs.js.map +1 -1
  49. package/dist/components/DataList.es.js +8 -14
  50. package/dist/components/DataList.es.js.map +1 -1
  51. package/dist/components/DataPanel.cjs.js +1 -1
  52. package/dist/components/DataPanel.es.js +1 -1
  53. package/dist/components/DateRangeTimeline.cjs.js +1 -1
  54. package/dist/components/DateRangeTimeline.es.js +1 -1
  55. package/dist/components/DateTimePicker.cjs.js +1 -1
  56. package/dist/components/DateTimePicker.es.js +1 -1
  57. package/dist/components/DateTimeRangePicker.cjs.js +1 -1
  58. package/dist/components/DateTimeRangePicker.es.js +1 -1
  59. package/dist/components/Entity.cjs.js +1 -1
  60. package/dist/components/Entity.es.js +1 -1
  61. package/dist/components/EntityHeader.cjs.js +1 -1
  62. package/dist/components/EntityHeader.es.js +1 -1
  63. package/dist/components/Entry.cjs.js +1 -1
  64. package/dist/components/Entry.es.js +1 -1
  65. package/dist/components/EnvironmentVariablesEditor.cjs.js +3 -3
  66. package/dist/components/EnvironmentVariablesEditor.es.js +3 -3
  67. package/dist/components/FilterBar.cjs.js +1 -1
  68. package/dist/components/FilterBar.es.js +1 -1
  69. package/dist/components/FormFieldBlocks.cjs.js +4 -4
  70. package/dist/components/FormFieldBlocks.es.js +4 -4
  71. package/dist/components/Header.cjs.js +1 -1
  72. package/dist/components/Header.es.js +1 -1
  73. package/dist/components/InlineCode.cjs.js +10 -0
  74. package/dist/components/InlineCode.cjs.js.map +1 -0
  75. package/dist/components/InlineCode.d.ts +2 -0
  76. package/dist/components/InlineCode.es.js +2 -0
  77. package/dist/components/InlineCode.es.js.map +1 -0
  78. package/dist/components/ItemList.cjs.js +5 -17
  79. package/dist/components/ItemList.cjs.js.map +1 -1
  80. package/dist/components/ItemList.es.js +5 -17
  81. package/dist/components/ItemList.es.js.map +1 -1
  82. package/dist/components/JSONSchemaForm.cjs.js +2 -2
  83. package/dist/components/JSONSchemaForm.es.js +2 -2
  84. package/dist/components/ListSearch.cjs.js +1 -1
  85. package/dist/components/ListSearch.es.js +1 -1
  86. package/dist/components/LogsDataList.cjs.js +2 -2
  87. package/dist/components/LogsDataList.es.js +2 -2
  88. package/dist/components/Message.cjs.js +4 -5
  89. package/dist/components/Message.cjs.js.map +1 -1
  90. package/dist/components/Message.es.js +4 -5
  91. package/dist/components/Message.es.js.map +1 -1
  92. package/dist/components/MetricsCard.cjs.js +1 -1
  93. package/dist/components/MetricsCard.es.js +1 -1
  94. package/dist/components/MetricsCardGroup.cjs.js +2 -11
  95. package/dist/components/MetricsCardGroup.cjs.js.map +1 -1
  96. package/dist/components/MetricsCardGroup.es.js +2 -11
  97. package/dist/components/MetricsCardGroup.es.js.map +1 -1
  98. package/dist/components/MetricsKpiCard.cjs.js +1 -1
  99. package/dist/components/MetricsKpiCard.es.js +1 -1
  100. package/dist/components/MetricsLineChart.cjs.js +2 -1
  101. package/dist/components/MetricsLineChart.cjs.js.map +1 -1
  102. package/dist/components/MetricsLineChart.es.js +1 -1
  103. package/dist/components/PageHeader.cjs.js +1 -1
  104. package/dist/components/PageHeader.es.js +1 -1
  105. package/dist/components/PageLayout.cjs.js +1 -1
  106. package/dist/components/PageLayout.es.js +1 -1
  107. package/dist/components/PropertyFilter.cjs.js +1 -1
  108. package/dist/components/PropertyFilter.es.js +1 -1
  109. package/dist/components/RelativeTimestamp.cjs.js +119 -0
  110. package/dist/components/RelativeTimestamp.cjs.js.map +1 -0
  111. package/dist/components/RelativeTimestamp.d.ts +2 -0
  112. package/dist/components/RelativeTimestamp.es.js +115 -0
  113. package/dist/components/RelativeTimestamp.es.js.map +1 -0
  114. package/dist/components/Section.cjs.js +1 -1
  115. package/dist/components/Section.es.js +1 -1
  116. package/dist/components/SettingsRow.cjs.js +1 -1
  117. package/dist/components/SettingsRow.es.js +1 -1
  118. package/dist/components/SideDialog.cjs.js +1 -1
  119. package/dist/components/SideDialog.es.js +1 -1
  120. package/dist/components/StatusIndicators.cjs.js +21 -14
  121. package/dist/components/StatusIndicators.cjs.js.map +1 -1
  122. package/dist/components/StatusIndicators.es.js +21 -15
  123. package/dist/components/StatusIndicators.es.js.map +1 -1
  124. package/dist/components/Table.cjs.js +3 -21
  125. package/dist/components/Table.cjs.js.map +1 -1
  126. package/dist/components/Table.es.js +3 -21
  127. package/dist/components/Table.es.js.map +1 -1
  128. package/dist/components/ThreadList.cjs.js +1 -1
  129. package/dist/components/ThreadList.es.js +1 -1
  130. package/dist/components/Truncate.cjs.js +1 -1
  131. package/dist/components/Truncate.es.js +1 -1
  132. package/dist/components/Txt.cjs.js +1 -1
  133. package/dist/components/Txt.es.js +1 -1
  134. package/dist/components/Workflow.cjs.js +9 -13
  135. package/dist/components/Workflow.cjs.js.map +1 -1
  136. package/dist/components/Workflow.es.js +9 -13
  137. package/dist/components/Workflow.es.js.map +1 -1
  138. package/dist/components/ai/ask-user.cjs.js +1 -1
  139. package/dist/components/ai/ask-user.es.js +1 -1
  140. package/dist/components/ai/chat-event.cjs.js +3 -3
  141. package/dist/components/ai/chat-event.es.js +4 -4
  142. package/dist/components/ai/plan.cjs.js +3 -3
  143. package/dist/components/ai/plan.cjs.js.map +1 -1
  144. package/dist/components/ai/plan.es.js +3 -3
  145. package/dist/components/ai/plan.es.js.map +1 -1
  146. package/dist/components/ai/task-list.cjs.js +370 -55
  147. package/dist/components/ai/task-list.cjs.js.map +1 -1
  148. package/dist/components/ai/task-list.es.js +374 -58
  149. package/dist/components/ai/task-list.es.js.map +1 -1
  150. package/dist/components/ai/tool-call.cjs.js +7 -9
  151. package/dist/components/ai/tool-call.cjs.js.map +1 -1
  152. package/dist/components/ai/tool-call.es.js +8 -10
  153. package/dist/components/ai/tool-call.es.js.map +1 -1
  154. package/dist/{data-code-section-Cth9zVkj.js → data-code-section-BKrCkj90.js} +2 -2
  155. package/dist/{data-code-section-Cth9zVkj.js.map → data-code-section-BKrCkj90.js.map} +1 -1
  156. package/dist/{data-code-section-DE4AgaTU.cjs → data-code-section-C9z94ytx.cjs} +2 -2
  157. package/dist/{data-code-section-DE4AgaTU.cjs.map → data-code-section-C9z94ytx.cjs.map} +1 -1
  158. package/dist/{data-list-DisTjDHP.js → data-list-5-nRJbEO.js} +3 -3
  159. package/dist/{data-list-DisTjDHP.js.map → data-list-5-nRJbEO.js.map} +1 -1
  160. package/dist/{data-list-PwFpP_mo.cjs → data-list-RI8c32dk.cjs} +3 -3
  161. package/dist/{data-list-PwFpP_mo.cjs.map → data-list-RI8c32dk.cjs.map} +1 -1
  162. package/dist/{data-list-skeleton-DAfM8AjW.js → data-list-skeleton-BrSh9Y_3.js} +2 -2
  163. package/dist/{data-list-skeleton-DAfM8AjW.js.map → data-list-skeleton-BrSh9Y_3.js.map} +1 -1
  164. package/dist/{data-list-skeleton-CjwR0o3w.cjs → data-list-skeleton-CgbWqYky.cjs} +2 -2
  165. package/dist/{data-list-skeleton-CjwR0o3w.cjs.map → data-list-skeleton-CgbWqYky.cjs.map} +1 -1
  166. package/dist/{data-list-spacer-DEcgVGFM.cjs → data-list-spacer-1OqlC7WX.cjs} +2 -2
  167. package/dist/{data-list-spacer-DEcgVGFM.cjs.map → data-list-spacer-1OqlC7WX.cjs.map} +1 -1
  168. package/dist/{data-list-spacer-BmorAN0V.js → data-list-spacer-D3Rn1evn.js} +2 -2
  169. package/dist/{data-list-spacer-BmorAN0V.js.map → data-list-spacer-D3Rn1evn.js.map} +1 -1
  170. package/dist/{data-list-top-DpbOA3uw.js → data-list-top-B-AopfvE.js} +13 -21
  171. package/dist/data-list-top-B-AopfvE.js.map +1 -0
  172. package/dist/{data-list-top-WGUY167p.cjs → data-list-top-DFnudSA_.cjs} +13 -21
  173. package/dist/data-list-top-DFnudSA_.cjs.map +1 -0
  174. package/dist/{data-panel-BQVTKo86.js → data-panel-BWgExbHs.js} +2 -2
  175. package/dist/{data-panel-BQVTKo86.js.map → data-panel-BWgExbHs.js.map} +1 -1
  176. package/dist/{data-panel-XPXrhYJI.cjs → data-panel-C_BqhzeL.cjs} +2 -2
  177. package/dist/{data-panel-XPXrhYJI.cjs.map → data-panel-C_BqhzeL.cjs.map} +1 -1
  178. package/dist/{date-time-range-picker-C-t3Kdpk.js → date-time-range-picker-Bnviv7s-.js} +2 -2
  179. package/dist/{date-time-range-picker-C-t3Kdpk.js.map → date-time-range-picker-Bnviv7s-.js.map} +1 -1
  180. package/dist/{date-time-range-picker-BCzvSYx3.cjs → date-time-range-picker-sT5qAW-_.cjs} +2 -2
  181. package/dist/{date-time-range-picker-BCzvSYx3.cjs.map → date-time-range-picker-sT5qAW-_.cjs.map} +1 -1
  182. package/dist/domains/capabilities/hooks/use-feedback-available.cjs.js +16 -0
  183. package/dist/domains/capabilities/hooks/use-feedback-available.cjs.js.map +1 -0
  184. package/dist/domains/capabilities/hooks/use-feedback-available.d.ts +2 -0
  185. package/dist/domains/capabilities/hooks/use-feedback-available.es.js +12 -0
  186. package/dist/domains/capabilities/hooks/use-feedback-available.es.js.map +1 -0
  187. package/dist/domains/capabilities/hooks/use-observability-capabilities.cjs.js +20 -0
  188. package/dist/domains/capabilities/hooks/use-observability-capabilities.cjs.js.map +1 -0
  189. package/dist/domains/capabilities/hooks/use-observability-capabilities.d.ts +2 -0
  190. package/dist/domains/capabilities/hooks/use-observability-capabilities.es.js +16 -0
  191. package/dist/domains/capabilities/hooks/use-observability-capabilities.es.js.map +1 -0
  192. package/dist/domains/capabilities/hooks/use-trace-query-available.cjs.js +16 -0
  193. package/dist/domains/capabilities/hooks/use-trace-query-available.cjs.js.map +1 -0
  194. package/dist/domains/capabilities/hooks/use-trace-query-available.d.ts +2 -0
  195. package/dist/domains/capabilities/hooks/use-trace-query-available.es.js +12 -0
  196. package/dist/domains/capabilities/hooks/use-trace-query-available.es.js.map +1 -0
  197. package/dist/domains/capabilities/hooks.cjs.js +14 -0
  198. package/dist/domains/capabilities/hooks.cjs.js.map +1 -0
  199. package/dist/domains/capabilities/hooks.d.ts +2 -0
  200. package/dist/domains/capabilities/hooks.es.js +4 -0
  201. package/dist/domains/capabilities/hooks.es.js.map +1 -0
  202. package/dist/domains/capabilities.cjs.js +14 -0
  203. package/dist/domains/capabilities.cjs.js.map +1 -0
  204. package/dist/domains/capabilities.d.ts +2 -0
  205. package/dist/domains/capabilities.es.js +4 -0
  206. package/dist/domains/capabilities.es.js.map +1 -0
  207. package/dist/domains/chat/attachments/attachment-kind.es.js +1 -1
  208. package/dist/domains/chat/components/badge-wrapper.cjs.js +1 -1
  209. package/dist/domains/chat/components/badge-wrapper.es.js +1 -1
  210. package/dist/domains/chat/components/network-choice-metadata-dialog.cjs.js +1 -1
  211. package/dist/domains/chat/components/network-choice-metadata-dialog.es.js +1 -1
  212. package/dist/domains/chat/components/section-label.cjs.js +1 -1
  213. package/dist/domains/chat/components/section-label.es.js +1 -1
  214. package/dist/domains/chat/messages/notification-signal-notice.cjs.js +1 -1
  215. package/dist/domains/chat/messages/notification-signal-notice.es.js +1 -1
  216. package/dist/domains/chat/messages/reasoning-streaming-line.cjs.js +1 -1
  217. package/dist/domains/chat/messages/reasoning-streaming-line.es.js +1 -1
  218. package/dist/domains/chat/messages/reasoning.cjs.js +4 -3
  219. package/dist/domains/chat/messages/reasoning.cjs.js.map +1 -1
  220. package/dist/domains/chat/messages/reasoning.es.js +4 -3
  221. package/dist/domains/chat/messages/reasoning.es.js.map +1 -1
  222. package/dist/domains/chat/messages/renderers/message-text.cjs.js +1 -1
  223. package/dist/domains/chat/messages/renderers/message-text.es.js +1 -1
  224. package/dist/domains/chat/messages/renderers/reasoning-part-renderer.cjs.js +2 -2
  225. package/dist/domains/chat/messages/renderers/reasoning-part-renderer.cjs.js.map +1 -1
  226. package/dist/domains/chat/messages/renderers/reasoning-part-renderer.es.js +2 -2
  227. package/dist/domains/chat/messages/renderers/reasoning-part-renderer.es.js.map +1 -1
  228. package/dist/domains/chat/messages/renderers/user-file-part-renderer.es.js +1 -1
  229. package/dist/domains/chat/messages/signal-badge.cjs.js +1 -1
  230. package/dist/domains/chat/messages/signal-badge.es.js +1 -1
  231. package/dist/domains/chat/messages/system-reminder-badge.cjs.js +1 -1
  232. package/dist/domains/chat/messages/system-reminder-badge.cjs.js.map +1 -1
  233. package/dist/domains/chat/messages/system-reminder-badge.es.js +1 -1
  234. package/dist/domains/chat/messages/system-reminder-badge.es.js.map +1 -1
  235. package/dist/domains/chat/messages/tripwire-notice.cjs.js +2 -2
  236. package/dist/domains/chat/messages/tripwire-notice.cjs.js.map +1 -1
  237. package/dist/domains/chat/messages/tripwire-notice.es.js +2 -2
  238. package/dist/domains/chat/messages/tripwire-notice.es.js.map +1 -1
  239. package/dist/domains/chat/tools/badges/ask-user-badge.cjs.js +1 -1
  240. package/dist/domains/chat/tools/badges/ask-user-badge.es.js +1 -1
  241. package/dist/domains/chat/tools/badges/code-mode-badge.cjs.js +3 -3
  242. package/dist/domains/chat/tools/badges/code-mode-badge.cjs.js.map +1 -1
  243. package/dist/domains/chat/tools/badges/code-mode-badge.es.js +3 -3
  244. package/dist/domains/chat/tools/badges/code-mode-badge.es.js.map +1 -1
  245. package/dist/domains/chat/tools/badges/observation-marker-badge.cjs.js +6 -4
  246. package/dist/domains/chat/tools/badges/observation-marker-badge.cjs.js.map +1 -1
  247. package/dist/domains/chat/tools/badges/observation-marker-badge.es.js +6 -4
  248. package/dist/domains/chat/tools/badges/observation-marker-badge.es.js.map +1 -1
  249. package/dist/domains/chat/tools/badges/observation-renderer.cjs.js +11 -8
  250. package/dist/domains/chat/tools/badges/observation-renderer.cjs.js.map +1 -1
  251. package/dist/domains/chat/tools/badges/observation-renderer.es.js +11 -8
  252. package/dist/domains/chat/tools/badges/observation-renderer.es.js.map +1 -1
  253. package/dist/domains/logs/components/log-data-panel.cjs.js +3 -6
  254. package/dist/domains/logs/components/log-data-panel.cjs.js.map +1 -1
  255. package/dist/domains/logs/components/log-data-panel.es.js +3 -6
  256. package/dist/domains/logs/components/log-data-panel.es.js.map +1 -1
  257. package/dist/domains/logs/components/logs-list-view.cjs.js +2 -2
  258. package/dist/domains/logs/components/logs-list-view.es.js +2 -2
  259. package/dist/domains/logs/components/no-logs-info.cjs.js +3 -4
  260. package/dist/domains/logs/components/no-logs-info.cjs.js.map +1 -1
  261. package/dist/domains/logs/components/no-logs-info.es.js +3 -4
  262. package/dist/domains/logs/components/no-logs-info.es.js.map +1 -1
  263. package/dist/domains/memory/components/flame-graph.cjs.js +7 -5
  264. package/dist/domains/memory/components/flame-graph.cjs.js.map +1 -1
  265. package/dist/domains/memory/components/flame-graph.es.js +8 -6
  266. package/dist/domains/memory/components/flame-graph.es.js.map +1 -1
  267. package/dist/domains/memory/components/memory-studio-panel.cjs.js +1 -1
  268. package/dist/domains/memory/components/memory-studio-panel.es.js +1 -1
  269. package/dist/domains/memory/components/observation-detail-view.cjs.js +4 -5
  270. package/dist/domains/memory/components/observation-detail-view.cjs.js.map +1 -1
  271. package/dist/domains/memory/components/observation-detail-view.es.js +4 -5
  272. package/dist/domains/memory/components/observation-detail-view.es.js.map +1 -1
  273. package/dist/domains/memory/components/thread-context-progress.cjs.js +1 -1
  274. package/dist/domains/memory/components/thread-context-progress.cjs.js.map +1 -1
  275. package/dist/domains/memory/components/thread-context-progress.es.js +1 -1
  276. package/dist/domains/memory/components/thread-context-progress.es.js.map +1 -1
  277. package/dist/domains/memory/lib/timeline.cjs.js +0 -9
  278. package/dist/domains/memory/lib/timeline.cjs.js.map +1 -1
  279. package/dist/domains/memory/lib/timeline.es.js +1 -9
  280. package/dist/domains/memory/lib/timeline.es.js.map +1 -1
  281. package/dist/domains/metrics/components/bar-list.cjs.js +4 -4
  282. package/dist/domains/metrics/components/bar-list.cjs.js.map +1 -1
  283. package/dist/domains/metrics/components/bar-list.es.js +4 -4
  284. package/dist/domains/metrics/components/bar-list.es.js.map +1 -1
  285. package/dist/domains/metrics/components/date-range-selector.cjs.js +1 -1
  286. package/dist/domains/metrics/components/date-range-selector.es.js +1 -1
  287. package/dist/domains/metrics/components/kpi-card-view.cjs.js +1 -1
  288. package/dist/domains/metrics/components/kpi-card-view.cjs.js.map +1 -1
  289. package/dist/domains/metrics/components/kpi-card-view.es.js +1 -1
  290. package/dist/domains/metrics/components/kpi-card-view.es.js.map +1 -1
  291. package/dist/domains/metrics/components/latency-card-view.cjs.js +33 -24
  292. package/dist/domains/metrics/components/latency-card-view.cjs.js.map +1 -1
  293. package/dist/domains/metrics/components/latency-card-view.es.js +34 -25
  294. package/dist/domains/metrics/components/latency-card-view.es.js.map +1 -1
  295. package/dist/domains/metrics/components/memory-card-view.cjs.js +9 -8
  296. package/dist/domains/metrics/components/memory-card-view.cjs.js.map +1 -1
  297. package/dist/domains/metrics/components/memory-card-view.es.js +8 -7
  298. package/dist/domains/metrics/components/memory-card-view.es.js.map +1 -1
  299. package/dist/domains/metrics/components/metrics-utils.cjs.js +0 -15
  300. package/dist/domains/metrics/components/metrics-utils.cjs.js.map +1 -1
  301. package/dist/domains/metrics/components/metrics-utils.es.js +1 -14
  302. package/dist/domains/metrics/components/metrics-utils.es.js.map +1 -1
  303. package/dist/domains/metrics/components/model-usage-cost-card-view.cjs.js +6 -5
  304. package/dist/domains/metrics/components/model-usage-cost-card-view.cjs.js.map +1 -1
  305. package/dist/domains/metrics/components/model-usage-cost-card-view.es.js +4 -3
  306. package/dist/domains/metrics/components/model-usage-cost-card-view.es.js.map +1 -1
  307. package/dist/domains/metrics/components/scores-card-view.cjs.js +5 -5
  308. package/dist/domains/metrics/components/scores-card-view.cjs.js.map +1 -1
  309. package/dist/domains/metrics/components/scores-card-view.es.js +5 -5
  310. package/dist/domains/metrics/components/scores-card-view.es.js.map +1 -1
  311. package/dist/domains/metrics/components/token-usage-by-agent-card-view.cjs.js +7 -6
  312. package/dist/domains/metrics/components/token-usage-by-agent-card-view.cjs.js.map +1 -1
  313. package/dist/domains/metrics/components/token-usage-by-agent-card-view.es.js +7 -6
  314. package/dist/domains/metrics/components/token-usage-by-agent-card-view.es.js.map +1 -1
  315. package/dist/domains/metrics/components/token-usage-timeline-card-view.cjs.js +13 -11
  316. package/dist/domains/metrics/components/token-usage-timeline-card-view.cjs.js.map +1 -1
  317. package/dist/domains/metrics/components/token-usage-timeline-card-view.es.js +13 -11
  318. package/dist/domains/metrics/components/token-usage-timeline-card-view.es.js.map +1 -1
  319. package/dist/domains/metrics/components/traces-volume-card-view.cjs.js +7 -6
  320. package/dist/domains/metrics/components/traces-volume-card-view.cjs.js.map +1 -1
  321. package/dist/domains/metrics/components/traces-volume-card-view.es.js +8 -7
  322. package/dist/domains/metrics/components/traces-volume-card-view.es.js.map +1 -1
  323. package/dist/domains/metrics/components.cjs.js +0 -2
  324. package/dist/domains/metrics/components.cjs.js.map +1 -1
  325. package/dist/domains/metrics/components.es.js +1 -1
  326. package/dist/domains/metrics/hooks/use-latency-metrics.cjs.js +11 -11
  327. package/dist/domains/metrics/hooks/use-latency-metrics.cjs.js.map +1 -1
  328. package/dist/domains/metrics/hooks/use-latency-metrics.es.js +12 -11
  329. package/dist/domains/metrics/hooks/use-latency-metrics.es.js.map +1 -1
  330. package/dist/domains/metrics/hooks/use-metrics.cjs.js +3 -3
  331. package/dist/domains/metrics/hooks/use-metrics.cjs.js.map +1 -1
  332. package/dist/domains/metrics/hooks/use-metrics.es.js +3 -3
  333. package/dist/domains/metrics/hooks/use-metrics.es.js.map +1 -1
  334. package/dist/domains/metrics/hooks/use-model-usage-cost-metrics.cjs.js +5 -5
  335. package/dist/domains/metrics/hooks/use-model-usage-cost-metrics.cjs.js.map +1 -1
  336. package/dist/domains/metrics/hooks/use-model-usage-cost-metrics.es.js +5 -5
  337. package/dist/domains/metrics/hooks/use-model-usage-cost-metrics.es.js.map +1 -1
  338. package/dist/domains/metrics/hooks/use-scores-metrics.cjs.js +6 -7
  339. package/dist/domains/metrics/hooks/use-scores-metrics.cjs.js.map +1 -1
  340. package/dist/domains/metrics/hooks/use-scores-metrics.es.js +6 -7
  341. package/dist/domains/metrics/hooks/use-scores-metrics.es.js.map +1 -1
  342. package/dist/domains/metrics/hooks/use-token-usage-timeseries.cjs.js +4 -12
  343. package/dist/domains/metrics/hooks/use-token-usage-timeseries.cjs.js.map +1 -1
  344. package/dist/domains/metrics/hooks/use-token-usage-timeseries.es.js +4 -12
  345. package/dist/domains/metrics/hooks/use-token-usage-timeseries.es.js.map +1 -1
  346. package/dist/domains/metrics/hooks.cjs.js +3 -0
  347. package/dist/domains/metrics/hooks.cjs.js.map +1 -1
  348. package/dist/domains/metrics/hooks.es.js +1 -0
  349. package/dist/domains/metrics/hooks.es.js.map +1 -1
  350. package/dist/domains/metrics/metrics-interval.cjs.js +20 -0
  351. package/dist/domains/metrics/metrics-interval.cjs.js.map +1 -0
  352. package/dist/domains/metrics/metrics-interval.d.ts +2 -0
  353. package/dist/domains/metrics/metrics-interval.es.js +15 -0
  354. package/dist/domains/metrics/metrics-interval.es.js.map +1 -0
  355. package/dist/domains/metrics.cjs.js +3 -2
  356. package/dist/domains/metrics.cjs.js.map +1 -1
  357. package/dist/domains/metrics.es.js +2 -1
  358. package/dist/domains/metrics.es.js.map +1 -1
  359. package/dist/domains/traces/components/no-traces-info.cjs.js +3 -4
  360. package/dist/domains/traces/components/no-traces-info.cjs.js.map +1 -1
  361. package/dist/domains/traces/components/no-traces-info.es.js +3 -4
  362. package/dist/domains/traces/components/no-traces-info.es.js.map +1 -1
  363. package/dist/domains/traces/components/span-data-panel-view.cjs.js +1 -1
  364. package/dist/domains/traces/components/span-data-panel-view.es.js +1 -1
  365. package/dist/domains/traces/components/span-payload/span-error-renderer.cjs.js +1 -1
  366. package/dist/domains/traces/components/span-payload/span-error-renderer.es.js +1 -1
  367. package/dist/domains/traces/components/span-payload/span-input-renderers.cjs.js +1 -1
  368. package/dist/domains/traces/components/span-payload/span-input-renderers.es.js +1 -1
  369. package/dist/domains/traces/components/span-payload/span-output-renderers.cjs.js +3 -2
  370. package/dist/domains/traces/components/span-payload/span-output-renderers.cjs.js.map +1 -1
  371. package/dist/domains/traces/components/span-payload/span-output-renderers.es.js +3 -2
  372. package/dist/domains/traces/components/span-payload/span-output-renderers.es.js.map +1 -1
  373. package/dist/domains/traces/components/span-payload/span-payload-json.cjs.js +1 -1
  374. package/dist/domains/traces/components/span-payload/span-payload-json.cjs.js.map +1 -1
  375. package/dist/domains/traces/components/span-payload/span-payload-json.es.js +1 -1
  376. package/dist/domains/traces/components/span-payload/span-payload-json.es.js.map +1 -1
  377. package/dist/domains/traces/components/span-payload/span-payload-messages.cjs.js +1 -1
  378. package/dist/domains/traces/components/span-payload/span-payload-messages.es.js +1 -1
  379. package/dist/domains/traces/components/span-payload/span-payload-primitives.cjs.js +1 -1
  380. package/dist/domains/traces/components/span-payload/span-payload-primitives.es.js +1 -1
  381. package/dist/domains/traces/components/span-payload/span-payload-processor.cjs.js +1 -1
  382. package/dist/domains/traces/components/span-payload/span-payload-processor.es.js +1 -1
  383. package/dist/domains/traces/components/span-payload/span-payload-tool.cjs.js +2 -2
  384. package/dist/domains/traces/components/span-payload/span-payload-tool.es.js +2 -2
  385. package/dist/domains/traces/components/span-payload/span-processor-attributes.cjs.js +3 -2
  386. package/dist/domains/traces/components/span-payload/span-processor-attributes.cjs.js.map +1 -1
  387. package/dist/domains/traces/components/span-payload/span-processor-attributes.es.js +3 -2
  388. package/dist/domains/traces/components/span-payload/span-processor-attributes.es.js.map +1 -1
  389. package/dist/domains/traces/components/span-summary-description.cjs.js +6 -4
  390. package/dist/domains/traces/components/span-summary-description.cjs.js.map +1 -1
  391. package/dist/domains/traces/components/span-summary-description.es.js +7 -5
  392. package/dist/domains/traces/components/span-summary-description.es.js.map +1 -1
  393. package/dist/domains/traces/components/span-timeline-row.cjs.js +3 -4
  394. package/dist/domains/traces/components/span-timeline-row.cjs.js.map +1 -1
  395. package/dist/domains/traces/components/span-timeline-row.es.js +3 -4
  396. package/dist/domains/traces/components/span-timeline-row.es.js.map +1 -1
  397. package/dist/domains/traces/components/span-timing-hover-card.cjs.js +6 -11
  398. package/dist/domains/traces/components/span-timing-hover-card.cjs.js.map +1 -1
  399. package/dist/domains/traces/components/span-timing-hover-card.es.js +6 -11
  400. package/dist/domains/traces/components/span-timing-hover-card.es.js.map +1 -1
  401. package/dist/domains/traces/components/span-type-legend.cjs.js +1 -1
  402. package/dist/domains/traces/components/span-type-legend.es.js +1 -1
  403. package/dist/domains/traces/components/thread-trace/thread-trace-details.cjs.js +1 -1
  404. package/dist/domains/traces/components/thread-trace/thread-trace-details.es.js +1 -1
  405. package/dist/domains/traces/components/thread-trace/thread-trace-messages.cjs.js +1 -1
  406. package/dist/domains/traces/components/thread-trace/thread-trace-messages.es.js +1 -1
  407. package/dist/domains/traces/components/timeline-timing-col.cjs.js +3 -4
  408. package/dist/domains/traces/components/timeline-timing-col.cjs.js.map +1 -1
  409. package/dist/domains/traces/components/timeline-timing-col.es.js +3 -4
  410. package/dist/domains/traces/components/timeline-timing-col.es.js.map +1 -1
  411. package/dist/domains/traces/components/trace-columns-menu.cjs.js +21 -18
  412. package/dist/domains/traces/components/trace-columns-menu.cjs.js.map +1 -1
  413. package/dist/domains/traces/components/trace-columns-menu.es.js +21 -18
  414. package/dist/domains/traces/components/trace-columns-menu.es.js.map +1 -1
  415. package/dist/domains/traces/components/trace-data-panel-view.cjs.js +2 -2
  416. package/dist/domains/traces/components/trace-data-panel-view.es.js +2 -2
  417. package/dist/domains/traces/components/trace-id-button.cjs.js +1 -1
  418. package/dist/domains/traces/components/trace-id-button.es.js +1 -1
  419. package/dist/domains/traces/components/trace-span-timeline.cjs.js +10 -4
  420. package/dist/domains/traces/components/trace-span-timeline.cjs.js.map +1 -1
  421. package/dist/domains/traces/components/trace-span-timeline.es.js +10 -4
  422. package/dist/domains/traces/components/trace-span-timeline.es.js.map +1 -1
  423. package/dist/domains/traces/components/trace-span-tree.cjs.js +3 -4
  424. package/dist/domains/traces/components/trace-span-tree.cjs.js.map +1 -1
  425. package/dist/domains/traces/components/trace-span-tree.es.js +3 -4
  426. package/dist/domains/traces/components/trace-span-tree.es.js.map +1 -1
  427. package/dist/domains/traces/components/trace-summary-description.cjs.js +13 -10
  428. package/dist/domains/traces/components/trace-summary-description.cjs.js.map +1 -1
  429. package/dist/domains/traces/components/trace-summary-description.es.js +13 -10
  430. package/dist/domains/traces/components/trace-summary-description.es.js.map +1 -1
  431. package/dist/domains/traces/components/trace-time-range-chip.cjs.js +1 -1
  432. package/dist/domains/traces/components/trace-time-range-chip.es.js +1 -1
  433. package/dist/domains/traces/components/traces-list-view.cjs.js +12 -10
  434. package/dist/domains/traces/components/traces-list-view.cjs.js.map +1 -1
  435. package/dist/domains/traces/components/traces-list-view.es.js +12 -10
  436. package/dist/domains/traces/components/traces-list-view.es.js.map +1 -1
  437. package/dist/domains/traces/components/traces-page-skeleton.cjs.js +1 -1
  438. package/dist/domains/traces/components/traces-page-skeleton.es.js +1 -1
  439. package/dist/domains/traces/hooks/use-branch.cjs.js +0 -1
  440. package/dist/domains/traces/hooks/use-branch.cjs.js.map +1 -1
  441. package/dist/domains/traces/hooks/use-branch.es.js +0 -1
  442. package/dist/domains/traces/hooks/use-branch.es.js.map +1 -1
  443. package/dist/domains/traces/hooks/use-trace-light-spans.cjs.js +0 -1
  444. package/dist/domains/traces/hooks/use-trace-light-spans.cjs.js.map +1 -1
  445. package/dist/domains/traces/hooks/use-trace-light-spans.es.js +0 -1
  446. package/dist/domains/traces/hooks/use-trace-light-spans.es.js.map +1 -1
  447. package/dist/domains/traces/hooks/use-trace-query.cjs.js +63 -3
  448. package/dist/domains/traces/hooks/use-trace-query.cjs.js.map +1 -1
  449. package/dist/domains/traces/hooks/use-trace-query.es.js +61 -4
  450. package/dist/domains/traces/hooks/use-trace-query.es.js.map +1 -1
  451. package/dist/domains/traces/hooks/use-trace-search.cjs.js +0 -1
  452. package/dist/domains/traces/hooks/use-trace-search.cjs.js.map +1 -1
  453. package/dist/domains/traces/hooks/use-trace-search.es.js +0 -1
  454. package/dist/domains/traces/hooks/use-trace-search.es.js.map +1 -1
  455. package/dist/domains/traces/hooks/use-trace-spans.cjs.js +0 -1
  456. package/dist/domains/traces/hooks/use-trace-spans.cjs.js.map +1 -1
  457. package/dist/domains/traces/hooks/use-trace-spans.es.js +0 -1
  458. package/dist/domains/traces/hooks/use-trace-spans.es.js.map +1 -1
  459. package/dist/domains/traces/hooks/use-traces-list-source.cjs.js +42 -0
  460. package/dist/domains/traces/hooks/use-traces-list-source.cjs.js.map +1 -0
  461. package/dist/domains/traces/hooks/use-traces-list-source.d.ts +2 -0
  462. package/dist/domains/traces/hooks/use-traces-list-source.es.js +38 -0
  463. package/dist/domains/traces/hooks/use-traces-list-source.es.js.map +1 -0
  464. package/dist/domains/traces/hooks.cjs.js +2 -0
  465. package/dist/domains/traces/hooks.cjs.js.map +1 -1
  466. package/dist/domains/traces/hooks.es.js +1 -0
  467. package/dist/domains/traces/hooks.es.js.map +1 -1
  468. package/dist/domains/traces/trace-filters.cjs.js +10 -1
  469. package/dist/domains/traces/trace-filters.cjs.js.map +1 -1
  470. package/dist/domains/traces/trace-filters.es.js +10 -1
  471. package/dist/domains/traces/trace-filters.es.js.map +1 -1
  472. package/dist/domains/traces/utils/span-utils.cjs.js +4 -36
  473. package/dist/domains/traces/utils/span-utils.cjs.js.map +1 -1
  474. package/dist/domains/traces/utils/span-utils.es.js +4 -32
  475. package/dist/domains/traces/utils/span-utils.es.js.map +1 -1
  476. package/dist/domains/traces/utils.cjs.js +1 -1
  477. package/dist/domains/traces/utils.es.js +1 -1
  478. package/dist/domains/traces.cjs.js +3 -1
  479. package/dist/domains/traces.cjs.js.map +1 -1
  480. package/dist/domains/traces.es.js +2 -1
  481. package/dist/domains/traces.es.js.map +1 -1
  482. package/dist/ee/signals/components/entity-index-compact-grid.cjs.js +1 -1
  483. package/dist/ee/signals/components/entity-index-compact-grid.es.js +1 -1
  484. package/dist/ee/signals/components/entity-index-list.cjs.js +2 -2
  485. package/dist/ee/signals/components/entity-index-list.es.js +2 -2
  486. package/dist/ee/signals/components/entity-index-model.cjs.js +3 -2
  487. package/dist/ee/signals/components/entity-index-model.cjs.js.map +1 -1
  488. package/dist/ee/signals/components/entity-index-model.es.js +3 -2
  489. package/dist/ee/signals/components/entity-index-model.es.js.map +1 -1
  490. package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js +2 -2
  491. package/dist/ee/signals/components/trace-intelligence-entity-index.es.js +2 -2
  492. package/dist/ee/signals/settings/signal-definition-form-dialog.cjs.js +2 -2
  493. package/dist/ee/signals/settings/signal-definition-form-dialog.es.js +2 -2
  494. package/dist/ee/signals/settings/trace-signal-settings.cjs.js +1 -1
  495. package/dist/ee/signals/settings/trace-signal-settings.es.js +1 -1
  496. package/dist/ee/signals/signal-formatting.cjs.js +6 -34
  497. package/dist/ee/signals/signal-formatting.cjs.js.map +1 -1
  498. package/dist/ee/signals/signal-formatting.es.js +6 -34
  499. package/dist/ee/signals/signal-formatting.es.js.map +1 -1
  500. package/dist/ee/signals/snapshot-timeline-data.cjs.js +1 -1
  501. package/dist/ee/signals/snapshot-timeline-data.cjs.js.map +1 -1
  502. package/dist/ee/signals/snapshot-timeline-data.es.js +1 -1
  503. package/dist/ee/signals/snapshot-timeline-data.es.js.map +1 -1
  504. package/dist/ee/signals/view-mode-tab.cjs.js +1 -1
  505. package/dist/ee/signals/view-mode-tab.es.js +1 -1
  506. package/dist/ee/topics/components/topic-trace-summary-list.cjs.js +1 -1
  507. package/dist/ee/topics/components/topic-trace-summary-list.es.js +1 -1
  508. package/dist/field-block-error-msg-Y0fi0HUC.js +22 -0
  509. package/dist/field-block-error-msg-Y0fi0HUC.js.map +1 -0
  510. package/dist/field-block-error-msg-oudJz2Hx.cjs +24 -0
  511. package/dist/field-block-error-msg-oudJz2Hx.cjs.map +1 -0
  512. package/dist/{field-error-id-DyWx33Fu.js → field-error-id-DD7OARLU.js} +2 -13
  513. package/dist/field-error-id-DD7OARLU.js.map +1 -0
  514. package/dist/{field-error-id-6EfqmQ4C.cjs → field-error-id-V_WejsRL.cjs} +4 -15
  515. package/dist/field-error-id-V_WejsRL.cjs.map +1 -0
  516. package/dist/hooks/use-elapsed-time.cjs.js +25 -0
  517. package/dist/hooks/use-elapsed-time.cjs.js.map +1 -0
  518. package/dist/hooks/use-elapsed-time.d.ts +2 -0
  519. package/dist/hooks/use-elapsed-time.es.js +21 -0
  520. package/dist/hooks/use-elapsed-time.es.js.map +1 -0
  521. package/dist/inline-code-BW6W121s.js +13 -0
  522. package/dist/inline-code-BW6W121s.js.map +1 -0
  523. package/dist/inline-code-CSwG-x8D.cjs +15 -0
  524. package/dist/inline-code-CSwG-x8D.cjs.map +1 -0
  525. package/dist/layout/tabbed-container.cjs.js +3 -3
  526. package/dist/layout/tabbed-container.es.js +3 -3
  527. package/dist/{list-search-S1mco9Bl.cjs → list-search-CsYQX8qR.cjs} +2 -2
  528. package/dist/{list-search-S1mco9Bl.cjs.map → list-search-CsYQX8qR.cjs.map} +1 -1
  529. package/dist/{list-search-FJ1O5F3S.js → list-search-D1FD8FCL.js} +2 -2
  530. package/dist/{list-search-FJ1O5F3S.js.map → list-search-D1FD8FCL.js.map} +1 -1
  531. package/dist/{logs-data-list-5BAeLU57.js → logs-data-list-BKE5vYZR.js} +4 -4
  532. package/dist/{logs-data-list-5BAeLU57.js.map → logs-data-list-BKE5vYZR.js.map} +1 -1
  533. package/dist/{logs-data-list-YL9yLKF3.cjs → logs-data-list-lJK0yGYj.cjs} +4 -4
  534. package/dist/{logs-data-list-YL9yLKF3.cjs.map → logs-data-list-lJK0yGYj.cjs.map} +1 -1
  535. package/dist/{metrics-card-Bzm6m1dy.js → metrics-card-C2RTi5Ew.js} +7 -7
  536. package/dist/metrics-card-C2RTi5Ew.js.map +1 -0
  537. package/dist/{metrics-card-DCCHIG-z.cjs → metrics-card-DzcVJTAN.cjs} +7 -7
  538. package/dist/metrics-card-DzcVJTAN.cjs.map +1 -0
  539. package/dist/{metrics-kpi-card-BrnFhFQm.js → metrics-kpi-card-BVCuXeDa.js} +21 -10
  540. package/dist/metrics-kpi-card-BVCuXeDa.js.map +1 -0
  541. package/dist/{metrics-kpi-card-Bhb4R4z0.cjs → metrics-kpi-card-DoIeHfv6.cjs} +21 -10
  542. package/dist/metrics-kpi-card-DoIeHfv6.cjs.map +1 -0
  543. package/dist/{metrics-line-chart-0FR3SYSt.cjs → metrics-line-chart-BNNRRxM8.cjs} +61 -25
  544. package/dist/metrics-line-chart-BNNRRxM8.cjs.map +1 -0
  545. package/dist/{metrics-line-chart-knlgw8bV.js → metrics-line-chart-CT_pqJtC.js} +62 -27
  546. package/dist/metrics-line-chart-CT_pqJtC.js.map +1 -0
  547. package/dist/new/layout/page-header.cjs.js +1 -1
  548. package/dist/new/layout/page-header.es.js +1 -1
  549. package/dist/new/settings.cjs.js +2 -2
  550. package/dist/new/settings.es.js +2 -2
  551. package/dist/{page-header-CyXAezlZ.js → page-header-BGyZw13s.js} +2 -2
  552. package/dist/page-header-BGyZw13s.js.map +1 -0
  553. package/dist/{page-header-Dk3s3XtC.cjs → page-header-CqvBk1wE.cjs} +2 -2
  554. package/dist/page-header-CqvBk1wE.cjs.map +1 -0
  555. package/dist/{schemes-C9EhSOkB.js → schemes-CGK3gQJ6.js} +2 -2
  556. package/dist/{schemes-C9EhSOkB.js.map → schemes-CGK3gQJ6.js.map} +1 -1
  557. package/dist/{search-field-block-fU3tStmB.js → search-field-block-Dj2KJyjQ.js} +2 -2
  558. package/dist/{search-field-block-fU3tStmB.js.map → search-field-block-Dj2KJyjQ.js.map} +1 -1
  559. package/dist/{search-field-block-7-ufp4uG.cjs → search-field-block-K_e_S9WY.cjs} +2 -2
  560. package/dist/{search-field-block-7-ufp4uG.cjs.map → search-field-block-K_e_S9WY.cjs.map} +1 -1
  561. package/dist/{section-B9OLuEq3.js → section-Bi0g7cn6.js} +2 -2
  562. package/dist/{section-B9OLuEq3.js.map → section-Bi0g7cn6.js.map} +1 -1
  563. package/dist/{section-CTihfzmc.cjs → section-p9vCSmPq.cjs} +2 -2
  564. package/dist/{section-CTihfzmc.cjs.map → section-p9vCSmPq.cjs.map} +1 -1
  565. package/dist/{select-field-block-BfiHq9t6.js → select-field-block-BF8v698d.js} +2 -2
  566. package/dist/{select-field-block-BfiHq9t6.js.map → select-field-block-BF8v698d.js.map} +1 -1
  567. package/dist/{select-field-block-DJo2cX9Y.cjs → select-field-block-CaGjpIKM.cjs} +2 -2
  568. package/dist/{select-field-block-DJo2cX9Y.cjs.map → select-field-block-CaGjpIKM.cjs.map} +1 -1
  569. package/dist/{settings-row-BoAuUUuH.cjs → settings-row-Cr8gaO5a.cjs} +14 -4
  570. package/dist/settings-row-Cr8gaO5a.cjs.map +1 -0
  571. package/dist/{settings-row-B2IekRyH.js → settings-row-Cr9DsBSX.js} +14 -4
  572. package/dist/settings-row-Cr9DsBSX.js.map +1 -0
  573. package/dist/{span-payload-primitives-Buq9V8nK.js → span-payload-primitives-Dmzm3mb2.js} +2 -2
  574. package/dist/{span-payload-primitives-Buq9V8nK.js.map → span-payload-primitives-Dmzm3mb2.js.map} +1 -1
  575. package/dist/{span-payload-primitives-CjlNH9C-.cjs → span-payload-primitives-Dq8WqqNm.cjs} +2 -2
  576. package/dist/{span-payload-primitives-CjlNH9C-.cjs.map → span-payload-primitives-Dq8WqqNm.cjs.map} +1 -1
  577. package/dist/src/domains/capabilities/hooks/index.d.ts +3 -0
  578. package/dist/src/domains/capabilities/hooks/use-feedback-available.d.ts +8 -0
  579. package/dist/src/domains/capabilities/hooks/use-observability-capabilities.d.ts +22 -0
  580. package/dist/src/domains/capabilities/hooks/use-trace-query-available.d.ts +8 -0
  581. package/dist/src/domains/capabilities/index.d.ts +1 -0
  582. package/dist/src/domains/chat/messages/reasoning.d.ts +3 -1
  583. package/dist/src/domains/chat/messages/renderers/reasoning-part-renderer.d.ts +3 -1
  584. package/dist/src/domains/chat/stories/reasoning.stories.d.ts +1 -1
  585. package/dist/src/domains/memory/lib/timeline.d.ts +0 -1
  586. package/dist/src/domains/metrics/components/index.d.ts +1 -1
  587. package/dist/src/domains/metrics/components/kpi-card-view.d.ts +2 -1
  588. package/dist/src/domains/metrics/components/latency-card-view.d.ts +4 -1
  589. package/dist/src/domains/metrics/components/metrics-utils.d.ts +0 -2
  590. package/dist/src/domains/metrics/hooks/index.d.ts +1 -0
  591. package/dist/src/domains/metrics/hooks/use-latency-metrics.d.ts +2 -2
  592. package/dist/src/domains/metrics/hooks/use-token-usage-timeseries.d.ts +2 -1
  593. package/dist/src/domains/metrics/metrics-interval.d.ts +7 -0
  594. package/dist/src/domains/traces/components/trace-columns-menu.d.ts +3 -1
  595. package/dist/src/domains/traces/components/trace-data-panel-view.stories.d.ts +1 -1
  596. package/dist/src/domains/traces/hooks/index.d.ts +1 -0
  597. package/dist/src/domains/traces/hooks/use-trace-query.d.ts +19 -2
  598. package/dist/src/domains/traces/hooks/use-traces-list-source.d.ts +46 -0
  599. package/dist/src/domains/traces/trace-filters.d.ts +6 -1
  600. package/dist/src/domains/traces/utils/index.d.ts +1 -1
  601. package/dist/src/domains/traces/utils/span-utils.d.ts +1 -6
  602. package/dist/src/ds/components/Card/Card.d.ts +2 -2
  603. package/dist/src/ds/components/CompactNumber/compact-number.d.ts +6 -0
  604. package/dist/src/ds/components/CompactNumber/compact-number.stories.d.ts +7 -0
  605. package/dist/src/ds/components/CompactNumber/index.d.ts +1 -0
  606. package/dist/src/ds/components/DataList/data-list-cells.d.ts +4 -3
  607. package/dist/src/ds/components/InlineCode/index.d.ts +1 -0
  608. package/dist/src/ds/components/InlineCode/inline-code.d.ts +3 -0
  609. package/dist/src/ds/components/InlineCode/inline-code.stories.d.ts +13 -0
  610. package/dist/src/ds/components/ItemList/item-list-date-cell.d.ts +3 -2
  611. package/dist/src/ds/components/MetricsCardGroup/metrics-card-group.d.ts +3 -8
  612. package/dist/src/ds/components/MetricsLineChart/index.d.ts +1 -0
  613. package/dist/src/ds/components/MetricsLineChart/metrics-line-chart-legend.d.ts +6 -0
  614. package/dist/src/ds/components/MetricsLineChart/metrics-line-chart.d.ts +6 -4
  615. package/dist/src/ds/components/MetricsLineChart/metrics-line-chart.stories.d.ts +1 -0
  616. package/dist/src/ds/components/RelativeTimestamp/index.d.ts +1 -0
  617. package/dist/src/ds/components/RelativeTimestamp/relative-timestamp.d.ts +6 -0
  618. package/dist/src/ds/components/RelativeTimestamp/relative-timestamp.stories.d.ts +7 -0
  619. package/dist/src/ds/components/StatusIndicators/status-dot-styles.d.ts +31 -2
  620. package/dist/src/ds/components/StatusIndicators/status-dot.stories.d.ts +3 -4
  621. package/dist/src/ds/components/StatusIndicators/status.d.ts +2 -3
  622. package/dist/src/ds/components/StatusIndicators/status.stories.d.ts +2 -1
  623. package/dist/src/ds/components/Txt/Txt.d.ts +5 -1
  624. package/dist/src/ds/components/ai/task-list/task-graph-node.d.ts +8 -0
  625. package/dist/src/ds/components/ai/task-list/task-graph.d.ts +8 -0
  626. package/dist/src/ds/components/ai/task-list/task-list.d.ts +4 -8
  627. package/dist/src/ds/components/ai/task-list/task-list.stories.d.ts +1 -1
  628. package/dist/src/ds/components/ai/task-list/use-focused-row-scroll.d.ts +12 -0
  629. package/dist/src/ds/new/layout/page-header/page-header.stories.d.ts +1 -0
  630. package/dist/src/ds/new/settings/settings-row.d.ts +3 -1
  631. package/dist/src/ds/new/settings/settings.stories.d.ts +1 -0
  632. package/dist/src/hooks/stories/state/use-elapsed-time.stories.d.ts +17 -0
  633. package/dist/src/hooks/use-elapsed-time.d.ts +2 -0
  634. package/dist/src/lib/cost.d.ts +6 -0
  635. package/dist/src/utils/cost.d.ts +1 -0
  636. package/dist/src/utils/date-format.d.ts +28 -0
  637. package/dist/src/utils/duration.d.ts +7 -1
  638. package/dist/src/utils/relative-time.d.ts +7 -0
  639. package/dist/style.css +329 -18
  640. package/dist/{text-field-block-DGIM1i3Z.js → text-field-block-BYPiO9h4.js} +2 -2
  641. package/dist/{text-field-block-DGIM1i3Z.js.map → text-field-block-BYPiO9h4.js.map} +1 -1
  642. package/dist/{text-field-block-DePCgDOh.cjs → text-field-block-CRh8sRXP.cjs} +2 -2
  643. package/dist/{text-field-block-DePCgDOh.cjs.map → text-field-block-CRh8sRXP.cjs.map} +1 -1
  644. package/dist/{tool-call-Bs-9Cah5.js → tool-call-CIeNEYpK.js} +2 -2
  645. package/dist/{tool-call-Bs-9Cah5.js.map → tool-call-CIeNEYpK.js.map} +1 -1
  646. package/dist/{tool-call-C0JeHe8Z.cjs → tool-call-CnEm3eE0.cjs} +2 -2
  647. package/dist/{tool-call-C0JeHe8Z.cjs.map → tool-call-CnEm3eE0.cjs.map} +1 -1
  648. package/dist/{traces-data-list-Dam8-XW-.cjs → traces-data-list-C5KZesk6.cjs} +5 -5
  649. package/dist/{traces-data-list-Dam8-XW-.cjs.map → traces-data-list-C5KZesk6.cjs.map} +1 -1
  650. package/dist/{traces-data-list-Dvi0s56v.js → traces-data-list-CdWW9J6z.js} +5 -5
  651. package/dist/{traces-data-list-Dvi0s56v.js.map → traces-data-list-CdWW9J6z.js.map} +1 -1
  652. package/dist/utils/cost.cjs.js +40 -0
  653. package/dist/utils/cost.cjs.js.map +1 -0
  654. package/dist/utils/cost.d.ts +2 -0
  655. package/dist/utils/cost.es.js +34 -0
  656. package/dist/utils/cost.es.js.map +1 -0
  657. package/dist/utils/date-format.cjs.js +99 -0
  658. package/dist/utils/date-format.cjs.js.map +1 -0
  659. package/dist/utils/date-format.d.ts +2 -0
  660. package/dist/utils/date-format.es.js +91 -0
  661. package/dist/utils/date-format.es.js.map +1 -0
  662. package/dist/utils/duration.cjs.js +19 -2
  663. package/dist/utils/duration.cjs.js.map +1 -1
  664. package/dist/utils/duration.es.js +18 -3
  665. package/dist/utils/duration.es.js.map +1 -1
  666. package/dist/utils/file.es.js +2 -2
  667. package/dist/utils/relative-time.cjs.js +12 -0
  668. package/dist/utils/relative-time.cjs.js.map +1 -0
  669. package/dist/utils/relative-time.d.ts +2 -0
  670. package/dist/utils/relative-time.es.js +8 -0
  671. package/dist/utils/relative-time.es.js.map +1 -0
  672. package/package.json +7 -7
  673. package/dist/Badge-BEeYtjmv.cjs.map +0 -1
  674. package/dist/Badge-TD55_qZJ.js.map +0 -1
  675. package/dist/Txt-B4-2nLaI.cjs.map +0 -1
  676. package/dist/Txt-DTh3Pa_a.js.map +0 -1
  677. package/dist/data-list-top-DpbOA3uw.js.map +0 -1
  678. package/dist/data-list-top-WGUY167p.cjs.map +0 -1
  679. package/dist/field-error-id-6EfqmQ4C.cjs.map +0 -1
  680. package/dist/field-error-id-DyWx33Fu.js.map +0 -1
  681. package/dist/metrics-card-Bzm6m1dy.js.map +0 -1
  682. package/dist/metrics-card-DCCHIG-z.cjs.map +0 -1
  683. package/dist/metrics-kpi-card-Bhb4R4z0.cjs.map +0 -1
  684. package/dist/metrics-kpi-card-BrnFhFQm.js.map +0 -1
  685. package/dist/metrics-line-chart-0FR3SYSt.cjs.map +0 -1
  686. package/dist/metrics-line-chart-knlgw8bV.js.map +0 -1
  687. package/dist/page-header-CyXAezlZ.js.map +0 -1
  688. package/dist/page-header-Dk3s3XtC.cjs.map +0 -1
  689. package/dist/settings-row-B2IekRyH.js.map +0 -1
  690. package/dist/settings-row-BoAuUUuH.cjs.map +0 -1
  691. package/dist/src/ds/components/Table/utils.d.ts +0 -4
@@ -2,23 +2,12 @@
2
2
 
3
3
  const jsxRuntime = require('react/jsx-runtime');
4
4
  const utils_cn = require('./cn-DG0X1KEP.cjs');
5
+ const fieldBlockErrorMsg = require('./field-block-error-msg-oudJz2Hx.cjs');
5
6
 
6
7
  function FieldBlockColumn({ children, className }) {
7
8
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: utils_cn.cn("grid gap-2 text-foreground", className), children });
8
9
  }
9
10
 
10
- function FieldBlockErrorMsg({ children, name, className }) {
11
- return /* @__PURE__ */ jsxRuntime.jsx(
12
- "p",
13
- {
14
- role: "alert",
15
- id: name !== void 0 ? `error-${name}` : void 0,
16
- className: utils_cn.cn("text-caption text-destructive", className),
17
- children
18
- }
19
- );
20
- }
21
-
22
11
  function FieldBlockHelpText({ children }) {
23
12
  return /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-caption text-muted-foreground", children });
24
13
  }
@@ -79,7 +68,7 @@ function FieldBlockLayout({
79
68
  }
80
69
 
81
70
  function FieldBlockMessage({ name, helpText, errorMsg }) {
82
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-[1lh] min-w-0 overflow-hidden text-caption [&>p]:truncate", children: errorMsg ? /* @__PURE__ */ jsxRuntime.jsx(FieldBlockErrorMsg, { name, className: "truncate", children: errorMsg }) : helpText ? /* @__PURE__ */ jsxRuntime.jsx(FieldBlockHelpText, { children: helpText }) : null });
71
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-[1lh] min-w-0 overflow-hidden text-caption [&>p]:truncate", children: errorMsg ? /* @__PURE__ */ jsxRuntime.jsx(fieldBlockErrorMsg.FieldBlockErrorMsg, { name, className: "truncate", children: errorMsg }) : helpText ? /* @__PURE__ */ jsxRuntime.jsx(FieldBlockHelpText, { children: helpText }) : null });
83
72
  }
84
73
 
85
74
  const FieldBlock = Object.assign(
@@ -89,7 +78,7 @@ const FieldBlock = Object.assign(
89
78
  Column: FieldBlockColumn,
90
79
  Label: FieldBlockLabel,
91
80
  HelpText: FieldBlockHelpText,
92
- ErrorMsg: FieldBlockErrorMsg,
81
+ ErrorMsg: fieldBlockErrorMsg.FieldBlockErrorMsg,
93
82
  Message: FieldBlockMessage
94
83
  }
95
84
  );
@@ -98,4 +87,4 @@ const fieldErrorId = (name) => `error-${name}`;
98
87
 
99
88
  exports.FieldBlock = FieldBlock;
100
89
  exports.fieldErrorId = fieldErrorId;
101
- //# sourceMappingURL=field-error-id-6EfqmQ4C.cjs.map
90
+ //# sourceMappingURL=field-error-id-V_WejsRL.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field-error-id-V_WejsRL.cjs","sources":["../src/ds/components/FormFieldBlocks/block/field-block-column.tsx","../src/ds/components/FormFieldBlocks/block/field-block-help-text.tsx","../src/ds/components/FormFieldBlocks/block/field-block-label.tsx","../src/ds/components/FormFieldBlocks/block/field-block-layout.tsx","../src/ds/components/FormFieldBlocks/block/field-block-message.tsx","../src/ds/components/FormFieldBlocks/block/field-block.tsx","../src/ds/components/FormFieldBlocks/block/field-error-id.ts"],"sourcesContent":["import { cn } from '@/lib/utils';\n\nexport type FieldBlockColumnProps = {\n children: React.ReactNode;\n className?: string;\n};\n\nexport function FieldBlockColumn({ children, className }: FieldBlockColumnProps) {\n return <div className={cn('grid gap-2 text-foreground', className)}>{children}</div>;\n}\n","export type FieldBlockHelpTextProps = {\n children?: React.ReactNode;\n};\n\nexport function FieldBlockHelpText({ children }: FieldBlockHelpTextProps) {\n return <p className=\"text-caption text-muted-foreground\">{children}</p>;\n}\n","import { cn } from '@/lib/utils';\n\nexport type FieldBlockLabelProps = {\n children: React.ReactNode;\n name: string;\n htmlFor?: string;\n required?: boolean;\n disabled?: boolean;\n size?: 'default' | 'bigger';\n className?: string;\n};\n\nexport function FieldBlockLabel({\n children,\n name,\n htmlFor = `input-${name}`,\n required,\n disabled = false,\n size = 'default',\n className,\n}: FieldBlockLabelProps) {\n return (\n <label\n htmlFor={htmlFor}\n className={cn(\n 'inline-flex items-center text-label',\n {\n 'text-body': size === 'bigger',\n 'text-foreground': !disabled,\n 'text-muted-foreground': disabled,\n },\n className,\n )}\n >\n {children}\n {required ? (\n <>\n <span aria-hidden className={cn('ml-0.5', disabled ? 'text-muted-foreground' : 'text-destructive')}>\n *\n </span>\n <span className=\"sr-only\"> (required)</span>\n </>\n ) : null}\n </label>\n );\n}\n","import { cn } from '@/lib/utils';\n\nexport type FieldBlockLayoutProps = {\n children: React.ReactNode;\n className?: string;\n layout?: 'vertical' | 'horizontal';\n // Optional prop to specify label column width in horizontal layout\n labelColumnWidth?: string; // e.g., '150px' or '30%'\n};\n\nexport function FieldBlockLayout({\n children,\n className,\n layout = 'vertical',\n labelColumnWidth,\n}: FieldBlockLayoutProps) {\n return (\n <div\n className={cn(\n 'relative grid gap-2 text-foreground',\n {\n 'horizontal-field-block grid-cols-[auto_1fr] items-baseline': layout === 'horizontal',\n },\n className,\n )}\n style={\n layout === 'horizontal' && labelColumnWidth ? { gridTemplateColumns: `${labelColumnWidth} 1fr` } : undefined\n }\n >\n {children}\n </div>\n );\n}\n","import { FieldBlockErrorMsg } from './field-block-error-msg';\nimport { FieldBlockHelpText } from './field-block-help-text';\n\nexport type FieldBlockMessageProps = {\n name: string;\n helpText?: React.ReactNode;\n errorMsg?: React.ReactNode;\n};\n\nexport function FieldBlockMessage({ name, helpText, errorMsg }: FieldBlockMessageProps) {\n return (\n <div className=\"h-[1lh] min-w-0 overflow-hidden text-caption [&>p]:truncate\">\n {errorMsg ? (\n <FieldBlockErrorMsg name={name} className=\"truncate\">\n {errorMsg}\n </FieldBlockErrorMsg>\n ) : helpText ? (\n <FieldBlockHelpText>{helpText}</FieldBlockHelpText>\n ) : null}\n </div>\n );\n}\n","import { FieldBlockColumn } from './field-block-column';\nimport { FieldBlockErrorMsg } from './field-block-error-msg';\nimport { FieldBlockHelpText } from './field-block-help-text';\nimport { FieldBlockLabel } from './field-block-label';\nimport { FieldBlockLayout } from './field-block-layout';\nimport { FieldBlockMessage } from './field-block-message';\n\nexport const FieldBlock = Object.assign(\n {},\n {\n Layout: FieldBlockLayout,\n Column: FieldBlockColumn,\n Label: FieldBlockLabel,\n HelpText: FieldBlockHelpText,\n ErrorMsg: FieldBlockErrorMsg,\n Message: FieldBlockMessage,\n },\n);\n","/**\n * Id of the error message for a field, so a control can point at its message with\n * `aria-describedby`. Lives apart from the component file: exporting it alongside a\n * component breaks fast refresh.\n */\nexport const fieldErrorId = (name: string) => `error-${name}`;\n"],"names":["cn","jsx","jsxs","Fragment","FieldBlockErrorMsg"],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
+
5
+ const React = require('react');
6
+
7
+ function useElapsedTime(isActive, startTime) {
8
+ const [state, setState] = React.useState({ isActive, elapsed: 0 });
9
+ if (state.isActive !== isActive) {
10
+ setState({ isActive, elapsed: 0 });
11
+ }
12
+ React.useEffect(() => {
13
+ if (!isActive) return;
14
+ const start = startTime ?? Date.now();
15
+ setState({ isActive, elapsed: Date.now() - start });
16
+ const interval = setInterval(() => {
17
+ setState((current) => ({ ...current, elapsed: Date.now() - start }));
18
+ }, 100);
19
+ return () => clearInterval(interval);
20
+ }, [isActive, startTime]);
21
+ return state.isActive === isActive ? state.elapsed : 0;
22
+ }
23
+
24
+ exports.useElapsedTime = useElapsedTime;
25
+ //# sourceMappingURL=use-elapsed-time.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-elapsed-time.cjs.js","sources":["../../src/hooks/use-elapsed-time.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\n/** Milliseconds elapsed since `isActive` became true (or since `startTime`), refreshed every 100ms. */\nexport function useElapsedTime(isActive: boolean, startTime?: number) {\n const [state, setState] = useState({ isActive, elapsed: 0 });\n\n if (state.isActive !== isActive) {\n setState({ isActive, elapsed: 0 });\n }\n\n useEffect(() => {\n if (!isActive) return;\n const start = startTime ?? Date.now();\n setState({ isActive, elapsed: Date.now() - start });\n const interval = setInterval(() => {\n setState(current => ({ ...current, elapsed: Date.now() - start }));\n }, 100);\n return () => clearInterval(interval);\n }, [isActive, startTime]);\n\n return state.isActive === isActive ? state.elapsed : 0;\n}\n"],"names":["useState","useEffect"],"mappings":";;;;;;AAGO,SAAS,cAAA,CAAe,UAAmB,SAAA,EAAoB;AACpE,EAAA,MAAM,CAAC,OAAO,QAAQ,CAAA,GAAIA,eAAS,EAAE,QAAA,EAAU,OAAA,EAAS,CAAA,EAAG,CAAA;AAE3D,EAAA,IAAI,KAAA,CAAM,aAAa,QAAA,EAAU;AAC/B,IAAA,QAAA,CAAS,EAAE,QAAA,EAAU,OAAA,EAAS,CAAA,EAAG,CAAA;AAAA,EACnC;AAEA,EAAAC,eAAA,CAAU,MAAM;AACd,IAAA,IAAI,CAAC,QAAA,EAAU;AACf,IAAA,MAAM,KAAA,GAAQ,SAAA,IAAa,IAAA,CAAK,GAAA,EAAI;AACpC,IAAA,QAAA,CAAS,EAAE,QAAA,EAAU,OAAA,EAAS,KAAK,GAAA,EAAI,GAAI,OAAO,CAAA;AAClD,IAAA,MAAM,QAAA,GAAW,YAAY,MAAM;AACjC,MAAA,QAAA,CAAS,CAAA,OAAA,MAAY,EAAE,GAAG,OAAA,EAAS,SAAS,IAAA,CAAK,GAAA,EAAI,GAAI,KAAA,EAAM,CAAE,CAAA;AAAA,IACnE,GAAG,GAAG,CAAA;AACN,IAAA,OAAO,MAAM,cAAc,QAAQ,CAAA;AAAA,EACrC,CAAA,EAAG,CAAC,QAAA,EAAU,SAAS,CAAC,CAAA;AAExB,EAAA,OAAO,KAAA,CAAM,QAAA,KAAa,QAAA,GAAW,KAAA,CAAM,OAAA,GAAU,CAAA;AACvD;;;;"}
@@ -0,0 +1,2 @@
1
+ export * from '../src/hooks/use-elapsed-time'
2
+ export {}
@@ -0,0 +1,21 @@
1
+ import { useState, useEffect } from 'react';
2
+
3
+ function useElapsedTime(isActive, startTime) {
4
+ const [state, setState] = useState({ isActive, elapsed: 0 });
5
+ if (state.isActive !== isActive) {
6
+ setState({ isActive, elapsed: 0 });
7
+ }
8
+ useEffect(() => {
9
+ if (!isActive) return;
10
+ const start = startTime ?? Date.now();
11
+ setState({ isActive, elapsed: Date.now() - start });
12
+ const interval = setInterval(() => {
13
+ setState((current) => ({ ...current, elapsed: Date.now() - start }));
14
+ }, 100);
15
+ return () => clearInterval(interval);
16
+ }, [isActive, startTime]);
17
+ return state.isActive === isActive ? state.elapsed : 0;
18
+ }
19
+
20
+ export { useElapsedTime };
21
+ //# sourceMappingURL=use-elapsed-time.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-elapsed-time.es.js","sources":["../../src/hooks/use-elapsed-time.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\n/** Milliseconds elapsed since `isActive` became true (or since `startTime`), refreshed every 100ms. */\nexport function useElapsedTime(isActive: boolean, startTime?: number) {\n const [state, setState] = useState({ isActive, elapsed: 0 });\n\n if (state.isActive !== isActive) {\n setState({ isActive, elapsed: 0 });\n }\n\n useEffect(() => {\n if (!isActive) return;\n const start = startTime ?? Date.now();\n setState({ isActive, elapsed: Date.now() - start });\n const interval = setInterval(() => {\n setState(current => ({ ...current, elapsed: Date.now() - start }));\n }, 100);\n return () => clearInterval(interval);\n }, [isActive, startTime]);\n\n return state.isActive === isActive ? state.elapsed : 0;\n}\n"],"names":[],"mappings":";;AAGO,SAAS,cAAA,CAAe,UAAmB,SAAA,EAAoB;AACpE,EAAA,MAAM,CAAC,OAAO,QAAQ,CAAA,GAAI,SAAS,EAAE,QAAA,EAAU,OAAA,EAAS,CAAA,EAAG,CAAA;AAE3D,EAAA,IAAI,KAAA,CAAM,aAAa,QAAA,EAAU;AAC/B,IAAA,QAAA,CAAS,EAAE,QAAA,EAAU,OAAA,EAAS,CAAA,EAAG,CAAA;AAAA,EACnC;AAEA,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,CAAC,QAAA,EAAU;AACf,IAAA,MAAM,KAAA,GAAQ,SAAA,IAAa,IAAA,CAAK,GAAA,EAAI;AACpC,IAAA,QAAA,CAAS,EAAE,QAAA,EAAU,OAAA,EAAS,KAAK,GAAA,EAAI,GAAI,OAAO,CAAA;AAClD,IAAA,MAAM,QAAA,GAAW,YAAY,MAAM;AACjC,MAAA,QAAA,CAAS,CAAA,OAAA,MAAY,EAAE,GAAG,OAAA,EAAS,SAAS,IAAA,CAAK,GAAA,EAAI,GAAI,KAAA,EAAM,CAAE,CAAA;AAAA,IACnE,GAAG,GAAG,CAAA;AACN,IAAA,OAAO,MAAM,cAAc,QAAQ,CAAA;AAAA,EACrC,CAAA,EAAG,CAAC,QAAA,EAAU,SAAS,CAAC,CAAA;AAExB,EAAA,OAAO,KAAA,CAAM,QAAA,KAAa,QAAA,GAAW,KAAA,CAAM,OAAA,GAAU,CAAA;AACvD;;;;"}
@@ -0,0 +1,13 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { c as cn } from './cn-65Adrsfj.js';
3
+
4
+ const InlineCode = ({ className, ...props }) => /* @__PURE__ */ jsx(
5
+ "code",
6
+ {
7
+ className: cn("rounded-sm bg-fill box-decoration-clone px-1 py-0.5 font-mono wrap-break-word", className),
8
+ ...props
9
+ }
10
+ );
11
+
12
+ export { InlineCode as I };
13
+ //# sourceMappingURL=inline-code-BW6W121s.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inline-code-BW6W121s.js","sources":["../src/ds/components/InlineCode/inline-code.tsx"],"sourcesContent":["import type { HTMLAttributes } from 'react';\n\nimport { cn } from '@/lib/utils';\n\nexport type InlineCodeProps = HTMLAttributes<HTMLElement>;\n\nexport const InlineCode = ({ className, ...props }: InlineCodeProps) => (\n <code\n className={cn('rounded-sm bg-fill box-decoration-clone px-1 py-0.5 font-mono wrap-break-word', className)}\n {...props}\n />\n);\n"],"names":[],"mappings":";;;AAMO,MAAM,aAAa,CAAC,EAAE,SAAA,EAAW,GAAG,OAAM,qBAC/C,GAAA;AAAA,EAAC,MAAA;AAAA,EAAA;AAAA,IACC,SAAA,EAAW,EAAA,CAAG,+EAAA,EAAiF,SAAS,CAAA;AAAA,IACvG,GAAG;AAAA;AACN;;;;"}
@@ -0,0 +1,15 @@
1
+ 'use strict';
2
+
3
+ const jsxRuntime = require('react/jsx-runtime');
4
+ const utils_cn = require('./cn-DG0X1KEP.cjs');
5
+
6
+ const InlineCode = ({ className, ...props }) => /* @__PURE__ */ jsxRuntime.jsx(
7
+ "code",
8
+ {
9
+ className: utils_cn.cn("rounded-sm bg-fill box-decoration-clone px-1 py-0.5 font-mono wrap-break-word", className),
10
+ ...props
11
+ }
12
+ );
13
+
14
+ exports.InlineCode = InlineCode;
15
+ //# sourceMappingURL=inline-code-CSwG-x8D.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inline-code-CSwG-x8D.cjs","sources":["../src/ds/components/InlineCode/inline-code.tsx"],"sourcesContent":["import type { HTMLAttributes } from 'react';\n\nimport { cn } from '@/lib/utils';\n\nexport type InlineCodeProps = HTMLAttributes<HTMLElement>;\n\nexport const InlineCode = ({ className, ...props }: InlineCodeProps) => (\n <code\n className={cn('rounded-sm bg-fill box-decoration-clone px-1 py-0.5 font-mono wrap-break-word', className)}\n {...props}\n />\n);\n"],"names":["jsx","cn"],"mappings":";;;;;AAMO,MAAM,aAAa,CAAC,EAAE,SAAA,EAAW,GAAG,OAAM,qBAC/CA,cAAA;AAAA,EAAC,MAAA;AAAA,EAAA;AAAA,IACC,SAAA,EAAWC,WAAA,CAAG,+EAAA,EAAiF,SAAS,CAAA;AAAA,IACvG,GAAG;AAAA;AACN;;;;"}
@@ -5,9 +5,9 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
5
5
  require('../tabbed-container.css');const jsxRuntime = require('react/jsx-runtime');
6
6
  const lucideReact = require('lucide-react');
7
7
  const React = require('react');
8
- const combobox = require('../combobox-BoSB-muq.cjs');
9
- const dataList = require('../data-list-PwFpP_mo.cjs');
10
- const listSearch = require('../list-search-S1mco9Bl.cjs');
8
+ const combobox = require('../combobox-B19HJqE-.cjs');
9
+ const dataList = require('../data-list-RI8c32dk.cjs');
10
+ const listSearch = require('../list-search-CsYQX8qR.cjs');
11
11
  const tabsContent = require('../tabs-content-DlCJoQUW.cjs');
12
12
  const tabsTab = require('../tabs-tab-DFmRMdi3.cjs');
13
13
  const tabsRoot = require('../tabs-root-COCL6jcx.cjs');
@@ -1,9 +1,9 @@
1
1
  import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import { ListFilterIcon } from 'lucide-react';
3
3
  import { Children, isValidElement, useContext } from 'react';
4
- import { C as Combobox } from '../combobox-Cd0JPUQW.js';
5
- import { D as DataList } from '../data-list-DisTjDHP.js';
6
- import { L as ListSearch } from '../list-search-FJ1O5F3S.js';
4
+ import { C as Combobox } from '../combobox-D_kmwSKS.js';
5
+ import { D as DataList } from '../data-list-5-nRJbEO.js';
6
+ import { L as ListSearch } from '../list-search-D1FD8FCL.js';
7
7
  import { T as TabContent } from '../tabs-content-7ODUUdQ0.js';
8
8
  import { T as Tab, a as TabsContext } from '../tabs-tab-DluwCnDF.js';
9
9
  import { a as Tabs, T as TabList } from '../tabs-root-UNPxoGhW.js';
@@ -3,7 +3,7 @@
3
3
  const jsxRuntime = require('react/jsx-runtime');
4
4
  const React = require('react');
5
5
  const useDebounce = require('use-debounce');
6
- const searchFieldBlock = require('./search-field-block-7-ufp4uG.cjs');
6
+ const searchFieldBlock = require('./search-field-block-K_e_S9WY.cjs');
7
7
  const keyboard_useKeydown = require('./keyboard/use-keydown.cjs.js');
8
8
  require('./keyboard/keyboard-shortcuts-context.cjs.js');
9
9
 
@@ -68,4 +68,4 @@ const ListSearch = ({
68
68
  };
69
69
 
70
70
  exports.ListSearch = ListSearch;
71
- //# sourceMappingURL=list-search-S1mco9Bl.cjs.map
71
+ //# sourceMappingURL=list-search-CsYQX8qR.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"list-search-S1mco9Bl.cjs","sources":["../src/ds/components/ListSearch/list-search.tsx"],"sourcesContent":["import { useCallback, useEffect, useId, useRef, useState } from 'react';\nimport { useDebouncedCallback } from 'use-debounce';\nimport { SearchFieldBlock } from '@/ds/components/FormFieldBlocks/fields/search-field-block';\nimport type { InputProps } from '@/ds/components/Input';\nimport { useKeydown } from '@/lib/keyboard';\n\nexport type ListSearchProps = {\n onSearch: (search: string) => void;\n label: string;\n placeholder: string;\n debounceMs?: number;\n size?: InputProps['size'];\n /**\n * Optional controlled value. When provided, ListSearch stays in sync with this\n * prop — useful when the parent needs to clear the input programmatically\n * (e.g. from a Reset button). If omitted, ListSearch manages its own state.\n */\n value?: string;\n /**\n * Opts out of the Cmd/Ctrl+Shift+F focus shortcut. Pass this on secondary\n * instances so two search fields on the same page don't fight over focus.\n */\n shortcutDisabled?: boolean;\n};\n\nexport const ListSearch = ({\n onSearch,\n label,\n placeholder,\n debounceMs = 300,\n size,\n value: controlledValue,\n shortcutDisabled = false,\n}: ListSearchProps) => {\n const id = useId();\n const [internalValue, setInternalValue] = useState(controlledValue ?? '');\n const inputRef = useRef<HTMLInputElement>(null);\n\n useKeydown(\n {\n 'mod+shift+f': () => {\n inputRef.current?.focus();\n inputRef.current?.select();\n },\n },\n { enabled: !shortcutDisabled },\n );\n\n const debouncedSearch = useDebouncedCallback((val: string) => {\n onSearch(val);\n }, debounceMs);\n\n // Sync internal state with controlled value (e.g. parent Reset clears it to '').\n // Also cancel any pending debounced callback so a stale handleChange call\n // can't overwrite the newly-applied controlled value.\n useEffect(() => {\n if (controlledValue !== undefined) {\n debouncedSearch.cancel();\n setInternalValue(controlledValue);\n }\n }, [controlledValue, debouncedSearch]);\n\n useEffect(() => () => debouncedSearch.cancel(), [debouncedSearch]);\n\n const handleChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n setInternalValue(e.target.value);\n debouncedSearch(e.target.value);\n },\n [debouncedSearch],\n );\n\n const handleReset = useCallback(() => {\n setInternalValue('');\n onSearch('');\n debouncedSearch.cancel();\n }, [onSearch, debouncedSearch]);\n\n return (\n <SearchFieldBlock\n name={id}\n label={label}\n labelIsHidden\n placeholder={placeholder}\n value={internalValue}\n onChange={handleChange}\n onReset={handleReset}\n size={size}\n inputRef={inputRef}\n className=\"w-full max-w-120\"\n />\n );\n};\n"],"names":["useId","useState","useRef","useKeydown","useDebouncedCallback","useEffect","useCallback","jsx","SearchFieldBlock"],"mappings":";;;;;;;;;AAyBO,MAAM,aAAa,CAAC;AAAA,EACzB,QAAA;AAAA,EACA,KAAA;AAAA,EACA,WAAA;AAAA,EACA,UAAA,GAAa,GAAA;AAAA,EACb,IAAA;AAAA,EACA,KAAA,EAAO,eAAA;AAAA,EACP,gBAAA,GAAmB;AACrB,CAAA,KAAuB;AACrB,EAAA,MAAM,KAAKA,WAAA,EAAM;AACjB,EAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAIC,cAAA,CAAS,mBAAmB,EAAE,CAAA;AACxE,EAAA,MAAM,QAAA,GAAWC,aAAyB,IAAI,CAAA;AAE9C,EAAAC,8BAAA;AAAA,IACE;AAAA,MACE,eAAe,MAAM;AACnB,QAAA,QAAA,CAAS,SAAS,KAAA,EAAM;AACxB,QAAA,QAAA,CAAS,SAAS,MAAA,EAAO;AAAA,MAC3B;AAAA,KACF;AAAA,IACA,EAAE,OAAA,EAAS,CAAC,gBAAA;AAAiB,GAC/B;AAEA,EAAA,MAAM,eAAA,GAAkBC,gCAAA,CAAqB,CAAC,GAAA,KAAgB;AAC5D,IAAA,QAAA,CAAS,GAAG,CAAA;AAAA,EACd,GAAG,UAAU,CAAA;AAKb,EAAAC,eAAA,CAAU,MAAM;AACd,IAAA,IAAI,oBAAoB,MAAA,EAAW;AACjC,MAAA,eAAA,CAAgB,MAAA,EAAO;AACvB,MAAA,gBAAA,CAAiB,eAAe,CAAA;AAAA,IAClC;AAAA,EACF,CAAA,EAAG,CAAC,eAAA,EAAiB,eAAe,CAAC,CAAA;AAErC,EAAAA,eAAA,CAAU,MAAM,MAAM,eAAA,CAAgB,QAAO,EAAG,CAAC,eAAe,CAAC,CAAA;AAEjE,EAAA,MAAM,YAAA,GAAeC,iBAAA;AAAA,IACnB,CAAC,CAAA,KAA2C;AAC1C,MAAA,gBAAA,CAAiB,CAAA,CAAE,OAAO,KAAK,CAAA;AAC/B,MAAA,eAAA,CAAgB,CAAA,CAAE,OAAO,KAAK,CAAA;AAAA,IAChC,CAAA;AAAA,IACA,CAAC,eAAe;AAAA,GAClB;AAEA,EAAA,MAAM,WAAA,GAAcA,kBAAY,MAAM;AACpC,IAAA,gBAAA,CAAiB,EAAE,CAAA;AACnB,IAAA,QAAA,CAAS,EAAE,CAAA;AACX,IAAA,eAAA,CAAgB,MAAA,EAAO;AAAA,EACzB,CAAA,EAAG,CAAC,QAAA,EAAU,eAAe,CAAC,CAAA;AAE9B,EAAA,uBACEC,cAAA;AAAA,IAACC,iCAAA;AAAA,IAAA;AAAA,MACC,IAAA,EAAM,EAAA;AAAA,MACN,KAAA;AAAA,MACA,aAAA,EAAa,IAAA;AAAA,MACb,WAAA;AAAA,MACA,KAAA,EAAO,aAAA;AAAA,MACP,QAAA,EAAU,YAAA;AAAA,MACV,OAAA,EAAS,WAAA;AAAA,MACT,IAAA;AAAA,MACA,QAAA;AAAA,MACA,SAAA,EAAU;AAAA;AAAA,GACZ;AAEJ;;;;"}
1
+ {"version":3,"file":"list-search-CsYQX8qR.cjs","sources":["../src/ds/components/ListSearch/list-search.tsx"],"sourcesContent":["import { useCallback, useEffect, useId, useRef, useState } from 'react';\nimport { useDebouncedCallback } from 'use-debounce';\nimport { SearchFieldBlock } from '@/ds/components/FormFieldBlocks/fields/search-field-block';\nimport type { InputProps } from '@/ds/components/Input';\nimport { useKeydown } from '@/lib/keyboard';\n\nexport type ListSearchProps = {\n onSearch: (search: string) => void;\n label: string;\n placeholder: string;\n debounceMs?: number;\n size?: InputProps['size'];\n /**\n * Optional controlled value. When provided, ListSearch stays in sync with this\n * prop — useful when the parent needs to clear the input programmatically\n * (e.g. from a Reset button). If omitted, ListSearch manages its own state.\n */\n value?: string;\n /**\n * Opts out of the Cmd/Ctrl+Shift+F focus shortcut. Pass this on secondary\n * instances so two search fields on the same page don't fight over focus.\n */\n shortcutDisabled?: boolean;\n};\n\nexport const ListSearch = ({\n onSearch,\n label,\n placeholder,\n debounceMs = 300,\n size,\n value: controlledValue,\n shortcutDisabled = false,\n}: ListSearchProps) => {\n const id = useId();\n const [internalValue, setInternalValue] = useState(controlledValue ?? '');\n const inputRef = useRef<HTMLInputElement>(null);\n\n useKeydown(\n {\n 'mod+shift+f': () => {\n inputRef.current?.focus();\n inputRef.current?.select();\n },\n },\n { enabled: !shortcutDisabled },\n );\n\n const debouncedSearch = useDebouncedCallback((val: string) => {\n onSearch(val);\n }, debounceMs);\n\n // Sync internal state with controlled value (e.g. parent Reset clears it to '').\n // Also cancel any pending debounced callback so a stale handleChange call\n // can't overwrite the newly-applied controlled value.\n useEffect(() => {\n if (controlledValue !== undefined) {\n debouncedSearch.cancel();\n setInternalValue(controlledValue);\n }\n }, [controlledValue, debouncedSearch]);\n\n useEffect(() => () => debouncedSearch.cancel(), [debouncedSearch]);\n\n const handleChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n setInternalValue(e.target.value);\n debouncedSearch(e.target.value);\n },\n [debouncedSearch],\n );\n\n const handleReset = useCallback(() => {\n setInternalValue('');\n onSearch('');\n debouncedSearch.cancel();\n }, [onSearch, debouncedSearch]);\n\n return (\n <SearchFieldBlock\n name={id}\n label={label}\n labelIsHidden\n placeholder={placeholder}\n value={internalValue}\n onChange={handleChange}\n onReset={handleReset}\n size={size}\n inputRef={inputRef}\n className=\"w-full max-w-120\"\n />\n );\n};\n"],"names":["useId","useState","useRef","useKeydown","useDebouncedCallback","useEffect","useCallback","jsx","SearchFieldBlock"],"mappings":";;;;;;;;;AAyBO,MAAM,aAAa,CAAC;AAAA,EACzB,QAAA;AAAA,EACA,KAAA;AAAA,EACA,WAAA;AAAA,EACA,UAAA,GAAa,GAAA;AAAA,EACb,IAAA;AAAA,EACA,KAAA,EAAO,eAAA;AAAA,EACP,gBAAA,GAAmB;AACrB,CAAA,KAAuB;AACrB,EAAA,MAAM,KAAKA,WAAA,EAAM;AACjB,EAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAIC,cAAA,CAAS,mBAAmB,EAAE,CAAA;AACxE,EAAA,MAAM,QAAA,GAAWC,aAAyB,IAAI,CAAA;AAE9C,EAAAC,8BAAA;AAAA,IACE;AAAA,MACE,eAAe,MAAM;AACnB,QAAA,QAAA,CAAS,SAAS,KAAA,EAAM;AACxB,QAAA,QAAA,CAAS,SAAS,MAAA,EAAO;AAAA,MAC3B;AAAA,KACF;AAAA,IACA,EAAE,OAAA,EAAS,CAAC,gBAAA;AAAiB,GAC/B;AAEA,EAAA,MAAM,eAAA,GAAkBC,gCAAA,CAAqB,CAAC,GAAA,KAAgB;AAC5D,IAAA,QAAA,CAAS,GAAG,CAAA;AAAA,EACd,GAAG,UAAU,CAAA;AAKb,EAAAC,eAAA,CAAU,MAAM;AACd,IAAA,IAAI,oBAAoB,MAAA,EAAW;AACjC,MAAA,eAAA,CAAgB,MAAA,EAAO;AACvB,MAAA,gBAAA,CAAiB,eAAe,CAAA;AAAA,IAClC;AAAA,EACF,CAAA,EAAG,CAAC,eAAA,EAAiB,eAAe,CAAC,CAAA;AAErC,EAAAA,eAAA,CAAU,MAAM,MAAM,eAAA,CAAgB,QAAO,EAAG,CAAC,eAAe,CAAC,CAAA;AAEjE,EAAA,MAAM,YAAA,GAAeC,iBAAA;AAAA,IACnB,CAAC,CAAA,KAA2C;AAC1C,MAAA,gBAAA,CAAiB,CAAA,CAAE,OAAO,KAAK,CAAA;AAC/B,MAAA,eAAA,CAAgB,CAAA,CAAE,OAAO,KAAK,CAAA;AAAA,IAChC,CAAA;AAAA,IACA,CAAC,eAAe;AAAA,GAClB;AAEA,EAAA,MAAM,WAAA,GAAcA,kBAAY,MAAM;AACpC,IAAA,gBAAA,CAAiB,EAAE,CAAA;AACnB,IAAA,QAAA,CAAS,EAAE,CAAA;AACX,IAAA,eAAA,CAAgB,MAAA,EAAO;AAAA,EACzB,CAAA,EAAG,CAAC,QAAA,EAAU,eAAe,CAAC,CAAA;AAE9B,EAAA,uBACEC,cAAA;AAAA,IAACC,iCAAA;AAAA,IAAA;AAAA,MACC,IAAA,EAAM,EAAA;AAAA,MACN,KAAA;AAAA,MACA,aAAA,EAAa,IAAA;AAAA,MACb,WAAA;AAAA,MACA,KAAA,EAAO,aAAA;AAAA,MACP,QAAA,EAAU,YAAA;AAAA,MACV,OAAA,EAAS,WAAA;AAAA,MACT,IAAA;AAAA,MACA,QAAA;AAAA,MACA,SAAA,EAAU;AAAA;AAAA,GACZ;AAEJ;;;;"}
@@ -1,7 +1,7 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
2
  import { useId, useState, useRef, useEffect, useCallback } from 'react';
3
3
  import { useDebouncedCallback } from 'use-debounce';
4
- import { S as SearchFieldBlock } from './search-field-block-fU3tStmB.js';
4
+ import { S as SearchFieldBlock } from './search-field-block-Dj2KJyjQ.js';
5
5
  import { useKeydown } from './keyboard/use-keydown.es.js';
6
6
  import './keyboard/keyboard-shortcuts-context.es.js';
7
7
 
@@ -66,4 +66,4 @@ const ListSearch = ({
66
66
  };
67
67
 
68
68
  export { ListSearch as L };
69
- //# sourceMappingURL=list-search-FJ1O5F3S.js.map
69
+ //# sourceMappingURL=list-search-D1FD8FCL.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"list-search-FJ1O5F3S.js","sources":["../src/ds/components/ListSearch/list-search.tsx"],"sourcesContent":["import { useCallback, useEffect, useId, useRef, useState } from 'react';\nimport { useDebouncedCallback } from 'use-debounce';\nimport { SearchFieldBlock } from '@/ds/components/FormFieldBlocks/fields/search-field-block';\nimport type { InputProps } from '@/ds/components/Input';\nimport { useKeydown } from '@/lib/keyboard';\n\nexport type ListSearchProps = {\n onSearch: (search: string) => void;\n label: string;\n placeholder: string;\n debounceMs?: number;\n size?: InputProps['size'];\n /**\n * Optional controlled value. When provided, ListSearch stays in sync with this\n * prop — useful when the parent needs to clear the input programmatically\n * (e.g. from a Reset button). If omitted, ListSearch manages its own state.\n */\n value?: string;\n /**\n * Opts out of the Cmd/Ctrl+Shift+F focus shortcut. Pass this on secondary\n * instances so two search fields on the same page don't fight over focus.\n */\n shortcutDisabled?: boolean;\n};\n\nexport const ListSearch = ({\n onSearch,\n label,\n placeholder,\n debounceMs = 300,\n size,\n value: controlledValue,\n shortcutDisabled = false,\n}: ListSearchProps) => {\n const id = useId();\n const [internalValue, setInternalValue] = useState(controlledValue ?? '');\n const inputRef = useRef<HTMLInputElement>(null);\n\n useKeydown(\n {\n 'mod+shift+f': () => {\n inputRef.current?.focus();\n inputRef.current?.select();\n },\n },\n { enabled: !shortcutDisabled },\n );\n\n const debouncedSearch = useDebouncedCallback((val: string) => {\n onSearch(val);\n }, debounceMs);\n\n // Sync internal state with controlled value (e.g. parent Reset clears it to '').\n // Also cancel any pending debounced callback so a stale handleChange call\n // can't overwrite the newly-applied controlled value.\n useEffect(() => {\n if (controlledValue !== undefined) {\n debouncedSearch.cancel();\n setInternalValue(controlledValue);\n }\n }, [controlledValue, debouncedSearch]);\n\n useEffect(() => () => debouncedSearch.cancel(), [debouncedSearch]);\n\n const handleChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n setInternalValue(e.target.value);\n debouncedSearch(e.target.value);\n },\n [debouncedSearch],\n );\n\n const handleReset = useCallback(() => {\n setInternalValue('');\n onSearch('');\n debouncedSearch.cancel();\n }, [onSearch, debouncedSearch]);\n\n return (\n <SearchFieldBlock\n name={id}\n label={label}\n labelIsHidden\n placeholder={placeholder}\n value={internalValue}\n onChange={handleChange}\n onReset={handleReset}\n size={size}\n inputRef={inputRef}\n className=\"w-full max-w-120\"\n />\n );\n};\n"],"names":[],"mappings":";;;;;;;AAyBO,MAAM,aAAa,CAAC;AAAA,EACzB,QAAA;AAAA,EACA,KAAA;AAAA,EACA,WAAA;AAAA,EACA,UAAA,GAAa,GAAA;AAAA,EACb,IAAA;AAAA,EACA,KAAA,EAAO,eAAA;AAAA,EACP,gBAAA,GAAmB;AACrB,CAAA,KAAuB;AACrB,EAAA,MAAM,KAAK,KAAA,EAAM;AACjB,EAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAI,QAAA,CAAS,mBAAmB,EAAE,CAAA;AACxE,EAAA,MAAM,QAAA,GAAW,OAAyB,IAAI,CAAA;AAE9C,EAAA,UAAA;AAAA,IACE;AAAA,MACE,eAAe,MAAM;AACnB,QAAA,QAAA,CAAS,SAAS,KAAA,EAAM;AACxB,QAAA,QAAA,CAAS,SAAS,MAAA,EAAO;AAAA,MAC3B;AAAA,KACF;AAAA,IACA,EAAE,OAAA,EAAS,CAAC,gBAAA;AAAiB,GAC/B;AAEA,EAAA,MAAM,eAAA,GAAkB,oBAAA,CAAqB,CAAC,GAAA,KAAgB;AAC5D,IAAA,QAAA,CAAS,GAAG,CAAA;AAAA,EACd,GAAG,UAAU,CAAA;AAKb,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,oBAAoB,MAAA,EAAW;AACjC,MAAA,eAAA,CAAgB,MAAA,EAAO;AACvB,MAAA,gBAAA,CAAiB,eAAe,CAAA;AAAA,IAClC;AAAA,EACF,CAAA,EAAG,CAAC,eAAA,EAAiB,eAAe,CAAC,CAAA;AAErC,EAAA,SAAA,CAAU,MAAM,MAAM,eAAA,CAAgB,QAAO,EAAG,CAAC,eAAe,CAAC,CAAA;AAEjE,EAAA,MAAM,YAAA,GAAe,WAAA;AAAA,IACnB,CAAC,CAAA,KAA2C;AAC1C,MAAA,gBAAA,CAAiB,CAAA,CAAE,OAAO,KAAK,CAAA;AAC/B,MAAA,eAAA,CAAgB,CAAA,CAAE,OAAO,KAAK,CAAA;AAAA,IAChC,CAAA;AAAA,IACA,CAAC,eAAe;AAAA,GAClB;AAEA,EAAA,MAAM,WAAA,GAAc,YAAY,MAAM;AACpC,IAAA,gBAAA,CAAiB,EAAE,CAAA;AACnB,IAAA,QAAA,CAAS,EAAE,CAAA;AACX,IAAA,eAAA,CAAgB,MAAA,EAAO;AAAA,EACzB,CAAA,EAAG,CAAC,QAAA,EAAU,eAAe,CAAC,CAAA;AAE9B,EAAA,uBACE,GAAA;AAAA,IAAC,gBAAA;AAAA,IAAA;AAAA,MACC,IAAA,EAAM,EAAA;AAAA,MACN,KAAA;AAAA,MACA,aAAA,EAAa,IAAA;AAAA,MACb,WAAA;AAAA,MACA,KAAA,EAAO,aAAA;AAAA,MACP,QAAA,EAAU,YAAA;AAAA,MACV,OAAA,EAAS,WAAA;AAAA,MACT,IAAA;AAAA,MACA,QAAA;AAAA,MACA,SAAA,EAAU;AAAA;AAAA,GACZ;AAEJ;;;;"}
1
+ {"version":3,"file":"list-search-D1FD8FCL.js","sources":["../src/ds/components/ListSearch/list-search.tsx"],"sourcesContent":["import { useCallback, useEffect, useId, useRef, useState } from 'react';\nimport { useDebouncedCallback } from 'use-debounce';\nimport { SearchFieldBlock } from '@/ds/components/FormFieldBlocks/fields/search-field-block';\nimport type { InputProps } from '@/ds/components/Input';\nimport { useKeydown } from '@/lib/keyboard';\n\nexport type ListSearchProps = {\n onSearch: (search: string) => void;\n label: string;\n placeholder: string;\n debounceMs?: number;\n size?: InputProps['size'];\n /**\n * Optional controlled value. When provided, ListSearch stays in sync with this\n * prop — useful when the parent needs to clear the input programmatically\n * (e.g. from a Reset button). If omitted, ListSearch manages its own state.\n */\n value?: string;\n /**\n * Opts out of the Cmd/Ctrl+Shift+F focus shortcut. Pass this on secondary\n * instances so two search fields on the same page don't fight over focus.\n */\n shortcutDisabled?: boolean;\n};\n\nexport const ListSearch = ({\n onSearch,\n label,\n placeholder,\n debounceMs = 300,\n size,\n value: controlledValue,\n shortcutDisabled = false,\n}: ListSearchProps) => {\n const id = useId();\n const [internalValue, setInternalValue] = useState(controlledValue ?? '');\n const inputRef = useRef<HTMLInputElement>(null);\n\n useKeydown(\n {\n 'mod+shift+f': () => {\n inputRef.current?.focus();\n inputRef.current?.select();\n },\n },\n { enabled: !shortcutDisabled },\n );\n\n const debouncedSearch = useDebouncedCallback((val: string) => {\n onSearch(val);\n }, debounceMs);\n\n // Sync internal state with controlled value (e.g. parent Reset clears it to '').\n // Also cancel any pending debounced callback so a stale handleChange call\n // can't overwrite the newly-applied controlled value.\n useEffect(() => {\n if (controlledValue !== undefined) {\n debouncedSearch.cancel();\n setInternalValue(controlledValue);\n }\n }, [controlledValue, debouncedSearch]);\n\n useEffect(() => () => debouncedSearch.cancel(), [debouncedSearch]);\n\n const handleChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n setInternalValue(e.target.value);\n debouncedSearch(e.target.value);\n },\n [debouncedSearch],\n );\n\n const handleReset = useCallback(() => {\n setInternalValue('');\n onSearch('');\n debouncedSearch.cancel();\n }, [onSearch, debouncedSearch]);\n\n return (\n <SearchFieldBlock\n name={id}\n label={label}\n labelIsHidden\n placeholder={placeholder}\n value={internalValue}\n onChange={handleChange}\n onReset={handleReset}\n size={size}\n inputRef={inputRef}\n className=\"w-full max-w-120\"\n />\n );\n};\n"],"names":[],"mappings":";;;;;;;AAyBO,MAAM,aAAa,CAAC;AAAA,EACzB,QAAA;AAAA,EACA,KAAA;AAAA,EACA,WAAA;AAAA,EACA,UAAA,GAAa,GAAA;AAAA,EACb,IAAA;AAAA,EACA,KAAA,EAAO,eAAA;AAAA,EACP,gBAAA,GAAmB;AACrB,CAAA,KAAuB;AACrB,EAAA,MAAM,KAAK,KAAA,EAAM;AACjB,EAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAI,QAAA,CAAS,mBAAmB,EAAE,CAAA;AACxE,EAAA,MAAM,QAAA,GAAW,OAAyB,IAAI,CAAA;AAE9C,EAAA,UAAA;AAAA,IACE;AAAA,MACE,eAAe,MAAM;AACnB,QAAA,QAAA,CAAS,SAAS,KAAA,EAAM;AACxB,QAAA,QAAA,CAAS,SAAS,MAAA,EAAO;AAAA,MAC3B;AAAA,KACF;AAAA,IACA,EAAE,OAAA,EAAS,CAAC,gBAAA;AAAiB,GAC/B;AAEA,EAAA,MAAM,eAAA,GAAkB,oBAAA,CAAqB,CAAC,GAAA,KAAgB;AAC5D,IAAA,QAAA,CAAS,GAAG,CAAA;AAAA,EACd,GAAG,UAAU,CAAA;AAKb,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,oBAAoB,MAAA,EAAW;AACjC,MAAA,eAAA,CAAgB,MAAA,EAAO;AACvB,MAAA,gBAAA,CAAiB,eAAe,CAAA;AAAA,IAClC;AAAA,EACF,CAAA,EAAG,CAAC,eAAA,EAAiB,eAAe,CAAC,CAAA;AAErC,EAAA,SAAA,CAAU,MAAM,MAAM,eAAA,CAAgB,QAAO,EAAG,CAAC,eAAe,CAAC,CAAA;AAEjE,EAAA,MAAM,YAAA,GAAe,WAAA;AAAA,IACnB,CAAC,CAAA,KAA2C;AAC1C,MAAA,gBAAA,CAAiB,CAAA,CAAE,OAAO,KAAK,CAAA;AAC/B,MAAA,eAAA,CAAgB,CAAA,CAAE,OAAO,KAAK,CAAA;AAAA,IAChC,CAAA;AAAA,IACA,CAAC,eAAe;AAAA,GAClB;AAEA,EAAA,MAAM,WAAA,GAAc,YAAY,MAAM;AACpC,IAAA,gBAAA,CAAiB,EAAE,CAAA;AACnB,IAAA,QAAA,CAAS,EAAE,CAAA;AACX,IAAA,eAAA,CAAgB,MAAA,EAAO;AAAA,EACzB,CAAA,EAAG,CAAC,QAAA,EAAU,eAAe,CAAC,CAAA;AAE9B,EAAA,uBACE,GAAA;AAAA,IAAC,gBAAA;AAAA,IAAA;AAAA,MACC,IAAA,EAAM,EAAA;AAAA,MACN,KAAA;AAAA,MACA,aAAA,EAAa,IAAA;AAAA,MACb,WAAA;AAAA,MACA,KAAA,EAAO,aAAA;AAAA,MACP,QAAA,EAAU,YAAA;AAAA,MACV,OAAA,EAAS,WAAA;AAAA,MACT,IAAA;AAAA,MACA,QAAA;AAAA,MACA,SAAA,EAAU;AAAA;AAAA,GACZ;AAEJ;;;;"}
@@ -1,7 +1,7 @@
1
- import { c as DataListCell, e as DataListTextCell, D as DataListRoot, f as DataListTimeCell, g as DataListDateCell, h as DataListTopCellSmart, i as DataListTopCellWithTooltip, b as DataListTopCell, a as DataListTop } from './data-list-top-DpbOA3uw.js';
2
- import { D as DataListNextPageLoading, a as DataListNoMatch, b as DataListSpacer, c as DataListRowLink, d as DataListRowButton, e as DataListRowWrapper, f as DataListSortableTopCell } from './data-list-spacer-BmorAN0V.js';
1
+ import { c as DataListCell, e as DataListTextCell, D as DataListRoot, f as DataListTimeCell, g as DataListDateCell, h as DataListTopCellSmart, i as DataListTopCellWithTooltip, b as DataListTopCell, a as DataListTop } from './data-list-top-B-AopfvE.js';
2
+ import { D as DataListNextPageLoading, a as DataListNoMatch, b as DataListSpacer, c as DataListRowLink, d as DataListRowButton, e as DataListRowWrapper, f as DataListSortableTopCell } from './data-list-spacer-D3Rn1evn.js';
3
3
  import { jsx, jsxs } from 'react/jsx-runtime';
4
- import { B as Badge } from './Badge-TD55_qZJ.js';
4
+ import { B as Badge } from './Badge-Bzn8Z-_I.js';
5
5
  import { AgentIcon } from './icons/AgentIcon.es.js';
6
6
  import { ToolsIcon } from './icons/ToolsIcon.es.js';
7
7
  import { WorkflowIcon } from './icons/WorkflowIcon.es.js';
@@ -78,4 +78,4 @@ const LogsDataList = Object.assign(DataListRoot, {
78
78
  });
79
79
 
80
80
  export { LogsDataList as L };
81
- //# sourceMappingURL=logs-data-list-5BAeLU57.js.map
81
+ //# sourceMappingURL=logs-data-list-BKE5vYZR.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"logs-data-list-5BAeLU57.js","sources":["../src/ds/components/LogsDataList/logs-data-list-cells.tsx","../src/ds/components/LogsDataList/logs-data-list.tsx"],"sourcesContent":["import { Badge } from '../Badge';\nimport type { BadgeVariant } from '../Badge';\nimport { DataListCell, DataListTextCell } from '../DataList/data-list-cells';\nimport { AgentIcon } from '@/ds/icons/AgentIcon';\nimport { ToolsIcon } from '@/ds/icons/ToolsIcon';\nimport { WorkflowIcon } from '@/ds/icons/WorkflowIcon';\nimport { cn } from '@/lib/utils';\n\ntype LogLevel = 'debug' | 'info' | 'warn' | 'error' | 'fatal';\n\nconst LEVEL_VARIANT: Record<LogLevel, BadgeVariant> = {\n debug: 'neutral',\n info: 'blue',\n warn: 'yellow',\n error: 'red',\n fatal: 'red',\n};\n\n// ---------------------------------------------------------------------------\n// LevelCell\n// ---------------------------------------------------------------------------\n\nexport interface LogsDataListLevelCellProps {\n level: LogLevel;\n}\n\nexport function LogsDataListLevelCell({ level }: LogsDataListLevelCellProps) {\n return (\n <DataListCell>\n <Badge variant={LEVEL_VARIANT[level]}>{level}</Badge>\n </DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// EntityCell\n// ---------------------------------------------------------------------------\n\nfunction EntityTypeIcon({ entityType, className }: { entityType: string; className?: string }) {\n const iconClass = cn('size-3.5 shrink-0 text-placeholder', className);\n const normalizedEntityType = entityType.toLowerCase();\n\n switch (normalizedEntityType) {\n case 'agent':\n return <AgentIcon className={iconClass} aria-hidden />;\n case 'workflow':\n case 'workflow_run':\n return <WorkflowIcon className={iconClass} aria-hidden />;\n case 'tool':\n return <ToolsIcon className={iconClass} aria-hidden />;\n default:\n return null;\n }\n}\n\nexport interface LogsDataListEntityCellProps {\n entityType?: string | null;\n entityName?: string | null;\n}\n\nexport function LogsDataListEntityCell({ entityType, entityName }: LogsDataListEntityCellProps) {\n const type = entityType ?? '';\n\n return (\n <DataListCell className=\"flex min-w-0 items-center gap-2\">\n <EntityTypeIcon entityType={type} />\n {entityName ? <span className=\"min-w-0 truncate text-body-sm\">{entityName}</span> : '-'}\n </DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// MessageCell\n// ---------------------------------------------------------------------------\n\nexport interface LogsDataListMessageCellProps {\n message: string;\n}\n\nexport function LogsDataListMessageCell({ message }: LogsDataListMessageCellProps) {\n return (\n <DataListCell className=\"min-w-0 truncate font-mono text-body-sm text-muted-foreground\">{message}</DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// DataCell\n// ---------------------------------------------------------------------------\n\nexport interface LogsDataListDataCellProps {\n data?: Record<string, unknown> | null;\n}\n\nexport function LogsDataListDataCell({ data }: LogsDataListDataCellProps) {\n if (!data || Object.keys(data).length === 0) {\n return <DataListCell>{null}</DataListCell>;\n }\n\n const summary = Object.entries(data)\n .map(([k, v]) => {\n if (typeof v === 'string') return `${k}: ${v}`;\n try {\n return `${k}: ${JSON.stringify(v)}`;\n } catch {\n return `${k}: <unserializable>`;\n }\n })\n .join(', ');\n\n return <DataListTextCell font=\"mono\">{summary}</DataListTextCell>;\n}\n","import { DataListDateCell, DataListTimeCell } from '../DataList/data-list-cells';\nimport { DataListNextPageLoading } from '../DataList/data-list-next-page-loading';\nimport { DataListNoMatch } from '../DataList/data-list-no-match';\nimport { DataListRoot } from '../DataList/data-list-root';\nimport { DataListRowButton } from '../DataList/data-list-row-button';\nimport { DataListRowLink } from '../DataList/data-list-row-link';\nimport { DataListRowWrapper } from '../DataList/data-list-row-wrapper';\nimport { DataListSortableTopCell } from '../DataList/data-list-sortable-top-cell';\nimport { DataListSpacer } from '../DataList/data-list-spacer';\nimport { DataListTop } from '../DataList/data-list-top';\nimport { DataListTopCell, DataListTopCellWithTooltip, DataListTopCellSmart } from '../DataList/data-list-top-cell';\nimport {\n LogsDataListLevelCell,\n LogsDataListEntityCell,\n LogsDataListMessageCell,\n LogsDataListDataCell,\n} from './logs-data-list-cells';\n\nexport const LogsDataList = Object.assign(DataListRoot, {\n Top: DataListTop,\n TopCell: DataListTopCell,\n SortableTopCell: DataListSortableTopCell,\n TopCellWithTooltip: DataListTopCellWithTooltip,\n TopCellSmart: DataListTopCellSmart,\n RowWrapper: DataListRowWrapper,\n RowButton: DataListRowButton,\n RowLink: DataListRowLink,\n Spacer: DataListSpacer,\n NoMatch: DataListNoMatch,\n DateCell: DataListDateCell,\n TimeCell: DataListTimeCell,\n LevelCell: LogsDataListLevelCell,\n EntityCell: LogsDataListEntityCell,\n MessageCell: LogsDataListMessageCell,\n DataCell: LogsDataListDataCell,\n NextPageLoading: DataListNextPageLoading,\n});\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"logs-data-list-BKE5vYZR.js","sources":["../src/ds/components/LogsDataList/logs-data-list-cells.tsx","../src/ds/components/LogsDataList/logs-data-list.tsx"],"sourcesContent":["import { Badge } from '../Badge';\nimport type { BadgeVariant } from '../Badge';\nimport { DataListCell, DataListTextCell } from '../DataList/data-list-cells';\nimport { AgentIcon } from '@/ds/icons/AgentIcon';\nimport { ToolsIcon } from '@/ds/icons/ToolsIcon';\nimport { WorkflowIcon } from '@/ds/icons/WorkflowIcon';\nimport { cn } from '@/lib/utils';\n\ntype LogLevel = 'debug' | 'info' | 'warn' | 'error' | 'fatal';\n\nconst LEVEL_VARIANT: Record<LogLevel, BadgeVariant> = {\n debug: 'neutral',\n info: 'blue',\n warn: 'yellow',\n error: 'red',\n fatal: 'red',\n};\n\n// ---------------------------------------------------------------------------\n// LevelCell\n// ---------------------------------------------------------------------------\n\nexport interface LogsDataListLevelCellProps {\n level: LogLevel;\n}\n\nexport function LogsDataListLevelCell({ level }: LogsDataListLevelCellProps) {\n return (\n <DataListCell>\n <Badge variant={LEVEL_VARIANT[level]}>{level}</Badge>\n </DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// EntityCell\n// ---------------------------------------------------------------------------\n\nfunction EntityTypeIcon({ entityType, className }: { entityType: string; className?: string }) {\n const iconClass = cn('size-3.5 shrink-0 text-placeholder', className);\n const normalizedEntityType = entityType.toLowerCase();\n\n switch (normalizedEntityType) {\n case 'agent':\n return <AgentIcon className={iconClass} aria-hidden />;\n case 'workflow':\n case 'workflow_run':\n return <WorkflowIcon className={iconClass} aria-hidden />;\n case 'tool':\n return <ToolsIcon className={iconClass} aria-hidden />;\n default:\n return null;\n }\n}\n\nexport interface LogsDataListEntityCellProps {\n entityType?: string | null;\n entityName?: string | null;\n}\n\nexport function LogsDataListEntityCell({ entityType, entityName }: LogsDataListEntityCellProps) {\n const type = entityType ?? '';\n\n return (\n <DataListCell className=\"flex min-w-0 items-center gap-2\">\n <EntityTypeIcon entityType={type} />\n {entityName ? <span className=\"min-w-0 truncate text-body-sm\">{entityName}</span> : '-'}\n </DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// MessageCell\n// ---------------------------------------------------------------------------\n\nexport interface LogsDataListMessageCellProps {\n message: string;\n}\n\nexport function LogsDataListMessageCell({ message }: LogsDataListMessageCellProps) {\n return (\n <DataListCell className=\"min-w-0 truncate font-mono text-body-sm text-muted-foreground\">{message}</DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// DataCell\n// ---------------------------------------------------------------------------\n\nexport interface LogsDataListDataCellProps {\n data?: Record<string, unknown> | null;\n}\n\nexport function LogsDataListDataCell({ data }: LogsDataListDataCellProps) {\n if (!data || Object.keys(data).length === 0) {\n return <DataListCell>{null}</DataListCell>;\n }\n\n const summary = Object.entries(data)\n .map(([k, v]) => {\n if (typeof v === 'string') return `${k}: ${v}`;\n try {\n return `${k}: ${JSON.stringify(v)}`;\n } catch {\n return `${k}: <unserializable>`;\n }\n })\n .join(', ');\n\n return <DataListTextCell font=\"mono\">{summary}</DataListTextCell>;\n}\n","import { DataListDateCell, DataListTimeCell } from '../DataList/data-list-cells';\nimport { DataListNextPageLoading } from '../DataList/data-list-next-page-loading';\nimport { DataListNoMatch } from '../DataList/data-list-no-match';\nimport { DataListRoot } from '../DataList/data-list-root';\nimport { DataListRowButton } from '../DataList/data-list-row-button';\nimport { DataListRowLink } from '../DataList/data-list-row-link';\nimport { DataListRowWrapper } from '../DataList/data-list-row-wrapper';\nimport { DataListSortableTopCell } from '../DataList/data-list-sortable-top-cell';\nimport { DataListSpacer } from '../DataList/data-list-spacer';\nimport { DataListTop } from '../DataList/data-list-top';\nimport { DataListTopCell, DataListTopCellWithTooltip, DataListTopCellSmart } from '../DataList/data-list-top-cell';\nimport {\n LogsDataListLevelCell,\n LogsDataListEntityCell,\n LogsDataListMessageCell,\n LogsDataListDataCell,\n} from './logs-data-list-cells';\n\nexport const LogsDataList = Object.assign(DataListRoot, {\n Top: DataListTop,\n TopCell: DataListTopCell,\n SortableTopCell: DataListSortableTopCell,\n TopCellWithTooltip: DataListTopCellWithTooltip,\n TopCellSmart: DataListTopCellSmart,\n RowWrapper: DataListRowWrapper,\n RowButton: DataListRowButton,\n RowLink: DataListRowLink,\n Spacer: DataListSpacer,\n NoMatch: DataListNoMatch,\n DateCell: DataListDateCell,\n TimeCell: DataListTimeCell,\n LevelCell: LogsDataListLevelCell,\n EntityCell: LogsDataListEntityCell,\n MessageCell: LogsDataListMessageCell,\n DataCell: LogsDataListDataCell,\n NextPageLoading: DataListNextPageLoading,\n});\n"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  'use strict';
2
2
 
3
- const dataListTop = require('./data-list-top-WGUY167p.cjs');
4
- const dataListSpacer = require('./data-list-spacer-DEcgVGFM.cjs');
3
+ const dataListTop = require('./data-list-top-DFnudSA_.cjs');
4
+ const dataListSpacer = require('./data-list-spacer-1OqlC7WX.cjs');
5
5
  const jsxRuntime = require('react/jsx-runtime');
6
- const Badge = require('./Badge-BEeYtjmv.cjs');
6
+ const Badge = require('./Badge-DFNxcz-r.cjs');
7
7
  const icons_AgentIcon = require('./icons/AgentIcon.cjs.js');
8
8
  const icons_ToolsIcon = require('./icons/ToolsIcon.cjs.js');
9
9
  const icons_WorkflowIcon = require('./icons/WorkflowIcon.cjs.js');
@@ -80,4 +80,4 @@ const LogsDataList = Object.assign(dataListTop.DataListRoot, {
80
80
  });
81
81
 
82
82
  exports.LogsDataList = LogsDataList;
83
- //# sourceMappingURL=logs-data-list-YL9yLKF3.cjs.map
83
+ //# sourceMappingURL=logs-data-list-lJK0yGYj.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"logs-data-list-YL9yLKF3.cjs","sources":["../src/ds/components/LogsDataList/logs-data-list-cells.tsx","../src/ds/components/LogsDataList/logs-data-list.tsx"],"sourcesContent":["import { Badge } from '../Badge';\nimport type { BadgeVariant } from '../Badge';\nimport { DataListCell, DataListTextCell } from '../DataList/data-list-cells';\nimport { AgentIcon } from '@/ds/icons/AgentIcon';\nimport { ToolsIcon } from '@/ds/icons/ToolsIcon';\nimport { WorkflowIcon } from '@/ds/icons/WorkflowIcon';\nimport { cn } from '@/lib/utils';\n\ntype LogLevel = 'debug' | 'info' | 'warn' | 'error' | 'fatal';\n\nconst LEVEL_VARIANT: Record<LogLevel, BadgeVariant> = {\n debug: 'neutral',\n info: 'blue',\n warn: 'yellow',\n error: 'red',\n fatal: 'red',\n};\n\n// ---------------------------------------------------------------------------\n// LevelCell\n// ---------------------------------------------------------------------------\n\nexport interface LogsDataListLevelCellProps {\n level: LogLevel;\n}\n\nexport function LogsDataListLevelCell({ level }: LogsDataListLevelCellProps) {\n return (\n <DataListCell>\n <Badge variant={LEVEL_VARIANT[level]}>{level}</Badge>\n </DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// EntityCell\n// ---------------------------------------------------------------------------\n\nfunction EntityTypeIcon({ entityType, className }: { entityType: string; className?: string }) {\n const iconClass = cn('size-3.5 shrink-0 text-placeholder', className);\n const normalizedEntityType = entityType.toLowerCase();\n\n switch (normalizedEntityType) {\n case 'agent':\n return <AgentIcon className={iconClass} aria-hidden />;\n case 'workflow':\n case 'workflow_run':\n return <WorkflowIcon className={iconClass} aria-hidden />;\n case 'tool':\n return <ToolsIcon className={iconClass} aria-hidden />;\n default:\n return null;\n }\n}\n\nexport interface LogsDataListEntityCellProps {\n entityType?: string | null;\n entityName?: string | null;\n}\n\nexport function LogsDataListEntityCell({ entityType, entityName }: LogsDataListEntityCellProps) {\n const type = entityType ?? '';\n\n return (\n <DataListCell className=\"flex min-w-0 items-center gap-2\">\n <EntityTypeIcon entityType={type} />\n {entityName ? <span className=\"min-w-0 truncate text-body-sm\">{entityName}</span> : '-'}\n </DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// MessageCell\n// ---------------------------------------------------------------------------\n\nexport interface LogsDataListMessageCellProps {\n message: string;\n}\n\nexport function LogsDataListMessageCell({ message }: LogsDataListMessageCellProps) {\n return (\n <DataListCell className=\"min-w-0 truncate font-mono text-body-sm text-muted-foreground\">{message}</DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// DataCell\n// ---------------------------------------------------------------------------\n\nexport interface LogsDataListDataCellProps {\n data?: Record<string, unknown> | null;\n}\n\nexport function LogsDataListDataCell({ data }: LogsDataListDataCellProps) {\n if (!data || Object.keys(data).length === 0) {\n return <DataListCell>{null}</DataListCell>;\n }\n\n const summary = Object.entries(data)\n .map(([k, v]) => {\n if (typeof v === 'string') return `${k}: ${v}`;\n try {\n return `${k}: ${JSON.stringify(v)}`;\n } catch {\n return `${k}: <unserializable>`;\n }\n })\n .join(', ');\n\n return <DataListTextCell font=\"mono\">{summary}</DataListTextCell>;\n}\n","import { DataListDateCell, DataListTimeCell } from '../DataList/data-list-cells';\nimport { DataListNextPageLoading } from '../DataList/data-list-next-page-loading';\nimport { DataListNoMatch } from '../DataList/data-list-no-match';\nimport { DataListRoot } from '../DataList/data-list-root';\nimport { DataListRowButton } from '../DataList/data-list-row-button';\nimport { DataListRowLink } from '../DataList/data-list-row-link';\nimport { DataListRowWrapper } from '../DataList/data-list-row-wrapper';\nimport { DataListSortableTopCell } from '../DataList/data-list-sortable-top-cell';\nimport { DataListSpacer } from '../DataList/data-list-spacer';\nimport { DataListTop } from '../DataList/data-list-top';\nimport { DataListTopCell, DataListTopCellWithTooltip, DataListTopCellSmart } from '../DataList/data-list-top-cell';\nimport {\n LogsDataListLevelCell,\n LogsDataListEntityCell,\n LogsDataListMessageCell,\n LogsDataListDataCell,\n} from './logs-data-list-cells';\n\nexport const LogsDataList = Object.assign(DataListRoot, {\n Top: DataListTop,\n TopCell: DataListTopCell,\n SortableTopCell: DataListSortableTopCell,\n TopCellWithTooltip: DataListTopCellWithTooltip,\n TopCellSmart: DataListTopCellSmart,\n RowWrapper: DataListRowWrapper,\n RowButton: DataListRowButton,\n RowLink: DataListRowLink,\n Spacer: DataListSpacer,\n NoMatch: DataListNoMatch,\n DateCell: DataListDateCell,\n TimeCell: DataListTimeCell,\n LevelCell: LogsDataListLevelCell,\n EntityCell: LogsDataListEntityCell,\n MessageCell: LogsDataListMessageCell,\n DataCell: LogsDataListDataCell,\n NextPageLoading: DataListNextPageLoading,\n});\n"],"names":["jsx","DataListCell","Badge","cn","AgentIcon","WorkflowIcon","ToolsIcon","jsxs","DataListTextCell","DataListRoot","DataListTop","DataListTopCell","DataListSortableTopCell","DataListTopCellWithTooltip","DataListTopCellSmart","DataListRowWrapper","DataListRowButton","DataListRowLink","DataListSpacer","DataListNoMatch","DataListDateCell","DataListTimeCell","DataListNextPageLoading"],"mappings":"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"}
1
+ {"version":3,"file":"logs-data-list-lJK0yGYj.cjs","sources":["../src/ds/components/LogsDataList/logs-data-list-cells.tsx","../src/ds/components/LogsDataList/logs-data-list.tsx"],"sourcesContent":["import { Badge } from '../Badge';\nimport type { BadgeVariant } from '../Badge';\nimport { DataListCell, DataListTextCell } from '../DataList/data-list-cells';\nimport { AgentIcon } from '@/ds/icons/AgentIcon';\nimport { ToolsIcon } from '@/ds/icons/ToolsIcon';\nimport { WorkflowIcon } from '@/ds/icons/WorkflowIcon';\nimport { cn } from '@/lib/utils';\n\ntype LogLevel = 'debug' | 'info' | 'warn' | 'error' | 'fatal';\n\nconst LEVEL_VARIANT: Record<LogLevel, BadgeVariant> = {\n debug: 'neutral',\n info: 'blue',\n warn: 'yellow',\n error: 'red',\n fatal: 'red',\n};\n\n// ---------------------------------------------------------------------------\n// LevelCell\n// ---------------------------------------------------------------------------\n\nexport interface LogsDataListLevelCellProps {\n level: LogLevel;\n}\n\nexport function LogsDataListLevelCell({ level }: LogsDataListLevelCellProps) {\n return (\n <DataListCell>\n <Badge variant={LEVEL_VARIANT[level]}>{level}</Badge>\n </DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// EntityCell\n// ---------------------------------------------------------------------------\n\nfunction EntityTypeIcon({ entityType, className }: { entityType: string; className?: string }) {\n const iconClass = cn('size-3.5 shrink-0 text-placeholder', className);\n const normalizedEntityType = entityType.toLowerCase();\n\n switch (normalizedEntityType) {\n case 'agent':\n return <AgentIcon className={iconClass} aria-hidden />;\n case 'workflow':\n case 'workflow_run':\n return <WorkflowIcon className={iconClass} aria-hidden />;\n case 'tool':\n return <ToolsIcon className={iconClass} aria-hidden />;\n default:\n return null;\n }\n}\n\nexport interface LogsDataListEntityCellProps {\n entityType?: string | null;\n entityName?: string | null;\n}\n\nexport function LogsDataListEntityCell({ entityType, entityName }: LogsDataListEntityCellProps) {\n const type = entityType ?? '';\n\n return (\n <DataListCell className=\"flex min-w-0 items-center gap-2\">\n <EntityTypeIcon entityType={type} />\n {entityName ? <span className=\"min-w-0 truncate text-body-sm\">{entityName}</span> : '-'}\n </DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// MessageCell\n// ---------------------------------------------------------------------------\n\nexport interface LogsDataListMessageCellProps {\n message: string;\n}\n\nexport function LogsDataListMessageCell({ message }: LogsDataListMessageCellProps) {\n return (\n <DataListCell className=\"min-w-0 truncate font-mono text-body-sm text-muted-foreground\">{message}</DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// DataCell\n// ---------------------------------------------------------------------------\n\nexport interface LogsDataListDataCellProps {\n data?: Record<string, unknown> | null;\n}\n\nexport function LogsDataListDataCell({ data }: LogsDataListDataCellProps) {\n if (!data || Object.keys(data).length === 0) {\n return <DataListCell>{null}</DataListCell>;\n }\n\n const summary = Object.entries(data)\n .map(([k, v]) => {\n if (typeof v === 'string') return `${k}: ${v}`;\n try {\n return `${k}: ${JSON.stringify(v)}`;\n } catch {\n return `${k}: <unserializable>`;\n }\n })\n .join(', ');\n\n return <DataListTextCell font=\"mono\">{summary}</DataListTextCell>;\n}\n","import { DataListDateCell, DataListTimeCell } from '../DataList/data-list-cells';\nimport { DataListNextPageLoading } from '../DataList/data-list-next-page-loading';\nimport { DataListNoMatch } from '../DataList/data-list-no-match';\nimport { DataListRoot } from '../DataList/data-list-root';\nimport { DataListRowButton } from '../DataList/data-list-row-button';\nimport { DataListRowLink } from '../DataList/data-list-row-link';\nimport { DataListRowWrapper } from '../DataList/data-list-row-wrapper';\nimport { DataListSortableTopCell } from '../DataList/data-list-sortable-top-cell';\nimport { DataListSpacer } from '../DataList/data-list-spacer';\nimport { DataListTop } from '../DataList/data-list-top';\nimport { DataListTopCell, DataListTopCellWithTooltip, DataListTopCellSmart } from '../DataList/data-list-top-cell';\nimport {\n LogsDataListLevelCell,\n LogsDataListEntityCell,\n LogsDataListMessageCell,\n LogsDataListDataCell,\n} from './logs-data-list-cells';\n\nexport const LogsDataList = Object.assign(DataListRoot, {\n Top: DataListTop,\n TopCell: DataListTopCell,\n SortableTopCell: DataListSortableTopCell,\n TopCellWithTooltip: DataListTopCellWithTooltip,\n TopCellSmart: DataListTopCellSmart,\n RowWrapper: DataListRowWrapper,\n RowButton: DataListRowButton,\n RowLink: DataListRowLink,\n Spacer: DataListSpacer,\n NoMatch: DataListNoMatch,\n DateCell: DataListDateCell,\n TimeCell: DataListTimeCell,\n LevelCell: LogsDataListLevelCell,\n EntityCell: LogsDataListEntityCell,\n MessageCell: LogsDataListMessageCell,\n DataCell: LogsDataListDataCell,\n NextPageLoading: DataListNextPageLoading,\n});\n"],"names":["jsx","DataListCell","Badge","cn","AgentIcon","WorkflowIcon","ToolsIcon","jsxs","DataListTextCell","DataListRoot","DataListTop","DataListTopCell","DataListSortableTopCell","DataListTopCellWithTooltip","DataListTopCellSmart","DataListRowWrapper","DataListRowButton","DataListRowLink","DataListSpacer","DataListNoMatch","DataListDateCell","DataListTimeCell","DataListNextPageLoading"],"mappings":"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"}
@@ -2,7 +2,7 @@ import { jsx, jsxs } from 'react/jsx-runtime';
2
2
  import { c as cn } from './cn-65Adrsfj.js';
3
3
  import { S as Spinner } from './spinner-ylbE0TJA.js';
4
4
  import { C as Card } from './Card-DmT57Pve.js';
5
- import { M as MetricsKpiCard } from './metrics-kpi-card-BrnFhFQm.js';
5
+ import { M as MetricsKpiCard } from './metrics-kpi-card-BVCuXeDa.js';
6
6
 
7
7
  function MetricsCardActions({ children, className }) {
8
8
  return /* @__PURE__ */ jsx("div", { className: cn("flex shrink-0 items-center gap-1", className), children });
@@ -36,7 +36,7 @@ function MetricsCardRoot({ children, className }) {
36
36
  Card,
37
37
  {
38
38
  className: cn(
39
- "grid min-h-72 min-w-80 flex-1 grid-rows-[4rem_1fr] gap-2 px-4 py-3 2xl:min-w-120 md:min-w-88 lg:min-w-sm xl:min-w-104",
39
+ "grid min-h-72 min-w-80 flex-1 grid-rows-[auto_1fr] gap-4 px-4 py-3 2xl:min-w-120 md:min-w-88 lg:min-w-sm xl:min-w-104",
40
40
  className
41
41
  ),
42
42
  children
@@ -45,9 +45,9 @@ function MetricsCardRoot({ children, className }) {
45
45
  }
46
46
 
47
47
  function MetricsCardSummary({ value, label, className }) {
48
- return /* @__PURE__ */ jsxs("div", { className: cn("grid content-start justify-end gap-1 text-right", className), children: [
49
- /* @__PURE__ */ jsx("span", { className: "text-subheading leading-none text-muted-foreground", children: value }),
50
- label && /* @__PURE__ */ jsx("span", { className: "text-body text-placeholder", children: label })
48
+ return /* @__PURE__ */ jsxs("div", { className: cn("text-right", className), children: [
49
+ /* @__PURE__ */ jsx("p", { className: "text-body text-muted-foreground tabular-nums", children: value }),
50
+ label && /* @__PURE__ */ jsx("p", { className: "mt-0.5 text-body text-placeholder", children: label })
51
51
  ] });
52
52
  }
53
53
 
@@ -56,7 +56,7 @@ function MetricsCardTitle({
56
56
  className,
57
57
  as: Tag = "h2"
58
58
  }) {
59
- return /* @__PURE__ */ jsx(Tag, { className: cn("text-body text-muted-foreground", className), children });
59
+ return /* @__PURE__ */ jsx(Tag, { className: cn("text-body text-foreground", className), children });
60
60
  }
61
61
 
62
62
  function MetricsCardTitleAndDescription(props) {
@@ -90,4 +90,4 @@ const MetricsCard = Object.assign(MetricsCardRoot, {
90
90
  });
91
91
 
92
92
  export { MetricsCard as M };
93
- //# sourceMappingURL=metrics-card-Bzm6m1dy.js.map
93
+ //# sourceMappingURL=metrics-card-C2RTi5Ew.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metrics-card-C2RTi5Ew.js","sources":["../src/ds/components/MetricsCard/metrics-card-actions.tsx","../src/ds/components/MetricsCard/metrics-card-content.tsx","../src/ds/components/MetricsCard/metrics-card-description.tsx","../src/ds/components/MetricsCard/metrics-card-error.tsx","../src/ds/components/MetricsCard/metrics-card-loading.tsx","../src/ds/components/MetricsCard/metrics-card-no-data.tsx","../src/ds/components/MetricsCard/metrics-card-root.tsx","../src/ds/components/MetricsCard/metrics-card-summary.tsx","../src/ds/components/MetricsCard/metrics-card-title.tsx","../src/ds/components/MetricsCard/metrics-card-title-and-description.tsx","../src/ds/components/MetricsCard/metrics-card-top-bar.tsx","../src/ds/components/MetricsCard/metrics-card.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport { cn } from '@/lib/utils';\n\n/** Container for icon buttons / small actions in the top bar of a MetricsCard,\n * placed alongside `TitleAndDescription` + `Summary`. */\nexport function MetricsCardActions({ children, className }: { children: ReactNode; className?: string }) {\n return <div className={cn('flex shrink-0 items-center gap-1', className)}>{children}</div>;\n}\n","import type { ReactNode } from 'react';\nimport { cn } from '@/lib/utils';\n\nexport function MetricsCardContent({ children, className }: { children: ReactNode; className?: string }) {\n return <div className={cn('overflow-x-auto', className)}>{children}</div>;\n}\n","import { cn } from '@/lib/utils';\n\nexport function MetricsCardDescription({ children, className }: { children: string; className?: string }) {\n return <p className={cn('mt-0.5 text-body text-placeholder', className)}>{children}</p>;\n}\n","import { cn } from '@/lib/utils';\n\nexport function MetricsCardError({\n message = 'Failed to load data',\n className,\n}: {\n message?: string;\n className?: string;\n}) {\n return (\n <div className={cn('flex flex-col items-center justify-center gap-3', className)}>\n <p className=\"text-caption text-accent2\">{message}</p>\n </div>\n );\n}\n","import { Spinner } from '@/ds/components/Spinner/spinner';\nimport { cn } from '@/lib/utils';\n\nexport function MetricsCardLoading({ className }: { className?: string }) {\n return (\n <div className={cn('flex items-center justify-center', className)}>\n <Spinner size=\"md\" variant=\"pulse\" className=\"text-placeholder\" />\n </div>\n );\n}\n","import { cn } from '@/lib/utils';\n\nexport function MetricsCardNoData({ message = 'No data yet', className }: { message?: string; className?: string }) {\n return (\n <div className={cn('flex h-full items-center justify-center', className)}>\n <p className=\"text-body text-placeholder\">{message}</p>\n </div>\n );\n}\n","import type { ReactNode } from 'react';\nimport { Card } from '@/ds/components/Card';\nimport { cn } from '@/lib/utils';\n\nexport function MetricsCardRoot({ children, className }: { children: ReactNode; className?: string }) {\n return (\n <Card\n className={cn(\n 'grid min-h-72 min-w-80 flex-1 grid-rows-[auto_1fr] gap-4 px-4 py-3 2xl:min-w-120 md:min-w-88 lg:min-w-sm xl:min-w-104',\n className,\n )}\n >\n {children}\n </Card>\n );\n}\n","import { cn } from '@/lib/utils';\n\nexport function MetricsCardSummary({ value, label, className }: { value: string; label?: string; className?: string }) {\n return (\n <div className={cn('text-right', className)}>\n <p className=\"text-body text-muted-foreground tabular-nums\">{value}</p>\n {label && <p className=\"mt-0.5 text-body text-placeholder\">{label}</p>}\n </div>\n );\n}\n","import { cn } from '@/lib/utils';\n\nexport function MetricsCardTitle({\n children,\n className,\n as: Tag = 'h2',\n}: {\n children: string;\n className?: string;\n as?: 'h2' | 'h3' | 'h4';\n}) {\n return <Tag className={cn('text-body text-foreground', className)}>{children}</Tag>;\n}\n","import type { ReactNode } from 'react';\n\nimport { MetricsCardDescription } from './metrics-card-description';\nimport { MetricsCardTitle } from './metrics-card-title';\n\ntype PropsWithTitleDescription = {\n title: string;\n description?: string;\n titleAs?: 'h2' | 'h3' | 'h4';\n children?: never;\n className?: string;\n};\n\ntype PropsWithChildren = {\n title?: never;\n description?: never;\n children: ReactNode;\n className?: string;\n};\n\nexport function MetricsCardTitleAndDescription(props: PropsWithTitleDescription | PropsWithChildren) {\n if ('children' in props) {\n return <div className={props.className}>{props.children}</div>;\n }\n\n const { title, description, titleAs } = props;\n\n return (\n <div className={props.className}>\n <MetricsCardTitle as={titleAs}>{title}</MetricsCardTitle>\n {description && <MetricsCardDescription>{description}</MetricsCardDescription>}\n </div>\n );\n}\n","import type { ReactNode } from 'react';\nimport { cn } from '@/lib/utils';\n\nexport function MetricsCardTopBar({ children, className }: { children: ReactNode; className?: string }) {\n return (\n <div className={cn('flex items-start gap-4 [&>:first-child]:min-w-0 [&>:first-child]:flex-1', className)}>\n {children}\n </div>\n );\n}\n","import { MetricsCardActions } from './metrics-card-actions';\nimport { MetricsCardContent } from './metrics-card-content';\nimport { MetricsCardDescription } from './metrics-card-description';\nimport { MetricsCardError } from './metrics-card-error';\nimport { MetricsCardLoading } from './metrics-card-loading';\nimport { MetricsCardNoData } from './metrics-card-no-data';\nimport { MetricsCardRoot } from './metrics-card-root';\nimport { MetricsCardSummary } from './metrics-card-summary';\nimport { MetricsCardTitle } from './metrics-card-title';\nimport { MetricsCardTitleAndDescription } from './metrics-card-title-and-description';\nimport { MetricsCardTopBar } from './metrics-card-top-bar';\nimport { MetricsKpiCard } from '@/ds/components/MetricsKpiCard';\n\nexport const MetricsCard = Object.assign(MetricsCardRoot, {\n Root: MetricsCardRoot,\n Kpi: MetricsKpiCard,\n TopBar: MetricsCardTopBar,\n Actions: MetricsCardActions,\n TitleAndDescription: MetricsCardTitleAndDescription,\n Title: MetricsCardTitle,\n Description: MetricsCardDescription,\n Summary: MetricsCardSummary,\n Loading: MetricsCardLoading,\n Error: MetricsCardError,\n Content: MetricsCardContent,\n NoData: MetricsCardNoData,\n});\n"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ const jsxRuntime = require('react/jsx-runtime');
4
4
  const utils_cn = require('./cn-DG0X1KEP.cjs');
5
5
  const spinner = require('./spinner-BCpN7LL9.cjs');
6
6
  const Card = require('./Card-BbwF20OW.cjs');
7
- const metricsKpiCard = require('./metrics-kpi-card-Bhb4R4z0.cjs');
7
+ const metricsKpiCard = require('./metrics-kpi-card-DoIeHfv6.cjs');
8
8
 
9
9
  function MetricsCardActions({ children, className }) {
10
10
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: utils_cn.cn("flex shrink-0 items-center gap-1", className), children });
@@ -38,7 +38,7 @@ function MetricsCardRoot({ children, className }) {
38
38
  Card.Card,
39
39
  {
40
40
  className: utils_cn.cn(
41
- "grid min-h-72 min-w-80 flex-1 grid-rows-[4rem_1fr] gap-2 px-4 py-3 2xl:min-w-120 md:min-w-88 lg:min-w-sm xl:min-w-104",
41
+ "grid min-h-72 min-w-80 flex-1 grid-rows-[auto_1fr] gap-4 px-4 py-3 2xl:min-w-120 md:min-w-88 lg:min-w-sm xl:min-w-104",
42
42
  className
43
43
  ),
44
44
  children
@@ -47,9 +47,9 @@ function MetricsCardRoot({ children, className }) {
47
47
  }
48
48
 
49
49
  function MetricsCardSummary({ value, label, className }) {
50
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: utils_cn.cn("grid content-start justify-end gap-1 text-right", className), children: [
51
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-subheading leading-none text-muted-foreground", children: value }),
52
- label && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-body text-placeholder", children: label })
50
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: utils_cn.cn("text-right", className), children: [
51
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-body text-muted-foreground tabular-nums", children: value }),
52
+ label && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-0.5 text-body text-placeholder", children: label })
53
53
  ] });
54
54
  }
55
55
 
@@ -58,7 +58,7 @@ function MetricsCardTitle({
58
58
  className,
59
59
  as: Tag = "h2"
60
60
  }) {
61
- return /* @__PURE__ */ jsxRuntime.jsx(Tag, { className: utils_cn.cn("text-body text-muted-foreground", className), children });
61
+ return /* @__PURE__ */ jsxRuntime.jsx(Tag, { className: utils_cn.cn("text-body text-foreground", className), children });
62
62
  }
63
63
 
64
64
  function MetricsCardTitleAndDescription(props) {
@@ -92,4 +92,4 @@ const MetricsCard = Object.assign(MetricsCardRoot, {
92
92
  });
93
93
 
94
94
  exports.MetricsCard = MetricsCard;
95
- //# sourceMappingURL=metrics-card-DCCHIG-z.cjs.map
95
+ //# sourceMappingURL=metrics-card-DzcVJTAN.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metrics-card-DzcVJTAN.cjs","sources":["../src/ds/components/MetricsCard/metrics-card-actions.tsx","../src/ds/components/MetricsCard/metrics-card-content.tsx","../src/ds/components/MetricsCard/metrics-card-description.tsx","../src/ds/components/MetricsCard/metrics-card-error.tsx","../src/ds/components/MetricsCard/metrics-card-loading.tsx","../src/ds/components/MetricsCard/metrics-card-no-data.tsx","../src/ds/components/MetricsCard/metrics-card-root.tsx","../src/ds/components/MetricsCard/metrics-card-summary.tsx","../src/ds/components/MetricsCard/metrics-card-title.tsx","../src/ds/components/MetricsCard/metrics-card-title-and-description.tsx","../src/ds/components/MetricsCard/metrics-card-top-bar.tsx","../src/ds/components/MetricsCard/metrics-card.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport { cn } from '@/lib/utils';\n\n/** Container for icon buttons / small actions in the top bar of a MetricsCard,\n * placed alongside `TitleAndDescription` + `Summary`. */\nexport function MetricsCardActions({ children, className }: { children: ReactNode; className?: string }) {\n return <div className={cn('flex shrink-0 items-center gap-1', className)}>{children}</div>;\n}\n","import type { ReactNode } from 'react';\nimport { cn } from '@/lib/utils';\n\nexport function MetricsCardContent({ children, className }: { children: ReactNode; className?: string }) {\n return <div className={cn('overflow-x-auto', className)}>{children}</div>;\n}\n","import { cn } from '@/lib/utils';\n\nexport function MetricsCardDescription({ children, className }: { children: string; className?: string }) {\n return <p className={cn('mt-0.5 text-body text-placeholder', className)}>{children}</p>;\n}\n","import { cn } from '@/lib/utils';\n\nexport function MetricsCardError({\n message = 'Failed to load data',\n className,\n}: {\n message?: string;\n className?: string;\n}) {\n return (\n <div className={cn('flex flex-col items-center justify-center gap-3', className)}>\n <p className=\"text-caption text-accent2\">{message}</p>\n </div>\n );\n}\n","import { Spinner } from '@/ds/components/Spinner/spinner';\nimport { cn } from '@/lib/utils';\n\nexport function MetricsCardLoading({ className }: { className?: string }) {\n return (\n <div className={cn('flex items-center justify-center', className)}>\n <Spinner size=\"md\" variant=\"pulse\" className=\"text-placeholder\" />\n </div>\n );\n}\n","import { cn } from '@/lib/utils';\n\nexport function MetricsCardNoData({ message = 'No data yet', className }: { message?: string; className?: string }) {\n return (\n <div className={cn('flex h-full items-center justify-center', className)}>\n <p className=\"text-body text-placeholder\">{message}</p>\n </div>\n );\n}\n","import type { ReactNode } from 'react';\nimport { Card } from '@/ds/components/Card';\nimport { cn } from '@/lib/utils';\n\nexport function MetricsCardRoot({ children, className }: { children: ReactNode; className?: string }) {\n return (\n <Card\n className={cn(\n 'grid min-h-72 min-w-80 flex-1 grid-rows-[auto_1fr] gap-4 px-4 py-3 2xl:min-w-120 md:min-w-88 lg:min-w-sm xl:min-w-104',\n className,\n )}\n >\n {children}\n </Card>\n );\n}\n","import { cn } from '@/lib/utils';\n\nexport function MetricsCardSummary({ value, label, className }: { value: string; label?: string; className?: string }) {\n return (\n <div className={cn('text-right', className)}>\n <p className=\"text-body text-muted-foreground tabular-nums\">{value}</p>\n {label && <p className=\"mt-0.5 text-body text-placeholder\">{label}</p>}\n </div>\n );\n}\n","import { cn } from '@/lib/utils';\n\nexport function MetricsCardTitle({\n children,\n className,\n as: Tag = 'h2',\n}: {\n children: string;\n className?: string;\n as?: 'h2' | 'h3' | 'h4';\n}) {\n return <Tag className={cn('text-body text-foreground', className)}>{children}</Tag>;\n}\n","import type { ReactNode } from 'react';\n\nimport { MetricsCardDescription } from './metrics-card-description';\nimport { MetricsCardTitle } from './metrics-card-title';\n\ntype PropsWithTitleDescription = {\n title: string;\n description?: string;\n titleAs?: 'h2' | 'h3' | 'h4';\n children?: never;\n className?: string;\n};\n\ntype PropsWithChildren = {\n title?: never;\n description?: never;\n children: ReactNode;\n className?: string;\n};\n\nexport function MetricsCardTitleAndDescription(props: PropsWithTitleDescription | PropsWithChildren) {\n if ('children' in props) {\n return <div className={props.className}>{props.children}</div>;\n }\n\n const { title, description, titleAs } = props;\n\n return (\n <div className={props.className}>\n <MetricsCardTitle as={titleAs}>{title}</MetricsCardTitle>\n {description && <MetricsCardDescription>{description}</MetricsCardDescription>}\n </div>\n );\n}\n","import type { ReactNode } from 'react';\nimport { cn } from '@/lib/utils';\n\nexport function MetricsCardTopBar({ children, className }: { children: ReactNode; className?: string }) {\n return (\n <div className={cn('flex items-start gap-4 [&>:first-child]:min-w-0 [&>:first-child]:flex-1', className)}>\n {children}\n </div>\n );\n}\n","import { MetricsCardActions } from './metrics-card-actions';\nimport { MetricsCardContent } from './metrics-card-content';\nimport { MetricsCardDescription } from './metrics-card-description';\nimport { MetricsCardError } from './metrics-card-error';\nimport { MetricsCardLoading } from './metrics-card-loading';\nimport { MetricsCardNoData } from './metrics-card-no-data';\nimport { MetricsCardRoot } from './metrics-card-root';\nimport { MetricsCardSummary } from './metrics-card-summary';\nimport { MetricsCardTitle } from './metrics-card-title';\nimport { MetricsCardTitleAndDescription } from './metrics-card-title-and-description';\nimport { MetricsCardTopBar } from './metrics-card-top-bar';\nimport { MetricsKpiCard } from '@/ds/components/MetricsKpiCard';\n\nexport const MetricsCard = Object.assign(MetricsCardRoot, {\n Root: MetricsCardRoot,\n Kpi: MetricsKpiCard,\n TopBar: MetricsCardTopBar,\n Actions: MetricsCardActions,\n TitleAndDescription: MetricsCardTitleAndDescription,\n Title: MetricsCardTitle,\n Description: MetricsCardDescription,\n Summary: MetricsCardSummary,\n Loading: MetricsCardLoading,\n Error: MetricsCardError,\n Content: MetricsCardContent,\n NoData: MetricsCardNoData,\n});\n"],"names":["cn","jsx","Spinner","Card","jsxs","MetricsKpiCard"],"mappings":";;;;;;;;AAKO,SAAS,kBAAA,CAAmB,EAAE,QAAA,EAAU,SAAA,EAAU,EAAgD;AACvG,EAAA,sCAAQ,KAAA,EAAA,EAAI,SAAA,EAAWA,YAAG,kCAAA,EAAoC,SAAS,GAAI,QAAA,EAAS,CAAA;AACtF;;ACJO,SAAS,kBAAA,CAAmB,EAAE,QAAA,EAAU,SAAA,EAAU,EAAgD;AACvG,EAAA,sCAAQ,KAAA,EAAA,EAAI,SAAA,EAAWA,YAAG,iBAAA,EAAmB,SAAS,GAAI,QAAA,EAAS,CAAA;AACrE;;ACHO,SAAS,sBAAA,CAAuB,EAAE,QAAA,EAAU,SAAA,EAAU,EAA6C;AACxG,EAAA,sCAAQ,GAAA,EAAA,EAAE,SAAA,EAAWA,YAAG,mCAAA,EAAqC,SAAS,GAAI,QAAA,EAAS,CAAA;AACrF;;ACFO,SAAS,gBAAA,CAAiB;AAAA,EAC/B,OAAA,GAAU,qBAAA;AAAA,EACV;AACF,CAAA,EAGG;AACD,EAAA,uBACEC,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAWD,WAAA,CAAG,iDAAA,EAAmD,SAAS,CAAA,EAC7E,QAAA,kBAAAC,cAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,2BAAA,EAA6B,QAAA,EAAA,OAAA,EAAQ,CAAA,EACpD,CAAA;AAEJ;;ACXO,SAAS,kBAAA,CAAmB,EAAE,SAAA,EAAU,EAA2B;AACxE,EAAA,uBACEA,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAWD,WAAA,CAAG,oCAAoC,SAAS,CAAA,EAC9D,QAAA,kBAAAC,cAAA,CAACC,eAAA,EAAA,EAAQ,MAAK,IAAA,EAAK,OAAA,EAAQ,OAAA,EAAQ,SAAA,EAAU,oBAAmB,CAAA,EAClE,CAAA;AAEJ;;ACPO,SAAS,iBAAA,CAAkB,EAAE,OAAA,GAAU,aAAA,EAAe,WAAU,EAA6C;AAClH,EAAA,uBACED,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAWD,WAAA,CAAG,yCAAA,EAA2C,SAAS,CAAA,EACrE,QAAA,kBAAAC,cAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,4BAAA,EAA8B,QAAA,EAAA,OAAA,EAAQ,CAAA,EACrD,CAAA;AAEJ;;ACJO,SAAS,eAAA,CAAgB,EAAE,QAAA,EAAU,SAAA,EAAU,EAAgD;AACpG,EAAA,uBACEA,cAAA;AAAA,IAACE,SAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAWH,WAAA;AAAA,QACT,uHAAA;AAAA,QACA;AAAA,OACF;AAAA,MAEC;AAAA;AAAA,GACH;AAEJ;;ACbO,SAAS,kBAAA,CAAmB,EAAE,KAAA,EAAO,KAAA,EAAO,WAAU,EAA0D;AACrH,EAAA,uCACG,KAAA,EAAA,EAAI,SAAA,EAAWA,WAAA,CAAG,YAAA,EAAc,SAAS,CAAA,EACxC,QAAA,EAAA;AAAA,oBAAAC,cAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,8CAAA,EAAgD,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,IAClE,KAAA,oBAASA,cAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,qCAAqC,QAAA,EAAA,KAAA,EAAM;AAAA,GAAA,EACpE,CAAA;AAEJ;;ACPO,SAAS,gBAAA,CAAiB;AAAA,EAC/B,QAAA;AAAA,EACA,SAAA;AAAA,EACA,IAAI,GAAA,GAAM;AACZ,CAAA,EAIG;AACD,EAAA,sCAAQ,GAAA,EAAA,EAAI,SAAA,EAAWD,YAAG,2BAAA,EAA6B,SAAS,GAAI,QAAA,EAAS,CAAA;AAC/E;;ACQO,SAAS,+BAA+B,KAAA,EAAsD;AACnG,EAAA,IAAI,cAAc,KAAA,EAAO;AACvB,IAAA,sCAAQ,KAAA,EAAA,EAAI,SAAA,EAAW,KAAA,CAAM,SAAA,EAAY,gBAAM,QAAA,EAAS,CAAA;AAAA,EAC1D;AAEA,EAAA,MAAM,EAAE,KAAA,EAAO,WAAA,EAAa,OAAA,EAAQ,GAAI,KAAA;AAExC,EAAA,uBACEI,eAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,KAAA,CAAM,SAAA,EACpB,QAAA,EAAA;AAAA,oBAAAH,cAAA,CAAC,gBAAA,EAAA,EAAiB,EAAA,EAAI,OAAA,EAAU,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,IACrC,WAAA,oBAAeA,cAAA,CAAC,sBAAA,EAAA,EAAwB,QAAA,EAAA,WAAA,EAAY;AAAA,GAAA,EACvD,CAAA;AAEJ;;AC9BO,SAAS,iBAAA,CAAkB,EAAE,QAAA,EAAU,SAAA,EAAU,EAAgD;AACtG,EAAA,sCACG,KAAA,EAAA,EAAI,SAAA,EAAWD,YAAG,yEAAA,EAA2E,SAAS,GACpG,QAAA,EACH,CAAA;AAEJ;;ACIO,MAAM,WAAA,GAAc,MAAA,CAAO,MAAA,CAAO,eAAA,EAAiB;AAAA,EACxD,IAAA,EAAM,eAAA;AAAA,EACN,GAAA,EAAKK,6BAAA;AAAA,EACL,MAAA,EAAQ,iBAAA;AAAA,EACR,OAAA,EAAS,kBAAA;AAAA,EACT,mBAAA,EAAqB,8BAAA;AAAA,EACrB,KAAA,EAAO,gBAAA;AAAA,EACP,WAAA,EAAa,sBAAA;AAAA,EACb,OAAA,EAAS,kBAAA;AAAA,EACT,OAAA,EAAS,kBAAA;AAAA,EACT,KAAA,EAAO,gBAAA;AAAA,EACP,OAAA,EAAS,kBAAA;AAAA,EACT,MAAA,EAAQ;AACV,CAAC;;;;"}