@aceshooting/lyra-ui 9.1.0 → 10.0.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 (622) hide show
  1. package/CHANGELOG.md +843 -0
  2. package/README.md +7 -0
  3. package/custom-elements.json +1 -1
  4. package/dist/cli/migrate-wa.mjs +52 -0
  5. package/dist/cli/migration-contract.json +1 -1
  6. package/dist/components/agent-tools/activity-feed/activity-feed.class.js +2 -2
  7. package/dist/components/agent-tools/activity-feed/activity-feed.styles.js +0 -16
  8. package/dist/components/agent-tools/agent-eval-dashboard/agent-eval-dashboard.class.js +1 -1
  9. package/dist/components/agent-tools/agent-eval-dashboard/agent-eval-dashboard.styles.js +9 -7
  10. package/dist/components/agent-tools/agent-run/agent-run.class.js +2 -2
  11. package/dist/components/agent-tools/agent-run/agent-run.styles.js +0 -13
  12. package/dist/components/agent-tools/agent-trace/agent-trace.class.js +1 -1
  13. package/dist/components/agent-tools/agent-trace/agent-trace.styles.js +7 -4
  14. package/dist/components/agent-tools/approval-queue/approval-queue.styles.js +7 -5
  15. package/dist/components/agent-tools/artifact-panel/artifact-panel.styles.js +0 -3
  16. package/dist/components/agent-tools/browser-frame/browser-frame.class.js +1 -1
  17. package/dist/components/agent-tools/browser-frame/browser-frame.styles.js +3 -5
  18. package/dist/components/agent-tools/commit-card/commit-card.class.js +1 -1
  19. package/dist/components/agent-tools/commit-card/commit-card.styles.js +0 -10
  20. package/dist/components/agent-tools/compare-panel/compare-panel.styles.js +11 -6
  21. package/dist/components/agent-tools/confirm-bar/confirm-bar.class.js +2 -2
  22. package/dist/components/agent-tools/confirm-bar/confirm-bar.styles.js +0 -46
  23. package/dist/components/agent-tools/context-inspector/context-inspector.class.js +1 -1
  24. package/dist/components/agent-tools/eval-dataset/eval-dataset.styles.js +0 -7
  25. package/dist/components/agent-tools/eval-result/eval-result.class.js +1 -1
  26. package/dist/components/agent-tools/evaluation-run/evaluation-run.class.js +2 -2
  27. package/dist/components/agent-tools/policy-summary/policy-summary.class.js +1 -1
  28. package/dist/components/agent-tools/prompt-studio/prompt-studio.styles.js +0 -15
  29. package/dist/components/agent-tools/result-card/result-card.styles.js +0 -7
  30. package/dist/components/agent-tools/result-card/result-field.styles.js +0 -5
  31. package/dist/components/agent-tools/schema-viewer/schema-viewer.styles.js +2 -5
  32. package/dist/components/agent-tools/span-waterfall/span-waterfall.class.js +1 -1
  33. package/dist/components/agent-tools/span-waterfall/span-waterfall.styles.js +0 -15
  34. package/dist/components/agent-tools/stack-trace/stack-trace.styles.js +0 -20
  35. package/dist/components/agent-tools/subagent-panel/subagent-panel.class.js +2 -2
  36. package/dist/components/agent-tools/subagent-panel/subagent-panel.styles.js +1 -4
  37. package/dist/components/agent-tools/task-list/task-list.class.js +2 -2
  38. package/dist/components/agent-tools/task-list/task-list.styles.js +0 -15
  39. package/dist/components/agent-tools/terminal/terminal.class.d.ts +11 -6
  40. package/dist/components/agent-tools/terminal/terminal.class.js +4 -4
  41. package/dist/components/agent-tools/terminal/terminal.styles.js +0 -46
  42. package/dist/components/agent-tools/test-results/test-results.class.js +2 -2
  43. package/dist/components/agent-tools/test-results/test-results.styles.js +0 -5
  44. package/dist/components/agent-tools/thinking-panel/thinking-panel.class.js +1 -1
  45. package/dist/components/agent-tools/thinking-panel/thinking-panel.styles.js +0 -41
  46. package/dist/components/agent-tools/tool-approval-dialog/tool-approval-dialog.styles.js +0 -41
  47. package/dist/components/agent-tools/tool-call-chip/tool-call-chip.class.js +2 -2
  48. package/dist/components/agent-tools/tool-call-chip/tool-call-chip.styles.js +0 -30
  49. package/dist/components/agent-tools/tool-param-form/tool-param-form.class.js +6 -6
  50. package/dist/components/agent-tools/tool-param-form/tool-param-form.styles.js +0 -5
  51. package/dist/components/agent-tools/tool-result-dialog/tool-result-dialog.class.js +2 -2
  52. package/dist/components/agent-tools/tool-result-dialog/tool-result-dialog.styles.js +0 -20
  53. package/dist/components/agent-tools/tool-result-view/tool-result-view.styles.js +0 -4
  54. package/dist/components/agent-tools/tool-select-dialog/tool-select-dialog.styles.js +0 -21
  55. package/dist/components/agent-tools/trace-tree/trace-tree.class.js +2 -2
  56. package/dist/components/agent-tools/trace-tree/trace-tree.styles.js +7 -31
  57. package/dist/components/charts/chart/bar-chart.class.js +1 -1
  58. package/dist/components/charts/chart/box-plot.styles.js +0 -20
  59. package/dist/components/charts/chart/bubble-chart.class.js +1 -1
  60. package/dist/components/charts/chart/chart-colors.d.ts +1 -1
  61. package/dist/components/charts/chart/chart-colors.js +1 -1
  62. package/dist/components/charts/chart/chart-core-loader.d.ts +1 -0
  63. package/dist/components/charts/chart/chart-core-loader.js +1 -1
  64. package/dist/components/charts/chart/chart-feature-loader.d.ts +35 -0
  65. package/dist/components/charts/chart/chart-feature-loader.js +1 -1
  66. package/dist/components/charts/chart/chart.class.d.ts +93 -0
  67. package/dist/components/charts/chart/chart.class.js +3 -3
  68. package/dist/components/charts/chart/chart.styles.js +0 -27
  69. package/dist/components/charts/chart/doughnut-chart.class.js +1 -1
  70. package/dist/components/charts/chart/histogram.class.js +1 -1
  71. package/dist/components/charts/chart/line-chart.class.js +1 -1
  72. package/dist/components/charts/chart/lite-chart.class.d.ts +20 -1
  73. package/dist/components/charts/chart/lite-chart.class.js +4 -4
  74. package/dist/components/charts/chart/lite-chart.styles.js +0 -27
  75. package/dist/components/charts/chart/pie-chart.class.js +1 -1
  76. package/dist/components/charts/chart/polar-area-chart.class.js +1 -1
  77. package/dist/components/charts/chart/radar-chart.class.js +1 -1
  78. package/dist/components/charts/chart/scatter-chart.class.js +1 -1
  79. package/dist/components/conversation/agent-workspace/agent-workspace.class.d.ts +20 -0
  80. package/dist/components/conversation/agent-workspace/agent-workspace.class.js +3 -1
  81. package/dist/components/conversation/agent-workspace/agent-workspace.styles.js +3 -0
  82. package/dist/components/conversation/audio-visualizer/audio-visualizer.styles.js +0 -7
  83. package/dist/components/conversation/branch-picker/branch-picker.styles.js +0 -3
  84. package/dist/components/conversation/chat-composer/chat-composer.styles.js +0 -51
  85. package/dist/components/conversation/chat-message/chat-message.class.js +2 -2
  86. package/dist/components/conversation/chat-message/chat-message.styles.js +13 -35
  87. package/dist/components/conversation/chat-viewport/chat-viewport.class.js +1 -1
  88. package/dist/components/conversation/chat-viewport/chat-viewport.styles.js +0 -33
  89. package/dist/components/conversation/checkpoint/checkpoint.class.js +1 -1
  90. package/dist/components/conversation/checkpoint/checkpoint.styles.js +0 -3
  91. package/dist/components/conversation/code-block/code-block-shared.d.ts +5 -2
  92. package/dist/components/conversation/code-block/code-block.class.js +1 -1
  93. package/dist/components/conversation/code-block/code-block.styles.js +4 -95
  94. package/dist/components/conversation/code-block/code-loader.d.ts +11 -0
  95. package/dist/components/conversation/code-block/code-loader.js +1 -1
  96. package/dist/components/conversation/code-block/shiki-types.d.ts +12 -0
  97. package/dist/components/conversation/code-block/shiki-types.js +1 -1
  98. package/dist/components/conversation/conversation-item/conversation-item.styles.js +8 -54
  99. package/dist/components/conversation/generation-metrics/generation-metrics.class.js +2 -2
  100. package/dist/components/conversation/generation-metrics/generation-metrics.styles.js +0 -17
  101. package/dist/components/conversation/markdown/markdown-base.class.js +1 -1
  102. package/dist/components/conversation/markdown/markdown.styles.js +0 -41
  103. package/dist/components/conversation/message-actions/message-actions.styles.js +0 -3
  104. package/dist/components/conversation/message-feedback/message-feedback.styles.js +0 -35
  105. package/dist/components/conversation/message-parts/message-parts.class.d.ts +1 -1
  106. package/dist/components/conversation/message-parts/message-parts.styles.js +0 -5
  107. package/dist/components/conversation/model-select/model-select.class.js +3 -3
  108. package/dist/components/conversation/model-select/model-select.styles.js +12 -47
  109. package/dist/components/conversation/model-settings-panel/model-settings-panel.styles.js +0 -6
  110. package/dist/components/conversation/prompt-input/prompt-input.class.d.ts +3 -0
  111. package/dist/components/conversation/prompt-input/prompt-input.styles.js +0 -10
  112. package/dist/components/conversation/push-to-talk/push-to-talk.styles.js +0 -8
  113. package/dist/components/conversation/realtime-session/realtime-session.styles.js +1 -1
  114. package/dist/components/conversation/selection-toolbar/selection-toolbar.styles.js +1 -11
  115. package/dist/components/conversation/stream-status/stream-status.styles.js +0 -16
  116. package/dist/components/conversation/streaming-text/streaming-text.styles.js +0 -15
  117. package/dist/components/conversation/suggestion-chips/suggestion-chips.styles.js +0 -5
  118. package/dist/components/conversation/thread-list/thread-list.styles.js +5 -19
  119. package/dist/components/conversation/transcript-feed/transcript-feed.class.d.ts +16 -4
  120. package/dist/components/conversation/transcript-feed/transcript-feed.class.js +1 -1
  121. package/dist/components/conversation/transcript-feed/transcript-feed.styles.js +0 -1
  122. package/dist/components/conversation/typing-indicator/typing-indicator.styles.js +0 -23
  123. package/dist/components/conversation/usage-badge/usage-badge.class.js +1 -1
  124. package/dist/components/conversation/usage-badge/usage-badge.styles.js +0 -3
  125. package/dist/components/conversation/voice-picker/voice-picker.class.js +3 -3
  126. package/dist/components/conversation/voice-picker/voice-picker.styles.js +9 -29
  127. package/dist/components/conversation/widget-renderer/resolve.d.ts +2 -0
  128. package/dist/components/conversation/widget-renderer/resolve.js +1 -1
  129. package/dist/components/data/calendar/calendar.class.d.ts +15 -2
  130. package/dist/components/data/calendar/calendar.class.js +2 -2
  131. package/dist/components/data/calendar/calendar.styles.js +2 -28
  132. package/dist/components/data/condition-builder/condition-builder.class.d.ts +10 -6
  133. package/dist/components/data/condition-builder/condition-builder.class.js +2 -2
  134. package/dist/components/data/condition-builder/condition-builder.styles.js +0 -6
  135. package/dist/components/data/context-meter/context-meter.styles.js +0 -24
  136. package/dist/components/data/data-grid/data-grid.class.js +3 -3
  137. package/dist/components/data/data-grid/data-grid.styles.js +0 -22
  138. package/dist/components/data/document-library/document-library.class.js +2 -2
  139. package/dist/components/data/document-library/document-library.styles.js +0 -4
  140. package/dist/components/data/env-list/env-list.class.js +1 -1
  141. package/dist/components/data/env-list/env-list.styles.js +7 -4
  142. package/dist/components/data/file-tree/file-tree.class.d.ts +12 -0
  143. package/dist/components/data/file-tree/file-tree.class.js +1 -1
  144. package/dist/components/data/flow-canvas/flow-canvas.styles.js +12 -19
  145. package/dist/components/data/flow-controls/flow-controls.class.js +2 -2
  146. package/dist/components/data/flow-controls/flow-controls.styles.js +3 -36
  147. package/dist/components/data/flow-minimap/flow-minimap.class.js +1 -1
  148. package/dist/components/data/flow-minimap/flow-minimap.styles.js +0 -9
  149. package/dist/components/data/flow-node/flow-node.styles.js +0 -23
  150. package/dist/components/data/flow-run-status/flow-run-status.class.js +1 -1
  151. package/dist/components/data/flow-run-status/flow-run-status.styles.js +0 -7
  152. package/dist/components/data/graph-query-builder/graph-query-builder.class.d.ts +0 -7
  153. package/dist/components/data/graph-query-builder/graph-query-builder.class.js +1 -1
  154. package/dist/components/data/graph-query-builder/graph-query-builder.styles.js +0 -10
  155. package/dist/components/data/heatmap/heatmap-scale.d.ts +20 -0
  156. package/dist/components/data/heatmap/heatmap-scale.js +1 -1
  157. package/dist/components/data/heatmap/heatmap.class.d.ts +85 -2
  158. package/dist/components/data/heatmap/heatmap.class.js +2 -2
  159. package/dist/components/data/heatmap/heatmap.styles.js +0 -54
  160. package/dist/components/data/pagination/pagination.class.js +1 -1
  161. package/dist/components/data/pagination/pagination.styles.js +23 -46
  162. package/dist/components/data/sequence-strip/sequence-strip.class.d.ts +34 -1
  163. package/dist/components/data/sequence-strip/sequence-strip.class.js +5 -2
  164. package/dist/components/data/sequence-strip/sequence-strip.styles.js +14 -20
  165. package/dist/components/data/sparkline/sparkline.class.js +1 -1
  166. package/dist/components/data/stat/stat.styles.js +0 -67
  167. package/dist/components/data/table/table.class.d.ts +42 -3
  168. package/dist/components/data/table/table.class.js +4 -4
  169. package/dist/components/data/table/table.styles.js +20 -91
  170. package/dist/components/data/timeline/timeline-item.styles.js +0 -30
  171. package/dist/components/data/timeline/timeline.class.d.ts +89 -1
  172. package/dist/components/data/timeline/timeline.class.js +2 -2
  173. package/dist/components/data/timeline/timeline.styles.js +111 -31
  174. package/dist/components/data/tree/tree-item.styles.js +1 -28
  175. package/dist/components/data/tree/tree.class.js +2 -2
  176. package/dist/components/data/tree/tree.styles.js +0 -6
  177. package/dist/components/data/word-cloud/word-cloud.styles.js +0 -5
  178. package/dist/components/forms/button/button.class.js +1 -1
  179. package/dist/components/forms/button/button.styles.js +1 -106
  180. package/dist/components/forms/checkbox/checkbox.class.d.ts +3 -0
  181. package/dist/components/forms/checkbox/checkbox.class.js +1 -1
  182. package/dist/components/forms/checkbox/checkbox.styles.js +0 -39
  183. package/dist/components/forms/checkbox-group/checkbox-group.class.d.ts +21 -2
  184. package/dist/components/forms/checkbox-group/checkbox-group.class.js +1 -1
  185. package/dist/components/forms/checkbox-group/checkbox-group.styles.js +0 -18
  186. package/dist/components/forms/code-editor/code-editor.styles.js +0 -30
  187. package/dist/components/forms/color-picker/color-picker.class.js +2 -2
  188. package/dist/components/forms/color-picker/color-picker.styles.js +0 -69
  189. package/dist/components/forms/combobox/combobox.class.js +2 -2
  190. package/dist/components/forms/combobox/combobox.styles.js +22 -111
  191. package/dist/components/forms/combobox/option.styles.js +7 -1
  192. package/dist/components/forms/date-picker/date-input.class.js +1 -1
  193. package/dist/components/forms/date-picker/date-input.styles.js +12 -67
  194. package/dist/components/forms/date-picker/date-picker.class.d.ts +1 -0
  195. package/dist/components/forms/date-picker/date-picker.class.js +22 -20
  196. package/dist/components/forms/date-picker/date-picker.styles.js +36 -29
  197. package/dist/components/forms/emoji-picker/emoji-data-loader.d.ts +6 -3
  198. package/dist/components/forms/emoji-picker/emoji-data-loader.js +1 -1
  199. package/dist/components/forms/emoji-picker/emoji-picker.class.d.ts +8 -1
  200. package/dist/components/forms/emoji-picker/emoji-picker.class.js +1 -1
  201. package/dist/components/forms/emoji-picker/emoji-picker.styles.js +3 -41
  202. package/dist/components/forms/icon-button/icon-button.class.js +1 -1
  203. package/dist/components/forms/icon-button/icon-button.styles.js +0 -16
  204. package/dist/components/forms/input/input.styles.js +0 -54
  205. package/dist/components/forms/input/number-input.styles.d.ts +4 -5
  206. package/dist/components/forms/input/number-input.styles.js +0 -11
  207. package/dist/components/forms/input/time-input-shared.d.ts +11 -0
  208. package/dist/components/forms/input/time-input-shared.js +1 -1
  209. package/dist/components/forms/input/time-input.class.d.ts +11 -2
  210. package/dist/components/forms/input/time-input.class.js +1 -1
  211. package/dist/components/forms/input/time-input.styles.js +0 -6
  212. package/dist/components/forms/locale-picker/locale-picker.class.js +2 -2
  213. package/dist/components/forms/locale-picker/locale-picker.styles.js +1 -26
  214. package/dist/components/forms/otp-input/otp-input.class.js +3 -3
  215. package/dist/components/forms/otp-input/otp-input.styles.js +0 -16
  216. package/dist/components/forms/phone-input/phone-input.class.d.ts +9 -1
  217. package/dist/components/forms/phone-input/phone-input.class.js +2 -2
  218. package/dist/components/forms/phone-input/phone-input.styles.js +0 -37
  219. package/dist/components/forms/radio/radio-button.styles.js +1 -30
  220. package/dist/components/forms/radio/radio-group.styles.js +0 -4
  221. package/dist/components/forms/radio/radio.styles.js +0 -44
  222. package/dist/components/forms/rubric-form/rubric-form.styles.js +0 -5
  223. package/dist/components/forms/select/select.class.js +1 -1
  224. package/dist/components/forms/select/select.styles.js +14 -114
  225. package/dist/components/forms/slider/slider.styles.js +0 -55
  226. package/dist/components/forms/swatch-picker/swatch-picker.class.d.ts +0 -11
  227. package/dist/components/forms/swatch-picker/swatch-picker.class.js +2 -2
  228. package/dist/components/forms/swatch-picker/swatch-picker.styles.js +0 -77
  229. package/dist/components/forms/switch/switch.class.d.ts +3 -0
  230. package/dist/components/forms/switch/switch.class.js +1 -1
  231. package/dist/components/forms/switch/switch.styles.js +3 -38
  232. package/dist/components/forms/textarea/textarea.styles.js +0 -28
  233. package/dist/components/forms/time-range/time-range.styles.js +12 -84
  234. package/dist/components/forms/token-input/token-input.class.d.ts +23 -9
  235. package/dist/components/forms/token-input/token-input.class.js +1 -1
  236. package/dist/components/forms/token-input/token-input.styles.js +1 -54
  237. package/dist/components/layout/app-rail/app-rail-item.class.js +2 -2
  238. package/dist/components/layout/app-rail/app-rail-item.styles.js +0 -13
  239. package/dist/components/layout/app-rail/app-rail.class.d.ts +5 -0
  240. package/dist/components/layout/app-rail/app-rail.class.js +1 -1
  241. package/dist/components/layout/app-rail/app-rail.styles.js +0 -46
  242. package/dist/components/layout/button-group/button-group.styles.js +0 -6
  243. package/dist/components/layout/card/card.class.d.ts +12 -0
  244. package/dist/components/layout/card/card.styles.js +5 -13
  245. package/dist/components/layout/carousel/carousel.styles.js +0 -1
  246. package/dist/components/layout/command-palette/command-palette.class.d.ts +8 -0
  247. package/dist/components/layout/command-palette/command-palette.class.js +3 -1
  248. package/dist/components/layout/command-palette/command-palette.styles.js +1 -13
  249. package/dist/components/layout/control-group/control-group.styles.js +0 -7
  250. package/dist/components/layout/dashboard-grid/dashboard-grid.class.js +1 -1
  251. package/dist/components/layout/dashboard-grid/dashboard-grid.styles.js +6 -25
  252. package/dist/components/layout/details/accordion.class.d.ts +13 -0
  253. package/dist/components/layout/details/accordion.class.js +1 -1
  254. package/dist/components/layout/details/details.class.js +1 -1
  255. package/dist/components/layout/details/details.styles.js +0 -12
  256. package/dist/components/layout/dock-panel/dock-panel.styles.js +0 -45
  257. package/dist/components/layout/drilldown-panel/drilldown-panel.class.d.ts +2 -0
  258. package/dist/components/layout/drilldown-panel/drilldown-panel.class.js +2 -2
  259. package/dist/components/layout/drilldown-panel/drilldown-panel.styles.js +0 -4
  260. package/dist/components/layout/filter-bar/filter-bar.class.js +1 -1
  261. package/dist/components/layout/filter-bar/filter-bar.styles.js +0 -9
  262. package/dist/components/layout/menu/menu-item.class.d.ts +5 -0
  263. package/dist/components/layout/menu/menu-item.class.js +1 -1
  264. package/dist/components/layout/menu/menu-item.styles.js +0 -49
  265. package/dist/components/layout/menu/menu-label.styles.js +0 -2
  266. package/dist/components/layout/menu/menu.styles.js +0 -18
  267. package/dist/components/layout/multi-split/multi-split.class.js +1 -1
  268. package/dist/components/layout/multi-split/multi-split.styles.js +8 -51
  269. package/dist/components/layout/page/page.class.d.ts +4 -0
  270. package/dist/components/layout/page/page.class.js +1 -1
  271. package/dist/components/layout/reorder-list/reorder-item.styles.js +0 -4
  272. package/dist/components/layout/responsive-panel/responsive-panel.styles.js +0 -27
  273. package/dist/components/layout/scroller/scroller.styles.js +0 -20
  274. package/dist/components/layout/segmented/segmented.class.d.ts +7 -1
  275. package/dist/components/layout/segmented/segmented.class.js +1 -1
  276. package/dist/components/layout/segmented/segmented.styles.js +69 -37
  277. package/dist/components/layout/split-panel/split-panel.styles.js +1 -7
  278. package/dist/components/layout/stepper/stepper.class.d.ts +8 -1
  279. package/dist/components/layout/stepper/stepper.class.js +1 -1
  280. package/dist/components/layout/stepper/stepper.styles.js +140 -41
  281. package/dist/components/layout/tab-group/tab-group.class.d.ts +4 -1
  282. package/dist/components/layout/tab-group/tab-group.styles.js +9 -75
  283. package/dist/components/layout/tab-group/tab.styles.js +0 -2
  284. package/dist/components/layout/virtual-list/virtual-list.class.d.ts +4 -4
  285. package/dist/components/layout/virtual-list/virtual-list.class.js +1 -1
  286. package/dist/components/layout/virtual-list/virtual-list.styles.js +0 -68
  287. package/dist/components/layout/widget/widget.class.d.ts +5 -1
  288. package/dist/components/layout/widget/widget.class.js +1 -1
  289. package/dist/components/layout/widget/widget.styles.js +97 -40
  290. package/dist/components/media/animated-image/animated-image.class.d.ts +3 -0
  291. package/dist/components/media/animated-image/animated-image.class.js +1 -1
  292. package/dist/components/media/animated-image/animated-image.styles.js +0 -28
  293. package/dist/components/media/attachment-chip/attachment-chip.class.d.ts +1 -1
  294. package/dist/components/media/attachment-chip/attachment-chip.class.js +2 -2
  295. package/dist/components/media/attachment-chip/attachment-chip.styles.js +0 -31
  296. package/dist/components/media/attachment-trigger/attachment-trigger.class.d.ts +1 -1
  297. package/dist/components/media/attachment-trigger/attachment-trigger.class.js +4 -4
  298. package/dist/components/media/attachment-trigger/attachment-trigger.styles.js +0 -40
  299. package/dist/components/media/av-player/av-player.class.d.ts +5 -6
  300. package/dist/components/media/av-player/av-player.class.js +1 -1
  301. package/dist/components/media/av-player/av-player.styles.js +0 -45
  302. package/dist/components/media/avatar/avatar.styles.js +3 -16
  303. package/dist/components/media/file-icon/file-icon.class.d.ts +1 -2
  304. package/dist/components/media/file-icon/file-icon.class.js +1 -1
  305. package/dist/components/media/file-input/file-input.class.d.ts +12 -0
  306. package/dist/components/media/file-input/file-input.class.js +1 -1
  307. package/dist/components/media/file-input/file-input.styles.js +3 -24
  308. package/dist/components/media/flag/flag.class.d.ts +20 -0
  309. package/dist/components/media/flag/flag.class.js +4 -2
  310. package/dist/components/media/flag/flag.styles.js +7 -1
  311. package/dist/components/media/flag/language-map.d.ts +10 -0
  312. package/dist/components/media/flag/language-map.js +1 -1
  313. package/dist/components/media/image-comparer/image-comparer.styles.js +4 -33
  314. package/dist/components/media/image-viewer/image-viewer.class.js +0 -2
  315. package/dist/components/media/image-viewer/image-viewer.styles.js +7 -27
  316. package/dist/components/media/lightbox/lightbox.class.js +0 -2
  317. package/dist/components/media/lightbox/lightbox.styles.js +2 -21
  318. package/dist/components/media/map/map-loader.d.ts +19 -1
  319. package/dist/components/media/map/map-loader.js +1 -1
  320. package/dist/components/media/map/map.class.d.ts +141 -1
  321. package/dist/components/media/map/map.class.js +15 -3
  322. package/dist/components/media/map/map.styles.js +20 -17
  323. package/dist/components/media/media-card/media-card.class.d.ts +14 -3
  324. package/dist/components/media/media-card/media-card.class.js +1 -1
  325. package/dist/components/media/media-card/media-card.styles.js +2 -28
  326. package/dist/components/media/pan-zoom/pan-zoom.styles.js +0 -3
  327. package/dist/components/media/qr-code/qr-code.class.d.ts +3 -2
  328. package/dist/components/media/qr-code/qr-code.class.js +2 -2
  329. package/dist/components/media/qr-code/qr-code.styles.js +0 -3
  330. package/dist/components/media/sequence-playback/sequence-playback.class.d.ts +2 -0
  331. package/dist/components/media/sequence-playback/sequence-playback.class.js +2 -1
  332. package/dist/components/media/sequence-playback/sequence-playback.styles.js +0 -19
  333. package/dist/components/media/video/video.class.d.ts +23 -2
  334. package/dist/components/media/video/video.class.js +3 -3
  335. package/dist/components/media/video/video.styles.js +4 -2
  336. package/dist/components/media/zoomable-frame/zoomable-frame.class.d.ts +3 -2
  337. package/dist/components/media/zoomable-frame/zoomable-frame.class.js +2 -2
  338. package/dist/components/media/zoomable-frame/zoomable-frame.styles.js +0 -5
  339. package/dist/components/overlays/alert/alert.styles.js +4 -2
  340. package/dist/components/overlays/badge/badge.styles.js +4 -48
  341. package/dist/components/overlays/badge/tag.styles.js +0 -14
  342. package/dist/components/overlays/callout/callout.styles.js +2 -13
  343. package/dist/components/overlays/chip/chip-group.styles.js +0 -18
  344. package/dist/components/overlays/chip/chip.styles.js +6 -69
  345. package/dist/components/overlays/dialog/confirm.d.ts +1 -4
  346. package/dist/components/overlays/dialog/confirm.js +1 -1
  347. package/dist/components/overlays/dialog/dialog.class.d.ts +12 -9
  348. package/dist/components/overlays/dialog/dialog.class.js +1 -1
  349. package/dist/components/overlays/dialog/dialog.styles.js +0 -43
  350. package/dist/components/overlays/drawer/drawer.class.d.ts +2 -2
  351. package/dist/components/overlays/drawer/drawer.styles.js +0 -9
  352. package/dist/components/overlays/empty/empty.styles.js +0 -12
  353. package/dist/components/overlays/kbd/kbd.class.js +1 -1
  354. package/dist/components/overlays/kbd/kbd.styles.js +0 -8
  355. package/dist/components/overlays/overlay/dropdown.class.d.ts +1 -6
  356. package/dist/components/overlays/overlay/dropdown.class.js +2 -2
  357. package/dist/components/overlays/overlay/overlay.styles.js +0 -28
  358. package/dist/components/overlays/overlay/popover.class.d.ts +9 -1
  359. package/dist/components/overlays/overlay/popover.class.js +2 -2
  360. package/dist/components/overlays/overlay/tooltip.class.d.ts +10 -0
  361. package/dist/components/overlays/overlay/tooltip.class.js +2 -2
  362. package/dist/components/overlays/popup/popup.class.d.ts +1 -0
  363. package/dist/components/overlays/popup/popup.class.js +2 -2
  364. package/dist/components/overlays/popup/popup.styles.js +0 -15
  365. package/dist/components/overlays/progress/progress-ring.class.d.ts +9 -1
  366. package/dist/components/overlays/progress/progress-ring.class.js +3 -3
  367. package/dist/components/overlays/progress/progress.styles.js +0 -21
  368. package/dist/components/overlays/rating/rating.styles.js +0 -25
  369. package/dist/components/overlays/skeleton/skeleton.styles.js +0 -4
  370. package/dist/components/overlays/spinner/spinner.styles.js +2 -5
  371. package/dist/components/overlays/toast/toast-item.styles.js +3 -45
  372. package/dist/components/retrieval/chunk-inspector/chunk-inspector.styles.js +0 -35
  373. package/dist/components/retrieval/citation-badge/citation-badge.class.d.ts +2 -2
  374. package/dist/components/retrieval/citation-badge/citation-badge.class.js +3 -3
  375. package/dist/components/retrieval/citation-badge/citation-badge.styles.js +0 -20
  376. package/dist/components/retrieval/claim-evidence/claim-evidence.class.js +1 -1
  377. package/dist/components/retrieval/claim-evidence/claim-evidence.styles.js +0 -8
  378. package/dist/components/retrieval/community-card/community-card.class.d.ts +1 -0
  379. package/dist/components/retrieval/community-card/community-card.styles.js +0 -6
  380. package/dist/components/retrieval/embedding-explorer/embedding-explorer.styles.js +8 -12
  381. package/dist/components/retrieval/entity-card/entity-card.class.d.ts +4 -3
  382. package/dist/components/retrieval/entity-card/entity-card.class.js +1 -1
  383. package/dist/components/retrieval/entity-card/entity-card.styles.js +0 -12
  384. package/dist/components/retrieval/entity-chip/entity-chip.class.d.ts +10 -4
  385. package/dist/components/retrieval/entity-chip/entity-chip.class.js +3 -3
  386. package/dist/components/retrieval/entity-chip/entity-chip.styles.js +6 -9
  387. package/dist/components/retrieval/entity-dossier/entity-dossier.class.d.ts +19 -5
  388. package/dist/components/retrieval/entity-dossier/entity-dossier.class.js +1 -1
  389. package/dist/components/retrieval/graph/graph.class.d.ts +5 -0
  390. package/dist/components/retrieval/graph/graph.class.js +1 -1
  391. package/dist/components/retrieval/graph/graph.styles.js +0 -30
  392. package/dist/components/retrieval/graph-legend/graph-legend.styles.js +0 -3
  393. package/dist/components/retrieval/grounding-summary/grounding-summary.class.js +2 -2
  394. package/dist/components/retrieval/ingestion-queue/ingestion-queue.styles.js +0 -25
  395. package/dist/components/retrieval/knowledge-base-admin/knowledge-base-admin.class.d.ts +2 -0
  396. package/dist/components/retrieval/knowledge-base-admin/knowledge-base-admin.styles.js +0 -7
  397. package/dist/components/retrieval/knowledge-graph-explorer/knowledge-graph-explorer.class.d.ts +20 -6
  398. package/dist/components/retrieval/knowledge-graph-explorer/knowledge-graph-explorer.class.js +2 -2
  399. package/dist/components/retrieval/knowledge-graph-explorer/knowledge-graph-explorer.styles.js +6 -11
  400. package/dist/components/retrieval/memory-panel/memory-panel.class.js +1 -1
  401. package/dist/components/retrieval/mind-map/mind-map.class.d.ts +5 -3
  402. package/dist/components/retrieval/mind-map/mind-map.class.js +1 -1
  403. package/dist/components/retrieval/mind-map/mind-map.styles.js +0 -2
  404. package/dist/components/retrieval/neighbor-list/neighbor-list.class.d.ts +3 -2
  405. package/dist/components/retrieval/neighbor-list/neighbor-list.class.js +1 -1
  406. package/dist/components/retrieval/neighbor-list/neighbor-list.styles.js +0 -30
  407. package/dist/components/retrieval/node-palette/node-palette.styles.js +0 -11
  408. package/dist/components/retrieval/path-strip/path-strip.styles.js +0 -10
  409. package/dist/components/retrieval/provenance-panel/provenance-panel.class.d.ts +12 -3
  410. package/dist/components/retrieval/provenance-panel/provenance-panel.class.js +1 -1
  411. package/dist/components/retrieval/provenance-panel/provenance-panel.styles.js +0 -2
  412. package/dist/components/retrieval/rag-eval-dashboard/rag-eval-dashboard.class.d.ts +3 -2
  413. package/dist/components/retrieval/rag-eval-dashboard/rag-eval-dashboard.class.js +2 -2
  414. package/dist/components/retrieval/retrieval-results/retrieval-results.styles.js +0 -28
  415. package/dist/components/retrieval/retrieval-search/retrieval-search.styles.js +0 -4
  416. package/dist/components/retrieval/retrieval-trace/retrieval-trace.class.js +1 -1
  417. package/dist/components/retrieval/retrieval-trace/retrieval-trace.styles.js +0 -2
  418. package/dist/components/retrieval/source-card/source-card.styles.js +0 -13
  419. package/dist/components/retrieval/source-list/source-list.styles.js +0 -7
  420. package/dist/components/retrieval/source-picker/source-picker.class.js +1 -1
  421. package/dist/components/retrieval/source-picker/source-picker.styles.js +0 -7
  422. package/dist/components/utility/copy-button/copy-button.styles.js +0 -10
  423. package/dist/components/utility/diff-view/diff-view.styles.js +0 -14
  424. package/dist/components/utility/export-button/export-button.styles.js +0 -22
  425. package/dist/components/utility/icon/icon.styles.js +0 -6
  426. package/dist/components/utility/json-viewer/json-viewer.styles.js +2 -48
  427. package/dist/components/utility/known-date/known-date.class.d.ts +7 -3
  428. package/dist/components/utility/known-date/known-date.styles.js +10 -51
  429. package/dist/components/utility/live-region/live-region.styles.js +0 -4
  430. package/dist/components/utility/mention-popover/mention-popover.styles.js +0 -25
  431. package/dist/components/utility/poll-status/poll-status.styles.js +0 -4
  432. package/dist/components/utility/random-content/random-content.class.d.ts +22 -0
  433. package/dist/components/utility/random-content/random-content.class.js +3 -2
  434. package/dist/components/utility/random-content/random-content.styles.js +6 -13
  435. package/dist/components/utility/tour/tour.class.d.ts +4 -2
  436. package/dist/components/utility/tour/tour.class.js +3 -3
  437. package/dist/components/utility/tour/tour.styles.js +0 -13
  438. package/dist/components/utility/visually-hidden/visually-hidden.styles.js +0 -5
  439. package/dist/components/viewers/archive-viewer/archive-viewer.class.js +1 -1
  440. package/dist/components/viewers/archive-viewer/archive-viewer.styles.d.ts +2 -2
  441. package/dist/components/viewers/archive-viewer/archive-viewer.styles.js +0 -10
  442. package/dist/components/viewers/contact-viewer/contact-viewer.class.js +1 -1
  443. package/dist/components/viewers/csv-viewer/csv-viewer.class.js +1 -1
  444. package/dist/components/viewers/csv-viewer/csv-viewer.styles.js +0 -19
  445. package/dist/components/viewers/dataset-viewer/dataset-viewer.class.js +1 -1
  446. package/dist/components/viewers/dataset-viewer/dataset-viewer.styles.js +0 -15
  447. package/dist/components/viewers/document-compare/document-compare.class.js +1 -1
  448. package/dist/components/viewers/document-compare/document-compare.styles.js +0 -3
  449. package/dist/components/viewers/document-preview/document-preview.styles.js +0 -25
  450. package/dist/components/viewers/document-viewer/document-viewer.class.d.ts +2 -1
  451. package/dist/components/viewers/document-viewer/document-viewer.class.js +1 -1
  452. package/dist/components/viewers/document-viewer/document-viewer.styles.js +0 -5
  453. package/dist/components/viewers/docx-viewer/docx-viewer.styles.js +0 -17
  454. package/dist/components/viewers/ebook-viewer/ebook-viewer.class.js +1 -1
  455. package/dist/components/viewers/ebook-viewer/ebook-viewer.styles.js +0 -4
  456. package/dist/components/viewers/email-viewer/email-viewer.styles.js +0 -7
  457. package/dist/components/viewers/geojson-view/geojson-view.styles.js +0 -5
  458. package/dist/components/viewers/highlight-layer/highlight-layer.styles.js +0 -3
  459. package/dist/components/viewers/notebook-viewer/notebook-viewer.class.js +1 -1
  460. package/dist/components/viewers/notebook-viewer/notebook-viewer.styles.js +0 -38
  461. package/dist/components/viewers/page-rail/page-rail.class.js +1 -1
  462. package/dist/components/viewers/page-rail/page-rail.styles.js +0 -13
  463. package/dist/components/viewers/pdf-viewer/pdf-loader.d.ts +13 -2
  464. package/dist/components/viewers/pdf-viewer/pdf-loader.js +1 -1
  465. package/dist/components/viewers/pdf-viewer/pdf-viewer.class.d.ts +32 -2
  466. package/dist/components/viewers/pdf-viewer/pdf-viewer.class.js +4 -4
  467. package/dist/components/viewers/pdf-viewer/pdf-viewer.styles.js +1 -27
  468. package/dist/components/viewers/pptx-viewer/pptx-viewer.styles.js +0 -3
  469. package/dist/components/viewers/spreadsheet-viewer/spreadsheet-viewer.class.js +1 -1
  470. package/dist/components/viewers/spreadsheet-viewer/spreadsheet-viewer.styles.js +0 -14
  471. package/dist/components/viewers/svg-viewer/svg-viewer.styles.js +0 -7
  472. package/dist/components/viewers/xml-viewer/xml-viewer.styles.js +2 -24
  473. package/dist/custom-elements-jsx.d.ts +56 -37
  474. package/dist/events.d.ts +43 -33
  475. package/dist/internal/agent-status-variants.d.ts +18 -0
  476. package/dist/internal/agent-status-variants.js +1 -0
  477. package/dist/internal/announcer.d.ts +8 -3
  478. package/dist/internal/announcer.js +1 -1
  479. package/dist/internal/autoloader-manifest.js +1 -1
  480. package/dist/internal/canvas-color.d.ts +16 -0
  481. package/dist/internal/canvas-color.js +1 -1
  482. package/dist/internal/catalog-picker.d.ts +0 -1
  483. package/dist/internal/catalog-picker.js +1 -1
  484. package/dist/internal/default-strings.generated.d.ts +1 -0
  485. package/dist/internal/default-strings.generated.js +1 -1
  486. package/dist/internal/dev-mode-attribute-warning.d.ts +30 -0
  487. package/dist/internal/dev-mode-attribute-warning.js +1 -0
  488. package/dist/internal/localization-runtime.js +1 -1
  489. package/dist/internal/localization-types.d.ts +1 -1
  490. package/dist/internal/localization.js +1 -1
  491. package/dist/internal/lyra-element.d.ts +13 -0
  492. package/dist/internal/lyra-element.js +1 -1
  493. package/dist/internal/media-controller.js +1 -1
  494. package/dist/internal/package-metadata.d.ts +1 -1
  495. package/dist/internal/package-metadata.js +1 -1
  496. package/dist/internal/scroll-overflow.d.ts +35 -13
  497. package/dist/internal/scroll-overflow.js +1 -1
  498. package/dist/internal/sizes.styles.js +0 -2
  499. package/dist/internal/specialist-tokens.styles.js +6 -11
  500. package/dist/internal/text-highlights.d.ts +4 -1
  501. package/dist/internal/text-highlights.js +1 -1
  502. package/dist/internal/tokens/palette.styles.js +0 -15
  503. package/dist/internal/tokens.styles.js +19 -113
  504. package/dist/lyra.d.ts +8 -5
  505. package/dist/styles/reservations.css +82 -0
  506. package/dist/svelte.d.ts +56 -37
  507. package/dist/translations/ar.js +1 -1
  508. package/dist/translations/de.js +1 -1
  509. package/dist/translations/es.js +1 -1
  510. package/dist/translations/fa.js +1 -1
  511. package/dist/translations/fr.js +1 -1
  512. package/dist/translations/he.js +1 -1
  513. package/dist/translations/ja.js +1 -1
  514. package/dist/translations/pt-BR.js +1 -1
  515. package/dist/translations/ru.js +1 -1
  516. package/dist/translations/zh-CN.js +1 -1
  517. package/dist/vue.d.ts +56 -37
  518. package/llms/components/lr-accordion-item.md +12 -3
  519. package/llms/components/lr-accordion.md +11 -2
  520. package/llms/components/lr-agent-eval-dashboard.md +1 -1
  521. package/llms/components/lr-agent-trace.md +3 -1
  522. package/llms/components/lr-agent-workspace.md +20 -0
  523. package/llms/components/lr-artifact-panel.md +10 -4
  524. package/llms/components/lr-attachment-chip.md +7 -4
  525. package/llms/components/lr-attachment-trigger.md +9 -6
  526. package/llms/components/lr-av-player.md +3 -1
  527. package/llms/components/lr-avatar.md +6 -6
  528. package/llms/components/lr-bar-chart.md +4 -3
  529. package/llms/components/lr-box-plot.md +1 -1
  530. package/llms/components/lr-browser-frame.md +7 -3
  531. package/llms/components/lr-bubble-chart.md +4 -3
  532. package/llms/components/lr-calendar.md +9 -2
  533. package/llms/components/lr-card.md +24 -0
  534. package/llms/components/lr-chart.md +32 -8
  535. package/llms/components/lr-chat-viewport.md +7 -2
  536. package/llms/components/lr-checkbox-group.md +13 -5
  537. package/llms/components/lr-checkbox.md +5 -2
  538. package/llms/components/lr-checkpoint.md +6 -2
  539. package/llms/components/lr-combobox.md +5 -2
  540. package/llms/components/lr-command-palette.md +4 -1
  541. package/llms/components/lr-confirm-bar.md +7 -3
  542. package/llms/components/lr-context-meter.md +12 -11
  543. package/llms/components/lr-conversation-item.md +7 -4
  544. package/llms/components/lr-details.md +11 -2
  545. package/llms/components/lr-dialog.md +15 -10
  546. package/llms/components/lr-dock-panel.md +7 -10
  547. package/llms/components/lr-document-preview.md +6 -1
  548. package/llms/components/lr-document-viewer.md +3 -2
  549. package/llms/components/lr-doughnut-chart.md +4 -3
  550. package/llms/components/lr-drawer.md +3 -3
  551. package/llms/components/lr-entity-card.md +3 -3
  552. package/llms/components/lr-entity-chip.md +1 -1
  553. package/llms/components/lr-entity-dossier.md +4 -1
  554. package/llms/components/lr-file-input.md +2 -2
  555. package/llms/components/lr-flag.md +20 -5
  556. package/llms/components/lr-heatmap.md +29 -1
  557. package/llms/components/lr-histogram.md +3 -1
  558. package/llms/components/lr-icon.md +1 -1
  559. package/llms/components/lr-json-schema-viewer.md +2 -1
  560. package/llms/components/lr-knowledge-graph-explorer.md +8 -3
  561. package/llms/components/lr-known-date.md +4 -2
  562. package/llms/components/lr-line-chart.md +4 -3
  563. package/llms/components/lr-lite-chart.md +16 -6
  564. package/llms/components/lr-map.md +72 -8
  565. package/llms/components/lr-markdown-core.md +3 -2
  566. package/llms/components/lr-media-card.md +28 -12
  567. package/llms/components/lr-message-parts.md +2 -1
  568. package/llms/components/lr-model-select.md +9 -10
  569. package/llms/components/lr-model-settings-panel.md +9 -9
  570. package/llms/components/lr-neighbor-list.md +1 -1
  571. package/llms/components/lr-notebook-viewer.md +6 -3
  572. package/llms/components/lr-option.md +5 -2
  573. package/llms/components/lr-pdf-viewer.md +62 -2
  574. package/llms/components/lr-pie-chart.md +4 -3
  575. package/llms/components/lr-polar-area-chart.md +4 -3
  576. package/llms/components/lr-popover.md +5 -0
  577. package/llms/components/lr-progress-ring.md +8 -1
  578. package/llms/components/lr-prompt-studio.md +1 -1
  579. package/llms/components/lr-provenance-panel.md +4 -2
  580. package/llms/components/lr-qr-code.md +1 -1
  581. package/llms/components/lr-radar-chart.md +4 -3
  582. package/llms/components/lr-rag-eval-dashboard.md +2 -2
  583. package/llms/components/lr-random-content.md +13 -0
  584. package/llms/components/lr-reorder-item.md +6 -1
  585. package/llms/components/lr-reorder-list.md +6 -1
  586. package/llms/components/lr-responsive-panel.md +11 -7
  587. package/llms/components/lr-scatter-chart.md +4 -3
  588. package/llms/components/lr-sequence-strip.md +16 -2
  589. package/llms/components/lr-slider.md +12 -5
  590. package/llms/components/lr-sparkline.md +1 -1
  591. package/llms/components/lr-suggestion-chips.md +7 -2
  592. package/llms/components/lr-swatch-picker.md +5 -5
  593. package/llms/components/lr-switch.md +5 -2
  594. package/llms/components/lr-table.md +30 -4
  595. package/llms/components/lr-terminal.md +3 -1
  596. package/llms/components/lr-thread-list.md +8 -8
  597. package/llms/components/lr-time-input.md +6 -1
  598. package/llms/components/lr-timeline-item.md +24 -0
  599. package/llms/components/lr-timeline.md +25 -1
  600. package/llms/components/lr-token-input.md +7 -2
  601. package/llms/components/lr-tool-approval-dialog.md +7 -8
  602. package/llms/components/lr-tool-call-chip.md +5 -1
  603. package/llms/components/lr-tool-param-form.md +14 -12
  604. package/llms/components/lr-tool-result-dialog.md +11 -9
  605. package/llms/components/lr-tool-result-view.md +7 -6
  606. package/llms/components/lr-tool-select-dialog.md +18 -16
  607. package/llms/components/lr-trace-tree.md +3 -1
  608. package/llms/components/lr-usage-badge.md +4 -1
  609. package/llms/components/lr-video-playlist.md +1 -1
  610. package/llms/components/lr-virtual-list.md +22 -14
  611. package/llms/components/lr-voice-picker.md +8 -5
  612. package/llms/components/lr-widget-renderer.md +3 -3
  613. package/llms/components/lr-widget.md +1 -1
  614. package/llms/components/lr-word-cloud.md +6 -2
  615. package/llms/index.md +1 -1
  616. package/llms/peers.md +13 -3
  617. package/llms/shared.md +83 -2
  618. package/llms-full.txt +1159 -288
  619. package/package.json +19 -7
  620. package/vscode-css-data.json +37 -2
  621. package/vscode-html-data.json +402 -45
  622. package/web-types.json +300 -56
@@ -1,4 +1,4 @@
1
- var __decorate=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r};import{html,svg,nothing}from"lit";import{property,query,state}from"lit/decorators.js";import{LyraElement}from"../../../internal/lyra-element.js";import{place}from"../../../internal/positioner.js";import{nextId}from"../../../internal/a11y.js";import{finiteRange}from"../../../internal/numbers.js";import{getNumberFormat}from"../../../internal/intl-cache.js";import{durationMessageValue}from"../../../internal/duration.js";import{styles}from"./tool-call-chip.styles.js";import{LYRA_DEFAULT_accessibleLabelSeparator,LYRA_DEFAULT_collapse,LYRA_DEFAULT_details,LYRA_DEFAULT_durationMilliseconds,LYRA_DEFAULT_durationSeconds,LYRA_DEFAULT_map,LYRA_DEFAULT_navigation,LYRA_DEFAULT_open,LYRA_DEFAULT_progress,LYRA_DEFAULT_search,LYRA_DEFAULT_select,LYRA_DEFAULT_statusDenied,LYRA_DEFAULT_statusError,LYRA_DEFAULT_statusPending,LYRA_DEFAULT_statusRunning,LYRA_DEFAULT_statusSuccess,LYRA_DEFAULT_toolCall}from"../../../internal/default-strings.generated.js";const ICON_VIEW_BOX="0 0 24 24",ICON_STROKE_WIDTH="1.75";function icon(paths){return svg`
1
+ var __decorate=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r};import{html,svg,nothing}from"lit";import{property,query,state}from"lit/decorators.js";import{LyraElement}from"../../../internal/lyra-element.js";import{place}from"../../../internal/positioner.js";import{nextId}from"../../../internal/a11y.js";import{finiteRange}from"../../../internal/numbers.js";import{getNumberFormat}from"../../../internal/intl-cache.js";import{durationMessageValue}from"../../../internal/duration.js";import{styles}from"./tool-call-chip.styles.js";import{LYRA_DEFAULT_accessibleLabelSeparator,LYRA_DEFAULT_collapse,LYRA_DEFAULT_details,LYRA_DEFAULT_durationMilliseconds,LYRA_DEFAULT_durationSeconds,LYRA_DEFAULT_map,LYRA_DEFAULT_navigation,LYRA_DEFAULT_open,LYRA_DEFAULT_popover,LYRA_DEFAULT_progress,LYRA_DEFAULT_search,LYRA_DEFAULT_select,LYRA_DEFAULT_statusDenied,LYRA_DEFAULT_statusError,LYRA_DEFAULT_statusPending,LYRA_DEFAULT_statusRunning,LYRA_DEFAULT_statusSuccess,LYRA_DEFAULT_toolCall}from"../../../internal/default-strings.generated.js";const ICON_VIEW_BOX="0 0 24 24",ICON_STROKE_WIDTH="1.75";function icon(paths){return svg`
2
2
  <svg
3
3
  width="1em"
4
4
  height="1em"
@@ -15,7 +15,7 @@ var __decorate=function(decorators,target,key,desc){var c=arguments.length,r=c<3
15
15
  <circle cx="12" cy="12" r="9"></circle>
16
16
  <line x1="9" y1="9" x2="15" y2="15"></line>
17
17
  <line x1="15" y1="9" x2="9" y2="15"></line>
18
- `)}function deniedIcon(){return icon(svg`<circle cx="12" cy="12" r="9"></circle><line x1="6" y1="18" x2="18" y2="6"></line>`)}const STATUS_ICON={pending:pendingIcon,running:runningIcon,success:successIcon,error:errorIcon,denied:deniedIcon},STATUS_LABEL={pending:"Pending",running:"Running",success:"Success",error:"Error",denied:"Denied"},STATUS_LABEL_KEY={pending:"statusPending",running:"statusRunning",success:"statusSuccess",error:"statusError",denied:"statusDenied"},STATUS_VALUES=new Set(Object.keys(STATUS_LABEL)),statusConverter={fromAttribute(value){return value!==null&&STATUS_VALUES.has(value)?value:"pending"},toAttribute(value){return value}};class LyraToolCallChip extends LyraElement{constructor(){super(...arguments),this.name="",this.category="",this.status="pending",this.summary="",this.icon="",this.callId="",this.hasDetailSlot=!1,this.tooltipOpen=!1,this.tooltipId=nextId("tool-call-chip-tooltip"),this.hovering=!1,this.focused=!1,this.onDetailSlotChange=e=>{this.hasDetailSlot=this.hasPreviewNodes(e.target.assignedNodes({flatten:!0})),this.hasDetailSlot||this.hideTooltip()},this.onMouseEnter=()=>{this.hovering=!0,this.showTooltip()},this.onMouseLeave=()=>{this.hovering=!1,!this.focused&&this.hideTooltip()},this.onFocus=()=>{this.focused=!0,this.showTooltip()},this.onBlur=()=>{this.focused=!1,!this.hovering&&this.hideTooltip()},this.onKeyDown=e=>{e.key==="Escape"&&this.tooltipOpen&&(e.stopPropagation(),this.hideTooltip())},this.onClick=()=>{this.emit("lr-tool-call-chip-select",{name:this.name,callId:this.callId})}}static{this.defaultStrings={...super.defaultStrings,accessibleLabelSeparator:LYRA_DEFAULT_accessibleLabelSeparator,collapse:LYRA_DEFAULT_collapse,details:LYRA_DEFAULT_details,durationMilliseconds:LYRA_DEFAULT_durationMilliseconds,durationSeconds:LYRA_DEFAULT_durationSeconds,map:LYRA_DEFAULT_map,navigation:LYRA_DEFAULT_navigation,open:LYRA_DEFAULT_open,progress:LYRA_DEFAULT_progress,search:LYRA_DEFAULT_search,select:LYRA_DEFAULT_select,statusDenied:LYRA_DEFAULT_statusDenied,statusError:LYRA_DEFAULT_statusError,statusPending:LYRA_DEFAULT_statusPending,statusRunning:LYRA_DEFAULT_statusRunning,statusSuccess:LYRA_DEFAULT_statusSuccess,toolCall:LYRA_DEFAULT_toolCall}}static{this.styles=[LyraElement.styles,styles]}hasPreviewNodes(nodes){return nodes.some(node=>node.nodeType===3?!!node.textContent?.trim():node.nodeType===1&&!node.hasAttribute("slot"))}willUpdate(changed){super.willUpdate(changed),this.hasUpdated||(this.hasDetailSlot=this.hasPreviewNodes(Array.from(this.childNodes)))}updated(changed){if(super.updated(changed),changed.has("tooltipOpen")&&(this.cleanupPositioner?.(),this.cleanupPositioner=void 0,this.tooltipOpen)){const anchor=this.renderRoot.querySelector('[part="base"]'),tooltip=this.renderRoot.querySelector('[part="tooltip"]');anchor&&tooltip&&(this.cleanupPositioner=place(anchor,tooltip,{placement:"top-start"}))}}disconnectedCallback(){super.disconnectedCallback(),this.cleanupPositioner?.(),this.cleanupPositioner=void 0,this.tooltipOpen=!1,this.hovering=!1,this.focused=!1}showTooltip(){!this.hasDetailSlot||this.tooltipOpen||(this.tooltipOpen=!0)}hideTooltip(){this.tooltipOpen&&(this.tooltipOpen=!1)}focus(options){this.baseEl?.focus(options)}blur(){this.baseEl?.blur()}click(){this.baseEl?.click()}get effectiveStatus(){return STATUS_VALUES.has(this.status)?this.status:"pending"}get safeDurationMs(){return this.durationMs!=null&&Number.isFinite(this.durationMs)?finiteRange(this.durationMs,0,0):null}get accessibleLabel(){const parts=[this.name||this.localize("toolCall")];this.summary&&parts.push(this.summary),parts.push(this.localize(STATUS_LABEL_KEY[this.effectiveStatus]));const durationMs=this.safeDurationMs;return durationMs!=null&&parts.push(this.localizedDuration(durationMs)),parts.join(this.localize("accessibleLabelSeparator"))}localizedDuration(ms){const duration=durationMessageValue(ms);return this.localize(duration.key,void 0,{value:getNumberFormat(this.effectiveLocale,{maximumFractionDigits:duration.key==="durationSeconds"?1:0}).format(duration.value)})}render(){const hasCategory=this.category.length>0,hasSummary=this.summary.length>0,durationMs=this.safeDurationMs,hasDuration=durationMs!=null,status=this.effectiveStatus;return html`
18
+ `)}function deniedIcon(){return icon(svg`<circle cx="12" cy="12" r="9"></circle><line x1="6" y1="18" x2="18" y2="6"></line>`)}const STATUS_ICON={pending:pendingIcon,running:runningIcon,success:successIcon,error:errorIcon,denied:deniedIcon},STATUS_LABEL={pending:"Pending",running:"Running",success:"Success",error:"Error",denied:"Denied"},STATUS_LABEL_KEY={pending:"statusPending",running:"statusRunning",success:"statusSuccess",error:"statusError",denied:"statusDenied"},STATUS_VALUES=new Set(Object.keys(STATUS_LABEL)),statusConverter={fromAttribute(value){return value!==null&&STATUS_VALUES.has(value)?value:"pending"},toAttribute(value){return value}};class LyraToolCallChip extends LyraElement{constructor(){super(...arguments),this.name="",this.category="",this.status="pending",this.summary="",this.icon="",this.callId="",this.hasDetailSlot=!1,this.tooltipOpen=!1,this.tooltipId=nextId("tool-call-chip-tooltip"),this.hovering=!1,this.focused=!1,this.onDetailSlotChange=e=>{this.hasDetailSlot=this.hasPreviewNodes(e.target.assignedNodes({flatten:!0})),this.hasDetailSlot||this.hideTooltip()},this.onMouseEnter=()=>{this.hovering=!0,this.showTooltip()},this.onMouseLeave=()=>{this.hovering=!1,!this.focused&&this.hideTooltip()},this.onFocus=()=>{this.focused=!0,this.showTooltip()},this.onBlur=()=>{this.focused=!1,!this.hovering&&this.hideTooltip()},this.onKeyDown=e=>{e.key==="Escape"&&this.tooltipOpen&&(e.stopPropagation(),this.hideTooltip())},this.onClick=()=>{this.emit("lr-tool-call-chip-select",{name:this.name,callId:this.callId})}}static{this.defaultStrings={...super.defaultStrings,accessibleLabelSeparator:LYRA_DEFAULT_accessibleLabelSeparator,collapse:LYRA_DEFAULT_collapse,details:LYRA_DEFAULT_details,durationMilliseconds:LYRA_DEFAULT_durationMilliseconds,durationSeconds:LYRA_DEFAULT_durationSeconds,map:LYRA_DEFAULT_map,navigation:LYRA_DEFAULT_navigation,open:LYRA_DEFAULT_open,popover:LYRA_DEFAULT_popover,progress:LYRA_DEFAULT_progress,search:LYRA_DEFAULT_search,select:LYRA_DEFAULT_select,statusDenied:LYRA_DEFAULT_statusDenied,statusError:LYRA_DEFAULT_statusError,statusPending:LYRA_DEFAULT_statusPending,statusRunning:LYRA_DEFAULT_statusRunning,statusSuccess:LYRA_DEFAULT_statusSuccess,toolCall:LYRA_DEFAULT_toolCall}}static{this.styles=[LyraElement.styles,styles]}hasPreviewNodes(nodes){return nodes.some(node=>node.nodeType===3?!!node.textContent?.trim():node.nodeType===1&&!node.hasAttribute("slot"))}willUpdate(changed){super.willUpdate(changed),this.hasUpdated||(this.hasDetailSlot=this.hasPreviewNodes(Array.from(this.childNodes)))}updated(changed){if(super.updated(changed),changed.has("tooltipOpen")&&(this.cleanupPositioner?.(),this.cleanupPositioner=void 0,this.tooltipOpen)){const anchor=this.renderRoot.querySelector('[part="base"]'),tooltip=this.renderRoot.querySelector('[part="tooltip"]');anchor&&tooltip&&(this.cleanupPositioner=place(anchor,tooltip,{placement:"top-start"}))}}disconnectedCallback(){super.disconnectedCallback(),this.cleanupPositioner?.(),this.cleanupPositioner=void 0,this.tooltipOpen=!1,this.hovering=!1,this.focused=!1}showTooltip(){!this.hasDetailSlot||this.tooltipOpen||(this.tooltipOpen=!0)}hideTooltip(){this.tooltipOpen&&(this.tooltipOpen=!1)}focus(options){this.baseEl?.focus(options)}blur(){this.baseEl?.blur()}click(){this.baseEl?.click()}get effectiveStatus(){return STATUS_VALUES.has(this.status)?this.status:"pending"}get safeDurationMs(){return this.durationMs!=null&&Number.isFinite(this.durationMs)?finiteRange(this.durationMs,0,0):null}get accessibleLabel(){const parts=[this.name||this.localize("toolCall")];this.summary&&parts.push(this.summary),parts.push(this.localize(STATUS_LABEL_KEY[this.effectiveStatus]));const durationMs=this.safeDurationMs;return durationMs!=null&&parts.push(this.localizedDuration(durationMs)),parts.join(this.localize("accessibleLabelSeparator"))}localizedDuration(ms){const duration=durationMessageValue(ms);return this.localize(duration.key,void 0,{value:getNumberFormat(this.effectiveLocale,{maximumFractionDigits:duration.key==="durationSeconds"?1:0}).format(duration.value)})}render(){const hasCategory=this.category.length>0,hasSummary=this.summary.length>0,durationMs=this.safeDurationMs,hasDuration=durationMs!=null,status=this.effectiveStatus;return html`
19
19
  <button
20
20
  part="base"
21
21
  type="button"
@@ -2,10 +2,6 @@ import{css}from"lit";const styles=css`
2
2
  :host {
3
3
  display: inline-flex;
4
4
  max-inline-size: 100%;
5
- /* Per-status accent -- one custom property swapped by the :host([status])
6
- rules below rather than repeating background/color per part per status.
7
- Defaults to the 'pending' tone so an unset/unknown status still reads
8
- as neutral instead of unstyled. */
9
5
  --_lr-tool-call-chip-accent: var(--lr-color-text-quiet);
10
6
  --_lr-tool-call-chip-bg: var(--lr-color-surface);
11
7
  --_lr-tool-call-chip-border: var(--lr-color-border);
@@ -27,10 +23,6 @@ import{css}from"lit";const styles=css`
27
23
  --_lr-tool-call-chip-bg: var(--lr-color-danger-quiet);
28
24
  --_lr-tool-call-chip-border: transparent;
29
25
  }
30
- /* 'denied' reads as a policy rejection, not a runtime failure -- the
31
- warning (not danger) tint keeps it visually distinct from 'error',
32
- matching lr-tool-result-dialog's identical status vocabulary/tone so
33
- the two components agree on what "denied" looks like. */
34
26
  :host([status="denied"]) {
35
27
  --_lr-tool-call-chip-accent: var(--lr-color-warning);
36
28
  --_lr-tool-call-chip-bg: var(--lr-color-warning-quiet);
@@ -62,10 +54,6 @@ import{css}from"lit";const styles=css`
62
54
  [part="base"]:hover {
63
55
  border-color: var(--lr-color-brand);
64
56
  }
65
- /* The hover moves the border only, which leaves the pressed step nothing to deepen -- so pressed
66
- tints the chip's own fill toward --lr-color-mix-partner (which follows the text colour). The
67
- fill is already a custom property, so this one declaration covers all five status tints without
68
- restating any of them, and darkens in a light theme while lightening in a dark one. */
69
57
  [part="base"]:active {
70
58
  background: color-mix(
71
59
  in oklab,
@@ -88,16 +76,10 @@ import{css}from"lit";const styles=css`
88
76
  [part="icon"] svg {
89
77
  display: block;
90
78
  }
91
- /* A three-quarter arc (not a full ring) is what actually reads as
92
- spinning once rotated -- a full circle looks identical at every
93
- rotation frame. */
94
79
  :host([status="running"]) [part="icon"] svg {
95
80
  animation: lr-tool-call-chip-spin
96
81
  var(--lr-tool-call-chip-spin, var(--_lr-tool-call-chip-spin)) infinite;
97
82
  }
98
- /* Subtler than the spin -- a slow opacity breathe, so a list of several
99
- still-queued chips doesn't compete visually with any 'running' ones
100
- next to it. */
101
83
  :host([status="pending"]) [part="icon"] svg {
102
84
  animation: lr-tool-call-chip-pulse var(--lr-transition-ambient) infinite;
103
85
  }
@@ -116,11 +98,6 @@ import{css}from"lit";const styles=css`
116
98
  overflow: hidden;
117
99
  text-overflow: ellipsis;
118
100
  white-space: nowrap;
119
- /* Full-strength text, not --lr-color-text-quiet -- this sits on top of
120
- the per-status *-quiet tint backgrounds above (e.g. success-quiet),
121
- and text-quiet's gray fails WCAG AA contrast against several of those
122
- tints even though it comfortably passes against the plain surface
123
- background used by the resting/denied states. */
124
101
  color: var(--lr-color-text);
125
102
  font-size: var(--lr-size-0-6875rem);
126
103
  font-weight: var(--lr-font-weight-semibold);
@@ -145,7 +122,6 @@ import{css}from"lit";const styles=css`
145
122
  overflow: hidden;
146
123
  text-overflow: ellipsis;
147
124
  white-space: nowrap;
148
- /* See [part='category']'s comment above -- same contrast rationale. */
149
125
  color: var(--lr-color-text);
150
126
  }
151
127
  [part="summary"]::before {
@@ -176,17 +152,11 @@ import{css}from"lit";const styles=css`
176
152
  text-align: end;
177
153
  }
178
154
  [part="duration"] {
179
- /* See [part='category']'s comment above -- same contrast rationale. */
180
155
  color: var(--lr-color-text);
181
156
  font-variant-numeric: tabular-nums;
182
157
  white-space: nowrap;
183
158
  }
184
159
 
185
- /* Positioned by internal/positioner.js's place() -- see combobox's
186
- [part='listbox'] for the identical fixed/z-index/max-size shape. Unlike
187
- that popup this one has no open/close transition: a tooltip that
188
- tracks the pointer/focus target benefits from appearing instantly, not
189
- chasing a fade. */
190
160
  [part="tooltip"] {
191
161
  position: fixed;
192
162
  z-index: var(--lr-layer-dropdown);
@@ -4,7 +4,7 @@ var __decorate=function(decorators,target,key,desc){var c=arguments.length,r=c<3
4
4
  .hint=${prop.description??""}
5
5
  .errorText=${errorMessage}
6
6
  .required=${!1}
7
- aria-required=${required?"true":nothing}
7
+ aria-required=${required?"true":"false"}
8
8
  .value=${typeof effective=="string"?effective:""}
9
9
  ?disabled=${this.effectiveDisabled}
10
10
  @input=${this.stopNestedControlEvent}
@@ -22,8 +22,8 @@ var __decorate=function(decorators,target,key,desc){var c=arguments.length,r=c<3
22
22
  type="text"
23
23
  id=${fieldId}
24
24
  aria-describedby=${describedBy||nothing}
25
- aria-required=${required?"true":nothing}
26
- aria-invalid=${errorMessage?"true":nothing}
25
+ aria-required=${required?"true":"false"}
26
+ aria-invalid=${errorMessage?"true":"false"}
27
27
  autocomplete=${prop.autocomplete||nothing}
28
28
  .spellcheck=${prop.spellcheck??!0}
29
29
  autocapitalize=${prop.autocapitalize||nothing}
@@ -42,8 +42,8 @@ var __decorate=function(decorators,target,key,desc){var c=arguments.length,r=c<3
42
42
  id=${fieldId}
43
43
  step=${prop.type==="integer"?"1":"any"}
44
44
  aria-describedby=${describedBy||nothing}
45
- aria-required=${required?"true":nothing}
46
- aria-invalid=${errorMessage?"true":nothing}
45
+ aria-required=${required?"true":"false"}
46
+ aria-invalid=${errorMessage?"true":"false"}
47
47
  .value=${numValue}
48
48
  ?disabled=${this.effectiveDisabled}
49
49
  @input=${e=>this.onNumberInput(key,e)}
@@ -55,7 +55,7 @@ var __decorate=function(decorators,target,key,desc){var c=arguments.length,r=c<3
55
55
  .hint=${prop.description??""}
56
56
  .errorText=${errorMessage}
57
57
  .required=${!1}
58
- aria-required=${required?"true":nothing}
58
+ aria-required=${required?"true":"false"}
59
59
  .value=${selected}
60
60
  ?disabled=${this.effectiveDisabled}
61
61
  @input=${this.stopNestedControlEvent}
@@ -30,11 +30,6 @@ import{css}from"lit";import{formControlRequiredMarker}from"../../../internal/for
30
30
  font-size: var(--lr-font-size-md-sm);
31
31
  font-weight: var(--lr-font-weight-semibold);
32
32
  }
33
- /* The shared required marker (internal/form-control.styles.ts). This is the
34
- one component where "required" is per FIELD rather than per host, which is
35
- why that sheet carries a second selector keyed on
36
- [part="field"][data-required] alongside the usual :host([required]) one.
37
- Boolean and enum labels are owned by their nested <lr-select> instead. */
38
33
  ${formControlRequiredMarker}
39
34
 
40
35
  [part='field'] > lr-select,
@@ -1,4 +1,4 @@
1
- var __decorate=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r};import{html,svg,nothing}from"lit";import{property,state}from"lit/decorators.js";import{LyraElement}from"../../../internal/lyra-element.js";import{activateOverlay}from"../../../internal/overlay-manager.js";import{hostAriaLabel,nextId}from"../../../internal/a11y.js";import{closeIcon,expandIcon}from"../../../internal/icons.js";import{finiteRange}from"../../../internal/numbers.js";import{getNumberFormat}from"../../../internal/intl-cache.js";import{durationMessageValue}from"../../../internal/duration.js";import{styles}from"./tool-result-dialog.styles.js";import{LYRA_DEFAULT_close,LYRA_DEFAULT_collapse,LYRA_DEFAULT_details,LYRA_DEFAULT_durationMilliseconds,LYRA_DEFAULT_durationSeconds,LYRA_DEFAULT_map,LYRA_DEFAULT_maximize,LYRA_DEFAULT_navigation,LYRA_DEFAULT_open,LYRA_DEFAULT_progress,LYRA_DEFAULT_restore,LYRA_DEFAULT_search,LYRA_DEFAULT_select,LYRA_DEFAULT_statusDenied,LYRA_DEFAULT_statusError,LYRA_DEFAULT_statusPending,LYRA_DEFAULT_statusRunning,LYRA_DEFAULT_statusSuccess,LYRA_DEFAULT_toolCall}from"../../../internal/default-strings.generated.js";const ICON_VIEW_BOX="0 0 24 24",ICON_STROKE_WIDTH="1.75";function icon(paths){return svg`
1
+ var __decorate=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r};import{html,svg,nothing}from"lit";import{property,state}from"lit/decorators.js";import{LyraElement}from"../../../internal/lyra-element.js";import{activateOverlay}from"../../../internal/overlay-manager.js";import{hostAriaLabel,nextId}from"../../../internal/a11y.js";import{closeIcon,expandIcon}from"../../../internal/icons.js";import{finiteRange}from"../../../internal/numbers.js";import{getNumberFormat}from"../../../internal/intl-cache.js";import{durationMessageValue}from"../../../internal/duration.js";import{styles}from"./tool-result-dialog.styles.js";import{LYRA_DEFAULT_close,LYRA_DEFAULT_collapse,LYRA_DEFAULT_details,LYRA_DEFAULT_durationMilliseconds,LYRA_DEFAULT_durationSeconds,LYRA_DEFAULT_map,LYRA_DEFAULT_maximize,LYRA_DEFAULT_navigation,LYRA_DEFAULT_open,LYRA_DEFAULT_popover,LYRA_DEFAULT_progress,LYRA_DEFAULT_restore,LYRA_DEFAULT_search,LYRA_DEFAULT_select,LYRA_DEFAULT_statusDenied,LYRA_DEFAULT_statusError,LYRA_DEFAULT_statusPending,LYRA_DEFAULT_statusRunning,LYRA_DEFAULT_statusSuccess,LYRA_DEFAULT_toolCall}from"../../../internal/default-strings.generated.js";const ICON_VIEW_BOX="0 0 24 24",ICON_STROKE_WIDTH="1.75";function icon(paths){return svg`
2
2
  <svg
3
3
  width="1em"
4
4
  height="1em"
@@ -20,7 +20,7 @@ var __decorate=function(decorators,target,key,desc){var c=arguments.length,r=c<3
20
20
  <circle cx="12" cy="12" r="9"></circle>
21
21
  <line x1="9" y1="9" x2="15" y2="15"></line>
22
22
  <line x1="15" y1="9" x2="9" y2="15"></line>
23
- `)}function deniedIcon(){return icon(svg`<circle cx="12" cy="12" r="9"></circle><line x1="6" y1="18" x2="18" y2="6"></line>`)}const STATUS_ICON={pending:pendingIcon,running:runningIcon,success:successIcon,error:errorIcon,denied:deniedIcon},STATUS_LABEL={pending:"Pending",running:"Running",success:"Success",error:"Error",denied:"Denied"},STATUS_LABEL_KEY={pending:"statusPending",running:"statusRunning",success:"statusSuccess",error:"statusError",denied:"statusDenied"},STATUS_VALUES=new Set(Object.keys(STATUS_LABEL)),statusConverter={fromAttribute(value){return value!==null&&STATUS_VALUES.has(value)?value:"pending"},toAttribute(value){return value}};class LyraToolResultDialog extends LyraElement{constructor(){super(...arguments),this.open=!1,this.accessibleLabel=null,this.toolName="",this.status="pending",this.maximized=!1,this.hasFooterSlot=!1,this.titleId=nextId("tool-result-dialog-title"),this.onFooterSlotChange=e=>{this.hasFooterSlot=e.target.assignedElements({flatten:!0}).length>0},this.onBackdropClick=()=>{this.overlay?.dismissBackdrop()},this.onCloseButtonClick=()=>{this.close("close-button")},this.toggleMaximized=()=>{this.maximized=!this.maximized,this.emit("lr-maximize-change",Object.freeze({maximized:this.maximized}))}}static{this.defaultStrings={...super.defaultStrings,close:LYRA_DEFAULT_close,collapse:LYRA_DEFAULT_collapse,details:LYRA_DEFAULT_details,durationMilliseconds:LYRA_DEFAULT_durationMilliseconds,durationSeconds:LYRA_DEFAULT_durationSeconds,map:LYRA_DEFAULT_map,maximize:LYRA_DEFAULT_maximize,navigation:LYRA_DEFAULT_navigation,open:LYRA_DEFAULT_open,progress:LYRA_DEFAULT_progress,restore:LYRA_DEFAULT_restore,search:LYRA_DEFAULT_search,select:LYRA_DEFAULT_select,statusDenied:LYRA_DEFAULT_statusDenied,statusError:LYRA_DEFAULT_statusError,statusPending:LYRA_DEFAULT_statusPending,statusRunning:LYRA_DEFAULT_statusRunning,statusSuccess:LYRA_DEFAULT_statusSuccess,toolCall:LYRA_DEFAULT_toolCall}}static{this.styles=[LyraElement.styles,styles]}willUpdate(changed){super.willUpdate(changed),this.hasUpdated||(this.hasFooterSlot=Array.from(this.children).some(el=>el.getAttribute("slot")==="footer")),changed.has("open")&&(this.open?this.activateOverlay():this.deactivateOverlay())}updated(changed){super.updated(changed),changed.has("open")&&this.open&&this.overlay?.focusInitial()}connectedCallback(){super.connectedCallback(),this.hasUpdated&&this.open&&(this.overlay?.isActive()?this.overlay.resume():this.activateOverlay(),queueMicrotask(()=>this.overlay?.focusInitial()))}disconnectedCallback(){super.disconnectedCallback(),this.overlay?.suspend()}close(reason="api"){this.open&&(this.open=!1,this.emit("lr-close",reason))}show(){this.open||(this.open=!0)}hide(reason="api"){this.close(reason)}activateOverlay(){this.overlay?.isActive()||(this.overlay=activateOverlay({host:this,panel:()=>this.shadowRoot?.querySelector('[part="panel"]')??null,onEscape:()=>this.close("escape"),onBackdrop:()=>this.close("backdrop"),lockScroll:!0,suspendWhenUnrendered:!0}))}deactivateOverlay(){this.overlay?.deactivate(),this.overlay=void 0}localizedDuration(ms){const duration=durationMessageValue(ms);return this.localize(duration.key,void 0,{value:getNumberFormat(this.effectiveLocale,{maximumFractionDigits:duration.key==="durationSeconds"?1:0}).format(duration.value)})}get safeDurationMs(){return this.durationMs!=null&&Number.isFinite(this.durationMs)?finiteRange(this.durationMs,0,0):null}render(){const durationMs=this.safeDurationMs,panelLabel=hostAriaLabel(this)===null&&this.accessibleLabel?this.accessibleLabel:null;return html`
23
+ `)}function deniedIcon(){return icon(svg`<circle cx="12" cy="12" r="9"></circle><line x1="6" y1="18" x2="18" y2="6"></line>`)}const STATUS_ICON={pending:pendingIcon,running:runningIcon,success:successIcon,error:errorIcon,denied:deniedIcon},STATUS_LABEL={pending:"Pending",running:"Running",success:"Success",error:"Error",denied:"Denied"},STATUS_LABEL_KEY={pending:"statusPending",running:"statusRunning",success:"statusSuccess",error:"statusError",denied:"statusDenied"},STATUS_VALUES=new Set(Object.keys(STATUS_LABEL)),statusConverter={fromAttribute(value){return value!==null&&STATUS_VALUES.has(value)?value:"pending"},toAttribute(value){return value}};class LyraToolResultDialog extends LyraElement{constructor(){super(...arguments),this.open=!1,this.accessibleLabel=null,this.toolName="",this.status="pending",this.maximized=!1,this.hasFooterSlot=!1,this.titleId=nextId("tool-result-dialog-title"),this.onFooterSlotChange=e=>{this.hasFooterSlot=e.target.assignedElements({flatten:!0}).length>0},this.onBackdropClick=()=>{this.overlay?.dismissBackdrop()},this.onCloseButtonClick=()=>{this.close("close-button")},this.toggleMaximized=()=>{this.maximized=!this.maximized,this.emit("lr-maximize-change",Object.freeze({maximized:this.maximized}))}}static{this.defaultStrings={...super.defaultStrings,close:LYRA_DEFAULT_close,collapse:LYRA_DEFAULT_collapse,details:LYRA_DEFAULT_details,durationMilliseconds:LYRA_DEFAULT_durationMilliseconds,durationSeconds:LYRA_DEFAULT_durationSeconds,map:LYRA_DEFAULT_map,maximize:LYRA_DEFAULT_maximize,navigation:LYRA_DEFAULT_navigation,open:LYRA_DEFAULT_open,popover:LYRA_DEFAULT_popover,progress:LYRA_DEFAULT_progress,restore:LYRA_DEFAULT_restore,search:LYRA_DEFAULT_search,select:LYRA_DEFAULT_select,statusDenied:LYRA_DEFAULT_statusDenied,statusError:LYRA_DEFAULT_statusError,statusPending:LYRA_DEFAULT_statusPending,statusRunning:LYRA_DEFAULT_statusRunning,statusSuccess:LYRA_DEFAULT_statusSuccess,toolCall:LYRA_DEFAULT_toolCall}}static{this.styles=[LyraElement.styles,styles]}willUpdate(changed){super.willUpdate(changed),this.hasUpdated||(this.hasFooterSlot=Array.from(this.children).some(el=>el.getAttribute("slot")==="footer")),changed.has("open")&&(this.open?this.activateOverlay():this.deactivateOverlay())}updated(changed){super.updated(changed),changed.has("open")&&this.open&&this.overlay?.focusInitial()}connectedCallback(){super.connectedCallback(),this.hasUpdated&&this.open&&(this.overlay?.isActive()?this.overlay.resume():this.activateOverlay(),queueMicrotask(()=>this.overlay?.focusInitial()))}disconnectedCallback(){super.disconnectedCallback(),this.overlay?.suspend()}close(reason="api"){this.open&&(this.open=!1,this.emit("lr-close",reason))}show(){this.open||(this.open=!0)}hide(reason="api"){this.close(reason)}activateOverlay(){this.overlay?.isActive()||(this.overlay=activateOverlay({host:this,panel:()=>this.shadowRoot?.querySelector('[part="panel"]')??null,onEscape:()=>this.close("escape"),onBackdrop:()=>this.close("backdrop"),lockScroll:!0,suspendWhenUnrendered:!0}))}deactivateOverlay(){this.overlay?.deactivate(),this.overlay=void 0}localizedDuration(ms){const duration=durationMessageValue(ms);return this.localize(duration.key,void 0,{value:getNumberFormat(this.effectiveLocale,{maximumFractionDigits:duration.key==="durationSeconds"?1:0}).format(duration.value)})}get safeDurationMs(){return this.durationMs!=null&&Number.isFinite(this.durationMs)?finiteRange(this.durationMs,0,0):null}render(){const durationMs=this.safeDurationMs,panelLabel=hostAriaLabel(this)===null&&this.accessibleLabel?this.accessibleLabel:null;return html`
24
24
  <div part="backdrop" @click=${this.onBackdropClick}></div>
25
25
  <div
26
26
  part="panel"
@@ -1,14 +1,6 @@
1
1
  import{css}from"lit";const styles=css`
2
2
  :host {
3
- /* Backdrop scrim color -- component-specific so a host can retheme it
4
- without a raw literal leaking into the public API (no shared
5
- --lr-*-overlay token exists in the design system to resolve through,
6
- same rationale as lr-dialog's --lr-dialog-overlay-color and
7
- lr-widget's --lr-widget-overlay-color). */
8
3
  --_lr-tool-result-dialog-overlay-color: var(--lr-color-overlay);
9
- /* Inset applied to the panel while [maximized] -- overridable the same
10
- way lr-widget's --lr-widget-fullscreen-inset is, e.g. to leave a
11
- persistent app rail visible. */
12
4
  --_lr-tool-result-dialog-maximized-inset: max(
13
5
  var(--lr-space-l),
14
6
  var(--lr-safe-area-top)
@@ -60,13 +52,9 @@ import{css}from"lit";const styles=css`
60
52
  min-inline-size: 0;
61
53
  max-block-size: 100%;
62
54
  box-sizing: border-box;
63
- /* Modal-panel surface, not the page surface -- in dark mode the two resolve to the same
64
- near-black and the dialog reads as a scrim with floating text instead of a panel. */
65
55
  background: var(--lr-color-surface-overlay);
66
56
  border: var(--lr-border-width-thin) solid var(--lr-color-border);
67
57
  border-radius: var(--lr-radius);
68
- /* Modal layer, top step: a centered, scrimmed dialog floating free on all four edges --
69
- the same role as lr-dialog, so the same elevation. */
70
58
  box-shadow: var(--lr-shadow-xl);
71
59
  overflow: hidden;
72
60
  transition: inline-size var(--lr-transition-base),
@@ -142,8 +130,6 @@ import{css}from"lit";const styles=css`
142
130
  min-inline-size: 0;
143
131
  overflow-wrap: anywhere;
144
132
  }
145
- /* Pending is the resting state before a tool call has done anything worth
146
- calling out; its foreground and background remain independently themeable. */
147
133
  :host([status="running"]) [part="status"] {
148
134
  color: var(
149
135
  --lr-tool-result-dialog-running-color,
@@ -174,9 +160,6 @@ import{css}from"lit";const styles=css`
174
160
  var(--_lr-tool-result-dialog-error-bg)
175
161
  );
176
162
  }
177
- /* 'denied' is a policy rejection, not a runtime failure -- the warning
178
- (not danger) tinted-background reads that distinction without relying on
179
- the status text alone. */
180
163
  :host([status="denied"]) [part="status"] {
181
164
  color: var(
182
165
  --lr-tool-result-dialog-denied-color,
@@ -224,9 +207,6 @@ import{css}from"lit";const styles=css`
224
207
  background: var(--lr-color-brand-quiet);
225
208
  color: var(--lr-color-brand);
226
209
  }
227
- /* Pressed is the hovered tint pushed a further --lr-color-mix-active toward
228
- --lr-color-mix-partner (which follows the text colour), so it reads as a distinctly deeper step
229
- than hover in both light and dark themes rather than repeating it. */
230
210
  [part="maximize-button"]:active,
231
211
  [part="close-button"]:active {
232
212
  background: color-mix(
@@ -1,10 +1,6 @@
1
1
  import{css}from"lit";const styles=css`
2
2
  :host {
3
3
  display: block;
4
- /* Chains through the shared monospace token (like lr-json-viewer's
5
- --lr-json-viewer-font and lr-tool-approval-dialog's mono font) so a
6
- consumer retheming --lr-theme-font-family-mono also repaints the plain-text
7
- fallback view, instead of it being stuck on the hardcoded system stack. */
8
4
  --_lr-tool-result-view-font: var(--lr-font-mono);
9
5
  }
10
6
  [part="base"] {
@@ -1,10 +1,5 @@
1
1
  import{css}from"lit";const styles=css`
2
2
  :host {
3
- /* Backdrop scrim color -- component-specific so a host can retheme it
4
- without a raw literal leaking into the public API (no shared
5
- --lr-*-overlay token exists in the design system to resolve through,
6
- same rationale as lr-dialog's --lr-dialog-overlay-color and
7
- lr-tool-result-dialog's --lr-tool-result-dialog-overlay-color). */
8
3
  --_lr-tool-select-dialog-overlay-color: var(--lr-color-overlay);
9
4
  display: none;
10
5
  position: fixed;
@@ -39,13 +34,9 @@ import{css}from"lit";const styles=css`
39
34
  min-inline-size: 0;
40
35
  max-inline-size: 100%;
41
36
  block-size: min(var(--lr-size-38rem), 100%);
42
- /* Modal-panel surface, not the page surface -- in dark mode the two resolve to the same
43
- near-black and the dialog reads as a scrim with floating text instead of a panel. */
44
37
  background: var(--lr-color-surface-overlay);
45
38
  border: var(--lr-border-width-thin) solid var(--lr-color-border);
46
39
  border-radius: var(--lr-radius);
47
- /* Modal layer, top step: a centered, scrimmed dialog floating free on all four edges --
48
- the same role as lr-dialog, so the same elevation. */
49
40
  box-shadow: var(--lr-shadow-xl);
50
41
  overflow: hidden;
51
42
  }
@@ -89,9 +80,6 @@ import{css}from"lit";const styles=css`
89
80
  outline: var(--lr-focus-ring-width) solid var(--lr-focus-ring-color);
90
81
  outline-offset: var(--lr-focus-ring-offset);
91
82
  }
92
- /* no-pressed-state: a search field is a caret target, not a push target -- pointer-down places an
93
- insertion point and hands the affordance to :focus-visible, so a pressed tint would flash for
94
- one frame and then be contradicted by the focus ring. */
95
83
  :where([part="search-input"]):hover {
96
84
  border-color: var(--lr-color-brand);
97
85
  }
@@ -113,12 +101,6 @@ import{css}from"lit";const styles=css`
113
101
  }
114
102
  [part="defaults-hint"] {
115
103
  margin: 0;
116
- /* Lines the hint up under the switch's label text, not its track --
117
- lr-switch's own [part="base"] uses a fixed 2.25rem track
118
- inline-size plus a --lr-space-s gap before its label (both defined
119
- in switch.styles.ts, not exposed as tokens), so this indent is
120
- coupled to that fixed geometry rather than derived from an unrelated
121
- component's token. */
122
104
  padding-inline-start: calc(var(--lr-size-2-25rem) + var(--lr-space-s));
123
105
  font-size: var(--lr-font-size-xs);
124
106
  color: var(--lr-color-text-quiet);
@@ -136,7 +118,6 @@ import{css}from"lit";const styles=css`
136
118
  outline: var(--lr-focus-ring-width) solid var(--lr-focus-ring-color);
137
119
  outline-offset: calc(-1 * var(--lr-focus-ring-width));
138
120
  }
139
- /* no-pressed-state: the focusable body is a scroll viewport, not an activation target. */
140
121
  :where([part="body"]):hover {
141
122
  outline: var(--lr-border-width-thin) solid var(--lr-color-border);
142
123
  outline-offset: calc(-1 * var(--lr-border-width-thin));
@@ -284,8 +265,6 @@ import{css}from"lit";const styles=css`
284
265
  color: var(--lr-color-text-quiet);
285
266
  }
286
267
  [part="tool-disabled-reason"] {
287
- /* Slotted into lr-checkbox's owned hint surface alongside tool-description, so the stable
288
- checkbox-hint bridge describes the control without lengthening its accessible name. */
289
268
  display: block;
290
269
  min-inline-size: 0;
291
270
  max-inline-size: 100%;
@@ -1,8 +1,8 @@
1
- var __decorate=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r};import{html,svg,nothing}from"lit";import{property,state,query}from"lit/decorators.js";import{LyraElement}from"../../../internal/lyra-element.js";import{getNumberFormat}from"../../../internal/intl-cache.js";import{isRtl}from"../../../internal/rtl.js";import{prefersReducedMotion}from"../../../internal/motion.js";import{finiteCount}from"../../../internal/numbers.js";import{chevronIcon}from"../../../internal/icons.js";import{acquireAnnouncementSink}from"../../../internal/announcer.js";import{styles}from"./trace-tree.styles.js";import{MAX_RENDERED_LYRA_SPANS,normalizeLyraSpans}from"./span.js";import{LYRA_DEFAULT_accessibleLabelSeparator,LYRA_DEFAULT_collapse,LYRA_DEFAULT_cost,LYRA_DEFAULT_details,LYRA_DEFAULT_duration,LYRA_DEFAULT_durationMilliseconds,LYRA_DEFAULT_durationSeconds,LYRA_DEFAULT_map,LYRA_DEFAULT_navigation,LYRA_DEFAULT_noData,LYRA_DEFAULT_open,LYRA_DEFAULT_progress,LYRA_DEFAULT_search,LYRA_DEFAULT_select,LYRA_DEFAULT_spanKindAgent,LYRA_DEFAULT_spanKindEmbedding,LYRA_DEFAULT_spanKindLlm,LYRA_DEFAULT_spanKindOther,LYRA_DEFAULT_spanKindRetriever,LYRA_DEFAULT_spanKindTool,LYRA_DEFAULT_spanProjectionLimit,LYRA_DEFAULT_statusDenied,LYRA_DEFAULT_statusError,LYRA_DEFAULT_statusPending,LYRA_DEFAULT_statusRunning,LYRA_DEFAULT_statusSuccess,LYRA_DEFAULT_tokensIn,LYRA_DEFAULT_tokensOut,LYRA_DEFAULT_traceTree,LYRA_DEFAULT_traceTreeMetricLabel,LYRA_DEFAULT_traceTreeSpanStatus}from"../../../internal/default-strings.generated.js";const ICON_VIEW_BOX="0 0 24 24",ICON_STROKE_WIDTH="1.75";function glyph(paths){return svg`
1
+ var __decorate=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r};import{html,svg,nothing}from"lit";import{property,state,query}from"lit/decorators.js";import{LyraElement}from"../../../internal/lyra-element.js";import{getNumberFormat}from"../../../internal/intl-cache.js";import{isRtl}from"../../../internal/rtl.js";import{prefersReducedMotion}from"../../../internal/motion.js";import{finiteCount}from"../../../internal/numbers.js";import{chevronIcon}from"../../../internal/icons.js";import{acquireAnnouncementSink}from"../../../internal/announcer.js";import{styles}from"./trace-tree.styles.js";import{MAX_RENDERED_LYRA_SPANS,normalizeLyraSpans}from"./span.js";import{LYRA_DEFAULT_accessibleLabelSeparator,LYRA_DEFAULT_collapse,LYRA_DEFAULT_cost,LYRA_DEFAULT_details,LYRA_DEFAULT_duration,LYRA_DEFAULT_durationMilliseconds,LYRA_DEFAULT_durationSeconds,LYRA_DEFAULT_map,LYRA_DEFAULT_navigation,LYRA_DEFAULT_noData,LYRA_DEFAULT_open,LYRA_DEFAULT_popover,LYRA_DEFAULT_progress,LYRA_DEFAULT_search,LYRA_DEFAULT_select,LYRA_DEFAULT_spanKindAgent,LYRA_DEFAULT_spanKindEmbedding,LYRA_DEFAULT_spanKindLlm,LYRA_DEFAULT_spanKindOther,LYRA_DEFAULT_spanKindRetriever,LYRA_DEFAULT_spanKindTool,LYRA_DEFAULT_spanProjectionLimit,LYRA_DEFAULT_statusDenied,LYRA_DEFAULT_statusError,LYRA_DEFAULT_statusPending,LYRA_DEFAULT_statusRunning,LYRA_DEFAULT_statusSuccess,LYRA_DEFAULT_tokensIn,LYRA_DEFAULT_tokensOut,LYRA_DEFAULT_traceTree,LYRA_DEFAULT_traceTreeMetricLabel,LYRA_DEFAULT_traceTreeSpanStatus}from"../../../internal/default-strings.generated.js";const ICON_VIEW_BOX="0 0 24 24",ICON_STROKE_WIDTH="1.75";function glyph(paths){return svg`
2
2
  <svg width="1em" height="1em" viewBox=${ICON_VIEW_BOX} fill="none" stroke="currentColor"
3
3
  stroke-width=${ICON_STROKE_WIDTH} stroke-linecap="round" stroke-linejoin="round"
4
4
  aria-hidden="true" focusable="false">${paths}</svg>
5
- `}function agentIcon(){return glyph(svg`<rect x="5" y="8" width="14" height="10" rx="2"></rect><circle cx="9.5" cy="13" r="1"></circle><circle cx="14.5" cy="13" r="1"></circle><path d="M12 8V5"></path><circle cx="12" cy="4" r="1"></circle>`)}function llmIcon(){return glyph(svg`<path d="M12 3l1.6 4.4L18 9l-4.4 1.6L12 15l-1.6-4.4L6 9l4.4-1.6z"></path><path d="M18.5 15l.7 1.9 1.9.7-1.9.7-.7 1.9-.7-1.9-1.9-.7 1.9-.7z"></path>`)}function toolIcon(){return glyph(svg`<path d="M14.7 6.3a4 4 0 0 1-5.4 5.4L4 17l3 3 5.3-5.3a4 4 0 0 1 5.4-5.4l-2.3 2.3-2-2z"></path>`)}function retrieverIcon(){return glyph(svg`<circle cx="10.5" cy="10.5" r="6.5"></circle><line x1="15.5" y1="15.5" x2="20" y2="20"></line>`)}function embeddingIcon(){return glyph(svg`<circle cx="6" cy="6" r="1.6"></circle><circle cx="18" cy="6" r="1.6"></circle><circle cx="6" cy="18" r="1.6"></circle><circle cx="18" cy="18" r="1.6"></circle><circle cx="12" cy="12" r="1.6"></circle><line x1="7.3" y1="7.3" x2="10.8" y2="10.8"></line><line x1="16.7" y1="7.3" x2="13.2" y2="10.8"></line><line x1="7.3" y1="16.7" x2="10.8" y2="13.2"></line><line x1="16.7" y1="16.7" x2="13.2" y2="13.2"></line>`)}function otherIcon(){return glyph(svg`<circle cx="12" cy="12" r="8"></circle>`)}const KIND_ICON={agent:agentIcon,llm:llmIcon,tool:toolIcon,retriever:retrieverIcon,embedding:embeddingIcon,other:otherIcon},KIND_LABEL_KEY={agent:"spanKindAgent",llm:"spanKindLlm",tool:"spanKindTool",retriever:"spanKindRetriever",embedding:"spanKindEmbedding",other:"spanKindOther"},STATUS_LABEL_KEY={pending:"statusPending",running:"statusRunning",success:"statusSuccess",error:"statusError",denied:"statusDenied"};class LyraTraceTree extends LyraElement{constructor(){super(...arguments),this.spans=[],this.activeSpanId=null,this.showTokens=!1,this.showCost=!1,this.hideBars=!1,this.collapsedIds=new Set,this.focusedId=null,this.previousStatuses=new Map,this.pendingAnnouncements=[],this.limitAnnouncementInitialized=!1,this.previouslyTruncated=!1,this.renderedProjectionTruncated=!1,this.onKeyDown=e=>{const rows=this.buildRows();if(rows.length===0)return;const currentIndex=rows.findIndex(r=>r.span.id===this.focusedId),current=currentIndex>=0?rows[currentIndex]:rows[0];if(!current)return;const rtl=isRtl(this),expandKey=rtl?"ArrowLeft":"ArrowRight",collapseKey=rtl?"ArrowRight":"ArrowLeft";switch(e.key){case"ArrowDown":e.preventDefault(),this.focusRow(rows[Math.min(rows.length-1,currentIndex+1)]);break;case"ArrowUp":e.preventDefault(),this.focusRow(rows[Math.max(0,currentIndex-1)]);break;case"Home":e.preventDefault(),this.focusRow(rows[0]);break;case"End":e.preventDefault(),this.focusRow(rows[rows.length-1]);break;case expandKey:if(e.preventDefault(),!current.hasChildren)break;if(this.collapsedIds.has(current.span.id))this.toggleSpan(current.span.id);else{const child=rows[currentIndex+1];child&&child.depth>current.depth&&this.focusRow(child)}break;case collapseKey:if(e.preventDefault(),current.hasChildren&&!this.collapsedIds.has(current.span.id))this.toggleSpan(current.span.id);else for(let i=currentIndex-1;i>=0;i--){const row=rows[i];if(row&&row.depth<current.depth){this.focusRow(row);break}}break;case"Enter":case" ":e.preventDefault(),this.selectRow(current.span.id);break;default:return}}}static{this.defaultStrings={...super.defaultStrings,accessibleLabelSeparator:LYRA_DEFAULT_accessibleLabelSeparator,collapse:LYRA_DEFAULT_collapse,cost:LYRA_DEFAULT_cost,details:LYRA_DEFAULT_details,duration:LYRA_DEFAULT_duration,durationMilliseconds:LYRA_DEFAULT_durationMilliseconds,durationSeconds:LYRA_DEFAULT_durationSeconds,map:LYRA_DEFAULT_map,navigation:LYRA_DEFAULT_navigation,noData:LYRA_DEFAULT_noData,open:LYRA_DEFAULT_open,progress:LYRA_DEFAULT_progress,search:LYRA_DEFAULT_search,select:LYRA_DEFAULT_select,spanKindAgent:LYRA_DEFAULT_spanKindAgent,spanKindEmbedding:LYRA_DEFAULT_spanKindEmbedding,spanKindLlm:LYRA_DEFAULT_spanKindLlm,spanKindOther:LYRA_DEFAULT_spanKindOther,spanKindRetriever:LYRA_DEFAULT_spanKindRetriever,spanKindTool:LYRA_DEFAULT_spanKindTool,spanProjectionLimit:LYRA_DEFAULT_spanProjectionLimit,statusDenied:LYRA_DEFAULT_statusDenied,statusError:LYRA_DEFAULT_statusError,statusPending:LYRA_DEFAULT_statusPending,statusRunning:LYRA_DEFAULT_statusRunning,statusSuccess:LYRA_DEFAULT_statusSuccess,tokensIn:LYRA_DEFAULT_tokensIn,tokensOut:LYRA_DEFAULT_tokensOut,traceTree:LYRA_DEFAULT_traceTree,traceTreeMetricLabel:LYRA_DEFAULT_traceTreeMetricLabel,traceTreeSpanStatus:LYRA_DEFAULT_traceTreeSpanStatus}}static{this.ownedCollectionProperties=Object.freeze(["spans"])}static{this.styles=[LyraElement.styles,styles]}connectedCallback(){super.connectedCallback(),this.syncLimitAnnouncementSink(),this.limitAnnouncementInitialized=this.hasUpdated,this.previouslyTruncated=this.renderedProjectionTruncated}disconnectedCallback(){this.limitAnnouncementSink?.release(),this.limitAnnouncementSink=void 0,super.disconnectedCallback()}adoptedCallback(){super.adoptedCallback(),this.limitAnnouncementSink?.release(),this.limitAnnouncementSink=void 0,this.syncLimitAnnouncementSink()}syncLimitAnnouncementSink(){!this.isConnected||this.limitAnnouncementSink?.element.ownerDocument===this.ownerDocument||(this.limitAnnouncementSink?.release(),this.limitAnnouncementSink=acquireAnnouncementSink("polite",{document:this.ownerDocument,source:this}))}buildHierarchy(){const{spans,byId,truncated}=normalizeLyraSpans(this.spans,this.activeSpanId),childrenOf=new Map,parentOf=new Map,roots=[],hasCyclicParentChain=span=>{const visited=new Set([span.id]);let parentId=span.parentId;for(;parentId!=null;){if(visited.has(parentId))return!0;visited.add(parentId),parentId=byId.get(parentId)?.parentId}return!1};for(const span of spans){const parent=span.parentId!=null&&!hasCyclicParentChain(span)?byId.get(span.parentId):void 0;if(parent&&parent.id!==span.id){const list=childrenOf.get(parent.id)??[];list.push(span),childrenOf.set(parent.id,list),parentOf.set(span.id,parent.id)}else roots.push(span)}const byStart=(a,b)=>a.startMs-b.startMs;roots.sort(byStart);for(const list of childrenOf.values())list.sort(byStart);return{spans,byId,childrenOf,parentOf,roots,truncated}}buildRows(hierarchy=this.buildHierarchy()){const rows=[],stack=[...hierarchy.roots].reverse().map((span,reverseIndex)=>({span,depth:0,posInSet:hierarchy.roots.length-reverseIndex,setSize:hierarchy.roots.length})),visited=new Set;for(;stack.length>0&&rows.length<MAX_RENDERED_LYRA_SPANS;){const current=stack.pop();if(!current||visited.has(current.span.id))continue;visited.add(current.span.id);const children=hierarchy.childrenOf.get(current.span.id)??[];if(rows.push({...current,hasChildren:children.length>0}),!(children.length===0||this.collapsedIds.has(current.span.id)))for(let index=children.length-1;index>=0;index--){const child=children[index];child&&stack.push({span:child,depth:current.depth+1,posInSet:index+1,setSize:children.length})}}return rows}traceExtent(spans=this.buildHierarchy().spans){let max=0;for(const s of spans)max=Math.max(max,s.endMs??s.startMs,s.startMs);return max||1}formatDuration(ms){if(ms==null)return"";const number=getNumberFormat(this.effectiveLocale,{maximumFractionDigits:ms<1e3?0:1});return ms<1e3?this.localize("durationMilliseconds",void 0,{value:number.format(ms)}):this.localize("durationSeconds",void 0,{value:number.format(ms/1e3)})}formatNumber(n){return getNumberFormat(this.effectiveLocale).format(finiteCount(n))}validTokenMetric(value){return typeof value=="number"&&Number.isFinite(value)&&value>=0}toggleSpan(id){const collapsed=this.collapsedIds.has(id);collapsed||this.renderedRowById(id)?.focus();const next=new Set(this.collapsedIds);collapsed?next.delete(id):next.add(id),this.collapsedIds=next,this.focusedId=id,this.emit("lr-span-toggle",{spanId:id,expanded:collapsed})}async expandAll(){this.collapsedIds=new Set,await this.updateComplete}collapseAll(){const next=new Set,hierarchy=this.buildHierarchy(),{byId,parentOf}=hierarchy,hasChild=new Set(hierarchy.childrenOf.keys());for(const id of hasChild)next.add(id);if(this.collapsedIds=next,this.focusedId!=null){let current=byId.get(this.focusedId);for(;current&&parentOf.has(current.id);)current=byId.get(parentOf.get(current.id));this.focusedId=current?.id??null,current&&this.renderedRowById(current.id)?.focus()}}focusRow(row){row&&(this.focusedId=row.span.id,this.updateComplete.then(()=>{this.renderedRowById(row.span.id)?.focus()}))}selectRow(id){this.focusedId=id,this.emit("lr-span-select",{spanId:id})}willUpdate(changed){if(super.willUpdate(changed),changed.has("spans")||changed.has("activeSpanId")||changed.has("collapsedIds")){const hierarchy=this.buildHierarchy(),ids=new Set(hierarchy.byId.keys());let pruned=null;for(const id of this.collapsedIds)ids.has(id)||(pruned??=new Set(this.collapsedIds),pruned.delete(id));if(pruned&&(this.collapsedIds=pruned),(changed.has("spans")||changed.has("activeSpanId"))&&this.activeSpanId&&hierarchy.byId.has(this.activeSpanId)){const revealed=new Set(this.collapsedIds);let currentId=this.activeSpanId,changedCollapse=!1;for(;hierarchy.parentOf.has(currentId);)currentId=hierarchy.parentOf.get(currentId),revealed.delete(currentId)&&(changedCollapse=!0);changedCollapse&&(this.collapsedIds=revealed)}const rows=this.buildRows(hierarchy),visibleIds=new Set(rows.map(row=>row.span.id));if((this.focusedId==null||!ids.has(this.focusedId))&&(this.focusedId=this.activeSpanId&&visibleIds.has(this.activeSpanId)?this.activeSpanId:rows[0]?.span.id??null),changed.has("spans")){for(const row of rows){const{span}=row,prev=this.previousStatuses.get(span.id);prev!==void 0&&prev!==span.status&&this.pendingAnnouncements.push(this.localize("traceTreeSpanStatus",void 0,{name:span.name,status:this.localize(STATUS_LABEL_KEY[span.status])}))}this.previousStatuses=new Map(hierarchy.spans.map(span=>[span.id,span.status]))}const visibleAncestor=id=>{let current=id?hierarchy.byId.get(id):void 0;for(;current;){if(visibleIds.has(current.id))return current.id;current=hierarchy.parentOf.has(current.id)?hierarchy.byId.get(hierarchy.parentOf.get(current.id)):void 0}return null};this.focusedId=visibleAncestor(this.activeSpanId)??visibleAncestor(this.focusedId)??rows[0]?.span.id??null}}renderedRowById(id){const ownerCss=this.ownerDocument.defaultView?.CSS;return typeof ownerCss?.escape=="function"?this.renderRoot.querySelector(`[data-id="${ownerCss.escape(id)}"]`):Array.from(this.renderRoot.querySelectorAll("[data-id]")).find(element=>element.dataset.id===id)??null}updated(changed){if(super.updated(changed),(changed.has("activeSpanId")||changed.has("spans")||changed.has("collapsedIds"))&&this.activeSpanId){const row=this.renderedRowById(this.activeSpanId);if(row){const ownerWindow=row.ownerDocument.defaultView,reducedMotion=!ownerWindow||prefersReducedMotion(ownerWindow);row.scrollIntoView({block:"nearest",behavior:reducedMotion?"auto":"smooth"})}}if(this.pendingAnnouncements.length>0){const texts=this.pendingAnnouncements;this.pendingAnnouncements=[];for(const text of texts)this.liveRegion?.announce(text)}this.limitAnnouncementInitialized&&this.renderedProjectionTruncated&&!this.previouslyTruncated&&this.limitAnnouncementSink?.announce(this.localize("spanProjectionLimit",void 0,{count:MAX_RENDERED_LYRA_SPANS})),this.limitAnnouncementInitialized=!0,this.previouslyTruncated=this.renderedProjectionTruncated}renderHeader(){return html`
5
+ `}function agentIcon(){return glyph(svg`<rect x="5" y="8" width="14" height="10" rx="2"></rect><circle cx="9.5" cy="13" r="1"></circle><circle cx="14.5" cy="13" r="1"></circle><path d="M12 8V5"></path><circle cx="12" cy="4" r="1"></circle>`)}function llmIcon(){return glyph(svg`<path d="M12 3l1.6 4.4L18 9l-4.4 1.6L12 15l-1.6-4.4L6 9l4.4-1.6z"></path><path d="M18.5 15l.7 1.9 1.9.7-1.9.7-.7 1.9-.7-1.9-1.9-.7 1.9-.7z"></path>`)}function toolIcon(){return glyph(svg`<path d="M14.7 6.3a4 4 0 0 1-5.4 5.4L4 17l3 3 5.3-5.3a4 4 0 0 1 5.4-5.4l-2.3 2.3-2-2z"></path>`)}function retrieverIcon(){return glyph(svg`<circle cx="10.5" cy="10.5" r="6.5"></circle><line x1="15.5" y1="15.5" x2="20" y2="20"></line>`)}function embeddingIcon(){return glyph(svg`<circle cx="6" cy="6" r="1.6"></circle><circle cx="18" cy="6" r="1.6"></circle><circle cx="6" cy="18" r="1.6"></circle><circle cx="18" cy="18" r="1.6"></circle><circle cx="12" cy="12" r="1.6"></circle><line x1="7.3" y1="7.3" x2="10.8" y2="10.8"></line><line x1="16.7" y1="7.3" x2="13.2" y2="10.8"></line><line x1="7.3" y1="16.7" x2="10.8" y2="13.2"></line><line x1="16.7" y1="16.7" x2="13.2" y2="13.2"></line>`)}function otherIcon(){return glyph(svg`<circle cx="12" cy="12" r="8"></circle>`)}const KIND_ICON={agent:agentIcon,llm:llmIcon,tool:toolIcon,retriever:retrieverIcon,embedding:embeddingIcon,other:otherIcon},KIND_LABEL_KEY={agent:"spanKindAgent",llm:"spanKindLlm",tool:"spanKindTool",retriever:"spanKindRetriever",embedding:"spanKindEmbedding",other:"spanKindOther"},STATUS_LABEL_KEY={pending:"statusPending",running:"statusRunning",success:"statusSuccess",error:"statusError",denied:"statusDenied"};class LyraTraceTree extends LyraElement{constructor(){super(...arguments),this.spans=[],this.activeSpanId=null,this.showTokens=!1,this.showCost=!1,this.hideBars=!1,this.collapsedIds=new Set,this.focusedId=null,this.previousStatuses=new Map,this.pendingAnnouncements=[],this.limitAnnouncementInitialized=!1,this.previouslyTruncated=!1,this.renderedProjectionTruncated=!1,this.onKeyDown=e=>{const rows=this.buildRows();if(rows.length===0)return;const currentIndex=rows.findIndex(r=>r.span.id===this.focusedId),current=currentIndex>=0?rows[currentIndex]:rows[0];if(!current)return;const rtl=isRtl(this),expandKey=rtl?"ArrowLeft":"ArrowRight",collapseKey=rtl?"ArrowRight":"ArrowLeft";switch(e.key){case"ArrowDown":e.preventDefault(),this.focusRow(rows[Math.min(rows.length-1,currentIndex+1)]);break;case"ArrowUp":e.preventDefault(),this.focusRow(rows[Math.max(0,currentIndex-1)]);break;case"Home":e.preventDefault(),this.focusRow(rows[0]);break;case"End":e.preventDefault(),this.focusRow(rows[rows.length-1]);break;case expandKey:if(e.preventDefault(),!current.hasChildren)break;if(this.collapsedIds.has(current.span.id))this.toggleSpan(current.span.id);else{const child=rows[currentIndex+1];child&&child.depth>current.depth&&this.focusRow(child)}break;case collapseKey:if(e.preventDefault(),current.hasChildren&&!this.collapsedIds.has(current.span.id))this.toggleSpan(current.span.id);else for(let i=currentIndex-1;i>=0;i--){const row=rows[i];if(row&&row.depth<current.depth){this.focusRow(row);break}}break;case"Enter":case" ":e.preventDefault(),this.selectRow(current.span.id);break;default:return}}}static{this.defaultStrings={...super.defaultStrings,accessibleLabelSeparator:LYRA_DEFAULT_accessibleLabelSeparator,collapse:LYRA_DEFAULT_collapse,cost:LYRA_DEFAULT_cost,details:LYRA_DEFAULT_details,duration:LYRA_DEFAULT_duration,durationMilliseconds:LYRA_DEFAULT_durationMilliseconds,durationSeconds:LYRA_DEFAULT_durationSeconds,map:LYRA_DEFAULT_map,navigation:LYRA_DEFAULT_navigation,noData:LYRA_DEFAULT_noData,open:LYRA_DEFAULT_open,popover:LYRA_DEFAULT_popover,progress:LYRA_DEFAULT_progress,search:LYRA_DEFAULT_search,select:LYRA_DEFAULT_select,spanKindAgent:LYRA_DEFAULT_spanKindAgent,spanKindEmbedding:LYRA_DEFAULT_spanKindEmbedding,spanKindLlm:LYRA_DEFAULT_spanKindLlm,spanKindOther:LYRA_DEFAULT_spanKindOther,spanKindRetriever:LYRA_DEFAULT_spanKindRetriever,spanKindTool:LYRA_DEFAULT_spanKindTool,spanProjectionLimit:LYRA_DEFAULT_spanProjectionLimit,statusDenied:LYRA_DEFAULT_statusDenied,statusError:LYRA_DEFAULT_statusError,statusPending:LYRA_DEFAULT_statusPending,statusRunning:LYRA_DEFAULT_statusRunning,statusSuccess:LYRA_DEFAULT_statusSuccess,tokensIn:LYRA_DEFAULT_tokensIn,tokensOut:LYRA_DEFAULT_tokensOut,traceTree:LYRA_DEFAULT_traceTree,traceTreeMetricLabel:LYRA_DEFAULT_traceTreeMetricLabel,traceTreeSpanStatus:LYRA_DEFAULT_traceTreeSpanStatus}}static{this.ownedCollectionProperties=Object.freeze(["spans"])}static{this.styles=[LyraElement.styles,styles]}connectedCallback(){super.connectedCallback(),this.syncLimitAnnouncementSink(),this.limitAnnouncementInitialized=this.hasUpdated,this.previouslyTruncated=this.renderedProjectionTruncated}disconnectedCallback(){this.limitAnnouncementSink?.release(),this.limitAnnouncementSink=void 0,super.disconnectedCallback()}adoptedCallback(){super.adoptedCallback(),this.limitAnnouncementSink?.release(),this.limitAnnouncementSink=void 0,this.syncLimitAnnouncementSink()}syncLimitAnnouncementSink(){!this.isConnected||this.limitAnnouncementSink?.element.ownerDocument===this.ownerDocument||(this.limitAnnouncementSink?.release(),this.limitAnnouncementSink=acquireAnnouncementSink("polite",{document:this.ownerDocument,source:this}))}buildHierarchy(){const{spans,byId,truncated}=normalizeLyraSpans(this.spans,this.activeSpanId),childrenOf=new Map,parentOf=new Map,roots=[],hasCyclicParentChain=span=>{const visited=new Set([span.id]);let parentId=span.parentId;for(;parentId!=null;){if(visited.has(parentId))return!0;visited.add(parentId),parentId=byId.get(parentId)?.parentId}return!1};for(const span of spans){const parent=span.parentId!=null&&!hasCyclicParentChain(span)?byId.get(span.parentId):void 0;if(parent&&parent.id!==span.id){const list=childrenOf.get(parent.id)??[];list.push(span),childrenOf.set(parent.id,list),parentOf.set(span.id,parent.id)}else roots.push(span)}const byStart=(a,b)=>a.startMs-b.startMs;roots.sort(byStart);for(const list of childrenOf.values())list.sort(byStart);return{spans,byId,childrenOf,parentOf,roots,truncated}}buildRows(hierarchy=this.buildHierarchy()){const rows=[],stack=[...hierarchy.roots].reverse().map((span,reverseIndex)=>({span,depth:0,posInSet:hierarchy.roots.length-reverseIndex,setSize:hierarchy.roots.length})),visited=new Set;for(;stack.length>0&&rows.length<MAX_RENDERED_LYRA_SPANS;){const current=stack.pop();if(!current||visited.has(current.span.id))continue;visited.add(current.span.id);const children=hierarchy.childrenOf.get(current.span.id)??[];if(rows.push({...current,hasChildren:children.length>0}),!(children.length===0||this.collapsedIds.has(current.span.id)))for(let index=children.length-1;index>=0;index--){const child=children[index];child&&stack.push({span:child,depth:current.depth+1,posInSet:index+1,setSize:children.length})}}return rows}traceExtent(spans=this.buildHierarchy().spans){let max=0;for(const s of spans)max=Math.max(max,s.endMs??s.startMs,s.startMs);return max||1}formatDuration(ms){if(ms==null)return"";const number=getNumberFormat(this.effectiveLocale,{maximumFractionDigits:ms<1e3?0:1});return ms<1e3?this.localize("durationMilliseconds",void 0,{value:number.format(ms)}):this.localize("durationSeconds",void 0,{value:number.format(ms/1e3)})}formatNumber(n){return getNumberFormat(this.effectiveLocale).format(finiteCount(n))}validTokenMetric(value){return typeof value=="number"&&Number.isFinite(value)&&value>=0}toggleSpan(id){const collapsed=this.collapsedIds.has(id);collapsed||this.renderedRowById(id)?.focus();const next=new Set(this.collapsedIds);collapsed?next.delete(id):next.add(id),this.collapsedIds=next,this.focusedId=id,this.emit("lr-span-toggle",{spanId:id,expanded:collapsed})}async expandAll(){this.collapsedIds=new Set,await this.updateComplete}collapseAll(){const next=new Set,hierarchy=this.buildHierarchy(),{byId,parentOf}=hierarchy,hasChild=new Set(hierarchy.childrenOf.keys());for(const id of hasChild)next.add(id);if(this.collapsedIds=next,this.focusedId!=null){let current=byId.get(this.focusedId);for(;current&&parentOf.has(current.id);)current=byId.get(parentOf.get(current.id));this.focusedId=current?.id??null,current&&this.renderedRowById(current.id)?.focus()}}focusRow(row){row&&(this.focusedId=row.span.id,this.updateComplete.then(()=>{this.renderedRowById(row.span.id)?.focus()}))}selectRow(id){this.focusedId=id,this.emit("lr-span-select",{spanId:id})}willUpdate(changed){if(super.willUpdate(changed),changed.has("spans")||changed.has("activeSpanId")||changed.has("collapsedIds")){const hierarchy=this.buildHierarchy(),ids=new Set(hierarchy.byId.keys());let pruned=null;for(const id of this.collapsedIds)ids.has(id)||(pruned??=new Set(this.collapsedIds),pruned.delete(id));if(pruned&&(this.collapsedIds=pruned),(changed.has("spans")||changed.has("activeSpanId"))&&this.activeSpanId&&hierarchy.byId.has(this.activeSpanId)){const revealed=new Set(this.collapsedIds);let currentId=this.activeSpanId,changedCollapse=!1;for(;hierarchy.parentOf.has(currentId);)currentId=hierarchy.parentOf.get(currentId),revealed.delete(currentId)&&(changedCollapse=!0);changedCollapse&&(this.collapsedIds=revealed)}const rows=this.buildRows(hierarchy),visibleIds=new Set(rows.map(row=>row.span.id));if((this.focusedId==null||!ids.has(this.focusedId))&&(this.focusedId=this.activeSpanId&&visibleIds.has(this.activeSpanId)?this.activeSpanId:rows[0]?.span.id??null),changed.has("spans")){for(const row of rows){const{span}=row,prev=this.previousStatuses.get(span.id);prev!==void 0&&prev!==span.status&&this.pendingAnnouncements.push(this.localize("traceTreeSpanStatus",void 0,{name:span.name,status:this.localize(STATUS_LABEL_KEY[span.status])}))}this.previousStatuses=new Map(hierarchy.spans.map(span=>[span.id,span.status]))}const visibleAncestor=id=>{let current=id?hierarchy.byId.get(id):void 0;for(;current;){if(visibleIds.has(current.id))return current.id;current=hierarchy.parentOf.has(current.id)?hierarchy.byId.get(hierarchy.parentOf.get(current.id)):void 0}return null};this.focusedId=visibleAncestor(this.activeSpanId)??visibleAncestor(this.focusedId)??rows[0]?.span.id??null}}renderedRowById(id){const ownerCss=this.ownerDocument.defaultView?.CSS;return typeof ownerCss?.escape=="function"?this.renderRoot.querySelector(`[data-id="${ownerCss.escape(id)}"]`):Array.from(this.renderRoot.querySelectorAll("[data-id]")).find(element=>element.dataset.id===id)??null}updated(changed){if(super.updated(changed),(changed.has("activeSpanId")||changed.has("spans")||changed.has("collapsedIds"))&&this.activeSpanId){const row=this.renderedRowById(this.activeSpanId);if(row){const ownerWindow=row.ownerDocument.defaultView,reducedMotion=!ownerWindow||prefersReducedMotion(ownerWindow);row.scrollIntoView({block:"nearest",behavior:reducedMotion?"auto":"smooth"})}}if(this.pendingAnnouncements.length>0){const texts=this.pendingAnnouncements;this.pendingAnnouncements=[];for(const text of texts)this.liveRegion?.announce(text)}this.limitAnnouncementInitialized&&this.renderedProjectionTruncated&&!this.previouslyTruncated&&this.limitAnnouncementSink?.announce(this.localize("spanProjectionLimit",void 0,{count:MAX_RENDERED_LYRA_SPANS})),this.limitAnnouncementInitialized=!0,this.previouslyTruncated=this.renderedProjectionTruncated}renderHeader(){return html`
6
6
  <div part="header">
7
7
  <span class="col-toggle" aria-hidden="true"></span>
8
8
  <span class="col-icon" aria-hidden="true"></span>
@@ -71,39 +71,23 @@ import{css}from"lit";const styles=css`
71
71
  [part='row'][data-active] {
72
72
  background: var(--lr-trace-tree-row-active-bg, var(--lr-color-brand-quiet));
73
73
  }
74
- /* The row itself is the click target (it selects a span; the nested [part='toggle'] only expands
75
- it), so it earns a pressed state. Mixing the hovered tint a further --lr-color-mix-active toward
76
- --lr-color-mix-partner keeps it a distinctly deeper step than hover in both themes. It must stay
77
- after the [data-active] rule: the two selectors are both (0,2,0), so source order alone decides
78
- whether pressing the already-selected row shows any feedback at all. */
74
+ [part='row']:where([data-active]):hover {
75
+ background: color-mix(
76
+ in oklab,
77
+ var(--lr-trace-tree-row-active-bg, var(--lr-color-brand-quiet)),
78
+ var(--lr-color-mix-partner) var(--lr-color-mix-hover)
79
+ );
80
+ }
79
81
  [part='row']:active {
80
82
  background: color-mix(in oklab, var(--lr-color-surface-raised), var(--lr-color-mix-partner) var(--lr-color-mix-active));
81
83
  }
82
84
 
83
- /* text-quiet's contrast ratio against brand-quiet lands at ~4.25:1 -- just under the WCAG AA
84
- 4.5:1 floor for normal-size text -- even though it comfortably passes against the plain
85
- (non-active) row background used the rest of the time. Darkening the active tint instead would
86
- make it worse, since every failing foreground here is dark text; the fix is to raise the
87
- foreground to full strength once the row is active, as lr-conversation-item does for the same
88
- bug. --lr-color-text flips with the color scheme, so this raises contrast in both.
89
- [data-status='pending'] is included because its color *is* --lr-color-text-quiet: same failure,
90
- same fix. The other statuses keep their semantic hue -- see the mix below. */
91
85
  [part='row'][data-active]
92
86
  :is([part='detail'], [part='duration'], [part='tokens-in'], [part='tokens-out'], [part='cost']),
93
87
  [part='row'][data-active] [part='status-text'][data-status='pending'] {
94
88
  color: var(--lr-trace-tree-row-active-color, var(--lr-color-text));
95
89
  }
96
90
 
97
- /* The semantic status labels keep their hue on the active row -- an error row that stops being
98
- red once selected is an information-design regression, and the hue is the fastest scan signal
99
- in a trace list -- but get pulled 25% toward the text color so they clear the same AA floor
100
- (success 4.46 -> 6.18, denied/warning 4.28 -> 5.96 against the default tint). Applied to every
101
- tone rather than only the two that fail at the shipped defaults: a per-status carve-out is
102
- theme-fragile, since a consumer retheming one --lr-color-* moves that ratio and would silently
103
- re-break. The mix is theme-symmetric by construction -- --lr-color-text flips with the scheme,
104
- so the same declaration darkens in light mode and lightens in dark mode.
105
- Scoped to [part='status-text'] rather than redefining the tokens inside the active row, which
106
- would silently re-point a consumer's own token override and drag [part='bar'] along with it. */
107
91
  [part='row'][data-active] [part='status-text'][data-status='success'] {
108
92
  color: color-mix(
109
93
  in srgb,
@@ -134,9 +118,6 @@ import{css}from"lit";const styles=css`
134
118
  }
135
119
 
136
120
  [part='toggle'] {
137
- /* Keep the chevron glyph compact while giving the interactive box the shared minimum
138
- tappable size -- same "small glyph, padded hit box" pattern as lr-code-block's/
139
- lr-json-viewer's own [part='toggle']. */
140
121
  flex: 0 0 auto;
141
122
  inline-size: var(--lr-size-1-25rem);
142
123
  block-size: var(--lr-size-1-25rem);
@@ -254,15 +235,10 @@ import{css}from"lit";const styles=css`
254
235
  background-size: 200% 100%;
255
236
  animation: lr-trace-tree-stripe var(--lr-transition-ambient) infinite;
256
237
  }
257
- /* background-position animates in physical coordinates, so the sweep needs
258
- an explicit mirrored keyframe track to travel inline-start -> inline-end
259
- in RTL as well. */
260
238
  :host(:dir(rtl)) [part='bar'][data-status='running'] {
261
239
  animation-name: lr-trace-tree-stripe-rtl;
262
240
  }
263
241
  @media (prefers-reduced-motion: reduce) {
264
- /* the RTL selector outranks the bare one, so it must be silenced here
265
- explicitly or its animation-name would win over 'animation: none' */
266
242
  [part='bar'][data-status='running'],
267
243
  :host(:dir(rtl)) [part='bar'][data-status='running'] {
268
244
  animation: none;
@@ -1 +1 @@
1
- import{LyraChart}from"./chart.class.js";import{LYRA_DEFAULT_collapse,LYRA_DEFAULT_details,LYRA_DEFAULT_map,LYRA_DEFAULT_navigation,LYRA_DEFAULT_open,LYRA_DEFAULT_progress,LYRA_DEFAULT_search,LYRA_DEFAULT_select}from"../../../internal/default-strings.generated.js";class LyraBarChart extends LyraChart{constructor(){super(...arguments),this.type="bar"}static{this.defaultStrings={...super.defaultStrings,collapse:LYRA_DEFAULT_collapse,details:LYRA_DEFAULT_details,map:LYRA_DEFAULT_map,navigation:LYRA_DEFAULT_navigation,open:LYRA_DEFAULT_open,progress:LYRA_DEFAULT_progress,search:LYRA_DEFAULT_search,select:LYRA_DEFAULT_select}}}export{LyraBarChart};
1
+ import{LyraChart}from"./chart.class.js";import{LYRA_DEFAULT_collapse,LYRA_DEFAULT_details,LYRA_DEFAULT_map,LYRA_DEFAULT_navigation,LYRA_DEFAULT_open,LYRA_DEFAULT_popover,LYRA_DEFAULT_progress,LYRA_DEFAULT_search,LYRA_DEFAULT_select}from"../../../internal/default-strings.generated.js";class LyraBarChart extends LyraChart{constructor(){super(...arguments),this.type="bar"}static{this.defaultStrings={...super.defaultStrings,collapse:LYRA_DEFAULT_collapse,details:LYRA_DEFAULT_details,map:LYRA_DEFAULT_map,navigation:LYRA_DEFAULT_navigation,open:LYRA_DEFAULT_open,popover:LYRA_DEFAULT_popover,progress:LYRA_DEFAULT_progress,search:LYRA_DEFAULT_search,select:LYRA_DEFAULT_select}}}export{LyraBarChart};
@@ -8,14 +8,6 @@ import{css}from"lit";import{forcedColorLegendSwatchStyles}from"./chart-forced-co
8
8
  block-size: auto;
9
9
  container-type: inline-size;
10
10
  contain-intrinsic-inline-size: var(--lr-size-20rem);
11
- /* Same theme tokens as chart.styles.ts's :host — Chart.js renders to
12
- canvas, not the DOM, so it can't consume CSS var() directly;
13
- box-plot.ts's themeColors() resolves these once per draw() via
14
- getComputedStyle, mirroring chart.ts. Each is its own token (rather
15
- than reusing the semantic ones directly) so a host can retheme just
16
- the chart's grid/ticks/legend/tooltip without affecting unrelated
17
- text/border/surface colors elsewhere in the component, while still
18
- defaulting to those semantic tokens. */
19
11
  --_lr-chart-grid-color: var(--lr-color-border);
20
12
  --_lr-chart-tick-color: var(--lr-color-text-quiet);
21
13
  --_lr-chart-legend-color: var(--lr-color-text);
@@ -80,9 +72,6 @@ import{css}from"lit";import{forcedColorLegendSwatchStyles}from"./chart-forced-co
80
72
  [part~='legend-item'] {
81
73
  display: inline-flex;
82
74
  align-items: center;
83
- /* Both axes, matching <lr-chart>'s legend item: a short series name leaves the swatch+label
84
- pair narrower than the min-inline-size hit-area floor below, and the default
85
- justify-content (normal => flex-start) dumped that slack on the trailing side. */
86
75
  justify-content: center;
87
76
  min-inline-size: var(--lr-icon-button-size);
88
77
  min-block-size: var(--lr-icon-button-size);
@@ -101,8 +90,6 @@ import{css}from"lit";import{forcedColorLegendSwatchStyles}from"./chart-forced-co
101
90
  [part~='legend-item']:where(:hover) {
102
91
  background: var(--lr-chart-legend-item-hover-bg, var(--lr-color-brand-quiet));
103
92
  }
104
- /* Pressed, matching <lr-chart>'s legend item: the same quiet brand tint pushed further toward
105
- the text colour, so the mousedown that toggles the series reads as distinct from hovering. */
106
93
  [part~='legend-item']:where(:active) {
107
94
  background: var(
108
95
  --lr-chart-legend-item-active-bg,
@@ -172,14 +159,7 @@ import{css}from"lit";import{forcedColorLegendSwatchStyles}from"./chart-forced-co
172
159
  min-inline-size: var(--lr-icon-button-size);
173
160
  min-block-size: var(--lr-icon-button-size);
174
161
  }
175
- /* no-pressed-state: the canvas is a role="application" keyboard surface with no click handler of
176
- its own -- pressing it activates a box *inside* the bitmap, which no CSS rule can reach, and
177
- re-outlining the whole plot on mousedown would read as the entire chart being the target.
178
- Same treatment, and same rationale, as chart.styles.ts's canvas. */
179
162
  [part='canvas']:hover {
180
- /* Scoped so a consumer can retint/resize just this hover outline without also affecting every
181
- other --lr-border-width-thin consumer on the page -- the same indirection rationale as the
182
- --lr-chart-grid-color/-tick-color/etc. block above, applied to a state-specific rule. */
183
163
  outline: var(--lr-chart-canvas-hover-outline-width, var(--lr-border-width-thin)) solid
184
164
  var(--lr-chart-grid-color, var(--_lr-chart-grid-color));
185
165
  outline-offset: var(--lr-focus-ring-offset);
@@ -1 +1 @@
1
- import{LyraChart}from"./chart.class.js";import{LYRA_DEFAULT_collapse,LYRA_DEFAULT_details,LYRA_DEFAULT_map,LYRA_DEFAULT_navigation,LYRA_DEFAULT_open,LYRA_DEFAULT_progress,LYRA_DEFAULT_search,LYRA_DEFAULT_select}from"../../../internal/default-strings.generated.js";class LyraBubbleChart extends LyraChart{constructor(){super(...arguments),this.type="bubble"}static{this.defaultStrings={...super.defaultStrings,collapse:LYRA_DEFAULT_collapse,details:LYRA_DEFAULT_details,map:LYRA_DEFAULT_map,navigation:LYRA_DEFAULT_navigation,open:LYRA_DEFAULT_open,progress:LYRA_DEFAULT_progress,search:LYRA_DEFAULT_search,select:LYRA_DEFAULT_select}}}export{LyraBubbleChart};
1
+ import{LyraChart}from"./chart.class.js";import{LYRA_DEFAULT_collapse,LYRA_DEFAULT_details,LYRA_DEFAULT_map,LYRA_DEFAULT_navigation,LYRA_DEFAULT_open,LYRA_DEFAULT_popover,LYRA_DEFAULT_progress,LYRA_DEFAULT_search,LYRA_DEFAULT_select}from"../../../internal/default-strings.generated.js";class LyraBubbleChart extends LyraChart{constructor(){super(...arguments),this.type="bubble"}static{this.defaultStrings={...super.defaultStrings,collapse:LYRA_DEFAULT_collapse,details:LYRA_DEFAULT_details,map:LYRA_DEFAULT_map,navigation:LYRA_DEFAULT_navigation,open:LYRA_DEFAULT_open,popover:LYRA_DEFAULT_popover,progress:LYRA_DEFAULT_progress,search:LYRA_DEFAULT_search,select:LYRA_DEFAULT_select}}}export{LyraBubbleChart};
@@ -1,4 +1,4 @@
1
- export { resolveCanvasColor } from '../../../internal/canvas-color.js';
1
+ export { resolveCanvasColor, resolveCanvasColors } from '../../../internal/canvas-color.js';
2
2
  /**
3
3
  * Resolves the categorical chart ramp to concrete canvas-safe colors. Passing `null` selects the
4
4
  * deterministic fallback directly; omitting the argument reads the document theme.
@@ -1 +1 @@
1
- import{resolveCanvasColor}from"../../../internal/canvas-color.js";const FALLBACK_SERIES_PALETTE=["#0e006e","#4d011a","#862002","#503983","#315fdd","#935e7c","#de6906","#8f81d3"],AREA_FILL_PERCENT=28;import{resolveCanvasColor as resolveCanvasColor2}from"../../../internal/canvas-color.js";function seriesPalette(element){const target=element===void 0&&typeof document<"u"?document.documentElement:element;if(!target||typeof getComputedStyle!="function")return[...FALLBACK_SERIES_PALETTE];const cs=getComputedStyle(target);return FALLBACK_SERIES_PALETTE.map((fallback,index)=>{const number=index+1,color=cs.getPropertyValue(`--lr-color-chart-${number}`).trim()||cs.getPropertyValue(`--lr-theme-color-chart-${number}`).trim()||fallback;return resolveCanvasColor(target,color,fallback)})}function translucentAreaColor(scope,color){if(typeof document>"u"||typeof getComputedStyle!="function")return color;const concrete=resolveCanvasColor(scope,color,color);return resolveCanvasColor(scope,`color-mix(in srgb, ${concrete} ${AREA_FILL_PERCENT}%, transparent)`,concrete)}export{resolveCanvasColor2 as resolveCanvasColor,seriesPalette,translucentAreaColor};
1
+ import{resolveCanvasColor}from"../../../internal/canvas-color.js";const FALLBACK_SERIES_PALETTE=["#0e006e","#4d011a","#862002","#503983","#315fdd","#935e7c","#de6906","#8f81d3"],AREA_FILL_PERCENT=28;import{resolveCanvasColor as resolveCanvasColor2,resolveCanvasColors}from"../../../internal/canvas-color.js";function seriesPalette(element){const target=element===void 0&&typeof document<"u"?document.documentElement:element;if(!target||typeof getComputedStyle!="function")return[...FALLBACK_SERIES_PALETTE];const cs=getComputedStyle(target);return FALLBACK_SERIES_PALETTE.map((fallback,index)=>{const number=index+1,color=cs.getPropertyValue(`--lr-color-chart-${number}`).trim()||cs.getPropertyValue(`--lr-theme-color-chart-${number}`).trim()||fallback;return resolveCanvasColor(target,color,fallback)})}function translucentAreaColor(scope,color){if(typeof document>"u"||typeof getComputedStyle!="function")return color;const concrete=resolveCanvasColor(scope,color,color);return resolveCanvasColor(scope,`color-mix(in srgb, ${concrete} ${AREA_FILL_PERCENT}%, transparent)`,concrete)}export{resolveCanvasColor2 as resolveCanvasColor,resolveCanvasColors,seriesPalette,translucentAreaColor};
@@ -29,6 +29,7 @@ export interface ChartJsModule {
29
29
  LinearScale: unknown;
30
30
  CategoryScale: unknown;
31
31
  RadialLinearScale: unknown;
32
+ LogarithmicScale: unknown;
32
33
  Filler: unknown;
33
34
  Tooltip: unknown;
34
35
  Legend: unknown;
@@ -1 +1 @@
1
- import{resolveOptionalPeerCapability,unwrapOptionalPeerDefault}from"../../../internal/optional-peer-capabilities.js";const CHART_REGISTERABLE_KEYS=["LineController","BarController","ScatterController","DoughnutController","PieController","RadarController","PolarAreaController","BubbleController","LineElement","PointElement","BarElement","ArcElement","LinearScale","CategoryScale","RadialLinearScale","Filler","Tooltip","Legend"];function isObjectLike(value){return(typeof value=="object"||typeof value=="function")&&value!==null}function isConstructor(value){if(typeof value!="function")return!1;try{return Reflect.construct(Object,[],value),!0}catch{return!1}}function missingChartCapability(candidate){if(!isObjectLike(candidate))return"module namespace";if(!isConstructor(candidate.Chart))return"Chart";if(typeof candidate.Chart.register!="function")return"Chart.register";if(!isObjectLike(candidate.defaults))return"defaults";for(const key of CHART_REGISTERABLE_KEYS)if(!isObjectLike(candidate[key]))return key}function isChartJsModule(candidate){return missingChartCapability(candidate)===void 0}function resolveChartJsModule(value){const module=resolveOptionalPeerCapability(value,isChartJsModule);if(module)return module;const candidate=unwrapOptionalPeerDefault(value),missing=missingChartCapability(candidate)??"module namespace";throw new Error(`Invalid optional peer \`chart.js\`: missing or invalid \`${missing}\` capability.`)}let chartJs,registered=!1;async function loadChartModule(importChart=()=>import("chart.js")){try{return resolveChartJsModule(await importChart())}catch(err){return console.warn("<lr-chart> needs the optional peer dependency `chart.js` \u2014 install it with `pnpm add chart.js`:",err),null}}function registerCore(mod){registered||(mod.Chart.register(mod.LineController,mod.BarController,mod.ScatterController,mod.DoughnutController,mod.PieController,mod.RadarController,mod.PolarAreaController,mod.BubbleController,mod.LineElement,mod.PointElement,mod.BarElement,mod.ArcElement,mod.LinearScale,mod.CategoryScale,mod.RadialLinearScale,mod.Filler,mod.Tooltip,mod.Legend),registered=!0)}async function loadAndRegisterChartModule(importChart=()=>import("chart.js"),register=registerCore){const mod=await loadChartModule(importChart);if(!mod)return null;try{return register(mod),mod}catch(error){return console.warn("<lr-chart> could not register the optional `chart.js` peer:",error),null}}function loadChartJs(){return chartJs||(chartJs=loadAndRegisterChartModule()),chartJs}export{loadAndRegisterChartModule,loadChartJs,loadChartModule};
1
+ import{resolveOptionalPeerCapability,unwrapOptionalPeerDefault}from"../../../internal/optional-peer-capabilities.js";const CHART_REGISTERABLE_KEYS=["LineController","BarController","ScatterController","DoughnutController","PieController","RadarController","PolarAreaController","BubbleController","LineElement","PointElement","BarElement","ArcElement","LinearScale","CategoryScale","RadialLinearScale","LogarithmicScale","Filler","Tooltip","Legend"];function isObjectLike(value){return(typeof value=="object"||typeof value=="function")&&value!==null}function isConstructor(value){if(typeof value!="function")return!1;try{return Reflect.construct(Object,[],value),!0}catch{return!1}}function missingChartCapability(candidate){if(!isObjectLike(candidate))return"module namespace";if(!isConstructor(candidate.Chart))return"Chart";if(typeof candidate.Chart.register!="function")return"Chart.register";if(!isObjectLike(candidate.defaults))return"defaults";for(const key of CHART_REGISTERABLE_KEYS)if(!isObjectLike(candidate[key]))return key}function isChartJsModule(candidate){return missingChartCapability(candidate)===void 0}function resolveChartJsModule(value){const module=resolveOptionalPeerCapability(value,isChartJsModule);if(module)return module;const candidate=unwrapOptionalPeerDefault(value),missing=missingChartCapability(candidate)??"module namespace";throw new Error(`Invalid optional peer \`chart.js\`: missing or invalid \`${missing}\` capability.`)}let chartJs,registered=!1;async function loadChartModule(importChart=()=>import("chart.js")){try{return resolveChartJsModule(await importChart())}catch(err){return console.warn("<lr-chart> needs the optional peer dependency `chart.js` \u2014 install it with `pnpm add chart.js`:",err),null}}function registerCore(mod){registered||(mod.Chart.register(mod.LineController,mod.BarController,mod.ScatterController,mod.DoughnutController,mod.PieController,mod.RadarController,mod.PolarAreaController,mod.BubbleController,mod.LineElement,mod.PointElement,mod.BarElement,mod.ArcElement,mod.LinearScale,mod.CategoryScale,mod.RadialLinearScale,mod.LogarithmicScale,mod.Filler,mod.Tooltip,mod.Legend),registered=!0)}async function loadAndRegisterChartModule(importChart=()=>import("chart.js"),register=registerCore){const mod=await loadChartModule(importChart);if(!mod)return null;try{return register(mod),mod}catch(error){return console.warn("<lr-chart> could not register the optional `chart.js` peer:",error),null}}function loadChartJs(){return chartJs||(chartJs=loadAndRegisterChartModule()),chartJs}export{loadAndRegisterChartModule,loadChartJs,loadChartModule};