@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
@@ -2,21 +2,6 @@ import{css}from"lit";const styles=css`
2
2
  :host {
3
3
  display: block;
4
4
  }
5
- /* Two rendering paths, one presentation. Below \`virtualize-at\` a chunk row is committed into
6
- this component's own shadow root, where a plain [part~='x'] selector matches it. Above it the
7
- identical row template becomes <lr-virtual-list>'s .renderItem, and Lit commits that content
8
- inside *that* component's shadow root -- a different tree, which no selector scoped to this one
9
- can ever reach. lr-virtual-list::part(x) crosses exactly that one boundary, so both selectors
10
- are required for every row-level part; the pairing is the same one <lr-ingestion-queue> uses
11
- for its own dual-path rows.
12
-
13
- Row state is carried by an extra part *token* (chunk-current, score-fill-danger, ...) rather
14
- than by the row's own attribute, because Shadow Parts forbids an attribute selector after
15
- ::part(): ::part(chunk)[aria-current='true'] is invalid CSS, so the whole rule would be
16
- dropped. ::part() matches against the part-name list, so a second token costs nothing and is
17
- reachable from a consumer stylesheet too. The mirrored attributes (aria-current, data-tone,
18
- data-clamped) stay on the elements -- they carry the semantics, and a bare [part~=] selector
19
- inside this tree can still use them. */
20
5
  [part~='chunk'],
21
6
  lr-virtual-list::part(chunk) {
22
7
  display: flex;
@@ -38,14 +23,6 @@ import{css}from"lit";const styles=css`
38
23
  color: var(--lr-color-text-quiet);
39
24
  font-variant-numeric: tabular-nums;
40
25
  }
41
- /* text-quiet's contrast ratio against brand-quiet lands at ~4.24:1 -- just under the WCAG AA
42
- 4.5:1 floor for normal-size text -- even though it comfortably passes against the plain
43
- (non-current) background used the rest of the time. Same class of bug already hit and fixed in
44
- lr-attachment-chip's [part='size'], lr-chat-message's [part='footer'] and lr-conversation-item's
45
- [part='excerpt']/[part='timestamp']; same fix, full-strength text color once current. Paired
46
- with --lr-chunk-inspector-current-bg: a consumer that restyles one has to keep the ratio, so
47
- both arms of the pair are overridable. Ordered after the base score rule above, which it has to
48
- win on source order (both are single-token selectors of equal specificity). */
49
26
  [part~='score-current'],
50
27
  lr-virtual-list::part(score-current) {
51
28
  color: var(--lr-chunk-inspector-current-color, var(--lr-color-text));
@@ -98,9 +75,6 @@ import{css}from"lit";const styles=css`
98
75
  color: var(--lr-color-brand);
99
76
  text-decoration: underline;
100
77
  }
101
- /* The pressed state adds the surface the hover underline has no room for: this button is
102
- transparent-backed link chrome, so a wash mixed from that transparent base is the only thing
103
- that can read as "held down" without repainting the brand-colored label. */
104
78
  [part~='open-button']:active,
105
79
  lr-virtual-list::part(open-button):active {
106
80
  color: var(--lr-color-brand);
@@ -116,15 +90,6 @@ import{css}from"lit";const styles=css`
116
90
  lr-virtual-list::part(title) {
117
91
  font: inherit;
118
92
  }
119
- /* chunk.text is arbitrary consumer-supplied content -- it may genuinely be RTL prose (e.g. a
120
- real Arabic/Hebrew search snippet). isolate (not plaintext, and never a forced dir="ltr")
121
- keeps the paragraph's own edge punctuation from being reordered by the surrounding host
122
- direction while still letting the browser's per-paragraph bidi detection run correctly for
123
- genuinely RTL content. Without it, under dir="rtl" a trailing period (e.g. "...Curie in
124
- 1898.") visually jumps to the front of the line. Chromium and Firefox already default block
125
- boxes to unicode-bidi: isolate (see the HTML "bidi rendering" UA-stylesheet rules), which
126
- masks this on those two engines; WebKit does not, so the bug and this rule are only visible
127
- cross-engine -- see this component's own dir="rtl" test. */
128
93
  [part~='text'],
129
94
  lr-virtual-list::part(text) {
130
95
  margin: 0;
@@ -105,20 +105,20 @@ export declare class LyraCitationBadge extends LyraElement<LyraCitationBadgeEven
105
105
  /** Adds source context to the accessible name while retaining the visible citation index
106
106
  * (`"Citation {index}, {label}"`). */
107
107
  label: string;
108
- private hasPreviewSlot;
109
108
  private popoverOpen;
110
109
  private buttonEl?;
111
110
  private popoverEl?;
112
111
  private readonly popoverId;
112
+ private readonly slotPresence;
113
113
  private cleanupPositioner?;
114
114
  private hideTimer?;
115
115
  private hovering;
116
116
  private focused;
117
+ private get hasPreviewSlot();
117
118
  protected willUpdate(changed: PropertyValues): void;
118
119
  protected updated(changed: PropertyValues): void;
119
120
  disconnectedCallback(): void;
120
121
  private get accessibleLabel();
121
- private onSlotChange;
122
122
  private showPreview;
123
123
  private scheduleHidePreview;
124
124
  private hidePreviewNow;
@@ -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,nothing}from"lit";import{property,state,query}from"lit/decorators.js";import{LyraElement}from"../../../internal/lyra-element.js";import{place}from"../../../internal/positioner.js";import{nextId}from"../../../internal/a11y.js";import{finiteInteger}from"../../../internal/numbers.js";import{getNumberFormat}from"../../../internal/intl-cache.js";import{styles}from"./citation-badge.styles.js";import{LYRA_DEFAULT_citation,LYRA_DEFAULT_citationHighConfidence,LYRA_DEFAULT_citationLowConfidence,LYRA_DEFAULT_citationMediumConfidence,LYRA_DEFAULT_citationUnverified,LYRA_DEFAULT_citationVerified,LYRA_DEFAULT_citationWithCustomLabel,LYRA_DEFAULT_citationWithStatus,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";const STATUS_MESSAGE_KEY={default:null,high:"citationHighConfidence",medium:"citationMediumConfidence",low:"citationLowConfidence",verified:"citationVerified",unverified:"citationUnverified"},HIDE_DELAY_MS=200;function isRealPreviewNode(n){return n.nodeType===Node.ELEMENT_NODE?!n.hasAttribute("slot"):(n.textContent??"").trim().length>0}class LyraCitationBadge extends LyraElement{constructor(){super(...arguments),this._index=1,this.status="default",this.sourceId="",this.href="",this.label="",this.hasPreviewSlot=!1,this.popoverOpen=!1,this.popoverId=nextId("citation-badge-popover"),this.hovering=!1,this.focused=!1,this.onSlotChange=e=>{this.hasPreviewSlot=e.target.assignedNodes({flatten:!0}).some(isRealPreviewNode),this.hasPreviewSlot||this.hidePreviewNow()},this.onPointerEnter=()=>{this.hovering=!0,this.showPreview()},this.onPointerLeave=()=>{this.hovering=!1,this.scheduleHidePreview()},this.onFocusIn=()=>{this.focused=!0,this.showPreview()},this.onFocusOut=()=>{this.focused=!1,!this.hovering&&this.hidePreviewNow()},this.onKeyDown=e=>{if(e.key==="Escape"&&this.popoverOpen){e.stopPropagation(),this.hidePreviewNow();return}e.key===" "&&!e.repeat&&e.target===this.buttonEl&&(e.preventDefault(),this.emitOpen())},this.onClick=()=>{this.emit("lr-citation-activate",{sourceId:this.sourceId,index:this.index})},this.onDblClick=()=>{this.emitOpen()}}static{this.defaultStrings={...super.defaultStrings,citation:LYRA_DEFAULT_citation,citationHighConfidence:LYRA_DEFAULT_citationHighConfidence,citationLowConfidence:LYRA_DEFAULT_citationLowConfidence,citationMediumConfidence:LYRA_DEFAULT_citationMediumConfidence,citationUnverified:LYRA_DEFAULT_citationUnverified,citationVerified:LYRA_DEFAULT_citationVerified,citationWithCustomLabel:LYRA_DEFAULT_citationWithCustomLabel,citationWithStatus:LYRA_DEFAULT_citationWithStatus,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}}static{this.styles=[LyraElement.styles,styles]}get index(){return this._index}set index(value){const old=this._index;this._index=finiteInteger(value,1,1),this.requestUpdate("index",old)}willUpdate(changed){super.willUpdate(changed),this.hasUpdated||(this.hasPreviewSlot=Array.from(this.childNodes).some(isRealPreviewNode))}updated(changed){super.updated(changed),changed.has("popoverOpen")&&(this.cleanupPositioner?.(),this.cleanupPositioner=void 0,this.popoverOpen&&this.buttonEl&&this.popoverEl&&(this.cleanupPositioner=place(this.buttonEl,this.popoverEl,{placement:"top-start"})))}disconnectedCallback(){super.disconnectedCallback(),this.cleanupPositioner?.(),this.cleanupPositioner=void 0,clearTimeout(this.hideTimer),this.hideTimer=void 0,this.popoverOpen=!1,this.hovering=!1,this.focused=!1}get accessibleLabel(){const index=getNumberFormat(this.effectiveLocale).format(this.index);if(this.label)return this.localize("citationWithCustomLabel",void 0,{index,label:this.label});const key=STATUS_MESSAGE_KEY[this.status],statusText=key?this.localize(key):"",citationLabel=this.localize("citation",void 0,{index});return statusText?this.localize("citationWithStatus",void 0,{index,status:statusText}):citationLabel}showPreview(){this.hasPreviewSlot&&(clearTimeout(this.hideTimer),this.hideTimer=void 0,!this.popoverOpen&&(this.popoverOpen=!0))}scheduleHidePreview(){!this.popoverOpen||this.hovering||this.focused||(clearTimeout(this.hideTimer),this.hideTimer=setTimeout(()=>{this.hideTimer=void 0,this.popoverOpen=!1},HIDE_DELAY_MS))}hidePreviewNow(){clearTimeout(this.hideTimer),this.hideTimer=void 0,this.popoverOpen&&(this.popoverOpen=!1)}emitOpen(){this.emit("lr-citation-open",{sourceId:this.sourceId,index:this.index,href:this.href||void 0})}render(){const formattedIndex=getNumberFormat(this.effectiveLocale).format(this.index);return html`
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,nothing}from"lit";import{property,state,query}from"lit/decorators.js";import{LyraElement}from"../../../internal/lyra-element.js";import{place}from"../../../internal/positioner.js";import{nextId}from"../../../internal/a11y.js";import{SlotPresenceController}from"../../../internal/slot-presence-controller.js";import{finiteInteger}from"../../../internal/numbers.js";import{getNumberFormat}from"../../../internal/intl-cache.js";import{styles}from"./citation-badge.styles.js";import{LYRA_DEFAULT_citation,LYRA_DEFAULT_citationHighConfidence,LYRA_DEFAULT_citationLowConfidence,LYRA_DEFAULT_citationMediumConfidence,LYRA_DEFAULT_citationUnverified,LYRA_DEFAULT_citationVerified,LYRA_DEFAULT_citationWithCustomLabel,LYRA_DEFAULT_citationWithStatus,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";const STATUS_MESSAGE_KEY={default:null,high:"citationHighConfidence",medium:"citationMediumConfidence",low:"citationLowConfidence",verified:"citationVerified",unverified:"citationUnverified"},HIDE_DELAY_MS=200;class LyraCitationBadge extends LyraElement{constructor(){super(...arguments),this._index=1,this.status="default",this.sourceId="",this.href="",this.label="",this.popoverOpen=!1,this.popoverId=nextId("citation-badge-popover"),this.slotPresence=new SlotPresenceController(this),this.hovering=!1,this.focused=!1,this.onPointerEnter=()=>{this.hovering=!0,this.showPreview()},this.onPointerLeave=()=>{this.hovering=!1,this.scheduleHidePreview()},this.onFocusIn=()=>{this.focused=!0,this.showPreview()},this.onFocusOut=()=>{this.focused=!1,!this.hovering&&this.hidePreviewNow()},this.onKeyDown=e=>{if(e.key==="Escape"&&this.popoverOpen){e.stopPropagation(),this.hidePreviewNow();return}e.key===" "&&!e.repeat&&e.target===this.buttonEl&&(e.preventDefault(),this.emitOpen())},this.onClick=()=>{this.emit("lr-citation-activate",{sourceId:this.sourceId,index:this.index})},this.onDblClick=()=>{this.emitOpen()}}static{this.defaultStrings={...super.defaultStrings,citation:LYRA_DEFAULT_citation,citationHighConfidence:LYRA_DEFAULT_citationHighConfidence,citationLowConfidence:LYRA_DEFAULT_citationLowConfidence,citationMediumConfidence:LYRA_DEFAULT_citationMediumConfidence,citationUnverified:LYRA_DEFAULT_citationUnverified,citationVerified:LYRA_DEFAULT_citationVerified,citationWithCustomLabel:LYRA_DEFAULT_citationWithCustomLabel,citationWithStatus:LYRA_DEFAULT_citationWithStatus,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}}static{this.styles=[LyraElement.styles,styles]}get index(){return this._index}set index(value){const old=this._index;this._index=finiteInteger(value,1,1),this.requestUpdate("index",old)}get hasPreviewSlot(){return this.slotPresence.has()}willUpdate(changed){super.willUpdate(changed),this.popoverOpen&&!this.hasPreviewSlot&&this.hidePreviewNow()}updated(changed){super.updated(changed),changed.has("popoverOpen")&&(this.cleanupPositioner?.(),this.cleanupPositioner=void 0,this.popoverOpen&&this.buttonEl&&this.popoverEl&&(this.cleanupPositioner=place(this.buttonEl,this.popoverEl,{placement:"top-start"})))}disconnectedCallback(){super.disconnectedCallback(),this.cleanupPositioner?.(),this.cleanupPositioner=void 0,clearTimeout(this.hideTimer),this.hideTimer=void 0,this.popoverOpen=!1,this.hovering=!1,this.focused=!1}get accessibleLabel(){const index=getNumberFormat(this.effectiveLocale).format(this.index);if(this.label)return this.localize("citationWithCustomLabel",void 0,{index,label:this.label});const key=STATUS_MESSAGE_KEY[this.status],statusText=key?this.localize(key):"",citationLabel=this.localize("citation",void 0,{index});return statusText?this.localize("citationWithStatus",void 0,{index,status:statusText}):citationLabel}showPreview(){this.hasPreviewSlot&&(clearTimeout(this.hideTimer),this.hideTimer=void 0,!this.popoverOpen&&(this.popoverOpen=!0))}scheduleHidePreview(){!this.popoverOpen||this.hovering||this.focused||(clearTimeout(this.hideTimer),this.hideTimer=setTimeout(()=>{this.hideTimer=void 0,this.popoverOpen=!1},HIDE_DELAY_MS))}hidePreviewNow(){clearTimeout(this.hideTimer),this.hideTimer=void 0,this.popoverOpen&&(this.popoverOpen=!1)}emitOpen(){this.emit("lr-citation-open",{sourceId:this.sourceId,index:this.index,href:this.href||void 0})}render(){const formattedIndex=getNumberFormat(this.effectiveLocale).format(this.index);return html`
2
2
  <span
3
3
  class="wrapper"
4
4
  @pointerenter=${this.onPointerEnter}
@@ -26,7 +26,7 @@ var __decorate=function(decorators,target,key,desc){var c=arguments.length,r=c<3
26
26
  inert
27
27
  ?hidden=${!this.popoverOpen}
28
28
  >
29
- <slot @slotchange=${this.onSlotChange}></slot>
29
+ <slot></slot>
30
30
  </div>
31
31
  </span>
32
- `}}__decorate([property({type:Number})],LyraCitationBadge.prototype,"index",null),__decorate([property({reflect:!0})],LyraCitationBadge.prototype,"status",void 0),__decorate([property({attribute:"source-id"})],LyraCitationBadge.prototype,"sourceId",void 0),__decorate([property()],LyraCitationBadge.prototype,"href",void 0),__decorate([property()],LyraCitationBadge.prototype,"label",void 0),__decorate([state()],LyraCitationBadge.prototype,"hasPreviewSlot",void 0),__decorate([state()],LyraCitationBadge.prototype,"popoverOpen",void 0),__decorate([query('[part="base"]')],LyraCitationBadge.prototype,"buttonEl",void 0),__decorate([query('[part="popover"]')],LyraCitationBadge.prototype,"popoverEl",void 0);export{LyraCitationBadge};
32
+ `}}__decorate([property({type:Number})],LyraCitationBadge.prototype,"index",null),__decorate([property({reflect:!0})],LyraCitationBadge.prototype,"status",void 0),__decorate([property({attribute:"source-id"})],LyraCitationBadge.prototype,"sourceId",void 0),__decorate([property()],LyraCitationBadge.prototype,"href",void 0),__decorate([property()],LyraCitationBadge.prototype,"label",void 0),__decorate([state()],LyraCitationBadge.prototype,"popoverOpen",void 0),__decorate([query('[part="base"]')],LyraCitationBadge.prototype,"buttonEl",void 0),__decorate([query('[part="popover"]')],LyraCitationBadge.prototype,"popoverEl",void 0);export{LyraCitationBadge};
@@ -3,11 +3,6 @@ import{css}from"lit";const styles=css`
3
3
  display: inline-flex;
4
4
  vertical-align: baseline;
5
5
  line-height: var(--lr-line-height-none);
6
- /* Per-status private defaults -- one pair changed by the :host([status]) rules below rather
7
- than repeating background/color. An inherited or direct public hook remains authoritative;
8
- per part per status. 'default' (and any unrecognized status) stays
9
- plain/neutral -- transparent background, quiet text -- rather than
10
- inventing a seventh visual tone for "no signal at all". */
11
6
  --_lr-citation-badge-accent: var(--lr-color-text-quiet);
12
7
  --_lr-citation-badge-bg: transparent;
13
8
  --_lr-citation-badge-border: transparent;
@@ -23,9 +18,6 @@ import{css}from"lit";const styles=css`
23
18
  --_lr-citation-badge-accent: var(--lr-color-warning);
24
19
  --_lr-citation-badge-bg: var(--lr-color-warning-quiet);
25
20
  }
26
- /* Deliberately its own danger tone, not grouped with 'low' -- see the
27
- component doc's status-coloring note: "hasn't been checked" reads as a
28
- distinct (riskier) claim from "checked but uncertain". */
29
21
  :host([status="unverified"]) {
30
22
  --_lr-citation-badge-accent: var(--lr-color-danger);
31
23
  --_lr-citation-badge-bg: var(--lr-color-danger-quiet);
@@ -38,10 +30,6 @@ import{css}from"lit";const styles=css`
38
30
  [part="base"] {
39
31
  display: inline-flex;
40
32
  align-items: baseline;
41
- /* Cross-axis stays baseline (the badge number sits on the surrounding text's baseline), but
42
- the main axis must centre: the min-inline-size hit-area floor below is far wider than the
43
- one- or two-digit label it usually holds, and the default justify-content
44
- (normal => flex-start) left that number hugging the badge's leading edge. */
45
33
  justify-content: center;
46
34
  box-sizing: border-box;
47
35
  min-inline-size: var(--lr-icon-button-size);
@@ -68,9 +56,6 @@ import{css}from"lit";const styles=css`
68
56
  var(--_lr-citation-badge-accent)
69
57
  );
70
58
  }
71
- /* Pressed goes further than the hover border alone: the badge's own per-status fill mixed toward
72
- --lr-color-mix-partner. That works for the 'default' status too, whose fill is transparent --
73
- the mix simply resolves to the partner at --lr-color-mix-active alpha. */
74
59
  [part="base"]:active {
75
60
  border-color: var(
76
61
  --lr-citation-badge-accent,
@@ -91,11 +76,6 @@ import{css}from"lit";const styles=css`
91
76
  opacity: 0.7;
92
77
  }
93
78
 
94
- /* Positioned by internal/positioner.js's place() -- same fixed/z-index/
95
- max-size shape as lr-tool-call-chip's own [part='tooltip']. No open/
96
- close transition, for the same reason that one has none: a preview
97
- that tracks the pointer/focus target should appear instantly, not
98
- chase a fade. */
99
79
  [part="popover"] {
100
80
  position: fixed;
101
81
  z-index: var(--lr-layer-dropdown);
@@ -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,nothing}from"lit";import{property}from"lit/decorators.js";import{getNumberFormat}from"../../../internal/intl-cache.js";import{LyraElement}from"../../../internal/lyra-element.js";import{firstByRetrievalIdentity}from"../retrieval-identity.js";import{finiteRange}from"../../../internal/numbers.js";import"../../overlays/badge/badge.class.js";import"../../overlays/empty/empty.class.js";import"../citation-badge/citation-badge.class.js";import{styles}from"./claim-evidence.styles.js";import{retrievalSemanticLabel,retrievalSemanticRole}from"../retrieval-semantic-owner.js";import{LYRA_DEFAULT_claimEvidenceConfidence,LYRA_DEFAULT_claimEvidenceContradicted,LYRA_DEFAULT_claimEvidenceEmpty,LYRA_DEFAULT_claimEvidenceLabel,LYRA_DEFAULT_claimEvidencePartiallySupported,LYRA_DEFAULT_claimEvidenceSupported,LYRA_DEFAULT_claimEvidenceUnsupported,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";const STATUS_VARIANT={supported:"success","partially-supported":"warning",unsupported:"danger",contradicted:"danger"};class LyraClaimEvidence extends LyraElement{constructor(){super(...arguments),this.claims=[],this.citations=[],this.selectedClaimId="",this.label="",this.compact=!1,this.frame="card"}static{this.defaultStrings={...super.defaultStrings,claimEvidenceConfidence:LYRA_DEFAULT_claimEvidenceConfidence,claimEvidenceContradicted:LYRA_DEFAULT_claimEvidenceContradicted,claimEvidenceEmpty:LYRA_DEFAULT_claimEvidenceEmpty,claimEvidenceLabel:LYRA_DEFAULT_claimEvidenceLabel,claimEvidencePartiallySupported:LYRA_DEFAULT_claimEvidencePartiallySupported,claimEvidenceSupported:LYRA_DEFAULT_claimEvidenceSupported,claimEvidenceUnsupported:LYRA_DEFAULT_claimEvidenceUnsupported,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}}static{this.ownedCollectionProperties=Object.freeze(["claims","citations"])}static{this.styles=[LyraElement.styles,styles]}static{this.immutableEventDetails=Object.freeze(["lr-claim-select","lr-citation-select"])}get normalizedClaims(){return firstByRetrievalIdentity(Array.isArray(this.claims)?this.claims:[],claim=>claim.id)}get normalizedCitations(){return firstByRetrievalIdentity(Array.isArray(this.citations)?this.citations:[],citation=>citation.id)}statusLabel(status){switch(status){case"supported":return this.localize("claimEvidenceSupported");case"partially-supported":return this.localize("claimEvidencePartiallySupported");case"unsupported":return this.localize("claimEvidenceUnsupported");case"contradicted":return this.localize("claimEvidenceContradicted")}}confidenceLabel(value){const percent=getNumberFormat(this.effectiveLocale,{style:"percent"}).format(finiteRange(value,0,0,1));return this.localize("claimEvidenceConfidence",void 0,{percent})}resolvedCitations(claim,citations){const ids=new Set(claim.citationIds);return citations.filter(citation=>ids.has(citation.id))}renderClaim(claim,allCitations){const selected=claim.id===this.selectedClaimId,citations=this.resolvedCitations(claim,allCitations);return html`
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,nothing}from"lit";import{property}from"lit/decorators.js";import{getNumberFormat}from"../../../internal/intl-cache.js";import{LyraElement}from"../../../internal/lyra-element.js";import{firstByRetrievalIdentity}from"../retrieval-identity.js";import{finiteRange}from"../../../internal/numbers.js";import"../../overlays/badge/badge.class.js";import"../../overlays/empty/empty.class.js";import"../citation-badge/citation-badge.class.js";import{styles}from"./claim-evidence.styles.js";import{retrievalSemanticLabel,retrievalSemanticRole}from"../retrieval-semantic-owner.js";import{LYRA_DEFAULT_claimEvidenceConfidence,LYRA_DEFAULT_claimEvidenceContradicted,LYRA_DEFAULT_claimEvidenceEmpty,LYRA_DEFAULT_claimEvidenceLabel,LYRA_DEFAULT_claimEvidencePartiallySupported,LYRA_DEFAULT_claimEvidenceSupported,LYRA_DEFAULT_claimEvidenceUnsupported,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";const STATUS_VARIANT={supported:"success","partially-supported":"warning",unsupported:"danger",contradicted:"danger"};class LyraClaimEvidence extends LyraElement{constructor(){super(...arguments),this.claims=[],this.citations=[],this.selectedClaimId="",this.label="",this.compact=!1,this.frame="card"}static{this.defaultStrings={...super.defaultStrings,claimEvidenceConfidence:LYRA_DEFAULT_claimEvidenceConfidence,claimEvidenceContradicted:LYRA_DEFAULT_claimEvidenceContradicted,claimEvidenceEmpty:LYRA_DEFAULT_claimEvidenceEmpty,claimEvidenceLabel:LYRA_DEFAULT_claimEvidenceLabel,claimEvidencePartiallySupported:LYRA_DEFAULT_claimEvidencePartiallySupported,claimEvidenceSupported:LYRA_DEFAULT_claimEvidenceSupported,claimEvidenceUnsupported:LYRA_DEFAULT_claimEvidenceUnsupported,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}}static{this.ownedCollectionProperties=Object.freeze(["claims","citations"])}static{this.styles=[LyraElement.styles,styles]}static{this.immutableEventDetails=Object.freeze(["lr-claim-select","lr-citation-select"])}get normalizedClaims(){return firstByRetrievalIdentity(Array.isArray(this.claims)?this.claims:[],claim=>claim.id)}get normalizedCitations(){return firstByRetrievalIdentity(Array.isArray(this.citations)?this.citations:[],citation=>citation.id)}statusLabel(status){switch(status){case"supported":return this.localize("claimEvidenceSupported");case"partially-supported":return this.localize("claimEvidencePartiallySupported");case"unsupported":return this.localize("claimEvidenceUnsupported");case"contradicted":return this.localize("claimEvidenceContradicted")}}confidenceLabel(value){const percent=getNumberFormat(this.effectiveLocale,{style:"percent"}).format(finiteRange(value,0,0,1));return this.localize("claimEvidenceConfidence",void 0,{percent})}resolvedCitations(claim,citations){const ids=new Set(claim.citationIds);return citations.filter(citation=>ids.has(citation.id))}renderClaim(claim,allCitations){const selected=claim.id===this.selectedClaimId,citations=this.resolvedCitations(claim,allCitations);return html`
2
2
  <li part=${selected?"claim claim-selected":"claim"} aria-current=${selected?"true":"false"}>
3
3
  <button
4
4
  part="claim-trigger"
@@ -22,18 +22,10 @@ import{css}from"lit";const styles=css`
22
22
  [part~='claim-selected'] {
23
23
  border-color: var(--lr-color-brand);
24
24
  }
25
- /* Density escape -- same convention as lr-source-card's/lr-entity-card's compact. The tuned
26
- values sit behind inline var() fallbacks (rather than a :host declaration, which every
27
- instance re-declares and so shadows any ancestor value), letting a list retune every claim at
28
- once from the outside; the fallbacks are the pre-existing values scaled down one step, so an
29
- unset claim renders unchanged. */
30
25
  :host([compact]) [part='claim-trigger'] {
31
26
  padding: var(--lr-claim-evidence-compact-padding, var(--lr-space-xs));
32
27
  gap: var(--lr-claim-evidence-compact-gap, var(--lr-space-xs));
33
28
  }
34
- /* Strips the claim-row chrome for a claim nested inside an already-bordered/backgrounded
35
- container -- same escape hatch as this component's sibling lr-source-card's/lr-entity-card's
36
- identical frame='plain' rule. */
37
29
  :host([frame='plain']) [part~='claim'] {
38
30
  border: 0;
39
31
  border-radius: 0;
@@ -2,6 +2,7 @@ import { type TemplateResult } from 'lit';
2
2
  import { LyraElement } from '../../../internal/lyra-element.js';
3
3
  import type { LyraFrame } from '../../../internal/variants.js';
4
4
  import type { LyraEntity } from '../entity-card/entity-card.class.js';
5
+ export type { LyraEntity } from '../entity-card/entity-card.class.js';
5
6
  import '../../overlays/chip/chip.class.js';
6
7
  import '../../forms/button/button.class.js';
7
8
  import '../../overlays/empty/empty.class.js';
@@ -12,9 +12,6 @@ import{css}from"lit";const styles=css`
12
12
  background: var(--lr-color-surface);
13
13
  color: var(--lr-color-text);
14
14
  }
15
- /* Strips the card chrome for a community card nested inside an already-bordered/backgrounded
16
- container -- same escape hatch as this component's own sibling lr-entity-card's identical
17
- frame='plain' rule. */
18
15
  :host([frame='plain']) [part='base'] {
19
16
  padding: 0;
20
17
  border: 0;
@@ -50,9 +47,6 @@ import{css}from"lit";const styles=css`
50
47
  [part='title'] button:hover {
51
48
  text-decoration: underline;
52
49
  }
53
- /* The label already renders in --lr-color-text, which is what --lr-color-mix-partner tracks, so
54
- mixing the *text* would move nothing; the pressed signal is a wash mixed from the button's own
55
- transparent background instead. */
56
50
  [part='title'] button:active {
57
51
  text-decoration: underline;
58
52
  background: color-mix(in oklab, transparent, var(--lr-color-mix-partner) var(--lr-color-mix-active));
@@ -11,11 +11,6 @@ import{css}from"lit";const styles=css`
11
11
  gap: var(--lr-space-xs);
12
12
  }
13
13
 
14
- /* The block size arrives as --lr-embedding-explorer-height, set on the host from the height
15
- property. An SVG height presentation attribute cannot carry it -- any stylesheet declaration
16
- outranks a presentation attribute -- and an inline block-size on the SVG would hide the value
17
- from consumers rethemeing through the custom property. The auto fallback is the
18
- aspect-ratio-preserved size derived from the viewBox. */
19
14
  [part='plot'] {
20
15
  display: block;
21
16
  inline-size: 100%;
@@ -51,11 +46,6 @@ import{css}from"lit";const styles=css`
51
46
  stroke-width: var(--lr-border-width-medium);
52
47
  }
53
48
 
54
- /* Pressed thickens the same ring the hover/focus rule above draws rather than retinting it: the
55
- ring is already --lr-color-text, which is exactly what --lr-color-mix-partner tracks, so a mix
56
- toward the partner would resolve back to the colour it started from. Width is the one axis left
57
- that reads as visibly stronger. Placed after the hover rule so it wins at equal specificity
58
- while the point is both hovered and held. */
59
49
  [part='point']:active .point-marker {
60
50
  stroke: var(--lr-color-text);
61
51
  stroke-width: var(--lr-border-width-thick);
@@ -66,6 +56,14 @@ import{css}from"lit";const styles=css`
66
56
  stroke-width: var(--lr-border-width-medium);
67
57
  }
68
58
 
59
+ [part='point'][data-selected='true']:hover .point-marker,
60
+ [part='point'][data-selected='true']:focus-visible .point-marker {
61
+ stroke-width: var(--lr-border-width-thick);
62
+ }
63
+ [part='point'][data-selected='true']:active .point-marker {
64
+ stroke-width: calc(var(--lr-border-width-thick) + var(--lr-border-width-thin));
65
+ }
66
+
69
67
  [part='legend'] {
70
68
  display: flex;
71
69
  flex-wrap: wrap;
@@ -102,8 +100,6 @@ import{css}from"lit";const styles=css`
102
100
  color: var(--lr-color-text-quiet);
103
101
  }
104
102
 
105
- /* A floor, never a fixed size: min-block-size only ever raises the resolved block-size, so a
106
- taller height still wins at narrow allocations. */
107
103
  @container (max-inline-size: 319.98px) {
108
104
  [part='plot'] {
109
105
  min-block-size: var(--lr-size-12rem);
@@ -28,14 +28,15 @@ export interface LyraEntity {
28
28
  * vocabulary under this component's own export name. */
29
29
  export type EntityCardAppearance = LyraFrame;
30
30
  export interface LyraEntityCardEventMap {
31
- 'lr-entity-activate': CustomEvent<{
31
+ /** Canonical name for the "user picked this entity" gesture. */
32
+ 'lr-entity-select': CustomEvent<{
32
33
  entityId: string;
33
34
  }>;
34
35
  }
35
36
  /**
36
37
  * `<lr-entity-card>` — a dossier card for one `LyraEntity`: type badge, description, key/value
37
38
  * property rows, degree, community chip, plus a built-in "focus in graph" action. Never fetches or
38
- * focuses a graph itself — `lr-entity-activate` is a request a host routes into `lr-graph`'s
39
+ * focuses a graph itself — `lr-entity-select` is a request a host routes into `lr-graph`'s
39
40
  * `focusNode(id, { zoom? })`.
40
41
  *
41
42
  * Public collection properties take bounded, clone-owned readonly snapshots. Create a new
@@ -44,7 +45,7 @@ export interface LyraEntityCardEventMap {
44
45
  * @customElement lr-entity-card
45
46
  * @slot - Extra body content below the property rows (e.g. a `lr-neighbor-list`).
46
47
  * @slot actions - Extra header actions alongside the built-in focus button.
47
- * @event lr-entity-activate - The built-in focus button was activated. `detail: { entityId }`.
48
+ * @event lr-entity-select - The built-in focus button was activated. `detail: { entityId }`.
48
49
  * @csspart base - The outer bordered container.
49
50
  * @csspart header - The header row wrapping the type badge, title, and actions.
50
51
  * @csspart type-badge - The resolved entity-type badge.
@@ -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,nothing}from"lit";import{property}from"lit/decorators.js";import{styleMap}from"lit/directives/style-map.js";import{LyraElement}from"../../../internal/lyra-element.js";import{firstByRetrievalIdentity,isNonBlankIdentity}from"../retrieval-identity.js";import{sanitizeCssColor}from"../../../internal/safe-css.js";import{finiteCount,finiteNumber}from"../../../internal/numbers.js";import{getNumberFormat}from"../../../internal/intl-cache.js";import{styles}from"./entity-card.styles.js";import"../../agent-tools/result-card/result-field.class.js";import"../../overlays/badge/badge.class.js";import"../../overlays/chip/chip.class.js";import"../../forms/button/button.class.js";import"../../overlays/empty/empty.class.js";import{trueDefaultBooleanConverter}from"../../../internal/converters.js";import{LYRA_DEFAULT_entityCommunity,LYRA_DEFAULT_entityDegree,LYRA_DEFAULT_fieldRequired,LYRA_DEFAULT_focusInGraph,LYRA_DEFAULT_noData,LYRA_DEFAULT_untitledEntity}from"../../../internal/default-strings.generated.js";function typeBadgeStyle(color){const safe=color!=null?sanitizeCssColor(color):void 0;return safe?{"--lr-badge-color":"var(--lr-color-text)","--lr-badge-background":`color-mix(in srgb, ${safe} 12%, var(--lr-color-surface))`,"--lr-badge-border":safe}:{}}class LyraEntityCard extends LyraElement{constructor(){super(...arguments),this.entity=null,this.types=[],this.communityLabel="",this.showFocusButton=!0,this.compact=!1,this.frame="card",this.onFocusClick=()=>{this.entity&&isNonBlankIdentity(this.entity.id)&&this.emit("lr-entity-activate",{entityId:this.entity.id})}}static{this.defaultStrings={...super.defaultStrings,entityCommunity:LYRA_DEFAULT_entityCommunity,entityDegree:LYRA_DEFAULT_entityDegree,fieldRequired:LYRA_DEFAULT_fieldRequired,focusInGraph:LYRA_DEFAULT_focusInGraph,noData:LYRA_DEFAULT_noData,untitledEntity:LYRA_DEFAULT_untitledEntity}}static{this.ownedCollectionProperties=Object.freeze(["entity","types"])}static{this.styles=[LyraElement.styles,styles]}resolvedType(type){return firstByRetrievalIdentity(this.types,entry=>entry?.id).find(entry=>entry.id===type)}render(){if(!this.entity||!isNonBlankIdentity(this.entity.id))return html`<div part="base">
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,nothing}from"lit";import{property}from"lit/decorators.js";import{styleMap}from"lit/directives/style-map.js";import{LyraElement}from"../../../internal/lyra-element.js";import{firstByRetrievalIdentity,isNonBlankIdentity}from"../retrieval-identity.js";import{sanitizeCssColor}from"../../../internal/safe-css.js";import{finiteCount,finiteNumber}from"../../../internal/numbers.js";import{getNumberFormat}from"../../../internal/intl-cache.js";import{styles}from"./entity-card.styles.js";import"../../agent-tools/result-card/result-field.class.js";import"../../overlays/badge/badge.class.js";import"../../overlays/chip/chip.class.js";import"../../forms/button/button.class.js";import"../../overlays/empty/empty.class.js";import{trueDefaultBooleanConverter}from"../../../internal/converters.js";import{LYRA_DEFAULT_entityCommunity,LYRA_DEFAULT_entityDegree,LYRA_DEFAULT_fieldRequired,LYRA_DEFAULT_focusInGraph,LYRA_DEFAULT_noData,LYRA_DEFAULT_untitledEntity}from"../../../internal/default-strings.generated.js";function typeBadgeStyle(color){const safe=color!=null?sanitizeCssColor(color):void 0;return safe?{"--lr-badge-color":"var(--lr-color-text)","--lr-badge-background":`color-mix(in srgb, ${safe} 12%, var(--lr-color-surface))`,"--lr-badge-border":safe}:{}}class LyraEntityCard extends LyraElement{constructor(){super(...arguments),this.entity=null,this.types=[],this.communityLabel="",this.showFocusButton=!0,this.compact=!1,this.frame="card",this.onFocusClick=()=>{this.entity&&isNonBlankIdentity(this.entity.id)&&this.emit("lr-entity-select",{entityId:this.entity.id})}}static{this.defaultStrings={...super.defaultStrings,entityCommunity:LYRA_DEFAULT_entityCommunity,entityDegree:LYRA_DEFAULT_entityDegree,fieldRequired:LYRA_DEFAULT_fieldRequired,focusInGraph:LYRA_DEFAULT_focusInGraph,noData:LYRA_DEFAULT_noData,untitledEntity:LYRA_DEFAULT_untitledEntity}}static{this.ownedCollectionProperties=Object.freeze(["entity","types"])}static{this.styles=[LyraElement.styles,styles]}resolvedType(type){return firstByRetrievalIdentity(this.types,entry=>entry?.id).find(entry=>entry.id===type)}render(){if(!this.entity||!isNonBlankIdentity(this.entity.id))return html`<div part="base">
2
2
  <lr-empty part="empty" heading=${this.localize("noData")}></lr-empty>
3
3
  </div>`;const entity=this.entity,titleText=entity.label||this.localize("untitledEntity"),resolved=entity.type?this.resolvedType(entity.type):void 0,badgeLabel=resolved?.label??entity.type,properties=Object.entries(entity.properties??{}),ariaLevel=this.getAttribute("aria-level")||"3";return html`
4
4
  <div part="base">
@@ -13,19 +13,10 @@ import{css}from"lit";const styles=css`
13
13
  color: var(--lr-color-text);
14
14
  min-inline-size: 0;
15
15
  }
16
- /* Density escape -- same convention as lr-empty's compact, and as this component's own sibling
17
- lr-community-card. The tuned values sit behind inline var() fallbacks (rather than a :host
18
- declaration, which every instance re-declares and so shadows any ancestor value) so a consumer
19
- can retune them from outside; the fallbacks are the pre-existing values, so an unset card
20
- renders unchanged. */
21
16
  :host([compact]) [part='base'] {
22
17
  padding: var(--lr-entity-card-compact-padding, var(--lr-space-s));
23
18
  gap: var(--lr-entity-card-compact-gap, var(--lr-space-xs));
24
19
  }
25
- /* MUST stay after :host([compact]): both selectors are :host([x]) [part='base'], i.e. equal
26
- specificity, so source order alone decides which padding/gap wins when a card is both compact
27
- and plain. plain is the stronger statement ("no chrome at all"), so it goes last. The header's
28
- focus button and type badge draw their own chrome and stay visible either way. */
29
20
  :host([frame='plain']) [part='base'] {
30
21
  padding: 0;
31
22
  border: 0;
@@ -63,9 +54,6 @@ import{css}from"lit";const styles=css`
63
54
  gap: var(--lr-space-xs);
64
55
  }
65
56
  @media (forced-colors: active) {
66
- /* Caller category colors remain an accent in ordinary themes. In forced colors the system
67
- palette is the authority for every text/background/border channel, including values that
68
- arrived as inline custom properties on the nested badge. */
69
57
  [part='type-badge'] {
70
58
  --lr-badge-color: var(--lr-color-text) !important;
71
59
  --lr-badge-background: var(--lr-color-surface) !important;
@@ -1,7 +1,8 @@
1
1
  import { type TemplateResult, type PropertyValues } from 'lit';
2
2
  import { LyraElement } from '../../../internal/lyra-element.js';
3
3
  export interface LyraEntityChipEventMap {
4
- 'lr-entity-activate': CustomEvent<{
4
+ /** Canonical name for the "user picked this entity" gesture. */
5
+ 'lr-entity-select': CustomEvent<{
5
6
  entityId: string;
6
7
  }>;
7
8
  'lr-entity-open': CustomEvent<{
@@ -21,7 +22,7 @@ export interface LyraEntityChipEventMap {
21
22
  * @customElement lr-entity-chip
22
23
  * @slot - Rich preview content (typically a compact `lr-entity-card`), shown in a floating
23
24
  * popover on hover/focus. No content -> no popover and no hover affordance at all.
24
- * @event lr-entity-activate - Click, or Enter while focused. `detail: { entityId }`.
25
+ * @event lr-entity-select - Click, or Enter while focused. `detail: { entityId }`.
25
26
  * @event lr-entity-open - Dblclick, or Space while focused. `detail: { entityId }`.
26
27
  * @csspart base - The clickable chip (`<button>`).
27
28
  * @csspart label - The chip's visible `text`.
@@ -44,20 +45,25 @@ export declare class LyraEntityChip extends LyraElement<LyraEntityChipEventMap>
44
45
  /** Resolved display label for `type`; when set, the accessible name speaks it instead of the raw
45
46
  * type id. */
46
47
  typeLabel?: string;
47
- private hasPreviewSlot;
48
48
  private popoverOpen;
49
49
  private buttonEl?;
50
50
  private popoverEl?;
51
51
  private readonly popoverId;
52
+ /** The default slot's preview content is often bare text (no wrapping element at all), so an
53
+ * element-only check never counts it, and a `[part]` always contains a literal `<slot>` child
54
+ * regardless of assignment, so `:empty` never matches either. The shared controller answers the
55
+ * same "does this slot carry real consumer content" question every other presence-driven
56
+ * component asks, seeded before the first render and kept live afterwards. */
57
+ private readonly slotPresence;
52
58
  private cleanupPositioner?;
53
59
  private hideTimer?;
54
60
  private hovering;
55
61
  private focused;
62
+ private get hasPreviewSlot();
56
63
  protected willUpdate(changed: PropertyValues): void;
57
64
  protected updated(changed: PropertyValues): void;
58
65
  disconnectedCallback(): void;
59
66
  private get accessibleLabel();
60
- private onSlotChange;
61
67
  private showPreview;
62
68
  private scheduleHidePreview;
63
69
  private hidePreviewNow;
@@ -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,nothing}from"lit";import{property,state,query}from"lit/decorators.js";import{LyraElement}from"../../../internal/lyra-element.js";import{isNonBlankIdentity}from"../retrieval-identity.js";import{place}from"../../../internal/positioner.js";import{nextId}from"../../../internal/a11y.js";import{styles}from"./entity-chip.styles.js";import{LYRA_DEFAULT_entityChipWithType,LYRA_DEFAULT_untitledEntity}from"../../../internal/default-strings.generated.js";const HIDE_DELAY_MS=200;function isRealPreviewNode(n){return n.nodeType===Node.ELEMENT_NODE?!n.hasAttribute("slot"):(n.textContent??"").trim().length>0}class LyraEntityChip extends LyraElement{constructor(){super(...arguments),this.entityId="",this.text="",this.type="",this.hasPreviewSlot=!1,this.popoverOpen=!1,this.popoverId=nextId("entity-chip-popover"),this.hovering=!1,this.focused=!1,this.onSlotChange=e=>{this.hasPreviewSlot=e.target.assignedNodes({flatten:!0}).some(isRealPreviewNode),this.hasPreviewSlot||this.hidePreviewNow()},this.onPointerEnter=()=>{this.hovering=!0,this.showPreview()},this.onPointerLeave=()=>{this.hovering=!1,this.scheduleHidePreview()},this.onFocusIn=()=>{this.focused=!0,this.showPreview()},this.onFocusOut=()=>{this.focused=!1,!this.hovering&&this.hidePreviewNow()},this.onKeyDown=e=>{if(e.key==="Escape"&&this.popoverOpen){e.stopPropagation(),this.hidePreviewNow();return}e.key===" "&&!e.repeat&&e.target===this.buttonEl&&(e.preventDefault(),this.emitOpen())},this.onClick=()=>{isNonBlankIdentity(this.entityId)&&this.emit("lr-entity-activate",{entityId:this.entityId})},this.onDblClick=()=>{this.emitOpen()}}static{this.defaultStrings={...super.defaultStrings,entityChipWithType:LYRA_DEFAULT_entityChipWithType,untitledEntity:LYRA_DEFAULT_untitledEntity}}static{this.styles=[LyraElement.styles,styles]}willUpdate(changed){super.willUpdate(changed),this.hasUpdated||(this.hasPreviewSlot=Array.from(this.childNodes).some(isRealPreviewNode))}updated(changed){super.updated(changed),changed.has("popoverOpen")&&(this.cleanupPositioner?.(),this.cleanupPositioner=void 0,this.popoverOpen&&this.buttonEl&&this.popoverEl&&(this.cleanupPositioner=place(this.buttonEl,this.popoverEl,{placement:"top-start"})))}disconnectedCallback(){super.disconnectedCallback(),this.cleanupPositioner?.(),this.cleanupPositioner=void 0,clearTimeout(this.hideTimer),this.hideTimer=void 0,this.popoverOpen=!1,this.hovering=!1,this.focused=!1}get accessibleLabel(){const label=this.text.trim()===""?this.localize("untitledEntity"):this.text,typeText=this.typeLabel?.trim()||this.type.trim();return typeText?this.localize("entityChipWithType",void 0,{label,type:typeText}):label}showPreview(){this.hasPreviewSlot&&(clearTimeout(this.hideTimer),this.hideTimer=void 0,!this.popoverOpen&&(this.popoverOpen=!0))}scheduleHidePreview(){!this.popoverOpen||this.hovering||this.focused||(clearTimeout(this.hideTimer),this.hideTimer=setTimeout(()=>{this.hideTimer=void 0,this.popoverOpen=!1},HIDE_DELAY_MS))}hidePreviewNow(){clearTimeout(this.hideTimer),this.hideTimer=void 0,this.popoverOpen&&(this.popoverOpen=!1)}emitOpen(){isNonBlankIdentity(this.entityId)&&this.emit("lr-entity-open",{entityId:this.entityId})}render(){return html`
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,nothing}from"lit";import{property,state,query}from"lit/decorators.js";import{LyraElement}from"../../../internal/lyra-element.js";import{isNonBlankIdentity}from"../retrieval-identity.js";import{place}from"../../../internal/positioner.js";import{nextId}from"../../../internal/a11y.js";import{SlotPresenceController}from"../../../internal/slot-presence-controller.js";import{styles}from"./entity-chip.styles.js";import{LYRA_DEFAULT_entityChipWithType,LYRA_DEFAULT_untitledEntity}from"../../../internal/default-strings.generated.js";const HIDE_DELAY_MS=200;class LyraEntityChip extends LyraElement{constructor(){super(...arguments),this.entityId="",this.text="",this.type="",this.popoverOpen=!1,this.popoverId=nextId("entity-chip-popover"),this.slotPresence=new SlotPresenceController(this),this.hovering=!1,this.focused=!1,this.onPointerEnter=()=>{this.hovering=!0,this.showPreview()},this.onPointerLeave=()=>{this.hovering=!1,this.scheduleHidePreview()},this.onFocusIn=()=>{this.focused=!0,this.showPreview()},this.onFocusOut=()=>{this.focused=!1,!this.hovering&&this.hidePreviewNow()},this.onKeyDown=e=>{if(e.key==="Escape"&&this.popoverOpen){e.stopPropagation(),this.hidePreviewNow();return}e.key===" "&&!e.repeat&&e.target===this.buttonEl&&(e.preventDefault(),this.emitOpen())},this.onClick=()=>{isNonBlankIdentity(this.entityId)&&this.emit("lr-entity-select",{entityId:this.entityId})},this.onDblClick=()=>{this.emitOpen()}}static{this.defaultStrings={...super.defaultStrings,entityChipWithType:LYRA_DEFAULT_entityChipWithType,untitledEntity:LYRA_DEFAULT_untitledEntity}}static{this.styles=[LyraElement.styles,styles]}get hasPreviewSlot(){return this.slotPresence.has()}willUpdate(changed){super.willUpdate(changed),this.popoverOpen&&!this.hasPreviewSlot&&this.hidePreviewNow()}updated(changed){super.updated(changed),changed.has("popoverOpen")&&(this.cleanupPositioner?.(),this.cleanupPositioner=void 0,this.popoverOpen&&this.buttonEl&&this.popoverEl&&(this.cleanupPositioner=place(this.buttonEl,this.popoverEl,{placement:"top-start"})))}disconnectedCallback(){super.disconnectedCallback(),this.cleanupPositioner?.(),this.cleanupPositioner=void 0,clearTimeout(this.hideTimer),this.hideTimer=void 0,this.popoverOpen=!1,this.hovering=!1,this.focused=!1}get accessibleLabel(){const label=this.text.trim()===""?this.localize("untitledEntity"):this.text,typeText=this.typeLabel?.trim()||this.type.trim();return typeText?this.localize("entityChipWithType",void 0,{label,type:typeText}):label}showPreview(){this.hasPreviewSlot&&(clearTimeout(this.hideTimer),this.hideTimer=void 0,!this.popoverOpen&&(this.popoverOpen=!0))}scheduleHidePreview(){!this.popoverOpen||this.hovering||this.focused||(clearTimeout(this.hideTimer),this.hideTimer=setTimeout(()=>{this.hideTimer=void 0,this.popoverOpen=!1},HIDE_DELAY_MS))}hidePreviewNow(){clearTimeout(this.hideTimer),this.hideTimer=void 0,this.popoverOpen&&(this.popoverOpen=!1)}emitOpen(){isNonBlankIdentity(this.entityId)&&this.emit("lr-entity-open",{entityId:this.entityId})}render(){return html`
2
2
  <span
3
3
  class="wrapper"
4
4
  @pointerenter=${this.onPointerEnter}
@@ -25,7 +25,7 @@ var __decorate=function(decorators,target,key,desc){var c=arguments.length,r=c<3
25
25
  inert
26
26
  ?hidden=${!this.popoverOpen}
27
27
  >
28
- <slot @slotchange=${this.onSlotChange}></slot>
28
+ <slot></slot>
29
29
  </div>
30
30
  </span>
31
- `}}__decorate([property({attribute:"entity-id"})],LyraEntityChip.prototype,"entityId",void 0),__decorate([property()],LyraEntityChip.prototype,"text",void 0),__decorate([property({reflect:!0})],LyraEntityChip.prototype,"type",void 0),__decorate([property({attribute:"type-label"})],LyraEntityChip.prototype,"typeLabel",void 0),__decorate([state()],LyraEntityChip.prototype,"hasPreviewSlot",void 0),__decorate([state()],LyraEntityChip.prototype,"popoverOpen",void 0),__decorate([query('[part="base"]')],LyraEntityChip.prototype,"buttonEl",void 0),__decorate([query('[part="popover"]')],LyraEntityChip.prototype,"popoverEl",void 0);export{LyraEntityChip};
31
+ `}}__decorate([property({attribute:"entity-id"})],LyraEntityChip.prototype,"entityId",void 0),__decorate([property()],LyraEntityChip.prototype,"text",void 0),__decorate([property({reflect:!0})],LyraEntityChip.prototype,"type",void 0),__decorate([property({attribute:"type-label"})],LyraEntityChip.prototype,"typeLabel",void 0),__decorate([state()],LyraEntityChip.prototype,"popoverOpen",void 0),__decorate([query('[part="base"]')],LyraEntityChip.prototype,"buttonEl",void 0),__decorate([query('[part="popover"]')],LyraEntityChip.prototype,"popoverEl",void 0);export{LyraEntityChip};
@@ -9,9 +9,6 @@ import{css}from"lit";const styles=css`
9
9
  [part='base'] {
10
10
  display: inline-flex;
11
11
  align-items: center;
12
- /* Both axes: a short entity label is narrower than the min-inline-size hit-area floor below,
13
- and the default justify-content (normal => flex-start) left it hugging the leading edge of
14
- an otherwise symmetric pill. A no-op once the label fills the floor. */
15
12
  justify-content: center;
16
13
  box-sizing: border-box;
17
14
  min-inline-size: var(--lr-icon-button-size);
@@ -27,14 +24,14 @@ import{css}from"lit";const styles=css`
27
24
  cursor: pointer;
28
25
  -webkit-tap-highlight-color: transparent;
29
26
  }
30
- [part='base']:hover {
27
+ [part='base']:disabled {
28
+ opacity: var(--lr-opacity-disabled);
29
+ cursor: not-allowed;
30
+ }
31
+ [part='base']:not(:disabled):hover {
31
32
  background: color-mix(in srgb, var(--lr-entity-chip-color, var(--lr-color-brand)) 16%, var(--lr-entity-chip-bg, var(--lr-color-brand-quiet)));
32
33
  }
33
- /* Pressed is the hovered fill pushed one further step toward --lr-color-mix-partner, not a larger
34
- dose of the chip's own accent: the accent is already at 16% here, and stepping it to
35
- --lr-color-mix-active (22%) would be a six-point move nobody can see. Mixing toward the partner
36
- moves the fill regardless of which per-entity accent the chip was given. */
37
- [part='base']:active {
34
+ [part='base']:not(:disabled):active {
38
35
  background: color-mix(
39
36
  in oklab,
40
37
  color-mix(in srgb, var(--lr-entity-chip-color, var(--lr-color-brand)) 16%, var(--lr-entity-chip-bg, var(--lr-color-brand-quiet))),
@@ -1,9 +1,13 @@
1
1
  import { type TemplateResult } from 'lit';
2
2
  import { LyraElement } from '../../../internal/lyra-element.js';
3
3
  import type { LyraEntity } from '../entity-card/entity-card.class.js';
4
+ export type { LyraEntity } from '../entity-card/entity-card.class.js';
4
5
  import type { LyraNeighborListEventMap, LyraNeighborRow } from '../neighbor-list/neighbor-list.class.js';
6
+ export type { LyraNeighborRow } from '../neighbor-list/neighbor-list.class.js';
5
7
  import type { LyraChunk, LyraChunkInspectorEventMap } from '../chunk-inspector/chunk-inspector.class.js';
8
+ export type { LyraChunk } from '../chunk-inspector/chunk-inspector.class.js';
6
9
  import type { LyraProvenance, LyraProvenancePanelEventMap } from '../provenance-panel/provenance-panel.class.js';
10
+ export type { LyraProvenance } from '../provenance-panel/provenance-panel.class.js';
7
11
  import type { StatRow } from '../../data/stat/stat.class.js';
8
12
  import type { LyraVariant } from '../../../internal/variants.js';
9
13
  import type { LyraNodeTypeStyle } from '../../../internal/node-type-style.js';
@@ -37,7 +41,15 @@ export interface LyraEntityDossierConfidence {
37
41
  /** Breakdown rows (e.g. per-signal sub-scores) -- see `lr-stat.rows`. */
38
42
  readonly rows?: readonly StatRow[];
39
43
  }
40
- export interface LyraEntityDossierEventMap extends Omit<LyraNeighborListEventMap, 'lr-entity-activate'>, LyraChunkInspectorEventMap, Omit<LyraProvenancePanelEventMap, 'lr-entity-activate'>, Omit<LyraTabGroupEventMap, 'lr-tab-show'> {
44
+ export interface LyraEntityDossierEventMap extends Omit<LyraNeighborListEventMap, 'lr-entity-select'>, LyraChunkInspectorEventMap, Omit<LyraProvenancePanelEventMap, 'lr-entity-activate' | 'lr-entity-select'>, Omit<LyraTabGroupEventMap, 'lr-tab-show'> {
45
+ /** Canonical name for the "user picked this entity" gesture, surfaced unchanged from the
46
+ * embedded entity card or neighbor list. No composed child emits this with an
47
+ * `occurrenceIndex` (only the embedded provenance panel's own `lr-entity-activate` does, via
48
+ * its community card and relationship path strip), so unlike that one this stays the plain
49
+ * shape. */
50
+ 'lr-entity-select': CustomEvent<{
51
+ entityId: string;
52
+ }>;
41
53
  'lr-entity-activate': CustomEvent<{
42
54
  entityId: string;
43
55
  occurrenceIndex?: number;
@@ -52,8 +64,8 @@ export interface LyraEntityDossierEventMap extends Omit<LyraNeighborListEventMap
52
64
  * Supporting chunks (`lr-chunk-inspector`), and Provenance (`lr-provenance-panel`). Pure layout —
53
65
  * it never fetches, ranks, or mutates graph/document state, and never re-renders what any of those
54
66
  * five composed components already render themselves; every one of their own events (`
55
- * lr-entity-activate`, `lr-node-expand`, `lr-chunk-open`, `lr-expand`, `lr-toggle`, `lr-tab-show`,
56
- * plus the provenance panel's own conduit set — `lr-entity-open`, `lr-drill`,
67
+ * lr-entity-select`, `lr-entity-activate`, `lr-node-expand`, `lr-chunk-open`, `lr-expand`,
68
+ * `lr-toggle`, `lr-tab-show`, plus the provenance panel's own conduit set — `lr-entity-open`, `lr-drill`,
57
69
  * `lr-relation-activate`) bubbles through unmodified (`composed: true` crosses this component's own
58
70
  * shadow boundary with no re-dispatch needed).
59
71
  *
@@ -79,8 +91,10 @@ export interface LyraEntityDossierEventMap extends Omit<LyraNeighborListEventMap
79
91
  * collection and reassign it after changes; mutating the assigned array does not update the view.
80
92
  *
81
93
  * @customElement lr-entity-dossier
82
- * @event lr-entity-activate - Surfaced unchanged from the embedded entity card or neighbor list.
83
- * `detail: { entityId, occurrenceIndex? }`.
94
+ * @event lr-entity-select - Surfaced unchanged from the embedded entity card or neighbor list.
95
+ * `detail: { entityId }`.
96
+ * @event lr-entity-activate - Surfaced unchanged from the embedded provenance panel's own
97
+ * community card or relationship path strip. `detail: { entityId, occurrenceIndex? }`.
84
98
  * @event lr-node-expand - Surfaced unchanged from the embedded neighbor list.
85
99
  * `detail: { nodeId }`.
86
100
  * @event lr-chunk-open - Surfaced unchanged from the embedded chunk inspector.
@@ -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,nothing}from"lit";import{property,state}from"lit/decorators.js";import{hostAriaLabel}from"../../../internal/a11y.js";import{LyraElement}from"../../../internal/lyra-element.js";import"../entity-card/entity-card.class.js";import"../neighbor-list/neighbor-list.class.js";import"../chunk-inspector/chunk-inspector.class.js";import"../provenance-panel/provenance-panel.class.js";import"../../data/stat/stat.class.js";import"../../layout/tab-group/tab-group.class.js";import"../../overlays/empty/empty.class.js";import{styles}from"./entity-dossier.styles.js";import{trueDefaultBooleanConverter}from"../../../internal/converters.js";import{LYRA_DEFAULT_chunkInspectorLabel,LYRA_DEFAULT_collapse,LYRA_DEFAULT_details,LYRA_DEFAULT_fieldRequired,LYRA_DEFAULT_map,LYRA_DEFAULT_navigation,LYRA_DEFAULT_neighborListLabel,LYRA_DEFAULT_noData,LYRA_DEFAULT_open,LYRA_DEFAULT_progress,LYRA_DEFAULT_provenancePanelLabel,LYRA_DEFAULT_restore,LYRA_DEFAULT_search,LYRA_DEFAULT_select}from"../../../internal/default-strings.generated.js";class LyraEntityDossier extends LyraElement{constructor(){super(...arguments),this.entity=null,this.types=[],this.communityLabel="",this.showFocusButton=!0,this.confidence=null,this.neighbors=[],this.groupByRelation=!1,this.expandable=!1,this.chunks=[],this.thresholds={high:.75,medium:.5},this.provenance=null,this.accessibleLabel=null,this.activeTab="relationships",this.onTabsChange=e=>{e.stopPropagation();const tabId=e.detail.name;this.activeTab=tabId,this.emit("lr-tab-show",{tabId})}}static{this.defaultStrings={...super.defaultStrings,chunkInspectorLabel:LYRA_DEFAULT_chunkInspectorLabel,collapse:LYRA_DEFAULT_collapse,details:LYRA_DEFAULT_details,fieldRequired:LYRA_DEFAULT_fieldRequired,map:LYRA_DEFAULT_map,navigation:LYRA_DEFAULT_navigation,neighborListLabel:LYRA_DEFAULT_neighborListLabel,noData:LYRA_DEFAULT_noData,open:LYRA_DEFAULT_open,progress:LYRA_DEFAULT_progress,provenancePanelLabel:LYRA_DEFAULT_provenancePanelLabel,restore:LYRA_DEFAULT_restore,search:LYRA_DEFAULT_search,select:LYRA_DEFAULT_select}}static{this.ownedCollectionProperties=Object.freeze(["entity","confidence","types","neighbors","chunks","provenance"])}static{this.styles=[LyraElement.styles,styles]}render(){if(!this.entity)return html`<div part="base">
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,nothing}from"lit";import{property,state}from"lit/decorators.js";import{hostAriaLabel}from"../../../internal/a11y.js";import{LyraElement}from"../../../internal/lyra-element.js";import"../entity-card/entity-card.class.js";import"../neighbor-list/neighbor-list.class.js";import"../chunk-inspector/chunk-inspector.class.js";import"../provenance-panel/provenance-panel.class.js";import"../../data/stat/stat.class.js";import"../../layout/tab-group/tab-group.class.js";import"../../overlays/empty/empty.class.js";import{styles}from"./entity-dossier.styles.js";import{trueDefaultBooleanConverter}from"../../../internal/converters.js";import{LYRA_DEFAULT_chunkInspectorLabel,LYRA_DEFAULT_collapse,LYRA_DEFAULT_details,LYRA_DEFAULT_fieldRequired,LYRA_DEFAULT_map,LYRA_DEFAULT_navigation,LYRA_DEFAULT_neighborListLabel,LYRA_DEFAULT_noData,LYRA_DEFAULT_open,LYRA_DEFAULT_popover,LYRA_DEFAULT_progress,LYRA_DEFAULT_provenancePanelLabel,LYRA_DEFAULT_restore,LYRA_DEFAULT_search,LYRA_DEFAULT_select}from"../../../internal/default-strings.generated.js";class LyraEntityDossier extends LyraElement{constructor(){super(...arguments),this.entity=null,this.types=[],this.communityLabel="",this.showFocusButton=!0,this.confidence=null,this.neighbors=[],this.groupByRelation=!1,this.expandable=!1,this.chunks=[],this.thresholds={high:.75,medium:.5},this.provenance=null,this.accessibleLabel=null,this.activeTab="relationships",this.onTabsChange=e=>{e.stopPropagation();const tabId=e.detail.name;this.activeTab=tabId,this.emit("lr-tab-show",{tabId})}}static{this.defaultStrings={...super.defaultStrings,chunkInspectorLabel:LYRA_DEFAULT_chunkInspectorLabel,collapse:LYRA_DEFAULT_collapse,details:LYRA_DEFAULT_details,fieldRequired:LYRA_DEFAULT_fieldRequired,map:LYRA_DEFAULT_map,navigation:LYRA_DEFAULT_navigation,neighborListLabel:LYRA_DEFAULT_neighborListLabel,noData:LYRA_DEFAULT_noData,open:LYRA_DEFAULT_open,popover:LYRA_DEFAULT_popover,progress:LYRA_DEFAULT_progress,provenancePanelLabel:LYRA_DEFAULT_provenancePanelLabel,restore:LYRA_DEFAULT_restore,search:LYRA_DEFAULT_search,select:LYRA_DEFAULT_select}}static{this.ownedCollectionProperties=Object.freeze(["entity","confidence","types","neighbors","chunks","provenance"])}static{this.styles=[LyraElement.styles,styles]}render(){if(!this.entity)return html`<div part="base">
2
2
  <lr-empty part="empty" heading=${this.localize("noData")}></lr-empty>
3
3
  </div>`;const entity=this.entity,c=this.confidence,tabsLabel=hostAriaLabel(this)===null?this.accessibleLabel??nothing:nothing;return html`
4
4
  <div part="base">
@@ -755,6 +755,11 @@ export declare class LyraGraph extends LyraElement<LyraGraphEventMap> {
755
755
  /** World-space midpoint of a link, offset EDGE_LABEL_OFFSET_PX perpendicular to the segment
756
756
  * (horizontal, unrotated text — rotated edge-label text is a readability and RTL hazard). */
757
757
  private edgeLabelPosition;
758
+ /** The edge-label font size in used pixels: `--lr-font-size-2xs` resolved against the live root
759
+ * (rem) or own (em) font size through the shared `resolveCssLength()`, so canvas text matches
760
+ * what the same token paints in CSS on a page that isn't at the default 16px root size. A token
761
+ * in a unit that has no used pixel length here (`ch`, `pt`, `calc()`) falls back to
762
+ * DEFAULT_EDGE_LABEL_FONT_PX rather than being measured as raw pixels. */
758
763
  private edgeLabelFontPx;
759
764
  private edgeLabelContext;
760
765
  private edgeLabelWidth;