@mastra/playground-ui 68.0.0 → 69.0.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2284) hide show
  1. package/README.md +80 -8
  2. package/dist/AgentIndicator-Dnv_1hvF.js +1995 -0
  3. package/dist/AgentIndicator-Dnv_1hvF.js.map +1 -0
  4. package/dist/AgentIndicator-zCokR2zb.cjs +2012 -0
  5. package/dist/AgentIndicator-zCokR2zb.cjs.map +1 -0
  6. package/dist/AttachmentCard-Bt3-QAxJ.js +61 -0
  7. package/dist/AttachmentCard-Bt3-QAxJ.js.map +1 -0
  8. package/dist/AttachmentCard-BycDEelL.cjs +66 -0
  9. package/dist/AttachmentCard-BycDEelL.cjs.map +1 -0
  10. package/dist/Avatar-DOoEXudh.js +146 -0
  11. package/dist/Avatar-DOoEXudh.js.map +1 -0
  12. package/dist/Avatar-Dxpc0YUx.cjs +151 -0
  13. package/dist/Avatar-Dxpc0YUx.cjs.map +1 -0
  14. package/dist/Badge-C7NnqmMx.js +149 -0
  15. package/dist/Badge-C7NnqmMx.js.map +1 -0
  16. package/dist/Badge-DqaMg7Gy.cjs +154 -0
  17. package/dist/Badge-DqaMg7Gy.cjs.map +1 -0
  18. package/dist/Button-BfICfyxD.cjs +276 -0
  19. package/dist/Button-BfICfyxD.cjs.map +1 -0
  20. package/dist/Button-Bi7aXd_G.js +233 -0
  21. package/dist/Button-Bi7aXd_G.js.map +1 -0
  22. package/dist/Card-C9oCXvxU.cjs +134 -0
  23. package/dist/Card-C9oCXvxU.cjs.map +1 -0
  24. package/dist/Card-ClDoUQNb.js +91 -0
  25. package/dist/Card-ClDoUQNb.js.map +1 -0
  26. package/dist/CodeEditor-DHIDfP5g.cjs +515 -0
  27. package/dist/CodeEditor-DHIDfP5g.cjs.map +1 -0
  28. package/dist/CodeEditor-ZoBu3Gjw.js +466 -0
  29. package/dist/CodeEditor-ZoBu3Gjw.js.map +1 -0
  30. package/dist/Comment-2q9SomE2.js +317 -0
  31. package/dist/Comment-2q9SomE2.js.map +1 -0
  32. package/dist/Comment-rQxuMDQv.cjs +412 -0
  33. package/dist/Comment-rQxuMDQv.cjs.map +1 -0
  34. package/dist/Composer-bVE8qK52.js +357 -0
  35. package/dist/Composer-bVE8qK52.js.map +1 -0
  36. package/dist/Composer-u1K6edoZ.cjs +446 -0
  37. package/dist/Composer-u1K6edoZ.cjs.map +1 -0
  38. package/dist/DataCodeSection-7SvRJj6f.cjs +236 -0
  39. package/dist/DataCodeSection-7SvRJj6f.cjs.map +1 -0
  40. package/dist/DataCodeSection-CTodi9wg.js +231 -0
  41. package/dist/DataCodeSection-CTodi9wg.js.map +1 -0
  42. package/dist/DataDetailsPanel-BDoD6pxx.cjs +185 -0
  43. package/dist/DataDetailsPanel-BDoD6pxx.cjs.map +1 -0
  44. package/dist/DataDetailsPanel-BU05psHL.js +180 -0
  45. package/dist/DataDetailsPanel-BU05psHL.js.map +1 -0
  46. package/dist/DataKeysAndValues-B56je3sK.js +123 -0
  47. package/dist/DataKeysAndValues-B56je3sK.js.map +1 -0
  48. package/dist/DataKeysAndValues-BbKeVxrQ.cjs +128 -0
  49. package/dist/DataKeysAndValues-BbKeVxrQ.cjs.map +1 -0
  50. package/dist/DataList-B7ho6PrJ.js +408 -0
  51. package/dist/DataList-B7ho6PrJ.js.map +1 -0
  52. package/dist/DataList-DTIdllb-.cjs +431 -0
  53. package/dist/DataList-DTIdllb-.cjs.map +1 -0
  54. package/dist/DataPanel-BRRAvWYQ.cjs +298 -0
  55. package/dist/DataPanel-BRRAvWYQ.cjs.map +1 -0
  56. package/dist/DataPanel-pVr5LVaK.js +292 -0
  57. package/dist/DataPanel-pVr5LVaK.js.map +1 -0
  58. package/dist/Dialog-Duy3M1ny.cjs +424 -0
  59. package/dist/Dialog-Duy3M1ny.cjs.map +1 -0
  60. package/dist/Dialog-OBPu3rl2.js +334 -0
  61. package/dist/Dialog-OBPu3rl2.js.map +1 -0
  62. package/dist/EmptyState-Dc-sP95H.cjs +1524 -0
  63. package/dist/EmptyState-Dc-sP95H.cjs.map +1 -0
  64. package/dist/EmptyState-i88y1x75.js +1511 -0
  65. package/dist/EmptyState-i88y1x75.js.map +1 -0
  66. package/dist/ErrorBoundary-Bwoum0sT.cjs +138 -0
  67. package/dist/ErrorBoundary-Bwoum0sT.cjs.map +1 -0
  68. package/dist/ErrorBoundary-BzmaWe2y.js +131 -0
  69. package/dist/ErrorBoundary-BzmaWe2y.js.map +1 -0
  70. package/dist/FilterBar-CFacnMNl.js +861 -0
  71. package/dist/FilterBar-CFacnMNl.js.map +1 -0
  72. package/dist/FilterBar-CR8nbvoe.cjs +902 -0
  73. package/dist/FilterBar-CR8nbvoe.cjs.map +1 -0
  74. package/dist/KnowledgePageGraph.css +1 -3
  75. package/dist/LogsDataList-Cdo_U0Ei.js +96 -0
  76. package/dist/LogsDataList-Cdo_U0Ei.js.map +1 -0
  77. package/dist/LogsDataList-z0Y2X8P5.cjs +101 -0
  78. package/dist/LogsDataList-z0Y2X8P5.cjs.map +1 -0
  79. package/dist/MarkdownRenderer-BSGb65Ze.js +481 -0
  80. package/dist/MarkdownRenderer-BSGb65Ze.js.map +1 -0
  81. package/dist/MarkdownRenderer-CDwlvw0Y.cjs +490 -0
  82. package/dist/MarkdownRenderer-CDwlvw0Y.cjs.map +1 -0
  83. package/dist/MarkdownRenderer.css +77 -6
  84. package/dist/Message-CgO_SxI4.cjs +116 -0
  85. package/dist/Message-CgO_SxI4.cjs.map +1 -0
  86. package/dist/Message-DnnCoSef.js +87 -0
  87. package/dist/Message-DnnCoSef.js.map +1 -0
  88. package/dist/MessageScroller-D-mK1uuu.cjs +976 -0
  89. package/dist/MessageScroller-D-mK1uuu.cjs.map +1 -0
  90. package/dist/MessageScroller-nV_zBF3H.js +903 -0
  91. package/dist/MessageScroller-nV_zBF3H.js.map +1 -0
  92. package/dist/Metadata-5GJlO4GU.cjs +32 -0
  93. package/dist/Metadata-5GJlO4GU.cjs.map +1 -0
  94. package/dist/Metadata-DlVgmRTA.js +27 -0
  95. package/dist/Metadata-DlVgmRTA.js.map +1 -0
  96. package/dist/MetricsCard-CSJ4TsNq.cjs +229 -0
  97. package/dist/MetricsCard-CSJ4TsNq.cjs.map +1 -0
  98. package/dist/MetricsCard-D6bQfynP.js +224 -0
  99. package/dist/MetricsCard-D6bQfynP.js.map +1 -0
  100. package/dist/MetricsKpiCard-1blTbzUs.js +216 -0
  101. package/dist/MetricsKpiCard-1blTbzUs.js.map +1 -0
  102. package/dist/MetricsKpiCard-C_9GvRAp.cjs +221 -0
  103. package/dist/MetricsKpiCard-C_9GvRAp.cjs.map +1 -0
  104. package/dist/MetricsLineChart-4w5lpH63.js +262 -0
  105. package/dist/MetricsLineChart-4w5lpH63.js.map +1 -0
  106. package/dist/MetricsLineChart-BnY9JKzc.cjs +279 -0
  107. package/dist/MetricsLineChart-BnY9JKzc.cjs.map +1 -0
  108. package/dist/MetricsStackedBarChart-Bmk0OjYp.js +308 -0
  109. package/dist/MetricsStackedBarChart-Bmk0OjYp.js.map +1 -0
  110. package/dist/MetricsStackedBarChart-CJQF99sc.cjs +313 -0
  111. package/dist/MetricsStackedBarChart-CJQF99sc.cjs.map +1 -0
  112. package/dist/MetricsTable-CvMoo2vg.cjs +332 -0
  113. package/dist/MetricsTable-CvMoo2vg.cjs.map +1 -0
  114. package/dist/MetricsTable-DIjbD5Xk.js +327 -0
  115. package/dist/MetricsTable-DIjbD5Xk.js.map +1 -0
  116. package/dist/Notice-B_KjMmA6.cjs +117 -0
  117. package/dist/Notice-B_KjMmA6.cjs.map +1 -0
  118. package/dist/Notice-OSlG42lD.js +112 -0
  119. package/dist/Notice-OSlG42lD.js.map +1 -0
  120. package/dist/PageLayout-C0Fo3ZQC.cjs +54 -0
  121. package/dist/PageLayout-C0Fo3ZQC.cjs.map +1 -0
  122. package/dist/PageLayout-DLll7ZwB.js +49 -0
  123. package/dist/PageLayout-DLll7ZwB.js.map +1 -0
  124. package/dist/SankeyChart-lkM5cpOC.js +856 -0
  125. package/dist/SankeyChart-lkM5cpOC.js.map +1 -0
  126. package/dist/SankeyChart-m50vrsBS.cjs +921 -0
  127. package/dist/SankeyChart-m50vrsBS.cjs.map +1 -0
  128. package/dist/Section-B8MIbDDs.cjs +130 -0
  129. package/dist/Section-B8MIbDDs.cjs.map +1 -0
  130. package/dist/Section-C9Fgv-IF.js +113 -0
  131. package/dist/Section-C9Fgv-IF.js.map +1 -0
  132. package/dist/ShareBar-DERy_egz.cjs +456 -0
  133. package/dist/ShareBar-DERy_egz.cjs.map +1 -0
  134. package/dist/ShareBar-KrzzdcyI.js +451 -0
  135. package/dist/ShareBar-KrzzdcyI.js.map +1 -0
  136. package/dist/Tree-D1_VJClB.js +438 -0
  137. package/dist/Tree-D1_VJClB.js.map +1 -0
  138. package/dist/Tree-kgLG4IbP.cjs +445 -0
  139. package/dist/Tree-kgLG4IbP.cjs.map +1 -0
  140. package/dist/Txt-5efBsb2p.js +21 -0
  141. package/dist/Txt-5efBsb2p.js.map +1 -0
  142. package/dist/Txt-_00wWxTd.cjs +26 -0
  143. package/dist/Txt-_00wWxTd.cjs.map +1 -0
  144. package/dist/Workflow-CXRv3YXx.js +1316 -0
  145. package/dist/Workflow-CXRv3YXx.js.map +1 -0
  146. package/dist/Workflow-DIfTVqZs.cjs +1467 -0
  147. package/dist/Workflow-DIfTVqZs.cjs.map +1 -0
  148. package/dist/activity-BH_eegMA.js +450 -0
  149. package/dist/activity-BH_eegMA.js.map +1 -0
  150. package/dist/activity-Ciolopq8.cjs +581 -0
  151. package/dist/activity-Ciolopq8.cjs.map +1 -0
  152. package/dist/annotations.css +8 -0
  153. package/dist/ask-user-D4ezQ6pt.js +412 -0
  154. package/dist/ask-user-D4ezQ6pt.js.map +1 -0
  155. package/dist/ask-user-DcnUNMM5.cjs +495 -0
  156. package/dist/ask-user-DcnUNMM5.cjs.map +1 -0
  157. package/dist/buttons-group-DA_wORqQ.js +35 -0
  158. package/dist/buttons-group-DA_wORqQ.js.map +1 -0
  159. package/dist/buttons-group-DM6_Kohs.cjs +48 -0
  160. package/dist/buttons-group-DM6_Kohs.cjs.map +1 -0
  161. package/dist/chat-shell-context-0m1GVhS7.js +16 -0
  162. package/dist/chat-shell-context-0m1GVhS7.js.map +1 -0
  163. package/dist/chat-shell-context-ONCslAGn.cjs +39 -0
  164. package/dist/chat-shell-context-ONCslAGn.cjs.map +1 -0
  165. package/dist/clear-filters-button-C79dzuzA.js +22 -0
  166. package/dist/clear-filters-button-C79dzuzA.js.map +1 -0
  167. package/dist/clear-filters-button-CCO-y7kt.cjs +27 -0
  168. package/dist/clear-filters-button-CCO-y7kt.cjs.map +1 -0
  169. package/dist/combobox-i723LxeC.cjs +313 -0
  170. package/dist/combobox-i723LxeC.cjs.map +1 -0
  171. package/dist/combobox-lbSxWRMl.js +306 -0
  172. package/dist/combobox-lbSxWRMl.js.map +1 -0
  173. package/dist/combobox-parts-BeNqgCbj.cjs +582 -0
  174. package/dist/combobox-parts-BeNqgCbj.cjs.map +1 -0
  175. package/dist/combobox-parts-C9o4UfH_.js +437 -0
  176. package/dist/combobox-parts-C9o4UfH_.js.map +1 -0
  177. package/dist/components/AgentIndicator.cjs.js +1 -1
  178. package/dist/components/AgentIndicator.es.js +1 -1
  179. package/dist/components/AlertDialog.cjs.js +2 -2
  180. package/dist/components/AlertDialog.es.js +2 -2
  181. package/dist/components/AttachmentCard.cjs.js +1 -1
  182. package/dist/components/AttachmentCard.es.js +1 -1
  183. package/dist/components/Avatar.cjs.js +1 -1
  184. package/dist/components/Avatar.es.js +1 -1
  185. package/dist/components/Badge.cjs.js +1 -1
  186. package/dist/components/Badge.es.js +1 -1
  187. package/dist/components/Breadcrumb.cjs.js +6 -5
  188. package/dist/components/Breadcrumb.cjs.js.map +1 -1
  189. package/dist/components/Breadcrumb.es.js +6 -5
  190. package/dist/components/Breadcrumb.es.js.map +1 -1
  191. package/dist/components/Button.cjs.js +2 -2
  192. package/dist/components/Button.es.js +2 -2
  193. package/dist/components/ButtonsGroup.cjs.js +1 -1
  194. package/dist/components/ButtonsGroup.es.js +1 -1
  195. package/dist/components/Card.cjs.js +1 -1
  196. package/dist/components/Card.es.js +1 -1
  197. package/dist/components/ChartSkeleton.cjs.js +2 -2
  198. package/dist/components/ChartSkeleton.es.js +2 -2
  199. package/dist/components/ChartTooltip.cjs.js +1 -1
  200. package/dist/components/ChartTooltip.es.js +1 -1
  201. package/dist/components/ChatShell.cjs.js +33 -9
  202. package/dist/components/ChatShell.cjs.js.map +1 -1
  203. package/dist/components/ChatShell.es.js +33 -9
  204. package/dist/components/ChatShell.es.js.map +1 -1
  205. package/dist/components/Checkbox.cjs.js +1 -1
  206. package/dist/components/Checkbox.es.js +1 -1
  207. package/dist/components/ClampedText.cjs.js +3 -3
  208. package/dist/components/ClampedText.es.js +3 -3
  209. package/dist/components/ClearFiltersButton.cjs.js +1 -1
  210. package/dist/components/ClearFiltersButton.es.js +1 -1
  211. package/dist/components/CodeBlock.cjs.js +5 -5
  212. package/dist/components/CodeBlock.es.js +5 -5
  213. package/dist/components/CodeDiff.cjs.js +3 -3
  214. package/dist/components/CodeDiff.es.js +2 -2
  215. package/dist/components/CodeEditor.cjs.js +1 -1
  216. package/dist/components/CodeEditor.es.js +1 -1
  217. package/dist/components/Collapsible.cjs.js +1 -1
  218. package/dist/components/Collapsible.es.js +1 -1
  219. package/dist/components/CollapsibleBox.cjs.js +1 -1
  220. package/dist/components/CollapsibleBox.es.js +1 -1
  221. package/dist/components/Combobox.cjs.js +2 -2
  222. package/dist/components/Combobox.es.js +2 -2
  223. package/dist/components/Command.cjs.js +5 -5
  224. package/dist/components/Command.es.js +5 -5
  225. package/dist/components/CommandPalette.cjs.js +7 -7
  226. package/dist/components/CommandPalette.cjs.js.map +1 -1
  227. package/dist/components/CommandPalette.es.js +7 -7
  228. package/dist/components/CommandPalette.es.js.map +1 -1
  229. package/dist/components/Comment.cjs.js +1 -1
  230. package/dist/components/Comment.es.js +1 -1
  231. package/dist/components/CompactNumber.cjs.js +2 -2
  232. package/dist/components/CompactNumber.es.js +2 -2
  233. package/dist/components/Composer.cjs.js +1 -1
  234. package/dist/components/Composer.es.js +1 -1
  235. package/dist/components/ContextMenu.cjs.js +1 -1
  236. package/dist/components/ContextMenu.es.js +1 -1
  237. package/dist/components/CopyButton.cjs.js +1 -1
  238. package/dist/components/CopyButton.es.js +1 -1
  239. package/dist/components/DataCodeSection.cjs.js +1 -1
  240. package/dist/components/DataCodeSection.es.js +1 -1
  241. package/dist/components/DataDetailsPanel.cjs.js +1 -1
  242. package/dist/components/DataDetailsPanel.es.js +1 -1
  243. package/dist/components/DataKeysAndValues.cjs.js +1 -1
  244. package/dist/components/DataKeysAndValues.es.js +1 -1
  245. package/dist/components/DataList.cjs.js +3 -3
  246. package/dist/components/DataList.es.js +3 -3
  247. package/dist/components/DataPanel.cjs.js +1 -1
  248. package/dist/components/DataPanel.es.js +1 -1
  249. package/dist/components/DateRangeTimeline.cjs.js +9 -9
  250. package/dist/components/DateRangeTimeline.cjs.js.map +1 -1
  251. package/dist/components/DateRangeTimeline.es.js +9 -9
  252. package/dist/components/DateRangeTimeline.es.js.map +1 -1
  253. package/dist/components/DateTimePicker.cjs.js +75 -142
  254. package/dist/components/DateTimePicker.cjs.js.map +1 -1
  255. package/dist/components/DateTimePicker.es.js +79 -146
  256. package/dist/components/DateTimePicker.es.js.map +1 -1
  257. package/dist/components/DateTimeRangePicker.cjs.js +1 -1
  258. package/dist/components/DateTimeRangePicker.es.js +1 -1
  259. package/dist/components/Dialog.cjs.js +1 -1
  260. package/dist/components/Dialog.es.js +1 -1
  261. package/dist/components/DiffStat.cjs.js +1 -1
  262. package/dist/components/DiffStat.es.js +1 -1
  263. package/dist/components/DisabledFeatureButton.cjs.js +3 -3
  264. package/dist/components/DisabledFeatureButton.es.js +3 -3
  265. package/dist/components/DisclosureChevron.cjs.js +1 -1
  266. package/dist/components/DisclosureChevron.es.js +1 -1
  267. package/dist/components/Drawer.cjs.js +2 -2
  268. package/dist/components/Drawer.es.js +2 -2
  269. package/dist/components/DropdownMenu.cjs.js +1 -1
  270. package/dist/components/DropdownMenu.es.js +1 -1
  271. package/dist/components/EmptyState.cjs.js +1 -1
  272. package/dist/components/EmptyState.es.js +1 -1
  273. package/dist/components/Entity.cjs.js +3 -3
  274. package/dist/components/Entity.es.js +3 -3
  275. package/dist/components/EntityHeader.cjs.js +2 -2
  276. package/dist/components/EntityHeader.es.js +2 -2
  277. package/dist/components/Entry.cjs.js +1 -1
  278. package/dist/components/Entry.es.js +1 -1
  279. package/dist/components/EnvironmentVariablesEditor.cjs.js +6 -6
  280. package/dist/components/EnvironmentVariablesEditor.es.js +6 -6
  281. package/dist/components/ErrorBoundary.cjs.js +1 -1
  282. package/dist/components/ErrorBoundary.es.js +1 -1
  283. package/dist/components/Field.cjs.js +2 -2
  284. package/dist/components/Field.es.js +2 -2
  285. package/dist/components/FileDropBackdrop.cjs.js +1 -1
  286. package/dist/components/FileDropBackdrop.es.js +1 -1
  287. package/dist/components/FilterBar.cjs.js +3 -3
  288. package/dist/components/FilterBar.es.js +3 -3
  289. package/dist/components/FormFieldBlocks.cjs.js +5 -5
  290. package/dist/components/FormFieldBlocks.es.js +6 -6
  291. package/dist/components/Header.cjs.js +1 -1
  292. package/dist/components/Header.es.js +1 -1
  293. package/dist/components/HoverCard.cjs.js +1 -1
  294. package/dist/components/HoverCard.es.js +1 -1
  295. package/dist/components/Input.cjs.js +1 -1
  296. package/dist/components/Input.es.js +1 -1
  297. package/dist/components/InputGroup.cjs.js +1 -1
  298. package/dist/components/InputGroup.es.js +1 -1
  299. package/dist/components/InputNumber.cjs.js +3 -3
  300. package/dist/components/InputNumber.es.js +3 -3
  301. package/dist/components/JSONSchemaForm.cjs.js +4 -4
  302. package/dist/components/JSONSchemaForm.es.js +4 -4
  303. package/dist/components/Kbd.cjs.js +1 -1
  304. package/dist/components/Kbd.es.js +1 -1
  305. package/dist/components/KeyValueList.cjs.js +2 -2
  306. package/dist/components/KeyValueList.es.js +2 -2
  307. package/dist/components/ListSearch.cjs.js +1 -1
  308. package/dist/components/ListSearch.es.js +1 -1
  309. package/dist/components/LogsDataList.cjs.js +2 -2
  310. package/dist/components/LogsDataList.es.js +2 -2
  311. package/dist/components/MainHeader.cjs.js +1 -1
  312. package/dist/components/MainHeader.es.js +1 -1
  313. package/dist/components/MarkdownRenderer.cjs.js +1 -1
  314. package/dist/components/MarkdownRenderer.es.js +1 -1
  315. package/dist/components/Message.cjs.js +1 -1
  316. package/dist/components/Message.es.js +1 -1
  317. package/dist/components/MessageScroller.cjs.js +1 -1
  318. package/dist/components/MessageScroller.es.js +1 -1
  319. package/dist/components/Metadata.cjs.js +3 -0
  320. package/dist/components/Metadata.d.ts +1 -0
  321. package/dist/components/Metadata.es.js +1 -0
  322. package/dist/components/Meter.cjs.js +3 -3
  323. package/dist/components/Meter.es.js +3 -3
  324. package/dist/components/MetricsCard.cjs.js +1 -1
  325. package/dist/components/MetricsCard.es.js +1 -1
  326. package/dist/components/MetricsKpiCard.cjs.js +1 -1
  327. package/dist/components/MetricsKpiCard.es.js +1 -1
  328. package/dist/components/MetricsLineChart.cjs.js +1 -1
  329. package/dist/components/MetricsLineChart.es.js +1 -1
  330. package/dist/components/MetricsStackedBarChart.cjs.js +1 -1
  331. package/dist/components/MetricsStackedBarChart.es.js +1 -1
  332. package/dist/components/MetricsTable.cjs.js +1 -1
  333. package/dist/components/MetricsTable.es.js +1 -1
  334. package/dist/components/Notice.cjs.js +1 -1
  335. package/dist/components/Notice.es.js +1 -1
  336. package/dist/components/PageHeader.cjs.js +1 -1
  337. package/dist/components/PageHeader.es.js +1 -1
  338. package/dist/components/PageLayout.cjs.js +1 -1
  339. package/dist/components/PageLayout.es.js +1 -1
  340. package/dist/components/Popover.cjs.js +1 -1
  341. package/dist/components/Popover.es.js +1 -1
  342. package/dist/components/PrevNextNav.cjs.js +1 -1
  343. package/dist/components/PrevNextNav.es.js +1 -1
  344. package/dist/components/ProductAvatar.cjs.js +2 -2
  345. package/dist/components/ProductAvatar.es.js +2 -2
  346. package/dist/components/ProductBadge.cjs.js +2 -2
  347. package/dist/components/ProductBadge.es.js +2 -2
  348. package/dist/components/PropertyFilter.cjs.js +9 -9
  349. package/dist/components/PropertyFilter.cjs.js.map +1 -1
  350. package/dist/components/PropertyFilter.es.js +9 -9
  351. package/dist/components/PropertyFilter.es.js.map +1 -1
  352. package/dist/components/RadioGroup.cjs.js +1 -1
  353. package/dist/components/RadioGroup.es.js +1 -1
  354. package/dist/components/RelativeTimestamp.cjs.js +6 -30
  355. package/dist/components/RelativeTimestamp.cjs.js.map +1 -1
  356. package/dist/components/RelativeTimestamp.es.js +7 -31
  357. package/dist/components/RelativeTimestamp.es.js.map +1 -1
  358. package/dist/components/RuleBuilder.cjs.js +22 -22
  359. package/dist/components/RuleBuilder.cjs.js.map +1 -1
  360. package/dist/components/RuleBuilder.es.js +5 -5
  361. package/dist/components/SankeyChart.cjs.js +1 -1
  362. package/dist/components/SankeyChart.es.js +1 -1
  363. package/dist/components/SavedViews.cjs.js +9 -9
  364. package/dist/components/SavedViews.es.js +9 -9
  365. package/dist/components/ScatterPlotChart.cjs.js +2 -2
  366. package/dist/components/ScatterPlotChart.es.js +2 -2
  367. package/dist/components/ScrollArea.cjs.js +1 -1
  368. package/dist/components/ScrollArea.es.js +1 -1
  369. package/dist/components/SearchInput.cjs.js +2 -2
  370. package/dist/components/SearchInput.es.js +2 -2
  371. package/dist/components/Section.cjs.js +1 -1
  372. package/dist/components/Section.es.js +1 -1
  373. package/dist/components/SectionCard.cjs.js +1 -1
  374. package/dist/components/SectionCard.es.js +1 -1
  375. package/dist/components/SegmentedControl.cjs.js +3 -3
  376. package/dist/components/SegmentedControl.es.js +3 -3
  377. package/dist/components/Select.cjs.js +1 -1
  378. package/dist/components/Select.es.js +1 -1
  379. package/dist/components/ShareBar.cjs.js +1 -1
  380. package/dist/components/ShareBar.es.js +1 -1
  381. package/dist/components/SideDialog.cjs.js +8 -8
  382. package/dist/components/SideDialog.es.js +8 -8
  383. package/dist/components/Sidebar.cjs.js +14 -14
  384. package/dist/components/Sidebar.cjs.js.map +1 -1
  385. package/dist/components/Sidebar.es.js +15 -15
  386. package/dist/components/Sidebar.es.js.map +1 -1
  387. package/dist/components/Skeleton.cjs.js +1 -1
  388. package/dist/components/Skeleton.es.js +1 -1
  389. package/dist/components/Spinner.cjs.js +1 -1
  390. package/dist/components/Spinner.es.js +1 -1
  391. package/dist/components/StatusIndicators.cjs.js +3 -3
  392. package/dist/components/StatusIndicators.es.js +3 -3
  393. package/dist/components/Steps.cjs.js +73 -3
  394. package/dist/components/Steps.cjs.js.map +1 -1
  395. package/dist/components/Steps.es.js +73 -4
  396. package/dist/components/Steps.es.js.map +1 -1
  397. package/dist/components/Switch.cjs.js +2 -2
  398. package/dist/components/Switch.es.js +2 -2
  399. package/dist/components/Table.cjs.js +4 -4
  400. package/dist/components/Table.es.js +4 -4
  401. package/dist/components/Tabs.cjs.js +2 -2
  402. package/dist/components/Tabs.es.js +2 -2
  403. package/dist/components/Text.cjs.js +1 -1
  404. package/dist/components/Text.es.js +1 -1
  405. package/dist/components/Textarea.cjs.js +2 -2
  406. package/dist/components/Textarea.es.js +2 -2
  407. package/dist/components/ThinkingLevel.cjs.js +5 -5
  408. package/dist/components/ThinkingLevel.cjs.js.map +1 -1
  409. package/dist/components/ThinkingLevel.es.js +5 -5
  410. package/dist/components/ThinkingLevel.es.js.map +1 -1
  411. package/dist/components/ThreadList.cjs.js +2 -2
  412. package/dist/components/ThreadList.es.js +2 -2
  413. package/dist/components/ThreadRail.cjs.js +10 -8
  414. package/dist/components/ThreadRail.cjs.js.map +1 -1
  415. package/dist/components/ThreadRail.es.js +10 -8
  416. package/dist/components/ThreadRail.es.js.map +1 -1
  417. package/dist/components/Toaster.cjs.js +4 -4
  418. package/dist/components/Toaster.es.js +3 -3
  419. package/dist/components/TokenBudget.cjs.js +3 -3
  420. package/dist/components/TokenBudget.es.js +2 -2
  421. package/dist/components/Tooltip.cjs.js +2 -2
  422. package/dist/components/Tooltip.es.js +2 -2
  423. package/dist/components/Tree.cjs.js +1 -1
  424. package/dist/components/Tree.es.js +1 -1
  425. package/dist/components/Truncate.cjs.js +3 -3
  426. package/dist/components/Truncate.es.js +3 -3
  427. package/dist/components/Txt.cjs.js +1 -1
  428. package/dist/components/Txt.es.js +1 -1
  429. package/dist/components/Workflow.cjs.js +1 -1
  430. package/dist/components/Workflow.es.js +1 -1
  431. package/dist/components/ai/activity.cjs.js +1 -1
  432. package/dist/components/ai/activity.es.js +1 -1
  433. package/dist/components/ai/annotations.cjs.js +836 -0
  434. package/dist/components/ai/annotations.cjs.js.map +1 -0
  435. package/dist/components/ai/annotations.d.ts +1 -0
  436. package/dist/components/ai/annotations.es.js +831 -0
  437. package/dist/components/ai/annotations.es.js.map +1 -0
  438. package/dist/components/ai/ask-user.cjs.js +1 -1
  439. package/dist/components/ai/ask-user.es.js +1 -1
  440. package/dist/components/ai/plan.cjs.js +6 -6
  441. package/dist/components/ai/plan.es.js +6 -6
  442. package/dist/components/ai/task-list.cjs.js +4 -4
  443. package/dist/components/ai/task-list.cjs.js.map +1 -1
  444. package/dist/components/ai/task-list.es.js +4 -4
  445. package/dist/components/ai/task-list.es.js.map +1 -1
  446. package/dist/components/ai/tool-approval.cjs.js +1 -1
  447. package/dist/components/ai/tool-approval.es.js +1 -1
  448. package/dist/components/ai/tool-call.cjs.js +7 -2
  449. package/dist/components/ai/tool-call.es.js +3 -3
  450. package/dist/components/ai/transcript-divider.cjs.js +1 -1
  451. package/dist/components/ai/transcript-divider.es.js +1 -1
  452. package/dist/context-menu-6_Kcs8kj.js +204 -0
  453. package/dist/context-menu-6_Kcs8kj.js.map +1 -0
  454. package/dist/context-menu-DwB7u7fB.cjs +211 -0
  455. package/dist/context-menu-DwB7u7fB.cjs.map +1 -0
  456. package/dist/copy-button-B-_Z6N6y.js +25 -0
  457. package/dist/copy-button-B-_Z6N6y.js.map +1 -0
  458. package/dist/copy-button-DuEUYvS2.cjs +30 -0
  459. package/dist/copy-button-DuEUYvS2.cjs.map +1 -0
  460. package/dist/data-list-072hHK9L.cjs +1003 -0
  461. package/dist/data-list-072hHK9L.cjs.map +1 -0
  462. package/dist/data-list-GzbzPmYR.js +866 -0
  463. package/dist/data-list-GzbzPmYR.js.map +1 -0
  464. package/dist/date-time-range-picker-2a-wUBTk.cjs +377 -0
  465. package/dist/date-time-range-picker-2a-wUBTk.cjs.map +1 -0
  466. package/dist/date-time-range-picker-BUjjjvo8.js +372 -0
  467. package/dist/date-time-range-picker-BUjjjvo8.js.map +1 -0
  468. package/dist/domains/auth/components/permission-denied.cjs.js +1 -1
  469. package/dist/domains/auth/components/permission-denied.es.js +1 -1
  470. package/dist/domains/auth/components/session-expired.cjs.js +3 -3
  471. package/dist/domains/auth/components/session-expired.es.js +3 -3
  472. package/dist/domains/chat/activity/activity-stretch-line.cjs.js +2 -2
  473. package/dist/domains/chat/activity/activity-stretch-line.es.js +2 -2
  474. package/dist/domains/chat/activity/components/activity-fold.cjs.js +54 -58
  475. package/dist/domains/chat/activity/components/activity-fold.cjs.js.map +1 -1
  476. package/dist/domains/chat/activity/components/activity-fold.es.js +54 -58
  477. package/dist/domains/chat/activity/components/activity-fold.es.js.map +1 -1
  478. package/dist/domains/chat/activity/components/calls-panel.cjs.js +2 -2
  479. package/dist/domains/chat/activity/components/calls-panel.es.js +2 -2
  480. package/dist/domains/chat/activity/components/stretch-content.cjs.js +2 -2
  481. package/dist/domains/chat/activity/components/stretch-content.es.js +2 -2
  482. package/dist/domains/chat/activity/components/stretch-thought.cjs.js +1 -1
  483. package/dist/domains/chat/activity/components/stretch-thought.es.js +1 -1
  484. package/dist/domains/chat/activity/model/activity-segments.cjs.js +1 -1
  485. package/dist/domains/chat/activity/model/activity-segments.es.js +1 -1
  486. package/dist/domains/chat/activity/model/activity-words.cjs.js +7 -11
  487. package/dist/domains/chat/activity/model/activity-words.cjs.js.map +1 -1
  488. package/dist/domains/chat/activity/model/activity-words.es.js +8 -11
  489. package/dist/domains/chat/activity/model/activity-words.es.js.map +1 -1
  490. package/dist/domains/chat/activity.cjs.js +2 -5
  491. package/dist/domains/chat/activity.es.js +4 -5
  492. package/dist/domains/chat/attachments/attachment-preview-dialog.cjs.js +3 -3
  493. package/dist/domains/chat/attachments/attachment-preview-dialog.es.js +3 -3
  494. package/dist/domains/chat/attachments/composer-attachment-entry.cjs.js +2 -2
  495. package/dist/domains/chat/attachments/composer-attachment-entry.es.js +2 -2
  496. package/dist/domains/chat/attachments/composer-attachment-list.cjs.js +2 -2
  497. package/dist/domains/chat/attachments/composer-attachment-list.es.js +2 -2
  498. package/dist/domains/chat/attachments/composer-attachment.cjs.js +4 -4
  499. package/dist/domains/chat/attachments/composer-attachment.es.js +4 -4
  500. package/dist/domains/chat/attachments/message-attachment.cjs.js +2 -2
  501. package/dist/domains/chat/attachments/message-attachment.es.js +2 -2
  502. package/dist/domains/chat/attachments/message-image-attachment.cjs.js +2 -2
  503. package/dist/domains/chat/attachments/message-image-attachment.cjs.js.map +1 -1
  504. package/dist/domains/chat/attachments/message-image-attachment.es.js +2 -2
  505. package/dist/domains/chat/attachments/message-image-attachment.es.js.map +1 -1
  506. package/dist/domains/chat/attachments/split-message-attachments.cjs.js +4 -1
  507. package/dist/domains/chat/attachments/split-message-attachments.cjs.js.map +1 -1
  508. package/dist/domains/chat/attachments/split-message-attachments.es.js +4 -1
  509. package/dist/domains/chat/attachments/split-message-attachments.es.js.map +1 -1
  510. package/dist/domains/chat/components/badge-wrapper.cjs.js +2 -2
  511. package/dist/domains/chat/components/badge-wrapper.es.js +2 -2
  512. package/dist/domains/chat/components/loading-badge.cjs.js +2 -2
  513. package/dist/domains/chat/components/loading-badge.es.js +2 -2
  514. package/dist/domains/chat/components/network-choice-metadata-dialog.cjs.js +4 -4
  515. package/dist/domains/chat/components/network-choice-metadata-dialog.es.js +4 -4
  516. package/dist/domains/chat/components/section-label.cjs.js +1 -1
  517. package/dist/domains/chat/components/section-label.es.js +1 -1
  518. package/dist/domains/chat/context/chat-context.cjs.js +2 -0
  519. package/dist/domains/chat/context/chat-context.cjs.js.map +1 -1
  520. package/dist/domains/chat/context/chat-context.es.js +2 -1
  521. package/dist/domains/chat/context/chat-context.es.js.map +1 -1
  522. package/dist/domains/chat/knowledge/knowledge-links.cjs.js +1 -1
  523. package/dist/domains/chat/knowledge/knowledge-links.es.js +1 -1
  524. package/dist/domains/chat/knowledge/pinned-knowledge.cjs.js +3 -3
  525. package/dist/domains/chat/knowledge/pinned-knowledge.es.js +3 -3
  526. package/dist/domains/chat/knowledge.cjs.js +1 -1
  527. package/dist/domains/chat/knowledge.es.js +1 -1
  528. package/dist/domains/chat/messages/assistant-message-actions.cjs.js +2 -2
  529. package/dist/domains/chat/messages/assistant-message-actions.es.js +2 -2
  530. package/dist/domains/chat/messages/dataset-save-action.cjs.js +10 -10
  531. package/dist/domains/chat/messages/dataset-save-action.es.js +11 -11
  532. package/dist/domains/chat/messages/message-row.cjs.js +20 -20
  533. package/dist/domains/chat/messages/message-row.cjs.js.map +1 -1
  534. package/dist/domains/chat/messages/message-row.es.js +20 -20
  535. package/dist/domains/chat/messages/message-row.es.js.map +1 -1
  536. package/dist/domains/chat/messages/notification-signal-notice.cjs.js +5 -5
  537. package/dist/domains/chat/messages/notification-signal-notice.cjs.js.map +1 -1
  538. package/dist/domains/chat/messages/notification-signal-notice.es.js +5 -5
  539. package/dist/domains/chat/messages/notification-signal-notice.es.js.map +1 -1
  540. package/dist/domains/chat/messages/reasoning-content.cjs.js +1 -1
  541. package/dist/domains/chat/messages/reasoning-content.es.js +1 -1
  542. package/dist/domains/chat/messages/renderers/data-part-renderer.cjs.js +1 -1
  543. package/dist/domains/chat/messages/renderers/data-part-renderer.es.js +1 -1
  544. package/dist/domains/chat/messages/renderers/message-text.cjs.js +5 -5
  545. package/dist/domains/chat/messages/renderers/message-text.es.js +5 -5
  546. package/dist/domains/chat/messages/renderers/reasoning-part-renderer.cjs.js +1 -1
  547. package/dist/domains/chat/messages/renderers/reasoning-part-renderer.es.js +1 -1
  548. package/dist/domains/chat/messages/renderers/status-renderers.cjs.js +1 -1
  549. package/dist/domains/chat/messages/renderers/status-renderers.es.js +1 -1
  550. package/dist/domains/chat/messages/renderers/user-file-part-renderer.cjs.js +1 -1
  551. package/dist/domains/chat/messages/renderers/user-file-part-renderer.es.js +1 -1
  552. package/dist/domains/chat/messages/signal-badge.cjs.js +5 -5
  553. package/dist/domains/chat/messages/signal-badge.es.js +5 -5
  554. package/dist/domains/chat/messages/skill-message.cjs.js +4 -4
  555. package/dist/domains/chat/messages/skill-message.es.js +4 -4
  556. package/dist/domains/chat/messages/system-reminder-badge.cjs.js +1 -1
  557. package/dist/domains/chat/messages/system-reminder-badge.es.js +1 -1
  558. package/dist/domains/chat/messages/tripwire-notice.cjs.js +8 -13
  559. package/dist/domains/chat/messages/tripwire-notice.cjs.js.map +1 -1
  560. package/dist/domains/chat/messages/tripwire-notice.es.js +8 -13
  561. package/dist/domains/chat/messages/tripwire-notice.es.js.map +1 -1
  562. package/dist/domains/chat/tools/badges/agent-badge-wrapper.cjs.js +1 -1
  563. package/dist/domains/chat/tools/badges/agent-badge-wrapper.es.js +1 -1
  564. package/dist/domains/chat/tools/badges/agent-badge.cjs.js +1 -1
  565. package/dist/domains/chat/tools/badges/agent-badge.es.js +1 -1
  566. package/dist/domains/chat/tools/badges/ask-user-badge.cjs.js +1 -1
  567. package/dist/domains/chat/tools/badges/ask-user-badge.es.js +1 -1
  568. package/dist/domains/chat/tools/badges/background-task-metadata-dialog.cjs.js +5 -5
  569. package/dist/domains/chat/tools/badges/background-task-metadata-dialog.es.js +5 -5
  570. package/dist/domains/chat/tools/badges/code-mode-badge.cjs.js +7 -6
  571. package/dist/domains/chat/tools/badges/code-mode-badge.cjs.js.map +1 -1
  572. package/dist/domains/chat/tools/badges/code-mode-badge.es.js +7 -6
  573. package/dist/domains/chat/tools/badges/code-mode-badge.es.js.map +1 -1
  574. package/dist/domains/chat/tools/badges/file-tree-badge.cjs.js +5 -5
  575. package/dist/domains/chat/tools/badges/file-tree-badge.es.js +5 -5
  576. package/dist/domains/chat/tools/badges/knowledge-body-range.cjs.js +2 -2
  577. package/dist/domains/chat/tools/badges/knowledge-body-range.cjs.js.map +1 -1
  578. package/dist/domains/chat/tools/badges/knowledge-body-range.es.js +2 -2
  579. package/dist/domains/chat/tools/badges/knowledge-body-range.es.js.map +1 -1
  580. package/dist/domains/chat/tools/badges/knowledge-tool-badge.cjs.js +34 -28
  581. package/dist/domains/chat/tools/badges/knowledge-tool-badge.cjs.js.map +1 -1
  582. package/dist/domains/chat/tools/badges/knowledge-tool-badge.es.js +34 -28
  583. package/dist/domains/chat/tools/badges/knowledge-tool-badge.es.js.map +1 -1
  584. package/dist/domains/chat/tools/badges/mcp-task-chip.cjs.js +28 -24
  585. package/dist/domains/chat/tools/badges/mcp-task-chip.cjs.js.map +1 -1
  586. package/dist/domains/chat/tools/badges/mcp-task-chip.es.js +28 -24
  587. package/dist/domains/chat/tools/badges/mcp-task-chip.es.js.map +1 -1
  588. package/dist/domains/chat/tools/badges/observation-marker-badge.cjs.js +4 -4
  589. package/dist/domains/chat/tools/badges/observation-marker-badge.es.js +4 -4
  590. package/dist/domains/chat/tools/badges/observation-marker-details.cjs.js +8 -7
  591. package/dist/domains/chat/tools/badges/observation-marker-details.cjs.js.map +1 -1
  592. package/dist/domains/chat/tools/badges/observation-marker-details.es.js +8 -7
  593. package/dist/domains/chat/tools/badges/observation-marker-details.es.js.map +1 -1
  594. package/dist/domains/chat/tools/badges/observation-renderer.cjs.js +3 -3
  595. package/dist/domains/chat/tools/badges/observation-renderer.es.js +3 -3
  596. package/dist/domains/chat/tools/badges/sandbox-execution-badge.cjs.js +25 -34
  597. package/dist/domains/chat/tools/badges/sandbox-execution-badge.cjs.js.map +1 -1
  598. package/dist/domains/chat/tools/badges/sandbox-execution-badge.es.js +27 -36
  599. package/dist/domains/chat/tools/badges/sandbox-execution-badge.es.js.map +1 -1
  600. package/dist/domains/chat/tools/badges/tool-approval-badge.cjs.js +1 -1
  601. package/dist/domains/chat/tools/badges/tool-approval-badge.es.js +1 -1
  602. package/dist/domains/chat/tools/badges/tool-badge.cjs.js +19 -26
  603. package/dist/domains/chat/tools/badges/tool-badge.cjs.js.map +1 -1
  604. package/dist/domains/chat/tools/badges/tool-badge.es.js +19 -26
  605. package/dist/domains/chat/tools/badges/tool-badge.es.js.map +1 -1
  606. package/dist/domains/chat/tools/badges/workflow-badge.cjs.js +12 -10
  607. package/dist/domains/chat/tools/badges/workflow-badge.cjs.js.map +1 -1
  608. package/dist/domains/chat/tools/badges/workflow-badge.es.js +12 -10
  609. package/dist/domains/chat/tools/badges/workflow-badge.es.js.map +1 -1
  610. package/dist/domains/chat/tools/badges/workspace-data-parts.cjs.js +13 -0
  611. package/dist/domains/chat/tools/badges/workspace-data-parts.cjs.js.map +1 -1
  612. package/dist/domains/chat/tools/badges/workspace-data-parts.es.js +13 -1
  613. package/dist/domains/chat/tools/badges/workspace-data-parts.es.js.map +1 -1
  614. package/dist/domains/chat/tools/badges/workspace-link.cjs.js +1 -1
  615. package/dist/domains/chat/tools/badges/workspace-link.es.js +1 -1
  616. package/dist/domains/chat/tools/connect-prompt-tool.cjs.js +8 -8
  617. package/dist/domains/chat/tools/connect-prompt-tool.es.js +8 -8
  618. package/dist/domains/chat/tools/mcp-input-request-tool.cjs.js +5 -5
  619. package/dist/domains/chat/tools/mcp-input-request-tool.es.js +5 -5
  620. package/dist/domains/chat/tools/submit-plan-tool.cjs.js +4 -4
  621. package/dist/domains/chat/tools/submit-plan-tool.es.js +4 -4
  622. package/dist/domains/chat/tools/tool-card-kind.cjs.js +10 -5
  623. package/dist/domains/chat/tools/tool-card-kind.cjs.js.map +1 -1
  624. package/dist/domains/chat/tools/tool-card-kind.es.js +10 -5
  625. package/dist/domains/chat/tools/tool-card-kind.es.js.map +1 -1
  626. package/dist/domains/chat/tools/tool-card.cjs.js +1 -1
  627. package/dist/domains/chat/tools/tool-card.es.js +1 -1
  628. package/dist/domains/chat/tools/tool-groups.cjs.js +2 -2
  629. package/dist/domains/chat/tools/tool-groups.es.js +2 -2
  630. package/dist/domains/chat.cjs.js +6 -5
  631. package/dist/domains/chat.es.js +6 -6
  632. package/dist/domains/connect.cjs.js +1 -1
  633. package/dist/domains/connect.es.js +1 -1
  634. package/dist/domains/dashboards/components/connected-widget.cjs.js +55 -0
  635. package/dist/domains/dashboards/components/connected-widget.cjs.js.map +1 -0
  636. package/dist/domains/dashboards/components/connected-widget.d.ts +1 -0
  637. package/dist/domains/dashboards/components/connected-widget.es.js +54 -0
  638. package/dist/domains/dashboards/components/connected-widget.es.js.map +1 -0
  639. package/dist/domains/dashboards/components/dashboard-grid.cjs.js +11 -8
  640. package/dist/domains/dashboards/components/dashboard-grid.cjs.js.map +1 -1
  641. package/dist/domains/dashboards/components/dashboard-grid.es.js +11 -8
  642. package/dist/domains/dashboards/components/dashboard-grid.es.js.map +1 -1
  643. package/dist/domains/dashboards/components/dashboard-renderer.cjs.js +26 -10
  644. package/dist/domains/dashboards/components/dashboard-renderer.cjs.js.map +1 -1
  645. package/dist/domains/dashboards/components/dashboard-renderer.es.js +26 -10
  646. package/dist/domains/dashboards/components/dashboard-renderer.es.js.map +1 -1
  647. package/dist/domains/dashboards/components/stateless-widget.cjs.js +30 -0
  648. package/dist/domains/dashboards/components/stateless-widget.cjs.js.map +1 -0
  649. package/dist/domains/dashboards/components/stateless-widget.d.ts +1 -0
  650. package/dist/domains/dashboards/components/stateless-widget.es.js +29 -0
  651. package/dist/domains/dashboards/components/stateless-widget.es.js.map +1 -0
  652. package/dist/domains/dashboards/components/view-gate.cjs.js +18 -40
  653. package/dist/domains/dashboards/components/view-gate.cjs.js.map +1 -1
  654. package/dist/domains/dashboards/components/view-gate.es.js +18 -40
  655. package/dist/domains/dashboards/components/view-gate.es.js.map +1 -1
  656. package/dist/domains/dashboards/components/widget-chrome.cjs.js +1 -1
  657. package/dist/domains/dashboards/components/widget-chrome.es.js +1 -1
  658. package/dist/domains/dashboards/components/widget-controls.cjs.js +122 -1
  659. package/dist/domains/dashboards/components/widget-controls.cjs.js.map +1 -1
  660. package/dist/domains/dashboards/components/widget-controls.es.js +121 -3
  661. package/dist/domains/dashboards/components/widget-controls.es.js.map +1 -1
  662. package/dist/domains/dashboards/components/widget-error.cjs.js +6 -3
  663. package/dist/domains/dashboards/components/widget-error.cjs.js.map +1 -1
  664. package/dist/domains/dashboards/components/widget-error.es.js +6 -3
  665. package/dist/domains/dashboards/components/widget-error.es.js.map +1 -1
  666. package/dist/domains/dashboards/hooks/use-dashboard-environment.cjs.js +55 -0
  667. package/dist/domains/dashboards/hooks/use-dashboard-environment.cjs.js.map +1 -0
  668. package/dist/domains/dashboards/hooks/use-dashboard-environment.d.ts +1 -0
  669. package/dist/domains/dashboards/hooks/use-dashboard-environment.es.js +53 -0
  670. package/dist/domains/dashboards/hooks/use-dashboard-environment.es.js.map +1 -0
  671. package/dist/domains/dashboards/hooks/use-dashboard-requests.cjs.js +24 -0
  672. package/dist/domains/dashboards/hooks/use-dashboard-requests.cjs.js.map +1 -1
  673. package/dist/domains/dashboards/hooks/use-dashboard-requests.es.js +23 -1
  674. package/dist/domains/dashboards/hooks/use-dashboard-requests.es.js.map +1 -1
  675. package/dist/domains/dashboards/hooks/use-widget-views.cjs.js +10 -6
  676. package/dist/domains/dashboards/hooks/use-widget-views.cjs.js.map +1 -1
  677. package/dist/domains/dashboards/hooks/use-widget-views.es.js +10 -7
  678. package/dist/domains/dashboards/hooks/use-widget-views.es.js.map +1 -1
  679. package/dist/domains/dashboards/kinds/kpis/kpis-plan.cjs.js +11 -0
  680. package/dist/domains/dashboards/kinds/kpis/kpis-plan.cjs.js.map +1 -0
  681. package/dist/domains/dashboards/kinds/kpis/kpis-plan.d.ts +1 -0
  682. package/dist/domains/dashboards/kinds/kpis/kpis-plan.es.js +9 -0
  683. package/dist/domains/dashboards/kinds/kpis/kpis-plan.es.js.map +1 -0
  684. package/dist/domains/dashboards/kinds/kpis/kpis-widget.cjs.js +28 -15
  685. package/dist/domains/dashboards/kinds/kpis/kpis-widget.cjs.js.map +1 -1
  686. package/dist/domains/dashboards/kinds/kpis/kpis-widget.es.js +29 -16
  687. package/dist/domains/dashboards/kinds/kpis/kpis-widget.es.js.map +1 -1
  688. package/dist/domains/dashboards/kinds/kpis.cjs.js +4 -1
  689. package/dist/domains/dashboards/kinds/kpis.cjs.js.map +1 -1
  690. package/dist/domains/dashboards/kinds/kpis.es.js +4 -1
  691. package/dist/domains/dashboards/kinds/kpis.es.js.map +1 -1
  692. package/dist/domains/dashboards/kinds/scores/scores-plan.cjs.js +27 -0
  693. package/dist/domains/dashboards/kinds/scores/scores-plan.cjs.js.map +1 -0
  694. package/dist/domains/dashboards/kinds/scores/scores-plan.d.ts +1 -0
  695. package/dist/domains/dashboards/kinds/scores/scores-plan.es.js +24 -0
  696. package/dist/domains/dashboards/kinds/scores/scores-plan.es.js.map +1 -0
  697. package/dist/domains/dashboards/kinds/scores/scores-widget.cjs.js +35 -33
  698. package/dist/domains/dashboards/kinds/scores/scores-widget.cjs.js.map +1 -1
  699. package/dist/domains/dashboards/kinds/scores/scores-widget.es.js +35 -33
  700. package/dist/domains/dashboards/kinds/scores/scores-widget.es.js.map +1 -1
  701. package/dist/domains/dashboards/kinds/scores.cjs.js +4 -0
  702. package/dist/domains/dashboards/kinds/scores.cjs.js.map +1 -1
  703. package/dist/domains/dashboards/kinds/scores.es.js +4 -0
  704. package/dist/domains/dashboards/kinds/scores.es.js.map +1 -1
  705. package/dist/domains/dashboards/kinds/table/table-cells.cjs.js +3 -7
  706. package/dist/domains/dashboards/kinds/table/table-cells.cjs.js.map +1 -1
  707. package/dist/domains/dashboards/kinds/table/table-cells.es.js +3 -7
  708. package/dist/domains/dashboards/kinds/table/table-cells.es.js.map +1 -1
  709. package/dist/domains/dashboards/kinds/table/table-columns.cjs.js +5 -3
  710. package/dist/domains/dashboards/kinds/table/table-columns.cjs.js.map +1 -1
  711. package/dist/domains/dashboards/kinds/table/table-columns.es.js +5 -3
  712. package/dist/domains/dashboards/kinds/table/table-columns.es.js.map +1 -1
  713. package/dist/domains/dashboards/kinds/table/table-plan.cjs.js +47 -0
  714. package/dist/domains/dashboards/kinds/table/table-plan.cjs.js.map +1 -0
  715. package/dist/domains/dashboards/kinds/table/table-plan.d.ts +1 -0
  716. package/dist/domains/dashboards/kinds/table/table-plan.es.js +44 -0
  717. package/dist/domains/dashboards/kinds/table/table-plan.es.js.map +1 -0
  718. package/dist/domains/dashboards/kinds/table/table-tabs.cjs.js +25 -24
  719. package/dist/domains/dashboards/kinds/table/table-tabs.cjs.js.map +1 -1
  720. package/dist/domains/dashboards/kinds/table/table-tabs.es.js +26 -25
  721. package/dist/domains/dashboards/kinds/table/table-tabs.es.js.map +1 -1
  722. package/dist/domains/dashboards/kinds/table/table-view.cjs.js +19 -19
  723. package/dist/domains/dashboards/kinds/table/table-view.cjs.js.map +1 -1
  724. package/dist/domains/dashboards/kinds/table/table-view.es.js +19 -19
  725. package/dist/domains/dashboards/kinds/table/table-view.es.js.map +1 -1
  726. package/dist/domains/dashboards/kinds/table/table-widget.cjs.js +14 -15
  727. package/dist/domains/dashboards/kinds/table/table-widget.cjs.js.map +1 -1
  728. package/dist/domains/dashboards/kinds/table/table-widget.es.js +14 -15
  729. package/dist/domains/dashboards/kinds/table/table-widget.es.js.map +1 -1
  730. package/dist/domains/dashboards/kinds/table.cjs.js +5 -1
  731. package/dist/domains/dashboards/kinds/table.cjs.js.map +1 -1
  732. package/dist/domains/dashboards/kinds/table.es.js +5 -1
  733. package/dist/domains/dashboards/kinds/table.es.js.map +1 -1
  734. package/dist/domains/dashboards/kinds/timeseries/timeseries-plan.cjs.js +18 -0
  735. package/dist/domains/dashboards/kinds/timeseries/timeseries-plan.cjs.js.map +1 -0
  736. package/dist/domains/dashboards/kinds/timeseries/timeseries-plan.d.ts +1 -0
  737. package/dist/domains/dashboards/kinds/timeseries/timeseries-plan.es.js +16 -0
  738. package/dist/domains/dashboards/kinds/timeseries/timeseries-plan.es.js.map +1 -0
  739. package/dist/domains/dashboards/kinds/timeseries/timeseries-widget.cjs.js +38 -31
  740. package/dist/domains/dashboards/kinds/timeseries/timeseries-widget.cjs.js.map +1 -1
  741. package/dist/domains/dashboards/kinds/timeseries/timeseries-widget.es.js +39 -32
  742. package/dist/domains/dashboards/kinds/timeseries/timeseries-widget.es.js.map +1 -1
  743. package/dist/domains/dashboards/kinds/timeseries.cjs.js +4 -1
  744. package/dist/domains/dashboards/kinds/timeseries.cjs.js.map +1 -1
  745. package/dist/domains/dashboards/kinds/timeseries.es.js +4 -1
  746. package/dist/domains/dashboards/kinds/timeseries.es.js.map +1 -1
  747. package/dist/domains/dashboards/lib/alert-actions.cjs.js +123 -0
  748. package/dist/domains/dashboards/lib/alert-actions.cjs.js.map +1 -0
  749. package/dist/domains/dashboards/lib/alert-actions.d.ts +1 -0
  750. package/dist/domains/dashboards/lib/alert-actions.es.js +118 -0
  751. package/dist/domains/dashboards/lib/alert-actions.es.js.map +1 -0
  752. package/dist/domains/dashboards/lib/chrome.cjs.js.map +1 -1
  753. package/dist/domains/dashboards/lib/chrome.es.js.map +1 -1
  754. package/dist/domains/dashboards/lib/format.cjs.js +1 -1
  755. package/dist/domains/dashboards/lib/format.es.js +1 -1
  756. package/dist/domains/dashboards/lib/gate.cjs.js +62 -0
  757. package/dist/domains/dashboards/lib/gate.cjs.js.map +1 -0
  758. package/dist/domains/dashboards/lib/gate.d.ts +1 -0
  759. package/dist/domains/dashboards/lib/gate.es.js +60 -0
  760. package/dist/domains/dashboards/lib/gate.es.js.map +1 -0
  761. package/dist/domains/dashboards/lib/pin-actions.cjs.js +16 -0
  762. package/dist/domains/dashboards/lib/pin-actions.cjs.js.map +1 -0
  763. package/dist/domains/dashboards/lib/pin-actions.d.ts +1 -0
  764. package/dist/domains/dashboards/lib/pin-actions.es.js +15 -0
  765. package/dist/domains/dashboards/lib/pin-actions.es.js.map +1 -0
  766. package/dist/domains/dashboards/lib/plan-widget.cjs.js +41 -0
  767. package/dist/domains/dashboards/lib/plan-widget.cjs.js.map +1 -0
  768. package/dist/domains/dashboards/lib/plan-widget.d.ts +1 -0
  769. package/dist/domains/dashboards/lib/plan-widget.es.js +38 -0
  770. package/dist/domains/dashboards/lib/plan-widget.es.js.map +1 -0
  771. package/dist/domains/dashboards/lib/requests.cjs.js +49 -2
  772. package/dist/domains/dashboards/lib/requests.cjs.js.map +1 -1
  773. package/dist/domains/dashboards/lib/requests.es.js +48 -3
  774. package/dist/domains/dashboards/lib/requests.es.js.map +1 -1
  775. package/dist/domains/dashboards/lib/scores.cjs.js +32 -0
  776. package/dist/domains/dashboards/lib/scores.cjs.js.map +1 -1
  777. package/dist/domains/dashboards/lib/scores.es.js +31 -1
  778. package/dist/domains/dashboards/lib/scores.es.js.map +1 -1
  779. package/dist/domains/dashboards/lib/timeseries.cjs.js +17 -0
  780. package/dist/domains/dashboards/lib/timeseries.cjs.js.map +1 -1
  781. package/dist/domains/dashboards/lib/timeseries.es.js +17 -1
  782. package/dist/domains/dashboards/lib/timeseries.es.js.map +1 -1
  783. package/dist/domains/dashboards/lib/values.cjs.js.map +1 -1
  784. package/dist/domains/dashboards/lib/values.es.js.map +1 -1
  785. package/dist/domains/dashboards/widget-kind.cjs.js.map +1 -1
  786. package/dist/domains/dashboards/widget-kind.es.js.map +1 -1
  787. package/dist/domains/dashboards.cjs.js +26 -8
  788. package/dist/domains/dashboards.es.js +15 -11
  789. package/dist/domains/datasets/components/add-dataset-item-dialog/add-dataset-item-dialog.cjs.js +11 -11
  790. package/dist/domains/datasets/components/add-dataset-item-dialog/add-dataset-item-dialog.es.js +11 -11
  791. package/dist/domains/datasets/components/add-dataset-item-dialog/dataset-picker.cjs.js +3 -3
  792. package/dist/domains/datasets/components/add-dataset-item-dialog/dataset-picker.es.js +3 -3
  793. package/dist/domains/datasets/components/add-dataset-item-dialog/trajectory-editor.cjs.js +6 -6
  794. package/dist/domains/datasets/components/add-dataset-item-dialog/trajectory-editor.es.js +6 -6
  795. package/dist/domains/datasets/components/save-as-dataset-item-dialog.cjs.js +7 -7
  796. package/dist/domains/datasets/components/save-as-dataset-item-dialog.es.js +7 -7
  797. package/dist/domains/knowledge/components/KnowledgePageCard.cjs.js +3 -2
  798. package/dist/domains/knowledge/components/KnowledgePageCard.cjs.js.map +1 -1
  799. package/dist/domains/knowledge/components/KnowledgePageCard.es.js +3 -2
  800. package/dist/domains/knowledge/components/KnowledgePageCard.es.js.map +1 -1
  801. package/dist/domains/knowledge/components/KnowledgePageDetail.cjs.js +191 -222
  802. package/dist/domains/knowledge/components/KnowledgePageDetail.cjs.js.map +1 -1
  803. package/dist/domains/knowledge/components/KnowledgePageDetail.es.js +193 -225
  804. package/dist/domains/knowledge/components/KnowledgePageDetail.es.js.map +1 -1
  805. package/dist/domains/knowledge/components/KnowledgePageExplorer.cjs.js +625 -273
  806. package/dist/domains/knowledge/components/KnowledgePageExplorer.cjs.js.map +1 -1
  807. package/dist/domains/knowledge/components/KnowledgePageExplorer.es.js +626 -274
  808. package/dist/domains/knowledge/components/KnowledgePageExplorer.es.js.map +1 -1
  809. package/dist/domains/knowledge/components/KnowledgePageGraph.cjs.js +554 -463
  810. package/dist/domains/knowledge/components/KnowledgePageGraph.cjs.js.map +1 -1
  811. package/dist/domains/knowledge/components/KnowledgePageGraph.es.js +557 -466
  812. package/dist/domains/knowledge/components/KnowledgePageGraph.es.js.map +1 -1
  813. package/dist/domains/knowledge/components/KnowledgePageTree.cjs.js +22 -13
  814. package/dist/domains/knowledge/components/KnowledgePageTree.cjs.js.map +1 -1
  815. package/dist/domains/knowledge/components/KnowledgePageTree.es.js +23 -14
  816. package/dist/domains/knowledge/components/KnowledgePageTree.es.js.map +1 -1
  817. package/dist/domains/knowledge/components/KnowledgeSourceIcon.cjs.js +16 -0
  818. package/dist/domains/knowledge/components/KnowledgeSourceIcon.cjs.js.map +1 -0
  819. package/dist/domains/knowledge/components/KnowledgeSourceIcon.d.ts +1 -0
  820. package/dist/domains/knowledge/components/KnowledgeSourceIcon.es.js +15 -0
  821. package/dist/domains/knowledge/components/KnowledgeSourceIcon.es.js.map +1 -0
  822. package/dist/domains/knowledge/components/KnowledgeTooltip.cjs.js +10 -0
  823. package/dist/domains/knowledge/components/KnowledgeTooltip.cjs.js.map +1 -0
  824. package/dist/domains/knowledge/components/KnowledgeTooltip.d.ts +1 -0
  825. package/dist/domains/knowledge/components/KnowledgeTooltip.es.js +9 -0
  826. package/dist/domains/knowledge/components/KnowledgeTooltip.es.js.map +1 -0
  827. package/dist/domains/knowledge/lib/fitViewport.cjs.js +22 -8
  828. package/dist/domains/knowledge/lib/fitViewport.cjs.js.map +1 -1
  829. package/dist/domains/knowledge/lib/fitViewport.es.js +22 -9
  830. package/dist/domains/knowledge/lib/fitViewport.es.js.map +1 -1
  831. package/dist/domains/knowledge/lib/pageAddress.cjs.js +51 -0
  832. package/dist/domains/knowledge/lib/pageAddress.cjs.js.map +1 -1
  833. package/dist/domains/knowledge/lib/pageAddress.es.js +50 -1
  834. package/dist/domains/knowledge/lib/pageAddress.es.js.map +1 -1
  835. package/dist/domains/knowledge/lib/pageRefs.cjs.js +43 -2
  836. package/dist/domains/knowledge/lib/pageRefs.cjs.js.map +1 -1
  837. package/dist/domains/knowledge/lib/pageRefs.es.js +43 -3
  838. package/dist/domains/knowledge/lib/pageRefs.es.js.map +1 -1
  839. package/dist/domains/knowledge/lib/pagesByRefContext.cjs.js +10 -0
  840. package/dist/domains/knowledge/lib/pagesByRefContext.cjs.js.map +1 -0
  841. package/dist/domains/knowledge/lib/pagesByRefContext.d.ts +1 -0
  842. package/dist/domains/knowledge/lib/pagesByRefContext.es.js +10 -0
  843. package/dist/domains/knowledge/lib/pagesByRefContext.es.js.map +1 -0
  844. package/dist/domains/llm/models-dev-logo-slugs.cjs.js +230 -0
  845. package/dist/domains/llm/models-dev-logo-slugs.cjs.js.map +1 -0
  846. package/dist/domains/llm/models-dev-logo-slugs.d.ts +1 -0
  847. package/dist/domains/llm/models-dev-logo-slugs.es.js +229 -0
  848. package/dist/domains/llm/models-dev-logo-slugs.es.js.map +1 -0
  849. package/dist/domains/llm/provider-logo-monogram.cjs.js +37 -0
  850. package/dist/domains/llm/provider-logo-monogram.cjs.js.map +1 -0
  851. package/dist/domains/llm/provider-logo-monogram.d.ts +1 -0
  852. package/dist/domains/llm/provider-logo-monogram.es.js +36 -0
  853. package/dist/domains/llm/provider-logo-monogram.es.js.map +1 -0
  854. package/dist/domains/llm/provider-logo.cjs.js +46 -17
  855. package/dist/domains/llm/provider-logo.cjs.js.map +1 -1
  856. package/dist/domains/llm/provider-logo.es.js +46 -17
  857. package/dist/domains/llm/provider-logo.es.js.map +1 -1
  858. package/dist/domains/llm/provider-map-icon.cjs.js +1 -1
  859. package/dist/domains/llm/provider-map-icon.es.js +1 -1
  860. package/dist/domains/llm.cjs.js +1 -1
  861. package/dist/domains/llm.es.js +1 -1
  862. package/dist/domains/logs/components/log-data-panel.cjs.js +11 -7
  863. package/dist/domains/logs/components/log-data-panel.cjs.js.map +1 -1
  864. package/dist/domains/logs/components/log-data-panel.es.js +11 -7
  865. package/dist/domains/logs/components/log-data-panel.es.js.map +1 -1
  866. package/dist/domains/logs/components/logs-error-content.cjs.js +1 -1
  867. package/dist/domains/logs/components/logs-error-content.es.js +1 -1
  868. package/dist/domains/logs/components/logs-list-view.cjs.js +2 -2
  869. package/dist/domains/logs/components/logs-list-view.es.js +2 -2
  870. package/dist/domains/logs/components/logs-saved-views.cjs.js +1 -1
  871. package/dist/domains/logs/components/logs-saved-views.es.js +1 -1
  872. package/dist/domains/logs/components/logs-toolbar.cjs.js +1 -1
  873. package/dist/domains/logs/components/logs-toolbar.es.js +1 -1
  874. package/dist/domains/logs/components/no-logs-info.cjs.js +3 -3
  875. package/dist/domains/logs/components/no-logs-info.cjs.js.map +1 -1
  876. package/dist/domains/logs/components/no-logs-info.es.js +3 -3
  877. package/dist/domains/logs/components/no-logs-info.es.js.map +1 -1
  878. package/dist/domains/logs/hooks/use-logs-filter-persistence.cjs.js +1 -1
  879. package/dist/domains/logs/hooks/use-logs-filter-persistence.es.js +1 -1
  880. package/dist/domains/logs.cjs.js +2 -2
  881. package/dist/domains/logs.es.js +2 -2
  882. package/dist/domains/mcps/components/mcp-app-tool-result.cjs.js +29 -5
  883. package/dist/domains/mcps/components/mcp-app-tool-result.cjs.js.map +1 -1
  884. package/dist/domains/mcps/components/mcp-app-tool-result.es.js +30 -6
  885. package/dist/domains/mcps/components/mcp-app-tool-result.es.js.map +1 -1
  886. package/dist/domains/mcps/components/mcp-app-viewer.cjs.js +64 -9
  887. package/dist/domains/mcps/components/mcp-app-viewer.cjs.js.map +1 -1
  888. package/dist/domains/mcps/components/mcp-app-viewer.es.js +64 -9
  889. package/dist/domains/mcps/components/mcp-app-viewer.es.js.map +1 -1
  890. package/dist/domains/mcps/context/mcp-app-host-context-value.cjs.js +11 -0
  891. package/dist/domains/mcps/context/mcp-app-host-context-value.cjs.js.map +1 -0
  892. package/dist/domains/mcps/context/mcp-app-host-context-value.d.ts +1 -0
  893. package/dist/domains/mcps/context/mcp-app-host-context-value.es.js +9 -0
  894. package/dist/domains/mcps/context/mcp-app-host-context-value.es.js.map +1 -0
  895. package/dist/domains/mcps/context/mcp-app-host-context.cjs.js +14 -0
  896. package/dist/domains/mcps/context/mcp-app-host-context.cjs.js.map +1 -0
  897. package/dist/domains/mcps/context/mcp-app-host-context.d.ts +1 -0
  898. package/dist/domains/mcps/context/mcp-app-host-context.es.js +13 -0
  899. package/dist/domains/mcps/context/mcp-app-host-context.es.js.map +1 -0
  900. package/dist/domains/mcps/hooks/use-mcp-app-tool-call.cjs.js +37 -0
  901. package/dist/domains/mcps/hooks/use-mcp-app-tool-call.cjs.js.map +1 -0
  902. package/dist/domains/mcps/hooks/use-mcp-app-tool-call.d.ts +1 -0
  903. package/dist/domains/mcps/hooks/use-mcp-app-tool-call.es.js +36 -0
  904. package/dist/domains/mcps/hooks/use-mcp-app-tool-call.es.js.map +1 -0
  905. package/dist/domains/mcps.cjs.js +5 -0
  906. package/dist/domains/mcps.d.ts +1 -0
  907. package/dist/domains/mcps.es.js +3 -0
  908. package/dist/domains/memory/components/flame-graph.cjs.js +4 -4
  909. package/dist/domains/memory/components/flame-graph.es.js +4 -4
  910. package/dist/domains/memory/components/memory-studio-panel.cjs.js +6 -6
  911. package/dist/domains/memory/components/memory-studio-panel.es.js +6 -6
  912. package/dist/domains/memory/components/observation-detail-view.cjs.js +6 -6
  913. package/dist/domains/memory/components/observation-detail-view.es.js +6 -6
  914. package/dist/domains/memory/components/thread-context-progress.cjs.js +2 -2
  915. package/dist/domains/memory/components/thread-context-progress.es.js +2 -2
  916. package/dist/domains/memory/components.cjs.js +1 -1
  917. package/dist/domains/memory/components.es.js +1 -1
  918. package/dist/domains/metrics/components/agent-runs-card.cjs.js +7 -7
  919. package/dist/domains/metrics/components/agent-runs-card.es.js +7 -7
  920. package/dist/domains/metrics/components/breakdown/breakdown-entity-tab.cjs.js +2 -2
  921. package/dist/domains/metrics/components/breakdown/breakdown-entity-tab.es.js +2 -2
  922. package/dist/domains/metrics/components/breakdown/breakdown-figure.cjs.js +1 -1
  923. package/dist/domains/metrics/components/breakdown/breakdown-figure.es.js +1 -1
  924. package/dist/domains/metrics/components/breakdown/breakdown-models-tab.cjs.js +2 -2
  925. package/dist/domains/metrics/components/breakdown/breakdown-models-tab.es.js +2 -2
  926. package/dist/domains/metrics/components/breakdown/breakdown-row-mark.cjs.js +2 -2
  927. package/dist/domains/metrics/components/breakdown/breakdown-row-mark.es.js +2 -2
  928. package/dist/domains/metrics/components/breakdown/breakdown-row-name.cjs.js +1 -1
  929. package/dist/domains/metrics/components/breakdown/breakdown-row-name.es.js +1 -1
  930. package/dist/domains/metrics/components/breakdown/breakdown-tab-body.cjs.js +2 -2
  931. package/dist/domains/metrics/components/breakdown/breakdown-tab-body.es.js +2 -2
  932. package/dist/domains/metrics/components/breakdown/breakdown-table.cjs.js +8 -8
  933. package/dist/domains/metrics/components/breakdown/breakdown-table.es.js +8 -8
  934. package/dist/domains/metrics/components/breakdown/breakdown-text.cjs.js +1 -1
  935. package/dist/domains/metrics/components/breakdown/breakdown-text.es.js +1 -1
  936. package/dist/domains/metrics/components/breakdown/breakdown-trace-tab.cjs.js +2 -2
  937. package/dist/domains/metrics/components/breakdown/breakdown-trace-tab.es.js +2 -2
  938. package/dist/domains/metrics/components/breakdown-card.cjs.js +4 -4
  939. package/dist/domains/metrics/components/breakdown-card.es.js +4 -4
  940. package/dist/domains/metrics/components/card-action-buttons.cjs.js +1 -1
  941. package/dist/domains/metrics/components/card-action-buttons.es.js +1 -1
  942. package/dist/domains/metrics/components/chart-area.cjs.js +1 -1
  943. package/dist/domains/metrics/components/chart-area.es.js +1 -1
  944. package/dist/domains/metrics/components/chart-card-error.cjs.js +2 -2
  945. package/dist/domains/metrics/components/chart-card-error.es.js +2 -2
  946. package/dist/domains/metrics/components/chart-card.cjs.js +21 -5
  947. package/dist/domains/metrics/components/chart-card.cjs.js.map +1 -1
  948. package/dist/domains/metrics/components/chart-card.es.js +21 -5
  949. package/dist/domains/metrics/components/chart-card.es.js.map +1 -1
  950. package/dist/domains/metrics/components/date-range-selector.cjs.js +1 -1
  951. package/dist/domains/metrics/components/date-range-selector.es.js +1 -1
  952. package/dist/domains/metrics/components/distinct-ids/distinct-ids-chart.cjs.js +5 -5
  953. package/dist/domains/metrics/components/distinct-ids/distinct-ids-chart.es.js +5 -5
  954. package/dist/domains/metrics/components/failure-rate-card.cjs.js +7 -7
  955. package/dist/domains/metrics/components/failure-rate-card.es.js +7 -7
  956. package/dist/domains/metrics/components/kpi-card.cjs.js +1 -1
  957. package/dist/domains/metrics/components/kpi-card.cjs.js.map +1 -1
  958. package/dist/domains/metrics/components/kpi-card.es.js +1 -1
  959. package/dist/domains/metrics/components/kpi-card.es.js.map +1 -1
  960. package/dist/domains/metrics/components/latency-card.cjs.js +7 -7
  961. package/dist/domains/metrics/components/latency-card.es.js +7 -7
  962. package/dist/domains/metrics/components/metrics-time-range-chip.cjs.js +2 -2
  963. package/dist/domains/metrics/components/metrics-time-range-chip.es.js +2 -2
  964. package/dist/domains/metrics/components/scores-card.cjs.js +4 -4
  965. package/dist/domains/metrics/components/scores-card.es.js +4 -4
  966. package/dist/domains/metrics/components/token-usage-card.cjs.js +8 -8
  967. package/dist/domains/metrics/components/token-usage-card.es.js +8 -8
  968. package/dist/domains/metrics/components/trace-aggregate-card.cjs.js +1 -1
  969. package/dist/domains/metrics/components/trace-aggregate-card.es.js +1 -1
  970. package/dist/domains/metrics/components/trace-volume-card.cjs.js +4 -4
  971. package/dist/domains/metrics/components/trace-volume-card.es.js +4 -4
  972. package/dist/domains/metrics/components/usage-card.cjs.js +5 -5
  973. package/dist/domains/metrics/components/usage-card.es.js +5 -5
  974. package/dist/domains/metrics/components.cjs.js +9 -9
  975. package/dist/domains/metrics/components.es.js +9 -9
  976. package/dist/domains/metrics/drilldown.cjs.js +1 -1
  977. package/dist/domains/metrics/drilldown.es.js +1 -1
  978. package/dist/domains/metrics/hooks/use-metrics-activity.cjs.js +1 -1
  979. package/dist/domains/metrics/hooks/use-metrics-activity.es.js +1 -1
  980. package/dist/domains/metrics/hooks/use-metrics-latency.cjs.js +1 -1
  981. package/dist/domains/metrics/hooks/use-metrics-latency.es.js +1 -1
  982. package/dist/domains/metrics/hooks/use-metrics-scores.cjs.js +1 -1
  983. package/dist/domains/metrics/hooks/use-metrics-scores.es.js +1 -1
  984. package/dist/domains/metrics/hooks/use-metrics-span-aggregate.cjs.js +2 -2
  985. package/dist/domains/metrics/hooks/use-metrics-span-aggregate.es.js +2 -2
  986. package/dist/domains/metrics/hooks/use-metrics-trace-aggregate.cjs.js +1 -1
  987. package/dist/domains/metrics/hooks/use-metrics-trace-aggregate.es.js +1 -1
  988. package/dist/domains/metrics/hooks/use-metrics.cjs.js +1 -1
  989. package/dist/domains/metrics/hooks/use-metrics.es.js +1 -1
  990. package/dist/domains/metrics/hooks.cjs.js +5 -5
  991. package/dist/domains/metrics/hooks.es.js +5 -5
  992. package/dist/domains/metrics/lib/breakdown-table.cjs.js +2 -2
  993. package/dist/domains/metrics/lib/breakdown-table.es.js +2 -2
  994. package/dist/domains/metrics/lib/series-colors.cjs.js +279 -0
  995. package/dist/domains/metrics/lib/series-colors.cjs.js.map +1 -0
  996. package/dist/domains/metrics/lib/series-colors.d.ts +1 -0
  997. package/dist/domains/metrics/lib/series-colors.es.js +272 -0
  998. package/dist/domains/metrics/lib/series-colors.es.js.map +1 -0
  999. package/dist/domains/metrics/lib.cjs.js +9 -3
  1000. package/dist/domains/metrics/lib.es.js +5 -4
  1001. package/dist/domains/metrics.cjs.js +10 -4
  1002. package/dist/domains/metrics.es.js +6 -5
  1003. package/dist/domains/observability/components/observability-capability-gate.cjs.js +3 -3
  1004. package/dist/domains/observability/components/observability-capability-gate.es.js +3 -3
  1005. package/dist/domains/observability/components/observability-histogram.cjs.js +5 -5
  1006. package/dist/domains/observability/components/observability-histogram.cjs.js.map +1 -1
  1007. package/dist/domains/observability/components/observability-histogram.es.js +5 -5
  1008. package/dist/domains/observability/components/observability-histogram.es.js.map +1 -1
  1009. package/dist/domains/observability/components/observability-page-layout.cjs.js +2 -2
  1010. package/dist/domains/observability/components/observability-page-layout.es.js +2 -2
  1011. package/dist/domains/observability/hooks/use-observability-list-filters.cjs.js +3 -3
  1012. package/dist/domains/observability/hooks/use-observability-list-filters.es.js +3 -3
  1013. package/dist/domains/observability/observability-list-url-state.cjs.js +1 -1
  1014. package/dist/domains/observability/observability-list-url-state.es.js +1 -1
  1015. package/dist/domains/observability/saved-view-state.cjs.js +3 -3
  1016. package/dist/domains/observability/saved-view-state.es.js +3 -3
  1017. package/dist/domains/observability/saved-views/observability-saved-views.cjs.js +1 -1
  1018. package/dist/domains/observability/saved-views/observability-saved-views.es.js +1 -1
  1019. package/dist/domains/observability/saved-views/use-hosted-saved-views.cjs.js +1 -1
  1020. package/dist/domains/observability/saved-views/use-hosted-saved-views.es.js +1 -1
  1021. package/dist/domains/observability/saved-views.cjs.js +2 -2
  1022. package/dist/domains/observability/saved-views.es.js +2 -2
  1023. package/dist/domains/observability.cjs.js +6 -6
  1024. package/dist/domains/observability.es.js +6 -6
  1025. package/dist/domains/review/components/review-status-badge.cjs.js +1 -1
  1026. package/dist/domains/review/components/review-status-badge.es.js +1 -1
  1027. package/dist/domains/scores/components/score-as-item-dialog.cjs.js +1 -1
  1028. package/dist/domains/scores/components/score-as-item-dialog.es.js +1 -1
  1029. package/dist/domains/scores/components/score-data-panel.cjs.js +7 -7
  1030. package/dist/domains/scores/components/score-data-panel.cjs.js.map +1 -1
  1031. package/dist/domains/scores/components/score-data-panel.es.js +7 -7
  1032. package/dist/domains/scores/components/score-data-panel.es.js.map +1 -1
  1033. package/dist/domains/scores/components/span-scoring.cjs.js +4 -4
  1034. package/dist/domains/scores/components/span-scoring.es.js +4 -4
  1035. package/dist/domains/scores/components/trace-scores-list.cjs.js +5 -5
  1036. package/dist/domains/scores/components/trace-scores-list.es.js +5 -5
  1037. package/dist/domains/scores/components/trace-scores-tab.cjs.js +15 -19
  1038. package/dist/domains/scores/components/trace-scores-tab.cjs.js.map +1 -1
  1039. package/dist/domains/scores/components/trace-scores-tab.es.js +15 -19
  1040. package/dist/domains/scores/components/trace-scores-tab.es.js.map +1 -1
  1041. package/dist/domains/scores/components.cjs.js +1 -1
  1042. package/dist/domains/scores/components.es.js +1 -1
  1043. package/dist/domains/skills/skill-simple-form.cjs.js +4 -4
  1044. package/dist/domains/skills/skill-simple-form.es.js +4 -4
  1045. package/dist/domains/spans/components/spans-explorer-body.cjs.js +6 -6
  1046. package/dist/domains/spans/components/spans-explorer-body.es.js +7 -7
  1047. package/dist/domains/spans/components/spans-filter-bar.cjs.js +3 -3
  1048. package/dist/domains/spans/components/spans-filter-bar.es.js +3 -3
  1049. package/dist/domains/spans/hooks/use-spans-filter-bar.cjs.js +2 -2
  1050. package/dist/domains/spans/hooks/use-spans-filter-bar.es.js +2 -2
  1051. package/dist/domains/spans/hooks/use-spans-list-source.cjs.js +1 -1
  1052. package/dist/domains/spans/hooks/use-spans-list-source.es.js +1 -1
  1053. package/dist/domains/spans/hooks.cjs.js +1 -1
  1054. package/dist/domains/spans/hooks.es.js +1 -1
  1055. package/dist/domains/threads/components/threads-explorer-body.cjs.js +6 -6
  1056. package/dist/domains/threads/components/threads-explorer-body.es.js +7 -7
  1057. package/dist/domains/threads/components/threads-filter-bar.cjs.js +3 -3
  1058. package/dist/domains/threads/components/threads-filter-bar.es.js +3 -3
  1059. package/dist/domains/threads/hooks/use-threads-filter-bar.cjs.js +2 -2
  1060. package/dist/domains/threads/hooks/use-threads-filter-bar.es.js +2 -2
  1061. package/dist/domains/threads/hooks/use-threads-list-source.cjs.js +1 -1
  1062. package/dist/domains/threads/hooks/use-threads-list-source.es.js +1 -1
  1063. package/dist/domains/threads/hooks.cjs.js +1 -1
  1064. package/dist/domains/threads/hooks.es.js +1 -1
  1065. package/dist/domains/traces/components/columns-menu/columns-menu.cjs.js +1 -1
  1066. package/dist/domains/traces/components/columns-menu/columns-menu.es.js +2 -2
  1067. package/dist/domains/traces/components/feedback-options.cjs.js +0 -0
  1068. package/dist/domains/traces/components/feedback-options.d.ts +1 -0
  1069. package/dist/domains/traces/components/feedback-options.es.js +0 -0
  1070. package/dist/domains/traces/components/feedback-thread.cjs.js +16 -10
  1071. package/dist/domains/traces/components/feedback-thread.cjs.js.map +1 -1
  1072. package/dist/domains/traces/components/feedback-thread.es.js +16 -10
  1073. package/dist/domains/traces/components/feedback-thread.es.js.map +1 -1
  1074. package/dist/domains/traces/components/format-trace-thread-messages.cjs.js +1 -1
  1075. package/dist/domains/traces/components/format-trace-thread-messages.es.js +1 -1
  1076. package/dist/domains/traces/components/no-traces-info.cjs.js +2 -2
  1077. package/dist/domains/traces/components/no-traces-info.cjs.js.map +1 -1
  1078. package/dist/domains/traces/components/no-traces-info.es.js +2 -2
  1079. package/dist/domains/traces/components/no-traces-info.es.js.map +1 -1
  1080. package/dist/domains/traces/components/shared.cjs.js +3 -3
  1081. package/dist/domains/traces/components/shared.es.js +3 -3
  1082. package/dist/domains/traces/components/span-data-panel-view.cjs.js +23 -23
  1083. package/dist/domains/traces/components/span-data-panel-view.cjs.js.map +1 -1
  1084. package/dist/domains/traces/components/span-data-panel-view.es.js +23 -23
  1085. package/dist/domains/traces/components/span-data-panel-view.es.js.map +1 -1
  1086. package/dist/domains/traces/components/span-details-view.cjs.js +3 -3
  1087. package/dist/domains/traces/components/span-details-view.es.js +3 -3
  1088. package/dist/domains/traces/components/span-feedback-tab.cjs.js +8 -5
  1089. package/dist/domains/traces/components/span-feedback-tab.cjs.js.map +1 -1
  1090. package/dist/domains/traces/components/span-feedback-tab.es.js +8 -5
  1091. package/dist/domains/traces/components/span-feedback-tab.es.js.map +1 -1
  1092. package/dist/domains/traces/components/span-outcome.cjs.js +1 -1
  1093. package/dist/domains/traces/components/span-outcome.es.js +1 -1
  1094. package/dist/domains/traces/components/span-outcome.utils.cjs.js +3 -3
  1095. package/dist/domains/traces/components/span-outcome.utils.cjs.js.map +1 -1
  1096. package/dist/domains/traces/components/span-outcome.utils.es.js +3 -3
  1097. package/dist/domains/traces/components/span-outcome.utils.es.js.map +1 -1
  1098. package/dist/domains/traces/components/span-payload/span-error-renderer.cjs.js +5 -5
  1099. package/dist/domains/traces/components/span-payload/span-error-renderer.es.js +5 -5
  1100. package/dist/domains/traces/components/span-payload/span-input-renderers.cjs.js +4 -4
  1101. package/dist/domains/traces/components/span-payload/span-input-renderers.es.js +4 -4
  1102. package/dist/domains/traces/components/span-payload/span-output-renderers.cjs.js +7 -7
  1103. package/dist/domains/traces/components/span-payload/span-output-renderers.es.js +7 -7
  1104. package/dist/domains/traces/components/span-payload/span-payload-attachment.cjs.js +1 -1
  1105. package/dist/domains/traces/components/span-payload/span-payload-attachment.es.js +1 -1
  1106. package/dist/domains/traces/components/span-payload/span-payload-json.cjs.js +2 -2
  1107. package/dist/domains/traces/components/span-payload/span-payload-json.es.js +2 -2
  1108. package/dist/domains/traces/components/span-payload/span-payload-messages.cjs.js +14 -9
  1109. package/dist/domains/traces/components/span-payload/span-payload-messages.cjs.js.map +1 -1
  1110. package/dist/domains/traces/components/span-payload/span-payload-messages.es.js +14 -9
  1111. package/dist/domains/traces/components/span-payload/span-payload-messages.es.js.map +1 -1
  1112. package/dist/domains/traces/components/span-payload/span-payload-primitives.cjs.js +1 -1
  1113. package/dist/domains/traces/components/span-payload/span-payload-primitives.es.js +1 -1
  1114. package/dist/domains/traces/components/span-payload/span-payload-processor.cjs.js +3 -3
  1115. package/dist/domains/traces/components/span-payload/span-payload-processor.es.js +3 -3
  1116. package/dist/domains/traces/components/span-payload/span-payload-registry.cjs.js +1 -1
  1117. package/dist/domains/traces/components/span-payload/span-payload-registry.es.js +1 -1
  1118. package/dist/domains/traces/components/span-payload/span-payload-section.cjs.js +7 -7
  1119. package/dist/domains/traces/components/span-payload/span-payload-section.es.js +7 -7
  1120. package/dist/domains/traces/components/span-payload/span-payload-tool.cjs.js +1 -1
  1121. package/dist/domains/traces/components/span-payload/span-payload-tool.es.js +1 -1
  1122. package/dist/domains/traces/components/span-payload/span-processor-attributes.cjs.js +3 -3
  1123. package/dist/domains/traces/components/span-payload/span-processor-attributes.es.js +3 -3
  1124. package/dist/domains/traces/components/span-payload/span-processor-mutations.cjs.js +3 -3
  1125. package/dist/domains/traces/components/span-payload/span-processor-mutations.es.js +3 -3
  1126. package/dist/domains/traces/components/span-payload/span-signal-details.cjs.js +4 -4
  1127. package/dist/domains/traces/components/span-payload/span-signal-details.es.js +4 -4
  1128. package/dist/domains/traces/components/span-payload/span-tools-section.cjs.js +6 -6
  1129. package/dist/domains/traces/components/span-payload/span-tools-section.es.js +6 -6
  1130. package/dist/domains/traces/components/span-payload.cjs.js +4 -4
  1131. package/dist/domains/traces/components/span-payload.es.js +4 -4
  1132. package/dist/domains/traces/components/span-prompt-changes.cjs.js +17 -10
  1133. package/dist/domains/traces/components/span-prompt-changes.cjs.js.map +1 -1
  1134. package/dist/domains/traces/components/span-prompt-changes.es.js +17 -10
  1135. package/dist/domains/traces/components/span-prompt-changes.es.js.map +1 -1
  1136. package/dist/domains/traces/components/span-rows.cjs.js +1 -1
  1137. package/dist/domains/traces/components/span-rows.es.js +1 -1
  1138. package/dist/domains/traces/components/span-summary-description.cjs.js +3 -3
  1139. package/dist/domains/traces/components/span-summary-description.es.js +3 -3
  1140. package/dist/domains/traces/components/span-timeline-row.cjs.js +10 -10
  1141. package/dist/domains/traces/components/span-timeline-row.es.js +10 -10
  1142. package/dist/domains/traces/components/span-timing-hover-card.cjs.js +3 -3
  1143. package/dist/domains/traces/components/span-timing-hover-card.es.js +3 -3
  1144. package/dist/domains/traces/components/span-token-usage.cjs.js +2 -2
  1145. package/dist/domains/traces/components/span-token-usage.es.js +2 -2
  1146. package/dist/domains/traces/components/span-token-usage.utils.cjs.js +2 -2
  1147. package/dist/domains/traces/components/span-token-usage.utils.cjs.js.map +1 -1
  1148. package/dist/domains/traces/components/span-token-usage.utils.es.js +2 -2
  1149. package/dist/domains/traces/components/span-token-usage.utils.es.js.map +1 -1
  1150. package/dist/domains/traces/components/span-type-badge.cjs.js +1 -1
  1151. package/dist/domains/traces/components/span-type-badge.es.js +1 -1
  1152. package/dist/domains/traces/components/thread-trace/thread-trace-details.cjs.js +3 -3
  1153. package/dist/domains/traces/components/thread-trace/thread-trace-details.es.js +3 -3
  1154. package/dist/domains/traces/components/thread-trace/thread-trace-list.cjs.js +2 -2
  1155. package/dist/domains/traces/components/thread-trace/thread-trace-list.es.js +2 -2
  1156. package/dist/domains/traces/components/thread-trace/thread-trace-messages.cjs.js +4 -4
  1157. package/dist/domains/traces/components/thread-trace/thread-trace-messages.es.js +4 -4
  1158. package/dist/domains/traces/components/thread-trace/thread-trace-root.cjs.js +3 -3
  1159. package/dist/domains/traces/components/thread-trace/thread-trace-root.es.js +3 -3
  1160. package/dist/domains/traces/components/thread-trace/thread-trace-row.cjs.js +5 -5
  1161. package/dist/domains/traces/components/thread-trace/thread-trace-row.es.js +5 -5
  1162. package/dist/domains/traces/components/thread-trace/thread-trace-span-panel.cjs.js +1 -1
  1163. package/dist/domains/traces/components/thread-trace/thread-trace-span-panel.es.js +1 -1
  1164. package/dist/domains/traces/components/thread-trace/thread-trace-spans.cjs.js +6 -6
  1165. package/dist/domains/traces/components/thread-trace/thread-trace-spans.es.js +6 -6
  1166. package/dist/domains/traces/components/thread-trace.cjs.js +3 -3
  1167. package/dist/domains/traces/components/thread-trace.es.js +3 -3
  1168. package/dist/domains/traces/components/thread-view-by-trace.cjs.js +12 -10
  1169. package/dist/domains/traces/components/thread-view-by-trace.cjs.js.map +1 -1
  1170. package/dist/domains/traces/components/thread-view-by-trace.es.js +12 -10
  1171. package/dist/domains/traces/components/thread-view-by-trace.es.js.map +1 -1
  1172. package/dist/domains/traces/components/thread-view-skeleton.cjs.js +5 -5
  1173. package/dist/domains/traces/components/thread-view-skeleton.es.js +5 -5
  1174. package/dist/domains/traces/components/timeline-name-col.cjs.js +6 -6
  1175. package/dist/domains/traces/components/timeline-name-col.es.js +6 -6
  1176. package/dist/domains/traces/components/timeline-timing-col.cjs.js +4 -4
  1177. package/dist/domains/traces/components/timeline-timing-col.es.js +4 -4
  1178. package/dist/domains/traces/components/trace-columns-menu.cjs.js +5 -5
  1179. package/dist/domains/traces/components/trace-columns-menu.es.js +5 -5
  1180. package/dist/domains/traces/components/trace-data-panel-view.cjs.js +13 -13
  1181. package/dist/domains/traces/components/trace-data-panel-view.es.js +13 -13
  1182. package/dist/domains/traces/components/trace-data-panel.cjs.js +2 -2
  1183. package/dist/domains/traces/components/trace-data-panel.es.js +2 -2
  1184. package/dist/domains/traces/components/trace-details-view.cjs.js +3 -3
  1185. package/dist/domains/traces/components/trace-details-view.es.js +3 -3
  1186. package/dist/domains/traces/components/trace-error-cell.cjs.js +2 -2
  1187. package/dist/domains/traces/components/trace-error-cell.es.js +2 -2
  1188. package/dist/domains/traces/components/trace-error-summary.cjs.js +2 -2
  1189. package/dist/domains/traces/components/trace-error-summary.es.js +2 -2
  1190. package/dist/domains/traces/components/trace-feedback-tab.cjs.js +9 -4
  1191. package/dist/domains/traces/components/trace-feedback-tab.cjs.js.map +1 -1
  1192. package/dist/domains/traces/components/trace-feedback-tab.es.js +9 -4
  1193. package/dist/domains/traces/components/trace-feedback-tab.es.js.map +1 -1
  1194. package/dist/domains/traces/components/trace-id-button.cjs.js +1 -1
  1195. package/dist/domains/traces/components/trace-id-button.es.js +1 -1
  1196. package/dist/domains/traces/components/trace-messages-panel.cjs.js +1 -1
  1197. package/dist/domains/traces/components/trace-messages-panel.es.js +1 -1
  1198. package/dist/domains/traces/components/trace-messages-skeleton.cjs.js +1 -1
  1199. package/dist/domains/traces/components/trace-messages-skeleton.es.js +1 -1
  1200. package/dist/domains/traces/components/trace-span-panel.cjs.js +5 -4
  1201. package/dist/domains/traces/components/trace-span-panel.cjs.js.map +1 -1
  1202. package/dist/domains/traces/components/trace-span-panel.es.js +5 -4
  1203. package/dist/domains/traces/components/trace-span-panel.es.js.map +1 -1
  1204. package/dist/domains/traces/components/trace-span-timeline-markers.cjs.js +6 -6
  1205. package/dist/domains/traces/components/trace-span-timeline-markers.es.js +6 -6
  1206. package/dist/domains/traces/components/trace-span-timeline.cjs.js +5 -5
  1207. package/dist/domains/traces/components/trace-span-timeline.es.js +5 -5
  1208. package/dist/domains/traces/components/trace-span-tree-skeleton.cjs.js +2 -2
  1209. package/dist/domains/traces/components/trace-span-tree-skeleton.es.js +2 -2
  1210. package/dist/domains/traces/components/trace-span-tree.cjs.js +2 -2
  1211. package/dist/domains/traces/components/trace-span-tree.es.js +2 -2
  1212. package/dist/domains/traces/components/trace-status-value.cjs.js +1 -1
  1213. package/dist/domains/traces/components/trace-status-value.es.js +1 -1
  1214. package/dist/domains/traces/components/trace-summary-description.cjs.js +5 -5
  1215. package/dist/domains/traces/components/trace-summary-description.es.js +5 -5
  1216. package/dist/domains/traces/components/trace-thread-item-view.cjs.js +5 -5
  1217. package/dist/domains/traces/components/trace-thread-item-view.es.js +5 -5
  1218. package/dist/domains/traces/components/trace-thread-panel.cjs.js +3 -2
  1219. package/dist/domains/traces/components/trace-thread-panel.cjs.js.map +1 -1
  1220. package/dist/domains/traces/components/trace-thread-panel.es.js +3 -2
  1221. package/dist/domains/traces/components/trace-thread-panel.es.js.map +1 -1
  1222. package/dist/domains/traces/components/trace-timeline.cjs.js +1 -1
  1223. package/dist/domains/traces/components/trace-timeline.es.js +1 -1
  1224. package/dist/domains/traces/components/traces-error-content.cjs.js +2 -2
  1225. package/dist/domains/traces/components/traces-error-content.es.js +2 -2
  1226. package/dist/domains/traces/components/traces-explorer/traces-explorer-body.cjs.js +2 -2
  1227. package/dist/domains/traces/components/traces-explorer/traces-explorer-body.es.js +2 -2
  1228. package/dist/domains/traces/components/traces-explorer/traces-explorer-columns-menu.cjs.js +1 -1
  1229. package/dist/domains/traces/components/traces-explorer/traces-explorer-columns-menu.es.js +1 -1
  1230. package/dist/domains/traces/components/traces-explorer/traces-explorer-columns-provider.cjs.js +1 -1
  1231. package/dist/domains/traces/components/traces-explorer/traces-explorer-columns-provider.es.js +1 -1
  1232. package/dist/domains/traces/components/traces-explorer/traces-explorer-context.cjs.js.map +1 -1
  1233. package/dist/domains/traces/components/traces-explorer/traces-explorer-context.es.js.map +1 -1
  1234. package/dist/domains/traces/components/traces-explorer/traces-explorer-filter-bar.cjs.js +2 -2
  1235. package/dist/domains/traces/components/traces-explorer/traces-explorer-filter-bar.es.js +2 -2
  1236. package/dist/domains/traces/components/traces-explorer/traces-explorer-histogram.cjs.js +1 -1
  1237. package/dist/domains/traces/components/traces-explorer/traces-explorer-histogram.es.js +1 -1
  1238. package/dist/domains/traces/components/traces-explorer/traces-explorer-layout.cjs.js +2 -2
  1239. package/dist/domains/traces/components/traces-explorer/traces-explorer-layout.es.js +2 -2
  1240. package/dist/domains/traces/components/traces-explorer/traces-explorer-list-provider.cjs.js +2 -2
  1241. package/dist/domains/traces/components/traces-explorer/traces-explorer-list-provider.es.js +2 -2
  1242. package/dist/domains/traces/components/traces-explorer/traces-explorer-list.cjs.js +1 -1
  1243. package/dist/domains/traces/components/traces-explorer/traces-explorer-list.es.js +1 -1
  1244. package/dist/domains/traces/components/traces-explorer/traces-explorer-panel.cjs.js +14 -9
  1245. package/dist/domains/traces/components/traces-explorer/traces-explorer-panel.cjs.js.map +1 -1
  1246. package/dist/domains/traces/components/traces-explorer/traces-explorer-panel.es.js +14 -9
  1247. package/dist/domains/traces/components/traces-explorer/traces-explorer-panel.es.js.map +1 -1
  1248. package/dist/domains/traces/components/traces-explorer/traces-explorer-root.cjs.js +16 -3
  1249. package/dist/domains/traces/components/traces-explorer/traces-explorer-root.cjs.js.map +1 -1
  1250. package/dist/domains/traces/components/traces-explorer/traces-explorer-root.es.js +17 -4
  1251. package/dist/domains/traces/components/traces-explorer/traces-explorer-root.es.js.map +1 -1
  1252. package/dist/domains/traces/components/traces-explorer/traces-explorer-saved-views.cjs.js +1 -1
  1253. package/dist/domains/traces/components/traces-explorer/traces-explorer-saved-views.es.js +1 -1
  1254. package/dist/domains/traces/components/traces-explorer/use-traces-filter-bar.cjs.js +2 -2
  1255. package/dist/domains/traces/components/traces-explorer/use-traces-filter-bar.es.js +2 -2
  1256. package/dist/domains/traces/components/traces-explorer.cjs.js +4 -4
  1257. package/dist/domains/traces/components/traces-explorer.cjs.js.map +1 -1
  1258. package/dist/domains/traces/components/traces-explorer.es.js +4 -4
  1259. package/dist/domains/traces/components/traces-explorer.es.js.map +1 -1
  1260. package/dist/domains/traces/components/traces-list-mode-toggle.cjs.js +2 -2
  1261. package/dist/domains/traces/components/traces-list-mode-toggle.es.js +2 -2
  1262. package/dist/domains/traces/components/traces-list-view.cjs.js +10 -10
  1263. package/dist/domains/traces/components/traces-list-view.es.js +10 -10
  1264. package/dist/domains/traces/components/traces-page-skeleton.cjs.js +2 -2
  1265. package/dist/domains/traces/components/traces-page-skeleton.es.js +2 -2
  1266. package/dist/domains/traces/components/traces-spans-switch.cjs.js +3 -3
  1267. package/dist/domains/traces/components/traces-spans-switch.es.js +3 -3
  1268. package/dist/domains/traces/components.cjs.js +15 -15
  1269. package/dist/domains/traces/components.es.js +15 -15
  1270. package/dist/domains/traces/hooks/use-download-trace-json.cjs.js +1 -1
  1271. package/dist/domains/traces/hooks/use-download-trace-json.es.js +1 -1
  1272. package/dist/domains/traces/hooks/use-traces-list-source.cjs.js +1 -1
  1273. package/dist/domains/traces/hooks/use-traces-list-source.es.js +1 -1
  1274. package/dist/domains/traces/hooks.cjs.js +4 -4
  1275. package/dist/domains/traces/hooks.es.js +4 -4
  1276. package/dist/domains/traces/utils/span-utils.cjs.js +2 -2
  1277. package/dist/domains/traces/utils/span-utils.cjs.js.map +1 -1
  1278. package/dist/domains/traces/utils/span-utils.es.js +2 -2
  1279. package/dist/domains/traces/utils/span-utils.es.js.map +1 -1
  1280. package/dist/domains/traces/utils.cjs.js +2 -2
  1281. package/dist/domains/traces/utils.es.js +2 -2
  1282. package/dist/domains/traces.cjs.js +2 -2
  1283. package/dist/domains/traces.es.js +2 -2
  1284. package/dist/domains/workflows/components/workflow-combobox.cjs.js +4 -3
  1285. package/dist/domains/workflows/components/workflow-combobox.cjs.js.map +1 -1
  1286. package/dist/domains/workflows/components/workflow-combobox.es.js +4 -3
  1287. package/dist/domains/workflows/components/workflow-combobox.es.js.map +1 -1
  1288. package/dist/domains/workflows/components/workflow-entity-header.cjs.js +6 -6
  1289. package/dist/domains/workflows/components/workflow-entity-header.cjs.js.map +1 -1
  1290. package/dist/domains/workflows/components/workflow-entity-header.es.js +6 -6
  1291. package/dist/domains/workflows/components/workflow-entity-header.es.js.map +1 -1
  1292. package/dist/domains/workflows/components/workflow-information.cjs.js +10 -10
  1293. package/dist/domains/workflows/components/workflow-information.es.js +10 -10
  1294. package/dist/domains/workflows/components/workflow-layout.cjs.js +3 -3
  1295. package/dist/domains/workflows/components/workflow-layout.es.js +2 -2
  1296. package/dist/domains/workflows/components/workflow-run-status-icon.cjs.js +3 -3
  1297. package/dist/domains/workflows/components/workflow-run-status-icon.es.js +3 -3
  1298. package/dist/domains/workflows/components/workflow-step-detail.cjs.js +4 -4
  1299. package/dist/domains/workflows/components/workflow-step-detail.es.js +4 -4
  1300. package/dist/domains/workflows/components/workflows-list/no-workflows-info.cjs.js +2 -2
  1301. package/dist/domains/workflows/components/workflows-list/no-workflows-info.es.js +2 -2
  1302. package/dist/domains/workflows/components/workflows-list/workflows-list.cjs.js +11 -11
  1303. package/dist/domains/workflows/components/workflows-list/workflows-list.es.js +11 -11
  1304. package/dist/domains/workflows/context/playground-workflow-run-provider.cjs.js +1 -1
  1305. package/dist/domains/workflows/context/playground-workflow-run-provider.es.js +1 -1
  1306. package/dist/domains/workflows/context/use-stream-for-run.cjs.js +1 -1
  1307. package/dist/domains/workflows/context/use-stream-for-run.es.js +1 -1
  1308. package/dist/domains/workflows/context/workflow-run-provider.cjs.js +1 -1
  1309. package/dist/domains/workflows/context/workflow-run-provider.es.js +1 -1
  1310. package/dist/domains/workflows/runs/workflow-run-details.cjs.js +2 -2
  1311. package/dist/domains/workflows/runs/workflow-run-details.es.js +2 -2
  1312. package/dist/domains/workflows/runs/workflow-run-list.cjs.js +26 -21
  1313. package/dist/domains/workflows/runs/workflow-run-list.cjs.js.map +1 -1
  1314. package/dist/domains/workflows/runs/workflow-run-list.es.js +26 -21
  1315. package/dist/domains/workflows/runs/workflow-run-list.es.js.map +1 -1
  1316. package/dist/domains/workflows/workflow/data/use-workflow-data.cjs.js +1 -1
  1317. package/dist/domains/workflows/workflow/data/use-workflow-data.es.js +1 -1
  1318. package/dist/domains/workflows/workflow/data/workflow-data-button.cjs.js +1 -1
  1319. package/dist/domains/workflows/workflow/data/workflow-data-button.es.js +1 -1
  1320. package/dist/domains/workflows/workflow/data/workflow-data-inspector.cjs.js +5 -5
  1321. package/dist/domains/workflows/workflow/data/workflow-data-inspector.es.js +5 -5
  1322. package/dist/domains/workflows/workflow/input/workflow-json-input.cjs.js +1 -1
  1323. package/dist/domains/workflows/workflow/input/workflow-json-input.es.js +1 -1
  1324. package/dist/domains/workflows/workflow/input/workflow-processor-input.cjs.js +8 -8
  1325. package/dist/domains/workflows/workflow/input/workflow-processor-input.cjs.js.map +1 -1
  1326. package/dist/domains/workflows/workflow/input/workflow-processor-input.es.js +8 -8
  1327. package/dist/domains/workflows/workflow/input/workflow-processor-input.es.js.map +1 -1
  1328. package/dist/domains/workflows/workflow/use-workflow-graph-nodes.cjs.js +1 -1
  1329. package/dist/domains/workflows/workflow/use-workflow-graph-nodes.es.js +1 -1
  1330. package/dist/domains/workflows/workflow/use-workflow-graph-runtime.cjs.js +1 -1
  1331. package/dist/domains/workflows/workflow/use-workflow-graph-runtime.es.js +1 -1
  1332. package/dist/domains/workflows/workflow/use-workflow-trigger.cjs.js +3 -3
  1333. package/dist/domains/workflows/workflow/use-workflow-trigger.es.js +3 -3
  1334. package/dist/domains/workflows/workflow/utils.cjs.js +2 -2
  1335. package/dist/domains/workflows/workflow/utils.es.js +2 -2
  1336. package/dist/domains/workflows/workflow/workflow-body-graph.cjs.js +1 -1
  1337. package/dist/domains/workflows/workflow/workflow-body-graph.es.js +1 -1
  1338. package/dist/domains/workflows/workflow/workflow-cancel-button.cjs.js +1 -1
  1339. package/dist/domains/workflows/workflow/workflow-cancel-button.es.js +1 -1
  1340. package/dist/domains/workflows/workflow/workflow-card.cjs.js +1 -1
  1341. package/dist/domains/workflows/workflow/workflow-card.es.js +1 -1
  1342. package/dist/domains/workflows/workflow/workflow-data-edge.cjs.js +1 -1
  1343. package/dist/domains/workflows/workflow/workflow-data-edge.es.js +1 -1
  1344. package/dist/domains/workflows/workflow/workflow-debug-mode-switch.cjs.js +1 -1
  1345. package/dist/domains/workflows/workflow/workflow-debug-mode-switch.es.js +1 -1
  1346. package/dist/domains/workflows/workflow/workflow-debug-step-controls.cjs.js +1 -1
  1347. package/dist/domains/workflows/workflow/workflow-debug-step-controls.es.js +1 -1
  1348. package/dist/domains/workflows/workflow/workflow-graph-boundary.cjs.js +6 -6
  1349. package/dist/domains/workflows/workflow/workflow-graph-boundary.es.js +6 -6
  1350. package/dist/domains/workflows/workflow/workflow-graph-groups.cjs.js +1 -1
  1351. package/dist/domains/workflows/workflow/workflow-graph-groups.cjs.js.map +1 -1
  1352. package/dist/domains/workflows/workflow/workflow-graph-groups.es.js +1 -1
  1353. package/dist/domains/workflows/workflow/workflow-graph-groups.es.js.map +1 -1
  1354. package/dist/domains/workflows/workflow/workflow-graph-inner.cjs.js +4 -4
  1355. package/dist/domains/workflows/workflow/workflow-graph-inner.es.js +4 -4
  1356. package/dist/domains/workflows/workflow/workflow-graph-layout.cjs.js +1 -1
  1357. package/dist/domains/workflows/workflow/workflow-graph-layout.es.js +1 -1
  1358. package/dist/domains/workflows/workflow/workflow-graph-node.cjs.js +1 -1
  1359. package/dist/domains/workflows/workflow/workflow-graph-node.es.js +1 -1
  1360. package/dist/domains/workflows/workflow/workflow-graph.cjs.js +2 -2
  1361. package/dist/domains/workflows/workflow/workflow-graph.es.js +2 -2
  1362. package/dist/domains/workflows/workflow/workflow-input-data.cjs.js +6 -6
  1363. package/dist/domains/workflows/workflow/workflow-input-data.es.js +6 -6
  1364. package/dist/domains/workflows/workflow/workflow-input-type-toggle.cjs.js +2 -2
  1365. package/dist/domains/workflows/workflow/workflow-input-type-toggle.es.js +2 -2
  1366. package/dist/domains/workflows/workflow/workflow-map-config-dialog.cjs.js +3 -3
  1367. package/dist/domains/workflows/workflow/workflow-map-config-dialog.es.js +3 -3
  1368. package/dist/domains/workflows/workflow/workflow-nested-graph.cjs.js +1 -1
  1369. package/dist/domains/workflows/workflow/workflow-nested-graph.es.js +1 -1
  1370. package/dist/domains/workflows/workflow/workflow-run-data.cjs.js +4 -4
  1371. package/dist/domains/workflows/workflow/workflow-run-data.es.js +4 -4
  1372. package/dist/domains/workflows/workflow/workflow-run-error.cjs.js +1 -1
  1373. package/dist/domains/workflows/workflow/workflow-run-error.es.js +1 -1
  1374. package/dist/domains/workflows/workflow/workflow-run-header.cjs.js +6 -6
  1375. package/dist/domains/workflows/workflow/workflow-run-header.es.js +6 -6
  1376. package/dist/domains/workflows/workflow/workflow-status.cjs.js +7 -7
  1377. package/dist/domains/workflows/workflow/workflow-status.es.js +7 -7
  1378. package/dist/domains/workflows/workflow/workflow-step-action-bar.cjs.js +2 -2
  1379. package/dist/domains/workflows/workflow/workflow-step-action-bar.es.js +2 -2
  1380. package/dist/domains/workflows/workflow/workflow-step-node-utils.cjs.js +1 -1
  1381. package/dist/domains/workflows/workflow/workflow-step-node-utils.es.js +1 -1
  1382. package/dist/domains/workflows/workflow/workflow-steps-status.cjs.js +1 -1
  1383. package/dist/domains/workflows/workflow/workflow-steps-status.es.js +1 -1
  1384. package/dist/domains/workflows/workflow/workflow-suspended-steps.cjs.js +10 -10
  1385. package/dist/domains/workflows/workflow/workflow-suspended-steps.es.js +10 -10
  1386. package/dist/domains/workflows/workflow/workflow-time-travel-form.cjs.js +12 -12
  1387. package/dist/domains/workflows/workflow/workflow-time-travel-form.es.js +12 -12
  1388. package/dist/domains/workflows/workflow/workflow-timeline-row.cjs.js +4 -4
  1389. package/dist/domains/workflows/workflow/workflow-timeline-row.es.js +4 -4
  1390. package/dist/domains/workflows/workflow/workflow-timeline.cjs.js +9 -9
  1391. package/dist/domains/workflows/workflow/workflow-timeline.es.js +9 -9
  1392. package/dist/domains/workflows/workflow/workflow-trigger-form.cjs.js +2 -2
  1393. package/dist/domains/workflows/workflow/workflow-trigger-form.es.js +2 -2
  1394. package/dist/domains/workflows/workflow/workflow-trigger-header.cjs.js +3 -3
  1395. package/dist/domains/workflows/workflow/workflow-trigger-header.es.js +3 -3
  1396. package/dist/domains/workflows/workflow/workflow-trigger.cjs.js +5 -5
  1397. package/dist/domains/workflows/workflow/workflow-trigger.es.js +5 -5
  1398. package/dist/domains/workflows.cjs.js +4 -4
  1399. package/dist/domains/workflows.es.js +4 -4
  1400. package/dist/domains/workspace/components/mount-icon.cjs.js +1 -1
  1401. package/dist/domains/workspace/components/mount-icon.es.js +1 -1
  1402. package/dist/domains/workspace/components/workspace-active-file.cjs.js +4 -4
  1403. package/dist/domains/workspace/components/workspace-active-file.es.js +4 -4
  1404. package/dist/domains/workspace/components/workspace-add-skill-dialog.cjs.js +10 -10
  1405. package/dist/domains/workspace/components/workspace-add-skill-dialog.es.js +10 -10
  1406. package/dist/domains/workspace/components/workspace-add-skill.cjs.js +1 -1
  1407. package/dist/domains/workspace/components/workspace-add-skill.es.js +1 -1
  1408. package/dist/domains/workspace/components/workspace-context.cjs.js +1 -1
  1409. package/dist/domains/workspace/components/workspace-context.es.js +1 -1
  1410. package/dist/domains/workspace/components/workspace-create-directory.cjs.js +4 -4
  1411. package/dist/domains/workspace/components/workspace-create-directory.es.js +4 -4
  1412. package/dist/domains/workspace/components/workspace-error.cjs.js +1 -1
  1413. package/dist/domains/workspace/components/workspace-error.es.js +1 -1
  1414. package/dist/domains/workspace/components/workspace-markdown-preview.cjs.js +2 -2
  1415. package/dist/domains/workspace/components/workspace-markdown-preview.es.js +2 -2
  1416. package/dist/domains/workspace/components/workspace-parts.cjs.js +5 -5
  1417. package/dist/domains/workspace/components/workspace-parts.es.js +5 -5
  1418. package/dist/domains/workspace/components/workspace-search.cjs.js +17 -20
  1419. package/dist/domains/workspace/components/workspace-search.cjs.js.map +1 -1
  1420. package/dist/domains/workspace/components/workspace-search.es.js +18 -21
  1421. package/dist/domains/workspace/components/workspace-search.es.js.map +1 -1
  1422. package/dist/domains/workspace/components/workspace-tree-view.cjs.js +1 -1
  1423. package/dist/domains/workspace/components/workspace-tree-view.es.js +1 -1
  1424. package/dist/domains/workspace/components/workspace-tree.cjs.js +11 -11
  1425. package/dist/domains/workspace/components/workspace-tree.cjs.js.map +1 -1
  1426. package/dist/domains/workspace/components/workspace-tree.es.js +11 -11
  1427. package/dist/domains/workspace/components/workspace-tree.es.js.map +1 -1
  1428. package/dist/domains/workspace/components/workspace.cjs.js +1 -1
  1429. package/dist/domains/workspace/components/workspace.es.js +1 -1
  1430. package/dist/domains/workspace.cjs.js +3 -3
  1431. package/dist/domains/workspace.es.js +3 -3
  1432. package/dist/dropdown-menu-D3D8USIY.cjs +249 -0
  1433. package/dist/dropdown-menu-D3D8USIY.cjs.map +1 -0
  1434. package/dist/dropdown-menu-jsf9D-J_.js +242 -0
  1435. package/dist/dropdown-menu-jsf9D-J_.js.map +1 -0
  1436. package/dist/ee/signals/components/entity-index-compact-grid.cjs.js +4 -4
  1437. package/dist/ee/signals/components/entity-index-compact-grid.es.js +4 -4
  1438. package/dist/ee/signals/components/entity-index-list.cjs.js +1 -1
  1439. package/dist/ee/signals/components/entity-index-list.es.js +1 -1
  1440. package/dist/ee/signals/components/entity-index-status.cjs.js +2 -2
  1441. package/dist/ee/signals/components/entity-index-status.es.js +2 -2
  1442. package/dist/ee/signals/components/signals-empty-state.cjs.js +12 -21
  1443. package/dist/ee/signals/components/signals-empty-state.cjs.js.map +1 -1
  1444. package/dist/ee/signals/components/signals-empty-state.es.js +12 -21
  1445. package/dist/ee/signals/components/signals-empty-state.es.js.map +1 -1
  1446. package/dist/ee/signals/components/trace-intelligence-entity-detail.cjs.js +5 -5
  1447. package/dist/ee/signals/components/trace-intelligence-entity-detail.es.js +5 -5
  1448. package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js +13 -13
  1449. package/dist/ee/signals/components/trace-intelligence-entity-index.es.js +14 -14
  1450. package/dist/ee/signals/examples-pager.cjs.js +2 -2
  1451. package/dist/ee/signals/examples-pager.es.js +2 -2
  1452. package/dist/ee/signals/flow-card.cjs.js +4 -4
  1453. package/dist/ee/signals/flow-card.es.js +4 -4
  1454. package/dist/ee/signals/lifeline-point.cjs.js +2 -2
  1455. package/dist/ee/signals/lifeline-point.es.js +2 -2
  1456. package/dist/ee/signals/lifeline-row.cjs.js +6 -6
  1457. package/dist/ee/signals/lifeline-row.cjs.js.map +1 -1
  1458. package/dist/ee/signals/lifeline-row.es.js +6 -6
  1459. package/dist/ee/signals/lifeline-row.es.js.map +1 -1
  1460. package/dist/ee/signals/noise-detail-panel.cjs.js +6 -6
  1461. package/dist/ee/signals/noise-detail-panel.es.js +6 -6
  1462. package/dist/ee/signals/sankey-signals-data.cjs.js +9 -5
  1463. package/dist/ee/signals/sankey-signals-data.cjs.js.map +1 -1
  1464. package/dist/ee/signals/sankey-signals-data.es.js +9 -5
  1465. package/dist/ee/signals/sankey-signals-data.es.js.map +1 -1
  1466. package/dist/ee/signals/sankey-signals.cjs.js +21 -12
  1467. package/dist/ee/signals/sankey-signals.cjs.js.map +1 -1
  1468. package/dist/ee/signals/sankey-signals.es.js +21 -12
  1469. package/dist/ee/signals/sankey-signals.es.js.map +1 -1
  1470. package/dist/ee/signals/settings/signal-definition-form-dialog.cjs.js +4 -4
  1471. package/dist/ee/signals/settings/signal-definition-form-dialog.es.js +4 -4
  1472. package/dist/ee/signals/settings/trace-signal-settings.cjs.js +7 -7
  1473. package/dist/ee/signals/settings/trace-signal-settings.es.js +7 -7
  1474. package/dist/ee/signals/signal-delta-column.cjs.js +3 -3
  1475. package/dist/ee/signals/signal-delta-column.es.js +3 -3
  1476. package/dist/ee/signals/signal-lifelines.cjs.js +5 -5
  1477. package/dist/ee/signals/signal-lifelines.es.js +5 -5
  1478. package/dist/ee/signals/signals-error-state.cjs.js +2 -2
  1479. package/dist/ee/signals/signals-error-state.es.js +2 -2
  1480. package/dist/ee/signals/snapshot-summary.cjs.js +15 -0
  1481. package/dist/ee/signals/snapshot-summary.cjs.js.map +1 -0
  1482. package/dist/ee/signals/snapshot-summary.d.ts +1 -0
  1483. package/dist/ee/signals/snapshot-summary.es.js +14 -0
  1484. package/dist/ee/signals/snapshot-summary.es.js.map +1 -0
  1485. package/dist/ee/signals/snapshot-timeline.cjs.js +4 -4
  1486. package/dist/ee/signals/snapshot-timeline.cjs.js.map +1 -1
  1487. package/dist/ee/signals/snapshot-timeline.es.js +4 -4
  1488. package/dist/ee/signals/snapshot-timeline.es.js.map +1 -1
  1489. package/dist/ee/signals/sortable-signal-headers.cjs.js +6 -6
  1490. package/dist/ee/signals/sortable-signal-headers.es.js +6 -6
  1491. package/dist/ee/signals/theme-compare.cjs.js +15 -7
  1492. package/dist/ee/signals/theme-compare.cjs.js.map +1 -1
  1493. package/dist/ee/signals/theme-compare.es.js +15 -7
  1494. package/dist/ee/signals/theme-compare.es.js.map +1 -1
  1495. package/dist/ee/signals/theme-detail-panel.cjs.js +13 -17
  1496. package/dist/ee/signals/theme-detail-panel.cjs.js.map +1 -1
  1497. package/dist/ee/signals/theme-detail-panel.es.js +13 -17
  1498. package/dist/ee/signals/theme-detail-panel.es.js.map +1 -1
  1499. package/dist/ee/signals/theme-filter-banner.cjs.js +7 -7
  1500. package/dist/ee/signals/theme-filter-banner.cjs.js.map +1 -1
  1501. package/dist/ee/signals/theme-filter-banner.es.js +7 -7
  1502. package/dist/ee/signals/theme-filter-banner.es.js.map +1 -1
  1503. package/dist/ee/signals/theme-lifelines.cjs.js +8 -5
  1504. package/dist/ee/signals/theme-lifelines.cjs.js.map +1 -1
  1505. package/dist/ee/signals/theme-lifelines.es.js +8 -5
  1506. package/dist/ee/signals/theme-lifelines.es.js.map +1 -1
  1507. package/dist/ee/signals/theme-trend-chart.cjs.js +3 -3
  1508. package/dist/ee/signals/theme-trend-chart.cjs.js.map +1 -1
  1509. package/dist/ee/signals/theme-trend-chart.es.js +3 -3
  1510. package/dist/ee/signals/theme-trend-chart.es.js.map +1 -1
  1511. package/dist/ee/signals/trace-insight-view.cjs.js +11 -13
  1512. package/dist/ee/signals/trace-insight-view.cjs.js.map +1 -1
  1513. package/dist/ee/signals/trace-insight-view.es.js +11 -13
  1514. package/dist/ee/signals/trace-insight-view.es.js.map +1 -1
  1515. package/dist/ee/signals/trace-intelligence-explainer.cjs.js +10 -15
  1516. package/dist/ee/signals/trace-intelligence-explainer.cjs.js.map +1 -1
  1517. package/dist/ee/signals/trace-intelligence-explainer.es.js +10 -15
  1518. package/dist/ee/signals/trace-intelligence-explainer.es.js.map +1 -1
  1519. package/dist/ee/signals/view-mode-tab.cjs.js +2 -2
  1520. package/dist/ee/signals/view-mode-tab.es.js +2 -2
  1521. package/dist/ee/signals.cjs.js +5 -5
  1522. package/dist/ee/signals.es.js +5 -5
  1523. package/dist/ee/topics/components/topic-trace-details-panel.cjs.js +1 -1
  1524. package/dist/ee/topics/components/topic-trace-details-panel.es.js +1 -1
  1525. package/dist/ee/topics/components/topic-trace-summary-list.cjs.js +4 -4
  1526. package/dist/ee/topics/components/topic-trace-summary-list.es.js +4 -4
  1527. package/dist/ee/topics/components/topics-layout.cjs.js +1 -1
  1528. package/dist/ee/topics/components/topics-layout.es.js +1 -1
  1529. package/dist/field-error-id-6ZynvsRO.js +89 -0
  1530. package/dist/field-error-id-6ZynvsRO.js.map +1 -0
  1531. package/dist/field-error-id-VimPQI_b.cjs +100 -0
  1532. package/dist/field-error-id-VimPQI_b.cjs.map +1 -0
  1533. package/dist/filter-bar-chip-DFsbUZ-V.cjs +1545 -0
  1534. package/dist/filter-bar-chip-DFsbUZ-V.cjs.map +1 -0
  1535. package/dist/filter-bar-chip-NBtfDca9.js +1420 -0
  1536. package/dist/filter-bar-chip-NBtfDca9.js.map +1 -0
  1537. package/dist/filter-bar-time-range-CEgdThCy.cjs +83 -0
  1538. package/dist/filter-bar-time-range-CEgdThCy.cjs.map +1 -0
  1539. package/dist/filter-bar-time-range-CHSMbpPd.js +60 -0
  1540. package/dist/filter-bar-time-range-CHSMbpPd.js.map +1 -0
  1541. package/dist/hooks/use-clock.cjs.js +34 -0
  1542. package/dist/hooks/use-clock.cjs.js.map +1 -0
  1543. package/dist/hooks/use-clock.d.ts +1 -0
  1544. package/dist/hooks/use-clock.es.js +33 -0
  1545. package/dist/hooks/use-clock.es.js.map +1 -0
  1546. package/dist/hooks/use-copy-to-clipboard.cjs.js +1 -1
  1547. package/dist/hooks/use-copy-to-clipboard.es.js +1 -1
  1548. package/dist/hooks/use-text-highlight.cjs.js +3 -5
  1549. package/dist/hooks/use-text-highlight.cjs.js.map +1 -1
  1550. package/dist/hooks/use-text-highlight.es.js +1 -3
  1551. package/dist/hooks/use-text-highlight.es.js.map +1 -1
  1552. package/dist/icons/ByteDanceIcon.cjs.js +37 -0
  1553. package/dist/icons/ByteDanceIcon.cjs.js.map +1 -0
  1554. package/dist/icons/ByteDanceIcon.d.ts +1 -0
  1555. package/dist/icons/ByteDanceIcon.es.js +34 -0
  1556. package/dist/icons/ByteDanceIcon.es.js.map +1 -0
  1557. package/dist/icons/CohereBrandIcon.cjs.js +34 -0
  1558. package/dist/icons/CohereBrandIcon.cjs.js.map +1 -0
  1559. package/dist/icons/CohereBrandIcon.d.ts +1 -0
  1560. package/dist/icons/CohereBrandIcon.es.js +31 -0
  1561. package/dist/icons/CohereBrandIcon.es.js.map +1 -0
  1562. package/dist/icons/ConfluenceIcon.cjs.js +18 -0
  1563. package/dist/icons/ConfluenceIcon.cjs.js.map +1 -0
  1564. package/dist/icons/ConfluenceIcon.d.ts +1 -0
  1565. package/dist/icons/ConfluenceIcon.es.js +15 -0
  1566. package/dist/icons/ConfluenceIcon.es.js.map +1 -0
  1567. package/dist/icons/FireworksIcon.cjs.js +22 -0
  1568. package/dist/icons/FireworksIcon.cjs.js.map +1 -0
  1569. package/dist/icons/FireworksIcon.d.ts +1 -0
  1570. package/dist/icons/FireworksIcon.es.js +19 -0
  1571. package/dist/icons/FireworksIcon.es.js.map +1 -0
  1572. package/dist/icons/Icon.cjs.js +1 -1
  1573. package/dist/icons/Icon.es.js +1 -1
  1574. package/dist/icons/LongCatIcon.cjs.js +22 -0
  1575. package/dist/icons/LongCatIcon.cjs.js.map +1 -0
  1576. package/dist/icons/LongCatIcon.d.ts +1 -0
  1577. package/dist/icons/LongCatIcon.es.js +19 -0
  1578. package/dist/icons/LongCatIcon.es.js.map +1 -0
  1579. package/dist/icons/MicrosoftIcon.cjs.js +34 -0
  1580. package/dist/icons/MicrosoftIcon.cjs.js.map +1 -0
  1581. package/dist/icons/MicrosoftIcon.d.ts +1 -0
  1582. package/dist/icons/MicrosoftIcon.es.js +31 -0
  1583. package/dist/icons/MicrosoftIcon.es.js.map +1 -0
  1584. package/dist/icons/MorphIcon.cjs.js +20 -0
  1585. package/dist/icons/MorphIcon.cjs.js.map +1 -0
  1586. package/dist/icons/MorphIcon.d.ts +1 -0
  1587. package/dist/icons/MorphIcon.es.js +17 -0
  1588. package/dist/icons/MorphIcon.es.js.map +1 -0
  1589. package/dist/icons/NotionIcon.cjs.js +18 -0
  1590. package/dist/icons/NotionIcon.cjs.js.map +1 -0
  1591. package/dist/icons/NotionIcon.d.ts +1 -0
  1592. package/dist/icons/NotionIcon.es.js +15 -0
  1593. package/dist/icons/NotionIcon.es.js.map +1 -0
  1594. package/dist/icons/NousResearchIcon.cjs.js +19 -0
  1595. package/dist/icons/NousResearchIcon.cjs.js.map +1 -0
  1596. package/dist/icons/NousResearchIcon.d.ts +1 -0
  1597. package/dist/icons/NousResearchIcon.es.js +16 -0
  1598. package/dist/icons/NousResearchIcon.es.js.map +1 -0
  1599. package/dist/icons/NovaIcon.cjs.js +41 -0
  1600. package/dist/icons/NovaIcon.cjs.js.map +1 -0
  1601. package/dist/icons/NovaIcon.d.ts +1 -0
  1602. package/dist/icons/NovaIcon.es.js +38 -0
  1603. package/dist/icons/NovaIcon.es.js.map +1 -0
  1604. package/dist/icons/PerplexityIcon.cjs.js +21 -0
  1605. package/dist/icons/PerplexityIcon.cjs.js.map +1 -0
  1606. package/dist/icons/PerplexityIcon.d.ts +1 -0
  1607. package/dist/icons/PerplexityIcon.es.js +18 -0
  1608. package/dist/icons/PerplexityIcon.es.js.map +1 -0
  1609. package/dist/icons/SakanaIcon.cjs.js +20 -0
  1610. package/dist/icons/SakanaIcon.cjs.js.map +1 -0
  1611. package/dist/icons/SakanaIcon.d.ts +1 -0
  1612. package/dist/icons/SakanaIcon.es.js +17 -0
  1613. package/dist/icons/SakanaIcon.es.js.map +1 -0
  1614. package/dist/icons/StepFunIcon.cjs.js +35 -0
  1615. package/dist/icons/StepFunIcon.cjs.js.map +1 -0
  1616. package/dist/icons/StepFunIcon.d.ts +1 -0
  1617. package/dist/icons/StepFunIcon.es.js +32 -0
  1618. package/dist/icons/StepFunIcon.es.js.map +1 -0
  1619. package/dist/icons/TencentIcon.cjs.js +21 -0
  1620. package/dist/icons/TencentIcon.cjs.js.map +1 -0
  1621. package/dist/icons/TencentIcon.d.ts +1 -0
  1622. package/dist/icons/TencentIcon.es.js +18 -0
  1623. package/dist/icons/TencentIcon.es.js.map +1 -0
  1624. package/dist/icons/UpstageIcon.cjs.js +36 -0
  1625. package/dist/icons/UpstageIcon.cjs.js.map +1 -0
  1626. package/dist/icons/UpstageIcon.d.ts +1 -0
  1627. package/dist/icons/UpstageIcon.es.js +33 -0
  1628. package/dist/icons/UpstageIcon.es.js.map +1 -0
  1629. package/dist/icons/ZendeskIcon.cjs.js +18 -0
  1630. package/dist/icons/ZendeskIcon.cjs.js.map +1 -0
  1631. package/dist/icons/ZendeskIcon.d.ts +1 -0
  1632. package/dist/icons/ZendeskIcon.es.js +15 -0
  1633. package/dist/icons/ZendeskIcon.es.js.map +1 -0
  1634. package/dist/input-BpnUsQSt.cjs +55 -0
  1635. package/dist/input-BpnUsQSt.cjs.map +1 -0
  1636. package/dist/input-Cyit5ZSc.js +48 -0
  1637. package/dist/input-Cyit5ZSc.js.map +1 -0
  1638. package/dist/input-group-DBCilXjT.cjs +169 -0
  1639. package/dist/input-group-DBCilXjT.cjs.map +1 -0
  1640. package/dist/input-group-NV4ZzKOk.js +120 -0
  1641. package/dist/input-group-NV4ZzKOk.js.map +1 -0
  1642. package/dist/layout/tabbed-container.cjs.js +1 -1
  1643. package/dist/layout/tabbed-container.es.js +1 -1
  1644. package/dist/lib/form/auto-form.cjs.js +1 -1
  1645. package/dist/lib/form/auto-form.es.js +1 -1
  1646. package/dist/lib/form/components/array-element-wrapper.cjs.js +4 -4
  1647. package/dist/lib/form/components/array-element-wrapper.es.js +4 -4
  1648. package/dist/lib/form/components/array-wrapper.cjs.js +2 -2
  1649. package/dist/lib/form/components/array-wrapper.es.js +2 -2
  1650. package/dist/lib/form/components/boolean-field.cjs.js +1 -1
  1651. package/dist/lib/form/components/boolean-field.es.js +1 -1
  1652. package/dist/lib/form/components/date-field.cjs.js +5 -5
  1653. package/dist/lib/form/components/date-field.es.js +5 -5
  1654. package/dist/lib/form/components/error-message.cjs.js +1 -1
  1655. package/dist/lib/form/components/error-message.es.js +1 -1
  1656. package/dist/lib/form/components/form-submit-row.cjs.js +2 -2
  1657. package/dist/lib/form/components/form-submit-row.es.js +2 -2
  1658. package/dist/lib/form/components/number-field.cjs.js +1 -1
  1659. package/dist/lib/form/components/number-field.es.js +1 -1
  1660. package/dist/lib/form/components/object-wrapper.cjs.js +3 -3
  1661. package/dist/lib/form/components/object-wrapper.es.js +3 -3
  1662. package/dist/lib/form/components/record-field.cjs.js +2 -2
  1663. package/dist/lib/form/components/record-field.es.js +2 -2
  1664. package/dist/lib/form/components/select-field.cjs.js +1 -1
  1665. package/dist/lib/form/components/select-field.es.js +1 -1
  1666. package/dist/lib/form/components/string-field.cjs.js +1 -1
  1667. package/dist/lib/form/components/string-field.es.js +1 -1
  1668. package/dist/lib/form/components/submit-button.cjs.js +1 -1
  1669. package/dist/lib/form/components/submit-button.es.js +1 -1
  1670. package/dist/lib/form/components/union-field.cjs.js +1 -1
  1671. package/dist/lib/form/components/union-field.es.js +1 -1
  1672. package/dist/lib/form/dynamic-form.cjs.js +2 -2
  1673. package/dist/lib/form/dynamic-form.es.js +2 -2
  1674. package/dist/list-search-DUcIMJTk.js +45 -0
  1675. package/dist/list-search-DUcIMJTk.js.map +1 -0
  1676. package/dist/list-search-yF02rvZt.cjs +50 -0
  1677. package/dist/list-search-yF02rvZt.cjs.map +1 -0
  1678. package/dist/new/layout/page-header.cjs.js +1 -1
  1679. package/dist/new/layout/page-header.es.js +1 -1
  1680. package/dist/new/settings.cjs.js +1 -1
  1681. package/dist/new/settings.es.js +1 -1
  1682. package/dist/observability-saved-views-UM8HBJ6J.cjs +304 -0
  1683. package/dist/observability-saved-views-UM8HBJ6J.cjs.map +1 -0
  1684. package/dist/observability-saved-views-lLWk1w0g.js +299 -0
  1685. package/dist/observability-saved-views-lLWk1w0g.js.map +1 -0
  1686. package/dist/page-header-Maytcmgh.js +120 -0
  1687. package/dist/page-header-Maytcmgh.js.map +1 -0
  1688. package/dist/page-header-pZCts_WC.cjs +125 -0
  1689. package/dist/page-header-pZCts_WC.cjs.map +1 -0
  1690. package/dist/popover-BpMi52Tb.js +94 -0
  1691. package/dist/popover-BpMi52Tb.js.map +1 -0
  1692. package/dist/popover-D9AfJmla.cjs +119 -0
  1693. package/dist/popover-D9AfJmla.cjs.map +1 -0
  1694. package/dist/primitives/chart-frame.cjs.js +2 -2
  1695. package/dist/primitives/chart-frame.es.js +2 -2
  1696. package/dist/primitives/chart-time-tick.cjs.js +2 -2
  1697. package/dist/primitives/chart-time-tick.es.js +2 -2
  1698. package/dist/primitives/charts/drag-selection.cjs.js +1 -1
  1699. package/dist/primitives/charts/drag-selection.es.js +1 -1
  1700. package/dist/primitives/menu-item.cjs.js +2 -2
  1701. package/dist/primitives/menu-item.es.js +2 -2
  1702. package/dist/primitives/menu-scroll-area.cjs.js +1 -1
  1703. package/dist/primitives/menu-scroll-area.es.js +1 -1
  1704. package/dist/primitives/resize-handle-indicator.cjs.js +1 -1
  1705. package/dist/primitives/resize-handle-indicator.es.js +1 -1
  1706. package/dist/primitives/trigger-button.cjs.js +2 -2
  1707. package/dist/primitives/trigger-button.es.js +2 -2
  1708. package/dist/property-filter-applied-BBVmWRsC.js +344 -0
  1709. package/dist/property-filter-applied-BBVmWRsC.js.map +1 -0
  1710. package/dist/property-filter-applied-iYDdM1hb.cjs +361 -0
  1711. package/dist/property-filter-applied-iYDdM1hb.cjs.map +1 -0
  1712. package/dist/resize/collapsible-panel.cjs.js +4 -4
  1713. package/dist/resize/collapsible-panel.cjs.js.map +1 -1
  1714. package/dist/resize/collapsible-panel.es.js +4 -4
  1715. package/dist/resize/collapsible-panel.es.js.map +1 -1
  1716. package/dist/resize/panel-drawer.cjs.js +3 -3
  1717. package/dist/resize/panel-drawer.es.js +3 -3
  1718. package/dist/resize/panel-icon-button.cjs.js +1 -2
  1719. package/dist/resize/panel-icon-button.cjs.js.map +1 -1
  1720. package/dist/resize/panel-icon-button.es.js +1 -1
  1721. package/dist/resize/separator.cjs.js +1 -1
  1722. package/dist/resize/separator.es.js +1 -1
  1723. package/dist/scroll-area-9-S7wfSs.js +227 -0
  1724. package/dist/scroll-area-9-S7wfSs.js.map +1 -0
  1725. package/dist/scroll-area-BU_TorPW.cjs +246 -0
  1726. package/dist/scroll-area-BU_TorPW.cjs.map +1 -0
  1727. package/dist/select-CeukeSn_.cjs +176 -0
  1728. package/dist/select-CeukeSn_.cjs.map +1 -0
  1729. package/dist/select-dNX9If-s.js +133 -0
  1730. package/dist/select-dNX9If-s.js.map +1 -0
  1731. package/dist/settings-BEw_bg12.js +106 -0
  1732. package/dist/settings-BEw_bg12.js.map +1 -0
  1733. package/dist/settings-Bminohri.cjs +135 -0
  1734. package/dist/settings-Bminohri.cjs.map +1 -0
  1735. package/dist/span-payload-primitives-CL3hlirm.cjs +217 -0
  1736. package/dist/span-payload-primitives-CL3hlirm.cjs.map +1 -0
  1737. package/dist/span-payload-primitives-KxqoXspn.js +164 -0
  1738. package/dist/span-payload-primitives-KxqoXspn.js.map +1 -0
  1739. package/dist/spinner-B9ykw74u.js +63 -0
  1740. package/dist/spinner-B9ykw74u.js.map +1 -0
  1741. package/dist/spinner-oS6q4pwx.cjs +68 -0
  1742. package/dist/spinner-oS6q4pwx.cjs.map +1 -0
  1743. package/dist/src/domains/chat/activity/index.d.ts +1 -3
  1744. package/dist/src/domains/chat/activity/model/activity-members.d.ts +1 -2
  1745. package/dist/src/domains/chat/activity/model/activity-words.d.ts +1 -2
  1746. package/dist/src/domains/chat/context/chat-context.d.ts +9 -0
  1747. package/dist/src/domains/chat/tools/badges/knowledge-tool-badge.d.ts +2 -1
  1748. package/dist/src/domains/chat/tools/badges/mcp-task-chip.d.ts +1 -1
  1749. package/dist/src/domains/chat/tools/badges/workspace-data-parts.d.ts +6 -0
  1750. package/dist/src/domains/chat/tools/tool-card-kind.d.ts +12 -2
  1751. package/dist/src/domains/dashboards/components/connected-widget.d.ts +9 -0
  1752. package/dist/src/domains/dashboards/components/dashboard-grid.d.ts +4 -1
  1753. package/dist/src/domains/dashboards/components/dashboard-renderer.d.ts +30 -3
  1754. package/dist/src/domains/dashboards/components/stateless-widget.d.ts +40 -0
  1755. package/dist/src/domains/dashboards/components/view-gate.d.ts +2 -10
  1756. package/dist/src/domains/dashboards/components/widget-controls.d.ts +27 -0
  1757. package/dist/src/domains/dashboards/components/widget-error.d.ts +7 -2
  1758. package/dist/src/domains/dashboards/hooks/use-dashboard-environment.d.ts +8 -0
  1759. package/dist/src/domains/dashboards/hooks/use-dashboard-requests.d.ts +11 -1
  1760. package/dist/src/domains/dashboards/hooks/use-widget-views.d.ts +8 -2
  1761. package/dist/src/domains/dashboards/index.d.ts +14 -6
  1762. package/dist/src/domains/dashboards/kinds/kpis/kpis-plan.d.ts +355 -0
  1763. package/dist/src/domains/dashboards/kinds/kpis/kpis-widget.d.ts +1 -1
  1764. package/dist/src/domains/dashboards/kinds/scores/scores-plan.d.ts +358 -0
  1765. package/dist/src/domains/dashboards/kinds/scores/scores-widget.d.ts +1 -1
  1766. package/dist/src/domains/dashboards/kinds/table/table-cells.d.ts +6 -2
  1767. package/dist/src/domains/dashboards/kinds/table/table-columns.d.ts +2 -1
  1768. package/dist/src/domains/dashboards/kinds/table/table-plan.d.ts +18 -0
  1769. package/dist/src/domains/dashboards/kinds/table/table-tabs.d.ts +1 -1
  1770. package/dist/src/domains/dashboards/kinds/table/table-view.d.ts +1 -0
  1771. package/dist/src/domains/dashboards/kinds/timeseries/timeseries-plan.d.ts +355 -0
  1772. package/dist/src/domains/dashboards/lib/alert-actions.d.ts +36 -0
  1773. package/dist/src/domains/dashboards/lib/chrome.d.ts +5 -2
  1774. package/dist/src/domains/dashboards/lib/gate.d.ts +65 -0
  1775. package/dist/src/domains/dashboards/lib/pin-actions.d.ts +7 -0
  1776. package/dist/src/domains/dashboards/lib/plan-widget.d.ts +390 -0
  1777. package/dist/src/domains/dashboards/lib/requests.d.ts +22 -0
  1778. package/dist/src/domains/dashboards/lib/scores.d.ts +11 -1
  1779. package/dist/src/domains/dashboards/lib/timeseries.d.ts +6 -1
  1780. package/dist/src/domains/dashboards/lib/values.d.ts +5 -0
  1781. package/dist/src/domains/dashboards/widget-kind.d.ts +118 -2
  1782. package/dist/src/domains/knowledge/components/KnowledgePageDetail.d.ts +7 -1
  1783. package/dist/src/domains/knowledge/components/KnowledgePageExplorer.d.ts +4 -1
  1784. package/dist/src/domains/knowledge/components/KnowledgePageGraph.d.ts +3 -0
  1785. package/dist/src/domains/knowledge/components/KnowledgeSourceIcon.d.ts +5 -0
  1786. package/dist/src/domains/knowledge/components/KnowledgeTooltip.d.ts +5 -0
  1787. package/dist/src/domains/knowledge/lib/fitViewport.d.ts +9 -2
  1788. package/dist/src/domains/knowledge/lib/pageAddress.d.ts +10 -0
  1789. package/dist/src/domains/knowledge/lib/pageRefs.d.ts +12 -1
  1790. package/dist/src/domains/knowledge/lib/pagesByRefContext.d.ts +6 -0
  1791. package/dist/src/domains/llm/models-dev-logo-slugs.d.ts +1 -0
  1792. package/dist/src/domains/llm/provider-logo-monogram.d.ts +8 -0
  1793. package/dist/src/domains/llm/provider-logo.d.ts +0 -4
  1794. package/dist/src/domains/mcps/components/mcp-app-tool-result.d.ts +4 -1
  1795. package/dist/src/domains/mcps/components/mcp-app-viewer.d.ts +12 -2
  1796. package/dist/src/domains/mcps/context/mcp-app-host-context-value.d.ts +23 -0
  1797. package/dist/src/domains/mcps/context/mcp-app-host-context.d.ts +7 -0
  1798. package/dist/src/domains/mcps/hooks/use-mcp-app-tool-call.d.ts +5 -0
  1799. package/dist/src/domains/mcps/index.d.ts +3 -0
  1800. package/dist/src/domains/metrics/components/chart-card.d.ts +6 -2
  1801. package/dist/src/domains/metrics/components/kpi-card.d.ts +2 -1
  1802. package/dist/src/domains/metrics/lib/index.d.ts +1 -0
  1803. package/dist/src/domains/metrics/lib/series-colors.d.ts +39 -0
  1804. package/dist/src/domains/traces/components/feedback-options.d.ts +8 -0
  1805. package/dist/src/domains/traces/components/feedback-thread.d.ts +2 -1
  1806. package/dist/src/domains/traces/components/span-feedback-tab.d.ts +4 -2
  1807. package/dist/src/domains/traces/components/span-token-usage.utils.d.ts +1 -1
  1808. package/dist/src/domains/traces/components/thread-view-by-trace.d.ts +4 -1
  1809. package/dist/src/domains/traces/components/trace-feedback-tab.d.ts +4 -2
  1810. package/dist/src/domains/traces/components/trace-span-panel.d.ts +3 -1
  1811. package/dist/src/domains/traces/components/trace-thread-panel.d.ts +3 -1
  1812. package/dist/src/domains/traces/components/traces-explorer/index.d.ts +1 -0
  1813. package/dist/src/domains/traces/components/traces-explorer/traces-explorer-context.d.ts +2 -0
  1814. package/dist/src/domains/traces/components/traces-explorer/traces-explorer-root.d.ts +4 -1
  1815. package/dist/src/domains/workflows/components/workflow-combobox.d.ts +2 -1
  1816. package/dist/src/ds/components/AgentIndicator/paint.d.ts +6 -2
  1817. package/dist/src/ds/components/AgentIndicator/poses/coordination.d.ts +7 -0
  1818. package/dist/src/ds/components/AgentIndicator/poses/documents.d.ts +2 -0
  1819. package/dist/src/ds/components/AgentIndicator/poses/files.d.ts +5 -0
  1820. package/dist/src/ds/components/AgentIndicator/poses/interface.d.ts +8 -0
  1821. package/dist/src/ds/components/AgentIndicator/poses/knowledge-actions.d.ts +6 -0
  1822. package/dist/src/ds/components/AgentIndicator/poses/knowledge.d.ts +2 -0
  1823. package/dist/src/ds/components/AgentIndicator/poses/skills.d.ts +4 -0
  1824. package/dist/src/ds/components/AgentIndicator/poses/terminal.d.ts +4 -0
  1825. package/dist/src/ds/components/AgentIndicator/poses/thinking.d.ts +2 -0
  1826. package/dist/src/ds/components/AgentIndicator/poses.d.ts +1 -1
  1827. package/dist/src/ds/components/AgentIndicator/shapes.d.ts +7 -1
  1828. package/dist/src/ds/components/Breadcrumb/Breadcrumb.d.ts +2 -0
  1829. package/dist/src/ds/components/Breadcrumb/crumb-switcher.d.ts +1 -0
  1830. package/dist/src/ds/components/ChatShell/chat-shell-context.d.ts +9 -0
  1831. package/dist/src/ds/components/ChatShell/chat-shell.d.ts +5 -0
  1832. package/dist/src/ds/components/ChatShell/index.d.ts +2 -1
  1833. package/dist/src/ds/components/Combobox/combobox-parts.d.ts +2 -1
  1834. package/dist/src/ds/components/Combobox/combobox-styles.d.ts +9 -4
  1835. package/dist/src/ds/components/Combobox/combobox.d.ts +4 -2
  1836. package/dist/src/ds/components/CommandPalette/command-palette.d.ts +1 -1
  1837. package/dist/src/ds/components/DateTimePicker/date-picker.d.ts +6 -1
  1838. package/dist/src/ds/components/DateTimePicker/index.d.ts +0 -1
  1839. package/dist/src/ds/components/DateTimeRangePicker/custom-range-editor.d.ts +3 -2
  1840. package/dist/src/ds/components/DropdownMenu/dropdown-menu.d.ts +3 -0
  1841. package/dist/src/ds/components/Message/message-timestamp.d.ts +1 -0
  1842. package/dist/src/ds/components/MessageScroller/message-scroller-context.d.ts +3 -2
  1843. package/dist/src/ds/components/MessageScroller/message-scroller-geometry.d.ts +1 -1
  1844. package/dist/src/ds/components/MessageScroller/message-scroller-hooks.d.ts +2 -8
  1845. package/dist/src/ds/components/MessageScroller/message-scroller-visibility-store.d.ts +8 -0
  1846. package/dist/src/ds/components/Metadata/index.d.ts +2 -0
  1847. package/dist/src/ds/components/Metadata/metadata.d.ts +10 -0
  1848. package/dist/src/ds/components/MetricsCard/index.d.ts +1 -0
  1849. package/dist/src/ds/components/MetricsCard/metrics-card-drag-handle.d.ts +12 -0
  1850. package/dist/src/ds/components/MetricsCard/metrics-card.d.ts +2 -0
  1851. package/dist/src/ds/components/Steps/index.d.ts +1 -0
  1852. package/dist/src/ds/components/Steps/step.d.ts +13 -0
  1853. package/dist/src/ds/components/Steps/steps-context.d.ts +2 -0
  1854. package/dist/src/ds/components/Steps/steps-root.d.ts +18 -0
  1855. package/dist/src/ds/components/Steps/steps.d.ts +7 -0
  1856. package/dist/src/ds/components/Tree/tree-label.d.ts +1 -1
  1857. package/dist/src/ds/components/ai/annotations/annotatable-selection.d.ts +25 -0
  1858. package/dist/src/ds/components/ai/annotations/annotation-comment-card.d.ts +11 -0
  1859. package/dist/src/ds/components/ai/annotations/annotation-comment-popover.d.ts +15 -0
  1860. package/dist/src/ds/components/ai/annotations/annotation-highlights.d.ts +1 -0
  1861. package/dist/src/ds/components/ai/annotations/annotation-marker.d.ts +13 -0
  1862. package/dist/src/ds/components/ai/annotations/annotation-markers.d.ts +9 -0
  1863. package/dist/src/ds/components/ai/annotations/annotation-number.d.ts +4 -0
  1864. package/dist/src/ds/components/ai/annotations/annotation-selection-toolbar.d.ts +7 -0
  1865. package/dist/src/ds/components/ai/annotations/chat-annotations.d.ts +27 -0
  1866. package/dist/src/ds/components/ai/annotations/composer-annotation-list.d.ts +6 -0
  1867. package/dist/src/ds/components/ai/annotations/composer-annotations.d.ts +5 -0
  1868. package/dist/src/ds/components/ai/annotations/format-annotated-message.d.ts +11 -0
  1869. package/dist/src/ds/components/ai/annotations/index.d.ts +5 -0
  1870. package/dist/src/ds/components/ai/annotations/transcript-annotations.d.ts +6 -0
  1871. package/dist/src/ds/components/ai/annotations/use-annotation-placement.d.ts +11 -0
  1872. package/dist/src/ds/components/ai/annotations/use-annotation-selection.d.ts +12 -0
  1873. package/dist/src/ds/components/ai/tool-call/index.d.ts +3 -0
  1874. package/dist/src/ds/components/ai/tool-call/tool-call-body.d.ts +6 -0
  1875. package/dist/src/ds/components/ai/tool-call/tool-call-exit-status.d.ts +11 -0
  1876. package/dist/src/ds/components/ai/tool-call/tool-call-output.d.ts +1 -2
  1877. package/dist/src/ds/components/ai/tool-call/tool-call-view.d.ts +17 -0
  1878. package/dist/src/ds/components/ai/tool-call/tool-phrases.d.ts +127 -138
  1879. package/dist/src/ds/components/ai/tool-call/tool-presentation.d.ts +2 -0
  1880. package/dist/src/ds/components/ai/tool-call/tool-styles.d.ts +10 -0
  1881. package/dist/src/ds/components/ai/transcript-divider/transcript-divider.d.ts +2 -2
  1882. package/dist/src/ds/icons/ByteDanceIcon.d.ts +2 -0
  1883. package/dist/src/ds/icons/CohereBrandIcon.d.ts +2 -0
  1884. package/dist/src/ds/icons/ConfluenceIcon.d.ts +2 -0
  1885. package/dist/src/ds/icons/FireworksIcon.d.ts +2 -0
  1886. package/dist/src/ds/icons/LongCatIcon.d.ts +2 -0
  1887. package/dist/src/ds/icons/MicrosoftIcon.d.ts +2 -0
  1888. package/dist/src/ds/icons/MorphIcon.d.ts +2 -0
  1889. package/dist/src/ds/icons/NotionIcon.d.ts +2 -0
  1890. package/dist/src/ds/icons/NousResearchIcon.d.ts +2 -0
  1891. package/dist/src/ds/icons/NovaIcon.d.ts +2 -0
  1892. package/dist/src/ds/icons/PerplexityIcon.d.ts +2 -0
  1893. package/dist/src/ds/icons/SakanaIcon.d.ts +2 -0
  1894. package/dist/src/ds/icons/StepFunIcon.d.ts +2 -0
  1895. package/dist/src/ds/icons/TencentIcon.d.ts +2 -0
  1896. package/dist/src/ds/icons/UpstageIcon.d.ts +2 -0
  1897. package/dist/src/ds/icons/ZendeskIcon.d.ts +2 -0
  1898. package/dist/src/ds/icons/index.d.ts +16 -0
  1899. package/dist/src/ds/tokens/colors.d.ts +12 -0
  1900. package/dist/src/ee/signals/sankey-signals-data.d.ts +2 -2
  1901. package/dist/src/ee/signals/snapshot-summary.d.ts +7 -0
  1902. package/dist/src/ee/signals/snapshot-timeline.d.ts +2 -1
  1903. package/dist/src/hooks/use-clock.d.ts +5 -0
  1904. package/dist/src/lib/resize/collapsible-panel.d.ts +5 -3
  1905. package/dist/src/lib/string.d.ts +1 -0
  1906. package/dist/src/utils/mcp-app-context.d.ts +6 -0
  1907. package/dist/string-CA5M0mj_.js +19 -0
  1908. package/dist/string-CA5M0mj_.js.map +1 -0
  1909. package/dist/string-EyTazW-F.cjs +42 -0
  1910. package/dist/string-EyTazW-F.cjs.map +1 -0
  1911. package/dist/style.css +400 -179
  1912. package/dist/tabbed-container-9yvqEQON.js +125 -0
  1913. package/dist/tabbed-container-9yvqEQON.js.map +1 -0
  1914. package/dist/tabbed-container-Bmk5dgJ4.cjs +130 -0
  1915. package/dist/tabbed-container-Bmk5dgJ4.cjs.map +1 -0
  1916. package/dist/tabs-content-BGkPZ5EQ.js +29 -0
  1917. package/dist/tabs-content-BGkPZ5EQ.js.map +1 -0
  1918. package/dist/tabs-content-D_ic2ZqI.cjs +34 -0
  1919. package/dist/tabs-content-D_ic2ZqI.cjs.map +1 -0
  1920. package/dist/tabs-tab-CJVS0WED.js +349 -0
  1921. package/dist/tabs-tab-CJVS0WED.js.map +1 -0
  1922. package/dist/tabs-tab-Dj2huH5T.cjs +372 -0
  1923. package/dist/tabs-tab-Dj2huH5T.cjs.map +1 -0
  1924. package/dist/toast-api-Cak5N8pT.js +50 -0
  1925. package/dist/toast-api-Cak5N8pT.js.map +1 -0
  1926. package/dist/toast-api-DDcGCbIw.cjs +55 -0
  1927. package/dist/toast-api-DDcGCbIw.cjs.map +1 -0
  1928. package/dist/tokens.cjs.js +12 -0
  1929. package/dist/tokens.cjs.js.map +1 -1
  1930. package/dist/tokens.es.js +12 -0
  1931. package/dist/tokens.es.js.map +1 -1
  1932. package/dist/tool-approval-C4WNL8VD.cjs +115 -0
  1933. package/dist/tool-approval-C4WNL8VD.cjs.map +1 -0
  1934. package/dist/tool-approval-ZfL3-Vvi.js +98 -0
  1935. package/dist/tool-approval-ZfL3-Vvi.js.map +1 -0
  1936. package/dist/tool-call-BLzYTI-x.js +505 -0
  1937. package/dist/tool-call-BLzYTI-x.js.map +1 -0
  1938. package/dist/tool-call-C4TBpJ6Y.cjs +600 -0
  1939. package/dist/tool-call-C4TBpJ6Y.cjs.map +1 -0
  1940. package/dist/tool-card-BjOV2sXi.js +412 -0
  1941. package/dist/tool-card-BjOV2sXi.js.map +1 -0
  1942. package/dist/tool-card-CO_3C_Bn.cjs +438 -0
  1943. package/dist/tool-card-CO_3C_Bn.cjs.map +1 -0
  1944. package/dist/tool-presentation-C2bYQ7gB.js +874 -0
  1945. package/dist/tool-presentation-C2bYQ7gB.js.map +1 -0
  1946. package/dist/tool-presentation-DPp9h-n2.cjs +915 -0
  1947. package/dist/tool-presentation-DPp9h-n2.cjs.map +1 -0
  1948. package/dist/tooltip-BsExuMO8.cjs +112 -0
  1949. package/dist/tooltip-BsExuMO8.cjs.map +1 -0
  1950. package/dist/tooltip-DJcze2VZ.js +87 -0
  1951. package/dist/tooltip-DJcze2VZ.js.map +1 -0
  1952. package/dist/transcript-divider-DM2HkdeO.js +35 -0
  1953. package/dist/transcript-divider-DM2HkdeO.js.map +1 -0
  1954. package/dist/transcript-divider-DroC3feH.cjs +40 -0
  1955. package/dist/transcript-divider-DroC3feH.cjs.map +1 -0
  1956. package/dist/types-BwdKiX24.js +1909 -0
  1957. package/dist/types-BwdKiX24.js.map +1 -0
  1958. package/dist/types-KjLUPShK.cjs +1922 -0
  1959. package/dist/types-KjLUPShK.cjs.map +1 -0
  1960. package/dist/use-workflow-graph-runtime-B_dKpjUe.js +284 -0
  1961. package/dist/use-workflow-graph-runtime-B_dKpjUe.js.map +1 -0
  1962. package/dist/use-workflow-graph-runtime-D_PpEIQ5.cjs +307 -0
  1963. package/dist/use-workflow-graph-runtime-D_PpEIQ5.cjs.map +1 -0
  1964. package/dist/utils/mcp-app-context.cjs.js +17 -0
  1965. package/dist/utils/mcp-app-context.cjs.js.map +1 -0
  1966. package/dist/utils/mcp-app-context.d.ts +1 -0
  1967. package/dist/utils/mcp-app-context.es.js +15 -0
  1968. package/dist/utils/mcp-app-context.es.js.map +1 -0
  1969. package/dist/utils/string.cjs.js +2 -1
  1970. package/dist/utils/string.es.js +1 -1
  1971. package/dist/utils/toast.cjs.js +1 -1
  1972. package/dist/utils/toast.es.js +1 -1
  1973. package/oxlint/copy-rules.d.ts +4 -0
  1974. package/oxlint/copy-rules.js +29 -0
  1975. package/oxlint/copy-sources.js +223 -0
  1976. package/oxlint/index.d.ts +5 -0
  1977. package/oxlint/index.js +17 -0
  1978. package/package.json +13 -10
  1979. package/theme/data-viz.css +33 -0
  1980. package/dist/AgentIndicator-Bs2S8AWJ.js +0 -847
  1981. package/dist/AgentIndicator-Bs2S8AWJ.js.map +0 -1
  1982. package/dist/AgentIndicator-to30W73z.cjs +0 -864
  1983. package/dist/AgentIndicator-to30W73z.cjs.map +0 -1
  1984. package/dist/AttachmentCard-CciBqu7E.cjs +0 -66
  1985. package/dist/AttachmentCard-CciBqu7E.cjs.map +0 -1
  1986. package/dist/AttachmentCard-DbGp7TYl.js +0 -61
  1987. package/dist/AttachmentCard-DbGp7TYl.js.map +0 -1
  1988. package/dist/Avatar-Dj8aP7OI.js +0 -146
  1989. package/dist/Avatar-Dj8aP7OI.js.map +0 -1
  1990. package/dist/Avatar-Iiqjad9K.cjs +0 -151
  1991. package/dist/Avatar-Iiqjad9K.cjs.map +0 -1
  1992. package/dist/Badge-DZ6r6bcw.cjs +0 -154
  1993. package/dist/Badge-DZ6r6bcw.cjs.map +0 -1
  1994. package/dist/Badge-aVu5iGAF.js +0 -149
  1995. package/dist/Badge-aVu5iGAF.js.map +0 -1
  1996. package/dist/Button-CLXTbAY8.js +0 -233
  1997. package/dist/Button-CLXTbAY8.js.map +0 -1
  1998. package/dist/Button-DLcMcuUL.cjs +0 -276
  1999. package/dist/Button-DLcMcuUL.cjs.map +0 -1
  2000. package/dist/Card-C6iEBgVq.cjs +0 -134
  2001. package/dist/Card-C6iEBgVq.cjs.map +0 -1
  2002. package/dist/Card-LU1aWO7U.js +0 -91
  2003. package/dist/Card-LU1aWO7U.js.map +0 -1
  2004. package/dist/CodeEditor-CLzs0yVc.cjs +0 -515
  2005. package/dist/CodeEditor-CLzs0yVc.cjs.map +0 -1
  2006. package/dist/CodeEditor-COnz9c6B.js +0 -466
  2007. package/dist/CodeEditor-COnz9c6B.js.map +0 -1
  2008. package/dist/Comment-0n98b_f_.js +0 -317
  2009. package/dist/Comment-0n98b_f_.js.map +0 -1
  2010. package/dist/Comment-Cg0f7eLa.cjs +0 -412
  2011. package/dist/Comment-Cg0f7eLa.cjs.map +0 -1
  2012. package/dist/Composer-BcueJvdX.cjs +0 -441
  2013. package/dist/Composer-BcueJvdX.cjs.map +0 -1
  2014. package/dist/Composer-D1gF-0jZ.js +0 -352
  2015. package/dist/Composer-D1gF-0jZ.js.map +0 -1
  2016. package/dist/DataCodeSection-CFxXsQWH.cjs +0 -236
  2017. package/dist/DataCodeSection-CFxXsQWH.cjs.map +0 -1
  2018. package/dist/DataCodeSection-PY9XEg2C.js +0 -231
  2019. package/dist/DataCodeSection-PY9XEg2C.js.map +0 -1
  2020. package/dist/DataDetailsPanel-CohEKPm4.js +0 -180
  2021. package/dist/DataDetailsPanel-CohEKPm4.js.map +0 -1
  2022. package/dist/DataDetailsPanel-DiyjEXqK.cjs +0 -185
  2023. package/dist/DataDetailsPanel-DiyjEXqK.cjs.map +0 -1
  2024. package/dist/DataKeysAndValues-DsH6AbAo.cjs +0 -128
  2025. package/dist/DataKeysAndValues-DsH6AbAo.cjs.map +0 -1
  2026. package/dist/DataKeysAndValues-PwOmGxyp.js +0 -123
  2027. package/dist/DataKeysAndValues-PwOmGxyp.js.map +0 -1
  2028. package/dist/DataList-CUhRQAv6.js +0 -408
  2029. package/dist/DataList-CUhRQAv6.js.map +0 -1
  2030. package/dist/DataList-Cj0mfk19.cjs +0 -431
  2031. package/dist/DataList-Cj0mfk19.cjs.map +0 -1
  2032. package/dist/DataPanel-Coc9h35I.cjs +0 -298
  2033. package/dist/DataPanel-Coc9h35I.cjs.map +0 -1
  2034. package/dist/DataPanel-IgB9D5PO.js +0 -292
  2035. package/dist/DataPanel-IgB9D5PO.js.map +0 -1
  2036. package/dist/Dialog-BvWF9HE-.cjs +0 -424
  2037. package/dist/Dialog-BvWF9HE-.cjs.map +0 -1
  2038. package/dist/Dialog-DaWtxwd9.js +0 -334
  2039. package/dist/Dialog-DaWtxwd9.js.map +0 -1
  2040. package/dist/EmptyState-DxDHlYqD.cjs +0 -1524
  2041. package/dist/EmptyState-DxDHlYqD.cjs.map +0 -1
  2042. package/dist/EmptyState-P-Gy898T.js +0 -1511
  2043. package/dist/EmptyState-P-Gy898T.js.map +0 -1
  2044. package/dist/ErrorBoundary-B5GjmA6V.cjs +0 -138
  2045. package/dist/ErrorBoundary-B5GjmA6V.cjs.map +0 -1
  2046. package/dist/ErrorBoundary-Cat3KU86.js +0 -131
  2047. package/dist/ErrorBoundary-Cat3KU86.js.map +0 -1
  2048. package/dist/FilterBar-BSP2UTjc.cjs +0 -903
  2049. package/dist/FilterBar-BSP2UTjc.cjs.map +0 -1
  2050. package/dist/FilterBar-PSQ1OwqH.js +0 -862
  2051. package/dist/FilterBar-PSQ1OwqH.js.map +0 -1
  2052. package/dist/LogsDataList-BI2C5OJz.js +0 -96
  2053. package/dist/LogsDataList-BI2C5OJz.js.map +0 -1
  2054. package/dist/LogsDataList-CCIfUPGo.cjs +0 -101
  2055. package/dist/LogsDataList-CCIfUPGo.cjs.map +0 -1
  2056. package/dist/MarkdownRenderer-CI30RqdB.js +0 -481
  2057. package/dist/MarkdownRenderer-CI30RqdB.js.map +0 -1
  2058. package/dist/MarkdownRenderer-y65WGBhC.cjs +0 -490
  2059. package/dist/MarkdownRenderer-y65WGBhC.cjs.map +0 -1
  2060. package/dist/Message-CWzi5F_Q.js +0 -76
  2061. package/dist/Message-CWzi5F_Q.js.map +0 -1
  2062. package/dist/Message-jj56lxNL.cjs +0 -105
  2063. package/dist/Message-jj56lxNL.cjs.map +0 -1
  2064. package/dist/MessageScroller-CGsfTd1Z.cjs +0 -952
  2065. package/dist/MessageScroller-CGsfTd1Z.cjs.map +0 -1
  2066. package/dist/MessageScroller-DvaKlm4O.js +0 -879
  2067. package/dist/MessageScroller-DvaKlm4O.js.map +0 -1
  2068. package/dist/MetricsCard-BEwiS7Pe.cjs +0 -216
  2069. package/dist/MetricsCard-BEwiS7Pe.cjs.map +0 -1
  2070. package/dist/MetricsCard-ua6C6b8a.js +0 -211
  2071. package/dist/MetricsCard-ua6C6b8a.js.map +0 -1
  2072. package/dist/MetricsKpiCard-By_-sagx.cjs +0 -221
  2073. package/dist/MetricsKpiCard-By_-sagx.cjs.map +0 -1
  2074. package/dist/MetricsKpiCard-OHbAElTl.js +0 -216
  2075. package/dist/MetricsKpiCard-OHbAElTl.js.map +0 -1
  2076. package/dist/MetricsLineChart-4SwxBbQx.js +0 -262
  2077. package/dist/MetricsLineChart-4SwxBbQx.js.map +0 -1
  2078. package/dist/MetricsLineChart-tZxsauau.cjs +0 -279
  2079. package/dist/MetricsLineChart-tZxsauau.cjs.map +0 -1
  2080. package/dist/MetricsStackedBarChart-CDLE76IB.cjs +0 -313
  2081. package/dist/MetricsStackedBarChart-CDLE76IB.cjs.map +0 -1
  2082. package/dist/MetricsStackedBarChart-D2QyS4-z.js +0 -308
  2083. package/dist/MetricsStackedBarChart-D2QyS4-z.js.map +0 -1
  2084. package/dist/MetricsTable-BSl81oNe.cjs +0 -332
  2085. package/dist/MetricsTable-BSl81oNe.cjs.map +0 -1
  2086. package/dist/MetricsTable-DID6LRoP.js +0 -327
  2087. package/dist/MetricsTable-DID6LRoP.js.map +0 -1
  2088. package/dist/Notice-C-8oOZZF.js +0 -112
  2089. package/dist/Notice-C-8oOZZF.js.map +0 -1
  2090. package/dist/Notice-JZ7SW7q6.cjs +0 -117
  2091. package/dist/Notice-JZ7SW7q6.cjs.map +0 -1
  2092. package/dist/PageLayout-CyM_Op3c.js +0 -49
  2093. package/dist/PageLayout-CyM_Op3c.js.map +0 -1
  2094. package/dist/PageLayout-DFRzcnkf.cjs +0 -54
  2095. package/dist/PageLayout-DFRzcnkf.cjs.map +0 -1
  2096. package/dist/SankeyChart-DHeJ45KN.cjs +0 -921
  2097. package/dist/SankeyChart-DHeJ45KN.cjs.map +0 -1
  2098. package/dist/SankeyChart-E68mYEs2.js +0 -856
  2099. package/dist/SankeyChart-E68mYEs2.js.map +0 -1
  2100. package/dist/Section-CWFQ8jNS.js +0 -113
  2101. package/dist/Section-CWFQ8jNS.js.map +0 -1
  2102. package/dist/Section-CyGQZR7U.cjs +0 -130
  2103. package/dist/Section-CyGQZR7U.cjs.map +0 -1
  2104. package/dist/ShareBar-3Z5np-NY.cjs +0 -456
  2105. package/dist/ShareBar-3Z5np-NY.cjs.map +0 -1
  2106. package/dist/ShareBar-D6dWWl4C.js +0 -451
  2107. package/dist/ShareBar-D6dWWl4C.js.map +0 -1
  2108. package/dist/Tree-BplQcY8u.cjs +0 -444
  2109. package/dist/Tree-BplQcY8u.cjs.map +0 -1
  2110. package/dist/Tree-CoLkeBCL.js +0 -437
  2111. package/dist/Tree-CoLkeBCL.js.map +0 -1
  2112. package/dist/Txt-BM6TVV_c.js +0 -21
  2113. package/dist/Txt-BM6TVV_c.js.map +0 -1
  2114. package/dist/Txt-BnoSqxKE.cjs +0 -26
  2115. package/dist/Txt-BnoSqxKE.cjs.map +0 -1
  2116. package/dist/Workflow-C3SlEdP-.js +0 -1315
  2117. package/dist/Workflow-C3SlEdP-.js.map +0 -1
  2118. package/dist/Workflow-DSWQ-ROz.cjs +0 -1466
  2119. package/dist/Workflow-DSWQ-ROz.cjs.map +0 -1
  2120. package/dist/activity-C8Ql81WM.js +0 -450
  2121. package/dist/activity-C8Ql81WM.js.map +0 -1
  2122. package/dist/activity-CcQZeDYi.cjs +0 -581
  2123. package/dist/activity-CcQZeDYi.cjs.map +0 -1
  2124. package/dist/ask-user-C1p2PEYe.cjs +0 -495
  2125. package/dist/ask-user-C1p2PEYe.cjs.map +0 -1
  2126. package/dist/ask-user-DPznrqGO.js +0 -412
  2127. package/dist/ask-user-DPznrqGO.js.map +0 -1
  2128. package/dist/buttons-group-Dc6R7YSs.cjs +0 -48
  2129. package/dist/buttons-group-Dc6R7YSs.cjs.map +0 -1
  2130. package/dist/buttons-group-DkFlnMiL.js +0 -35
  2131. package/dist/buttons-group-DkFlnMiL.js.map +0 -1
  2132. package/dist/clear-filters-button-Buc973vw.cjs +0 -27
  2133. package/dist/clear-filters-button-Buc973vw.cjs.map +0 -1
  2134. package/dist/clear-filters-button-CNrRuHOY.js +0 -22
  2135. package/dist/clear-filters-button-CNrRuHOY.js.map +0 -1
  2136. package/dist/combobox-D21no8t5.js +0 -302
  2137. package/dist/combobox-D21no8t5.js.map +0 -1
  2138. package/dist/combobox-DIT_6xiG.cjs +0 -309
  2139. package/dist/combobox-DIT_6xiG.cjs.map +0 -1
  2140. package/dist/combobox-parts-C4phOq4t.cjs +0 -567
  2141. package/dist/combobox-parts-C4phOq4t.cjs.map +0 -1
  2142. package/dist/combobox-parts-D90ir0Py.js +0 -428
  2143. package/dist/combobox-parts-D90ir0Py.js.map +0 -1
  2144. package/dist/context-menu-DTFPCyae.cjs +0 -211
  2145. package/dist/context-menu-DTFPCyae.cjs.map +0 -1
  2146. package/dist/context-menu-Dv0NU0oM.js +0 -204
  2147. package/dist/context-menu-Dv0NU0oM.js.map +0 -1
  2148. package/dist/copy-button-BXrbevLn.js +0 -25
  2149. package/dist/copy-button-BXrbevLn.js.map +0 -1
  2150. package/dist/copy-button-DJAQ6_3o.cjs +0 -30
  2151. package/dist/copy-button-DJAQ6_3o.cjs.map +0 -1
  2152. package/dist/data-list-C4Vmq5HA.cjs +0 -1003
  2153. package/dist/data-list-C4Vmq5HA.cjs.map +0 -1
  2154. package/dist/data-list-DHCOoLmj.js +0 -866
  2155. package/dist/data-list-DHCOoLmj.js.map +0 -1
  2156. package/dist/date-time-range-picker-CWGjoR3j.cjs +0 -348
  2157. package/dist/date-time-range-picker-CWGjoR3j.cjs.map +0 -1
  2158. package/dist/date-time-range-picker-CdSiXwB4.js +0 -343
  2159. package/dist/date-time-range-picker-CdSiXwB4.js.map +0 -1
  2160. package/dist/domains/chat/activity/components/activity-timed-trigger.cjs.js +0 -29
  2161. package/dist/domains/chat/activity/components/activity-timed-trigger.cjs.js.map +0 -1
  2162. package/dist/domains/chat/activity/components/activity-timed-trigger.d.ts +0 -1
  2163. package/dist/domains/chat/activity/components/activity-timed-trigger.es.js +0 -28
  2164. package/dist/domains/chat/activity/components/activity-timed-trigger.es.js.map +0 -1
  2165. package/dist/domains/dashboards/hooks/use-scorers.cjs.js +0 -41
  2166. package/dist/domains/dashboards/hooks/use-scorers.cjs.js.map +0 -1
  2167. package/dist/domains/dashboards/hooks/use-scorers.d.ts +0 -1
  2168. package/dist/domains/dashboards/hooks/use-scorers.es.js +0 -40
  2169. package/dist/domains/dashboards/hooks/use-scorers.es.js.map +0 -1
  2170. package/dist/dropdown-menu-B4jY3J9e.js +0 -234
  2171. package/dist/dropdown-menu-B4jY3J9e.js.map +0 -1
  2172. package/dist/dropdown-menu-BETTTPBB.cjs +0 -241
  2173. package/dist/dropdown-menu-BETTTPBB.cjs.map +0 -1
  2174. package/dist/field-error-id-DBSuJ3HM.js +0 -89
  2175. package/dist/field-error-id-DBSuJ3HM.js.map +0 -1
  2176. package/dist/field-error-id-nGAF0330.cjs +0 -100
  2177. package/dist/field-error-id-nGAF0330.cjs.map +0 -1
  2178. package/dist/filter-bar-chip-CABeKrtf.js +0 -1420
  2179. package/dist/filter-bar-chip-CABeKrtf.js.map +0 -1
  2180. package/dist/filter-bar-chip-Cg-UbIwP.cjs +0 -1545
  2181. package/dist/filter-bar-chip-Cg-UbIwP.cjs.map +0 -1
  2182. package/dist/filter-bar-time-range-qlV8p7hp.js +0 -60
  2183. package/dist/filter-bar-time-range-qlV8p7hp.js.map +0 -1
  2184. package/dist/filter-bar-time-range-zdM024JD.cjs +0 -83
  2185. package/dist/filter-bar-time-range-zdM024JD.cjs.map +0 -1
  2186. package/dist/input-0l1uzOBZ.js +0 -48
  2187. package/dist/input-0l1uzOBZ.js.map +0 -1
  2188. package/dist/input-2hRXcZIu.cjs +0 -55
  2189. package/dist/input-2hRXcZIu.cjs.map +0 -1
  2190. package/dist/input-group-DVJLZDBL.cjs +0 -169
  2191. package/dist/input-group-DVJLZDBL.cjs.map +0 -1
  2192. package/dist/input-group-QKKV_ouF.js +0 -120
  2193. package/dist/input-group-QKKV_ouF.js.map +0 -1
  2194. package/dist/list-search-BtRno5As.cjs +0 -50
  2195. package/dist/list-search-BtRno5As.cjs.map +0 -1
  2196. package/dist/list-search-CkhsTFdG.js +0 -45
  2197. package/dist/list-search-CkhsTFdG.js.map +0 -1
  2198. package/dist/observability-saved-views-CjKTEp1V.js +0 -299
  2199. package/dist/observability-saved-views-CjKTEp1V.js.map +0 -1
  2200. package/dist/observability-saved-views-Daizz4tU.cjs +0 -304
  2201. package/dist/observability-saved-views-Daizz4tU.cjs.map +0 -1
  2202. package/dist/page-header-BB6yjtce.cjs +0 -125
  2203. package/dist/page-header-BB6yjtce.cjs.map +0 -1
  2204. package/dist/page-header-BykBsHUy.js +0 -120
  2205. package/dist/page-header-BykBsHUy.js.map +0 -1
  2206. package/dist/popover-BJqa6Hz6.cjs +0 -119
  2207. package/dist/popover-BJqa6Hz6.cjs.map +0 -1
  2208. package/dist/popover-CzHvTPk2.js +0 -94
  2209. package/dist/popover-CzHvTPk2.js.map +0 -1
  2210. package/dist/property-filter-applied--U5EZdaA.js +0 -344
  2211. package/dist/property-filter-applied--U5EZdaA.js.map +0 -1
  2212. package/dist/property-filter-applied-BkkIObRq.cjs +0 -361
  2213. package/dist/property-filter-applied-BkkIObRq.cjs.map +0 -1
  2214. package/dist/scroll-area-BP4gPZ4G.cjs +0 -246
  2215. package/dist/scroll-area-BP4gPZ4G.cjs.map +0 -1
  2216. package/dist/scroll-area-C226l0v0.js +0 -227
  2217. package/dist/scroll-area-C226l0v0.js.map +0 -1
  2218. package/dist/select-BdIZEdcy.js +0 -133
  2219. package/dist/select-BdIZEdcy.js.map +0 -1
  2220. package/dist/select-Dg8L5ROX.cjs +0 -176
  2221. package/dist/select-Dg8L5ROX.cjs.map +0 -1
  2222. package/dist/settings-BaUeaO96.js +0 -106
  2223. package/dist/settings-BaUeaO96.js.map +0 -1
  2224. package/dist/settings-CUVqhBbf.cjs +0 -135
  2225. package/dist/settings-CUVqhBbf.cjs.map +0 -1
  2226. package/dist/span-payload-primitives-CKKIAVPJ.js +0 -164
  2227. package/dist/span-payload-primitives-CKKIAVPJ.js.map +0 -1
  2228. package/dist/span-payload-primitives-D4tHWN2W.cjs +0 -217
  2229. package/dist/span-payload-primitives-D4tHWN2W.cjs.map +0 -1
  2230. package/dist/spinner-C8ZxiA5C.cjs +0 -68
  2231. package/dist/spinner-C8ZxiA5C.cjs.map +0 -1
  2232. package/dist/spinner-CnLgLj9R.js +0 -63
  2233. package/dist/spinner-CnLgLj9R.js.map +0 -1
  2234. package/dist/src/domains/chat/activity/components/activity-timed-trigger.d.ts +0 -9
  2235. package/dist/src/domains/dashboards/hooks/use-scorers.d.ts +0 -66
  2236. package/dist/src/ds/components/DateTimePicker/time-picker.d.ts +0 -7
  2237. package/dist/string-CNKDIc_4.js +0 -16
  2238. package/dist/string-CNKDIc_4.js.map +0 -1
  2239. package/dist/string-DdJJdCv2.cjs +0 -33
  2240. package/dist/string-DdJJdCv2.cjs.map +0 -1
  2241. package/dist/tabbed-container-B4lCBgRP.cjs +0 -130
  2242. package/dist/tabbed-container-B4lCBgRP.cjs.map +0 -1
  2243. package/dist/tabbed-container-DI1GI1Qv.js +0 -125
  2244. package/dist/tabbed-container-DI1GI1Qv.js.map +0 -1
  2245. package/dist/tabs-content-CmXe5ML0.cjs +0 -34
  2246. package/dist/tabs-content-CmXe5ML0.cjs.map +0 -1
  2247. package/dist/tabs-content-D__B9hd-.js +0 -29
  2248. package/dist/tabs-content-D__B9hd-.js.map +0 -1
  2249. package/dist/tabs-tab-CYTZevdV.js +0 -349
  2250. package/dist/tabs-tab-CYTZevdV.js.map +0 -1
  2251. package/dist/tabs-tab-DGwfHVDr.cjs +0 -372
  2252. package/dist/tabs-tab-DGwfHVDr.cjs.map +0 -1
  2253. package/dist/toast-api-D_rrRhNG.js +0 -50
  2254. package/dist/toast-api-D_rrRhNG.js.map +0 -1
  2255. package/dist/toast-api-qtkOucy2.cjs +0 -55
  2256. package/dist/toast-api-qtkOucy2.cjs.map +0 -1
  2257. package/dist/tool-approval-CJvPDL7D.cjs +0 -115
  2258. package/dist/tool-approval-CJvPDL7D.cjs.map +0 -1
  2259. package/dist/tool-approval-DyN11vFA.js +0 -98
  2260. package/dist/tool-approval-DyN11vFA.js.map +0 -1
  2261. package/dist/tool-call-DBn14X-3.cjs +0 -497
  2262. package/dist/tool-call-DBn14X-3.cjs.map +0 -1
  2263. package/dist/tool-call-Dsj43lvJ.js +0 -426
  2264. package/dist/tool-call-Dsj43lvJ.js.map +0 -1
  2265. package/dist/tool-card-BOLXeKIp.cjs +0 -428
  2266. package/dist/tool-card-BOLXeKIp.cjs.map +0 -1
  2267. package/dist/tool-card-HZ5bm7ue.js +0 -402
  2268. package/dist/tool-card-HZ5bm7ue.js.map +0 -1
  2269. package/dist/tool-presentation-CvibOP1J.js +0 -256
  2270. package/dist/tool-presentation-CvibOP1J.js.map +0 -1
  2271. package/dist/tool-presentation-D6nzVruN.cjs +0 -291
  2272. package/dist/tool-presentation-D6nzVruN.cjs.map +0 -1
  2273. package/dist/tooltip-BiRLT3Th.cjs +0 -112
  2274. package/dist/tooltip-BiRLT3Th.cjs.map +0 -1
  2275. package/dist/tooltip-HzcLyGtV.js +0 -87
  2276. package/dist/tooltip-HzcLyGtV.js.map +0 -1
  2277. package/dist/transcript-divider-CQ6sc3nt.cjs +0 -46
  2278. package/dist/transcript-divider-CQ6sc3nt.cjs.map +0 -1
  2279. package/dist/transcript-divider-CvdgElIC.js +0 -41
  2280. package/dist/transcript-divider-CvdgElIC.js.map +0 -1
  2281. package/dist/use-workflow-graph-runtime-BKNhOKsH.js +0 -284
  2282. package/dist/use-workflow-graph-runtime-BKNhOKsH.js.map +0 -1
  2283. package/dist/use-workflow-graph-runtime-DYao-08R.cjs +0 -307
  2284. package/dist/use-workflow-graph-runtime-DYao-08R.cjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"KnowledgePageTree.cjs.js","names":["useMemo","buildPageTree","useState","useRef","pageAncestorIds","visiblePageRows","prefersMotion","Fragment","cn","ChevronRight","childCountLabel","Pin"],"sources":["../../../../src/domains/knowledge/components/KnowledgePageTree.tsx"],"sourcesContent":["import { ChevronRight, Pin } from 'lucide-react';\nimport { Fragment, useEffect, useMemo, useRef, useState } from 'react';\nimport type { KeyboardEvent } from 'react';\n\nimport { buildPageTree, childCountLabel, pageAncestorIds, visiblePageRows } from '../lib/pageTree';\nimport { prefersMotion } from '../lib/useLeavingNodes';\nimport type { KnowledgePagePayload } from '../pageTypes';\n\nimport { cn } from '@/utils/cn';\n\n/**\n * The box of the nearest ancestor (or the element itself) that really scrolls vertically. The tree sets\n * `overflow-y: auto` itself but, as tall as its rows, never overflows; a parent is what scrolls, so a\n * node counts only when its content is taller than it is.\n */\nfunction scrollingBox(element: HTMLElement | null): DOMRect | undefined {\n let overflowing: HTMLElement | undefined;\n for (let node = element; node; node = node.parentElement) {\n const { overflowY } = getComputedStyle(node);\n if (overflowY !== 'auto' && overflowY !== 'scroll' && overflowY !== 'overlay') continue;\n if (node.scrollHeight > node.clientHeight) return node.getBoundingClientRect();\n overflowing ??= node;\n }\n return (overflowing ?? element)?.getBoundingClientRect();\n}\n\n/** Where in the scroller a row focused from elsewhere lands, as a fraction of its height from the top. */\nconst SCROLL_ROW_AT = 1 / 3;\n/** A row between these fractions of the scroller is comfortably in view and is not moved. */\nconst COMFORT_TOP = 0.1;\nconst COMFORT_BOTTOM = 0.7;\n\n/** The key {@link KnowledgePageTree}'s `loadMore` uses for the root level. */\nexport const KNOWLEDGE_TREE_ROOT = '';\n\n/**\n * The Knowledge page tree: scopes and pages nested by parent, siblings in\n * stored order. Selecting a page from elsewhere (graph, search) opens the path\n * to it. Keyboard follows the WAI-ARIA tree pattern: Up/Down move, Right opens\n * or enters, Left closes or goes to the parent, Enter/Space selects.\n *\n * A host that loads the tree a level at a time passes `mayHaveChildren` (so unloaded pages still offer\n * a chevron), listens to `onExpandedChange` to load the opened levels, and passes `loadMore` for\n * levels with more children to fetch. A page's `childCount`, when the server sends one, shows beside\n * its name. Selecting a page with children also opens it.\n */\nexport function KnowledgePageTree({\n pages,\n pinnedIds,\n selectedPageId,\n onSelect,\n initiallyExpanded,\n mayHaveChildren,\n onExpandedChange,\n loadMore,\n 'aria-label': ariaLabel = 'Knowledge pages',\n}: {\n pages: KnowledgePagePayload[];\n pinnedIds?: readonly string[];\n selectedPageId?: string | null;\n onSelect: (page: KnowledgePagePayload) => void;\n /** Ids open on first render; defaults to every root. */\n initiallyExpanded?: string[];\n /** True for a page whose children are not loaded yet, so it can still be opened. */\n mayHaveChildren?: (page: KnowledgePagePayload) => boolean;\n onExpandedChange?: (expanded: ReadonlySet<string>) => void;\n /** Parent id ({@link KNOWLEDGE_TREE_ROOT} for the roots) to a loader for its next children. */\n loadMore?: ReadonlyMap<string, () => void>;\n 'aria-label'?: string;\n}) {\n const roots = useMemo(() => buildPageTree(pages), [pages]);\n const pinned = useMemo(() => new Set(pinnedIds), [pinnedIds]);\n const [expanded, setExpanded] = useState<Set<string>>(\n () => new Set(initiallyExpanded ?? roots.map(root => root.page.id)),\n );\n const [focusedId, setFocusedId] = useState<string | null>(null);\n const itemRefs = useRef(new Map<string, HTMLDivElement>());\n\n // Open the path to a selection once. Later renders with the same selection and path (a refetch, a\n // level loading) leave it alone, so a parent the user collapses over the selection stays collapsed.\n const revealed = useRef<string | null>(null);\n useEffect(() => {\n if (!selectedPageId) {\n // Forget the last reveal, so picking the same page again after a clear opens its path.\n revealed.current = null;\n return;\n }\n const path = pageAncestorIds(pages, selectedPageId);\n const key = [selectedPageId, ...path].join('/');\n if (revealed.current === key) return;\n revealed.current = key;\n setExpanded(current => (path.every(id => current.has(id)) ? current : new Set([...current, ...path])));\n }, [pages, selectedPageId]);\n\n useEffect(() => {\n onExpandedChange?.(expanded);\n }, [expanded, onExpandedChange]);\n\n const rows = useMemo(\n () =>\n visiblePageRows(roots, expanded).map(row =>\n !row.hasChildren && mayHaveChildren?.(row.page) ? { ...row, hasChildren: true } : row,\n ),\n [roots, expanded, mayHaveChildren],\n );\n // Bring the selected row into view when it is selected, as soon as it exists, and again if rows that load\n // later push it out of view (a deep page's levels arrive one after another). Once the user scrolls, presses a key or\n // a pointer in the tree it is left alone. The row goes a third of the way down the scroller, middle-top, not\n // hard against its bottom edge; keyboard focus is not moved.\n const scroller = useRef<HTMLDivElement>(null);\n const scrolledTo = useRef<string | null>(null);\n const userScrolled = useRef(false);\n useEffect(() => {\n if (!selectedPageId) {\n scrolledTo.current = null;\n return;\n }\n const element = itemRefs.current.get(selectedPageId);\n if (!element) return;\n const first = scrolledTo.current !== selectedPageId;\n if (first) {\n scrolledTo.current = selectedPageId;\n userScrolled.current = false;\n } else if (userScrolled.current) return;\n const box = scrollingBox(scroller.current);\n const at = element.getBoundingClientRect();\n if (!first && !box) return;\n if (!first && box && box.height === 0 && at.top >= box.top && at.bottom <= box.bottom) return;\n if (box && box.height > 0) {\n // A row already well inside the scroller stays where it is.\n const inView = at.top >= box.top + box.height * COMFORT_TOP && at.bottom <= box.top + box.height * COMFORT_BOTTOM;\n if (inView) return;\n // Otherwise it lands a third of the way down; the browser clamps this at the top and bottom of the list.\n element.style.scrollMarginTop = `${box.height * SCROLL_ROW_AT}px`;\n }\n element.scrollIntoView?.({ block: 'start', behavior: first && prefersMotion() ? 'smooth' : 'auto' });\n // The margin only steers this scroll; left on, focus() scrolls and a resized pane would keep a stale gap.\n element.style.scrollMarginTop = '';\n }, [rows, selectedPageId]);\n const activeId =\n focusedId && rows.some(row => row.page.id === focusedId)\n ? focusedId\n : (rows.find(row => row.page.id === selectedPageId)?.page.id ?? rows[0]?.page.id);\n\n const toggle = (id: string, open: boolean) =>\n setExpanded(current => {\n if (current.has(id) === open) return current;\n const next = new Set(current);\n if (open) next.add(id);\n else next.delete(id);\n return next;\n });\n\n const focus = (id: string | undefined) => {\n if (!id) return;\n setFocusedId(id);\n itemRefs.current.get(id)?.focus();\n };\n\n const onKeyDown = (event: KeyboardEvent<HTMLDivElement>, index: number) => {\n const row = rows[index];\n if (!row) return;\n switch (event.key) {\n case 'ArrowDown':\n focus(rows[index + 1]?.page.id);\n break;\n case 'ArrowUp':\n focus(rows[index - 1]?.page.id);\n break;\n case 'ArrowRight':\n if (row.hasChildren && !row.expanded) toggle(row.page.id, true);\n else if (row.expanded) focus(rows[index + 1]?.page.id);\n break;\n case 'ArrowLeft':\n if (row.expanded) toggle(row.page.id, false);\n else focus(rows.slice(0, index).findLast(candidate => candidate.depth < row.depth)?.page.id);\n break;\n case 'Enter':\n case ' ':\n onSelect(row.page);\n break;\n default:\n return;\n }\n event.preventDefault();\n };\n\n if (rows.length === 0) {\n return <p className=\"px-3 py-2 text-body text-muted-foreground\">No pages yet.</p>;\n }\n\n const ancestorAt: string[] = [];\n return (\n <div\n ref={scroller}\n role=\"tree\"\n aria-label={ariaLabel}\n className=\"min-h-0 overflow-y-auto py-1\"\n onWheel={() => (userScrolled.current = true)}\n onTouchMove={() => (userScrolled.current = true)}\n onPointerDown={() => (userScrolled.current = true)}\n onKeyDown={() => (userScrolled.current = true)}\n >\n {rows.map((row, index) => {\n const selected = row.page.id === selectedPageId;\n ancestorAt[row.depth] = row.page.id;\n // Levels whose last loaded child is this row's subtree end here: offer their next children.\n const nextDepth = rows[index + 1]?.depth ?? -1;\n const closing: Array<{ parentId: string; depth: number }> = [];\n for (let depth = row.depth - 1; depth >= nextDepth; depth--) {\n const parentId = depth < 0 ? KNOWLEDGE_TREE_ROOT : ancestorAt[depth];\n if (parentId !== undefined) closing.push({ parentId, depth: depth + 1 });\n }\n if (row.expanded && rows[index + 1]?.depth !== row.depth + 1)\n closing.unshift({ parentId: row.page.id, depth: row.depth + 1 });\n return (\n <Fragment key={row.page.id}>\n <div\n ref={element => {\n if (element) itemRefs.current.set(row.page.id, element);\n else itemRefs.current.delete(row.page.id);\n }}\n role=\"treeitem\"\n aria-level={row.depth + 1}\n aria-selected={selected}\n aria-expanded={row.hasChildren ? row.expanded : undefined}\n tabIndex={row.page.id === activeId ? 0 : -1}\n onFocus={() => setFocusedId(row.page.id)}\n onKeyDown={event => onKeyDown(event, index)}\n onClick={() => {\n onSelect(row.page);\n // Selecting a page with children opens it too, which loads them in a lazily loaded tree.\n if (row.hasChildren) toggle(row.page.id, true);\n }}\n className={cn(\n 'flex min-h-8 cursor-pointer items-center gap-1 rounded-md pr-2 outline-none focus-visible:ring-1 focus-visible:ring-border-focus',\n selected ? 'bg-fill text-foreground' : 'text-foreground hover:bg-fill',\n )}\n style={{ paddingLeft: `${row.depth * 16 + 4}px` }}\n >\n {row.hasChildren ? (\n <button\n type=\"button\"\n tabIndex={-1}\n aria-label={row.expanded ? `Collapse ${row.page.name}` : `Expand ${row.page.name}`}\n className=\"flex size-5 shrink-0 items-center justify-center rounded text-muted-foreground hover:text-foreground\"\n onClick={event => {\n event.stopPropagation();\n toggle(row.page.id, !row.expanded);\n }}\n >\n <ChevronRight size={14} className={cn('transition-transform', row.expanded && 'rotate-90')} />\n </button>\n ) : (\n <span className=\"size-5 shrink-0\" aria-hidden />\n )}\n <span className={cn('min-w-0 flex-1 truncate text-body', row.page.isScope && 'font-medium')}>\n {row.page.name}\n </span>\n {row.page.childCount ? (\n <span\n data-testid=\"knowledge-tree-count\"\n aria-label={`${childCountLabel(row.page)} below`}\n className=\"shrink-0 text-caption text-muted-foreground tabular-nums\"\n >\n {childCountLabel(row.page)}\n </span>\n ) : null}\n {pinned.has(row.page.id) ? (\n <Pin size={12} className=\"shrink-0 text-badge-amber-indicator\" aria-label=\"Pinned\" />\n ) : null}\n {row.page.isScope && row.page.address && row.page.address !== row.page.name ? (\n <span\n data-testid=\"knowledge-tree-address\"\n className=\"max-w-1/2 min-w-0 truncate text-caption text-muted-foreground\"\n >\n {row.page.address}\n </span>\n ) : null}\n </div>\n {closing.map(({ parentId, depth }) => {\n const more = loadMore?.get(parentId);\n return more ? (\n <button\n key={`more-${parentId}`}\n type=\"button\"\n className=\"flex min-h-7 w-full items-center text-left text-caption text-muted-foreground hover:text-foreground\"\n style={{ paddingLeft: `${depth * 16 + 28}px` }}\n onClick={more}\n >\n Load more\n </button>\n ) : null;\n })}\n </Fragment>\n );\n })}\n </div>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"KnowledgePageTree.cjs.js","names":["useMemo","buildPageTree","useState","useRef","pageAncestorIds","visiblePageRows","prefersMotion","Fragment","cn","DisclosureChevron","scopeTitle","KnowledgeSourceIcon","Folder","FileText","childCountLabel","Pin"],"sources":["../../../../src/domains/knowledge/components/KnowledgePageTree.tsx"],"sourcesContent":["import { FileText, Folder, Pin } from 'lucide-react';\nimport { Fragment, useEffect, useMemo, useRef, useState } from 'react';\nimport type { KeyboardEvent } from 'react';\n\nimport { scopeTitle } from '../lib/pageAddress';\nimport { buildPageTree, childCountLabel, pageAncestorIds, visiblePageRows } from '../lib/pageTree';\nimport { prefersMotion } from '../lib/useLeavingNodes';\nimport type { KnowledgePagePayload } from '../pageTypes';\nimport { KnowledgeSourceIcon } from './KnowledgeSourceIcon';\n\nimport { DisclosureChevron } from '@/ds/components/DisclosureChevron';\nimport { cn } from '@/utils/cn';\n\n/**\n * The box of the nearest ancestor (or the element itself) that really scrolls vertically. The tree sets\n * `overflow-y: auto` itself but, as tall as its rows, never overflows; a parent is what scrolls, so a\n * node counts only when its content is taller than it is.\n */\nfunction scrollingBox(element: HTMLElement | null): DOMRect | undefined {\n let overflowing: HTMLElement | undefined;\n for (let node = element; node; node = node.parentElement) {\n const { overflowY } = getComputedStyle(node);\n if (overflowY !== 'auto' && overflowY !== 'scroll' && overflowY !== 'overlay') continue;\n if (node.scrollHeight > node.clientHeight) return node.getBoundingClientRect();\n overflowing ??= node;\n }\n return (overflowing ?? element)?.getBoundingClientRect();\n}\n\n/** Where in the scroller a row focused from elsewhere lands, as a fraction of its height from the top. */\nconst SCROLL_ROW_AT = 1 / 3;\n/** A row between these fractions of the scroller is comfortably in view and is not moved. */\nconst COMFORT_TOP = 0.1;\nconst COMFORT_BOTTOM = 0.7;\n\n/** The key {@link KnowledgePageTree}'s `loadMore` uses for the root level. */\nexport const KNOWLEDGE_TREE_ROOT = '';\n\n/**\n * The Knowledge page tree: scopes and pages nested by parent, siblings in\n * stored order. Selecting a page from elsewhere (graph, search) opens the path\n * to it. Keyboard follows the WAI-ARIA tree pattern: Up/Down move, Right opens\n * or enters, Left closes or goes to the parent, Enter/Space selects.\n *\n * A host that loads the tree a level at a time passes `mayHaveChildren` (so unloaded pages still offer\n * a chevron), listens to `onExpandedChange` to load the opened levels, and passes `loadMore` for\n * levels with more children to fetch. A page's `childCount`, when the server sends one, shows beside\n * its name. Selecting a page with children also opens it.\n */\nexport function KnowledgePageTree({\n pages,\n pinnedIds,\n selectedPageId,\n onSelect,\n initiallyExpanded,\n mayHaveChildren,\n onExpandedChange,\n loadMore,\n 'aria-label': ariaLabel = 'Knowledge pages',\n}: {\n pages: KnowledgePagePayload[];\n pinnedIds?: readonly string[];\n selectedPageId?: string | null;\n onSelect: (page: KnowledgePagePayload) => void;\n /** Ids open on first render; defaults to every root. */\n initiallyExpanded?: string[];\n /** True for a page whose children are not loaded yet, so it can still be opened. */\n mayHaveChildren?: (page: KnowledgePagePayload) => boolean;\n onExpandedChange?: (expanded: ReadonlySet<string>) => void;\n /** Parent id ({@link KNOWLEDGE_TREE_ROOT} for the roots) to a loader for its next children. */\n loadMore?: ReadonlyMap<string, () => void>;\n 'aria-label'?: string;\n}) {\n const roots = useMemo(() => buildPageTree(pages), [pages]);\n const pinned = useMemo(() => new Set(pinnedIds), [pinnedIds]);\n const [expanded, setExpanded] = useState<Set<string>>(\n () => new Set(initiallyExpanded ?? roots.map(root => root.page.id)),\n );\n const [focusedId, setFocusedId] = useState<string | null>(null);\n const itemRefs = useRef(new Map<string, HTMLDivElement>());\n\n // Open the path to a selection once. Later renders with the same selection and path (a refetch, a\n // level loading) leave it alone, so a parent the user collapses over the selection stays collapsed.\n const revealed = useRef<string | null>(null);\n useEffect(() => {\n if (!selectedPageId) {\n // Forget the last reveal, so picking the same page again after a clear opens its path.\n revealed.current = null;\n return;\n }\n const path = pageAncestorIds(pages, selectedPageId);\n const key = [selectedPageId, ...path].join('/');\n if (revealed.current === key) return;\n revealed.current = key;\n setExpanded(current => (path.every(id => current.has(id)) ? current : new Set([...current, ...path])));\n }, [pages, selectedPageId]);\n\n useEffect(() => {\n onExpandedChange?.(expanded);\n }, [expanded, onExpandedChange]);\n\n const rows = useMemo(\n () =>\n visiblePageRows(roots, expanded).map(row =>\n !row.hasChildren && mayHaveChildren?.(row.page) ? { ...row, hasChildren: true } : row,\n ),\n [roots, expanded, mayHaveChildren],\n );\n // Bring the selected row into view when it is selected, as soon as it exists, and again if rows that load\n // later push it out of view (a deep page's levels arrive one after another). Once the user scrolls, presses a key or\n // a pointer in the tree it is left alone. The row goes a third of the way down the scroller, middle-top, not\n // hard against its bottom edge; keyboard focus is not moved.\n const scroller = useRef<HTMLDivElement>(null);\n const scrolledTo = useRef<string | null>(null);\n const userScrolled = useRef(false);\n useEffect(() => {\n if (!selectedPageId) {\n scrolledTo.current = null;\n return;\n }\n const element = itemRefs.current.get(selectedPageId);\n if (!element) return;\n const first = scrolledTo.current !== selectedPageId;\n if (first) {\n scrolledTo.current = selectedPageId;\n userScrolled.current = false;\n } else if (userScrolled.current) return;\n const box = scrollingBox(scroller.current);\n const at = element.getBoundingClientRect();\n if (!first && !box) return;\n if (!first && box && box.height === 0 && at.top >= box.top && at.bottom <= box.bottom) return;\n if (box && box.height > 0) {\n // A row already well inside the scroller stays where it is.\n const inView = at.top >= box.top + box.height * COMFORT_TOP && at.bottom <= box.top + box.height * COMFORT_BOTTOM;\n if (inView) return;\n // Otherwise it lands a third of the way down; the browser clamps this at the top and bottom of the list.\n element.style.scrollMarginTop = `${box.height * SCROLL_ROW_AT}px`;\n }\n element.scrollIntoView?.({ block: 'start', behavior: first && prefersMotion() ? 'smooth' : 'auto' });\n // The margin only steers this scroll; left on, focus() scrolls and a resized pane would keep a stale gap.\n element.style.scrollMarginTop = '';\n }, [rows, selectedPageId]);\n const activeId =\n focusedId && rows.some(row => row.page.id === focusedId)\n ? focusedId\n : (rows.find(row => row.page.id === selectedPageId)?.page.id ?? rows[0]?.page.id);\n\n const toggle = (id: string, open: boolean) =>\n setExpanded(current => {\n if (current.has(id) === open) return current;\n const next = new Set(current);\n if (open) next.add(id);\n else next.delete(id);\n return next;\n });\n\n const focus = (id: string | undefined) => {\n if (!id) return;\n setFocusedId(id);\n itemRefs.current.get(id)?.focus();\n };\n\n const onKeyDown = (event: KeyboardEvent<HTMLDivElement>, index: number) => {\n const row = rows[index];\n if (!row) return;\n switch (event.key) {\n case 'ArrowDown':\n focus(rows[index + 1]?.page.id);\n break;\n case 'ArrowUp':\n focus(rows[index - 1]?.page.id);\n break;\n case 'ArrowRight':\n if (row.hasChildren && !row.expanded) toggle(row.page.id, true);\n else if (row.expanded) focus(rows[index + 1]?.page.id);\n break;\n case 'ArrowLeft':\n if (row.expanded) toggle(row.page.id, false);\n else focus(rows.slice(0, index).findLast(candidate => candidate.depth < row.depth)?.page.id);\n break;\n case 'Enter':\n case ' ':\n onSelect(row.page);\n break;\n default:\n return;\n }\n event.preventDefault();\n };\n\n if (rows.length === 0) {\n return <p className=\"px-3 py-2 text-body text-muted-foreground\">No pages yet.</p>;\n }\n\n const ancestorAt: string[] = [];\n return (\n <div\n ref={scroller}\n role=\"tree\"\n aria-label={ariaLabel}\n className=\"min-h-0 overflow-y-auto py-1\"\n onWheel={() => (userScrolled.current = true)}\n onTouchMove={() => (userScrolled.current = true)}\n onPointerDown={() => (userScrolled.current = true)}\n onKeyDown={() => (userScrolled.current = true)}\n >\n {rows.map((row, index) => {\n const selected = row.page.id === selectedPageId;\n ancestorAt[row.depth] = row.page.id;\n // Levels whose last loaded child is this row's subtree end here: offer their next children.\n const nextDepth = rows[index + 1]?.depth ?? -1;\n const closing: Array<{ parentId: string; depth: number }> = [];\n for (let depth = row.depth - 1; depth >= nextDepth; depth--) {\n const parentId = depth < 0 ? KNOWLEDGE_TREE_ROOT : ancestorAt[depth];\n if (parentId !== undefined) closing.push({ parentId, depth: depth + 1 });\n }\n if (row.expanded && rows[index + 1]?.depth !== row.depth + 1)\n closing.unshift({ parentId: row.page.id, depth: row.depth + 1 });\n return (\n <Fragment key={row.page.id}>\n <div\n ref={element => {\n if (element) itemRefs.current.set(row.page.id, element);\n else itemRefs.current.delete(row.page.id);\n }}\n role=\"treeitem\"\n aria-level={row.depth + 1}\n aria-selected={selected}\n aria-expanded={row.hasChildren ? row.expanded : undefined}\n tabIndex={row.page.id === activeId ? 0 : -1}\n onFocus={() => setFocusedId(row.page.id)}\n onKeyDown={event => onKeyDown(event, index)}\n onClick={() => {\n onSelect(row.page);\n // Selecting a page with children opens it too, which loads them in a lazily loaded tree.\n if (row.hasChildren) toggle(row.page.id, true);\n }}\n className={cn(\n 'flex h-8 cursor-pointer items-center gap-2 rounded-md pr-2 text-body-sm text-foreground outline-none focus-visible:bg-fill-subtle',\n selected ? 'bg-fill-hover' : 'hover:bg-fill-subtle',\n )}\n style={{ paddingLeft: `${row.depth * 12 + 4}px` }}\n >\n {row.hasChildren ? (\n <button\n type=\"button\"\n tabIndex={-1}\n aria-label={row.expanded ? `Collapse ${row.page.name}` : `Expand ${row.page.name}`}\n className=\"flex size-3 shrink-0 items-center justify-center text-muted-foreground hover:text-foreground\"\n onClick={event => {\n event.stopPropagation();\n toggle(row.page.id, !row.expanded);\n }}\n >\n <DisclosureChevron direction=\"right\" open={row.expanded} className=\"size-3\" />\n </button>\n ) : (\n <span className=\"size-3 shrink-0\" aria-hidden />\n )}\n <span className=\"flex shrink-0 items-center text-muted-foreground [&>svg]:size-3.5\" aria-hidden>\n {row.page.isScope && scopeTitle(row.page) !== row.page.name ? (\n <KnowledgeSourceIcon page={row.page} />\n ) : row.hasChildren ? (\n <Folder />\n ) : (\n <FileText />\n )}\n </span>\n <span className={cn('min-w-0 flex-1 truncate', row.page.isScope && 'font-medium')}>\n {scopeTitle(row.page)}\n </span>\n {row.page.childCount ? (\n <span\n data-testid=\"knowledge-tree-count\"\n aria-label={`${childCountLabel(row.page)} below`}\n className=\"shrink-0 text-caption text-placeholder tabular-nums\"\n >\n {childCountLabel(row.page)}\n </span>\n ) : null}\n {pinned.has(row.page.id) ? (\n <Pin size={12} className=\"shrink-0 text-badge-amber-indicator\" aria-label=\"Pinned\" />\n ) : null}\n {row.page.isScope && row.page.address && row.page.address !== row.page.name ? (\n <span\n data-testid=\"knowledge-tree-address\"\n className=\"max-w-1/2 min-w-0 truncate text-caption text-muted-foreground\"\n >\n {row.page.address}\n </span>\n ) : null}\n </div>\n {closing.map(({ parentId, depth }) => {\n const more = loadMore?.get(parentId);\n return more ? (\n <button\n key={`more-${parentId}`}\n type=\"button\"\n className=\"flex h-8 w-full items-center text-left text-caption text-muted-foreground hover:text-foreground\"\n style={{ paddingLeft: `${depth * 12 + 42}px` }}\n onClick={more}\n >\n Load more\n </button>\n ) : null;\n })}\n </Fragment>\n );\n })}\n </div>\n );\n}\n"],"mappings":"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"}
@@ -1,9 +1,12 @@
1
- import { t as cn } from "../../../utils-DQx8TpNT.js";
1
+ import { scopeTitle } from "../lib/pageAddress.es.js";
2
2
  import { buildPageTree, childCountLabel, pageAncestorIds, visiblePageRows } from "../lib/pageTree.es.js";
3
3
  import { prefersMotion } from "../lib/useLeavingNodes.es.js";
4
+ import { KnowledgeSourceIcon } from "./KnowledgeSourceIcon.es.js";
5
+ import { DisclosureChevron } from "../../../components/DisclosureChevron.es.js";
6
+ import { t as cn } from "../../../utils-DQx8TpNT.js";
4
7
  import { Fragment, useEffect, useMemo, useRef, useState } from "react";
5
8
  import { jsx, jsxs } from "react/jsx-runtime";
6
- import { ChevronRight, Pin } from "lucide-react";
9
+ import { FileText, Folder, Pin } from "lucide-react";
7
10
  // src/domains/knowledge/components/KnowledgePageTree.tsx
8
11
  /**
9
12
  * The box of the nearest ancestor (or the element itself) that really scrolls vertically. The tree sets
@@ -181,34 +184,40 @@ function KnowledgePageTree({ pages, pinnedIds, selectedPageId, onSelect, initial
181
184
  onSelect(row.page);
182
185
  if (row.hasChildren) toggle(row.page.id, true);
183
186
  },
184
- className: cn("flex min-h-8 cursor-pointer items-center gap-1 rounded-md pr-2 outline-none focus-visible:ring-1 focus-visible:ring-border-focus", selected ? "bg-fill text-foreground" : "text-foreground hover:bg-fill"),
185
- style: { paddingLeft: `${row.depth * 16 + 4}px` },
187
+ className: cn("flex h-8 cursor-pointer items-center gap-2 rounded-md pr-2 text-body-sm text-foreground outline-none focus-visible:bg-fill-subtle", selected ? "bg-fill-hover" : "hover:bg-fill-subtle"),
188
+ style: { paddingLeft: `${row.depth * 12 + 4}px` },
186
189
  children: [
187
190
  row.hasChildren ? /* @__PURE__ */ jsx("button", {
188
191
  type: "button",
189
192
  tabIndex: -1,
190
193
  "aria-label": row.expanded ? `Collapse ${row.page.name}` : `Expand ${row.page.name}`,
191
- className: "flex size-5 shrink-0 items-center justify-center rounded text-muted-foreground hover:text-foreground",
194
+ className: "flex size-3 shrink-0 items-center justify-center text-muted-foreground hover:text-foreground",
192
195
  onClick: (event) => {
193
196
  event.stopPropagation();
194
197
  toggle(row.page.id, !row.expanded);
195
198
  },
196
- children: /* @__PURE__ */ jsx(ChevronRight, {
197
- size: 14,
198
- className: cn("transition-transform", row.expanded && "rotate-90")
199
+ children: /* @__PURE__ */ jsx(DisclosureChevron, {
200
+ direction: "right",
201
+ open: row.expanded,
202
+ className: "size-3"
199
203
  })
200
204
  }) : /* @__PURE__ */ jsx("span", {
201
- className: "size-5 shrink-0",
205
+ className: "size-3 shrink-0",
202
206
  "aria-hidden": true
203
207
  }),
204
208
  /* @__PURE__ */ jsx("span", {
205
- className: cn("min-w-0 flex-1 truncate text-body", row.page.isScope && "font-medium"),
206
- children: row.page.name
209
+ className: "flex shrink-0 items-center text-muted-foreground [&>svg]:size-3.5",
210
+ "aria-hidden": true,
211
+ children: row.page.isScope && scopeTitle(row.page) !== row.page.name ? /* @__PURE__ */ jsx(KnowledgeSourceIcon, { page: row.page }) : row.hasChildren ? /* @__PURE__ */ jsx(Folder, {}) : /* @__PURE__ */ jsx(FileText, {})
212
+ }),
213
+ /* @__PURE__ */ jsx("span", {
214
+ className: cn("min-w-0 flex-1 truncate", row.page.isScope && "font-medium"),
215
+ children: scopeTitle(row.page)
207
216
  }),
208
217
  row.page.childCount ? /* @__PURE__ */ jsx("span", {
209
218
  "data-testid": "knowledge-tree-count",
210
219
  "aria-label": `${childCountLabel(row.page)} below`,
211
- className: "shrink-0 text-caption text-muted-foreground tabular-nums",
220
+ className: "shrink-0 text-caption text-placeholder tabular-nums",
212
221
  children: childCountLabel(row.page)
213
222
  }) : null,
214
223
  pinned.has(row.page.id) ? /* @__PURE__ */ jsx(Pin, {
@@ -226,8 +235,8 @@ function KnowledgePageTree({ pages, pinnedIds, selectedPageId, onSelect, initial
226
235
  const more = loadMore?.get(parentId);
227
236
  return more ? /* @__PURE__ */ jsx("button", {
228
237
  type: "button",
229
- className: "flex min-h-7 w-full items-center text-left text-caption text-muted-foreground hover:text-foreground",
230
- style: { paddingLeft: `${depth * 16 + 28}px` },
238
+ className: "flex h-8 w-full items-center text-left text-caption text-muted-foreground hover:text-foreground",
239
+ style: { paddingLeft: `${depth * 12 + 42}px` },
231
240
  onClick: more,
232
241
  children: "Load more"
233
242
  }, `more-${parentId}`) : null;
@@ -1 +1 @@
1
- {"version":3,"file":"KnowledgePageTree.es.js","names":[],"sources":["../../../../src/domains/knowledge/components/KnowledgePageTree.tsx"],"sourcesContent":["import { ChevronRight, Pin } from 'lucide-react';\nimport { Fragment, useEffect, useMemo, useRef, useState } from 'react';\nimport type { KeyboardEvent } from 'react';\n\nimport { buildPageTree, childCountLabel, pageAncestorIds, visiblePageRows } from '../lib/pageTree';\nimport { prefersMotion } from '../lib/useLeavingNodes';\nimport type { KnowledgePagePayload } from '../pageTypes';\n\nimport { cn } from '@/utils/cn';\n\n/**\n * The box of the nearest ancestor (or the element itself) that really scrolls vertically. The tree sets\n * `overflow-y: auto` itself but, as tall as its rows, never overflows; a parent is what scrolls, so a\n * node counts only when its content is taller than it is.\n */\nfunction scrollingBox(element: HTMLElement | null): DOMRect | undefined {\n let overflowing: HTMLElement | undefined;\n for (let node = element; node; node = node.parentElement) {\n const { overflowY } = getComputedStyle(node);\n if (overflowY !== 'auto' && overflowY !== 'scroll' && overflowY !== 'overlay') continue;\n if (node.scrollHeight > node.clientHeight) return node.getBoundingClientRect();\n overflowing ??= node;\n }\n return (overflowing ?? element)?.getBoundingClientRect();\n}\n\n/** Where in the scroller a row focused from elsewhere lands, as a fraction of its height from the top. */\nconst SCROLL_ROW_AT = 1 / 3;\n/** A row between these fractions of the scroller is comfortably in view and is not moved. */\nconst COMFORT_TOP = 0.1;\nconst COMFORT_BOTTOM = 0.7;\n\n/** The key {@link KnowledgePageTree}'s `loadMore` uses for the root level. */\nexport const KNOWLEDGE_TREE_ROOT = '';\n\n/**\n * The Knowledge page tree: scopes and pages nested by parent, siblings in\n * stored order. Selecting a page from elsewhere (graph, search) opens the path\n * to it. Keyboard follows the WAI-ARIA tree pattern: Up/Down move, Right opens\n * or enters, Left closes or goes to the parent, Enter/Space selects.\n *\n * A host that loads the tree a level at a time passes `mayHaveChildren` (so unloaded pages still offer\n * a chevron), listens to `onExpandedChange` to load the opened levels, and passes `loadMore` for\n * levels with more children to fetch. A page's `childCount`, when the server sends one, shows beside\n * its name. Selecting a page with children also opens it.\n */\nexport function KnowledgePageTree({\n pages,\n pinnedIds,\n selectedPageId,\n onSelect,\n initiallyExpanded,\n mayHaveChildren,\n onExpandedChange,\n loadMore,\n 'aria-label': ariaLabel = 'Knowledge pages',\n}: {\n pages: KnowledgePagePayload[];\n pinnedIds?: readonly string[];\n selectedPageId?: string | null;\n onSelect: (page: KnowledgePagePayload) => void;\n /** Ids open on first render; defaults to every root. */\n initiallyExpanded?: string[];\n /** True for a page whose children are not loaded yet, so it can still be opened. */\n mayHaveChildren?: (page: KnowledgePagePayload) => boolean;\n onExpandedChange?: (expanded: ReadonlySet<string>) => void;\n /** Parent id ({@link KNOWLEDGE_TREE_ROOT} for the roots) to a loader for its next children. */\n loadMore?: ReadonlyMap<string, () => void>;\n 'aria-label'?: string;\n}) {\n const roots = useMemo(() => buildPageTree(pages), [pages]);\n const pinned = useMemo(() => new Set(pinnedIds), [pinnedIds]);\n const [expanded, setExpanded] = useState<Set<string>>(\n () => new Set(initiallyExpanded ?? roots.map(root => root.page.id)),\n );\n const [focusedId, setFocusedId] = useState<string | null>(null);\n const itemRefs = useRef(new Map<string, HTMLDivElement>());\n\n // Open the path to a selection once. Later renders with the same selection and path (a refetch, a\n // level loading) leave it alone, so a parent the user collapses over the selection stays collapsed.\n const revealed = useRef<string | null>(null);\n useEffect(() => {\n if (!selectedPageId) {\n // Forget the last reveal, so picking the same page again after a clear opens its path.\n revealed.current = null;\n return;\n }\n const path = pageAncestorIds(pages, selectedPageId);\n const key = [selectedPageId, ...path].join('/');\n if (revealed.current === key) return;\n revealed.current = key;\n setExpanded(current => (path.every(id => current.has(id)) ? current : new Set([...current, ...path])));\n }, [pages, selectedPageId]);\n\n useEffect(() => {\n onExpandedChange?.(expanded);\n }, [expanded, onExpandedChange]);\n\n const rows = useMemo(\n () =>\n visiblePageRows(roots, expanded).map(row =>\n !row.hasChildren && mayHaveChildren?.(row.page) ? { ...row, hasChildren: true } : row,\n ),\n [roots, expanded, mayHaveChildren],\n );\n // Bring the selected row into view when it is selected, as soon as it exists, and again if rows that load\n // later push it out of view (a deep page's levels arrive one after another). Once the user scrolls, presses a key or\n // a pointer in the tree it is left alone. The row goes a third of the way down the scroller, middle-top, not\n // hard against its bottom edge; keyboard focus is not moved.\n const scroller = useRef<HTMLDivElement>(null);\n const scrolledTo = useRef<string | null>(null);\n const userScrolled = useRef(false);\n useEffect(() => {\n if (!selectedPageId) {\n scrolledTo.current = null;\n return;\n }\n const element = itemRefs.current.get(selectedPageId);\n if (!element) return;\n const first = scrolledTo.current !== selectedPageId;\n if (first) {\n scrolledTo.current = selectedPageId;\n userScrolled.current = false;\n } else if (userScrolled.current) return;\n const box = scrollingBox(scroller.current);\n const at = element.getBoundingClientRect();\n if (!first && !box) return;\n if (!first && box && box.height === 0 && at.top >= box.top && at.bottom <= box.bottom) return;\n if (box && box.height > 0) {\n // A row already well inside the scroller stays where it is.\n const inView = at.top >= box.top + box.height * COMFORT_TOP && at.bottom <= box.top + box.height * COMFORT_BOTTOM;\n if (inView) return;\n // Otherwise it lands a third of the way down; the browser clamps this at the top and bottom of the list.\n element.style.scrollMarginTop = `${box.height * SCROLL_ROW_AT}px`;\n }\n element.scrollIntoView?.({ block: 'start', behavior: first && prefersMotion() ? 'smooth' : 'auto' });\n // The margin only steers this scroll; left on, focus() scrolls and a resized pane would keep a stale gap.\n element.style.scrollMarginTop = '';\n }, [rows, selectedPageId]);\n const activeId =\n focusedId && rows.some(row => row.page.id === focusedId)\n ? focusedId\n : (rows.find(row => row.page.id === selectedPageId)?.page.id ?? rows[0]?.page.id);\n\n const toggle = (id: string, open: boolean) =>\n setExpanded(current => {\n if (current.has(id) === open) return current;\n const next = new Set(current);\n if (open) next.add(id);\n else next.delete(id);\n return next;\n });\n\n const focus = (id: string | undefined) => {\n if (!id) return;\n setFocusedId(id);\n itemRefs.current.get(id)?.focus();\n };\n\n const onKeyDown = (event: KeyboardEvent<HTMLDivElement>, index: number) => {\n const row = rows[index];\n if (!row) return;\n switch (event.key) {\n case 'ArrowDown':\n focus(rows[index + 1]?.page.id);\n break;\n case 'ArrowUp':\n focus(rows[index - 1]?.page.id);\n break;\n case 'ArrowRight':\n if (row.hasChildren && !row.expanded) toggle(row.page.id, true);\n else if (row.expanded) focus(rows[index + 1]?.page.id);\n break;\n case 'ArrowLeft':\n if (row.expanded) toggle(row.page.id, false);\n else focus(rows.slice(0, index).findLast(candidate => candidate.depth < row.depth)?.page.id);\n break;\n case 'Enter':\n case ' ':\n onSelect(row.page);\n break;\n default:\n return;\n }\n event.preventDefault();\n };\n\n if (rows.length === 0) {\n return <p className=\"px-3 py-2 text-body text-muted-foreground\">No pages yet.</p>;\n }\n\n const ancestorAt: string[] = [];\n return (\n <div\n ref={scroller}\n role=\"tree\"\n aria-label={ariaLabel}\n className=\"min-h-0 overflow-y-auto py-1\"\n onWheel={() => (userScrolled.current = true)}\n onTouchMove={() => (userScrolled.current = true)}\n onPointerDown={() => (userScrolled.current = true)}\n onKeyDown={() => (userScrolled.current = true)}\n >\n {rows.map((row, index) => {\n const selected = row.page.id === selectedPageId;\n ancestorAt[row.depth] = row.page.id;\n // Levels whose last loaded child is this row's subtree end here: offer their next children.\n const nextDepth = rows[index + 1]?.depth ?? -1;\n const closing: Array<{ parentId: string; depth: number }> = [];\n for (let depth = row.depth - 1; depth >= nextDepth; depth--) {\n const parentId = depth < 0 ? KNOWLEDGE_TREE_ROOT : ancestorAt[depth];\n if (parentId !== undefined) closing.push({ parentId, depth: depth + 1 });\n }\n if (row.expanded && rows[index + 1]?.depth !== row.depth + 1)\n closing.unshift({ parentId: row.page.id, depth: row.depth + 1 });\n return (\n <Fragment key={row.page.id}>\n <div\n ref={element => {\n if (element) itemRefs.current.set(row.page.id, element);\n else itemRefs.current.delete(row.page.id);\n }}\n role=\"treeitem\"\n aria-level={row.depth + 1}\n aria-selected={selected}\n aria-expanded={row.hasChildren ? row.expanded : undefined}\n tabIndex={row.page.id === activeId ? 0 : -1}\n onFocus={() => setFocusedId(row.page.id)}\n onKeyDown={event => onKeyDown(event, index)}\n onClick={() => {\n onSelect(row.page);\n // Selecting a page with children opens it too, which loads them in a lazily loaded tree.\n if (row.hasChildren) toggle(row.page.id, true);\n }}\n className={cn(\n 'flex min-h-8 cursor-pointer items-center gap-1 rounded-md pr-2 outline-none focus-visible:ring-1 focus-visible:ring-border-focus',\n selected ? 'bg-fill text-foreground' : 'text-foreground hover:bg-fill',\n )}\n style={{ paddingLeft: `${row.depth * 16 + 4}px` }}\n >\n {row.hasChildren ? (\n <button\n type=\"button\"\n tabIndex={-1}\n aria-label={row.expanded ? `Collapse ${row.page.name}` : `Expand ${row.page.name}`}\n className=\"flex size-5 shrink-0 items-center justify-center rounded text-muted-foreground hover:text-foreground\"\n onClick={event => {\n event.stopPropagation();\n toggle(row.page.id, !row.expanded);\n }}\n >\n <ChevronRight size={14} className={cn('transition-transform', row.expanded && 'rotate-90')} />\n </button>\n ) : (\n <span className=\"size-5 shrink-0\" aria-hidden />\n )}\n <span className={cn('min-w-0 flex-1 truncate text-body', row.page.isScope && 'font-medium')}>\n {row.page.name}\n </span>\n {row.page.childCount ? (\n <span\n data-testid=\"knowledge-tree-count\"\n aria-label={`${childCountLabel(row.page)} below`}\n className=\"shrink-0 text-caption text-muted-foreground tabular-nums\"\n >\n {childCountLabel(row.page)}\n </span>\n ) : null}\n {pinned.has(row.page.id) ? (\n <Pin size={12} className=\"shrink-0 text-badge-amber-indicator\" aria-label=\"Pinned\" />\n ) : null}\n {row.page.isScope && row.page.address && row.page.address !== row.page.name ? (\n <span\n data-testid=\"knowledge-tree-address\"\n className=\"max-w-1/2 min-w-0 truncate text-caption text-muted-foreground\"\n >\n {row.page.address}\n </span>\n ) : null}\n </div>\n {closing.map(({ parentId, depth }) => {\n const more = loadMore?.get(parentId);\n return more ? (\n <button\n key={`more-${parentId}`}\n type=\"button\"\n className=\"flex min-h-7 w-full items-center text-left text-caption text-muted-foreground hover:text-foreground\"\n style={{ paddingLeft: `${depth * 16 + 28}px` }}\n onClick={more}\n >\n Load more\n </button>\n ) : null;\n })}\n </Fragment>\n );\n })}\n </div>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"KnowledgePageTree.es.js","names":[],"sources":["../../../../src/domains/knowledge/components/KnowledgePageTree.tsx"],"sourcesContent":["import { FileText, Folder, Pin } from 'lucide-react';\nimport { Fragment, useEffect, useMemo, useRef, useState } from 'react';\nimport type { KeyboardEvent } from 'react';\n\nimport { scopeTitle } from '../lib/pageAddress';\nimport { buildPageTree, childCountLabel, pageAncestorIds, visiblePageRows } from '../lib/pageTree';\nimport { prefersMotion } from '../lib/useLeavingNodes';\nimport type { KnowledgePagePayload } from '../pageTypes';\nimport { KnowledgeSourceIcon } from './KnowledgeSourceIcon';\n\nimport { DisclosureChevron } from '@/ds/components/DisclosureChevron';\nimport { cn } from '@/utils/cn';\n\n/**\n * The box of the nearest ancestor (or the element itself) that really scrolls vertically. The tree sets\n * `overflow-y: auto` itself but, as tall as its rows, never overflows; a parent is what scrolls, so a\n * node counts only when its content is taller than it is.\n */\nfunction scrollingBox(element: HTMLElement | null): DOMRect | undefined {\n let overflowing: HTMLElement | undefined;\n for (let node = element; node; node = node.parentElement) {\n const { overflowY } = getComputedStyle(node);\n if (overflowY !== 'auto' && overflowY !== 'scroll' && overflowY !== 'overlay') continue;\n if (node.scrollHeight > node.clientHeight) return node.getBoundingClientRect();\n overflowing ??= node;\n }\n return (overflowing ?? element)?.getBoundingClientRect();\n}\n\n/** Where in the scroller a row focused from elsewhere lands, as a fraction of its height from the top. */\nconst SCROLL_ROW_AT = 1 / 3;\n/** A row between these fractions of the scroller is comfortably in view and is not moved. */\nconst COMFORT_TOP = 0.1;\nconst COMFORT_BOTTOM = 0.7;\n\n/** The key {@link KnowledgePageTree}'s `loadMore` uses for the root level. */\nexport const KNOWLEDGE_TREE_ROOT = '';\n\n/**\n * The Knowledge page tree: scopes and pages nested by parent, siblings in\n * stored order. Selecting a page from elsewhere (graph, search) opens the path\n * to it. Keyboard follows the WAI-ARIA tree pattern: Up/Down move, Right opens\n * or enters, Left closes or goes to the parent, Enter/Space selects.\n *\n * A host that loads the tree a level at a time passes `mayHaveChildren` (so unloaded pages still offer\n * a chevron), listens to `onExpandedChange` to load the opened levels, and passes `loadMore` for\n * levels with more children to fetch. A page's `childCount`, when the server sends one, shows beside\n * its name. Selecting a page with children also opens it.\n */\nexport function KnowledgePageTree({\n pages,\n pinnedIds,\n selectedPageId,\n onSelect,\n initiallyExpanded,\n mayHaveChildren,\n onExpandedChange,\n loadMore,\n 'aria-label': ariaLabel = 'Knowledge pages',\n}: {\n pages: KnowledgePagePayload[];\n pinnedIds?: readonly string[];\n selectedPageId?: string | null;\n onSelect: (page: KnowledgePagePayload) => void;\n /** Ids open on first render; defaults to every root. */\n initiallyExpanded?: string[];\n /** True for a page whose children are not loaded yet, so it can still be opened. */\n mayHaveChildren?: (page: KnowledgePagePayload) => boolean;\n onExpandedChange?: (expanded: ReadonlySet<string>) => void;\n /** Parent id ({@link KNOWLEDGE_TREE_ROOT} for the roots) to a loader for its next children. */\n loadMore?: ReadonlyMap<string, () => void>;\n 'aria-label'?: string;\n}) {\n const roots = useMemo(() => buildPageTree(pages), [pages]);\n const pinned = useMemo(() => new Set(pinnedIds), [pinnedIds]);\n const [expanded, setExpanded] = useState<Set<string>>(\n () => new Set(initiallyExpanded ?? roots.map(root => root.page.id)),\n );\n const [focusedId, setFocusedId] = useState<string | null>(null);\n const itemRefs = useRef(new Map<string, HTMLDivElement>());\n\n // Open the path to a selection once. Later renders with the same selection and path (a refetch, a\n // level loading) leave it alone, so a parent the user collapses over the selection stays collapsed.\n const revealed = useRef<string | null>(null);\n useEffect(() => {\n if (!selectedPageId) {\n // Forget the last reveal, so picking the same page again after a clear opens its path.\n revealed.current = null;\n return;\n }\n const path = pageAncestorIds(pages, selectedPageId);\n const key = [selectedPageId, ...path].join('/');\n if (revealed.current === key) return;\n revealed.current = key;\n setExpanded(current => (path.every(id => current.has(id)) ? current : new Set([...current, ...path])));\n }, [pages, selectedPageId]);\n\n useEffect(() => {\n onExpandedChange?.(expanded);\n }, [expanded, onExpandedChange]);\n\n const rows = useMemo(\n () =>\n visiblePageRows(roots, expanded).map(row =>\n !row.hasChildren && mayHaveChildren?.(row.page) ? { ...row, hasChildren: true } : row,\n ),\n [roots, expanded, mayHaveChildren],\n );\n // Bring the selected row into view when it is selected, as soon as it exists, and again if rows that load\n // later push it out of view (a deep page's levels arrive one after another). Once the user scrolls, presses a key or\n // a pointer in the tree it is left alone. The row goes a third of the way down the scroller, middle-top, not\n // hard against its bottom edge; keyboard focus is not moved.\n const scroller = useRef<HTMLDivElement>(null);\n const scrolledTo = useRef<string | null>(null);\n const userScrolled = useRef(false);\n useEffect(() => {\n if (!selectedPageId) {\n scrolledTo.current = null;\n return;\n }\n const element = itemRefs.current.get(selectedPageId);\n if (!element) return;\n const first = scrolledTo.current !== selectedPageId;\n if (first) {\n scrolledTo.current = selectedPageId;\n userScrolled.current = false;\n } else if (userScrolled.current) return;\n const box = scrollingBox(scroller.current);\n const at = element.getBoundingClientRect();\n if (!first && !box) return;\n if (!first && box && box.height === 0 && at.top >= box.top && at.bottom <= box.bottom) return;\n if (box && box.height > 0) {\n // A row already well inside the scroller stays where it is.\n const inView = at.top >= box.top + box.height * COMFORT_TOP && at.bottom <= box.top + box.height * COMFORT_BOTTOM;\n if (inView) return;\n // Otherwise it lands a third of the way down; the browser clamps this at the top and bottom of the list.\n element.style.scrollMarginTop = `${box.height * SCROLL_ROW_AT}px`;\n }\n element.scrollIntoView?.({ block: 'start', behavior: first && prefersMotion() ? 'smooth' : 'auto' });\n // The margin only steers this scroll; left on, focus() scrolls and a resized pane would keep a stale gap.\n element.style.scrollMarginTop = '';\n }, [rows, selectedPageId]);\n const activeId =\n focusedId && rows.some(row => row.page.id === focusedId)\n ? focusedId\n : (rows.find(row => row.page.id === selectedPageId)?.page.id ?? rows[0]?.page.id);\n\n const toggle = (id: string, open: boolean) =>\n setExpanded(current => {\n if (current.has(id) === open) return current;\n const next = new Set(current);\n if (open) next.add(id);\n else next.delete(id);\n return next;\n });\n\n const focus = (id: string | undefined) => {\n if (!id) return;\n setFocusedId(id);\n itemRefs.current.get(id)?.focus();\n };\n\n const onKeyDown = (event: KeyboardEvent<HTMLDivElement>, index: number) => {\n const row = rows[index];\n if (!row) return;\n switch (event.key) {\n case 'ArrowDown':\n focus(rows[index + 1]?.page.id);\n break;\n case 'ArrowUp':\n focus(rows[index - 1]?.page.id);\n break;\n case 'ArrowRight':\n if (row.hasChildren && !row.expanded) toggle(row.page.id, true);\n else if (row.expanded) focus(rows[index + 1]?.page.id);\n break;\n case 'ArrowLeft':\n if (row.expanded) toggle(row.page.id, false);\n else focus(rows.slice(0, index).findLast(candidate => candidate.depth < row.depth)?.page.id);\n break;\n case 'Enter':\n case ' ':\n onSelect(row.page);\n break;\n default:\n return;\n }\n event.preventDefault();\n };\n\n if (rows.length === 0) {\n return <p className=\"px-3 py-2 text-body text-muted-foreground\">No pages yet.</p>;\n }\n\n const ancestorAt: string[] = [];\n return (\n <div\n ref={scroller}\n role=\"tree\"\n aria-label={ariaLabel}\n className=\"min-h-0 overflow-y-auto py-1\"\n onWheel={() => (userScrolled.current = true)}\n onTouchMove={() => (userScrolled.current = true)}\n onPointerDown={() => (userScrolled.current = true)}\n onKeyDown={() => (userScrolled.current = true)}\n >\n {rows.map((row, index) => {\n const selected = row.page.id === selectedPageId;\n ancestorAt[row.depth] = row.page.id;\n // Levels whose last loaded child is this row's subtree end here: offer their next children.\n const nextDepth = rows[index + 1]?.depth ?? -1;\n const closing: Array<{ parentId: string; depth: number }> = [];\n for (let depth = row.depth - 1; depth >= nextDepth; depth--) {\n const parentId = depth < 0 ? KNOWLEDGE_TREE_ROOT : ancestorAt[depth];\n if (parentId !== undefined) closing.push({ parentId, depth: depth + 1 });\n }\n if (row.expanded && rows[index + 1]?.depth !== row.depth + 1)\n closing.unshift({ parentId: row.page.id, depth: row.depth + 1 });\n return (\n <Fragment key={row.page.id}>\n <div\n ref={element => {\n if (element) itemRefs.current.set(row.page.id, element);\n else itemRefs.current.delete(row.page.id);\n }}\n role=\"treeitem\"\n aria-level={row.depth + 1}\n aria-selected={selected}\n aria-expanded={row.hasChildren ? row.expanded : undefined}\n tabIndex={row.page.id === activeId ? 0 : -1}\n onFocus={() => setFocusedId(row.page.id)}\n onKeyDown={event => onKeyDown(event, index)}\n onClick={() => {\n onSelect(row.page);\n // Selecting a page with children opens it too, which loads them in a lazily loaded tree.\n if (row.hasChildren) toggle(row.page.id, true);\n }}\n className={cn(\n 'flex h-8 cursor-pointer items-center gap-2 rounded-md pr-2 text-body-sm text-foreground outline-none focus-visible:bg-fill-subtle',\n selected ? 'bg-fill-hover' : 'hover:bg-fill-subtle',\n )}\n style={{ paddingLeft: `${row.depth * 12 + 4}px` }}\n >\n {row.hasChildren ? (\n <button\n type=\"button\"\n tabIndex={-1}\n aria-label={row.expanded ? `Collapse ${row.page.name}` : `Expand ${row.page.name}`}\n className=\"flex size-3 shrink-0 items-center justify-center text-muted-foreground hover:text-foreground\"\n onClick={event => {\n event.stopPropagation();\n toggle(row.page.id, !row.expanded);\n }}\n >\n <DisclosureChevron direction=\"right\" open={row.expanded} className=\"size-3\" />\n </button>\n ) : (\n <span className=\"size-3 shrink-0\" aria-hidden />\n )}\n <span className=\"flex shrink-0 items-center text-muted-foreground [&>svg]:size-3.5\" aria-hidden>\n {row.page.isScope && scopeTitle(row.page) !== row.page.name ? (\n <KnowledgeSourceIcon page={row.page} />\n ) : row.hasChildren ? (\n <Folder />\n ) : (\n <FileText />\n )}\n </span>\n <span className={cn('min-w-0 flex-1 truncate', row.page.isScope && 'font-medium')}>\n {scopeTitle(row.page)}\n </span>\n {row.page.childCount ? (\n <span\n data-testid=\"knowledge-tree-count\"\n aria-label={`${childCountLabel(row.page)} below`}\n className=\"shrink-0 text-caption text-placeholder tabular-nums\"\n >\n {childCountLabel(row.page)}\n </span>\n ) : null}\n {pinned.has(row.page.id) ? (\n <Pin size={12} className=\"shrink-0 text-badge-amber-indicator\" aria-label=\"Pinned\" />\n ) : null}\n {row.page.isScope && row.page.address && row.page.address !== row.page.name ? (\n <span\n data-testid=\"knowledge-tree-address\"\n className=\"max-w-1/2 min-w-0 truncate text-caption text-muted-foreground\"\n >\n {row.page.address}\n </span>\n ) : null}\n </div>\n {closing.map(({ parentId, depth }) => {\n const more = loadMore?.get(parentId);\n return more ? (\n <button\n key={`more-${parentId}`}\n type=\"button\"\n className=\"flex h-8 w-full items-center text-left text-caption text-muted-foreground hover:text-foreground\"\n style={{ paddingLeft: `${depth * 12 + 42}px` }}\n onClick={more}\n >\n Load more\n </button>\n ) : null;\n })}\n </Fragment>\n );\n })}\n </div>\n );\n}\n"],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_domains_knowledge_lib_pageAddress = require("../lib/pageAddress.cjs.js");
3
+ const require_utils = require("../../../utils-uDc1ofX1.cjs");
4
+ let react_jsx_runtime = require("react/jsx-runtime");
5
+ // src/domains/knowledge/components/KnowledgeSourceIcon.tsx
6
+ function KnowledgeSourceIcon({ page, className }) {
7
+ const SourceIcon = require_domains_knowledge_lib_pageAddress.scopeSource(page)?.icon;
8
+ if (!SourceIcon) return null;
9
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(SourceIcon, {
10
+ "aria-hidden": true,
11
+ className: require_utils.cn("shrink-0 text-foreground", className)
12
+ });
13
+ }
14
+ exports.KnowledgeSourceIcon = KnowledgeSourceIcon;
15
+
16
+ //# sourceMappingURL=KnowledgeSourceIcon.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KnowledgeSourceIcon.cjs.js","names":["scopeSource","cn"],"sources":["../../../../src/domains/knowledge/components/KnowledgeSourceIcon.tsx"],"sourcesContent":["import { scopeSource } from '../lib/pageAddress';\nimport type { KnowledgePagePayload } from '../pageTypes';\n\nimport { cn } from '@/lib/utils';\n\nexport function KnowledgeSourceIcon({ page, className }: { page: KnowledgePagePayload; className?: string }) {\n const SourceIcon = scopeSource(page)?.icon;\n if (!SourceIcon) return null;\n return <SourceIcon aria-hidden className={cn('shrink-0 text-foreground', className)} />;\n}\n"],"mappings":";;;;;AAKA,SAAgB,oBAAoB,EAAE,MAAM,aAAiE;CAC3G,MAAM,aAAaA,0CAAAA,YAAY,IAAI,CAAC,EAAE;CACtC,IAAI,CAAC,YAAY,OAAO;CACxB,OAAO,iBAAA,GAAA,kBAAA,IAAA,CAAC,YAAD;EAAY,eAAA;EAAY,WAAWC,cAAAA,GAAG,4BAA4B,SAAS;CAAI,CAAA;AACxF"}
@@ -0,0 +1 @@
1
+ export * from '../../../src/domains/knowledge/components/KnowledgeSourceIcon';
@@ -0,0 +1,15 @@
1
+ import { scopeSource } from "../lib/pageAddress.es.js";
2
+ import { t as cn } from "../../../utils-DQx8TpNT.js";
3
+ import { jsx } from "react/jsx-runtime";
4
+ // src/domains/knowledge/components/KnowledgeSourceIcon.tsx
5
+ function KnowledgeSourceIcon({ page, className }) {
6
+ const SourceIcon = scopeSource(page)?.icon;
7
+ if (!SourceIcon) return null;
8
+ return /* @__PURE__ */ jsx(SourceIcon, {
9
+ "aria-hidden": true,
10
+ className: cn("shrink-0 text-foreground", className)
11
+ });
12
+ }
13
+ export { KnowledgeSourceIcon };
14
+
15
+ //# sourceMappingURL=KnowledgeSourceIcon.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KnowledgeSourceIcon.es.js","names":[],"sources":["../../../../src/domains/knowledge/components/KnowledgeSourceIcon.tsx"],"sourcesContent":["import { scopeSource } from '../lib/pageAddress';\nimport type { KnowledgePagePayload } from '../pageTypes';\n\nimport { cn } from '@/lib/utils';\n\nexport function KnowledgeSourceIcon({ page, className }: { page: KnowledgePagePayload; className?: string }) {\n const SourceIcon = scopeSource(page)?.icon;\n if (!SourceIcon) return null;\n return <SourceIcon aria-hidden className={cn('shrink-0 text-foreground', className)} />;\n}\n"],"mappings":";;;;AAKA,SAAgB,oBAAoB,EAAE,MAAM,aAAiE;CAC3G,MAAM,aAAa,YAAY,IAAI,CAAC,EAAE;CACtC,IAAI,CAAC,YAAY,OAAO;CACxB,OAAO,oBAAC,YAAD;EAAY,eAAA;EAAY,WAAW,GAAG,4BAA4B,SAAS;CAAI,CAAA;AACxF"}
@@ -0,0 +1,10 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_tooltip = require("../../../tooltip-BsExuMO8.cjs");
3
+ let react_jsx_runtime = require("react/jsx-runtime");
4
+ // src/domains/knowledge/components/KnowledgeTooltip.tsx
5
+ function KnowledgeTooltip({ label, children }) {
6
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_tooltip.Tooltip, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_tooltip.TooltipTrigger, { render: children }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_tooltip.TooltipContent, { children: label })] });
7
+ }
8
+ exports.KnowledgeTooltip = KnowledgeTooltip;
9
+
10
+ //# sourceMappingURL=KnowledgeTooltip.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KnowledgeTooltip.cjs.js","names":["Tooltip","TooltipTrigger","TooltipContent"],"sources":["../../../../src/domains/knowledge/components/KnowledgeTooltip.tsx"],"sourcesContent":["import type { ReactElement, ReactNode } from 'react';\n\nimport { Tooltip, TooltipContent, TooltipTrigger } from '@/ds/components/Tooltip/tooltip';\n\nexport function KnowledgeTooltip({ label, children }: { label: ReactNode; children: ReactElement }) {\n return (\n <Tooltip>\n <TooltipTrigger render={children} />\n <TooltipContent>{label}</TooltipContent>\n </Tooltip>\n );\n}\n"],"mappings":";;;;AAIA,SAAgB,iBAAiB,EAAE,OAAO,YAA0D;CAClG,OACE,iBAAA,GAAA,kBAAA,KAAA,CAACA,gBAAAA,SAAD,EAAA,UAAA,CACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,gBAAAA,gBAAD,EAAgB,QAAQ,SAAW,CAAA,GACnC,iBAAA,GAAA,kBAAA,IAAA,CAACC,gBAAAA,gBAAD,EAAA,UAAiB,MAAsB,CAAA,CAChC,EAAA,CAAA;AAEb"}
@@ -0,0 +1 @@
1
+ export * from '../../../src/domains/knowledge/components/KnowledgeTooltip';
@@ -0,0 +1,9 @@
1
+ import { i as TooltipTrigger, n as TooltipContent, t as Tooltip } from "../../../tooltip-DJcze2VZ.js";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ // src/domains/knowledge/components/KnowledgeTooltip.tsx
4
+ function KnowledgeTooltip({ label, children }) {
5
+ return /* @__PURE__ */ jsxs(Tooltip, { children: [/* @__PURE__ */ jsx(TooltipTrigger, { render: children }), /* @__PURE__ */ jsx(TooltipContent, { children: label })] });
6
+ }
7
+ export { KnowledgeTooltip };
8
+
9
+ //# sourceMappingURL=KnowledgeTooltip.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KnowledgeTooltip.es.js","names":[],"sources":["../../../../src/domains/knowledge/components/KnowledgeTooltip.tsx"],"sourcesContent":["import type { ReactElement, ReactNode } from 'react';\n\nimport { Tooltip, TooltipContent, TooltipTrigger } from '@/ds/components/Tooltip/tooltip';\n\nexport function KnowledgeTooltip({ label, children }: { label: ReactNode; children: ReactElement }) {\n return (\n <Tooltip>\n <TooltipTrigger render={children} />\n <TooltipContent>{label}</TooltipContent>\n </Tooltip>\n );\n}\n"],"mappings":";;;AAIA,SAAgB,iBAAiB,EAAE,OAAO,YAA0D;CAClG,OACE,qBAAC,SAAD,EAAA,UAAA,CACE,oBAAC,gBAAD,EAAgB,QAAQ,SAAW,CAAA,GACnC,oBAAC,gBAAD,EAAA,UAAiB,MAAsB,CAAA,CAChC,EAAA,CAAA;AAEb"}
@@ -5,23 +5,35 @@ let _xyflow_react = require("@xyflow/react");
5
5
  // src/domains/knowledge/lib/fitViewport.ts
6
6
  /** How far Fit view may zoom out to frame a ring of linked pages, which the readable floor would crop. */
7
7
  var RING_MIN_ZOOM = .15;
8
+ var NO_INSETS = {
9
+ left: 0,
10
+ right: 0
11
+ };
12
+ function uncoveredInsets(width, insets) {
13
+ return width - insets.left - insets.right > 0 ? insets : NO_INSETS;
14
+ }
8
15
  /**
9
16
  * The viewport that frames `bounds`. Zoom stops at the readable floor, so what is cropped is the edge, not
10
17
  * the page being looked at; only Fit view, with an outer ring, goes lower so the whole ring shows.
11
18
  */
12
- function fitViewport({ bounds, width, height, ring, anchor }) {
19
+ function fitViewport({ bounds, width, height, ring, anchor, insets: drawers = NO_INSETS }) {
20
+ const insets = uncoveredInsets(width, drawers);
13
21
  const floor = ring ? RING_MIN_ZOOM : require_domains_knowledge_lib_graphShape.READABLE_MIN_ZOOM;
14
- const viewport = (0, _xyflow_react.getViewportForBounds)(bounds, width, height, floor, 2, .1);
22
+ const visible = width - insets.left - insets.right;
23
+ const viewport = (0, _xyflow_react.getViewportForBounds)(bounds, visible, height, floor, 2, .1);
15
24
  if (anchor && viewport.zoom <= floor) {
16
25
  const cx = anchor.position.x + (anchor.width ?? 0) / 2;
17
26
  const cy = anchor.position.y + (anchor.height ?? 0) / 2;
18
27
  return {
19
28
  zoom: viewport.zoom,
20
- x: width / 2 - cx * viewport.zoom,
29
+ x: insets.left + visible / 2 - cx * viewport.zoom,
21
30
  y: height / 2 - cy * viewport.zoom
22
31
  };
23
32
  }
24
- return viewport;
33
+ return {
34
+ ...viewport,
35
+ x: viewport.x + insets.left
36
+ };
25
37
  }
26
38
  /** Margin around the drawn nodes on the first view, as a share of the pane. */
27
39
  var INITIAL_FIT_PADDING = .05;
@@ -35,16 +47,17 @@ var INITIAL_SETTLE_MS = 3e3;
35
47
  * fit would put a node under the legend, the pane is fitted again beside it or below it, whichever keeps
36
48
  * the pages larger.
37
49
  */
38
- function fitAllViewport({ bounds, nodes, width, height, legend }) {
50
+ function fitAllViewport({ bounds, nodes, width, height, legend, insets: drawers = NO_INSETS }) {
51
+ const insets = uncoveredInsets(width, drawers);
39
52
  const fitIn = (left, top) => {
40
- const view = (0, _xyflow_react.getViewportForBounds)(bounds, width - left, height - top, RING_MIN_ZOOM, 1, INITIAL_FIT_PADDING);
53
+ const view = (0, _xyflow_react.getViewportForBounds)(bounds, width - left - insets.right, height - top, RING_MIN_ZOOM, 1, INITIAL_FIT_PADDING);
41
54
  return {
42
55
  zoom: view.zoom,
43
56
  x: view.x + left,
44
57
  y: view.y + top
45
58
  };
46
59
  };
47
- const plain = fitIn(0, 0);
60
+ const plain = fitIn(insets.left, 0);
48
61
  if (!legend) return plain;
49
62
  if (!nodes.some((node) => {
50
63
  const left = node.x * plain.zoom + plain.x;
@@ -52,7 +65,7 @@ function fitAllViewport({ bounds, nodes, width, height, legend }) {
52
65
  return left < legend.right && top < legend.bottom;
53
66
  })) return plain;
54
67
  const beside = fitIn(legend.right, 0);
55
- const below = fitIn(0, legend.bottom);
68
+ const below = fitIn(insets.left, legend.bottom);
56
69
  return beside.zoom >= below.zoom ? beside : below;
57
70
  }
58
71
  /** How long a view change animates: the same as the layout's own transition, and none under reduced motion. */
@@ -78,5 +91,6 @@ exports.fitAllViewport = fitAllViewport;
78
91
  exports.fitDuration = fitDuration;
79
92
  exports.fitViewport = fitViewport;
80
93
  exports.nudgeAxis = nudgeAxis;
94
+ exports.uncoveredInsets = uncoveredInsets;
81
95
 
82
96
  //# sourceMappingURL=fitViewport.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fitViewport.cjs.js","names":["READABLE_MIN_ZOOM","getViewportForBounds"],"sources":["../../../../src/domains/knowledge/lib/fitViewport.ts"],"sourcesContent":["import { getViewportForBounds } from '@xyflow/react';\nimport type { Viewport } from '@xyflow/react';\n\nimport { READABLE_MIN_ZOOM } from './graphShape';\nimport { KNOWLEDGE_GRAPH_TRANSITION_MS } from './useLeavingNodes';\n\n/** How far Fit view may zoom out to frame a ring of linked pages, which the readable floor would crop. */\nexport const RING_MIN_ZOOM = 0.15;\n\ninterface FitInput {\n bounds: { x: number; y: number; width: number; height: number };\n width: number;\n height: number;\n /** Fit view on a focus with an outer ring of linked pages: frame all of it, below the readable floor if need be. */\n ring?: boolean;\n /** The focus (or the layout's centre): what stays centred when a floor stops the fit. */\n anchor?: { position: { x: number; y: number }; width?: number; height?: number };\n}\n\n/**\n * The viewport that frames `bounds`. Zoom stops at the readable floor, so what is cropped is the edge, not\n * the page being looked at; only Fit view, with an outer ring, goes lower so the whole ring shows.\n */\nexport function fitViewport({ bounds, width, height, ring, anchor }: FitInput): Viewport {\n const floor = ring ? RING_MIN_ZOOM : READABLE_MIN_ZOOM;\n const viewport = getViewportForBounds(bounds, width, height, floor, 2, 0.1);\n if (anchor && viewport.zoom <= floor) {\n const cx = anchor.position.x + (anchor.width ?? 0) / 2;\n const cy = anchor.position.y + (anchor.height ?? 0) / 2;\n return { zoom: viewport.zoom, x: width / 2 - cx * viewport.zoom, y: height / 2 - cy * viewport.zoom };\n }\n return viewport;\n}\n\n/** Margin around the drawn nodes on the first view, as a share of the pane. */\nexport const INITIAL_FIT_PADDING = 0.05;\n/** The first view never zooms in past the pages' own size, however few there are. */\nexport const INITIAL_FIT_MAX_ZOOM = 1;\n/** How long after the first view the graph keeps refitting as pages arrive, unless the user acts first. */\nexport const INITIAL_SETTLE_MS = 3000;\n\ntype Rect = { x: number; y: number; width: number; height: number };\n\n/**\n * The first view of a graph: every drawn node in the pane with a small margin, never zoomed in past what\n * fits, and clear of `legend` (the box, in pane pixels, an overlay covers at the top left). When the plain\n * fit would put a node under the legend, the pane is fitted again beside it or below it, whichever keeps\n * the pages larger.\n */\nexport function fitAllViewport({\n bounds,\n nodes,\n width,\n height,\n legend,\n}: {\n bounds: Rect;\n nodes: Rect[];\n width: number;\n height: number;\n legend?: { right: number; bottom: number };\n}): Viewport {\n const fitIn = (left: number, top: number): Viewport => {\n const view = getViewportForBounds(\n bounds,\n width - left,\n height - top,\n RING_MIN_ZOOM,\n INITIAL_FIT_MAX_ZOOM,\n INITIAL_FIT_PADDING,\n );\n return { zoom: view.zoom, x: view.x + left, y: view.y + top };\n };\n const plain = fitIn(0, 0);\n if (!legend) return plain;\n const covered = nodes.some(node => {\n const left = node.x * plain.zoom + plain.x;\n const top = node.y * plain.zoom + plain.y;\n return left < legend.right && top < legend.bottom;\n });\n if (!covered) return plain;\n const beside = fitIn(legend.right, 0);\n const below = fitIn(0, legend.bottom);\n return beside.zoom >= below.zoom ? beside : below;\n}\n\n/** How long a view change animates: the same as the layout's own transition, and none under reduced motion. */\nexport const fitDuration = (motion: boolean) => (motion ? KNOWLEDGE_GRAPH_TRANSITION_MS : 0);\n\n/** How close to the pane's edge a refocused page may sit before the view moves to bring it in. */\nexport const NUDGE_PADDING = 24;\n\n/**\n * How far to move the view along one axis so a page at `start` (screen position) of `size` stays inside a\n * pane of `extent`, with padding. Zero when it already is; centred when it can't fit with the padding.\n */\nexport function nudgeAxis(start: number, size: number, extent: number): number {\n if (size + NUDGE_PADDING * 2 > extent) return extent / 2 - (start + size / 2);\n if (start < NUDGE_PADDING) return NUDGE_PADDING - start;\n const overflow = start + size - (extent - NUDGE_PADDING);\n return overflow > 0 ? -overflow : 0;\n}\n"],"mappings":";;;;;;AAOA,IAAa,gBAAgB;;;;;AAgB7B,SAAgB,YAAY,EAAE,QAAQ,OAAO,QAAQ,MAAM,UAA8B;CACvF,MAAM,QAAQ,OAAO,gBAAgBA,yCAAAA;CACrC,MAAM,YAAA,GAAWC,cAAAA,qBAAAA,CAAqB,QAAQ,OAAO,QAAQ,OAAO,GAAG,EAAG;CAC1E,IAAI,UAAU,SAAS,QAAQ,OAAO;EACpC,MAAM,KAAK,OAAO,SAAS,KAAK,OAAO,SAAS,KAAK;EACrD,MAAM,KAAK,OAAO,SAAS,KAAK,OAAO,UAAU,KAAK;EACtD,OAAO;GAAE,MAAM,SAAS;GAAM,GAAG,QAAQ,IAAI,KAAK,SAAS;GAAM,GAAG,SAAS,IAAI,KAAK,SAAS;EAAK;CACtG;CACA,OAAO;AACT;;AAGA,IAAa,sBAAsB;;AAEnC,IAAa,uBAAuB;;AAEpC,IAAa,oBAAoB;;;;;;;AAUjC,SAAgB,eAAe,EAC7B,QACA,OACA,OACA,QACA,UAOW;CACX,MAAM,SAAS,MAAc,QAA0B;EACrD,MAAM,QAAA,GAAOA,cAAAA,qBAAAA,CACX,QACA,QAAQ,MACR,SAAS,KACT,eAAA,GAEA,mBACF;EACA,OAAO;GAAE,MAAM,KAAK;GAAM,GAAG,KAAK,IAAI;GAAM,GAAG,KAAK,IAAI;EAAI;CAC9D;CACA,MAAM,QAAQ,MAAM,GAAG,CAAC;CACxB,IAAI,CAAC,QAAQ,OAAO;CAMpB,IAAI,CALY,MAAM,MAAK,SAAQ;EACjC,MAAM,OAAO,KAAK,IAAI,MAAM,OAAO,MAAM;EACzC,MAAM,MAAM,KAAK,IAAI,MAAM,OAAO,MAAM;EACxC,OAAO,OAAO,OAAO,SAAS,MAAM,OAAO;CAC7C,CACK,GAAS,OAAO;CACrB,MAAM,SAAS,MAAM,OAAO,OAAO,CAAC;CACpC,MAAM,QAAQ,MAAM,GAAG,OAAO,MAAM;CACpC,OAAO,OAAO,QAAQ,MAAM,OAAO,SAAS;AAC9C;;AAGA,IAAa,eAAe,WAAqB,SAAA,MAAyC;;AAG1F,IAAa,gBAAgB;;;;;AAM7B,SAAgB,UAAU,OAAe,MAAc,QAAwB;CAC7E,IAAI,OAAO,KAAoB,QAAQ,OAAO,SAAS,KAAK,QAAQ,OAAO;CAC3E,IAAI,QAAA,IAAuB,OAAA,KAAuB;CAClD,MAAM,WAAW,QAAQ,QAAQ,SAAA;CACjC,OAAO,WAAW,IAAI,CAAC,WAAW;AACpC"}
1
+ {"version":3,"file":"fitViewport.cjs.js","names":["READABLE_MIN_ZOOM","getViewportForBounds"],"sources":["../../../../src/domains/knowledge/lib/fitViewport.ts"],"sourcesContent":["import { getViewportForBounds } from '@xyflow/react';\nimport type { Viewport } from '@xyflow/react';\n\nimport { READABLE_MIN_ZOOM } from './graphShape';\nimport { KNOWLEDGE_GRAPH_TRANSITION_MS } from './useLeavingNodes';\n\n/** How far Fit view may zoom out to frame a ring of linked pages, which the readable floor would crop. */\nexport const RING_MIN_ZOOM = 0.15;\n\ninterface FitInput {\n bounds: { x: number; y: number; width: number; height: number };\n width: number;\n height: number;\n /** Fit view on a focus with an outer ring of linked pages: frame all of it, below the readable floor if need be. */\n ring?: boolean;\n /** The focus (or the layout's centre): what stays centred when a floor stops the fit. */\n anchor?: { position: { x: number; y: number }; width?: number; height?: number };\n insets?: PaneInsets;\n}\n\nexport interface PaneInsets {\n left: number;\n right: number;\n}\n\nconst NO_INSETS: PaneInsets = { left: 0, right: 0 };\n\nexport function uncoveredInsets(width: number, insets: PaneInsets): PaneInsets {\n return width - insets.left - insets.right > 0 ? insets : NO_INSETS;\n}\n\n/**\n * The viewport that frames `bounds`. Zoom stops at the readable floor, so what is cropped is the edge, not\n * the page being looked at; only Fit view, with an outer ring, goes lower so the whole ring shows.\n */\nexport function fitViewport({ bounds, width, height, ring, anchor, insets: drawers = NO_INSETS }: FitInput): Viewport {\n const insets = uncoveredInsets(width, drawers);\n const floor = ring ? RING_MIN_ZOOM : READABLE_MIN_ZOOM;\n const visible = width - insets.left - insets.right;\n const viewport = getViewportForBounds(bounds, visible, height, floor, 2, 0.1);\n if (anchor && viewport.zoom <= floor) {\n const cx = anchor.position.x + (anchor.width ?? 0) / 2;\n const cy = anchor.position.y + (anchor.height ?? 0) / 2;\n return {\n zoom: viewport.zoom,\n x: insets.left + visible / 2 - cx * viewport.zoom,\n y: height / 2 - cy * viewport.zoom,\n };\n }\n return { ...viewport, x: viewport.x + insets.left };\n}\n\n/** Margin around the drawn nodes on the first view, as a share of the pane. */\nexport const INITIAL_FIT_PADDING = 0.05;\n/** The first view never zooms in past the pages' own size, however few there are. */\nexport const INITIAL_FIT_MAX_ZOOM = 1;\n/** How long after the first view the graph keeps refitting as pages arrive, unless the user acts first. */\nexport const INITIAL_SETTLE_MS = 3000;\n\ntype Rect = { x: number; y: number; width: number; height: number };\n\n/**\n * The first view of a graph: every drawn node in the pane with a small margin, never zoomed in past what\n * fits, and clear of `legend` (the box, in pane pixels, an overlay covers at the top left). When the plain\n * fit would put a node under the legend, the pane is fitted again beside it or below it, whichever keeps\n * the pages larger.\n */\nexport function fitAllViewport({\n bounds,\n nodes,\n width,\n height,\n legend,\n insets: drawers = NO_INSETS,\n}: {\n bounds: Rect;\n nodes: Rect[];\n width: number;\n height: number;\n legend?: { right: number; bottom: number };\n insets?: PaneInsets;\n}): Viewport {\n const insets = uncoveredInsets(width, drawers);\n const fitIn = (left: number, top: number): Viewport => {\n const view = getViewportForBounds(\n bounds,\n width - left - insets.right,\n height - top,\n RING_MIN_ZOOM,\n INITIAL_FIT_MAX_ZOOM,\n INITIAL_FIT_PADDING,\n );\n return { zoom: view.zoom, x: view.x + left, y: view.y + top };\n };\n const plain = fitIn(insets.left, 0);\n if (!legend) return plain;\n const covered = nodes.some(node => {\n const left = node.x * plain.zoom + plain.x;\n const top = node.y * plain.zoom + plain.y;\n return left < legend.right && top < legend.bottom;\n });\n if (!covered) return plain;\n const beside = fitIn(legend.right, 0);\n const below = fitIn(insets.left, legend.bottom);\n return beside.zoom >= below.zoom ? beside : below;\n}\n\n/** How long a view change animates: the same as the layout's own transition, and none under reduced motion. */\nexport const fitDuration = (motion: boolean) => (motion ? KNOWLEDGE_GRAPH_TRANSITION_MS : 0);\n\n/** How close to the pane's edge a refocused page may sit before the view moves to bring it in. */\nexport const NUDGE_PADDING = 24;\n\n/**\n * How far to move the view along one axis so a page at `start` (screen position) of `size` stays inside a\n * pane of `extent`, with padding. Zero when it already is; centred when it can't fit with the padding.\n */\nexport function nudgeAxis(start: number, size: number, extent: number): number {\n if (size + NUDGE_PADDING * 2 > extent) return extent / 2 - (start + size / 2);\n if (start < NUDGE_PADDING) return NUDGE_PADDING - start;\n const overflow = start + size - (extent - NUDGE_PADDING);\n return overflow > 0 ? -overflow : 0;\n}\n"],"mappings":";;;;;;AAOA,IAAa,gBAAgB;AAkB7B,IAAM,YAAwB;CAAE,MAAM;CAAG,OAAO;AAAE;AAElD,SAAgB,gBAAgB,OAAe,QAAgC;CAC7E,OAAO,QAAQ,OAAO,OAAO,OAAO,QAAQ,IAAI,SAAS;AAC3D;;;;;AAMA,SAAgB,YAAY,EAAE,QAAQ,OAAO,QAAQ,MAAM,QAAQ,QAAQ,UAAU,aAAiC;CACpH,MAAM,SAAS,gBAAgB,OAAO,OAAO;CAC7C,MAAM,QAAQ,OAAO,gBAAgBA,yCAAAA;CACrC,MAAM,UAAU,QAAQ,OAAO,OAAO,OAAO;CAC7C,MAAM,YAAA,GAAWC,cAAAA,qBAAAA,CAAqB,QAAQ,SAAS,QAAQ,OAAO,GAAG,EAAG;CAC5E,IAAI,UAAU,SAAS,QAAQ,OAAO;EACpC,MAAM,KAAK,OAAO,SAAS,KAAK,OAAO,SAAS,KAAK;EACrD,MAAM,KAAK,OAAO,SAAS,KAAK,OAAO,UAAU,KAAK;EACtD,OAAO;GACL,MAAM,SAAS;GACf,GAAG,OAAO,OAAO,UAAU,IAAI,KAAK,SAAS;GAC7C,GAAG,SAAS,IAAI,KAAK,SAAS;EAChC;CACF;CACA,OAAO;EAAE,GAAG;EAAU,GAAG,SAAS,IAAI,OAAO;CAAK;AACpD;;AAGA,IAAa,sBAAsB;;AAEnC,IAAa,uBAAuB;;AAEpC,IAAa,oBAAoB;;;;;;;AAUjC,SAAgB,eAAe,EAC7B,QACA,OACA,OACA,QACA,QACA,QAAQ,UAAU,aAQP;CACX,MAAM,SAAS,gBAAgB,OAAO,OAAO;CAC7C,MAAM,SAAS,MAAc,QAA0B;EACrD,MAAM,QAAA,GAAOA,cAAAA,qBAAAA,CACX,QACA,QAAQ,OAAO,OAAO,OACtB,SAAS,KACT,eAAA,GAEA,mBACF;EACA,OAAO;GAAE,MAAM,KAAK;GAAM,GAAG,KAAK,IAAI;GAAM,GAAG,KAAK,IAAI;EAAI;CAC9D;CACA,MAAM,QAAQ,MAAM,OAAO,MAAM,CAAC;CAClC,IAAI,CAAC,QAAQ,OAAO;CAMpB,IAAI,CALY,MAAM,MAAK,SAAQ;EACjC,MAAM,OAAO,KAAK,IAAI,MAAM,OAAO,MAAM;EACzC,MAAM,MAAM,KAAK,IAAI,MAAM,OAAO,MAAM;EACxC,OAAO,OAAO,OAAO,SAAS,MAAM,OAAO;CAC7C,CACK,GAAS,OAAO;CACrB,MAAM,SAAS,MAAM,OAAO,OAAO,CAAC;CACpC,MAAM,QAAQ,MAAM,OAAO,MAAM,OAAO,MAAM;CAC9C,OAAO,OAAO,QAAQ,MAAM,OAAO,SAAS;AAC9C;;AAGA,IAAa,eAAe,WAAqB,SAAA,MAAyC;;AAG1F,IAAa,gBAAgB;;;;;AAM7B,SAAgB,UAAU,OAAe,MAAc,QAAwB;CAC7E,IAAI,OAAO,KAAoB,QAAQ,OAAO,SAAS,KAAK,QAAQ,OAAO;CAC3E,IAAI,QAAA,IAAuB,OAAA,KAAuB;CAClD,MAAM,WAAW,QAAQ,QAAQ,SAAA;CACjC,OAAO,WAAW,IAAI,CAAC,WAAW;AACpC"}
@@ -4,23 +4,35 @@ import { getViewportForBounds } from "@xyflow/react";
4
4
  // src/domains/knowledge/lib/fitViewport.ts
5
5
  /** How far Fit view may zoom out to frame a ring of linked pages, which the readable floor would crop. */
6
6
  var RING_MIN_ZOOM = .15;
7
+ var NO_INSETS = {
8
+ left: 0,
9
+ right: 0
10
+ };
11
+ function uncoveredInsets(width, insets) {
12
+ return width - insets.left - insets.right > 0 ? insets : NO_INSETS;
13
+ }
7
14
  /**
8
15
  * The viewport that frames `bounds`. Zoom stops at the readable floor, so what is cropped is the edge, not
9
16
  * the page being looked at; only Fit view, with an outer ring, goes lower so the whole ring shows.
10
17
  */
11
- function fitViewport({ bounds, width, height, ring, anchor }) {
18
+ function fitViewport({ bounds, width, height, ring, anchor, insets: drawers = NO_INSETS }) {
19
+ const insets = uncoveredInsets(width, drawers);
12
20
  const floor = ring ? RING_MIN_ZOOM : READABLE_MIN_ZOOM;
13
- const viewport = getViewportForBounds(bounds, width, height, floor, 2, .1);
21
+ const visible = width - insets.left - insets.right;
22
+ const viewport = getViewportForBounds(bounds, visible, height, floor, 2, .1);
14
23
  if (anchor && viewport.zoom <= floor) {
15
24
  const cx = anchor.position.x + (anchor.width ?? 0) / 2;
16
25
  const cy = anchor.position.y + (anchor.height ?? 0) / 2;
17
26
  return {
18
27
  zoom: viewport.zoom,
19
- x: width / 2 - cx * viewport.zoom,
28
+ x: insets.left + visible / 2 - cx * viewport.zoom,
20
29
  y: height / 2 - cy * viewport.zoom
21
30
  };
22
31
  }
23
- return viewport;
32
+ return {
33
+ ...viewport,
34
+ x: viewport.x + insets.left
35
+ };
24
36
  }
25
37
  /** Margin around the drawn nodes on the first view, as a share of the pane. */
26
38
  var INITIAL_FIT_PADDING = .05;
@@ -34,16 +46,17 @@ var INITIAL_SETTLE_MS = 3e3;
34
46
  * fit would put a node under the legend, the pane is fitted again beside it or below it, whichever keeps
35
47
  * the pages larger.
36
48
  */
37
- function fitAllViewport({ bounds, nodes, width, height, legend }) {
49
+ function fitAllViewport({ bounds, nodes, width, height, legend, insets: drawers = NO_INSETS }) {
50
+ const insets = uncoveredInsets(width, drawers);
38
51
  const fitIn = (left, top) => {
39
- const view = getViewportForBounds(bounds, width - left, height - top, RING_MIN_ZOOM, 1, INITIAL_FIT_PADDING);
52
+ const view = getViewportForBounds(bounds, width - left - insets.right, height - top, RING_MIN_ZOOM, 1, INITIAL_FIT_PADDING);
40
53
  return {
41
54
  zoom: view.zoom,
42
55
  x: view.x + left,
43
56
  y: view.y + top
44
57
  };
45
58
  };
46
- const plain = fitIn(0, 0);
59
+ const plain = fitIn(insets.left, 0);
47
60
  if (!legend) return plain;
48
61
  if (!nodes.some((node) => {
49
62
  const left = node.x * plain.zoom + plain.x;
@@ -51,7 +64,7 @@ function fitAllViewport({ bounds, nodes, width, height, legend }) {
51
64
  return left < legend.right && top < legend.bottom;
52
65
  })) return plain;
53
66
  const beside = fitIn(legend.right, 0);
54
- const below = fitIn(0, legend.bottom);
67
+ const below = fitIn(insets.left, legend.bottom);
55
68
  return beside.zoom >= below.zoom ? beside : below;
56
69
  }
57
70
  /** How long a view change animates: the same as the layout's own transition, and none under reduced motion. */
@@ -68,6 +81,6 @@ function nudgeAxis(start, size, extent) {
68
81
  const overflow = start + size - (extent - 24);
69
82
  return overflow > 0 ? -overflow : 0;
70
83
  }
71
- export { INITIAL_FIT_MAX_ZOOM, INITIAL_FIT_PADDING, INITIAL_SETTLE_MS, NUDGE_PADDING, RING_MIN_ZOOM, fitAllViewport, fitDuration, fitViewport, nudgeAxis };
84
+ export { INITIAL_FIT_MAX_ZOOM, INITIAL_FIT_PADDING, INITIAL_SETTLE_MS, NUDGE_PADDING, RING_MIN_ZOOM, fitAllViewport, fitDuration, fitViewport, nudgeAxis, uncoveredInsets };
72
85
 
73
86
  //# sourceMappingURL=fitViewport.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fitViewport.es.js","names":[],"sources":["../../../../src/domains/knowledge/lib/fitViewport.ts"],"sourcesContent":["import { getViewportForBounds } from '@xyflow/react';\nimport type { Viewport } from '@xyflow/react';\n\nimport { READABLE_MIN_ZOOM } from './graphShape';\nimport { KNOWLEDGE_GRAPH_TRANSITION_MS } from './useLeavingNodes';\n\n/** How far Fit view may zoom out to frame a ring of linked pages, which the readable floor would crop. */\nexport const RING_MIN_ZOOM = 0.15;\n\ninterface FitInput {\n bounds: { x: number; y: number; width: number; height: number };\n width: number;\n height: number;\n /** Fit view on a focus with an outer ring of linked pages: frame all of it, below the readable floor if need be. */\n ring?: boolean;\n /** The focus (or the layout's centre): what stays centred when a floor stops the fit. */\n anchor?: { position: { x: number; y: number }; width?: number; height?: number };\n}\n\n/**\n * The viewport that frames `bounds`. Zoom stops at the readable floor, so what is cropped is the edge, not\n * the page being looked at; only Fit view, with an outer ring, goes lower so the whole ring shows.\n */\nexport function fitViewport({ bounds, width, height, ring, anchor }: FitInput): Viewport {\n const floor = ring ? RING_MIN_ZOOM : READABLE_MIN_ZOOM;\n const viewport = getViewportForBounds(bounds, width, height, floor, 2, 0.1);\n if (anchor && viewport.zoom <= floor) {\n const cx = anchor.position.x + (anchor.width ?? 0) / 2;\n const cy = anchor.position.y + (anchor.height ?? 0) / 2;\n return { zoom: viewport.zoom, x: width / 2 - cx * viewport.zoom, y: height / 2 - cy * viewport.zoom };\n }\n return viewport;\n}\n\n/** Margin around the drawn nodes on the first view, as a share of the pane. */\nexport const INITIAL_FIT_PADDING = 0.05;\n/** The first view never zooms in past the pages' own size, however few there are. */\nexport const INITIAL_FIT_MAX_ZOOM = 1;\n/** How long after the first view the graph keeps refitting as pages arrive, unless the user acts first. */\nexport const INITIAL_SETTLE_MS = 3000;\n\ntype Rect = { x: number; y: number; width: number; height: number };\n\n/**\n * The first view of a graph: every drawn node in the pane with a small margin, never zoomed in past what\n * fits, and clear of `legend` (the box, in pane pixels, an overlay covers at the top left). When the plain\n * fit would put a node under the legend, the pane is fitted again beside it or below it, whichever keeps\n * the pages larger.\n */\nexport function fitAllViewport({\n bounds,\n nodes,\n width,\n height,\n legend,\n}: {\n bounds: Rect;\n nodes: Rect[];\n width: number;\n height: number;\n legend?: { right: number; bottom: number };\n}): Viewport {\n const fitIn = (left: number, top: number): Viewport => {\n const view = getViewportForBounds(\n bounds,\n width - left,\n height - top,\n RING_MIN_ZOOM,\n INITIAL_FIT_MAX_ZOOM,\n INITIAL_FIT_PADDING,\n );\n return { zoom: view.zoom, x: view.x + left, y: view.y + top };\n };\n const plain = fitIn(0, 0);\n if (!legend) return plain;\n const covered = nodes.some(node => {\n const left = node.x * plain.zoom + plain.x;\n const top = node.y * plain.zoom + plain.y;\n return left < legend.right && top < legend.bottom;\n });\n if (!covered) return plain;\n const beside = fitIn(legend.right, 0);\n const below = fitIn(0, legend.bottom);\n return beside.zoom >= below.zoom ? beside : below;\n}\n\n/** How long a view change animates: the same as the layout's own transition, and none under reduced motion. */\nexport const fitDuration = (motion: boolean) => (motion ? KNOWLEDGE_GRAPH_TRANSITION_MS : 0);\n\n/** How close to the pane's edge a refocused page may sit before the view moves to bring it in. */\nexport const NUDGE_PADDING = 24;\n\n/**\n * How far to move the view along one axis so a page at `start` (screen position) of `size` stays inside a\n * pane of `extent`, with padding. Zero when it already is; centred when it can't fit with the padding.\n */\nexport function nudgeAxis(start: number, size: number, extent: number): number {\n if (size + NUDGE_PADDING * 2 > extent) return extent / 2 - (start + size / 2);\n if (start < NUDGE_PADDING) return NUDGE_PADDING - start;\n const overflow = start + size - (extent - NUDGE_PADDING);\n return overflow > 0 ? -overflow : 0;\n}\n"],"mappings":";;;;;AAOA,IAAa,gBAAgB;;;;;AAgB7B,SAAgB,YAAY,EAAE,QAAQ,OAAO,QAAQ,MAAM,UAA8B;CACvF,MAAM,QAAQ,OAAO,gBAAgB;CACrC,MAAM,WAAW,qBAAqB,QAAQ,OAAO,QAAQ,OAAO,GAAG,EAAG;CAC1E,IAAI,UAAU,SAAS,QAAQ,OAAO;EACpC,MAAM,KAAK,OAAO,SAAS,KAAK,OAAO,SAAS,KAAK;EACrD,MAAM,KAAK,OAAO,SAAS,KAAK,OAAO,UAAU,KAAK;EACtD,OAAO;GAAE,MAAM,SAAS;GAAM,GAAG,QAAQ,IAAI,KAAK,SAAS;GAAM,GAAG,SAAS,IAAI,KAAK,SAAS;EAAK;CACtG;CACA,OAAO;AACT;;AAGA,IAAa,sBAAsB;;AAEnC,IAAa,uBAAuB;;AAEpC,IAAa,oBAAoB;;;;;;;AAUjC,SAAgB,eAAe,EAC7B,QACA,OACA,OACA,QACA,UAOW;CACX,MAAM,SAAS,MAAc,QAA0B;EACrD,MAAM,OAAO,qBACX,QACA,QAAQ,MACR,SAAS,KACT,eAAA,GAEA,mBACF;EACA,OAAO;GAAE,MAAM,KAAK;GAAM,GAAG,KAAK,IAAI;GAAM,GAAG,KAAK,IAAI;EAAI;CAC9D;CACA,MAAM,QAAQ,MAAM,GAAG,CAAC;CACxB,IAAI,CAAC,QAAQ,OAAO;CAMpB,IAAI,CALY,MAAM,MAAK,SAAQ;EACjC,MAAM,OAAO,KAAK,IAAI,MAAM,OAAO,MAAM;EACzC,MAAM,MAAM,KAAK,IAAI,MAAM,OAAO,MAAM;EACxC,OAAO,OAAO,OAAO,SAAS,MAAM,OAAO;CAC7C,CACK,GAAS,OAAO;CACrB,MAAM,SAAS,MAAM,OAAO,OAAO,CAAC;CACpC,MAAM,QAAQ,MAAM,GAAG,OAAO,MAAM;CACpC,OAAO,OAAO,QAAQ,MAAM,OAAO,SAAS;AAC9C;;AAGA,IAAa,eAAe,WAAqB,SAAA,MAAyC;;AAG1F,IAAa,gBAAgB;;;;;AAM7B,SAAgB,UAAU,OAAe,MAAc,QAAwB;CAC7E,IAAI,OAAO,KAAoB,QAAQ,OAAO,SAAS,KAAK,QAAQ,OAAO;CAC3E,IAAI,QAAA,IAAuB,OAAA,KAAuB;CAClD,MAAM,WAAW,QAAQ,QAAQ,SAAA;CACjC,OAAO,WAAW,IAAI,CAAC,WAAW;AACpC"}
1
+ {"version":3,"file":"fitViewport.es.js","names":[],"sources":["../../../../src/domains/knowledge/lib/fitViewport.ts"],"sourcesContent":["import { getViewportForBounds } from '@xyflow/react';\nimport type { Viewport } from '@xyflow/react';\n\nimport { READABLE_MIN_ZOOM } from './graphShape';\nimport { KNOWLEDGE_GRAPH_TRANSITION_MS } from './useLeavingNodes';\n\n/** How far Fit view may zoom out to frame a ring of linked pages, which the readable floor would crop. */\nexport const RING_MIN_ZOOM = 0.15;\n\ninterface FitInput {\n bounds: { x: number; y: number; width: number; height: number };\n width: number;\n height: number;\n /** Fit view on a focus with an outer ring of linked pages: frame all of it, below the readable floor if need be. */\n ring?: boolean;\n /** The focus (or the layout's centre): what stays centred when a floor stops the fit. */\n anchor?: { position: { x: number; y: number }; width?: number; height?: number };\n insets?: PaneInsets;\n}\n\nexport interface PaneInsets {\n left: number;\n right: number;\n}\n\nconst NO_INSETS: PaneInsets = { left: 0, right: 0 };\n\nexport function uncoveredInsets(width: number, insets: PaneInsets): PaneInsets {\n return width - insets.left - insets.right > 0 ? insets : NO_INSETS;\n}\n\n/**\n * The viewport that frames `bounds`. Zoom stops at the readable floor, so what is cropped is the edge, not\n * the page being looked at; only Fit view, with an outer ring, goes lower so the whole ring shows.\n */\nexport function fitViewport({ bounds, width, height, ring, anchor, insets: drawers = NO_INSETS }: FitInput): Viewport {\n const insets = uncoveredInsets(width, drawers);\n const floor = ring ? RING_MIN_ZOOM : READABLE_MIN_ZOOM;\n const visible = width - insets.left - insets.right;\n const viewport = getViewportForBounds(bounds, visible, height, floor, 2, 0.1);\n if (anchor && viewport.zoom <= floor) {\n const cx = anchor.position.x + (anchor.width ?? 0) / 2;\n const cy = anchor.position.y + (anchor.height ?? 0) / 2;\n return {\n zoom: viewport.zoom,\n x: insets.left + visible / 2 - cx * viewport.zoom,\n y: height / 2 - cy * viewport.zoom,\n };\n }\n return { ...viewport, x: viewport.x + insets.left };\n}\n\n/** Margin around the drawn nodes on the first view, as a share of the pane. */\nexport const INITIAL_FIT_PADDING = 0.05;\n/** The first view never zooms in past the pages' own size, however few there are. */\nexport const INITIAL_FIT_MAX_ZOOM = 1;\n/** How long after the first view the graph keeps refitting as pages arrive, unless the user acts first. */\nexport const INITIAL_SETTLE_MS = 3000;\n\ntype Rect = { x: number; y: number; width: number; height: number };\n\n/**\n * The first view of a graph: every drawn node in the pane with a small margin, never zoomed in past what\n * fits, and clear of `legend` (the box, in pane pixels, an overlay covers at the top left). When the plain\n * fit would put a node under the legend, the pane is fitted again beside it or below it, whichever keeps\n * the pages larger.\n */\nexport function fitAllViewport({\n bounds,\n nodes,\n width,\n height,\n legend,\n insets: drawers = NO_INSETS,\n}: {\n bounds: Rect;\n nodes: Rect[];\n width: number;\n height: number;\n legend?: { right: number; bottom: number };\n insets?: PaneInsets;\n}): Viewport {\n const insets = uncoveredInsets(width, drawers);\n const fitIn = (left: number, top: number): Viewport => {\n const view = getViewportForBounds(\n bounds,\n width - left - insets.right,\n height - top,\n RING_MIN_ZOOM,\n INITIAL_FIT_MAX_ZOOM,\n INITIAL_FIT_PADDING,\n );\n return { zoom: view.zoom, x: view.x + left, y: view.y + top };\n };\n const plain = fitIn(insets.left, 0);\n if (!legend) return plain;\n const covered = nodes.some(node => {\n const left = node.x * plain.zoom + plain.x;\n const top = node.y * plain.zoom + plain.y;\n return left < legend.right && top < legend.bottom;\n });\n if (!covered) return plain;\n const beside = fitIn(legend.right, 0);\n const below = fitIn(insets.left, legend.bottom);\n return beside.zoom >= below.zoom ? beside : below;\n}\n\n/** How long a view change animates: the same as the layout's own transition, and none under reduced motion. */\nexport const fitDuration = (motion: boolean) => (motion ? KNOWLEDGE_GRAPH_TRANSITION_MS : 0);\n\n/** How close to the pane's edge a refocused page may sit before the view moves to bring it in. */\nexport const NUDGE_PADDING = 24;\n\n/**\n * How far to move the view along one axis so a page at `start` (screen position) of `size` stays inside a\n * pane of `extent`, with padding. Zero when it already is; centred when it can't fit with the padding.\n */\nexport function nudgeAxis(start: number, size: number, extent: number): number {\n if (size + NUDGE_PADDING * 2 > extent) return extent / 2 - (start + size / 2);\n if (start < NUDGE_PADDING) return NUDGE_PADDING - start;\n const overflow = start + size - (extent - NUDGE_PADDING);\n return overflow > 0 ? -overflow : 0;\n}\n"],"mappings":";;;;;AAOA,IAAa,gBAAgB;AAkB7B,IAAM,YAAwB;CAAE,MAAM;CAAG,OAAO;AAAE;AAElD,SAAgB,gBAAgB,OAAe,QAAgC;CAC7E,OAAO,QAAQ,OAAO,OAAO,OAAO,QAAQ,IAAI,SAAS;AAC3D;;;;;AAMA,SAAgB,YAAY,EAAE,QAAQ,OAAO,QAAQ,MAAM,QAAQ,QAAQ,UAAU,aAAiC;CACpH,MAAM,SAAS,gBAAgB,OAAO,OAAO;CAC7C,MAAM,QAAQ,OAAO,gBAAgB;CACrC,MAAM,UAAU,QAAQ,OAAO,OAAO,OAAO;CAC7C,MAAM,WAAW,qBAAqB,QAAQ,SAAS,QAAQ,OAAO,GAAG,EAAG;CAC5E,IAAI,UAAU,SAAS,QAAQ,OAAO;EACpC,MAAM,KAAK,OAAO,SAAS,KAAK,OAAO,SAAS,KAAK;EACrD,MAAM,KAAK,OAAO,SAAS,KAAK,OAAO,UAAU,KAAK;EACtD,OAAO;GACL,MAAM,SAAS;GACf,GAAG,OAAO,OAAO,UAAU,IAAI,KAAK,SAAS;GAC7C,GAAG,SAAS,IAAI,KAAK,SAAS;EAChC;CACF;CACA,OAAO;EAAE,GAAG;EAAU,GAAG,SAAS,IAAI,OAAO;CAAK;AACpD;;AAGA,IAAa,sBAAsB;;AAEnC,IAAa,uBAAuB;;AAEpC,IAAa,oBAAoB;;;;;;;AAUjC,SAAgB,eAAe,EAC7B,QACA,OACA,OACA,QACA,QACA,QAAQ,UAAU,aAQP;CACX,MAAM,SAAS,gBAAgB,OAAO,OAAO;CAC7C,MAAM,SAAS,MAAc,QAA0B;EACrD,MAAM,OAAO,qBACX,QACA,QAAQ,OAAO,OAAO,OACtB,SAAS,KACT,eAAA,GAEA,mBACF;EACA,OAAO;GAAE,MAAM,KAAK;GAAM,GAAG,KAAK,IAAI;GAAM,GAAG,KAAK,IAAI;EAAI;CAC9D;CACA,MAAM,QAAQ,MAAM,OAAO,MAAM,CAAC;CAClC,IAAI,CAAC,QAAQ,OAAO;CAMpB,IAAI,CALY,MAAM,MAAK,SAAQ;EACjC,MAAM,OAAO,KAAK,IAAI,MAAM,OAAO,MAAM;EACzC,MAAM,MAAM,KAAK,IAAI,MAAM,OAAO,MAAM;EACxC,OAAO,OAAO,OAAO,SAAS,MAAM,OAAO;CAC7C,CACK,GAAS,OAAO;CACrB,MAAM,SAAS,MAAM,OAAO,OAAO,CAAC;CACpC,MAAM,QAAQ,MAAM,OAAO,MAAM,OAAO,MAAM;CAC9C,OAAO,OAAO,QAAQ,MAAM,OAAO,SAAS;AAC9C;;AAGA,IAAa,eAAe,WAAqB,SAAA,MAAyC;;AAG1F,IAAa,gBAAgB;;;;;AAM7B,SAAgB,UAAU,OAAe,MAAc,QAAwB;CAC7E,IAAI,OAAO,KAAoB,QAAQ,OAAO,SAAS,KAAK,QAAQ,OAAO;CAC3E,IAAI,QAAA,IAAuB,OAAA,KAAuB;CAClD,MAAM,WAAW,QAAQ,QAAQ,SAAA;CACjC,OAAO,WAAW,IAAI,CAAC,WAAW;AACpC"}