@mastra/playground-ui 48.0.0-alpha.9 → 48.0.0

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 (616) hide show
  1. package/CHANGELOG.md +328 -0
  2. package/dist/{Button-Bm94fEF2.cjs → Button-B4Ixj2aW.cjs} +4 -3
  3. package/dist/Button-B4Ixj2aW.cjs.map +1 -0
  4. package/dist/{Button-Bx2lFdqb.js → Button-C-9Pzy-Z.js} +4 -3
  5. package/dist/Button-C-9Pzy-Z.js.map +1 -0
  6. package/dist/{Notice-B9cdEg8R.cjs → Notice-DSfh1Ap5.cjs} +2 -2
  7. package/dist/{Notice-B9cdEg8R.cjs.map → Notice-DSfh1Ap5.cjs.map} +1 -1
  8. package/dist/{Notice-DIK9IZsq.js → Notice-DWHQgxkA.js} +2 -2
  9. package/dist/{Notice-DIK9IZsq.js.map → Notice-DWHQgxkA.js.map} +1 -1
  10. package/dist/{SessionExpired-C5ADs4NL.cjs → SessionExpired-CL4bppLl.cjs} +2 -2
  11. package/dist/{SessionExpired-C5ADs4NL.cjs.map → SessionExpired-CL4bppLl.cjs.map} +1 -1
  12. package/dist/{SessionExpired-CHF__hq9.js → SessionExpired-qvMB5AP_.js} +2 -2
  13. package/dist/{SessionExpired-CHF__hq9.js.map → SessionExpired-qvMB5AP_.js.map} +1 -1
  14. package/dist/Shimmer.css +37 -0
  15. package/dist/{combobox-sa_Pxyl4.js → combobox-CH9vBToX.js} +2 -2
  16. package/dist/{combobox-sa_Pxyl4.js.map → combobox-CH9vBToX.js.map} +1 -1
  17. package/dist/{combobox-DXwbHjvQ.cjs → combobox-Z3NehlIY.cjs} +2 -2
  18. package/dist/{combobox-DXwbHjvQ.cjs.map → combobox-Z3NehlIY.cjs.map} +1 -1
  19. package/dist/{command-Duq1xsiS.js → command-BZ7S7MR-.js} +2 -2
  20. package/dist/{command-Duq1xsiS.js.map → command-BZ7S7MR-.js.map} +1 -1
  21. package/dist/{command-qsEykgml.cjs → command-DJwcGKv_.cjs} +2 -2
  22. package/dist/{command-qsEykgml.cjs.map → command-DJwcGKv_.cjs.map} +1 -1
  23. package/dist/components/AlertDialog.cjs.js +1 -1
  24. package/dist/components/AlertDialog.es.js +1 -1
  25. package/dist/components/Button.cjs.js +1 -1
  26. package/dist/components/Button.es.js +1 -1
  27. package/dist/components/ChatShell.cjs.js +10 -6
  28. package/dist/components/ChatShell.cjs.js.map +1 -1
  29. package/dist/components/ChatShell.es.js +10 -6
  30. package/dist/components/ChatShell.es.js.map +1 -1
  31. package/dist/components/ClampedText.cjs.js +1 -1
  32. package/dist/components/ClampedText.es.js +1 -1
  33. package/dist/components/CodeBlock.cjs.js +6 -5
  34. package/dist/components/CodeBlock.cjs.js.map +1 -1
  35. package/dist/components/CodeBlock.es.js +4 -3
  36. package/dist/components/CodeBlock.es.js.map +1 -1
  37. package/dist/components/CodeEditor.cjs.js +1 -1
  38. package/dist/components/CodeEditor.es.js +1 -1
  39. package/dist/components/Columns.cjs.js +1 -1
  40. package/dist/components/Columns.es.js +1 -1
  41. package/dist/components/Combobox.cjs.js +1 -1
  42. package/dist/components/Combobox.es.js +1 -1
  43. package/dist/components/Command.cjs.js +1 -1
  44. package/dist/components/Command.es.js +1 -1
  45. package/dist/components/CommandPalette.cjs.js +1 -1
  46. package/dist/components/CommandPalette.es.js +1 -1
  47. package/dist/components/CopyButton.cjs.js +1 -1
  48. package/dist/components/CopyButton.es.js +1 -1
  49. package/dist/components/DataCodeSection.cjs.js +1 -1
  50. package/dist/components/DataCodeSection.es.js +1 -1
  51. package/dist/components/DataDetailsPanel.cjs.js +2 -2
  52. package/dist/components/DataDetailsPanel.es.js +2 -2
  53. package/dist/components/DataFilter.cjs.js +2 -2
  54. package/dist/components/DataFilter.es.js +2 -2
  55. package/dist/components/DataList.cjs.js +2 -2
  56. package/dist/components/DataList.es.js +2 -2
  57. package/dist/components/DataPanel.cjs.js +1 -1
  58. package/dist/components/DataPanel.es.js +1 -1
  59. package/dist/components/DateRangeTimeline.cjs.js +1 -1
  60. package/dist/components/DateRangeTimeline.es.js +1 -1
  61. package/dist/components/DateTimePicker.cjs.js +2 -2
  62. package/dist/components/DateTimePicker.es.js +2 -2
  63. package/dist/components/DateTimeRangePicker.cjs.js +1 -1
  64. package/dist/components/DateTimeRangePicker.es.js +1 -1
  65. package/dist/components/Dialog.cjs.js +1 -1
  66. package/dist/components/Dialog.es.js +1 -1
  67. package/dist/components/Drawer.cjs.js +1 -1
  68. package/dist/components/Drawer.es.js +1 -1
  69. package/dist/components/DropdownMenu.cjs.js +1 -1
  70. package/dist/components/DropdownMenu.es.js +1 -1
  71. package/dist/components/EnvironmentVariablesEditor.cjs.js +4 -4
  72. package/dist/components/EnvironmentVariablesEditor.es.js +4 -4
  73. package/dist/components/ErrorBoundary.cjs.js +1 -1
  74. package/dist/components/ErrorBoundary.es.js +1 -1
  75. package/dist/components/FormFieldBlocks.cjs.js +2 -2
  76. package/dist/components/FormFieldBlocks.es.js +2 -2
  77. package/dist/components/HoverCard.cjs.js +1 -1
  78. package/dist/components/HoverCard.es.js +1 -1
  79. package/dist/components/InputGroup.cjs.js +1 -1
  80. package/dist/components/InputGroup.es.js +1 -1
  81. package/dist/components/JSONSchemaForm.cjs.js +2 -2
  82. package/dist/components/JSONSchemaForm.es.js +2 -2
  83. package/dist/components/KeyValueList.cjs.js +1 -1
  84. package/dist/components/KeyValueList.es.js +1 -1
  85. package/dist/components/ListSearch.cjs.js +1 -1
  86. package/dist/components/ListSearch.es.js +1 -1
  87. package/dist/components/MainSidebar.cjs.js +73 -50
  88. package/dist/components/MainSidebar.cjs.js.map +1 -1
  89. package/dist/components/MainSidebar.es.js +73 -50
  90. package/dist/components/MainSidebar.es.js.map +1 -1
  91. package/dist/components/MarkdownRenderer.cjs.js +1 -1
  92. package/dist/components/MarkdownRenderer.es.js +1 -1
  93. package/dist/components/MessageScroller.cjs.js +1 -1
  94. package/dist/components/MessageScroller.es.js +1 -1
  95. package/dist/components/Notice.cjs.js +1 -1
  96. package/dist/components/Notice.es.js +1 -1
  97. package/dist/components/PrevNextNav.cjs.js +1 -1
  98. package/dist/components/PrevNextNav.es.js +1 -1
  99. package/dist/components/PropertyFilter.cjs.js +3 -3
  100. package/dist/components/PropertyFilter.es.js +4 -4
  101. package/dist/components/RuleBuilder.cjs.js +2 -2
  102. package/dist/components/RuleBuilder.es.js +2 -2
  103. package/dist/components/SankeyChart.cjs.js +10 -709
  104. package/dist/components/SankeyChart.cjs.js.map +1 -1
  105. package/dist/components/SankeyChart.es.js +2 -706
  106. package/dist/components/SankeyChart.es.js.map +1 -1
  107. package/dist/components/Select.cjs.js +1 -1
  108. package/dist/components/Select.es.js +1 -1
  109. package/dist/components/SessionExpired.cjs.js +1 -1
  110. package/dist/components/SessionExpired.es.js +1 -1
  111. package/dist/components/Shimmer.cjs.js +2 -15
  112. package/dist/components/Shimmer.cjs.js.map +1 -1
  113. package/dist/components/Shimmer.es.js +2 -15
  114. package/dist/components/Shimmer.es.js.map +1 -1
  115. package/dist/components/SideDialog.cjs.js +3 -3
  116. package/dist/components/SideDialog.es.js +3 -3
  117. package/dist/components/Tabs.cjs.js +4 -3
  118. package/dist/components/Tabs.cjs.js.map +1 -1
  119. package/dist/components/Tabs.es.js +2 -1
  120. package/dist/components/Tabs.es.js.map +1 -1
  121. package/dist/components/ThreadList.cjs.js +1 -1
  122. package/dist/components/ThreadList.es.js +1 -1
  123. package/dist/components/ThreadRail.cjs.js +6 -5
  124. package/dist/components/ThreadRail.cjs.js.map +1 -1
  125. package/dist/components/ThreadRail.es.js +6 -6
  126. package/dist/components/ThreadRail.es.js.map +1 -1
  127. package/dist/components/Truncate.cjs.js +1 -1
  128. package/dist/components/Truncate.es.js +1 -1
  129. package/dist/components/ai/ask-user.cjs.js +1 -1
  130. package/dist/components/ai/ask-user.es.js +1 -1
  131. package/dist/components/ai/plan.cjs.js +2 -2
  132. package/dist/components/ai/plan.es.js +2 -2
  133. package/dist/{copy-button-H2iaKMng.js → copy-button-B1GWIQ-x.js} +2 -2
  134. package/dist/{copy-button-H2iaKMng.js.map → copy-button-B1GWIQ-x.js.map} +1 -1
  135. package/dist/{copy-button-BKFcsNE1.cjs → copy-button-DwZ3c7D4.cjs} +2 -2
  136. package/dist/{copy-button-BKFcsNE1.cjs.map → copy-button-DwZ3c7D4.cjs.map} +1 -1
  137. package/dist/{data-code-section-D2zjah_b.cjs → data-code-section-BjmFgJpC.cjs} +5 -5
  138. package/dist/{data-code-section-D2zjah_b.cjs.map → data-code-section-BjmFgJpC.cjs.map} +1 -1
  139. package/dist/{data-code-section-MHMkC6q9.js → data-code-section-PJM5l3aS.js} +5 -5
  140. package/dist/{data-code-section-MHMkC6q9.js.map → data-code-section-PJM5l3aS.js.map} +1 -1
  141. package/dist/{data-list-CnQRIUyN.js → data-list-CnQWE0QP.js} +2 -2
  142. package/dist/{data-list-CnQRIUyN.js.map → data-list-CnQWE0QP.js.map} +1 -1
  143. package/dist/{data-list-Cb-piK4z.cjs → data-list-Cnnnx_vD.cjs} +2 -2
  144. package/dist/{data-list-Cb-piK4z.cjs.map → data-list-Cnnnx_vD.cjs.map} +1 -1
  145. package/dist/{data-panel-BEvHk4wg.js → data-panel-BQqPr6ew.js} +3 -3
  146. package/dist/{data-panel-BEvHk4wg.js.map → data-panel-BQqPr6ew.js.map} +1 -1
  147. package/dist/{data-panel-BumsjXVz.cjs → data-panel-C85h9XvH.cjs} +3 -3
  148. package/dist/{data-panel-BumsjXVz.cjs.map → data-panel-C85h9XvH.cjs.map} +1 -1
  149. package/dist/{date-time-range-picker-yJBIm34J.js → date-time-range-picker-BQpZVrH7.js} +4 -4
  150. package/dist/{date-time-range-picker-yJBIm34J.js.map → date-time-range-picker-BQpZVrH7.js.map} +1 -1
  151. package/dist/{date-time-range-picker-ue0m5G27.cjs → date-time-range-picker-sT6pHDmU.cjs} +4 -4
  152. package/dist/{date-time-range-picker-ue0m5G27.cjs.map → date-time-range-picker-sT6pHDmU.cjs.map} +1 -1
  153. package/dist/{dialog-ClItuCFY.cjs → dialog-5ZYCeKf-.cjs} +2 -2
  154. package/dist/{dialog-ClItuCFY.cjs.map → dialog-5ZYCeKf-.cjs.map} +1 -1
  155. package/dist/{dialog-bnt6epW2.js → dialog-DDXW5M21.js} +2 -2
  156. package/dist/{dialog-bnt6epW2.js.map → dialog-DDXW5M21.js.map} +1 -1
  157. package/dist/domains/logs/components/log-details-view.cjs.js +2 -2
  158. package/dist/domains/logs/components/log-details-view.es.js +2 -2
  159. package/dist/domains/logs/components/logs-error-content.cjs.js +1 -1
  160. package/dist/domains/logs/components/logs-error-content.es.js +1 -1
  161. package/dist/domains/logs/components/logs-toolbar.cjs.js +1 -1
  162. package/dist/domains/logs/components/logs-toolbar.es.js +1 -1
  163. package/dist/domains/logs/components/no-logs-info.cjs.js +1 -1
  164. package/dist/domains/logs/components/no-logs-info.es.js +1 -1
  165. package/dist/domains/memory/components/flame-graph.cjs.js +1 -1
  166. package/dist/domains/memory/components/flame-graph.es.js +1 -1
  167. package/dist/domains/memory/components/memory-studio-panel.cjs.js +1 -1
  168. package/dist/domains/memory/components/memory-studio-panel.es.js +1 -1
  169. package/dist/domains/metrics/components/card-action-buttons.cjs.js +1 -1
  170. package/dist/domains/metrics/components/card-action-buttons.es.js +1 -1
  171. package/dist/domains/metrics/components/date-range-selector.cjs.js +1 -1
  172. package/dist/domains/metrics/components/date-range-selector.es.js +1 -1
  173. package/dist/domains/metrics/components/latency-card-view.cjs.js +4 -3
  174. package/dist/domains/metrics/components/latency-card-view.cjs.js.map +1 -1
  175. package/dist/domains/metrics/components/latency-card-view.es.js +2 -1
  176. package/dist/domains/metrics/components/latency-card-view.es.js.map +1 -1
  177. package/dist/domains/metrics/components/memory-card-view.cjs.js +5 -4
  178. package/dist/domains/metrics/components/memory-card-view.cjs.js.map +1 -1
  179. package/dist/domains/metrics/components/memory-card-view.es.js +3 -2
  180. package/dist/domains/metrics/components/memory-card-view.es.js.map +1 -1
  181. package/dist/domains/metrics/components/model-usage-cost-card-view.cjs.js +1 -1
  182. package/dist/domains/metrics/components/model-usage-cost-card-view.es.js +1 -1
  183. package/dist/domains/metrics/components/scores-card-view.cjs.js +5 -4
  184. package/dist/domains/metrics/components/scores-card-view.cjs.js.map +1 -1
  185. package/dist/domains/metrics/components/scores-card-view.es.js +3 -2
  186. package/dist/domains/metrics/components/scores-card-view.es.js.map +1 -1
  187. package/dist/domains/metrics/components/token-usage-by-agent-card-view.cjs.js +4 -3
  188. package/dist/domains/metrics/components/token-usage-by-agent-card-view.cjs.js.map +1 -1
  189. package/dist/domains/metrics/components/token-usage-by-agent-card-view.es.js +2 -1
  190. package/dist/domains/metrics/components/token-usage-by-agent-card-view.es.js.map +1 -1
  191. package/dist/domains/metrics/components/token-usage-timeline-card-view.cjs.js +4 -3
  192. package/dist/domains/metrics/components/token-usage-timeline-card-view.cjs.js.map +1 -1
  193. package/dist/domains/metrics/components/token-usage-timeline-card-view.es.js +2 -1
  194. package/dist/domains/metrics/components/token-usage-timeline-card-view.es.js.map +1 -1
  195. package/dist/domains/metrics/components/traces-volume-card-view.cjs.js +4 -3
  196. package/dist/domains/metrics/components/traces-volume-card-view.cjs.js.map +1 -1
  197. package/dist/domains/metrics/components/traces-volume-card-view.es.js +2 -1
  198. package/dist/domains/metrics/components/traces-volume-card-view.es.js.map +1 -1
  199. package/dist/domains/traces/components/no-traces-info.cjs.js +1 -1
  200. package/dist/domains/traces/components/no-traces-info.es.js +1 -1
  201. package/dist/domains/traces/components/shared.cjs.js +8 -0
  202. package/dist/domains/traces/components/shared.cjs.js.map +1 -1
  203. package/dist/domains/traces/components/shared.es.js +8 -0
  204. package/dist/domains/traces/components/shared.es.js.map +1 -1
  205. package/dist/domains/traces/components/span-data-panel-view.cjs.js +6 -5
  206. package/dist/domains/traces/components/span-data-panel-view.cjs.js.map +1 -1
  207. package/dist/domains/traces/components/span-data-panel-view.es.js +4 -3
  208. package/dist/domains/traces/components/span-data-panel-view.es.js.map +1 -1
  209. package/dist/domains/traces/components/timeline-name-col.cjs.js +6 -2
  210. package/dist/domains/traces/components/timeline-name-col.cjs.js.map +1 -1
  211. package/dist/domains/traces/components/timeline-name-col.es.js +6 -2
  212. package/dist/domains/traces/components/timeline-name-col.es.js.map +1 -1
  213. package/dist/domains/traces/components/timeline-timing-col.cjs.js +1 -1
  214. package/dist/domains/traces/components/timeline-timing-col.es.js +1 -1
  215. package/dist/domains/traces/components/trace-columns-menu.cjs.js +3 -3
  216. package/dist/domains/traces/components/trace-columns-menu.es.js +3 -3
  217. package/dist/domains/traces/components/trace-data-panel-view.cjs.js +4 -10
  218. package/dist/domains/traces/components/trace-data-panel-view.cjs.js.map +1 -1
  219. package/dist/domains/traces/components/trace-data-panel-view.es.js +5 -11
  220. package/dist/domains/traces/components/trace-data-panel-view.es.js.map +1 -1
  221. package/dist/domains/traces/components/traces-error-content.cjs.js +1 -1
  222. package/dist/domains/traces/components/traces-error-content.es.js +1 -1
  223. package/dist/domains/traces/components/traces-list-mode-toggle.cjs.js +2 -2
  224. package/dist/domains/traces/components/traces-list-mode-toggle.es.js +2 -2
  225. package/dist/domains/traces/components/traces-list-view.cjs.js +2 -2
  226. package/dist/domains/traces/components/traces-list-view.es.js +2 -2
  227. package/dist/domains/traces/components/traces-toolbar.cjs.js +1 -1
  228. package/dist/domains/traces/components/traces-toolbar.es.js +1 -1
  229. package/dist/domains/traces/hooks/use-entity-names.cjs.js +12 -4
  230. package/dist/domains/traces/hooks/use-entity-names.cjs.js.map +1 -1
  231. package/dist/domains/traces/hooks/use-entity-names.es.js +12 -4
  232. package/dist/domains/traces/hooks/use-entity-names.es.js.map +1 -1
  233. package/dist/{drawer-DZ9amYo_.js → drawer-C8jNXutE.js} +2 -2
  234. package/dist/{drawer-DZ9amYo_.js.map → drawer-C8jNXutE.js.map} +1 -1
  235. package/dist/{drawer-CdsTitFp.cjs → drawer-CNnvBMfD.cjs} +2 -2
  236. package/dist/{drawer-CdsTitFp.cjs.map → drawer-CNnvBMfD.cjs.map} +1 -1
  237. package/dist/{dropdown-menu-ppWztidX.cjs → dropdown-menu-BZGlERgf.cjs} +4 -3
  238. package/dist/dropdown-menu-BZGlERgf.cjs.map +1 -0
  239. package/dist/{dropdown-menu-DEFygDZI.js → dropdown-menu-DCMh8P4w.js} +4 -3
  240. package/dist/dropdown-menu-DCMh8P4w.js.map +1 -0
  241. package/dist/ee/signals/components/signals-empty-state.cjs.js +1 -1
  242. package/dist/ee/signals/components/signals-empty-state.es.js +1 -1
  243. package/dist/ee/signals/entity-learning-api.cjs.js +113 -0
  244. package/dist/ee/signals/entity-learning-api.cjs.js.map +1 -0
  245. package/dist/ee/signals/entity-learning-api.d.ts +2 -0
  246. package/dist/ee/signals/entity-learning-api.es.js +99 -0
  247. package/dist/ee/signals/entity-learning-api.es.js.map +1 -0
  248. package/dist/ee/signals/examples-pager.cjs.js +49 -0
  249. package/dist/ee/signals/examples-pager.cjs.js.map +1 -0
  250. package/dist/ee/signals/examples-pager.d.ts +2 -0
  251. package/dist/ee/signals/examples-pager.es.js +44 -0
  252. package/dist/ee/signals/examples-pager.es.js.map +1 -0
  253. package/dist/ee/signals/flow-card.cjs.js +105 -0
  254. package/dist/ee/signals/flow-card.cjs.js.map +1 -0
  255. package/dist/ee/signals/flow-card.d.ts +2 -0
  256. package/dist/ee/signals/flow-card.es.js +101 -0
  257. package/dist/ee/signals/flow-card.es.js.map +1 -0
  258. package/dist/ee/signals/hooks/theme-query-guards.cjs.js +20 -0
  259. package/dist/ee/signals/hooks/theme-query-guards.cjs.js.map +1 -0
  260. package/dist/ee/signals/hooks/theme-query-guards.d.ts +2 -0
  261. package/dist/ee/signals/hooks/theme-query-guards.es.js +14 -0
  262. package/dist/ee/signals/hooks/theme-query-guards.es.js.map +1 -0
  263. package/dist/ee/signals/hooks/use-entity-learning-progress.cjs.js +19 -0
  264. package/dist/ee/signals/hooks/use-entity-learning-progress.cjs.js.map +1 -0
  265. package/dist/ee/signals/hooks/use-entity-learning-progress.d.ts +2 -0
  266. package/dist/ee/signals/hooks/use-entity-learning-progress.es.js +15 -0
  267. package/dist/ee/signals/hooks/use-entity-learning-progress.es.js.map +1 -0
  268. package/dist/ee/signals/hooks/use-noise-examples.cjs.js +32 -0
  269. package/dist/ee/signals/hooks/use-noise-examples.cjs.js.map +1 -0
  270. package/dist/ee/signals/hooks/use-noise-examples.d.ts +2 -0
  271. package/dist/ee/signals/hooks/use-noise-examples.es.js +28 -0
  272. package/dist/ee/signals/hooks/use-noise-examples.es.js.map +1 -0
  273. package/dist/ee/signals/hooks/use-noise.cjs.js +22 -0
  274. package/dist/ee/signals/hooks/use-noise.cjs.js.map +1 -0
  275. package/dist/ee/signals/hooks/use-noise.d.ts +2 -0
  276. package/dist/ee/signals/hooks/use-noise.es.js +18 -0
  277. package/dist/ee/signals/hooks/use-noise.es.js.map +1 -0
  278. package/dist/ee/signals/hooks/use-snapshot-playback.cjs.js +22 -0
  279. package/dist/ee/signals/hooks/use-snapshot-playback.cjs.js.map +1 -0
  280. package/dist/ee/signals/hooks/use-snapshot-playback.d.ts +2 -0
  281. package/dist/ee/signals/hooks/use-snapshot-playback.es.js +18 -0
  282. package/dist/ee/signals/hooks/use-snapshot-playback.es.js.map +1 -0
  283. package/dist/ee/signals/hooks/use-theme-detail.cjs.js +27 -0
  284. package/dist/ee/signals/hooks/use-theme-detail.cjs.js.map +1 -0
  285. package/dist/ee/signals/hooks/use-theme-detail.d.ts +2 -0
  286. package/dist/ee/signals/hooks/use-theme-detail.es.js +23 -0
  287. package/dist/ee/signals/hooks/use-theme-detail.es.js.map +1 -0
  288. package/dist/ee/signals/hooks/use-theme-entities.cjs.js +18 -0
  289. package/dist/ee/signals/hooks/use-theme-entities.cjs.js.map +1 -0
  290. package/dist/ee/signals/hooks/use-theme-entities.d.ts +2 -0
  291. package/dist/ee/signals/hooks/use-theme-entities.es.js +14 -0
  292. package/dist/ee/signals/hooks/use-theme-entities.es.js.map +1 -0
  293. package/dist/ee/signals/hooks/use-theme-examples.cjs.js +40 -0
  294. package/dist/ee/signals/hooks/use-theme-examples.cjs.js.map +1 -0
  295. package/dist/ee/signals/hooks/use-theme-examples.d.ts +2 -0
  296. package/dist/ee/signals/hooks/use-theme-examples.es.js +36 -0
  297. package/dist/ee/signals/hooks/use-theme-examples.es.js.map +1 -0
  298. package/dist/ee/signals/hooks/use-theme-flow.cjs.js +23 -0
  299. package/dist/ee/signals/hooks/use-theme-flow.cjs.js.map +1 -0
  300. package/dist/ee/signals/hooks/use-theme-flow.d.ts +2 -0
  301. package/dist/ee/signals/hooks/use-theme-flow.es.js +19 -0
  302. package/dist/ee/signals/hooks/use-theme-flow.es.js.map +1 -0
  303. package/dist/ee/signals/hooks/use-theme-flows.cjs.js +22 -0
  304. package/dist/ee/signals/hooks/use-theme-flows.cjs.js.map +1 -0
  305. package/dist/ee/signals/hooks/use-theme-flows.d.ts +2 -0
  306. package/dist/ee/signals/hooks/use-theme-flows.es.js +18 -0
  307. package/dist/ee/signals/hooks/use-theme-flows.es.js.map +1 -0
  308. package/dist/ee/signals/hooks/use-theme-history.cjs.js +20 -0
  309. package/dist/ee/signals/hooks/use-theme-history.cjs.js.map +1 -0
  310. package/dist/ee/signals/hooks/use-theme-history.d.ts +2 -0
  311. package/dist/ee/signals/hooks/use-theme-history.es.js +16 -0
  312. package/dist/ee/signals/hooks/use-theme-history.es.js.map +1 -0
  313. package/dist/ee/signals/hooks/use-theme-paths.cjs.js +21 -0
  314. package/dist/ee/signals/hooks/use-theme-paths.cjs.js.map +1 -0
  315. package/dist/ee/signals/hooks/use-theme-paths.d.ts +2 -0
  316. package/dist/ee/signals/hooks/use-theme-paths.es.js +17 -0
  317. package/dist/ee/signals/hooks/use-theme-paths.es.js.map +1 -0
  318. package/dist/ee/signals/hooks/use-theme-snapshots.cjs.js +22 -0
  319. package/dist/ee/signals/hooks/use-theme-snapshots.cjs.js.map +1 -0
  320. package/dist/ee/signals/hooks/use-theme-snapshots.d.ts +2 -0
  321. package/dist/ee/signals/hooks/use-theme-snapshots.es.js +18 -0
  322. package/dist/ee/signals/hooks/use-theme-snapshots.es.js.map +1 -0
  323. package/dist/ee/signals/hooks/use-trace-insight.cjs.js +21 -0
  324. package/dist/ee/signals/hooks/use-trace-insight.cjs.js.map +1 -0
  325. package/dist/ee/signals/hooks/use-trace-insight.d.ts +2 -0
  326. package/dist/ee/signals/hooks/use-trace-insight.es.js +17 -0
  327. package/dist/ee/signals/hooks/use-trace-insight.es.js.map +1 -0
  328. package/dist/ee/signals/hooks.cjs.js +30 -0
  329. package/dist/ee/signals/hooks.cjs.js.map +1 -0
  330. package/dist/ee/signals/hooks.d.ts +2 -0
  331. package/dist/ee/signals/hooks.es.js +12 -0
  332. package/dist/ee/signals/hooks.es.js.map +1 -0
  333. package/dist/ee/signals/lifeline-point.cjs.js +73 -0
  334. package/dist/ee/signals/lifeline-point.cjs.js.map +1 -0
  335. package/dist/ee/signals/lifeline-point.d.ts +2 -0
  336. package/dist/ee/signals/lifeline-point.es.js +69 -0
  337. package/dist/ee/signals/lifeline-point.es.js.map +1 -0
  338. package/dist/ee/signals/lifeline-row.cjs.js +118 -0
  339. package/dist/ee/signals/lifeline-row.cjs.js.map +1 -0
  340. package/dist/ee/signals/lifeline-row.d.ts +2 -0
  341. package/dist/ee/signals/lifeline-row.es.js +114 -0
  342. package/dist/ee/signals/lifeline-row.es.js.map +1 -0
  343. package/dist/ee/signals/noise-detail-panel.cjs.js +96 -0
  344. package/dist/ee/signals/noise-detail-panel.cjs.js.map +1 -0
  345. package/dist/ee/signals/noise-detail-panel.d.ts +2 -0
  346. package/dist/ee/signals/noise-detail-panel.es.js +92 -0
  347. package/dist/ee/signals/noise-detail-panel.es.js.map +1 -0
  348. package/dist/ee/signals/sankey-signals-data.cjs.js +138 -0
  349. package/dist/ee/signals/sankey-signals-data.cjs.js.map +1 -0
  350. package/dist/ee/signals/sankey-signals-data.d.ts +2 -0
  351. package/dist/ee/signals/sankey-signals-data.es.js +127 -0
  352. package/dist/ee/signals/sankey-signals-data.es.js.map +1 -0
  353. package/dist/ee/signals/sankey-signals.cjs.js +367 -0
  354. package/dist/ee/signals/sankey-signals.cjs.js.map +1 -0
  355. package/dist/ee/signals/sankey-signals.d.ts +2 -0
  356. package/dist/ee/signals/sankey-signals.es.js +363 -0
  357. package/dist/ee/signals/sankey-signals.es.js.map +1 -0
  358. package/dist/ee/signals/signal-delta-column.cjs.js +90 -0
  359. package/dist/ee/signals/signal-delta-column.cjs.js.map +1 -0
  360. package/dist/ee/signals/signal-delta-column.d.ts +2 -0
  361. package/dist/ee/signals/signal-delta-column.es.js +86 -0
  362. package/dist/ee/signals/signal-delta-column.es.js.map +1 -0
  363. package/dist/ee/signals/signal-formatting.cjs.js +83 -0
  364. package/dist/ee/signals/signal-formatting.cjs.js.map +1 -0
  365. package/dist/ee/signals/signal-formatting.d.ts +2 -0
  366. package/dist/ee/signals/signal-formatting.es.js +70 -0
  367. package/dist/ee/signals/signal-formatting.es.js.map +1 -0
  368. package/dist/ee/signals/signal-lifelines.cjs.js +69 -0
  369. package/dist/ee/signals/signal-lifelines.cjs.js.map +1 -0
  370. package/dist/ee/signals/signal-lifelines.d.ts +2 -0
  371. package/dist/ee/signals/signal-lifelines.es.js +65 -0
  372. package/dist/ee/signals/signal-lifelines.es.js.map +1 -0
  373. package/dist/ee/signals/signals-error-state.cjs.js +28 -0
  374. package/dist/ee/signals/signals-error-state.cjs.js.map +1 -0
  375. package/dist/ee/signals/signals-error-state.d.ts +2 -0
  376. package/dist/ee/signals/signals-error-state.es.js +24 -0
  377. package/dist/ee/signals/signals-error-state.es.js.map +1 -0
  378. package/dist/ee/signals/signals-loading-skeleton.cjs.js +57 -0
  379. package/dist/ee/signals/signals-loading-skeleton.cjs.js.map +1 -0
  380. package/dist/ee/signals/signals-loading-skeleton.d.ts +2 -0
  381. package/dist/ee/signals/signals-loading-skeleton.es.js +52 -0
  382. package/dist/ee/signals/signals-loading-skeleton.es.js.map +1 -0
  383. package/dist/ee/signals/snapshot-timeline-data.cjs.js +40 -0
  384. package/dist/ee/signals/snapshot-timeline-data.cjs.js.map +1 -0
  385. package/dist/ee/signals/snapshot-timeline-data.d.ts +2 -0
  386. package/dist/ee/signals/snapshot-timeline-data.es.js +34 -0
  387. package/dist/ee/signals/snapshot-timeline-data.es.js.map +1 -0
  388. package/dist/ee/signals/snapshot-timeline.cjs.js +109 -0
  389. package/dist/ee/signals/snapshot-timeline.cjs.js.map +1 -0
  390. package/dist/ee/signals/snapshot-timeline.d.ts +2 -0
  391. package/dist/ee/signals/snapshot-timeline.es.js +104 -0
  392. package/dist/ee/signals/snapshot-timeline.es.js.map +1 -0
  393. package/dist/ee/signals/sortable-signal-headers.cjs.js +145 -0
  394. package/dist/ee/signals/sortable-signal-headers.cjs.js.map +1 -0
  395. package/dist/ee/signals/sortable-signal-headers.d.ts +2 -0
  396. package/dist/ee/signals/sortable-signal-headers.es.js +141 -0
  397. package/dist/ee/signals/sortable-signal-headers.es.js.map +1 -0
  398. package/dist/ee/signals/theme-compare-data.cjs.js +46 -0
  399. package/dist/ee/signals/theme-compare-data.cjs.js.map +1 -0
  400. package/dist/ee/signals/theme-compare-data.d.ts +2 -0
  401. package/dist/ee/signals/theme-compare-data.es.js +41 -0
  402. package/dist/ee/signals/theme-compare-data.es.js.map +1 -0
  403. package/dist/ee/signals/theme-compare-sparkline.cjs.js +67 -0
  404. package/dist/ee/signals/theme-compare-sparkline.cjs.js.map +1 -0
  405. package/dist/ee/signals/theme-compare-sparkline.d.ts +2 -0
  406. package/dist/ee/signals/theme-compare-sparkline.es.js +63 -0
  407. package/dist/ee/signals/theme-compare-sparkline.es.js.map +1 -0
  408. package/dist/ee/signals/theme-compare.cjs.js +103 -0
  409. package/dist/ee/signals/theme-compare.cjs.js.map +1 -0
  410. package/dist/ee/signals/theme-compare.d.ts +2 -0
  411. package/dist/ee/signals/theme-compare.es.js +99 -0
  412. package/dist/ee/signals/theme-compare.es.js.map +1 -0
  413. package/dist/ee/signals/theme-detail-panel.cjs.js +171 -0
  414. package/dist/ee/signals/theme-detail-panel.cjs.js.map +1 -0
  415. package/dist/ee/signals/theme-detail-panel.d.ts +2 -0
  416. package/dist/ee/signals/theme-detail-panel.es.js +167 -0
  417. package/dist/ee/signals/theme-detail-panel.es.js.map +1 -0
  418. package/dist/ee/signals/theme-drilldown-data.cjs.js +115 -0
  419. package/dist/ee/signals/theme-drilldown-data.cjs.js.map +1 -0
  420. package/dist/ee/signals/theme-drilldown-data.d.ts +2 -0
  421. package/dist/ee/signals/theme-drilldown-data.es.js +109 -0
  422. package/dist/ee/signals/theme-drilldown-data.es.js.map +1 -0
  423. package/dist/ee/signals/theme-filter-banner.cjs.js +64 -0
  424. package/dist/ee/signals/theme-filter-banner.cjs.js.map +1 -0
  425. package/dist/ee/signals/theme-filter-banner.d.ts +2 -0
  426. package/dist/ee/signals/theme-filter-banner.es.js +60 -0
  427. package/dist/ee/signals/theme-filter-banner.es.js.map +1 -0
  428. package/dist/ee/signals/theme-lifelines-data.cjs.js +62 -0
  429. package/dist/ee/signals/theme-lifelines-data.cjs.js.map +1 -0
  430. package/dist/ee/signals/theme-lifelines-data.d.ts +2 -0
  431. package/dist/ee/signals/theme-lifelines-data.es.js +56 -0
  432. package/dist/ee/signals/theme-lifelines-data.es.js.map +1 -0
  433. package/dist/ee/signals/theme-lifelines.cjs.js +75 -0
  434. package/dist/ee/signals/theme-lifelines.cjs.js.map +1 -0
  435. package/dist/ee/signals/theme-lifelines.d.ts +2 -0
  436. package/dist/ee/signals/theme-lifelines.es.js +71 -0
  437. package/dist/ee/signals/theme-lifelines.es.js.map +1 -0
  438. package/dist/ee/signals/theme-trend-chart.cjs.js +83 -0
  439. package/dist/ee/signals/theme-trend-chart.cjs.js.map +1 -0
  440. package/dist/ee/signals/theme-trend-chart.d.ts +2 -0
  441. package/dist/ee/signals/theme-trend-chart.es.js +79 -0
  442. package/dist/ee/signals/theme-trend-chart.es.js.map +1 -0
  443. package/dist/ee/signals/theme-trend.cjs.js +27 -0
  444. package/dist/ee/signals/theme-trend.cjs.js.map +1 -0
  445. package/dist/ee/signals/theme-trend.d.ts +2 -0
  446. package/dist/ee/signals/theme-trend.es.js +22 -0
  447. package/dist/ee/signals/theme-trend.es.js.map +1 -0
  448. package/dist/ee/signals/trace-insight-view.cjs.js +89 -0
  449. package/dist/ee/signals/trace-insight-view.cjs.js.map +1 -0
  450. package/dist/ee/signals/trace-insight-view.d.ts +2 -0
  451. package/dist/ee/signals/trace-insight-view.es.js +85 -0
  452. package/dist/ee/signals/trace-insight-view.es.js.map +1 -0
  453. package/dist/ee/signals/trace-intelligence-context.cjs.js +24 -0
  454. package/dist/ee/signals/trace-intelligence-context.cjs.js.map +1 -0
  455. package/dist/ee/signals/trace-intelligence-context.d.ts +2 -0
  456. package/dist/ee/signals/trace-intelligence-context.es.js +19 -0
  457. package/dist/ee/signals/trace-intelligence-context.es.js.map +1 -0
  458. package/dist/ee/signals/trace-intelligence-explainer.cjs.js +45 -0
  459. package/dist/ee/signals/trace-intelligence-explainer.cjs.js.map +1 -0
  460. package/dist/ee/signals/trace-intelligence-explainer.d.ts +2 -0
  461. package/dist/ee/signals/trace-intelligence-explainer.es.js +41 -0
  462. package/dist/ee/signals/trace-intelligence-explainer.es.js.map +1 -0
  463. package/dist/ee/signals/trace-intelligence-provider.cjs.js +19 -0
  464. package/dist/ee/signals/trace-intelligence-provider.cjs.js.map +1 -0
  465. package/dist/ee/signals/trace-intelligence-provider.d.ts +2 -0
  466. package/dist/ee/signals/trace-intelligence-provider.es.js +15 -0
  467. package/dist/ee/signals/trace-intelligence-provider.es.js.map +1 -0
  468. package/dist/ee/signals/types.cjs.js +3 -0
  469. package/dist/ee/signals/types.cjs.js.map +1 -0
  470. package/dist/ee/signals/types.d.ts +2 -0
  471. package/dist/ee/signals/types.es.js +2 -0
  472. package/dist/ee/signals/types.es.js.map +1 -0
  473. package/dist/ee/signals/use-trace-intelligence.cjs.js +13 -0
  474. package/dist/ee/signals/use-trace-intelligence.cjs.js.map +1 -0
  475. package/dist/ee/signals/use-trace-intelligence.d.ts +2 -0
  476. package/dist/ee/signals/use-trace-intelligence.es.js +9 -0
  477. package/dist/ee/signals/use-trace-intelligence.es.js.map +1 -0
  478. package/dist/ee/signals/view-mode-tab.cjs.js +18 -0
  479. package/dist/ee/signals/view-mode-tab.cjs.js.map +1 -0
  480. package/dist/ee/signals/view-mode-tab.d.ts +2 -0
  481. package/dist/ee/signals/view-mode-tab.es.js +14 -0
  482. package/dist/ee/signals/view-mode-tab.es.js.map +1 -0
  483. package/dist/ee/signals.cjs.js +38 -0
  484. package/dist/ee/signals.cjs.js.map +1 -1
  485. package/dist/ee/signals.es.js +18 -0
  486. package/dist/ee/signals.es.js.map +1 -1
  487. package/dist/ee/topics/components/topic-trace-summary-list.cjs.js +3 -3
  488. package/dist/ee/topics/components/topic-trace-summary-list.es.js +3 -3
  489. package/dist/{hover-card-crVofiZO.js → hover-card-Bs845QbV.js} +2 -2
  490. package/dist/{hover-card-crVofiZO.js.map → hover-card-Bs845QbV.js.map} +1 -1
  491. package/dist/{hover-card-Bx258om1.cjs → hover-card-Cd9QK50X.cjs} +2 -2
  492. package/dist/{hover-card-Bx258om1.cjs.map → hover-card-Cd9QK50X.cjs.map} +1 -1
  493. package/dist/{input-group-CH72YUVL.cjs → input-group-BTaw3Ycd.cjs} +2 -2
  494. package/dist/{input-group-CH72YUVL.cjs.map → input-group-BTaw3Ycd.cjs.map} +1 -1
  495. package/dist/{input-group-Dzs-ai0n.js → input-group-CWT_IwX0.js} +2 -2
  496. package/dist/{input-group-Dzs-ai0n.js.map → input-group-CWT_IwX0.js.map} +1 -1
  497. package/dist/{markdown-renderer-Bi2fWeoF.js → markdown-renderer-DszxuuNM.js} +36 -18
  498. package/dist/markdown-renderer-DszxuuNM.js.map +1 -0
  499. package/dist/{markdown-renderer-DwfNrhEH.cjs → markdown-renderer-g8xNLOc0.cjs} +36 -18
  500. package/dist/markdown-renderer-g8xNLOc0.cjs.map +1 -0
  501. package/dist/{message-scroller-BmzjZZNs.cjs → message-scroller-BssU0EKT.cjs} +89 -16
  502. package/dist/message-scroller-BssU0EKT.cjs.map +1 -0
  503. package/dist/{message-scroller-D5O7sUS5.js → message-scroller-DlVS0FW7.js} +89 -16
  504. package/dist/message-scroller-DlVS0FW7.js.map +1 -0
  505. package/dist/{property-filter-applied-DI4w1ACS.js → property-filter-applied-C2teL4uw.js} +3 -3
  506. package/dist/{property-filter-applied-DI4w1ACS.js.map → property-filter-applied-C2teL4uw.js.map} +1 -1
  507. package/dist/{property-filter-applied-BhxbHAN8.cjs → property-filter-applied-ChK5XtsC.cjs} +3 -3
  508. package/dist/{property-filter-applied-BhxbHAN8.cjs.map → property-filter-applied-ChK5XtsC.cjs.map} +1 -1
  509. package/dist/resize/panel-drawer.cjs.js +1 -1
  510. package/dist/resize/panel-drawer.es.js +1 -1
  511. package/dist/sankey-chart-Bp-DrL1q.cjs +925 -0
  512. package/dist/sankey-chart-Bp-DrL1q.cjs.map +1 -0
  513. package/dist/sankey-chart-zhW_F0Rm.js +915 -0
  514. package/dist/sankey-chart-zhW_F0Rm.js.map +1 -0
  515. package/dist/{search-field-block-DCnFZzRK.js → search-field-block-D0PBxCxK.js} +2 -2
  516. package/dist/{search-field-block-DCnFZzRK.js.map → search-field-block-D0PBxCxK.js.map} +1 -1
  517. package/dist/{search-field-block-D6TdrHZX.cjs → search-field-block-D4vuLoZI.cjs} +2 -2
  518. package/dist/{search-field-block-D6TdrHZX.cjs.map → search-field-block-D4vuLoZI.cjs.map} +1 -1
  519. package/dist/{select-Beo8qQ0e.js → select-B_E0ADD5.js} +2 -2
  520. package/dist/{select-Beo8qQ0e.js.map → select-B_E0ADD5.js.map} +1 -1
  521. package/dist/{select-B6ce20XX.cjs → select-OAXqZLkC.cjs} +2 -2
  522. package/dist/{select-B6ce20XX.cjs.map → select-OAXqZLkC.cjs.map} +1 -1
  523. package/dist/{select-field-block-svlHplxW.cjs → select-field-block-BN9oU5B5.cjs} +2 -2
  524. package/dist/{select-field-block-svlHplxW.cjs.map → select-field-block-BN9oU5B5.cjs.map} +1 -1
  525. package/dist/{select-field-block-DXw3tD0y.js → select-field-block-D1Na8gZW.js} +2 -2
  526. package/dist/{select-field-block-DXw3tD0y.js.map → select-field-block-D1Na8gZW.js.map} +1 -1
  527. package/dist/src/domains/traces/hooks/use-entity-names.d.ts +2 -1
  528. package/dist/src/ds/components/ChatShell/chat-shell.d.ts +9 -6
  529. package/dist/src/ds/components/MainSidebar/main-sidebar-nav-item-classes.d.ts +13 -2
  530. package/dist/src/ds/components/MainSidebar/main-sidebar-nav-link.d.ts +2 -2
  531. package/dist/src/ds/components/MarkdownRenderer/markdown-renderer.d.ts +3 -1
  532. package/dist/src/ds/components/SankeyChart/sankey-chart.d.ts +7 -2
  533. package/dist/src/ds/components/SankeyChart/sankey-portal-tooltip.d.ts +8 -0
  534. package/dist/src/ds/components/SankeyChart/use-sankey-geometry-transition.d.ts +11 -0
  535. package/dist/src/ds/components/SankeyChart/use-sankey-hover-tooltip.d.ts +15 -0
  536. package/dist/src/ds/components/ThreadRail/thread-rail-turns.d.ts +2 -0
  537. package/dist/src/ee/signals/entity-learning-api.d.ts +13 -0
  538. package/dist/src/ee/signals/examples-pager.d.ts +7 -0
  539. package/dist/src/ee/signals/flow-card.d.ts +14 -0
  540. package/dist/src/ee/signals/hooks/index.d.ts +11 -0
  541. package/dist/src/ee/signals/hooks/theme-query-guards.d.ts +3 -0
  542. package/dist/src/ee/signals/hooks/use-entity-learning-progress.d.ts +1 -0
  543. package/dist/src/ee/signals/hooks/use-noise-examples.d.ts +2 -0
  544. package/dist/src/ee/signals/hooks/use-noise.d.ts +2 -0
  545. package/dist/src/ee/signals/hooks/use-snapshot-playback.d.ts +9 -0
  546. package/dist/src/ee/signals/hooks/use-theme-detail.d.ts +2 -0
  547. package/dist/src/ee/signals/hooks/use-theme-entities.d.ts +1 -0
  548. package/dist/src/ee/signals/hooks/use-theme-examples.d.ts +2 -0
  549. package/dist/src/ee/signals/hooks/use-theme-flow.d.ts +2 -0
  550. package/dist/src/ee/signals/hooks/use-theme-flows.d.ts +2 -0
  551. package/dist/src/ee/signals/hooks/use-theme-history.d.ts +2 -0
  552. package/dist/src/ee/signals/hooks/use-theme-paths.d.ts +2 -0
  553. package/dist/src/ee/signals/hooks/use-theme-snapshots.d.ts +2 -0
  554. package/dist/src/ee/signals/hooks/use-trace-insight.d.ts +1 -0
  555. package/dist/src/ee/signals/index.d.ts +9 -0
  556. package/dist/src/ee/signals/lifeline-point.d.ts +8 -0
  557. package/dist/src/ee/signals/lifeline-row.d.ts +11 -0
  558. package/dist/src/ee/signals/noise-detail-panel.d.ts +10 -0
  559. package/dist/src/ee/signals/sankey-signals-data.d.ts +41 -0
  560. package/dist/src/ee/signals/sankey-signals.d.ts +12 -0
  561. package/dist/src/ee/signals/signal-delta-column.d.ts +12 -0
  562. package/dist/src/ee/signals/signal-formatting.d.ts +15 -0
  563. package/dist/src/ee/signals/signal-lifelines.d.ts +9 -0
  564. package/dist/src/ee/signals/signals-error-state.d.ts +5 -0
  565. package/dist/src/ee/signals/signals-loading-skeleton.d.ts +2 -0
  566. package/dist/src/ee/signals/snapshot-timeline-data.d.ts +12 -0
  567. package/dist/src/ee/signals/snapshot-timeline.d.ts +25 -0
  568. package/dist/src/ee/signals/sortable-signal-headers.d.ts +6 -0
  569. package/dist/src/ee/signals/theme-compare-data.d.ts +24 -0
  570. package/dist/src/ee/signals/theme-compare-sparkline.d.ts +5 -0
  571. package/dist/src/ee/signals/theme-compare.d.ts +17 -0
  572. package/dist/src/ee/signals/theme-detail-panel.d.ts +11 -0
  573. package/dist/src/ee/signals/theme-drilldown-data.d.ts +10 -0
  574. package/dist/src/ee/signals/theme-filter-banner.d.ts +8 -0
  575. package/dist/src/ee/signals/theme-lifelines-data.d.ts +35 -0
  576. package/dist/src/ee/signals/theme-lifelines.d.ts +17 -0
  577. package/dist/src/ee/signals/theme-trend-chart.d.ts +6 -0
  578. package/dist/src/ee/signals/theme-trend.d.ts +17 -0
  579. package/dist/src/ee/signals/trace-insight-view.d.ts +6 -0
  580. package/dist/src/ee/signals/trace-intelligence-context.d.ts +10 -0
  581. package/dist/src/ee/signals/trace-intelligence-explainer.d.ts +2 -0
  582. package/dist/src/ee/signals/trace-intelligence-provider.d.ts +11 -0
  583. package/dist/src/ee/signals/types.d.ts +1 -0
  584. package/dist/src/ee/signals/use-trace-intelligence.d.ts +1 -0
  585. package/dist/src/ee/signals/view-mode-tab.d.ts +6 -0
  586. package/dist/src/test/msw-server.d.ts +1 -0
  587. package/dist/src/test/vitest-setup.d.ts +1 -0
  588. package/dist/style.css +306 -18
  589. package/dist/tabs-root-BBPou4QC.js +69 -0
  590. package/dist/tabs-root-BBPou4QC.js.map +1 -0
  591. package/dist/tabs-root-VtBc6K2q.cjs +72 -0
  592. package/dist/tabs-root-VtBc6K2q.cjs.map +1 -0
  593. package/dist/{tabs-tab-BkUCE-4E.cjs → tabs-tab-Cq4YR31P.cjs} +2 -67
  594. package/dist/tabs-tab-Cq4YR31P.cjs.map +1 -0
  595. package/dist/{tabs-tab-DDGltcUc.js → tabs-tab-D5JTAehi.js} +6 -69
  596. package/dist/tabs-tab-D5JTAehi.js.map +1 -0
  597. package/dist/{time-picker-mLzcoQMO.js → time-picker-CkqREdQB.js} +2 -2
  598. package/dist/{time-picker-mLzcoQMO.js.map → time-picker-CkqREdQB.js.map} +1 -1
  599. package/dist/{time-picker-BOQtPoyD.cjs → time-picker-Dy2oyq8P.cjs} +2 -2
  600. package/dist/{time-picker-BOQtPoyD.cjs.map → time-picker-Dy2oyq8P.cjs.map} +1 -1
  601. package/dist/{traces-data-list-DtuaCDES.js → traces-data-list-B3wMvCfk.js} +2 -2
  602. package/dist/{traces-data-list-DtuaCDES.js.map → traces-data-list-B3wMvCfk.js.map} +1 -1
  603. package/dist/{traces-data-list-vsvvvEiP.cjs → traces-data-list-pTNo_zbS.cjs} +2 -2
  604. package/dist/{traces-data-list-vsvvvEiP.cjs.map → traces-data-list-pTNo_zbS.cjs.map} +1 -1
  605. package/package.json +8 -8
  606. package/theme.css +6 -8
  607. package/dist/Button-Bm94fEF2.cjs.map +0 -1
  608. package/dist/Button-Bx2lFdqb.js.map +0 -1
  609. package/dist/dropdown-menu-DEFygDZI.js.map +0 -1
  610. package/dist/dropdown-menu-ppWztidX.cjs.map +0 -1
  611. package/dist/markdown-renderer-Bi2fWeoF.js.map +0 -1
  612. package/dist/markdown-renderer-DwfNrhEH.cjs.map +0 -1
  613. package/dist/message-scroller-BmzjZZNs.cjs.map +0 -1
  614. package/dist/message-scroller-D5O7sUS5.js.map +0 -1
  615. package/dist/tabs-tab-BkUCE-4E.cjs.map +0 -1
  616. package/dist/tabs-tab-DDGltcUc.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signal-delta-column.es.js","sources":["../../../src/ee/signals/signal-delta-column.tsx"],"sourcesContent":["import { getSignalHue } from './signal-colors';\nimport { formatSignalName, SIGNAL_DESCRIPTIONS } from './signal-formatting';\nimport { computeThemeShareDeltas, themeShareSeries } from './theme-compare-data';\nimport { ThemeCompareSparkline } from './theme-compare-sparkline';\nimport type { ThemeSelection } from './theme-drilldown-data';\nimport type { ThemeFlowResponse, TraceSignalName } from './types';\nimport { nodeColor } from '@/ds/components/SankeyChart';\nimport { Tooltip, TooltipContent, TooltipTrigger } from '@/ds/components/Tooltip';\n\nfunction percent(share: number) {\n return `${Math.round(share * 100)}%`;\n}\n\nfunction deltaLabel(delta: number) {\n const points = Math.round(delta * 100);\n return `${points >= 0 ? '+' : ''}${points}%`;\n}\n\nexport function SignalDeltaColumn({\n signalName,\n fromFlow,\n toFlow,\n flows,\n positions,\n fromIndex,\n toIndex,\n onThemeSelect,\n}: {\n signalName: TraceSignalName;\n fromFlow: ThemeFlowResponse;\n toFlow: ThemeFlowResponse;\n flows: Array<ThemeFlowResponse | undefined>;\n positions: number[];\n fromIndex: number;\n toIndex: number;\n onThemeSelect: (selection: ThemeSelection, snapshotIndex: number) => void;\n}) {\n const deltas = computeThemeShareDeltas(fromFlow, toFlow, signalName);\n const detailIndexFor = (delta: { toShare: number }) => (delta.toShare > 0 ? toIndex : fromIndex);\n\n return (\n <section aria-label={`${formatSignalName(signalName)} changes`} className=\"min-w-0\">\n <h3\n className=\"font-mono text-xs font-semibold tracking-widest uppercase\"\n style={{ color: nodeColor(getSignalHue(signalName)) }}\n >\n <Tooltip>\n <TooltipTrigger className=\"cursor-default uppercase\">{signalName}</TooltipTrigger>\n <TooltipContent>{SIGNAL_DESCRIPTIONS[signalName]}</TooltipContent>\n </Tooltip>\n </h3>\n <ul className=\"mt-2 space-y-1.5\">\n {deltas.length === 0 ? <li className=\"text-neutral3 text-xs\">No themes in either snapshot.</li> : null}\n {deltas.map(delta => {\n const themeId = delta.themeId;\n const card = (\n <>\n <div className=\"flex items-baseline justify-between gap-2\">\n <span className=\"text-neutral6 truncate text-xs font-medium\" title={delta.label}>\n {delta.label}\n </span>\n <span className=\"text-neutral6 shrink-0 font-mono text-xs font-semibold tabular-nums\">\n {deltaLabel(delta.delta)}\n </span>\n </div>\n <p className=\"text-neutral3 font-mono text-[11px] tabular-nums\">\n {percent(delta.fromShare)} → {percent(delta.toShare)}\n </p>\n <ThemeCompareSparkline\n series={themeShareSeries(flows, signalName, delta.label)}\n positions={positions}\n markerIndexes={[fromIndex, toIndex]}\n />\n </>\n );\n return (\n <li\n key={delta.label}\n className={`border-border1 rounded-lg border ${\n delta.delta > 0 ? 'bg-green-500/5' : delta.delta < 0 ? 'bg-red-500/5' : 'bg-surface3'\n }`}\n >\n {themeId === undefined ? (\n <div className=\"px-2.5 py-2\">{card}</div>\n ) : (\n <button\n aria-label={`View theme details for ${delta.label}`}\n className=\"hover:border-border2 block w-full cursor-pointer rounded-lg px-2.5 py-2 text-left transition-colors hover:bg-white/[0.03]\"\n onClick={() => onThemeSelect({ signalName, themeId, label: delta.label }, detailIndexFor(delta))}\n type=\"button\"\n >\n {card}\n </button>\n )}\n </li>\n );\n })}\n </ul>\n </section>\n );\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,83 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
+
5
+ const SIGNAL_PROCESSING_ORDER = ["goal", "sentiment", "behavior", "outcome"];
6
+ function formatSignalName(signalName) {
7
+ return signalName.charAt(0).toUpperCase() + signalName.slice(1);
8
+ }
9
+ const SIGNAL_DESCRIPTIONS = {
10
+ goal: "What the user wanted from the interaction.",
11
+ sentiment: "The tone the user expressed during the interaction.",
12
+ behavior: "What the agent did in response.",
13
+ outcome: "How the interaction ended."
14
+ };
15
+ function isTraceSignalName(value) {
16
+ return Object.prototype.hasOwnProperty.call(SIGNAL_DESCRIPTIONS, value);
17
+ }
18
+ function getSignalDescription(signalName) {
19
+ return isTraceSignalName(signalName) ? SIGNAL_DESCRIPTIONS[signalName] : void 0;
20
+ }
21
+ function traceLabel(count) {
22
+ return `${count} ${count === 1 ? "trace" : "traces"}`;
23
+ }
24
+ function themeLabel(count) {
25
+ return `${count} ${count === 1 ? "theme" : "themes"}`;
26
+ }
27
+ function shareSentence(traceCount, coverage) {
28
+ if (coverage <= 0) return `${traceLabel(traceCount)} in this snapshot`;
29
+ const stageTotal = Math.round(traceCount / coverage);
30
+ return `${traceCount} of ${stageTotal} traces in this snapshot (${Math.round(coverage * 100)}%)`;
31
+ }
32
+ const SNAPSHOT_CUTOFF_FORMAT = new Intl.DateTimeFormat("en-US", {
33
+ month: "short",
34
+ day: "numeric",
35
+ year: "numeric",
36
+ hour: "2-digit",
37
+ minute: "2-digit",
38
+ hour12: false,
39
+ timeZone: "UTC"
40
+ });
41
+ const SNAPSHOT_DATE_FORMAT = new Intl.DateTimeFormat("en-US", {
42
+ month: "short",
43
+ day: "numeric",
44
+ year: "numeric",
45
+ timeZone: "UTC"
46
+ });
47
+ function formatSnapshotDate(value) {
48
+ const date = new Date(value);
49
+ if (Number.isNaN(date.getTime())) return value;
50
+ return SNAPSHOT_DATE_FORMAT.format(date);
51
+ }
52
+ function formatSnapshotCutoff(cutoffAt) {
53
+ const date = new Date(cutoffAt);
54
+ if (Number.isNaN(date.getTime())) return cutoffAt;
55
+ return SNAPSHOT_CUTOFF_FORMAT.format(date);
56
+ }
57
+ function formatSnapshotWindow(startedAt, endedAt) {
58
+ const start = new Date(startedAt);
59
+ const end = new Date(endedAt);
60
+ if (Number.isNaN(start.getTime()) || Number.isNaN(end.getTime())) return `${startedAt}–${endedAt}`;
61
+ const monthDay = new Intl.DateTimeFormat("en-US", { month: "short", day: "numeric", timeZone: "UTC" });
62
+ const day = new Intl.DateTimeFormat("en-US", { day: "numeric", timeZone: "UTC" });
63
+ const year = new Intl.DateTimeFormat("en-US", { year: "numeric", timeZone: "UTC" });
64
+ const sameYear = start.getUTCFullYear() === end.getUTCFullYear();
65
+ const sameMonth = sameYear && start.getUTCMonth() === end.getUTCMonth();
66
+ const sameDay = sameMonth && start.getUTCDate() === end.getUTCDate();
67
+ if (sameDay) return `${monthDay.format(start)}, ${year.format(start)}`;
68
+ if (sameMonth) return `${monthDay.format(start)}–${day.format(end)}, ${year.format(end)}`;
69
+ if (sameYear) return `${monthDay.format(start)}–${monthDay.format(end)}, ${year.format(end)}`;
70
+ return `${monthDay.format(start)}, ${year.format(start)}–${monthDay.format(end)}, ${year.format(end)}`;
71
+ }
72
+
73
+ exports.SIGNAL_DESCRIPTIONS = SIGNAL_DESCRIPTIONS;
74
+ exports.SIGNAL_PROCESSING_ORDER = SIGNAL_PROCESSING_ORDER;
75
+ exports.formatSignalName = formatSignalName;
76
+ exports.formatSnapshotCutoff = formatSnapshotCutoff;
77
+ exports.formatSnapshotDate = formatSnapshotDate;
78
+ exports.formatSnapshotWindow = formatSnapshotWindow;
79
+ exports.getSignalDescription = getSignalDescription;
80
+ exports.shareSentence = shareSentence;
81
+ exports.themeLabel = themeLabel;
82
+ exports.traceLabel = traceLabel;
83
+ //# sourceMappingURL=signal-formatting.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signal-formatting.cjs.js","sources":["../../../src/ee/signals/signal-formatting.ts"],"sourcesContent":["import type { TraceSignalName } from './types';\n\n/** Order signals are produced during an interaction. */\nexport const SIGNAL_PROCESSING_ORDER: TraceSignalName[] = ['goal', 'sentiment', 'behavior', 'outcome'];\n\nexport function formatSignalName(signalName: TraceSignalName) {\n return signalName.charAt(0).toUpperCase() + signalName.slice(1);\n}\n\n/** Plain-language meaning of each trace signal, shown wherever a signal heading appears. */\nexport const SIGNAL_DESCRIPTIONS: Record<TraceSignalName, string> = {\n goal: 'What the user wanted from the interaction.',\n sentiment: 'The tone the user expressed during the interaction.',\n behavior: 'What the agent did in response.',\n outcome: 'How the interaction ended.',\n};\n\nfunction isTraceSignalName(value: string): value is TraceSignalName {\n return Object.prototype.hasOwnProperty.call(SIGNAL_DESCRIPTIONS, value);\n}\n\n/** Signal description lookup for callers that only hold an untyped column id. */\nexport function getSignalDescription(signalName: string): string | undefined {\n return isTraceSignalName(signalName) ? SIGNAL_DESCRIPTIONS[signalName] : undefined;\n}\n\nexport function traceLabel(count: number) {\n return `${count} ${count === 1 ? 'trace' : 'traces'}`;\n}\n\nexport function themeLabel(count: number) {\n return `${count} ${count === 1 ? 'theme' : 'themes'}`;\n}\n\n/** \"28 of 70 traces in this snapshot (40%)\" — replaces the old \"Stage share\" stat. */\nexport function shareSentence(traceCount: number, coverage: number) {\n if (coverage <= 0) return `${traceLabel(traceCount)} in this snapshot`;\n const stageTotal = Math.round(traceCount / coverage);\n return `${traceCount} of ${stageTotal} traces in this snapshot (${Math.round(coverage * 100)}%)`;\n}\n\n// Hoisted: TimelineTrack formats every tick on each render.\nconst SNAPSHOT_CUTOFF_FORMAT = new Intl.DateTimeFormat('en-US', {\n month: 'short',\n day: 'numeric',\n year: 'numeric',\n hour: '2-digit',\n minute: '2-digit',\n hour12: false,\n timeZone: 'UTC',\n});\n\nconst SNAPSHOT_DATE_FORMAT = new Intl.DateTimeFormat('en-US', {\n month: 'short',\n day: 'numeric',\n year: 'numeric',\n timeZone: 'UTC',\n});\n\nexport function formatSnapshotDate(value: string) {\n const date = new Date(value);\n if (Number.isNaN(date.getTime())) return value;\n return SNAPSHOT_DATE_FORMAT.format(date);\n}\n\nexport function formatSnapshotCutoff(cutoffAt: string) {\n const date = new Date(cutoffAt);\n // Fall back to the raw server value instead of letting Intl throw on Invalid Date.\n if (Number.isNaN(date.getTime())) return cutoffAt;\n return SNAPSHOT_CUTOFF_FORMAT.format(date);\n}\n\nexport function formatSnapshotWindow(startedAt: string, endedAt: string) {\n const start = new Date(startedAt);\n const end = new Date(endedAt);\n // Fall back to the raw server values instead of letting Intl throw on Invalid Date.\n if (Number.isNaN(start.getTime()) || Number.isNaN(end.getTime())) return `${startedAt}–${endedAt}`;\n const monthDay = new Intl.DateTimeFormat('en-US', { month: 'short', day: 'numeric', timeZone: 'UTC' });\n const day = new Intl.DateTimeFormat('en-US', { day: 'numeric', timeZone: 'UTC' });\n const year = new Intl.DateTimeFormat('en-US', { year: 'numeric', timeZone: 'UTC' });\n const sameYear = start.getUTCFullYear() === end.getUTCFullYear();\n const sameMonth = sameYear && start.getUTCMonth() === end.getUTCMonth();\n const sameDay = sameMonth && start.getUTCDate() === end.getUTCDate();\n\n if (sameDay) return `${monthDay.format(start)}, ${year.format(start)}`;\n if (sameMonth) return `${monthDay.format(start)}–${day.format(end)}, ${year.format(end)}`;\n if (sameYear) return `${monthDay.format(start)}–${monthDay.format(end)}, ${year.format(end)}`;\n return `${monthDay.format(start)}, ${year.format(start)}–${monthDay.format(end)}, ${year.format(end)}`;\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export * from '../../src/ee/signals/signal-formatting'
2
+ export {}
@@ -0,0 +1,70 @@
1
+ const SIGNAL_PROCESSING_ORDER = ["goal", "sentiment", "behavior", "outcome"];
2
+ function formatSignalName(signalName) {
3
+ return signalName.charAt(0).toUpperCase() + signalName.slice(1);
4
+ }
5
+ const SIGNAL_DESCRIPTIONS = {
6
+ goal: "What the user wanted from the interaction.",
7
+ sentiment: "The tone the user expressed during the interaction.",
8
+ behavior: "What the agent did in response.",
9
+ outcome: "How the interaction ended."
10
+ };
11
+ function isTraceSignalName(value) {
12
+ return Object.prototype.hasOwnProperty.call(SIGNAL_DESCRIPTIONS, value);
13
+ }
14
+ function getSignalDescription(signalName) {
15
+ return isTraceSignalName(signalName) ? SIGNAL_DESCRIPTIONS[signalName] : void 0;
16
+ }
17
+ function traceLabel(count) {
18
+ return `${count} ${count === 1 ? "trace" : "traces"}`;
19
+ }
20
+ function themeLabel(count) {
21
+ return `${count} ${count === 1 ? "theme" : "themes"}`;
22
+ }
23
+ function shareSentence(traceCount, coverage) {
24
+ if (coverage <= 0) return `${traceLabel(traceCount)} in this snapshot`;
25
+ const stageTotal = Math.round(traceCount / coverage);
26
+ return `${traceCount} of ${stageTotal} traces in this snapshot (${Math.round(coverage * 100)}%)`;
27
+ }
28
+ const SNAPSHOT_CUTOFF_FORMAT = new Intl.DateTimeFormat("en-US", {
29
+ month: "short",
30
+ day: "numeric",
31
+ year: "numeric",
32
+ hour: "2-digit",
33
+ minute: "2-digit",
34
+ hour12: false,
35
+ timeZone: "UTC"
36
+ });
37
+ const SNAPSHOT_DATE_FORMAT = new Intl.DateTimeFormat("en-US", {
38
+ month: "short",
39
+ day: "numeric",
40
+ year: "numeric",
41
+ timeZone: "UTC"
42
+ });
43
+ function formatSnapshotDate(value) {
44
+ const date = new Date(value);
45
+ if (Number.isNaN(date.getTime())) return value;
46
+ return SNAPSHOT_DATE_FORMAT.format(date);
47
+ }
48
+ function formatSnapshotCutoff(cutoffAt) {
49
+ const date = new Date(cutoffAt);
50
+ if (Number.isNaN(date.getTime())) return cutoffAt;
51
+ return SNAPSHOT_CUTOFF_FORMAT.format(date);
52
+ }
53
+ function formatSnapshotWindow(startedAt, endedAt) {
54
+ const start = new Date(startedAt);
55
+ const end = new Date(endedAt);
56
+ if (Number.isNaN(start.getTime()) || Number.isNaN(end.getTime())) return `${startedAt}–${endedAt}`;
57
+ const monthDay = new Intl.DateTimeFormat("en-US", { month: "short", day: "numeric", timeZone: "UTC" });
58
+ const day = new Intl.DateTimeFormat("en-US", { day: "numeric", timeZone: "UTC" });
59
+ const year = new Intl.DateTimeFormat("en-US", { year: "numeric", timeZone: "UTC" });
60
+ const sameYear = start.getUTCFullYear() === end.getUTCFullYear();
61
+ const sameMonth = sameYear && start.getUTCMonth() === end.getUTCMonth();
62
+ const sameDay = sameMonth && start.getUTCDate() === end.getUTCDate();
63
+ if (sameDay) return `${monthDay.format(start)}, ${year.format(start)}`;
64
+ if (sameMonth) return `${monthDay.format(start)}–${day.format(end)}, ${year.format(end)}`;
65
+ if (sameYear) return `${monthDay.format(start)}–${monthDay.format(end)}, ${year.format(end)}`;
66
+ return `${monthDay.format(start)}, ${year.format(start)}–${monthDay.format(end)}, ${year.format(end)}`;
67
+ }
68
+
69
+ export { SIGNAL_DESCRIPTIONS, SIGNAL_PROCESSING_ORDER, formatSignalName, formatSnapshotCutoff, formatSnapshotDate, formatSnapshotWindow, getSignalDescription, shareSentence, themeLabel, traceLabel };
70
+ //# sourceMappingURL=signal-formatting.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signal-formatting.es.js","sources":["../../../src/ee/signals/signal-formatting.ts"],"sourcesContent":["import type { TraceSignalName } from './types';\n\n/** Order signals are produced during an interaction. */\nexport const SIGNAL_PROCESSING_ORDER: TraceSignalName[] = ['goal', 'sentiment', 'behavior', 'outcome'];\n\nexport function formatSignalName(signalName: TraceSignalName) {\n return signalName.charAt(0).toUpperCase() + signalName.slice(1);\n}\n\n/** Plain-language meaning of each trace signal, shown wherever a signal heading appears. */\nexport const SIGNAL_DESCRIPTIONS: Record<TraceSignalName, string> = {\n goal: 'What the user wanted from the interaction.',\n sentiment: 'The tone the user expressed during the interaction.',\n behavior: 'What the agent did in response.',\n outcome: 'How the interaction ended.',\n};\n\nfunction isTraceSignalName(value: string): value is TraceSignalName {\n return Object.prototype.hasOwnProperty.call(SIGNAL_DESCRIPTIONS, value);\n}\n\n/** Signal description lookup for callers that only hold an untyped column id. */\nexport function getSignalDescription(signalName: string): string | undefined {\n return isTraceSignalName(signalName) ? SIGNAL_DESCRIPTIONS[signalName] : undefined;\n}\n\nexport function traceLabel(count: number) {\n return `${count} ${count === 1 ? 'trace' : 'traces'}`;\n}\n\nexport function themeLabel(count: number) {\n return `${count} ${count === 1 ? 'theme' : 'themes'}`;\n}\n\n/** \"28 of 70 traces in this snapshot (40%)\" — replaces the old \"Stage share\" stat. */\nexport function shareSentence(traceCount: number, coverage: number) {\n if (coverage <= 0) return `${traceLabel(traceCount)} in this snapshot`;\n const stageTotal = Math.round(traceCount / coverage);\n return `${traceCount} of ${stageTotal} traces in this snapshot (${Math.round(coverage * 100)}%)`;\n}\n\n// Hoisted: TimelineTrack formats every tick on each render.\nconst SNAPSHOT_CUTOFF_FORMAT = new Intl.DateTimeFormat('en-US', {\n month: 'short',\n day: 'numeric',\n year: 'numeric',\n hour: '2-digit',\n minute: '2-digit',\n hour12: false,\n timeZone: 'UTC',\n});\n\nconst SNAPSHOT_DATE_FORMAT = new Intl.DateTimeFormat('en-US', {\n month: 'short',\n day: 'numeric',\n year: 'numeric',\n timeZone: 'UTC',\n});\n\nexport function formatSnapshotDate(value: string) {\n const date = new Date(value);\n if (Number.isNaN(date.getTime())) return value;\n return SNAPSHOT_DATE_FORMAT.format(date);\n}\n\nexport function formatSnapshotCutoff(cutoffAt: string) {\n const date = new Date(cutoffAt);\n // Fall back to the raw server value instead of letting Intl throw on Invalid Date.\n if (Number.isNaN(date.getTime())) return cutoffAt;\n return SNAPSHOT_CUTOFF_FORMAT.format(date);\n}\n\nexport function formatSnapshotWindow(startedAt: string, endedAt: string) {\n const start = new Date(startedAt);\n const end = new Date(endedAt);\n // Fall back to the raw server values instead of letting Intl throw on Invalid Date.\n if (Number.isNaN(start.getTime()) || Number.isNaN(end.getTime())) return `${startedAt}–${endedAt}`;\n const monthDay = new Intl.DateTimeFormat('en-US', { month: 'short', day: 'numeric', timeZone: 'UTC' });\n const day = new Intl.DateTimeFormat('en-US', { day: 'numeric', timeZone: 'UTC' });\n const year = new Intl.DateTimeFormat('en-US', { year: 'numeric', timeZone: 'UTC' });\n const sameYear = start.getUTCFullYear() === end.getUTCFullYear();\n const sameMonth = sameYear && start.getUTCMonth() === end.getUTCMonth();\n const sameDay = sameMonth && start.getUTCDate() === end.getUTCDate();\n\n if (sameDay) return `${monthDay.format(start)}, ${year.format(start)}`;\n if (sameMonth) return `${monthDay.format(start)}–${day.format(end)}, ${year.format(end)}`;\n if (sameYear) return `${monthDay.format(start)}–${monthDay.format(end)}, ${year.format(end)}`;\n return `${monthDay.format(start)}, ${year.format(start)}–${monthDay.format(end)}, ${year.format(end)}`;\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,69 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
+
5
+ const jsxRuntime = require('react/jsx-runtime');
6
+ const lucideReact = require('lucide-react');
7
+ const React = require('react');
8
+ const ee_signals_lifelineRow = require('./lifeline-row.cjs.js');
9
+ const ee_signals_signalColors = require('./signal-colors.cjs.js');
10
+ const ee_signals_signalFormatting = require('./signal-formatting.cjs.js');
11
+ const ee_signals_themeLifelinesData = require('./theme-lifelines-data.cjs.js');
12
+ const sankeyColor = require('../../sankeyColor-DONd5cg9.cjs');
13
+ const tooltip = require('../../tooltip-CLz5PtEE.cjs');
14
+
15
+ function SignalLifelines({
16
+ signalName,
17
+ flows,
18
+ snapshots,
19
+ positions,
20
+ onThemeSelect
21
+ }) {
22
+ const [isCollapsed, setIsCollapsed] = React.useState(false);
23
+ const rows = ee_signals_themeLifelinesData.buildThemeLifelines(flows, signalName);
24
+ const hue = ee_signals_signalColors.getSignalHue(signalName);
25
+ return /* @__PURE__ */ jsxRuntime.jsxs("section", { "aria-label": `${ee_signals_signalFormatting.formatSignalName(signalName)} lifelines`, className: "min-w-0", children: [
26
+ /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "font-mono text-xs font-semibold tracking-widest uppercase", style: { color: sankeyColor.nodeColor(hue) }, children: /* @__PURE__ */ jsxRuntime.jsxs(tooltip.Tooltip, { children: [
27
+ /* @__PURE__ */ jsxRuntime.jsxs(
28
+ tooltip.TooltipTrigger,
29
+ {
30
+ render: /* @__PURE__ */ jsxRuntime.jsx(
31
+ "button",
32
+ {
33
+ "aria-expanded": !isCollapsed,
34
+ className: "flex items-center gap-1.5 transition-opacity hover:opacity-80",
35
+ onClick: () => setIsCollapsed((previous) => !previous),
36
+ type: "button"
37
+ }
38
+ ),
39
+ children: [
40
+ /* @__PURE__ */ jsxRuntime.jsx(
41
+ lucideReact.ChevronDown,
42
+ {
43
+ "aria-hidden": "true",
44
+ className: `size-3.5 transition-transform ${isCollapsed ? "-rotate-90" : ""}`
45
+ }
46
+ ),
47
+ signalName
48
+ ]
49
+ }
50
+ ),
51
+ /* @__PURE__ */ jsxRuntime.jsx(tooltip.TooltipContent, { children: ee_signals_signalFormatting.SIGNAL_DESCRIPTIONS[signalName] })
52
+ ] }) }),
53
+ isCollapsed ? void 0 : rows.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-neutral3 mt-2 text-xs", children: "No themes in these landmarks." }) : /* @__PURE__ */ jsxRuntime.jsx("ul", { className: "mt-2 space-y-0.5", children: rows.map((row) => /* @__PURE__ */ jsxRuntime.jsx(
54
+ ee_signals_lifelineRow.LifelineRow,
55
+ {
56
+ row,
57
+ signalName,
58
+ snapshots,
59
+ positions,
60
+ hue,
61
+ onThemeSelect
62
+ },
63
+ row.label
64
+ )) })
65
+ ] });
66
+ }
67
+
68
+ exports.SignalLifelines = SignalLifelines;
69
+ //# sourceMappingURL=signal-lifelines.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signal-lifelines.cjs.js","sources":["../../../src/ee/signals/signal-lifelines.tsx"],"sourcesContent":["import { ChevronDown } from 'lucide-react';\nimport { useState } from 'react';\n\nimport { LifelineRow } from './lifeline-row';\nimport { getSignalHue } from './signal-colors';\nimport { formatSignalName, SIGNAL_DESCRIPTIONS } from './signal-formatting';\nimport type { ThemeSelection } from './theme-drilldown-data';\nimport { buildThemeLifelines } from './theme-lifelines-data';\nimport type { ThemeFlowResponse, ThemeSnapshot, TraceSignalName } from './types';\nimport { nodeColor } from '@/ds/components/SankeyChart';\nimport { Tooltip, TooltipContent, TooltipTrigger } from '@/ds/components/Tooltip';\n\nexport function SignalLifelines({\n signalName,\n flows,\n snapshots,\n positions,\n onThemeSelect,\n}: {\n signalName: TraceSignalName;\n flows: Array<ThemeFlowResponse | undefined>;\n snapshots: ThemeSnapshot[];\n positions: number[];\n onThemeSelect: (selection: ThemeSelection, snapshotIndex: number) => void;\n}) {\n const [isCollapsed, setIsCollapsed] = useState(false);\n const rows = buildThemeLifelines(flows, signalName);\n const hue = getSignalHue(signalName);\n\n return (\n <section aria-label={`${formatSignalName(signalName)} lifelines`} className=\"min-w-0\">\n <h3 className=\"font-mono text-xs font-semibold tracking-widest uppercase\" style={{ color: nodeColor(hue) }}>\n <Tooltip>\n <TooltipTrigger\n render={\n <button\n aria-expanded={!isCollapsed}\n className=\"flex items-center gap-1.5 transition-opacity hover:opacity-80\"\n onClick={() => setIsCollapsed(previous => !previous)}\n type=\"button\"\n />\n }\n >\n <ChevronDown\n aria-hidden=\"true\"\n className={`size-3.5 transition-transform ${isCollapsed ? '-rotate-90' : ''}`}\n />\n {signalName}\n </TooltipTrigger>\n <TooltipContent>{SIGNAL_DESCRIPTIONS[signalName]}</TooltipContent>\n </Tooltip>\n </h3>\n {isCollapsed ? undefined : rows.length === 0 ? (\n <p className=\"text-neutral3 mt-2 text-xs\">No themes in these landmarks.</p>\n ) : (\n <ul className=\"mt-2 space-y-0.5\">\n {rows.map(row => (\n <LifelineRow\n key={row.label}\n row={row}\n signalName={signalName}\n snapshots={snapshots}\n positions={positions}\n hue={hue}\n onThemeSelect={onThemeSelect}\n />\n ))}\n </ul>\n )}\n </section>\n );\n}\n"],"names":["useState","buildThemeLifelines","getSignalHue","jsxs","formatSignalName","jsx","nodeColor","Tooltip","TooltipTrigger","ChevronDown","TooltipContent","SIGNAL_DESCRIPTIONS","LifelineRow"],"mappings":";;;;;;;;;;;;;;AAYO,SAAS,eAAA,CAAgB;AAAA,EAC9B,UAAA;AAAA,EACA,KAAA;AAAA,EACA,SAAA;AAAA,EACA,SAAA;AAAA,EACA;AACF,CAAA,EAMG;AACD,EAAA,MAAM,CAAC,WAAA,EAAa,cAAc,CAAA,GAAIA,eAAS,KAAK,CAAA;AACpD,EAAA,MAAM,IAAA,GAAOC,iDAAA,CAAoB,KAAA,EAAO,UAAU,CAAA;AAClD,EAAA,MAAM,GAAA,GAAMC,qCAAa,UAAU,CAAA;AAEnC,EAAA,uBACEC,eAAA,CAAC,aAAQ,YAAA,EAAY,CAAA,EAAGC,6CAAiB,UAAU,CAAC,CAAA,UAAA,CAAA,EAAc,SAAA,EAAU,SAAA,EAC1E,QAAA,EAAA;AAAA,oBAAAC,cAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,2DAAA,EAA4D,KAAA,EAAO,EAAE,KAAA,EAAOC,qBAAA,CAAU,GAAG,CAAA,EAAE,EACvG,QAAA,kBAAAH,eAAA,CAACI,eAAA,EAAA,EACC,QAAA,EAAA;AAAA,sBAAAJ,eAAA;AAAA,QAACK,sBAAA;AAAA,QAAA;AAAA,UACC,MAAA,kBACEH,cAAA;AAAA,YAAC,QAAA;AAAA,YAAA;AAAA,cACC,iBAAe,CAAC,WAAA;AAAA,cAChB,SAAA,EAAU,+DAAA;AAAA,cACV,OAAA,EAAS,MAAM,cAAA,CAAe,CAAA,QAAA,KAAY,CAAC,QAAQ,CAAA;AAAA,cACnD,IAAA,EAAK;AAAA;AAAA,WACP;AAAA,UAGF,QAAA,EAAA;AAAA,4BAAAA,cAAA;AAAA,cAACI,uBAAA;AAAA,cAAA;AAAA,gBACC,aAAA,EAAY,MAAA;AAAA,gBACZ,SAAA,EAAW,CAAA,8BAAA,EAAiC,WAAA,GAAc,YAAA,GAAe,EAAE,CAAA;AAAA;AAAA,aAC7E;AAAA,YACC;AAAA;AAAA;AAAA,OACH;AAAA,sBACAJ,cAAA,CAACK,sBAAA,EAAA,EAAgB,QAAA,EAAAC,+CAAA,CAAoB,UAAU,CAAA,EAAE;AAAA,KAAA,EACnD,CAAA,EACF,CAAA;AAAA,IACC,cAAc,MAAA,GAAY,IAAA,CAAK,MAAA,KAAW,CAAA,kCACxC,GAAA,EAAA,EAAE,SAAA,EAAU,4BAAA,EAA6B,QAAA,EAAA,+BAAA,EAA6B,oBAEvEN,cAAA,CAAC,IAAA,EAAA,EAAG,WAAU,kBAAA,EACX,QAAA,EAAA,IAAA,CAAK,IAAI,CAAA,GAAA,qBACRA,cAAA;AAAA,MAACO,kCAAA;AAAA,MAAA;AAAA,QAEC,GAAA;AAAA,QACA,UAAA;AAAA,QACA,SAAA;AAAA,QACA,SAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA,OAAA;AAAA,MANK,GAAA,CAAI;AAAA,KAQZ,CAAA,EACH;AAAA,GAAA,EAEJ,CAAA;AAEJ;;;;"}
@@ -0,0 +1,2 @@
1
+ export * from '../../src/ee/signals/signal-lifelines'
2
+ export {}
@@ -0,0 +1,65 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { ChevronDown } from 'lucide-react';
3
+ import { useState } from 'react';
4
+ import { LifelineRow } from './lifeline-row.es.js';
5
+ import { getSignalHue } from './signal-colors.es.js';
6
+ import { SIGNAL_DESCRIPTIONS, formatSignalName } from './signal-formatting.es.js';
7
+ import { buildThemeLifelines } from './theme-lifelines-data.es.js';
8
+ import { n as nodeColor } from '../../sankeyColor-CQ5nkgtL.js';
9
+ import { T as Tooltip, c as TooltipTrigger, a as TooltipContent } from '../../tooltip-BFbYhBj1.js';
10
+
11
+ function SignalLifelines({
12
+ signalName,
13
+ flows,
14
+ snapshots,
15
+ positions,
16
+ onThemeSelect
17
+ }) {
18
+ const [isCollapsed, setIsCollapsed] = useState(false);
19
+ const rows = buildThemeLifelines(flows, signalName);
20
+ const hue = getSignalHue(signalName);
21
+ return /* @__PURE__ */ jsxs("section", { "aria-label": `${formatSignalName(signalName)} lifelines`, className: "min-w-0", children: [
22
+ /* @__PURE__ */ jsx("h3", { className: "font-mono text-xs font-semibold tracking-widest uppercase", style: { color: nodeColor(hue) }, children: /* @__PURE__ */ jsxs(Tooltip, { children: [
23
+ /* @__PURE__ */ jsxs(
24
+ TooltipTrigger,
25
+ {
26
+ render: /* @__PURE__ */ jsx(
27
+ "button",
28
+ {
29
+ "aria-expanded": !isCollapsed,
30
+ className: "flex items-center gap-1.5 transition-opacity hover:opacity-80",
31
+ onClick: () => setIsCollapsed((previous) => !previous),
32
+ type: "button"
33
+ }
34
+ ),
35
+ children: [
36
+ /* @__PURE__ */ jsx(
37
+ ChevronDown,
38
+ {
39
+ "aria-hidden": "true",
40
+ className: `size-3.5 transition-transform ${isCollapsed ? "-rotate-90" : ""}`
41
+ }
42
+ ),
43
+ signalName
44
+ ]
45
+ }
46
+ ),
47
+ /* @__PURE__ */ jsx(TooltipContent, { children: SIGNAL_DESCRIPTIONS[signalName] })
48
+ ] }) }),
49
+ isCollapsed ? void 0 : rows.length === 0 ? /* @__PURE__ */ jsx("p", { className: "text-neutral3 mt-2 text-xs", children: "No themes in these landmarks." }) : /* @__PURE__ */ jsx("ul", { className: "mt-2 space-y-0.5", children: rows.map((row) => /* @__PURE__ */ jsx(
50
+ LifelineRow,
51
+ {
52
+ row,
53
+ signalName,
54
+ snapshots,
55
+ positions,
56
+ hue,
57
+ onThemeSelect
58
+ },
59
+ row.label
60
+ )) })
61
+ ] });
62
+ }
63
+
64
+ export { SignalLifelines };
65
+ //# sourceMappingURL=signal-lifelines.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signal-lifelines.es.js","sources":["../../../src/ee/signals/signal-lifelines.tsx"],"sourcesContent":["import { ChevronDown } from 'lucide-react';\nimport { useState } from 'react';\n\nimport { LifelineRow } from './lifeline-row';\nimport { getSignalHue } from './signal-colors';\nimport { formatSignalName, SIGNAL_DESCRIPTIONS } from './signal-formatting';\nimport type { ThemeSelection } from './theme-drilldown-data';\nimport { buildThemeLifelines } from './theme-lifelines-data';\nimport type { ThemeFlowResponse, ThemeSnapshot, TraceSignalName } from './types';\nimport { nodeColor } from '@/ds/components/SankeyChart';\nimport { Tooltip, TooltipContent, TooltipTrigger } from '@/ds/components/Tooltip';\n\nexport function SignalLifelines({\n signalName,\n flows,\n snapshots,\n positions,\n onThemeSelect,\n}: {\n signalName: TraceSignalName;\n flows: Array<ThemeFlowResponse | undefined>;\n snapshots: ThemeSnapshot[];\n positions: number[];\n onThemeSelect: (selection: ThemeSelection, snapshotIndex: number) => void;\n}) {\n const [isCollapsed, setIsCollapsed] = useState(false);\n const rows = buildThemeLifelines(flows, signalName);\n const hue = getSignalHue(signalName);\n\n return (\n <section aria-label={`${formatSignalName(signalName)} lifelines`} className=\"min-w-0\">\n <h3 className=\"font-mono text-xs font-semibold tracking-widest uppercase\" style={{ color: nodeColor(hue) }}>\n <Tooltip>\n <TooltipTrigger\n render={\n <button\n aria-expanded={!isCollapsed}\n className=\"flex items-center gap-1.5 transition-opacity hover:opacity-80\"\n onClick={() => setIsCollapsed(previous => !previous)}\n type=\"button\"\n />\n }\n >\n <ChevronDown\n aria-hidden=\"true\"\n className={`size-3.5 transition-transform ${isCollapsed ? '-rotate-90' : ''}`}\n />\n {signalName}\n </TooltipTrigger>\n <TooltipContent>{SIGNAL_DESCRIPTIONS[signalName]}</TooltipContent>\n </Tooltip>\n </h3>\n {isCollapsed ? undefined : rows.length === 0 ? (\n <p className=\"text-neutral3 mt-2 text-xs\">No themes in these landmarks.</p>\n ) : (\n <ul className=\"mt-2 space-y-0.5\">\n {rows.map(row => (\n <LifelineRow\n key={row.label}\n row={row}\n signalName={signalName}\n snapshots={snapshots}\n positions={positions}\n hue={hue}\n onThemeSelect={onThemeSelect}\n />\n ))}\n </ul>\n )}\n </section>\n );\n}\n"],"names":[],"mappings":";;;;;;;;;;AAYO,SAAS,eAAA,CAAgB;AAAA,EAC9B,UAAA;AAAA,EACA,KAAA;AAAA,EACA,SAAA;AAAA,EACA,SAAA;AAAA,EACA;AACF,CAAA,EAMG;AACD,EAAA,MAAM,CAAC,WAAA,EAAa,cAAc,CAAA,GAAI,SAAS,KAAK,CAAA;AACpD,EAAA,MAAM,IAAA,GAAO,mBAAA,CAAoB,KAAA,EAAO,UAAU,CAAA;AAClD,EAAA,MAAM,GAAA,GAAM,aAAa,UAAU,CAAA;AAEnC,EAAA,uBACE,IAAA,CAAC,aAAQ,YAAA,EAAY,CAAA,EAAG,iBAAiB,UAAU,CAAC,CAAA,UAAA,CAAA,EAAc,SAAA,EAAU,SAAA,EAC1E,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,2DAAA,EAA4D,KAAA,EAAO,EAAE,KAAA,EAAO,SAAA,CAAU,GAAG,CAAA,EAAE,EACvG,QAAA,kBAAA,IAAA,CAAC,OAAA,EAAA,EACC,QAAA,EAAA;AAAA,sBAAA,IAAA;AAAA,QAAC,cAAA;AAAA,QAAA;AAAA,UACC,MAAA,kBACE,GAAA;AAAA,YAAC,QAAA;AAAA,YAAA;AAAA,cACC,iBAAe,CAAC,WAAA;AAAA,cAChB,SAAA,EAAU,+DAAA;AAAA,cACV,OAAA,EAAS,MAAM,cAAA,CAAe,CAAA,QAAA,KAAY,CAAC,QAAQ,CAAA;AAAA,cACnD,IAAA,EAAK;AAAA;AAAA,WACP;AAAA,UAGF,QAAA,EAAA;AAAA,4BAAA,GAAA;AAAA,cAAC,WAAA;AAAA,cAAA;AAAA,gBACC,aAAA,EAAY,MAAA;AAAA,gBACZ,SAAA,EAAW,CAAA,8BAAA,EAAiC,WAAA,GAAc,YAAA,GAAe,EAAE,CAAA;AAAA;AAAA,aAC7E;AAAA,YACC;AAAA;AAAA;AAAA,OACH;AAAA,sBACA,GAAA,CAAC,cAAA,EAAA,EAAgB,QAAA,EAAA,mBAAA,CAAoB,UAAU,CAAA,EAAE;AAAA,KAAA,EACnD,CAAA,EACF,CAAA;AAAA,IACC,cAAc,MAAA,GAAY,IAAA,CAAK,MAAA,KAAW,CAAA,uBACxC,GAAA,EAAA,EAAE,SAAA,EAAU,4BAAA,EAA6B,QAAA,EAAA,+BAAA,EAA6B,oBAEvE,GAAA,CAAC,IAAA,EAAA,EAAG,WAAU,kBAAA,EACX,QAAA,EAAA,IAAA,CAAK,IAAI,CAAA,GAAA,qBACR,GAAA;AAAA,MAAC,WAAA;AAAA,MAAA;AAAA,QAEC,GAAA;AAAA,QACA,UAAA;AAAA,QACA,SAAA;AAAA,QACA,SAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA,OAAA;AAAA,MANK,GAAA,CAAI;AAAA,KAQZ,CAAA,EACH;AAAA,GAAA,EAEJ,CAAA;AAEJ;;;;"}
@@ -0,0 +1,28 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
+
5
+ const jsxRuntime = require('react/jsx-runtime');
6
+ const lucideReact = require('lucide-react');
7
+ const Button = require('../../Button-B4Ixj2aW.cjs');
8
+
9
+ function SignalsErrorState({
10
+ message,
11
+ onRetry,
12
+ onClear
13
+ }) {
14
+ return /* @__PURE__ */ jsxRuntime.jsx("section", { className: "border-border1 bg-surface2 m-4 rounded-lg border p-6 lg:m-6", role: "alert", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-3", children: [
15
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.TriangleAlert, { "aria-hidden": "true", className: "mt-0.5 size-5 shrink-0 text-red-500" }),
16
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
17
+ /* @__PURE__ */ jsxRuntime.jsx("h1", { className: "text-neutral6 text-sm font-semibold", children: message }),
18
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-neutral3 mt-1 text-xs", children: "Check the connection and try again." }),
19
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-4 flex flex-wrap gap-2", children: [
20
+ /* @__PURE__ */ jsxRuntime.jsx(Button.Button, { onClick: onRetry, size: "sm", type: "button", variant: "outline", children: "Retry" }),
21
+ onClear ? /* @__PURE__ */ jsxRuntime.jsx(Button.Button, { onClick: onClear, size: "sm", type: "button", variant: "ghost", children: "Clear filter" }) : null
22
+ ] })
23
+ ] })
24
+ ] }) });
25
+ }
26
+
27
+ exports.SignalsErrorState = SignalsErrorState;
28
+ //# sourceMappingURL=signals-error-state.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signals-error-state.cjs.js","sources":["../../../src/ee/signals/signals-error-state.tsx"],"sourcesContent":["import { TriangleAlert } from 'lucide-react';\nimport { Button } from '@/ds/components/Button';\n\nexport function SignalsErrorState({\n message,\n onRetry,\n onClear,\n}: {\n message: string;\n onRetry: () => void;\n onClear?: () => void;\n}) {\n return (\n <section className=\"border-border1 bg-surface2 m-4 rounded-lg border p-6 lg:m-6\" role=\"alert\">\n <div className=\"flex items-start gap-3\">\n <TriangleAlert aria-hidden=\"true\" className=\"mt-0.5 size-5 shrink-0 text-red-500\" />\n <div>\n <h1 className=\"text-neutral6 text-sm font-semibold\">{message}</h1>\n <p className=\"text-neutral3 mt-1 text-xs\">Check the connection and try again.</p>\n <div className=\"mt-4 flex flex-wrap gap-2\">\n <Button onClick={onRetry} size=\"sm\" type=\"button\" variant=\"outline\">\n Retry\n </Button>\n {onClear ? (\n <Button onClick={onClear} size=\"sm\" type=\"button\" variant=\"ghost\">\n Clear filter\n </Button>\n ) : null}\n </div>\n </div>\n </div>\n </section>\n );\n}\n"],"names":["jsx","jsxs","TriangleAlert","Button"],"mappings":";;;;;;;;AAGO,SAAS,iBAAA,CAAkB;AAAA,EAChC,OAAA;AAAA,EACA,OAAA;AAAA,EACA;AACF,CAAA,EAIG;AACD,EAAA,uBACEA,cAAA,CAAC,aAAQ,SAAA,EAAU,6DAAA,EAA8D,MAAK,OAAA,EACpF,QAAA,kBAAAC,eAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,wBAAA,EACb,QAAA,EAAA;AAAA,oBAAAD,cAAA,CAACE,yBAAA,EAAA,EAAc,aAAA,EAAY,MAAA,EAAO,SAAA,EAAU,qCAAA,EAAsC,CAAA;AAAA,oCACjF,KAAA,EAAA,EACC,QAAA,EAAA;AAAA,sBAAAF,cAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,qCAAA,EAAuC,QAAA,EAAA,OAAA,EAAQ,CAAA;AAAA,sBAC7DA,cAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,4BAAA,EAA6B,QAAA,EAAA,qCAAA,EAAmC,CAAA;AAAA,sBAC7EC,eAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,2BAAA,EACb,QAAA,EAAA;AAAA,wBAAAD,cAAA,CAACG,aAAA,EAAA,EAAO,SAAS,OAAA,EAAS,IAAA,EAAK,MAAK,IAAA,EAAK,QAAA,EAAS,OAAA,EAAQ,SAAA,EAAU,QAAA,EAAA,OAAA,EAEpE,CAAA;AAAA,QACC,OAAA,mBACCH,cAAA,CAACG,aAAA,EAAA,EAAO,OAAA,EAAS,OAAA,EAAS,IAAA,EAAK,IAAA,EAAK,IAAA,EAAK,QAAA,EAAS,OAAA,EAAQ,OAAA,EAAQ,QAAA,EAAA,cAAA,EAElE,CAAA,GACE;AAAA,OAAA,EACN;AAAA,KAAA,EACF;AAAA,GAAA,EACF,CAAA,EACF,CAAA;AAEJ;;;;"}
@@ -0,0 +1,2 @@
1
+ export * from '../../src/ee/signals/signals-error-state'
2
+ export {}
@@ -0,0 +1,24 @@
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
2
+ import { TriangleAlert } from 'lucide-react';
3
+ import { B as Button } from '../../Button-C-9Pzy-Z.js';
4
+
5
+ function SignalsErrorState({
6
+ message,
7
+ onRetry,
8
+ onClear
9
+ }) {
10
+ return /* @__PURE__ */ jsx("section", { className: "border-border1 bg-surface2 m-4 rounded-lg border p-6 lg:m-6", role: "alert", children: /* @__PURE__ */ jsxs("div", { className: "flex items-start gap-3", children: [
11
+ /* @__PURE__ */ jsx(TriangleAlert, { "aria-hidden": "true", className: "mt-0.5 size-5 shrink-0 text-red-500" }),
12
+ /* @__PURE__ */ jsxs("div", { children: [
13
+ /* @__PURE__ */ jsx("h1", { className: "text-neutral6 text-sm font-semibold", children: message }),
14
+ /* @__PURE__ */ jsx("p", { className: "text-neutral3 mt-1 text-xs", children: "Check the connection and try again." }),
15
+ /* @__PURE__ */ jsxs("div", { className: "mt-4 flex flex-wrap gap-2", children: [
16
+ /* @__PURE__ */ jsx(Button, { onClick: onRetry, size: "sm", type: "button", variant: "outline", children: "Retry" }),
17
+ onClear ? /* @__PURE__ */ jsx(Button, { onClick: onClear, size: "sm", type: "button", variant: "ghost", children: "Clear filter" }) : null
18
+ ] })
19
+ ] })
20
+ ] }) });
21
+ }
22
+
23
+ export { SignalsErrorState };
24
+ //# sourceMappingURL=signals-error-state.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signals-error-state.es.js","sources":["../../../src/ee/signals/signals-error-state.tsx"],"sourcesContent":["import { TriangleAlert } from 'lucide-react';\nimport { Button } from '@/ds/components/Button';\n\nexport function SignalsErrorState({\n message,\n onRetry,\n onClear,\n}: {\n message: string;\n onRetry: () => void;\n onClear?: () => void;\n}) {\n return (\n <section className=\"border-border1 bg-surface2 m-4 rounded-lg border p-6 lg:m-6\" role=\"alert\">\n <div className=\"flex items-start gap-3\">\n <TriangleAlert aria-hidden=\"true\" className=\"mt-0.5 size-5 shrink-0 text-red-500\" />\n <div>\n <h1 className=\"text-neutral6 text-sm font-semibold\">{message}</h1>\n <p className=\"text-neutral3 mt-1 text-xs\">Check the connection and try again.</p>\n <div className=\"mt-4 flex flex-wrap gap-2\">\n <Button onClick={onRetry} size=\"sm\" type=\"button\" variant=\"outline\">\n Retry\n </Button>\n {onClear ? (\n <Button onClick={onClear} size=\"sm\" type=\"button\" variant=\"ghost\">\n Clear filter\n </Button>\n ) : null}\n </div>\n </div>\n </div>\n </section>\n );\n}\n"],"names":[],"mappings":";;;;AAGO,SAAS,iBAAA,CAAkB;AAAA,EAChC,OAAA;AAAA,EACA,OAAA;AAAA,EACA;AACF,CAAA,EAIG;AACD,EAAA,uBACE,GAAA,CAAC,aAAQ,SAAA,EAAU,6DAAA,EAA8D,MAAK,OAAA,EACpF,QAAA,kBAAA,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,wBAAA,EACb,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,aAAA,EAAA,EAAc,aAAA,EAAY,MAAA,EAAO,SAAA,EAAU,qCAAA,EAAsC,CAAA;AAAA,yBACjF,KAAA,EAAA,EACC,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,qCAAA,EAAuC,QAAA,EAAA,OAAA,EAAQ,CAAA;AAAA,sBAC7D,GAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,4BAAA,EAA6B,QAAA,EAAA,qCAAA,EAAmC,CAAA;AAAA,sBAC7E,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,2BAAA,EACb,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,MAAA,EAAA,EAAO,SAAS,OAAA,EAAS,IAAA,EAAK,MAAK,IAAA,EAAK,QAAA,EAAS,OAAA,EAAQ,SAAA,EAAU,QAAA,EAAA,OAAA,EAEpE,CAAA;AAAA,QACC,OAAA,mBACC,GAAA,CAAC,MAAA,EAAA,EAAO,OAAA,EAAS,OAAA,EAAS,IAAA,EAAK,IAAA,EAAK,IAAA,EAAK,QAAA,EAAS,OAAA,EAAQ,OAAA,EAAQ,QAAA,EAAA,cAAA,EAElE,CAAA,GACE;AAAA,OAAA,EACN;AAAA,KAAA,EACF;AAAA,GAAA,EACF,CAAA,EACF,CAAA;AAEJ;;;;"}
@@ -0,0 +1,57 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
+
5
+ const jsxRuntime = require('react/jsx-runtime');
6
+ const skeleton = require('../../skeleton-C0zXt2_f.cjs');
7
+
8
+ function DistributionSkeleton() {
9
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "border-border1 bg-surface2 space-y-3 rounded-lg border p-4", children: [
10
+ /* @__PURE__ */ jsxRuntime.jsx(skeleton.Skeleton, { className: "h-3 w-20" }),
11
+ /* @__PURE__ */ jsxRuntime.jsx(skeleton.Skeleton, { className: "h-2 w-full" }),
12
+ /* @__PURE__ */ jsxRuntime.jsx(skeleton.Skeleton, { className: "h-3 w-4/5" }),
13
+ /* @__PURE__ */ jsxRuntime.jsx(skeleton.Skeleton, { className: "h-3 w-3/5" })
14
+ ] });
15
+ }
16
+ function AnalysisSkeletons() {
17
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
18
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid gap-3 sm:grid-cols-2 xl:grid-cols-4", children: [
19
+ /* @__PURE__ */ jsxRuntime.jsx(DistributionSkeleton, {}),
20
+ /* @__PURE__ */ jsxRuntime.jsx(DistributionSkeleton, {}),
21
+ /* @__PURE__ */ jsxRuntime.jsx(DistributionSkeleton, {}),
22
+ /* @__PURE__ */ jsxRuntime.jsx(DistributionSkeleton, {})
23
+ ] }),
24
+ /* @__PURE__ */ jsxRuntime.jsx(skeleton.Skeleton, { className: "h-80 w-full" })
25
+ ] });
26
+ }
27
+ function SignalsFrameLoadingSkeleton() {
28
+ return /* @__PURE__ */ jsxRuntime.jsxs("section", { "aria-label": "Loading snapshot flow", className: "space-y-5", role: "status", children: [
29
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: "Loading snapshot flow" }),
30
+ /* @__PURE__ */ jsxRuntime.jsx(AnalysisSkeletons, {})
31
+ ] });
32
+ }
33
+ function SignalsLoadingSkeleton() {
34
+ return /* @__PURE__ */ jsxRuntime.jsxs(
35
+ "div",
36
+ {
37
+ "aria-label": "Loading trace intelligence",
38
+ className: "space-y-5 p-4 lg:p-6",
39
+ "data-testid": "signals-loading-skeleton",
40
+ role: "status",
41
+ children: [
42
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: "Loading trace intelligence" }),
43
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-3", children: [
44
+ /* @__PURE__ */ jsxRuntime.jsx(skeleton.Skeleton, { className: "h-5 w-24" }),
45
+ /* @__PURE__ */ jsxRuntime.jsx(skeleton.Skeleton, { className: "h-7 w-96 max-w-full" }),
46
+ /* @__PURE__ */ jsxRuntime.jsx(skeleton.Skeleton, { className: "h-4 w-xl max-w-full" })
47
+ ] }),
48
+ /* @__PURE__ */ jsxRuntime.jsx(skeleton.Skeleton, { className: "h-14 w-full" }),
49
+ /* @__PURE__ */ jsxRuntime.jsx(AnalysisSkeletons, {})
50
+ ]
51
+ }
52
+ );
53
+ }
54
+
55
+ exports.SignalsFrameLoadingSkeleton = SignalsFrameLoadingSkeleton;
56
+ exports.SignalsLoadingSkeleton = SignalsLoadingSkeleton;
57
+ //# sourceMappingURL=signals-loading-skeleton.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signals-loading-skeleton.cjs.js","sources":["../../../src/ee/signals/signals-loading-skeleton.tsx"],"sourcesContent":["import { Skeleton } from '@/ds/components/Skeleton';\n\nfunction DistributionSkeleton() {\n return (\n <div className=\"border-border1 bg-surface2 space-y-3 rounded-lg border p-4\">\n <Skeleton className=\"h-3 w-20\" />\n <Skeleton className=\"h-2 w-full\" />\n <Skeleton className=\"h-3 w-4/5\" />\n <Skeleton className=\"h-3 w-3/5\" />\n </div>\n );\n}\n\nfunction AnalysisSkeletons() {\n return (\n <>\n <div className=\"grid gap-3 sm:grid-cols-2 xl:grid-cols-4\">\n <DistributionSkeleton />\n <DistributionSkeleton />\n <DistributionSkeleton />\n <DistributionSkeleton />\n </div>\n <Skeleton className=\"h-80 w-full\" />\n </>\n );\n}\n\nexport function SignalsFrameLoadingSkeleton() {\n return (\n <section aria-label=\"Loading snapshot flow\" className=\"space-y-5\" role=\"status\">\n <span className=\"sr-only\">Loading snapshot flow</span>\n <AnalysisSkeletons />\n </section>\n );\n}\n\nexport function SignalsLoadingSkeleton() {\n return (\n <div\n aria-label=\"Loading trace intelligence\"\n className=\"space-y-5 p-4 lg:p-6\"\n data-testid=\"signals-loading-skeleton\"\n role=\"status\"\n >\n <span className=\"sr-only\">Loading trace intelligence</span>\n <div className=\"space-y-3\">\n <Skeleton className=\"h-5 w-24\" />\n <Skeleton className=\"h-7 w-96 max-w-full\" />\n <Skeleton className=\"h-4 w-xl max-w-full\" />\n </div>\n <Skeleton className=\"h-14 w-full\" />\n <AnalysisSkeletons />\n </div>\n );\n}\n"],"names":["jsxs","jsx","Skeleton","Fragment"],"mappings":";;;;;;;AAEA,SAAS,oBAAA,GAAuB;AAC9B,EAAA,uBACEA,eAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,4DAAA,EACb,QAAA,EAAA;AAAA,oBAAAC,cAAA,CAACC,iBAAA,EAAA,EAAS,WAAU,UAAA,EAAW,CAAA;AAAA,oBAC/BD,cAAA,CAACC,iBAAA,EAAA,EAAS,SAAA,EAAU,YAAA,EAAa,CAAA;AAAA,oBACjCD,cAAA,CAACC,iBAAA,EAAA,EAAS,SAAA,EAAU,WAAA,EAAY,CAAA;AAAA,oBAChCD,cAAA,CAACC,iBAAA,EAAA,EAAS,SAAA,EAAU,WAAA,EAAY;AAAA,GAAA,EAClC,CAAA;AAEJ;AAEA,SAAS,iBAAA,GAAoB;AAC3B,EAAA,uBACEF,eAAA,CAAAG,mBAAA,EAAA,EACE,QAAA,EAAA;AAAA,oBAAAH,eAAA,CAAC,KAAA,EAAA,EAAI,WAAU,0CAAA,EACb,QAAA,EAAA;AAAA,sBAAAC,cAAA,CAAC,oBAAA,EAAA,EAAqB,CAAA;AAAA,qCACrB,oBAAA,EAAA,EAAqB,CAAA;AAAA,qCACrB,oBAAA,EAAA,EAAqB,CAAA;AAAA,qCACrB,oBAAA,EAAA,EAAqB;AAAA,KAAA,EACxB,CAAA;AAAA,oBACAA,cAAA,CAACC,iBAAA,EAAA,EAAS,SAAA,EAAU,aAAA,EAAc;AAAA,GAAA,EACpC,CAAA;AAEJ;AAEO,SAAS,2BAAA,GAA8B;AAC5C,EAAA,uCACG,SAAA,EAAA,EAAQ,YAAA,EAAW,yBAAwB,SAAA,EAAU,WAAA,EAAY,MAAK,QAAA,EACrE,QAAA,EAAA;AAAA,oBAAAD,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,SAAA,EAAU,QAAA,EAAA,uBAAA,EAAqB,CAAA;AAAA,mCAC9C,iBAAA,EAAA,EAAkB;AAAA,GAAA,EACrB,CAAA;AAEJ;AAEO,SAAS,sBAAA,GAAyB;AACvC,EAAA,uBACED,eAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,YAAA,EAAW,4BAAA;AAAA,MACX,SAAA,EAAU,sBAAA;AAAA,MACV,aAAA,EAAY,0BAAA;AAAA,MACZ,IAAA,EAAK,QAAA;AAAA,MAEL,QAAA,EAAA;AAAA,wBAAAC,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,SAAA,EAAU,QAAA,EAAA,4BAAA,EAA0B,CAAA;AAAA,wBACpDD,eAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,WAAA,EACb,QAAA,EAAA;AAAA,0BAAAC,cAAA,CAACC,iBAAA,EAAA,EAAS,WAAU,UAAA,EAAW,CAAA;AAAA,0BAC/BD,cAAA,CAACC,iBAAA,EAAA,EAAS,SAAA,EAAU,qBAAA,EAAsB,CAAA;AAAA,0BAC1CD,cAAA,CAACC,iBAAA,EAAA,EAAS,SAAA,EAAU,qBAAA,EAAsB;AAAA,SAAA,EAC5C,CAAA;AAAA,wBACAD,cAAA,CAACC,iBAAA,EAAA,EAAS,SAAA,EAAU,aAAA,EAAc,CAAA;AAAA,uCACjC,iBAAA,EAAA,EAAkB;AAAA;AAAA;AAAA,GACrB;AAEJ;;;;;"}
@@ -0,0 +1,2 @@
1
+ export * from '../../src/ee/signals/signals-loading-skeleton'
2
+ export {}
@@ -0,0 +1,52 @@
1
+ import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
2
+ import { S as Skeleton } from '../../skeleton-C5-7V8Ni.js';
3
+
4
+ function DistributionSkeleton() {
5
+ return /* @__PURE__ */ jsxs("div", { className: "border-border1 bg-surface2 space-y-3 rounded-lg border p-4", children: [
6
+ /* @__PURE__ */ jsx(Skeleton, { className: "h-3 w-20" }),
7
+ /* @__PURE__ */ jsx(Skeleton, { className: "h-2 w-full" }),
8
+ /* @__PURE__ */ jsx(Skeleton, { className: "h-3 w-4/5" }),
9
+ /* @__PURE__ */ jsx(Skeleton, { className: "h-3 w-3/5" })
10
+ ] });
11
+ }
12
+ function AnalysisSkeletons() {
13
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
14
+ /* @__PURE__ */ jsxs("div", { className: "grid gap-3 sm:grid-cols-2 xl:grid-cols-4", children: [
15
+ /* @__PURE__ */ jsx(DistributionSkeleton, {}),
16
+ /* @__PURE__ */ jsx(DistributionSkeleton, {}),
17
+ /* @__PURE__ */ jsx(DistributionSkeleton, {}),
18
+ /* @__PURE__ */ jsx(DistributionSkeleton, {})
19
+ ] }),
20
+ /* @__PURE__ */ jsx(Skeleton, { className: "h-80 w-full" })
21
+ ] });
22
+ }
23
+ function SignalsFrameLoadingSkeleton() {
24
+ return /* @__PURE__ */ jsxs("section", { "aria-label": "Loading snapshot flow", className: "space-y-5", role: "status", children: [
25
+ /* @__PURE__ */ jsx("span", { className: "sr-only", children: "Loading snapshot flow" }),
26
+ /* @__PURE__ */ jsx(AnalysisSkeletons, {})
27
+ ] });
28
+ }
29
+ function SignalsLoadingSkeleton() {
30
+ return /* @__PURE__ */ jsxs(
31
+ "div",
32
+ {
33
+ "aria-label": "Loading trace intelligence",
34
+ className: "space-y-5 p-4 lg:p-6",
35
+ "data-testid": "signals-loading-skeleton",
36
+ role: "status",
37
+ children: [
38
+ /* @__PURE__ */ jsx("span", { className: "sr-only", children: "Loading trace intelligence" }),
39
+ /* @__PURE__ */ jsxs("div", { className: "space-y-3", children: [
40
+ /* @__PURE__ */ jsx(Skeleton, { className: "h-5 w-24" }),
41
+ /* @__PURE__ */ jsx(Skeleton, { className: "h-7 w-96 max-w-full" }),
42
+ /* @__PURE__ */ jsx(Skeleton, { className: "h-4 w-xl max-w-full" })
43
+ ] }),
44
+ /* @__PURE__ */ jsx(Skeleton, { className: "h-14 w-full" }),
45
+ /* @__PURE__ */ jsx(AnalysisSkeletons, {})
46
+ ]
47
+ }
48
+ );
49
+ }
50
+
51
+ export { SignalsFrameLoadingSkeleton, SignalsLoadingSkeleton };
52
+ //# sourceMappingURL=signals-loading-skeleton.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signals-loading-skeleton.es.js","sources":["../../../src/ee/signals/signals-loading-skeleton.tsx"],"sourcesContent":["import { Skeleton } from '@/ds/components/Skeleton';\n\nfunction DistributionSkeleton() {\n return (\n <div className=\"border-border1 bg-surface2 space-y-3 rounded-lg border p-4\">\n <Skeleton className=\"h-3 w-20\" />\n <Skeleton className=\"h-2 w-full\" />\n <Skeleton className=\"h-3 w-4/5\" />\n <Skeleton className=\"h-3 w-3/5\" />\n </div>\n );\n}\n\nfunction AnalysisSkeletons() {\n return (\n <>\n <div className=\"grid gap-3 sm:grid-cols-2 xl:grid-cols-4\">\n <DistributionSkeleton />\n <DistributionSkeleton />\n <DistributionSkeleton />\n <DistributionSkeleton />\n </div>\n <Skeleton className=\"h-80 w-full\" />\n </>\n );\n}\n\nexport function SignalsFrameLoadingSkeleton() {\n return (\n <section aria-label=\"Loading snapshot flow\" className=\"space-y-5\" role=\"status\">\n <span className=\"sr-only\">Loading snapshot flow</span>\n <AnalysisSkeletons />\n </section>\n );\n}\n\nexport function SignalsLoadingSkeleton() {\n return (\n <div\n aria-label=\"Loading trace intelligence\"\n className=\"space-y-5 p-4 lg:p-6\"\n data-testid=\"signals-loading-skeleton\"\n role=\"status\"\n >\n <span className=\"sr-only\">Loading trace intelligence</span>\n <div className=\"space-y-3\">\n <Skeleton className=\"h-5 w-24\" />\n <Skeleton className=\"h-7 w-96 max-w-full\" />\n <Skeleton className=\"h-4 w-xl max-w-full\" />\n </div>\n <Skeleton className=\"h-14 w-full\" />\n <AnalysisSkeletons />\n </div>\n );\n}\n"],"names":[],"mappings":";;;AAEA,SAAS,oBAAA,GAAuB;AAC9B,EAAA,uBACE,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,4DAAA,EACb,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,QAAA,EAAA,EAAS,WAAU,UAAA,EAAW,CAAA;AAAA,oBAC/B,GAAA,CAAC,QAAA,EAAA,EAAS,SAAA,EAAU,YAAA,EAAa,CAAA;AAAA,oBACjC,GAAA,CAAC,QAAA,EAAA,EAAS,SAAA,EAAU,WAAA,EAAY,CAAA;AAAA,oBAChC,GAAA,CAAC,QAAA,EAAA,EAAS,SAAA,EAAU,WAAA,EAAY;AAAA,GAAA,EAClC,CAAA;AAEJ;AAEA,SAAS,iBAAA,GAAoB;AAC3B,EAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,oBAAA,IAAA,CAAC,KAAA,EAAA,EAAI,WAAU,0CAAA,EACb,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,oBAAA,EAAA,EAAqB,CAAA;AAAA,0BACrB,oBAAA,EAAA,EAAqB,CAAA;AAAA,0BACrB,oBAAA,EAAA,EAAqB,CAAA;AAAA,0BACrB,oBAAA,EAAA,EAAqB;AAAA,KAAA,EACxB,CAAA;AAAA,oBACA,GAAA,CAAC,QAAA,EAAA,EAAS,SAAA,EAAU,aAAA,EAAc;AAAA,GAAA,EACpC,CAAA;AAEJ;AAEO,SAAS,2BAAA,GAA8B;AAC5C,EAAA,4BACG,SAAA,EAAA,EAAQ,YAAA,EAAW,yBAAwB,SAAA,EAAU,WAAA,EAAY,MAAK,QAAA,EACrE,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,SAAA,EAAU,QAAA,EAAA,uBAAA,EAAqB,CAAA;AAAA,wBAC9C,iBAAA,EAAA,EAAkB;AAAA,GAAA,EACrB,CAAA;AAEJ;AAEO,SAAS,sBAAA,GAAyB;AACvC,EAAA,uBACE,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,YAAA,EAAW,4BAAA;AAAA,MACX,SAAA,EAAU,sBAAA;AAAA,MACV,aAAA,EAAY,0BAAA;AAAA,MACZ,IAAA,EAAK,QAAA;AAAA,MAEL,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,SAAA,EAAU,QAAA,EAAA,4BAAA,EAA0B,CAAA;AAAA,wBACpD,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,WAAA,EACb,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,QAAA,EAAA,EAAS,WAAU,UAAA,EAAW,CAAA;AAAA,0BAC/B,GAAA,CAAC,QAAA,EAAA,EAAS,SAAA,EAAU,qBAAA,EAAsB,CAAA;AAAA,0BAC1C,GAAA,CAAC,QAAA,EAAA,EAAS,SAAA,EAAU,qBAAA,EAAsB;AAAA,SAAA,EAC5C,CAAA;AAAA,wBACA,GAAA,CAAC,QAAA,EAAA,EAAS,SAAA,EAAU,aAAA,EAAc,CAAA;AAAA,4BACjC,iBAAA,EAAA,EAAkB;AAAA;AAAA;AAAA,GACrB;AAEJ;;;;"}