@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
package/README.md CHANGED
@@ -54,6 +54,68 @@ A field in an error state sets `--field-rim` and `--field-rim-focus` to `--destr
54
54
 
55
55
  If your app generates additional semantic utilities, import `@mastra/playground-ui/theme.css` into its Tailwind stylesheet so Tailwind can read the `@theme inline` mappings.
56
56
 
57
+ ### Typography
58
+
59
+ Text uses roles, not sizes. A role such as `body-sm` or `caption` sets size, line height, weight, and tracking together. Render text with `Txt`, or use the matching `text-<role>` utility inside a component's own markup.
60
+
61
+ ```tsx
62
+ import { Txt } from '@mastra/playground-ui/components/Txt';
63
+
64
+ <Txt variant="body-sm" tone="muted">
65
+ Last run
66
+ </Txt>;
67
+ ```
68
+
69
+ #### Monospace
70
+
71
+ Monospace is a typeface, not another role. `font="mono"` swaps the family to `--font-mono` and keeps the role's size, line height, and weight, so a mono value lines up with the proportional text around it.
72
+
73
+ ```tsx
74
+ <Txt variant="caption" font="mono" tone="muted">
75
+ run_01JQX8K2M4
76
+ </Txt>
77
+ ```
78
+
79
+ | Use mono for | Keep in the body face |
80
+ | -------------------------------------------------- | ----------------------------------------- |
81
+ | Model and resource IDs, versions, and hashes | Labels, field names, and column headers |
82
+ | Timestamps and durations: `Sep 23, 12:42`, `412ms` | Counts, costs, scores, and percentages |
83
+ | Log lines | Headings and page titles |
84
+ | Values a user copies or compares by character | Status text and badges that name a state |
85
+ | | Prose, descriptions, and empty-state copy |
86
+
87
+ Time is mono: a timestamp marks a moment and a duration measures one, and both are machine values a user compares digit by digit. Other numbers (counts, costs, scores, percentages) stay in the body face; add `tabular-nums` where their digits should line up, such as table columns. Data visualization is the exception: KPI values, chart axes, and chart tooltips stay in the body face with `tabular-nums`, even for timestamps and durations, so a row of KPIs or a set of charts reads in one face.
88
+
89
+ Mono pairs with the text roles: `body` for logs, `body-sm` for values in tables and fields, `caption` for secondary identifiers, and `meta` for compact values such as versions. Heading roles stay proportional.
90
+
91
+ Product code never writes the `font-mono` class, and lint rejects it outside the design system. Use `Txt font="mono"` for identifiers, timestamps, and durations, `InlineCode` or `CodeBlock` for code, and `tabular-nums` for numbers. A raw `<pre>` or `<code>` element is already monospace.
92
+
93
+ `--font-mono` defaults to the system monospace stack. Override it in an unlayered rule in your own CSS to use a product face, and every mono value follows.
94
+
95
+ At the same font size, a monospace face usually looks larger than the body face because its lowercase letters are taller. Set `--font-mono-size-adjust` to the body face's x-height ratio and mono text scales to match it. Measure the ratio for your body face; `0.508` is Mona Sans. Keycaps (`kbd`) keep their full size, because they are single capitals and x-height matching would only shrink them.
96
+
97
+ ```css
98
+ :root {
99
+ --font-mono: 'JetBrains Mono', ui-monospace, monospace;
100
+ --font-mono-size-adjust: ex-height 0.508;
101
+ }
102
+ ```
103
+
104
+ #### Code
105
+
106
+ Code is always marked as code, never plain mono text. Use `InlineCode` for a snippet, package name, variable, or command inside a sentence. It takes the size and color of the text around it, so it works in muted copy and inside a `Notice`. Use `CodeBlock` for anything longer than one line, and pass `lang` so it is syntax highlighted.
107
+
108
+ ```tsx
109
+ import { CodeBlock } from '@mastra/playground-ui/components/CodeBlock';
110
+ import { InlineCode } from '@mastra/playground-ui/components/InlineCode';
111
+
112
+ <Txt variant="body-sm" tone="muted">
113
+ Set <InlineCode>OPENAI_API_KEY</InlineCode> to use this model.
114
+ </Txt>
115
+
116
+ <CodeBlock lang="ts" code={snippet} />
117
+ ```
118
+
57
119
  ## Documentation
58
120
 
59
121
  This README is the package guide. Import the global stylesheet once, then use the package's explicit `components/*`, `domains/*`, `hooks/*`, `icons/*`, `primitives/*`, `store/*`, `tokens`, and `utils/*` entry points rather than a package-root import.
@@ -64,7 +64,7 @@ const badgeSizeStyles = {
64
64
  indicator: "size-1"
65
65
  },
66
66
  md: {
67
- badge: "h-5 gap-1 text-column",
67
+ badge: "h-5 gap-1 text-column tracking-normal",
68
68
  withoutLeadingVisual: "px-2",
69
69
  withLeadingVisual: "pl-1.5 pr-2",
70
70
  indicator: "size-1.5"
@@ -120,4 +120,4 @@ const Badge = ({
120
120
  };
121
121
 
122
122
  export { Badge as B };
123
- //# sourceMappingURL=Badge-TD55_qZJ.js.map
123
+ //# sourceMappingURL=Badge-Bzn8Z-_I.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Badge-Bzn8Z-_I.js","sources":["../src/ds/components/Badge/Badge.tsx"],"sourcesContent":["import type { HTMLAttributes, ReactNode } from 'react';\n\nimport { Icon } from '../../icons/Icon';\nimport { transitions } from '@/ds/primitives/transitions';\nimport { cn } from '@/lib/utils';\n\nexport type BadgeEmphasis = 'default' | 'muted';\nexport type BadgeIndicator = 'dot' | 'pulse';\n\ntype BadgeToneStyles = Record<BadgeEmphasis, string> & { indicator: string };\n\nconst badgeToneStyles = {\n neutral: {\n default: 'bg-fill text-badge-neutral-fg',\n muted: 'bg-fill-subtle text-badge-neutral-fg',\n indicator: 'bg-muted-foreground',\n },\n green: {\n default: 'bg-badge-green/20 text-badge-green-fg',\n muted: 'bg-badge-green/10 text-badge-green-fg',\n indicator: 'bg-badge-green',\n },\n red: {\n default: 'bg-badge-red/20 text-badge-red-fg',\n muted: 'bg-badge-red/10 text-badge-red-fg',\n indicator: 'bg-badge-red',\n },\n blue: {\n default: 'bg-badge-blue/20 text-badge-blue-fg',\n muted: 'bg-badge-blue/10 text-badge-blue-fg',\n indicator: 'bg-badge-blue',\n },\n yellow: {\n default: 'bg-badge-yellow/20 text-badge-yellow-fg',\n muted: 'bg-badge-yellow/10 text-badge-yellow-fg',\n indicator: 'bg-badge-yellow',\n },\n purple: {\n default: 'bg-badge-purple/20 text-badge-purple-fg',\n muted: 'bg-badge-purple/10 text-badge-purple-fg',\n indicator: 'bg-badge-purple',\n },\n orange: {\n default: 'bg-badge-orange/20 text-badge-orange-fg',\n muted: 'bg-badge-orange/10 text-badge-orange-fg',\n indicator: 'bg-badge-orange',\n },\n cyan: {\n default: 'bg-badge-cyan/20 text-badge-cyan-fg',\n muted: 'bg-badge-cyan/10 text-badge-cyan-fg',\n indicator: 'bg-badge-cyan',\n },\n pink: {\n default: 'bg-badge-pink/20 text-badge-pink-fg',\n muted: 'bg-badge-pink/10 text-badge-pink-fg',\n indicator: 'bg-badge-pink',\n },\n} satisfies Record<string, BadgeToneStyles>;\n\nexport type BadgeVariant = keyof typeof badgeToneStyles;\n\nconst badgeSizeStyles = {\n xs: {\n badge: 'h-[18px] gap-0.5 text-meta',\n withoutLeadingVisual: 'px-1.5',\n withLeadingVisual: 'pl-1 pr-1.5',\n indicator: 'size-1',\n },\n sm: {\n badge: 'h-5 gap-1 text-meta',\n withoutLeadingVisual: 'px-1.5',\n withLeadingVisual: 'px-1.5',\n indicator: 'size-1',\n },\n md: {\n badge: 'h-5 gap-1 text-column tracking-normal',\n withoutLeadingVisual: 'px-2',\n withLeadingVisual: 'pl-1.5 pr-2',\n indicator: 'size-1.5',\n },\n};\n\nexport type BadgeSize = keyof typeof badgeSizeStyles;\n\ntype BadgeLeadingVisual = { icon?: ReactNode; indicator?: never } | { icon?: never; indicator?: BadgeIndicator };\n\nexport type BadgeProps = HTMLAttributes<HTMLSpanElement> &\n BadgeLeadingVisual & {\n variant?: BadgeVariant;\n emphasis?: BadgeEmphasis;\n size?: BadgeSize;\n children?: ReactNode;\n };\n\nexport const Badge = ({\n icon,\n indicator,\n variant = 'neutral',\n emphasis = 'default',\n size = 'md',\n className,\n children,\n ...props\n}: BadgeProps) => {\n const hasIcon = Boolean(icon);\n const withLeadingVisual = hasIcon || indicator !== undefined;\n const sizeStyles = badgeSizeStyles[size];\n const paddingClass = withLeadingVisual ? sizeStyles.withLeadingVisual : sizeStyles.withoutLeadingVisual;\n\n return (\n <span\n className={cn(\n 'inline-flex w-fit max-w-full shrink-0 items-center rounded-[7px]',\n 'inset-ring-1 inset-ring-current/5',\n 'inset-shadow-xs inset-shadow-white/5 dark:inset-shadow-[0_3px_10px_-2px_white] dark:inset-shadow-white/7',\n 'dark:bg-linear-to-b dark:from-white/3 dark:to-white/0',\n badgeToneStyles[variant][emphasis],\n sizeStyles.badge,\n paddingClass,\n transitions.colors,\n className,\n )}\n {...props}\n >\n {indicator !== undefined ? (\n <span\n aria-hidden=\"true\"\n className={cn(\n 'shrink-0 rounded-full',\n badgeToneStyles[variant].indicator,\n sizeStyles.indicator,\n indicator === 'pulse' && 'motion-safe:animate-pulse motion-reduce:animate-none',\n )}\n />\n ) : null}\n {hasIcon ? <Icon size=\"xs\">{icon}</Icon> : null}\n {children}\n </span>\n );\n};\n"],"names":[],"mappings":"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"}
@@ -66,7 +66,7 @@ const badgeSizeStyles = {
66
66
  indicator: "size-1"
67
67
  },
68
68
  md: {
69
- badge: "h-5 gap-1 text-column",
69
+ badge: "h-5 gap-1 text-column tracking-normal",
70
70
  withoutLeadingVisual: "px-2",
71
71
  withLeadingVisual: "pl-1.5 pr-2",
72
72
  indicator: "size-1.5"
@@ -122,4 +122,4 @@ const Badge = ({
122
122
  };
123
123
 
124
124
  exports.Badge = Badge;
125
- //# sourceMappingURL=Badge-BEeYtjmv.cjs.map
125
+ //# sourceMappingURL=Badge-DFNxcz-r.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Badge-DFNxcz-r.cjs","sources":["../src/ds/components/Badge/Badge.tsx"],"sourcesContent":["import type { HTMLAttributes, ReactNode } from 'react';\n\nimport { Icon } from '../../icons/Icon';\nimport { transitions } from '@/ds/primitives/transitions';\nimport { cn } from '@/lib/utils';\n\nexport type BadgeEmphasis = 'default' | 'muted';\nexport type BadgeIndicator = 'dot' | 'pulse';\n\ntype BadgeToneStyles = Record<BadgeEmphasis, string> & { indicator: string };\n\nconst badgeToneStyles = {\n neutral: {\n default: 'bg-fill text-badge-neutral-fg',\n muted: 'bg-fill-subtle text-badge-neutral-fg',\n indicator: 'bg-muted-foreground',\n },\n green: {\n default: 'bg-badge-green/20 text-badge-green-fg',\n muted: 'bg-badge-green/10 text-badge-green-fg',\n indicator: 'bg-badge-green',\n },\n red: {\n default: 'bg-badge-red/20 text-badge-red-fg',\n muted: 'bg-badge-red/10 text-badge-red-fg',\n indicator: 'bg-badge-red',\n },\n blue: {\n default: 'bg-badge-blue/20 text-badge-blue-fg',\n muted: 'bg-badge-blue/10 text-badge-blue-fg',\n indicator: 'bg-badge-blue',\n },\n yellow: {\n default: 'bg-badge-yellow/20 text-badge-yellow-fg',\n muted: 'bg-badge-yellow/10 text-badge-yellow-fg',\n indicator: 'bg-badge-yellow',\n },\n purple: {\n default: 'bg-badge-purple/20 text-badge-purple-fg',\n muted: 'bg-badge-purple/10 text-badge-purple-fg',\n indicator: 'bg-badge-purple',\n },\n orange: {\n default: 'bg-badge-orange/20 text-badge-orange-fg',\n muted: 'bg-badge-orange/10 text-badge-orange-fg',\n indicator: 'bg-badge-orange',\n },\n cyan: {\n default: 'bg-badge-cyan/20 text-badge-cyan-fg',\n muted: 'bg-badge-cyan/10 text-badge-cyan-fg',\n indicator: 'bg-badge-cyan',\n },\n pink: {\n default: 'bg-badge-pink/20 text-badge-pink-fg',\n muted: 'bg-badge-pink/10 text-badge-pink-fg',\n indicator: 'bg-badge-pink',\n },\n} satisfies Record<string, BadgeToneStyles>;\n\nexport type BadgeVariant = keyof typeof badgeToneStyles;\n\nconst badgeSizeStyles = {\n xs: {\n badge: 'h-[18px] gap-0.5 text-meta',\n withoutLeadingVisual: 'px-1.5',\n withLeadingVisual: 'pl-1 pr-1.5',\n indicator: 'size-1',\n },\n sm: {\n badge: 'h-5 gap-1 text-meta',\n withoutLeadingVisual: 'px-1.5',\n withLeadingVisual: 'px-1.5',\n indicator: 'size-1',\n },\n md: {\n badge: 'h-5 gap-1 text-column tracking-normal',\n withoutLeadingVisual: 'px-2',\n withLeadingVisual: 'pl-1.5 pr-2',\n indicator: 'size-1.5',\n },\n};\n\nexport type BadgeSize = keyof typeof badgeSizeStyles;\n\ntype BadgeLeadingVisual = { icon?: ReactNode; indicator?: never } | { icon?: never; indicator?: BadgeIndicator };\n\nexport type BadgeProps = HTMLAttributes<HTMLSpanElement> &\n BadgeLeadingVisual & {\n variant?: BadgeVariant;\n emphasis?: BadgeEmphasis;\n size?: BadgeSize;\n children?: ReactNode;\n };\n\nexport const Badge = ({\n icon,\n indicator,\n variant = 'neutral',\n emphasis = 'default',\n size = 'md',\n className,\n children,\n ...props\n}: BadgeProps) => {\n const hasIcon = Boolean(icon);\n const withLeadingVisual = hasIcon || indicator !== undefined;\n const sizeStyles = badgeSizeStyles[size];\n const paddingClass = withLeadingVisual ? sizeStyles.withLeadingVisual : sizeStyles.withoutLeadingVisual;\n\n return (\n <span\n className={cn(\n 'inline-flex w-fit max-w-full shrink-0 items-center rounded-[7px]',\n 'inset-ring-1 inset-ring-current/5',\n 'inset-shadow-xs inset-shadow-white/5 dark:inset-shadow-[0_3px_10px_-2px_white] dark:inset-shadow-white/7',\n 'dark:bg-linear-to-b dark:from-white/3 dark:to-white/0',\n badgeToneStyles[variant][emphasis],\n sizeStyles.badge,\n paddingClass,\n transitions.colors,\n className,\n )}\n {...props}\n >\n {indicator !== undefined ? (\n <span\n aria-hidden=\"true\"\n className={cn(\n 'shrink-0 rounded-full',\n badgeToneStyles[variant].indicator,\n sizeStyles.indicator,\n indicator === 'pulse' && 'motion-safe:animate-pulse motion-reduce:animate-none',\n )}\n />\n ) : null}\n {hasIcon ? <Icon size=\"xs\">{icon}</Icon> : null}\n {children}\n </span>\n );\n};\n"],"names":["jsxs","cn","transitions","jsx","Icon"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
- import { T as Txt } from './Txt-DTh3Pa_a.js';
2
+ import { T as Txt } from './Txt-BP1SRHmL.js';
3
3
  import { c as cn } from './cn-65Adrsfj.js';
4
4
 
5
5
  const Header = ({ children, border = true, className }) => {
@@ -28,4 +28,4 @@ const HeaderGroup = ({ children }) => {
28
28
  };
29
29
 
30
30
  export { Header as H, HeaderAction as a, HeaderGroup as b, HeaderTitle as c };
31
- //# sourceMappingURL=Header-BVnFQlzE.js.map
31
+ //# sourceMappingURL=Header-hTHhO02b.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Header-BVnFQlzE.js","sources":["../src/ds/components/Header/Header.tsx"],"sourcesContent":["import React from 'react';\n\nimport { Txt } from '../Txt';\nimport { cn } from '@/lib/utils';\n\nexport interface HeaderProps {\n children?: React.ReactNode;\n border?: boolean;\n className?: string;\n}\n\nexport const Header = ({ children, border = true, className }: HeaderProps) => {\n return (\n <header\n className={cn(\n 'z-50 flex h-header-default w-full items-center gap-2 bg-transparent px-2',\n {\n 'border-b border-border': border,\n },\n className,\n )}\n >\n {children}\n </header>\n );\n};\n\nexport const HeaderTitle = ({ children }: HeaderProps) => {\n return (\n <Txt as=\"h1\" variant=\"body\" tone=\"ink\" className=\"flex items-center gap-2\">\n {children}\n </Txt>\n );\n};\n\nexport const HeaderAction = ({ children }: HeaderProps) => {\n return <div className=\"ml-auto flex items-center gap-3\">{children}</div>;\n};\n\nexport const HeaderGroup = ({ children }: HeaderProps) => {\n return <div className=\"flex items-center gap-2\">{children}</div>;\n};\n"],"names":[],"mappings":";;;;AAWO,MAAM,SAAS,CAAC,EAAE,UAAU,MAAA,GAAS,IAAA,EAAM,WAAU,KAAmB;AAC7E,EAAA,uBACE,GAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA;AAAA,QACT,0EAAA;AAAA,QACA;AAAA,UACE,wBAAA,EAA0B;AAAA,SAC5B;AAAA,QACA;AAAA,OACF;AAAA,MAEC;AAAA;AAAA,GACH;AAEJ;AAEO,MAAM,WAAA,GAAc,CAAC,EAAE,QAAA,EAAS,KAAmB;AACxD,EAAA,uBACE,GAAA,CAAC,GAAA,EAAA,EAAI,EAAA,EAAG,IAAA,EAAK,OAAA,EAAQ,QAAO,IAAA,EAAK,KAAA,EAAM,SAAA,EAAU,yBAAA,EAC9C,QAAA,EACH,CAAA;AAEJ;AAEO,MAAM,YAAA,GAAe,CAAC,EAAE,QAAA,EAAS,KAAmB;AACzD,EAAA,uBAAO,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,iCAAA,EAAmC,QAAA,EAAS,CAAA;AACpE;AAEO,MAAM,WAAA,GAAc,CAAC,EAAE,QAAA,EAAS,KAAmB;AACxD,EAAA,uBAAO,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,yBAAA,EAA2B,QAAA,EAAS,CAAA;AAC5D;;;;"}
1
+ {"version":3,"file":"Header-hTHhO02b.js","sources":["../src/ds/components/Header/Header.tsx"],"sourcesContent":["import React from 'react';\n\nimport { Txt } from '../Txt';\nimport { cn } from '@/lib/utils';\n\nexport interface HeaderProps {\n children?: React.ReactNode;\n border?: boolean;\n className?: string;\n}\n\nexport const Header = ({ children, border = true, className }: HeaderProps) => {\n return (\n <header\n className={cn(\n 'z-50 flex h-header-default w-full items-center gap-2 bg-transparent px-2',\n {\n 'border-b border-border': border,\n },\n className,\n )}\n >\n {children}\n </header>\n );\n};\n\nexport const HeaderTitle = ({ children }: HeaderProps) => {\n return (\n <Txt as=\"h1\" variant=\"body\" tone=\"ink\" className=\"flex items-center gap-2\">\n {children}\n </Txt>\n );\n};\n\nexport const HeaderAction = ({ children }: HeaderProps) => {\n return <div className=\"ml-auto flex items-center gap-3\">{children}</div>;\n};\n\nexport const HeaderGroup = ({ children }: HeaderProps) => {\n return <div className=\"flex items-center gap-2\">{children}</div>;\n};\n"],"names":[],"mappings":";;;;AAWO,MAAM,SAAS,CAAC,EAAE,UAAU,MAAA,GAAS,IAAA,EAAM,WAAU,KAAmB;AAC7E,EAAA,uBACE,GAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA;AAAA,QACT,0EAAA;AAAA,QACA;AAAA,UACE,wBAAA,EAA0B;AAAA,SAC5B;AAAA,QACA;AAAA,OACF;AAAA,MAEC;AAAA;AAAA,GACH;AAEJ;AAEO,MAAM,WAAA,GAAc,CAAC,EAAE,QAAA,EAAS,KAAmB;AACxD,EAAA,uBACE,GAAA,CAAC,GAAA,EAAA,EAAI,EAAA,EAAG,IAAA,EAAK,OAAA,EAAQ,QAAO,IAAA,EAAK,KAAA,EAAM,SAAA,EAAU,yBAAA,EAC9C,QAAA,EACH,CAAA;AAEJ;AAEO,MAAM,YAAA,GAAe,CAAC,EAAE,QAAA,EAAS,KAAmB;AACzD,EAAA,uBAAO,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,iCAAA,EAAmC,QAAA,EAAS,CAAA;AACpE;AAEO,MAAM,WAAA,GAAc,CAAC,EAAE,QAAA,EAAS,KAAmB;AACxD,EAAA,uBAAO,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,yBAAA,EAA2B,QAAA,EAAS,CAAA;AAC5D;;;;"}
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  const jsxRuntime = require('react/jsx-runtime');
4
- const Txt = require('./Txt-B4-2nLaI.cjs');
4
+ const Txt = require('./Txt-DPmEpNbp.cjs');
5
5
  const utils_cn = require('./cn-DG0X1KEP.cjs');
6
6
 
7
7
  const Header = ({ children, border = true, className }) => {
@@ -33,4 +33,4 @@ exports.Header = Header;
33
33
  exports.HeaderAction = HeaderAction;
34
34
  exports.HeaderGroup = HeaderGroup;
35
35
  exports.HeaderTitle = HeaderTitle;
36
- //# sourceMappingURL=Header-CGjhJ0nQ.cjs.map
36
+ //# sourceMappingURL=Header-y51Sfo3G.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Header-CGjhJ0nQ.cjs","sources":["../src/ds/components/Header/Header.tsx"],"sourcesContent":["import React from 'react';\n\nimport { Txt } from '../Txt';\nimport { cn } from '@/lib/utils';\n\nexport interface HeaderProps {\n children?: React.ReactNode;\n border?: boolean;\n className?: string;\n}\n\nexport const Header = ({ children, border = true, className }: HeaderProps) => {\n return (\n <header\n className={cn(\n 'z-50 flex h-header-default w-full items-center gap-2 bg-transparent px-2',\n {\n 'border-b border-border': border,\n },\n className,\n )}\n >\n {children}\n </header>\n );\n};\n\nexport const HeaderTitle = ({ children }: HeaderProps) => {\n return (\n <Txt as=\"h1\" variant=\"body\" tone=\"ink\" className=\"flex items-center gap-2\">\n {children}\n </Txt>\n );\n};\n\nexport const HeaderAction = ({ children }: HeaderProps) => {\n return <div className=\"ml-auto flex items-center gap-3\">{children}</div>;\n};\n\nexport const HeaderGroup = ({ children }: HeaderProps) => {\n return <div className=\"flex items-center gap-2\">{children}</div>;\n};\n"],"names":["jsx","cn","Txt"],"mappings":";;;;;;AAWO,MAAM,SAAS,CAAC,EAAE,UAAU,MAAA,GAAS,IAAA,EAAM,WAAU,KAAmB;AAC7E,EAAA,uBACEA,cAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAWC,WAAA;AAAA,QACT,0EAAA;AAAA,QACA;AAAA,UACE,wBAAA,EAA0B;AAAA,SAC5B;AAAA,QACA;AAAA,OACF;AAAA,MAEC;AAAA;AAAA,GACH;AAEJ;AAEO,MAAM,WAAA,GAAc,CAAC,EAAE,QAAA,EAAS,KAAmB;AACxD,EAAA,uBACED,cAAA,CAACE,OAAA,EAAA,EAAI,EAAA,EAAG,IAAA,EAAK,OAAA,EAAQ,QAAO,IAAA,EAAK,KAAA,EAAM,SAAA,EAAU,yBAAA,EAC9C,QAAA,EACH,CAAA;AAEJ;AAEO,MAAM,YAAA,GAAe,CAAC,EAAE,QAAA,EAAS,KAAmB;AACzD,EAAA,uBAAOF,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,iCAAA,EAAmC,QAAA,EAAS,CAAA;AACpE;AAEO,MAAM,WAAA,GAAc,CAAC,EAAE,QAAA,EAAS,KAAmB;AACxD,EAAA,uBAAOA,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,yBAAA,EAA2B,QAAA,EAAS,CAAA;AAC5D;;;;;;;"}
1
+ {"version":3,"file":"Header-y51Sfo3G.cjs","sources":["../src/ds/components/Header/Header.tsx"],"sourcesContent":["import React from 'react';\n\nimport { Txt } from '../Txt';\nimport { cn } from '@/lib/utils';\n\nexport interface HeaderProps {\n children?: React.ReactNode;\n border?: boolean;\n className?: string;\n}\n\nexport const Header = ({ children, border = true, className }: HeaderProps) => {\n return (\n <header\n className={cn(\n 'z-50 flex h-header-default w-full items-center gap-2 bg-transparent px-2',\n {\n 'border-b border-border': border,\n },\n className,\n )}\n >\n {children}\n </header>\n );\n};\n\nexport const HeaderTitle = ({ children }: HeaderProps) => {\n return (\n <Txt as=\"h1\" variant=\"body\" tone=\"ink\" className=\"flex items-center gap-2\">\n {children}\n </Txt>\n );\n};\n\nexport const HeaderAction = ({ children }: HeaderProps) => {\n return <div className=\"ml-auto flex items-center gap-3\">{children}</div>;\n};\n\nexport const HeaderGroup = ({ children }: HeaderProps) => {\n return <div className=\"flex items-center gap-2\">{children}</div>;\n};\n"],"names":["jsx","cn","Txt"],"mappings":";;;;;;AAWO,MAAM,SAAS,CAAC,EAAE,UAAU,MAAA,GAAS,IAAA,EAAM,WAAU,KAAmB;AAC7E,EAAA,uBACEA,cAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAWC,WAAA;AAAA,QACT,0EAAA;AAAA,QACA;AAAA,UACE,wBAAA,EAA0B;AAAA,SAC5B;AAAA,QACA;AAAA,OACF;AAAA,MAEC;AAAA;AAAA,GACH;AAEJ;AAEO,MAAM,WAAA,GAAc,CAAC,EAAE,QAAA,EAAS,KAAmB;AACxD,EAAA,uBACED,cAAA,CAACE,OAAA,EAAA,EAAI,EAAA,EAAG,IAAA,EAAK,OAAA,EAAQ,QAAO,IAAA,EAAK,KAAA,EAAM,SAAA,EAAU,yBAAA,EAC9C,QAAA,EACH,CAAA;AAEJ;AAEO,MAAM,YAAA,GAAe,CAAC,EAAE,QAAA,EAAS,KAAmB;AACzD,EAAA,uBAAOF,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,iCAAA,EAAmC,QAAA,EAAS,CAAA;AACpE;AAEO,MAAM,WAAA,GAAc,CAAC,EAAE,QAAA,EAAS,KAAmB;AACxD,EAAA,uBAAOA,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,yBAAA,EAA2B,QAAA,EAAS,CAAA;AAC5D;;;;;;;"}
@@ -2,6 +2,7 @@ import { jsx } from 'react/jsx-runtime';
2
2
  import { c as cn } from './cn-65Adrsfj.js';
3
3
 
4
4
  const fonts = {
5
+ body: "",
5
6
  mono: "font-mono"
6
7
  };
7
8
  const roles = {
@@ -21,16 +22,9 @@ const tones = {
21
22
  muted: "text-muted-foreground",
22
23
  faint: "text-placeholder"
23
24
  };
24
- const Txt = ({ as: Root = "p", className, variant = "body", tone, font, ref, ...props }) => {
25
- return /* @__PURE__ */ jsx(
26
- Root,
27
- {
28
- ref,
29
- className: cn(roles[variant], tone && tones[tone], font && fonts[font], className),
30
- ...props
31
- }
32
- );
25
+ const Txt = ({ as: Root = "p", className, variant = "body", tone, font = "body", ref, ...props }) => {
26
+ return /* @__PURE__ */ jsx(Root, { ref, className: cn(roles[variant], tone && tones[tone], fonts[font], className), ...props });
33
27
  };
34
28
 
35
29
  export { Txt as T };
36
- //# sourceMappingURL=Txt-DTh3Pa_a.js.map
30
+ //# sourceMappingURL=Txt-BP1SRHmL.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Txt-BP1SRHmL.js","sources":["../src/ds/components/Txt/Txt.tsx"],"sourcesContent":["import type { HTMLAttributes, ReactNode, Ref } from 'react';\n\nimport type { TextRole } from '@/ds/tokens';\nimport { cn } from '@/lib/utils';\n\nexport interface TxtProps extends HTMLAttributes<HTMLDivElement | HTMLLabelElement> {\n as?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'p' | 'span' | 'label' | 'div';\n ref?: Ref<HTMLElement>;\n variant?: TextRole;\n tone?: keyof typeof tones;\n font?: keyof typeof fonts;\n htmlFor?: string;\n className?: string;\n title?: string;\n children?: ReactNode;\n}\n\nconst fonts = {\n body: '',\n mono: 'font-mono',\n};\n\n// One class per role, written out so Tailwind's scanner finds it: size, line height,\n// weight and tracking come from the `--text-*` tokens in theme/typography.css, so nothing\n// here can drift from a component that writes the same role by hand. Typed against\n// `TextRole`, so a role added to the token list has to land here too.\nconst roles: Record<TextRole, string> = {\n display: 'text-display',\n title: 'text-title',\n heading: 'text-heading',\n subheading: 'text-subheading',\n body: 'text-body',\n label: 'text-label',\n 'body-sm': 'text-body-sm',\n column: 'text-column',\n caption: 'text-caption',\n meta: 'text-meta',\n};\n\n// Three inks, the same ladder every control uses. Omitting `tone` inherits — `body` is\n// already `--foreground`, so ink is written only to lift text back out of a muted block.\nconst tones = {\n ink: 'text-foreground',\n muted: 'text-muted-foreground',\n faint: 'text-placeholder',\n};\n\nexport const Txt = ({ as: Root = 'p', className, variant = 'body', tone, font = 'body', ref, ...props }: TxtProps) => {\n // Cast needed: `Root` is polymorphic, so TS narrows the expected ref to a single element type.\n return (\n <Root ref={ref as never} className={cn(roles[variant], tone && tones[tone], fonts[font], className)} {...props} />\n );\n};\n"],"names":[],"mappings":";;;AAiBA,MAAM,KAAA,GAAQ;AAAA,EACZ,IAAA,EAAM,EAAA;AAAA,EACN,IAAA,EAAM;AACR,CAAA;AAMA,MAAM,KAAA,GAAkC;AAAA,EACtC,OAAA,EAAS,cAAA;AAAA,EACT,KAAA,EAAO,YAAA;AAAA,EACP,OAAA,EAAS,cAAA;AAAA,EACT,UAAA,EAAY,iBAAA;AAAA,EACZ,IAAA,EAAM,WAAA;AAAA,EACN,KAAA,EAAO,YAAA;AAAA,EACP,SAAA,EAAW,cAAA;AAAA,EACX,MAAA,EAAQ,aAAA;AAAA,EACR,OAAA,EAAS,cAAA;AAAA,EACT,IAAA,EAAM;AACR,CAAA;AAIA,MAAM,KAAA,GAAQ;AAAA,EACZ,GAAA,EAAK,iBAAA;AAAA,EACL,KAAA,EAAO,uBAAA;AAAA,EACP,KAAA,EAAO;AACT,CAAA;AAEO,MAAM,GAAA,GAAM,CAAC,EAAE,EAAA,EAAI,OAAO,GAAA,EAAK,SAAA,EAAW,OAAA,GAAU,MAAA,EAAQ,MAAM,IAAA,GAAO,MAAA,EAAQ,GAAA,EAAK,GAAG,OAAM,KAAgB;AAEpH,EAAA,2BACG,IAAA,EAAA,EAAK,GAAA,EAAmB,WAAW,EAAA,CAAG,KAAA,CAAM,OAAO,CAAA,EAAG,IAAA,IAAQ,KAAA,CAAM,IAAI,GAAG,KAAA,CAAM,IAAI,GAAG,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO,CAAA;AAEpH;;;;"}
@@ -4,6 +4,7 @@ const jsxRuntime = require('react/jsx-runtime');
4
4
  const utils_cn = require('./cn-DG0X1KEP.cjs');
5
5
 
6
6
  const fonts = {
7
+ body: "",
7
8
  mono: "font-mono"
8
9
  };
9
10
  const roles = {
@@ -23,16 +24,9 @@ const tones = {
23
24
  muted: "text-muted-foreground",
24
25
  faint: "text-placeholder"
25
26
  };
26
- const Txt = ({ as: Root = "p", className, variant = "body", tone, font, ref, ...props }) => {
27
- return /* @__PURE__ */ jsxRuntime.jsx(
28
- Root,
29
- {
30
- ref,
31
- className: utils_cn.cn(roles[variant], tone && tones[tone], font && fonts[font], className),
32
- ...props
33
- }
34
- );
27
+ const Txt = ({ as: Root = "p", className, variant = "body", tone, font = "body", ref, ...props }) => {
28
+ return /* @__PURE__ */ jsxRuntime.jsx(Root, { ref, className: utils_cn.cn(roles[variant], tone && tones[tone], fonts[font], className), ...props });
35
29
  };
36
30
 
37
31
  exports.Txt = Txt;
38
- //# sourceMappingURL=Txt-B4-2nLaI.cjs.map
32
+ //# sourceMappingURL=Txt-DPmEpNbp.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Txt-DPmEpNbp.cjs","sources":["../src/ds/components/Txt/Txt.tsx"],"sourcesContent":["import type { HTMLAttributes, ReactNode, Ref } from 'react';\n\nimport type { TextRole } from '@/ds/tokens';\nimport { cn } from '@/lib/utils';\n\nexport interface TxtProps extends HTMLAttributes<HTMLDivElement | HTMLLabelElement> {\n as?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'p' | 'span' | 'label' | 'div';\n ref?: Ref<HTMLElement>;\n variant?: TextRole;\n tone?: keyof typeof tones;\n font?: keyof typeof fonts;\n htmlFor?: string;\n className?: string;\n title?: string;\n children?: ReactNode;\n}\n\nconst fonts = {\n body: '',\n mono: 'font-mono',\n};\n\n// One class per role, written out so Tailwind's scanner finds it: size, line height,\n// weight and tracking come from the `--text-*` tokens in theme/typography.css, so nothing\n// here can drift from a component that writes the same role by hand. Typed against\n// `TextRole`, so a role added to the token list has to land here too.\nconst roles: Record<TextRole, string> = {\n display: 'text-display',\n title: 'text-title',\n heading: 'text-heading',\n subheading: 'text-subheading',\n body: 'text-body',\n label: 'text-label',\n 'body-sm': 'text-body-sm',\n column: 'text-column',\n caption: 'text-caption',\n meta: 'text-meta',\n};\n\n// Three inks, the same ladder every control uses. Omitting `tone` inherits — `body` is\n// already `--foreground`, so ink is written only to lift text back out of a muted block.\nconst tones = {\n ink: 'text-foreground',\n muted: 'text-muted-foreground',\n faint: 'text-placeholder',\n};\n\nexport const Txt = ({ as: Root = 'p', className, variant = 'body', tone, font = 'body', ref, ...props }: TxtProps) => {\n // Cast needed: `Root` is polymorphic, so TS narrows the expected ref to a single element type.\n return (\n <Root ref={ref as never} className={cn(roles[variant], tone && tones[tone], fonts[font], className)} {...props} />\n );\n};\n"],"names":["cn"],"mappings":";;;;;AAiBA,MAAM,KAAA,GAAQ;AAAA,EACZ,IAAA,EAAM,EAAA;AAAA,EACN,IAAA,EAAM;AACR,CAAA;AAMA,MAAM,KAAA,GAAkC;AAAA,EACtC,OAAA,EAAS,cAAA;AAAA,EACT,KAAA,EAAO,YAAA;AAAA,EACP,OAAA,EAAS,cAAA;AAAA,EACT,UAAA,EAAY,iBAAA;AAAA,EACZ,IAAA,EAAM,WAAA;AAAA,EACN,KAAA,EAAO,YAAA;AAAA,EACP,SAAA,EAAW,cAAA;AAAA,EACX,MAAA,EAAQ,aAAA;AAAA,EACR,OAAA,EAAS,cAAA;AAAA,EACT,IAAA,EAAM;AACR,CAAA;AAIA,MAAM,KAAA,GAAQ;AAAA,EACZ,GAAA,EAAK,iBAAA;AAAA,EACL,KAAA,EAAO,uBAAA;AAAA,EACP,KAAA,EAAO;AACT,CAAA;AAEO,MAAM,GAAA,GAAM,CAAC,EAAE,EAAA,EAAI,OAAO,GAAA,EAAK,SAAA,EAAW,OAAA,GAAU,MAAA,EAAQ,MAAM,IAAA,GAAO,MAAA,EAAQ,GAAA,EAAK,GAAG,OAAM,KAAgB;AAEpH,EAAA,sCACG,IAAA,EAAA,EAAK,GAAA,EAAmB,WAAWA,WAAA,CAAG,KAAA,CAAM,OAAO,CAAA,EAAG,IAAA,IAAQ,KAAA,CAAM,IAAI,GAAG,KAAA,CAAM,IAAI,GAAG,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO,CAAA;AAEpH;;;;"}
@@ -3,12 +3,12 @@
3
3
  const jsxRuntime = require('react/jsx-runtime');
4
4
  const lucideReact = require('lucide-react');
5
5
  const React = require('react');
6
- const Badge = require('./Badge-BEeYtjmv.cjs');
6
+ const Badge = require('./Badge-DFNxcz-r.cjs');
7
7
  const Button = require('./Button-BAMnPqos.cjs');
8
8
  const checkbox = require('./checkbox-CI8JtZKS.cjs');
9
9
  const input = require('./input-bd223EJW.cjs');
10
10
  const radioGroup = require('./radio-group-BdEPWGzi.cjs');
11
- const Txt = require('./Txt-B4-2nLaI.cjs');
11
+ const Txt = require('./Txt-DPmEpNbp.cjs');
12
12
  const icons_Icon = require('./icons/Icon.cjs.js');
13
13
  const primitives_raisedSurface = require('./primitives/raised-surface.cjs.js');
14
14
  const utils_cn = require('./cn-DG0X1KEP.cjs');
@@ -213,4 +213,4 @@ exports.AskUserOutput = AskUserOutput;
213
213
  exports.AskUserPending = AskUserPending;
214
214
  exports.AskUserQuestion = AskUserQuestion;
215
215
  exports.AskUserSubmit = AskUserSubmit;
216
- //# sourceMappingURL=ask-user-BPpgiE7k.cjs.map
216
+ //# sourceMappingURL=ask-user-4pnmHbuC.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ask-user-BPpgiE7k.cjs","sources":["../src/ds/components/ai/ask-user/ask-user.tsx"],"sourcesContent":["import { Check, MessageCircleQuestion } from 'lucide-react';\nimport { useId, useState } from 'react';\nimport type { ComponentProps, KeyboardEvent, ReactNode } from 'react';\nimport { Badge } from '@/ds/components/Badge';\nimport { Button } from '@/ds/components/Button';\nimport { Checkbox } from '@/ds/components/Checkbox';\nimport { Input } from '@/ds/components/Input';\nimport { RadioGroup, RadioGroupItem } from '@/ds/components/RadioGroup';\nimport { Txt } from '@/ds/components/Txt';\nimport { Icon } from '@/ds/icons/Icon';\nimport { raisedSurfaceStyle } from '@/ds/primitives/raised-surface';\nimport { cn } from '@/lib/utils';\n\nexport type AskUserSelectionMode = 'single_select' | 'multi_select';\nexport type AskUserAnswer = string | string[];\n\nexport interface AskUserOption {\n label: string;\n description?: string;\n}\n\nexport interface AskUserPayload {\n question: string;\n options?: AskUserOption[];\n selectionMode?: AskUserSelectionMode;\n}\n\nexport interface AskUserResult {\n content: string;\n isError?: boolean;\n}\n\nexport const AskUserContainer = ({ className, ...props }: ComponentProps<'div'>) => (\n <div\n data-slot=\"ask-user\"\n className={cn(raisedSurfaceStyle, 'w-full overflow-hidden rounded-xl', className)}\n {...props}\n />\n);\n\nexport const AskUserLabel = ({ children = 'Question', className, ...props }: ComponentProps<'div'>) => (\n <div data-slot=\"ask-user-label\" className={cn('flex min-h-10 items-center gap-2 px-4 pt-3', className)} {...props}>\n <Icon size=\"xs\" className=\"text-muted-foreground\">\n <MessageCircleQuestion />\n </Icon>\n <Txt as=\"span\" variant=\"caption\" tone=\"muted\">\n {children}\n </Txt>\n </div>\n);\n\nexport const AskUserBody = ({ className, ...props }: ComponentProps<'div'>) => (\n <div data-slot=\"ask-user-body\" className={cn('px-4 pt-1 pb-4', className)} {...props} />\n);\n\nexport const AskUserQuestion = ({ className, ...props }: ComponentProps<typeof Txt>) => (\n <Txt as=\"p\" variant=\"subheading\" tone=\"ink\" {...props} className={cn('mb-3', className)} />\n);\n\nexport interface AskUserOptionRowProps extends Omit<ComponentProps<'label'>, 'children'> {\n control: ReactNode;\n label: string;\n description?: string;\n disabled?: boolean;\n}\n\nexport const AskUserOptionRow = ({\n control,\n label,\n description,\n disabled = false,\n className,\n ...props\n}: AskUserOptionRowProps) => (\n <label\n // state-layer's wash only stops at :disabled/aria-disabled, and a <label> is neither\n aria-disabled={disabled || undefined}\n className={cn(\n 'state-layer flex items-start gap-2.5 rounded-lg bg-fill px-3 py-2',\n disabled ? 'cursor-not-allowed opacity-50' : 'cursor-pointer',\n className,\n )}\n {...props}\n >\n {control}\n <span className=\"grid gap-0.5\">\n <Txt as=\"span\" variant=\"body\" tone=\"ink\">\n {label}\n </Txt>\n {description ? (\n <Txt as=\"span\" variant=\"caption\" tone=\"muted\">\n {description}\n </Txt>\n ) : null}\n </span>\n </label>\n);\n\nexport type AskUserSubmitProps = Omit<ComponentProps<typeof Button>, 'children'> & { children?: ReactNode };\n\nexport const AskUserSubmit = ({ children = 'Submit answer', ...props }: AskUserSubmitProps) => (\n <Button icon={<Check />} type=\"button\" size=\"sm\" variant=\"primary\" {...props}>\n {children}\n </Button>\n);\n\nexport const AskUserPending = ({ children = 'Submitting…', ...props }: ComponentProps<typeof Txt>) => (\n <Txt as=\"span\" role=\"status\" variant=\"caption\" tone=\"muted\" {...props}>\n {children}\n </Txt>\n);\n\nexport interface AskUserOutputProps extends ComponentProps<'div'> {\n result: AskUserResult;\n}\n\nexport const AskUserOutput = ({ result, className, ...props }: AskUserOutputProps) => (\n <div\n data-slot=\"ask-user-output\"\n role={result.isError ? 'alert' : 'status'}\n className={cn('grid gap-2 rounded-lg bg-fill p-3', className)}\n {...props}\n >\n <Badge size=\"xs\" variant={result.isError ? 'red' : 'green'} className=\"justify-self-start\">\n {result.isError ? 'Error' : 'Answered'}\n </Badge>\n <Txt as=\"p\" variant=\"body\" tone=\"ink\" className={cn(result.isError && 'text-error')}>\n {result.content}\n </Txt>\n </div>\n);\n\nexport interface AskUserProps extends Omit<ComponentProps<typeof AskUserContainer>, 'children' | 'onSubmit'> {\n payload: AskUserPayload;\n result?: AskUserResult;\n isAnswered?: boolean;\n isSubmitting?: boolean;\n onSubmit: (answer: AskUserAnswer) => void;\n footer?: ReactNode;\n}\n\nconst validOptions = (options: AskUserPayload['options']): AskUserOption[] =>\n options?.filter((option): option is AskUserOption =>\n Boolean(option && typeof option.label === 'string' && option.label),\n ) ?? [];\n\ninterface AskUserInputProps extends AskUserProps {\n options: AskUserOption[];\n}\n\nconst AskUserInput = ({\n payload,\n options,\n result,\n isAnswered = false,\n isSubmitting = false,\n onSubmit,\n footer,\n ...props\n}: AskUserInputProps) => {\n const fieldId = useId();\n const [text, setText] = useState('');\n const [selected, setSelected] = useState<string[]>([]);\n\n if (result || isAnswered) {\n return (\n <AskUserContainer data-testid=\"ask-user\" {...props}>\n <AskUserLabel />\n <AskUserBody>\n <AskUserQuestion>{payload.question}</AskUserQuestion>\n {result ? <AskUserOutput result={result} /> : <Badge variant=\"green\">Answered</Badge>}\n </AskUserBody>\n </AskUserContainer>\n );\n }\n\n const submitText = () => {\n const answer = text.trim();\n if (answer && !isSubmitting) onSubmit(answer);\n };\n\n const handleTextKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {\n if (event.key === 'Enter') {\n event.preventDefault();\n submitText();\n }\n };\n\n if (options.length === 0) {\n return (\n <AskUserContainer data-testid=\"ask-user\" {...props}>\n <AskUserLabel />\n <AskUserBody>\n <AskUserQuestion as=\"label\" htmlFor={fieldId} className=\"mb-2 block\">\n {payload.question}\n </AskUserQuestion>\n <div className=\"flex items-center gap-2\">\n <Input\n id={fieldId}\n value={text}\n onChange={event => setText(event.target.value)}\n onKeyDown={handleTextKeyDown}\n placeholder=\"Type your answer...\"\n disabled={isSubmitting}\n size=\"sm\"\n />\n <AskUserSubmit\n className=\"shrink-0 whitespace-nowrap\"\n disabled={isSubmitting || !text.trim()}\n onClick={submitText}\n />\n </div>\n {isSubmitting ? <AskUserPending className=\"mt-2 block\" /> : null}\n {footer}\n </AskUserBody>\n </AskUserContainer>\n );\n }\n\n const isMulti = payload.selectionMode === 'multi_select';\n\n return (\n <AskUserContainer data-testid=\"ask-user\" {...props}>\n <AskUserLabel />\n <AskUserBody>\n <AskUserQuestion id={fieldId}>{payload.question}</AskUserQuestion>\n {isMulti ? (\n <div role=\"group\" aria-labelledby={fieldId} className=\"grid gap-2\">\n {options.map(option => (\n <AskUserOptionRow\n key={option.label}\n label={option.label}\n description={option.description}\n disabled={isSubmitting}\n control={\n <Checkbox\n className=\"mt-0.5\"\n disabled={isSubmitting}\n checked={selected.includes(option.label)}\n onCheckedChange={() =>\n setSelected(current =>\n current.includes(option.label)\n ? current.filter(selectedLabel => selectedLabel !== option.label)\n : [...current, option.label],\n )\n }\n />\n }\n />\n ))}\n <AskUserSubmit\n className=\"mt-1 justify-self-start\"\n disabled={isSubmitting || selected.length === 0}\n onClick={() => onSubmit(selected)}\n >\n Submit answer\n </AskUserSubmit>\n </div>\n ) : (\n <RadioGroup\n aria-labelledby={fieldId}\n disabled={isSubmitting}\n value={selected[0] ?? null}\n onValueChange={value => {\n const label = String(value);\n setSelected([label]);\n onSubmit(label);\n }}\n >\n {options.map(option => (\n <AskUserOptionRow\n key={option.label}\n label={option.label}\n description={option.description}\n disabled={isSubmitting}\n control={<RadioGroupItem className=\"mt-0.5\" value={option.label} />}\n />\n ))}\n </RadioGroup>\n )}\n {isSubmitting ? <AskUserPending className=\"mt-3 block\" /> : null}\n {footer}\n </AskUserBody>\n </AskUserContainer>\n );\n};\n\nexport const AskUser = ({ payload, ...props }: AskUserProps) => {\n const options = validOptions(payload.options);\n const payloadKey = JSON.stringify([payload.question, options.map(option => option.label), payload.selectionMode]);\n\n return <AskUserInput key={payloadKey} payload={payload} options={options} {...props} />;\n};\n"],"names":["jsx","cn","raisedSurfaceStyle","Icon","MessageCircleQuestion","Txt","jsxs","Button","Check","Badge","useId","useState","Input","Checkbox","RadioGroup","RadioGroupItem"],"mappings":"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"}
1
+ {"version":3,"file":"ask-user-4pnmHbuC.cjs","sources":["../src/ds/components/ai/ask-user/ask-user.tsx"],"sourcesContent":["import { Check, MessageCircleQuestion } from 'lucide-react';\nimport { useId, useState } from 'react';\nimport type { ComponentProps, KeyboardEvent, ReactNode } from 'react';\nimport { Badge } from '@/ds/components/Badge';\nimport { Button } from '@/ds/components/Button';\nimport { Checkbox } from '@/ds/components/Checkbox';\nimport { Input } from '@/ds/components/Input';\nimport { RadioGroup, RadioGroupItem } from '@/ds/components/RadioGroup';\nimport { Txt } from '@/ds/components/Txt';\nimport { Icon } from '@/ds/icons/Icon';\nimport { raisedSurfaceStyle } from '@/ds/primitives/raised-surface';\nimport { cn } from '@/lib/utils';\n\nexport type AskUserSelectionMode = 'single_select' | 'multi_select';\nexport type AskUserAnswer = string | string[];\n\nexport interface AskUserOption {\n label: string;\n description?: string;\n}\n\nexport interface AskUserPayload {\n question: string;\n options?: AskUserOption[];\n selectionMode?: AskUserSelectionMode;\n}\n\nexport interface AskUserResult {\n content: string;\n isError?: boolean;\n}\n\nexport const AskUserContainer = ({ className, ...props }: ComponentProps<'div'>) => (\n <div\n data-slot=\"ask-user\"\n className={cn(raisedSurfaceStyle, 'w-full overflow-hidden rounded-xl', className)}\n {...props}\n />\n);\n\nexport const AskUserLabel = ({ children = 'Question', className, ...props }: ComponentProps<'div'>) => (\n <div data-slot=\"ask-user-label\" className={cn('flex min-h-10 items-center gap-2 px-4 pt-3', className)} {...props}>\n <Icon size=\"xs\" className=\"text-muted-foreground\">\n <MessageCircleQuestion />\n </Icon>\n <Txt as=\"span\" variant=\"caption\" tone=\"muted\">\n {children}\n </Txt>\n </div>\n);\n\nexport const AskUserBody = ({ className, ...props }: ComponentProps<'div'>) => (\n <div data-slot=\"ask-user-body\" className={cn('px-4 pt-1 pb-4', className)} {...props} />\n);\n\nexport const AskUserQuestion = ({ className, ...props }: ComponentProps<typeof Txt>) => (\n <Txt as=\"p\" variant=\"subheading\" tone=\"ink\" {...props} className={cn('mb-3', className)} />\n);\n\nexport interface AskUserOptionRowProps extends Omit<ComponentProps<'label'>, 'children'> {\n control: ReactNode;\n label: string;\n description?: string;\n disabled?: boolean;\n}\n\nexport const AskUserOptionRow = ({\n control,\n label,\n description,\n disabled = false,\n className,\n ...props\n}: AskUserOptionRowProps) => (\n <label\n // state-layer's wash only stops at :disabled/aria-disabled, and a <label> is neither\n aria-disabled={disabled || undefined}\n className={cn(\n 'state-layer flex items-start gap-2.5 rounded-lg bg-fill px-3 py-2',\n disabled ? 'cursor-not-allowed opacity-50' : 'cursor-pointer',\n className,\n )}\n {...props}\n >\n {control}\n <span className=\"grid gap-0.5\">\n <Txt as=\"span\" variant=\"body\" tone=\"ink\">\n {label}\n </Txt>\n {description ? (\n <Txt as=\"span\" variant=\"caption\" tone=\"muted\">\n {description}\n </Txt>\n ) : null}\n </span>\n </label>\n);\n\nexport type AskUserSubmitProps = Omit<ComponentProps<typeof Button>, 'children'> & { children?: ReactNode };\n\nexport const AskUserSubmit = ({ children = 'Submit answer', ...props }: AskUserSubmitProps) => (\n <Button icon={<Check />} type=\"button\" size=\"sm\" variant=\"primary\" {...props}>\n {children}\n </Button>\n);\n\nexport const AskUserPending = ({ children = 'Submitting…', ...props }: ComponentProps<typeof Txt>) => (\n <Txt as=\"span\" role=\"status\" variant=\"caption\" tone=\"muted\" {...props}>\n {children}\n </Txt>\n);\n\nexport interface AskUserOutputProps extends ComponentProps<'div'> {\n result: AskUserResult;\n}\n\nexport const AskUserOutput = ({ result, className, ...props }: AskUserOutputProps) => (\n <div\n data-slot=\"ask-user-output\"\n role={result.isError ? 'alert' : 'status'}\n className={cn('grid gap-2 rounded-lg bg-fill p-3', className)}\n {...props}\n >\n <Badge size=\"xs\" variant={result.isError ? 'red' : 'green'} className=\"justify-self-start\">\n {result.isError ? 'Error' : 'Answered'}\n </Badge>\n <Txt as=\"p\" variant=\"body\" tone=\"ink\" className={cn(result.isError && 'text-error')}>\n {result.content}\n </Txt>\n </div>\n);\n\nexport interface AskUserProps extends Omit<ComponentProps<typeof AskUserContainer>, 'children' | 'onSubmit'> {\n payload: AskUserPayload;\n result?: AskUserResult;\n isAnswered?: boolean;\n isSubmitting?: boolean;\n onSubmit: (answer: AskUserAnswer) => void;\n footer?: ReactNode;\n}\n\nconst validOptions = (options: AskUserPayload['options']): AskUserOption[] =>\n options?.filter((option): option is AskUserOption =>\n Boolean(option && typeof option.label === 'string' && option.label),\n ) ?? [];\n\ninterface AskUserInputProps extends AskUserProps {\n options: AskUserOption[];\n}\n\nconst AskUserInput = ({\n payload,\n options,\n result,\n isAnswered = false,\n isSubmitting = false,\n onSubmit,\n footer,\n ...props\n}: AskUserInputProps) => {\n const fieldId = useId();\n const [text, setText] = useState('');\n const [selected, setSelected] = useState<string[]>([]);\n\n if (result || isAnswered) {\n return (\n <AskUserContainer data-testid=\"ask-user\" {...props}>\n <AskUserLabel />\n <AskUserBody>\n <AskUserQuestion>{payload.question}</AskUserQuestion>\n {result ? <AskUserOutput result={result} /> : <Badge variant=\"green\">Answered</Badge>}\n </AskUserBody>\n </AskUserContainer>\n );\n }\n\n const submitText = () => {\n const answer = text.trim();\n if (answer && !isSubmitting) onSubmit(answer);\n };\n\n const handleTextKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {\n if (event.key === 'Enter') {\n event.preventDefault();\n submitText();\n }\n };\n\n if (options.length === 0) {\n return (\n <AskUserContainer data-testid=\"ask-user\" {...props}>\n <AskUserLabel />\n <AskUserBody>\n <AskUserQuestion as=\"label\" htmlFor={fieldId} className=\"mb-2 block\">\n {payload.question}\n </AskUserQuestion>\n <div className=\"flex items-center gap-2\">\n <Input\n id={fieldId}\n value={text}\n onChange={event => setText(event.target.value)}\n onKeyDown={handleTextKeyDown}\n placeholder=\"Type your answer...\"\n disabled={isSubmitting}\n size=\"sm\"\n />\n <AskUserSubmit\n className=\"shrink-0 whitespace-nowrap\"\n disabled={isSubmitting || !text.trim()}\n onClick={submitText}\n />\n </div>\n {isSubmitting ? <AskUserPending className=\"mt-2 block\" /> : null}\n {footer}\n </AskUserBody>\n </AskUserContainer>\n );\n }\n\n const isMulti = payload.selectionMode === 'multi_select';\n\n return (\n <AskUserContainer data-testid=\"ask-user\" {...props}>\n <AskUserLabel />\n <AskUserBody>\n <AskUserQuestion id={fieldId}>{payload.question}</AskUserQuestion>\n {isMulti ? (\n <div role=\"group\" aria-labelledby={fieldId} className=\"grid gap-2\">\n {options.map(option => (\n <AskUserOptionRow\n key={option.label}\n label={option.label}\n description={option.description}\n disabled={isSubmitting}\n control={\n <Checkbox\n className=\"mt-0.5\"\n disabled={isSubmitting}\n checked={selected.includes(option.label)}\n onCheckedChange={() =>\n setSelected(current =>\n current.includes(option.label)\n ? current.filter(selectedLabel => selectedLabel !== option.label)\n : [...current, option.label],\n )\n }\n />\n }\n />\n ))}\n <AskUserSubmit\n className=\"mt-1 justify-self-start\"\n disabled={isSubmitting || selected.length === 0}\n onClick={() => onSubmit(selected)}\n >\n Submit answer\n </AskUserSubmit>\n </div>\n ) : (\n <RadioGroup\n aria-labelledby={fieldId}\n disabled={isSubmitting}\n value={selected[0] ?? null}\n onValueChange={value => {\n const label = String(value);\n setSelected([label]);\n onSubmit(label);\n }}\n >\n {options.map(option => (\n <AskUserOptionRow\n key={option.label}\n label={option.label}\n description={option.description}\n disabled={isSubmitting}\n control={<RadioGroupItem className=\"mt-0.5\" value={option.label} />}\n />\n ))}\n </RadioGroup>\n )}\n {isSubmitting ? <AskUserPending className=\"mt-3 block\" /> : null}\n {footer}\n </AskUserBody>\n </AskUserContainer>\n );\n};\n\nexport const AskUser = ({ payload, ...props }: AskUserProps) => {\n const options = validOptions(payload.options);\n const payloadKey = JSON.stringify([payload.question, options.map(option => option.label), payload.selectionMode]);\n\n return <AskUserInput key={payloadKey} payload={payload} options={options} {...props} />;\n};\n"],"names":["jsx","cn","raisedSurfaceStyle","Icon","MessageCircleQuestion","Txt","jsxs","Button","Check","Badge","useId","useState","Input","Checkbox","RadioGroup","RadioGroupItem"],"mappings":"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"}
@@ -1,12 +1,12 @@
1
1
  import { jsx, jsxs } from 'react/jsx-runtime';
2
2
  import { MessageCircleQuestion, Check } from 'lucide-react';
3
3
  import { useId, useState } from 'react';
4
- import { B as Badge } from './Badge-TD55_qZJ.js';
4
+ import { B as Badge } from './Badge-Bzn8Z-_I.js';
5
5
  import { B as Button } from './Button-B8nF87ai.js';
6
6
  import { C as Checkbox } from './checkbox-CQedzgsi.js';
7
7
  import { I as Input } from './input-CHghVv3k.js';
8
8
  import { R as RadioGroup, a as RadioGroupItem } from './radio-group-CFZXUXZ5.js';
9
- import { T as Txt } from './Txt-DTh3Pa_a.js';
9
+ import { T as Txt } from './Txt-BP1SRHmL.js';
10
10
  import { Icon } from './icons/Icon.es.js';
11
11
  import { raisedSurfaceStyle } from './primitives/raised-surface.es.js';
12
12
  import { c as cn } from './cn-65Adrsfj.js';
@@ -203,4 +203,4 @@ const AskUser = ({ payload, ...props }) => {
203
203
  };
204
204
 
205
205
  export { AskUser as A, AskUserBody as a, AskUserContainer as b, AskUserLabel as c, AskUserOptionRow as d, AskUserOutput as e, AskUserPending as f, AskUserQuestion as g, AskUserSubmit as h };
206
- //# sourceMappingURL=ask-user-jDUt7hgT.js.map
206
+ //# sourceMappingURL=ask-user-CFcQN_7m.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ask-user-jDUt7hgT.js","sources":["../src/ds/components/ai/ask-user/ask-user.tsx"],"sourcesContent":["import { Check, MessageCircleQuestion } from 'lucide-react';\nimport { useId, useState } from 'react';\nimport type { ComponentProps, KeyboardEvent, ReactNode } from 'react';\nimport { Badge } from '@/ds/components/Badge';\nimport { Button } from '@/ds/components/Button';\nimport { Checkbox } from '@/ds/components/Checkbox';\nimport { Input } from '@/ds/components/Input';\nimport { RadioGroup, RadioGroupItem } from '@/ds/components/RadioGroup';\nimport { Txt } from '@/ds/components/Txt';\nimport { Icon } from '@/ds/icons/Icon';\nimport { raisedSurfaceStyle } from '@/ds/primitives/raised-surface';\nimport { cn } from '@/lib/utils';\n\nexport type AskUserSelectionMode = 'single_select' | 'multi_select';\nexport type AskUserAnswer = string | string[];\n\nexport interface AskUserOption {\n label: string;\n description?: string;\n}\n\nexport interface AskUserPayload {\n question: string;\n options?: AskUserOption[];\n selectionMode?: AskUserSelectionMode;\n}\n\nexport interface AskUserResult {\n content: string;\n isError?: boolean;\n}\n\nexport const AskUserContainer = ({ className, ...props }: ComponentProps<'div'>) => (\n <div\n data-slot=\"ask-user\"\n className={cn(raisedSurfaceStyle, 'w-full overflow-hidden rounded-xl', className)}\n {...props}\n />\n);\n\nexport const AskUserLabel = ({ children = 'Question', className, ...props }: ComponentProps<'div'>) => (\n <div data-slot=\"ask-user-label\" className={cn('flex min-h-10 items-center gap-2 px-4 pt-3', className)} {...props}>\n <Icon size=\"xs\" className=\"text-muted-foreground\">\n <MessageCircleQuestion />\n </Icon>\n <Txt as=\"span\" variant=\"caption\" tone=\"muted\">\n {children}\n </Txt>\n </div>\n);\n\nexport const AskUserBody = ({ className, ...props }: ComponentProps<'div'>) => (\n <div data-slot=\"ask-user-body\" className={cn('px-4 pt-1 pb-4', className)} {...props} />\n);\n\nexport const AskUserQuestion = ({ className, ...props }: ComponentProps<typeof Txt>) => (\n <Txt as=\"p\" variant=\"subheading\" tone=\"ink\" {...props} className={cn('mb-3', className)} />\n);\n\nexport interface AskUserOptionRowProps extends Omit<ComponentProps<'label'>, 'children'> {\n control: ReactNode;\n label: string;\n description?: string;\n disabled?: boolean;\n}\n\nexport const AskUserOptionRow = ({\n control,\n label,\n description,\n disabled = false,\n className,\n ...props\n}: AskUserOptionRowProps) => (\n <label\n // state-layer's wash only stops at :disabled/aria-disabled, and a <label> is neither\n aria-disabled={disabled || undefined}\n className={cn(\n 'state-layer flex items-start gap-2.5 rounded-lg bg-fill px-3 py-2',\n disabled ? 'cursor-not-allowed opacity-50' : 'cursor-pointer',\n className,\n )}\n {...props}\n >\n {control}\n <span className=\"grid gap-0.5\">\n <Txt as=\"span\" variant=\"body\" tone=\"ink\">\n {label}\n </Txt>\n {description ? (\n <Txt as=\"span\" variant=\"caption\" tone=\"muted\">\n {description}\n </Txt>\n ) : null}\n </span>\n </label>\n);\n\nexport type AskUserSubmitProps = Omit<ComponentProps<typeof Button>, 'children'> & { children?: ReactNode };\n\nexport const AskUserSubmit = ({ children = 'Submit answer', ...props }: AskUserSubmitProps) => (\n <Button icon={<Check />} type=\"button\" size=\"sm\" variant=\"primary\" {...props}>\n {children}\n </Button>\n);\n\nexport const AskUserPending = ({ children = 'Submitting…', ...props }: ComponentProps<typeof Txt>) => (\n <Txt as=\"span\" role=\"status\" variant=\"caption\" tone=\"muted\" {...props}>\n {children}\n </Txt>\n);\n\nexport interface AskUserOutputProps extends ComponentProps<'div'> {\n result: AskUserResult;\n}\n\nexport const AskUserOutput = ({ result, className, ...props }: AskUserOutputProps) => (\n <div\n data-slot=\"ask-user-output\"\n role={result.isError ? 'alert' : 'status'}\n className={cn('grid gap-2 rounded-lg bg-fill p-3', className)}\n {...props}\n >\n <Badge size=\"xs\" variant={result.isError ? 'red' : 'green'} className=\"justify-self-start\">\n {result.isError ? 'Error' : 'Answered'}\n </Badge>\n <Txt as=\"p\" variant=\"body\" tone=\"ink\" className={cn(result.isError && 'text-error')}>\n {result.content}\n </Txt>\n </div>\n);\n\nexport interface AskUserProps extends Omit<ComponentProps<typeof AskUserContainer>, 'children' | 'onSubmit'> {\n payload: AskUserPayload;\n result?: AskUserResult;\n isAnswered?: boolean;\n isSubmitting?: boolean;\n onSubmit: (answer: AskUserAnswer) => void;\n footer?: ReactNode;\n}\n\nconst validOptions = (options: AskUserPayload['options']): AskUserOption[] =>\n options?.filter((option): option is AskUserOption =>\n Boolean(option && typeof option.label === 'string' && option.label),\n ) ?? [];\n\ninterface AskUserInputProps extends AskUserProps {\n options: AskUserOption[];\n}\n\nconst AskUserInput = ({\n payload,\n options,\n result,\n isAnswered = false,\n isSubmitting = false,\n onSubmit,\n footer,\n ...props\n}: AskUserInputProps) => {\n const fieldId = useId();\n const [text, setText] = useState('');\n const [selected, setSelected] = useState<string[]>([]);\n\n if (result || isAnswered) {\n return (\n <AskUserContainer data-testid=\"ask-user\" {...props}>\n <AskUserLabel />\n <AskUserBody>\n <AskUserQuestion>{payload.question}</AskUserQuestion>\n {result ? <AskUserOutput result={result} /> : <Badge variant=\"green\">Answered</Badge>}\n </AskUserBody>\n </AskUserContainer>\n );\n }\n\n const submitText = () => {\n const answer = text.trim();\n if (answer && !isSubmitting) onSubmit(answer);\n };\n\n const handleTextKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {\n if (event.key === 'Enter') {\n event.preventDefault();\n submitText();\n }\n };\n\n if (options.length === 0) {\n return (\n <AskUserContainer data-testid=\"ask-user\" {...props}>\n <AskUserLabel />\n <AskUserBody>\n <AskUserQuestion as=\"label\" htmlFor={fieldId} className=\"mb-2 block\">\n {payload.question}\n </AskUserQuestion>\n <div className=\"flex items-center gap-2\">\n <Input\n id={fieldId}\n value={text}\n onChange={event => setText(event.target.value)}\n onKeyDown={handleTextKeyDown}\n placeholder=\"Type your answer...\"\n disabled={isSubmitting}\n size=\"sm\"\n />\n <AskUserSubmit\n className=\"shrink-0 whitespace-nowrap\"\n disabled={isSubmitting || !text.trim()}\n onClick={submitText}\n />\n </div>\n {isSubmitting ? <AskUserPending className=\"mt-2 block\" /> : null}\n {footer}\n </AskUserBody>\n </AskUserContainer>\n );\n }\n\n const isMulti = payload.selectionMode === 'multi_select';\n\n return (\n <AskUserContainer data-testid=\"ask-user\" {...props}>\n <AskUserLabel />\n <AskUserBody>\n <AskUserQuestion id={fieldId}>{payload.question}</AskUserQuestion>\n {isMulti ? (\n <div role=\"group\" aria-labelledby={fieldId} className=\"grid gap-2\">\n {options.map(option => (\n <AskUserOptionRow\n key={option.label}\n label={option.label}\n description={option.description}\n disabled={isSubmitting}\n control={\n <Checkbox\n className=\"mt-0.5\"\n disabled={isSubmitting}\n checked={selected.includes(option.label)}\n onCheckedChange={() =>\n setSelected(current =>\n current.includes(option.label)\n ? current.filter(selectedLabel => selectedLabel !== option.label)\n : [...current, option.label],\n )\n }\n />\n }\n />\n ))}\n <AskUserSubmit\n className=\"mt-1 justify-self-start\"\n disabled={isSubmitting || selected.length === 0}\n onClick={() => onSubmit(selected)}\n >\n Submit answer\n </AskUserSubmit>\n </div>\n ) : (\n <RadioGroup\n aria-labelledby={fieldId}\n disabled={isSubmitting}\n value={selected[0] ?? null}\n onValueChange={value => {\n const label = String(value);\n setSelected([label]);\n onSubmit(label);\n }}\n >\n {options.map(option => (\n <AskUserOptionRow\n key={option.label}\n label={option.label}\n description={option.description}\n disabled={isSubmitting}\n control={<RadioGroupItem className=\"mt-0.5\" value={option.label} />}\n />\n ))}\n </RadioGroup>\n )}\n {isSubmitting ? <AskUserPending className=\"mt-3 block\" /> : null}\n {footer}\n </AskUserBody>\n </AskUserContainer>\n );\n};\n\nexport const AskUser = ({ payload, ...props }: AskUserProps) => {\n const options = validOptions(payload.options);\n const payloadKey = JSON.stringify([payload.question, options.map(option => option.label), payload.selectionMode]);\n\n return <AskUserInput key={payloadKey} payload={payload} options={options} {...props} />;\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ask-user-CFcQN_7m.js","sources":["../src/ds/components/ai/ask-user/ask-user.tsx"],"sourcesContent":["import { Check, MessageCircleQuestion } from 'lucide-react';\nimport { useId, useState } from 'react';\nimport type { ComponentProps, KeyboardEvent, ReactNode } from 'react';\nimport { Badge } from '@/ds/components/Badge';\nimport { Button } from '@/ds/components/Button';\nimport { Checkbox } from '@/ds/components/Checkbox';\nimport { Input } from '@/ds/components/Input';\nimport { RadioGroup, RadioGroupItem } from '@/ds/components/RadioGroup';\nimport { Txt } from '@/ds/components/Txt';\nimport { Icon } from '@/ds/icons/Icon';\nimport { raisedSurfaceStyle } from '@/ds/primitives/raised-surface';\nimport { cn } from '@/lib/utils';\n\nexport type AskUserSelectionMode = 'single_select' | 'multi_select';\nexport type AskUserAnswer = string | string[];\n\nexport interface AskUserOption {\n label: string;\n description?: string;\n}\n\nexport interface AskUserPayload {\n question: string;\n options?: AskUserOption[];\n selectionMode?: AskUserSelectionMode;\n}\n\nexport interface AskUserResult {\n content: string;\n isError?: boolean;\n}\n\nexport const AskUserContainer = ({ className, ...props }: ComponentProps<'div'>) => (\n <div\n data-slot=\"ask-user\"\n className={cn(raisedSurfaceStyle, 'w-full overflow-hidden rounded-xl', className)}\n {...props}\n />\n);\n\nexport const AskUserLabel = ({ children = 'Question', className, ...props }: ComponentProps<'div'>) => (\n <div data-slot=\"ask-user-label\" className={cn('flex min-h-10 items-center gap-2 px-4 pt-3', className)} {...props}>\n <Icon size=\"xs\" className=\"text-muted-foreground\">\n <MessageCircleQuestion />\n </Icon>\n <Txt as=\"span\" variant=\"caption\" tone=\"muted\">\n {children}\n </Txt>\n </div>\n);\n\nexport const AskUserBody = ({ className, ...props }: ComponentProps<'div'>) => (\n <div data-slot=\"ask-user-body\" className={cn('px-4 pt-1 pb-4', className)} {...props} />\n);\n\nexport const AskUserQuestion = ({ className, ...props }: ComponentProps<typeof Txt>) => (\n <Txt as=\"p\" variant=\"subheading\" tone=\"ink\" {...props} className={cn('mb-3', className)} />\n);\n\nexport interface AskUserOptionRowProps extends Omit<ComponentProps<'label'>, 'children'> {\n control: ReactNode;\n label: string;\n description?: string;\n disabled?: boolean;\n}\n\nexport const AskUserOptionRow = ({\n control,\n label,\n description,\n disabled = false,\n className,\n ...props\n}: AskUserOptionRowProps) => (\n <label\n // state-layer's wash only stops at :disabled/aria-disabled, and a <label> is neither\n aria-disabled={disabled || undefined}\n className={cn(\n 'state-layer flex items-start gap-2.5 rounded-lg bg-fill px-3 py-2',\n disabled ? 'cursor-not-allowed opacity-50' : 'cursor-pointer',\n className,\n )}\n {...props}\n >\n {control}\n <span className=\"grid gap-0.5\">\n <Txt as=\"span\" variant=\"body\" tone=\"ink\">\n {label}\n </Txt>\n {description ? (\n <Txt as=\"span\" variant=\"caption\" tone=\"muted\">\n {description}\n </Txt>\n ) : null}\n </span>\n </label>\n);\n\nexport type AskUserSubmitProps = Omit<ComponentProps<typeof Button>, 'children'> & { children?: ReactNode };\n\nexport const AskUserSubmit = ({ children = 'Submit answer', ...props }: AskUserSubmitProps) => (\n <Button icon={<Check />} type=\"button\" size=\"sm\" variant=\"primary\" {...props}>\n {children}\n </Button>\n);\n\nexport const AskUserPending = ({ children = 'Submitting…', ...props }: ComponentProps<typeof Txt>) => (\n <Txt as=\"span\" role=\"status\" variant=\"caption\" tone=\"muted\" {...props}>\n {children}\n </Txt>\n);\n\nexport interface AskUserOutputProps extends ComponentProps<'div'> {\n result: AskUserResult;\n}\n\nexport const AskUserOutput = ({ result, className, ...props }: AskUserOutputProps) => (\n <div\n data-slot=\"ask-user-output\"\n role={result.isError ? 'alert' : 'status'}\n className={cn('grid gap-2 rounded-lg bg-fill p-3', className)}\n {...props}\n >\n <Badge size=\"xs\" variant={result.isError ? 'red' : 'green'} className=\"justify-self-start\">\n {result.isError ? 'Error' : 'Answered'}\n </Badge>\n <Txt as=\"p\" variant=\"body\" tone=\"ink\" className={cn(result.isError && 'text-error')}>\n {result.content}\n </Txt>\n </div>\n);\n\nexport interface AskUserProps extends Omit<ComponentProps<typeof AskUserContainer>, 'children' | 'onSubmit'> {\n payload: AskUserPayload;\n result?: AskUserResult;\n isAnswered?: boolean;\n isSubmitting?: boolean;\n onSubmit: (answer: AskUserAnswer) => void;\n footer?: ReactNode;\n}\n\nconst validOptions = (options: AskUserPayload['options']): AskUserOption[] =>\n options?.filter((option): option is AskUserOption =>\n Boolean(option && typeof option.label === 'string' && option.label),\n ) ?? [];\n\ninterface AskUserInputProps extends AskUserProps {\n options: AskUserOption[];\n}\n\nconst AskUserInput = ({\n payload,\n options,\n result,\n isAnswered = false,\n isSubmitting = false,\n onSubmit,\n footer,\n ...props\n}: AskUserInputProps) => {\n const fieldId = useId();\n const [text, setText] = useState('');\n const [selected, setSelected] = useState<string[]>([]);\n\n if (result || isAnswered) {\n return (\n <AskUserContainer data-testid=\"ask-user\" {...props}>\n <AskUserLabel />\n <AskUserBody>\n <AskUserQuestion>{payload.question}</AskUserQuestion>\n {result ? <AskUserOutput result={result} /> : <Badge variant=\"green\">Answered</Badge>}\n </AskUserBody>\n </AskUserContainer>\n );\n }\n\n const submitText = () => {\n const answer = text.trim();\n if (answer && !isSubmitting) onSubmit(answer);\n };\n\n const handleTextKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {\n if (event.key === 'Enter') {\n event.preventDefault();\n submitText();\n }\n };\n\n if (options.length === 0) {\n return (\n <AskUserContainer data-testid=\"ask-user\" {...props}>\n <AskUserLabel />\n <AskUserBody>\n <AskUserQuestion as=\"label\" htmlFor={fieldId} className=\"mb-2 block\">\n {payload.question}\n </AskUserQuestion>\n <div className=\"flex items-center gap-2\">\n <Input\n id={fieldId}\n value={text}\n onChange={event => setText(event.target.value)}\n onKeyDown={handleTextKeyDown}\n placeholder=\"Type your answer...\"\n disabled={isSubmitting}\n size=\"sm\"\n />\n <AskUserSubmit\n className=\"shrink-0 whitespace-nowrap\"\n disabled={isSubmitting || !text.trim()}\n onClick={submitText}\n />\n </div>\n {isSubmitting ? <AskUserPending className=\"mt-2 block\" /> : null}\n {footer}\n </AskUserBody>\n </AskUserContainer>\n );\n }\n\n const isMulti = payload.selectionMode === 'multi_select';\n\n return (\n <AskUserContainer data-testid=\"ask-user\" {...props}>\n <AskUserLabel />\n <AskUserBody>\n <AskUserQuestion id={fieldId}>{payload.question}</AskUserQuestion>\n {isMulti ? (\n <div role=\"group\" aria-labelledby={fieldId} className=\"grid gap-2\">\n {options.map(option => (\n <AskUserOptionRow\n key={option.label}\n label={option.label}\n description={option.description}\n disabled={isSubmitting}\n control={\n <Checkbox\n className=\"mt-0.5\"\n disabled={isSubmitting}\n checked={selected.includes(option.label)}\n onCheckedChange={() =>\n setSelected(current =>\n current.includes(option.label)\n ? current.filter(selectedLabel => selectedLabel !== option.label)\n : [...current, option.label],\n )\n }\n />\n }\n />\n ))}\n <AskUserSubmit\n className=\"mt-1 justify-self-start\"\n disabled={isSubmitting || selected.length === 0}\n onClick={() => onSubmit(selected)}\n >\n Submit answer\n </AskUserSubmit>\n </div>\n ) : (\n <RadioGroup\n aria-labelledby={fieldId}\n disabled={isSubmitting}\n value={selected[0] ?? null}\n onValueChange={value => {\n const label = String(value);\n setSelected([label]);\n onSubmit(label);\n }}\n >\n {options.map(option => (\n <AskUserOptionRow\n key={option.label}\n label={option.label}\n description={option.description}\n disabled={isSubmitting}\n control={<RadioGroupItem className=\"mt-0.5\" value={option.label} />}\n />\n ))}\n </RadioGroup>\n )}\n {isSubmitting ? <AskUserPending className=\"mt-3 block\" /> : null}\n {footer}\n </AskUserBody>\n </AskUserContainer>\n );\n};\n\nexport const AskUser = ({ payload, ...props }: AskUserProps) => {\n const options = validOptions(payload.options);\n const payloadKey = JSON.stringify([payload.question, options.map(option => option.label), payload.selectionMode]);\n\n return <AskUserInput key={payloadKey} payload={payload} options={options} {...props} />;\n};\n"],"names":[],"mappings":"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"}
@@ -2,11 +2,11 @@ import { jsx, jsxs } from 'react/jsx-runtime';
2
2
  import { ChevronRight, Bell, ExternalLink } from 'lucide-react';
3
3
  import { u as useArriving } from './use-watched-CG9KoWl3.js';
4
4
  import { C as Collapsible, b as CollapsibleTrigger, a as CollapsibleContent } from './collapsible-DhhP5p1j.js';
5
- import { T as Txt } from './Txt-DTh3Pa_a.js';
5
+ import { T as Txt } from './Txt-BP1SRHmL.js';
6
6
  import { c as cn } from './cn-65Adrsfj.js';
7
7
  import { truncateString } from './utils/truncate-string.es.js';
8
8
  import { getNotificationNoticeVariant } from './domains/chat/messages/notification-signal-notice-variant.es.js';
9
- import { B as Badge } from './Badge-TD55_qZJ.js';
9
+ import { B as Badge } from './Badge-Bzn8Z-_I.js';
10
10
  import { N as Notice } from './Notice-WT8G4OA6.js';
11
11
 
12
12
  function ChatEventDetail({ children }) {
@@ -104,4 +104,4 @@ function NotificationLink({ link, message }) {
104
104
  }
105
105
 
106
106
  export { ChatNotification as C, ChatEvent as a, chatEventPreview as c };
107
- //# sourceMappingURL=chat-notification-CmdRGO_D.js.map
107
+ //# sourceMappingURL=chat-notification-BI_WRUvG.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chat-notification-CmdRGO_D.js","sources":["../src/ds/components/ai/chat-event/chat-event.tsx","../src/ds/components/ai/chat-event/chat-event-preview.ts","../src/ds/components/ai/chat-event/chat-notification.tsx"],"sourcesContent":["import { ChevronRight } from 'lucide-react';\nimport type { ReactNode } from 'react';\nimport { useArriving } from '@/ds/components/Arrival';\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from '@/ds/components/Collapsible';\nimport { Txt } from '@/ds/components/Txt';\nimport { cn } from '@/lib/utils';\n\ninterface ChatEventProps {\n label: string;\n detail?: string;\n icon: ReactNode;\n children?: ReactNode;\n defaultOpen?: boolean;\n 'aria-label': string;\n 'data-signal-kind'?: string;\n 'data-notification-state'?: string;\n 'data-skill-name'?: string;\n}\n\nfunction ChatEventDetail({ children }: { children: string }) {\n const arriving = useArriving();\n return (\n <Txt as=\"span\" variant=\"meta\" tone=\"muted\" font=\"mono\" className={cn('min-w-0 truncate', arriving)}>\n {children}\n </Txt>\n );\n}\n\nexport function ChatEvent({ label, detail, icon, children, defaultOpen, ...props }: ChatEventProps) {\n const header = (\n <span className=\"flex w-full min-w-0 items-center gap-2 px-1.5 py-1\">\n <span className=\"flex size-4 shrink-0 items-center justify-center\">{icon}</span>\n <Txt as=\"span\" variant=\"caption\" tone=\"muted\" className=\"max-w-[55%] shrink-0 truncate\">\n {label}\n </Txt>\n {detail && <ChatEventDetail>{detail}</ChatEventDetail>}\n <span aria-hidden className=\"min-w-2 flex-1\" />\n <span aria-hidden className=\"flex size-4 shrink-0 items-center justify-center\">\n {children && (\n <span className=\"flex text-muted-foreground opacity-0 group-hover/event:opacity-100 group-focus-visible/event:opacity-100 group-data-[panel-open]/event:rotate-90 group-data-[panel-open]/event:opacity-100 motion-safe:transition motion-safe:duration-150\">\n <ChevronRight size={13} />\n </span>\n )}\n </span>\n </span>\n );\n\n if (!children) {\n return (\n <div className=\"max-w-full min-w-0\" role=\"group\" {...props}>\n {header}\n </div>\n );\n }\n\n return (\n <Collapsible defaultOpen={defaultOpen} className=\"max-w-full min-w-0\" role=\"group\" {...props}>\n <CollapsibleTrigger className=\"group/event w-full cursor-pointer rounded-md text-left hover:bg-fill motion-safe:transition-colors\">\n {header}\n </CollapsibleTrigger>\n <CollapsibleContent className=\"max-w-full min-w-0\">\n <div className=\"relative ml-[14px] max-w-full min-w-0 py-1.5 pr-1 pl-4 before:absolute before:inset-y-0 before:left-0 before:w-px before:bg-border before:mask-b-from-[calc(100%-min(40%,80px))] before:content-['']\">\n {children}\n </div>\n </CollapsibleContent>\n </Collapsible>\n );\n}\n","import { truncateString } from '@/lib/truncate-string';\n\nexport function chatEventPreview(message: string): string {\n return truncateString(message, 72);\n}\n","import { Bell, ExternalLink } from 'lucide-react';\nimport type { ReactNode } from 'react';\nimport { ChatEvent } from './chat-event';\nimport { chatEventPreview } from './chat-event-preview';\nimport { getNotificationNoticeVariant } from './notification-variant';\nimport { Badge } from '@/ds/components/Badge';\nimport { Notice } from '@/ds/components/Notice';\nimport { Txt } from '@/ds/components/Txt';\n\nexport interface ChatNotificationProps {\n label: string;\n message: string;\n variant?: 'row' | 'notice';\n state?: string;\n icon?: ReactNode;\n priority?: string;\n status?: string;\n pending?: string;\n link?: { href: string; label: string };\n defaultOpen?: boolean;\n}\n\nexport function ChatNotification({\n label,\n message,\n variant = 'row',\n state = 'notification',\n icon,\n priority,\n status,\n pending,\n link,\n defaultOpen,\n}: ChatNotificationProps) {\n if (variant === 'notice') {\n const hasContent = Boolean(priority || status || pending || message || link);\n return (\n <Notice\n variant={getNotificationNoticeVariant(priority)}\n title={label}\n icon={icon ?? <Bell />}\n className=\"my-2 max-w-[80%]\"\n >\n {hasContent && (\n <div className=\"flex flex-col gap-2\">\n {(priority || status || pending) && (\n <div className=\"flex flex-wrap items-center gap-2\">\n {priority && <Badge size=\"xs\">{priority}</Badge>}\n {status && <Badge size=\"xs\">{status}</Badge>}\n {pending && <Badge size=\"xs\">{pending} pending</Badge>}\n </div>\n )}\n {message && <Notice.Message className=\"break-words whitespace-pre-wrap\">{message}</Notice.Message>}\n {link && <NotificationLink link={link} message={message} />}\n </div>\n )}\n </Notice>\n );\n }\n\n return (\n <ChatEvent\n label={label}\n detail={chatEventPreview(message)}\n icon={icon ?? <Bell size={13} className=\"text-warning1\" aria-hidden />}\n defaultOpen={defaultOpen}\n data-notification-state={state}\n aria-label={`Notification: ${label}`}\n >\n <div className=\"flex flex-col gap-2\">\n <Txt variant=\"caption\">{message}</Txt>\n {link && <NotificationLink link={link} message={message} />}\n </div>\n </ChatEvent>\n );\n}\n\nfunction NotificationLink({ link, message }: { link: NonNullable<ChatNotificationProps['link']>; message: string }) {\n return (\n <a\n href={link.href}\n target=\"_blank\"\n rel=\"noreferrer\"\n aria-label={`Open notification target: ${message}`}\n className=\"flex w-fit items-center gap-1 text-meta text-muted-foreground hover:text-foreground\"\n >\n {link.label}\n <ExternalLink size={12} aria-hidden />\n </a>\n );\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat-notification-BI_WRUvG.js","sources":["../src/ds/components/ai/chat-event/chat-event.tsx","../src/ds/components/ai/chat-event/chat-event-preview.ts","../src/ds/components/ai/chat-event/chat-notification.tsx"],"sourcesContent":["import { ChevronRight } from 'lucide-react';\nimport type { ReactNode } from 'react';\nimport { useArriving } from '@/ds/components/Arrival';\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from '@/ds/components/Collapsible';\nimport { Txt } from '@/ds/components/Txt';\nimport { cn } from '@/lib/utils';\n\ninterface ChatEventProps {\n label: string;\n detail?: string;\n icon: ReactNode;\n children?: ReactNode;\n defaultOpen?: boolean;\n 'aria-label': string;\n 'data-signal-kind'?: string;\n 'data-notification-state'?: string;\n 'data-skill-name'?: string;\n}\n\nfunction ChatEventDetail({ children }: { children: string }) {\n const arriving = useArriving();\n return (\n <Txt as=\"span\" variant=\"meta\" tone=\"muted\" font=\"mono\" className={cn('min-w-0 truncate', arriving)}>\n {children}\n </Txt>\n );\n}\n\nexport function ChatEvent({ label, detail, icon, children, defaultOpen, ...props }: ChatEventProps) {\n const header = (\n <span className=\"flex w-full min-w-0 items-center gap-2 px-1.5 py-1\">\n <span className=\"flex size-4 shrink-0 items-center justify-center\">{icon}</span>\n <Txt as=\"span\" variant=\"caption\" tone=\"muted\" className=\"max-w-[55%] shrink-0 truncate\">\n {label}\n </Txt>\n {detail && <ChatEventDetail>{detail}</ChatEventDetail>}\n <span aria-hidden className=\"min-w-2 flex-1\" />\n <span aria-hidden className=\"flex size-4 shrink-0 items-center justify-center\">\n {children && (\n <span className=\"flex text-muted-foreground opacity-0 group-hover/event:opacity-100 group-focus-visible/event:opacity-100 group-data-[panel-open]/event:rotate-90 group-data-[panel-open]/event:opacity-100 motion-safe:transition motion-safe:duration-150\">\n <ChevronRight size={13} />\n </span>\n )}\n </span>\n </span>\n );\n\n if (!children) {\n return (\n <div className=\"max-w-full min-w-0\" role=\"group\" {...props}>\n {header}\n </div>\n );\n }\n\n return (\n <Collapsible defaultOpen={defaultOpen} className=\"max-w-full min-w-0\" role=\"group\" {...props}>\n <CollapsibleTrigger className=\"group/event w-full cursor-pointer rounded-md text-left hover:bg-fill motion-safe:transition-colors\">\n {header}\n </CollapsibleTrigger>\n <CollapsibleContent className=\"max-w-full min-w-0\">\n <div className=\"relative ml-[14px] max-w-full min-w-0 py-1.5 pr-1 pl-4 before:absolute before:inset-y-0 before:left-0 before:w-px before:bg-border before:mask-b-from-[calc(100%-min(40%,80px))] before:content-['']\">\n {children}\n </div>\n </CollapsibleContent>\n </Collapsible>\n );\n}\n","import { truncateString } from '@/lib/truncate-string';\n\nexport function chatEventPreview(message: string): string {\n return truncateString(message, 72);\n}\n","import { Bell, ExternalLink } from 'lucide-react';\nimport type { ReactNode } from 'react';\nimport { ChatEvent } from './chat-event';\nimport { chatEventPreview } from './chat-event-preview';\nimport { getNotificationNoticeVariant } from './notification-variant';\nimport { Badge } from '@/ds/components/Badge';\nimport { Notice } from '@/ds/components/Notice';\nimport { Txt } from '@/ds/components/Txt';\n\nexport interface ChatNotificationProps {\n label: string;\n message: string;\n variant?: 'row' | 'notice';\n state?: string;\n icon?: ReactNode;\n priority?: string;\n status?: string;\n pending?: string;\n link?: { href: string; label: string };\n defaultOpen?: boolean;\n}\n\nexport function ChatNotification({\n label,\n message,\n variant = 'row',\n state = 'notification',\n icon,\n priority,\n status,\n pending,\n link,\n defaultOpen,\n}: ChatNotificationProps) {\n if (variant === 'notice') {\n const hasContent = Boolean(priority || status || pending || message || link);\n return (\n <Notice\n variant={getNotificationNoticeVariant(priority)}\n title={label}\n icon={icon ?? <Bell />}\n className=\"my-2 max-w-[80%]\"\n >\n {hasContent && (\n <div className=\"flex flex-col gap-2\">\n {(priority || status || pending) && (\n <div className=\"flex flex-wrap items-center gap-2\">\n {priority && <Badge size=\"xs\">{priority}</Badge>}\n {status && <Badge size=\"xs\">{status}</Badge>}\n {pending && <Badge size=\"xs\">{pending} pending</Badge>}\n </div>\n )}\n {message && <Notice.Message className=\"break-words whitespace-pre-wrap\">{message}</Notice.Message>}\n {link && <NotificationLink link={link} message={message} />}\n </div>\n )}\n </Notice>\n );\n }\n\n return (\n <ChatEvent\n label={label}\n detail={chatEventPreview(message)}\n icon={icon ?? <Bell size={13} className=\"text-warning1\" aria-hidden />}\n defaultOpen={defaultOpen}\n data-notification-state={state}\n aria-label={`Notification: ${label}`}\n >\n <div className=\"flex flex-col gap-2\">\n <Txt variant=\"caption\">{message}</Txt>\n {link && <NotificationLink link={link} message={message} />}\n </div>\n </ChatEvent>\n );\n}\n\nfunction NotificationLink({ link, message }: { link: NonNullable<ChatNotificationProps['link']>; message: string }) {\n return (\n <a\n href={link.href}\n target=\"_blank\"\n rel=\"noreferrer\"\n aria-label={`Open notification target: ${message}`}\n className=\"flex w-fit items-center gap-1 text-meta text-muted-foreground hover:text-foreground\"\n >\n {link.label}\n <ExternalLink size={12} aria-hidden />\n </a>\n );\n}\n"],"names":[],"mappings":"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"}
@@ -4,11 +4,11 @@ const jsxRuntime = require('react/jsx-runtime');
4
4
  const lucideReact = require('lucide-react');
5
5
  const useWatched = require('./use-watched-BixmYWp0.cjs');
6
6
  const collapsible = require('./collapsible-BFSJouuI.cjs');
7
- const Txt = require('./Txt-B4-2nLaI.cjs');
7
+ const Txt = require('./Txt-DPmEpNbp.cjs');
8
8
  const utils_cn = require('./cn-DG0X1KEP.cjs');
9
9
  const utils_truncateString = require('./utils/truncate-string.cjs.js');
10
10
  const domains_chat_messages_notificationSignalNoticeVariant = require('./domains/chat/messages/notification-signal-notice-variant.cjs.js');
11
- const Badge = require('./Badge-BEeYtjmv.cjs');
11
+ const Badge = require('./Badge-DFNxcz-r.cjs');
12
12
  const Notice = require('./Notice-AUNd8fqT.cjs');
13
13
 
14
14
  function ChatEventDetail({ children }) {
@@ -108,4 +108,4 @@ function NotificationLink({ link, message }) {
108
108
  exports.ChatEvent = ChatEvent;
109
109
  exports.ChatNotification = ChatNotification;
110
110
  exports.chatEventPreview = chatEventPreview;
111
- //# sourceMappingURL=chat-notification-DJykWtoj.cjs.map
111
+ //# sourceMappingURL=chat-notification-Dc7jwULm.cjs.map