@aceshooting/lyra-ui 9.1.1 → 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 (578) hide show
  1. package/CHANGELOG.md +597 -0
  2. package/custom-elements.json +1 -1
  3. package/dist/cli/migrate-wa.mjs +52 -0
  4. package/dist/cli/migration-contract.json +1 -1
  5. package/dist/components/agent-tools/activity-feed/activity-feed.class.js +1 -1
  6. package/dist/components/agent-tools/activity-feed/activity-feed.styles.js +0 -16
  7. package/dist/components/agent-tools/agent-eval-dashboard/agent-eval-dashboard.class.js +1 -1
  8. package/dist/components/agent-tools/agent-eval-dashboard/agent-eval-dashboard.styles.js +7 -5
  9. package/dist/components/agent-tools/agent-run/agent-run.class.js +2 -2
  10. package/dist/components/agent-tools/agent-run/agent-run.styles.js +0 -13
  11. package/dist/components/agent-tools/agent-trace/agent-trace.styles.js +7 -4
  12. package/dist/components/agent-tools/approval-queue/approval-queue.styles.js +7 -5
  13. package/dist/components/agent-tools/artifact-panel/artifact-panel.styles.js +0 -3
  14. package/dist/components/agent-tools/browser-frame/browser-frame.styles.js +3 -5
  15. package/dist/components/agent-tools/commit-card/commit-card.styles.js +0 -10
  16. package/dist/components/agent-tools/compare-panel/compare-panel.styles.js +11 -6
  17. package/dist/components/agent-tools/confirm-bar/confirm-bar.styles.js +0 -46
  18. package/dist/components/agent-tools/eval-dataset/eval-dataset.styles.js +0 -7
  19. package/dist/components/agent-tools/evaluation-run/evaluation-run.class.js +2 -2
  20. package/dist/components/agent-tools/prompt-studio/prompt-studio.styles.js +0 -15
  21. package/dist/components/agent-tools/result-card/result-card.styles.js +0 -7
  22. package/dist/components/agent-tools/result-card/result-field.styles.js +0 -5
  23. package/dist/components/agent-tools/schema-viewer/schema-viewer.styles.js +0 -3
  24. package/dist/components/agent-tools/span-waterfall/span-waterfall.styles.js +0 -15
  25. package/dist/components/agent-tools/stack-trace/stack-trace.styles.js +0 -20
  26. package/dist/components/agent-tools/subagent-panel/subagent-panel.class.js +2 -2
  27. package/dist/components/agent-tools/subagent-panel/subagent-panel.styles.js +0 -3
  28. package/dist/components/agent-tools/task-list/task-list.styles.js +0 -15
  29. package/dist/components/agent-tools/terminal/terminal.class.d.ts +11 -6
  30. package/dist/components/agent-tools/terminal/terminal.class.js +4 -4
  31. package/dist/components/agent-tools/terminal/terminal.styles.js +0 -46
  32. package/dist/components/agent-tools/test-results/test-results.class.js +2 -2
  33. package/dist/components/agent-tools/test-results/test-results.styles.js +0 -5
  34. package/dist/components/agent-tools/thinking-panel/thinking-panel.styles.js +0 -41
  35. package/dist/components/agent-tools/tool-approval-dialog/tool-approval-dialog.styles.js +0 -41
  36. package/dist/components/agent-tools/tool-call-chip/tool-call-chip.styles.js +0 -30
  37. package/dist/components/agent-tools/tool-param-form/tool-param-form.class.js +6 -6
  38. package/dist/components/agent-tools/tool-param-form/tool-param-form.styles.js +0 -5
  39. package/dist/components/agent-tools/tool-result-dialog/tool-result-dialog.styles.js +0 -20
  40. package/dist/components/agent-tools/tool-result-view/tool-result-view.styles.js +0 -4
  41. package/dist/components/agent-tools/tool-select-dialog/tool-select-dialog.styles.js +0 -21
  42. package/dist/components/agent-tools/trace-tree/trace-tree.styles.js +7 -31
  43. package/dist/components/charts/chart/box-plot.styles.js +0 -20
  44. package/dist/components/charts/chart/chart-colors.d.ts +1 -1
  45. package/dist/components/charts/chart/chart-colors.js +1 -1
  46. package/dist/components/charts/chart/chart-core-loader.d.ts +1 -0
  47. package/dist/components/charts/chart/chart-core-loader.js +1 -1
  48. package/dist/components/charts/chart/chart-feature-loader.d.ts +35 -0
  49. package/dist/components/charts/chart/chart-feature-loader.js +1 -1
  50. package/dist/components/charts/chart/chart.class.d.ts +93 -0
  51. package/dist/components/charts/chart/chart.class.js +3 -3
  52. package/dist/components/charts/chart/chart.styles.js +0 -27
  53. package/dist/components/charts/chart/lite-chart.class.d.ts +20 -1
  54. package/dist/components/charts/chart/lite-chart.class.js +4 -4
  55. package/dist/components/charts/chart/lite-chart.styles.js +0 -27
  56. package/dist/components/conversation/agent-workspace/agent-workspace.class.d.ts +20 -0
  57. package/dist/components/conversation/agent-workspace/agent-workspace.class.js +3 -1
  58. package/dist/components/conversation/agent-workspace/agent-workspace.styles.js +3 -0
  59. package/dist/components/conversation/audio-visualizer/audio-visualizer.styles.js +0 -7
  60. package/dist/components/conversation/branch-picker/branch-picker.styles.js +0 -3
  61. package/dist/components/conversation/chat-composer/chat-composer.styles.js +0 -51
  62. package/dist/components/conversation/chat-message/chat-message.styles.js +7 -35
  63. package/dist/components/conversation/chat-viewport/chat-viewport.class.js +1 -1
  64. package/dist/components/conversation/chat-viewport/chat-viewport.styles.js +0 -33
  65. package/dist/components/conversation/checkpoint/checkpoint.class.js +1 -1
  66. package/dist/components/conversation/checkpoint/checkpoint.styles.js +0 -3
  67. package/dist/components/conversation/code-block/code-block-shared.d.ts +5 -2
  68. package/dist/components/conversation/code-block/code-block.class.js +1 -1
  69. package/dist/components/conversation/code-block/code-block.styles.js +4 -95
  70. package/dist/components/conversation/code-block/code-loader.d.ts +11 -0
  71. package/dist/components/conversation/code-block/code-loader.js +1 -1
  72. package/dist/components/conversation/code-block/shiki-types.d.ts +12 -0
  73. package/dist/components/conversation/code-block/shiki-types.js +1 -1
  74. package/dist/components/conversation/conversation-item/conversation-item.styles.js +8 -54
  75. package/dist/components/conversation/generation-metrics/generation-metrics.class.js +2 -2
  76. package/dist/components/conversation/generation-metrics/generation-metrics.styles.js +0 -17
  77. package/dist/components/conversation/markdown/markdown-base.class.js +1 -1
  78. package/dist/components/conversation/markdown/markdown.styles.js +0 -41
  79. package/dist/components/conversation/message-actions/message-actions.styles.js +0 -3
  80. package/dist/components/conversation/message-feedback/message-feedback.styles.js +0 -35
  81. package/dist/components/conversation/message-parts/message-parts.class.d.ts +1 -1
  82. package/dist/components/conversation/message-parts/message-parts.styles.js +0 -5
  83. package/dist/components/conversation/model-select/model-select.class.js +3 -3
  84. package/dist/components/conversation/model-select/model-select.styles.js +12 -47
  85. package/dist/components/conversation/model-settings-panel/model-settings-panel.styles.js +0 -6
  86. package/dist/components/conversation/prompt-input/prompt-input.class.d.ts +3 -0
  87. package/dist/components/conversation/prompt-input/prompt-input.styles.js +0 -10
  88. package/dist/components/conversation/push-to-talk/push-to-talk.styles.js +0 -8
  89. package/dist/components/conversation/selection-toolbar/selection-toolbar.styles.js +1 -11
  90. package/dist/components/conversation/stream-status/stream-status.styles.js +0 -16
  91. package/dist/components/conversation/streaming-text/streaming-text.styles.js +0 -15
  92. package/dist/components/conversation/suggestion-chips/suggestion-chips.styles.js +0 -5
  93. package/dist/components/conversation/thread-list/thread-list.styles.js +0 -23
  94. package/dist/components/conversation/transcript-feed/transcript-feed.class.d.ts +16 -4
  95. package/dist/components/conversation/transcript-feed/transcript-feed.class.js +1 -1
  96. package/dist/components/conversation/transcript-feed/transcript-feed.styles.js +0 -1
  97. package/dist/components/conversation/typing-indicator/typing-indicator.styles.js +0 -23
  98. package/dist/components/conversation/usage-badge/usage-badge.styles.js +0 -3
  99. package/dist/components/conversation/voice-picker/voice-picker.class.js +3 -3
  100. package/dist/components/conversation/voice-picker/voice-picker.styles.js +9 -29
  101. package/dist/components/conversation/widget-renderer/resolve.d.ts +2 -0
  102. package/dist/components/conversation/widget-renderer/resolve.js +1 -1
  103. package/dist/components/data/calendar/calendar.class.d.ts +15 -2
  104. package/dist/components/data/calendar/calendar.class.js +2 -2
  105. package/dist/components/data/calendar/calendar.styles.js +2 -28
  106. package/dist/components/data/condition-builder/condition-builder.class.d.ts +10 -6
  107. package/dist/components/data/condition-builder/condition-builder.class.js +2 -2
  108. package/dist/components/data/condition-builder/condition-builder.styles.js +0 -6
  109. package/dist/components/data/context-meter/context-meter.styles.js +0 -24
  110. package/dist/components/data/data-grid/data-grid.class.js +3 -3
  111. package/dist/components/data/data-grid/data-grid.styles.js +0 -22
  112. package/dist/components/data/document-library/document-library.class.js +2 -2
  113. package/dist/components/data/document-library/document-library.styles.js +0 -4
  114. package/dist/components/data/env-list/env-list.class.js +1 -1
  115. package/dist/components/data/env-list/env-list.styles.js +7 -4
  116. package/dist/components/data/file-tree/file-tree.class.d.ts +12 -0
  117. package/dist/components/data/flow-canvas/flow-canvas.styles.js +12 -19
  118. package/dist/components/data/flow-controls/flow-controls.class.js +2 -2
  119. package/dist/components/data/flow-controls/flow-controls.styles.js +3 -36
  120. package/dist/components/data/flow-minimap/flow-minimap.class.js +1 -1
  121. package/dist/components/data/flow-minimap/flow-minimap.styles.js +0 -9
  122. package/dist/components/data/flow-node/flow-node.styles.js +0 -23
  123. package/dist/components/data/flow-run-status/flow-run-status.class.js +1 -1
  124. package/dist/components/data/flow-run-status/flow-run-status.styles.js +0 -7
  125. package/dist/components/data/graph-query-builder/graph-query-builder.class.d.ts +0 -7
  126. package/dist/components/data/graph-query-builder/graph-query-builder.class.js +1 -1
  127. package/dist/components/data/graph-query-builder/graph-query-builder.styles.js +0 -10
  128. package/dist/components/data/heatmap/heatmap-scale.d.ts +20 -0
  129. package/dist/components/data/heatmap/heatmap-scale.js +1 -1
  130. package/dist/components/data/heatmap/heatmap.class.d.ts +84 -1
  131. package/dist/components/data/heatmap/heatmap.class.js +2 -2
  132. package/dist/components/data/heatmap/heatmap.styles.js +0 -54
  133. package/dist/components/data/pagination/pagination.styles.js +23 -46
  134. package/dist/components/data/sequence-strip/sequence-strip.class.d.ts +34 -1
  135. package/dist/components/data/sequence-strip/sequence-strip.class.js +5 -2
  136. package/dist/components/data/sequence-strip/sequence-strip.styles.js +14 -20
  137. package/dist/components/data/sparkline/sparkline.class.js +1 -1
  138. package/dist/components/data/stat/stat.styles.js +0 -67
  139. package/dist/components/data/table/table.class.d.ts +42 -3
  140. package/dist/components/data/table/table.class.js +4 -4
  141. package/dist/components/data/table/table.styles.js +20 -91
  142. package/dist/components/data/timeline/timeline-item.styles.js +0 -30
  143. package/dist/components/data/timeline/timeline.class.d.ts +89 -1
  144. package/dist/components/data/timeline/timeline.class.js +2 -2
  145. package/dist/components/data/timeline/timeline.styles.js +111 -31
  146. package/dist/components/data/tree/tree-item.styles.js +1 -28
  147. package/dist/components/data/tree/tree.class.js +2 -2
  148. package/dist/components/data/tree/tree.styles.js +0 -6
  149. package/dist/components/data/word-cloud/word-cloud.styles.js +0 -5
  150. package/dist/components/forms/button/button.class.js +1 -1
  151. package/dist/components/forms/button/button.styles.js +0 -105
  152. package/dist/components/forms/checkbox/checkbox.class.d.ts +3 -0
  153. package/dist/components/forms/checkbox/checkbox.class.js +1 -1
  154. package/dist/components/forms/checkbox/checkbox.styles.js +0 -39
  155. package/dist/components/forms/checkbox-group/checkbox-group.class.d.ts +21 -2
  156. package/dist/components/forms/checkbox-group/checkbox-group.class.js +1 -1
  157. package/dist/components/forms/checkbox-group/checkbox-group.styles.js +0 -18
  158. package/dist/components/forms/code-editor/code-editor.styles.js +0 -30
  159. package/dist/components/forms/color-picker/color-picker.class.js +2 -2
  160. package/dist/components/forms/color-picker/color-picker.styles.js +0 -69
  161. package/dist/components/forms/combobox/combobox.class.js +2 -2
  162. package/dist/components/forms/combobox/combobox.styles.js +22 -111
  163. package/dist/components/forms/combobox/option.styles.js +7 -1
  164. package/dist/components/forms/date-picker/date-input.class.js +1 -1
  165. package/dist/components/forms/date-picker/date-input.styles.js +12 -67
  166. package/dist/components/forms/date-picker/date-picker.class.d.ts +1 -0
  167. package/dist/components/forms/date-picker/date-picker.class.js +22 -20
  168. package/dist/components/forms/date-picker/date-picker.styles.js +36 -29
  169. package/dist/components/forms/emoji-picker/emoji-data-loader.d.ts +6 -3
  170. package/dist/components/forms/emoji-picker/emoji-data-loader.js +1 -1
  171. package/dist/components/forms/emoji-picker/emoji-picker.class.d.ts +8 -1
  172. package/dist/components/forms/emoji-picker/emoji-picker.class.js +1 -1
  173. package/dist/components/forms/emoji-picker/emoji-picker.styles.js +3 -41
  174. package/dist/components/forms/icon-button/icon-button.class.js +1 -1
  175. package/dist/components/forms/icon-button/icon-button.styles.js +0 -16
  176. package/dist/components/forms/input/input.styles.js +0 -54
  177. package/dist/components/forms/input/number-input.styles.d.ts +4 -5
  178. package/dist/components/forms/input/number-input.styles.js +0 -11
  179. package/dist/components/forms/input/time-input-shared.d.ts +11 -0
  180. package/dist/components/forms/input/time-input-shared.js +1 -1
  181. package/dist/components/forms/input/time-input.class.d.ts +11 -2
  182. package/dist/components/forms/input/time-input.class.js +1 -1
  183. package/dist/components/forms/input/time-input.styles.js +0 -6
  184. package/dist/components/forms/locale-picker/locale-picker.class.js +2 -2
  185. package/dist/components/forms/locale-picker/locale-picker.styles.js +1 -26
  186. package/dist/components/forms/otp-input/otp-input.class.js +3 -3
  187. package/dist/components/forms/otp-input/otp-input.styles.js +0 -16
  188. package/dist/components/forms/phone-input/phone-input.class.d.ts +9 -1
  189. package/dist/components/forms/phone-input/phone-input.class.js +2 -2
  190. package/dist/components/forms/phone-input/phone-input.styles.js +0 -37
  191. package/dist/components/forms/radio/radio-button.styles.js +1 -30
  192. package/dist/components/forms/radio/radio-group.styles.js +0 -4
  193. package/dist/components/forms/radio/radio.styles.js +0 -44
  194. package/dist/components/forms/rubric-form/rubric-form.styles.js +0 -5
  195. package/dist/components/forms/select/select.class.js +1 -1
  196. package/dist/components/forms/select/select.styles.js +14 -114
  197. package/dist/components/forms/slider/slider.styles.js +0 -55
  198. package/dist/components/forms/swatch-picker/swatch-picker.class.d.ts +0 -11
  199. package/dist/components/forms/swatch-picker/swatch-picker.class.js +2 -2
  200. package/dist/components/forms/swatch-picker/swatch-picker.styles.js +0 -77
  201. package/dist/components/forms/switch/switch.class.d.ts +3 -0
  202. package/dist/components/forms/switch/switch.class.js +1 -1
  203. package/dist/components/forms/switch/switch.styles.js +0 -37
  204. package/dist/components/forms/textarea/textarea.styles.js +0 -28
  205. package/dist/components/forms/time-range/time-range.styles.js +12 -84
  206. package/dist/components/forms/token-input/token-input.class.d.ts +23 -9
  207. package/dist/components/forms/token-input/token-input.class.js +1 -1
  208. package/dist/components/forms/token-input/token-input.styles.js +1 -54
  209. package/dist/components/layout/app-rail/app-rail-item.class.js +2 -2
  210. package/dist/components/layout/app-rail/app-rail-item.styles.js +0 -13
  211. package/dist/components/layout/app-rail/app-rail.class.d.ts +5 -0
  212. package/dist/components/layout/app-rail/app-rail.class.js +1 -1
  213. package/dist/components/layout/app-rail/app-rail.styles.js +0 -46
  214. package/dist/components/layout/button-group/button-group.styles.js +0 -6
  215. package/dist/components/layout/card/card.class.d.ts +12 -0
  216. package/dist/components/layout/card/card.styles.js +3 -11
  217. package/dist/components/layout/carousel/carousel.styles.js +0 -1
  218. package/dist/components/layout/command-palette/command-palette.class.d.ts +8 -0
  219. package/dist/components/layout/command-palette/command-palette.class.js +3 -1
  220. package/dist/components/layout/command-palette/command-palette.styles.js +1 -13
  221. package/dist/components/layout/control-group/control-group.styles.js +0 -7
  222. package/dist/components/layout/dashboard-grid/dashboard-grid.styles.js +6 -25
  223. package/dist/components/layout/details/accordion.class.d.ts +13 -0
  224. package/dist/components/layout/details/accordion.class.js +1 -1
  225. package/dist/components/layout/details/details.class.js +1 -1
  226. package/dist/components/layout/details/details.styles.js +0 -12
  227. package/dist/components/layout/dock-panel/dock-panel.styles.js +0 -45
  228. package/dist/components/layout/drilldown-panel/drilldown-panel.class.d.ts +2 -0
  229. package/dist/components/layout/drilldown-panel/drilldown-panel.class.js +2 -2
  230. package/dist/components/layout/drilldown-panel/drilldown-panel.styles.js +0 -4
  231. package/dist/components/layout/filter-bar/filter-bar.class.js +1 -1
  232. package/dist/components/layout/filter-bar/filter-bar.styles.js +0 -9
  233. package/dist/components/layout/menu/menu-item.class.d.ts +5 -0
  234. package/dist/components/layout/menu/menu-item.class.js +1 -1
  235. package/dist/components/layout/menu/menu-item.styles.js +0 -49
  236. package/dist/components/layout/menu/menu-label.styles.js +0 -2
  237. package/dist/components/layout/menu/menu.styles.js +0 -18
  238. package/dist/components/layout/multi-split/multi-split.styles.js +0 -63
  239. package/dist/components/layout/page/page.class.d.ts +4 -0
  240. package/dist/components/layout/page/page.class.js +1 -1
  241. package/dist/components/layout/reorder-list/reorder-item.styles.js +0 -4
  242. package/dist/components/layout/responsive-panel/responsive-panel.styles.js +0 -27
  243. package/dist/components/layout/scroller/scroller.styles.js +0 -20
  244. package/dist/components/layout/segmented/segmented.class.d.ts +7 -1
  245. package/dist/components/layout/segmented/segmented.class.js +1 -1
  246. package/dist/components/layout/segmented/segmented.styles.js +69 -37
  247. package/dist/components/layout/split-panel/split-panel.styles.js +1 -7
  248. package/dist/components/layout/stepper/stepper.class.d.ts +8 -1
  249. package/dist/components/layout/stepper/stepper.class.js +1 -1
  250. package/dist/components/layout/stepper/stepper.styles.js +140 -41
  251. package/dist/components/layout/tab-group/tab-group.class.d.ts +4 -1
  252. package/dist/components/layout/tab-group/tab-group.styles.js +9 -75
  253. package/dist/components/layout/tab-group/tab.styles.js +0 -2
  254. package/dist/components/layout/virtual-list/virtual-list.class.d.ts +4 -4
  255. package/dist/components/layout/virtual-list/virtual-list.class.js +1 -1
  256. package/dist/components/layout/virtual-list/virtual-list.styles.js +0 -68
  257. package/dist/components/layout/widget/widget.class.d.ts +5 -1
  258. package/dist/components/layout/widget/widget.class.js +1 -1
  259. package/dist/components/layout/widget/widget.styles.js +97 -40
  260. package/dist/components/media/animated-image/animated-image.class.d.ts +3 -0
  261. package/dist/components/media/animated-image/animated-image.class.js +1 -1
  262. package/dist/components/media/animated-image/animated-image.styles.js +0 -28
  263. package/dist/components/media/attachment-chip/attachment-chip.class.d.ts +1 -1
  264. package/dist/components/media/attachment-chip/attachment-chip.class.js +1 -1
  265. package/dist/components/media/attachment-chip/attachment-chip.styles.js +0 -31
  266. package/dist/components/media/attachment-trigger/attachment-trigger.class.js +3 -3
  267. package/dist/components/media/attachment-trigger/attachment-trigger.styles.js +0 -40
  268. package/dist/components/media/av-player/av-player.class.d.ts +5 -6
  269. package/dist/components/media/av-player/av-player.class.js +1 -1
  270. package/dist/components/media/av-player/av-player.styles.js +0 -45
  271. package/dist/components/media/avatar/avatar.styles.js +3 -16
  272. package/dist/components/media/file-icon/file-icon.class.d.ts +1 -2
  273. package/dist/components/media/file-icon/file-icon.class.js +1 -1
  274. package/dist/components/media/file-input/file-input.class.d.ts +12 -0
  275. package/dist/components/media/file-input/file-input.styles.js +3 -24
  276. package/dist/components/media/flag/flag.class.d.ts +20 -0
  277. package/dist/components/media/flag/flag.class.js +4 -2
  278. package/dist/components/media/flag/flag.styles.js +7 -1
  279. package/dist/components/media/flag/language-map.d.ts +10 -0
  280. package/dist/components/media/flag/language-map.js +1 -1
  281. package/dist/components/media/image-comparer/image-comparer.styles.js +4 -33
  282. package/dist/components/media/image-viewer/image-viewer.class.js +0 -2
  283. package/dist/components/media/image-viewer/image-viewer.styles.js +7 -27
  284. package/dist/components/media/lightbox/lightbox.class.js +0 -2
  285. package/dist/components/media/lightbox/lightbox.styles.js +0 -21
  286. package/dist/components/media/map/map-loader.d.ts +19 -1
  287. package/dist/components/media/map/map-loader.js +1 -1
  288. package/dist/components/media/map/map.class.d.ts +141 -1
  289. package/dist/components/media/map/map.class.js +15 -3
  290. package/dist/components/media/map/map.styles.js +20 -17
  291. package/dist/components/media/media-card/media-card.class.d.ts +14 -3
  292. package/dist/components/media/media-card/media-card.class.js +1 -1
  293. package/dist/components/media/media-card/media-card.styles.js +2 -28
  294. package/dist/components/media/pan-zoom/pan-zoom.styles.js +0 -3
  295. package/dist/components/media/qr-code/qr-code.class.d.ts +3 -2
  296. package/dist/components/media/qr-code/qr-code.class.js +2 -2
  297. package/dist/components/media/qr-code/qr-code.styles.js +0 -3
  298. package/dist/components/media/sequence-playback/sequence-playback.class.d.ts +2 -0
  299. package/dist/components/media/sequence-playback/sequence-playback.class.js +2 -1
  300. package/dist/components/media/sequence-playback/sequence-playback.styles.js +0 -19
  301. package/dist/components/media/video/video.class.d.ts +23 -2
  302. package/dist/components/media/video/video.class.js +3 -3
  303. package/dist/components/media/video/video.styles.js +4 -2
  304. package/dist/components/media/zoomable-frame/zoomable-frame.class.d.ts +3 -2
  305. package/dist/components/media/zoomable-frame/zoomable-frame.class.js +2 -2
  306. package/dist/components/media/zoomable-frame/zoomable-frame.styles.js +0 -5
  307. package/dist/components/overlays/alert/alert.styles.js +4 -2
  308. package/dist/components/overlays/badge/badge.styles.js +4 -48
  309. package/dist/components/overlays/badge/tag.styles.js +0 -14
  310. package/dist/components/overlays/callout/callout.styles.js +0 -11
  311. package/dist/components/overlays/chip/chip-group.styles.js +0 -18
  312. package/dist/components/overlays/chip/chip.styles.js +6 -69
  313. package/dist/components/overlays/dialog/confirm.d.ts +1 -4
  314. package/dist/components/overlays/dialog/confirm.js +1 -1
  315. package/dist/components/overlays/dialog/dialog.class.d.ts +12 -9
  316. package/dist/components/overlays/dialog/dialog.class.js +1 -1
  317. package/dist/components/overlays/dialog/dialog.styles.js +0 -43
  318. package/dist/components/overlays/drawer/drawer.class.d.ts +2 -2
  319. package/dist/components/overlays/drawer/drawer.styles.js +0 -9
  320. package/dist/components/overlays/empty/empty.styles.js +0 -12
  321. package/dist/components/overlays/kbd/kbd.styles.js +0 -8
  322. package/dist/components/overlays/overlay/dropdown.class.d.ts +1 -6
  323. package/dist/components/overlays/overlay/dropdown.class.js +2 -2
  324. package/dist/components/overlays/overlay/overlay.styles.js +0 -28
  325. package/dist/components/overlays/overlay/popover.class.d.ts +9 -1
  326. package/dist/components/overlays/overlay/popover.class.js +2 -2
  327. package/dist/components/overlays/overlay/tooltip.class.d.ts +10 -0
  328. package/dist/components/overlays/overlay/tooltip.class.js +1 -1
  329. package/dist/components/overlays/popup/popup.class.d.ts +1 -0
  330. package/dist/components/overlays/popup/popup.class.js +1 -1
  331. package/dist/components/overlays/popup/popup.styles.js +0 -15
  332. package/dist/components/overlays/progress/progress-ring.class.d.ts +9 -1
  333. package/dist/components/overlays/progress/progress-ring.class.js +3 -3
  334. package/dist/components/overlays/progress/progress.styles.js +0 -21
  335. package/dist/components/overlays/rating/rating.styles.js +0 -25
  336. package/dist/components/overlays/skeleton/skeleton.styles.js +0 -4
  337. package/dist/components/overlays/spinner/spinner.styles.js +0 -3
  338. package/dist/components/overlays/toast/toast-item.styles.js +3 -45
  339. package/dist/components/retrieval/chunk-inspector/chunk-inspector.styles.js +0 -35
  340. package/dist/components/retrieval/citation-badge/citation-badge.class.d.ts +2 -2
  341. package/dist/components/retrieval/citation-badge/citation-badge.class.js +3 -3
  342. package/dist/components/retrieval/citation-badge/citation-badge.styles.js +0 -20
  343. package/dist/components/retrieval/claim-evidence/claim-evidence.styles.js +0 -8
  344. package/dist/components/retrieval/community-card/community-card.class.d.ts +1 -0
  345. package/dist/components/retrieval/community-card/community-card.styles.js +0 -6
  346. package/dist/components/retrieval/embedding-explorer/embedding-explorer.styles.js +8 -12
  347. package/dist/components/retrieval/entity-card/entity-card.class.d.ts +4 -3
  348. package/dist/components/retrieval/entity-card/entity-card.class.js +1 -1
  349. package/dist/components/retrieval/entity-card/entity-card.styles.js +0 -12
  350. package/dist/components/retrieval/entity-chip/entity-chip.class.d.ts +10 -4
  351. package/dist/components/retrieval/entity-chip/entity-chip.class.js +3 -3
  352. package/dist/components/retrieval/entity-chip/entity-chip.styles.js +6 -9
  353. package/dist/components/retrieval/entity-dossier/entity-dossier.class.d.ts +19 -5
  354. package/dist/components/retrieval/graph/graph.class.d.ts +5 -0
  355. package/dist/components/retrieval/graph/graph.class.js +1 -1
  356. package/dist/components/retrieval/graph/graph.styles.js +0 -30
  357. package/dist/components/retrieval/graph-legend/graph-legend.styles.js +0 -3
  358. package/dist/components/retrieval/ingestion-queue/ingestion-queue.styles.js +0 -25
  359. package/dist/components/retrieval/knowledge-base-admin/knowledge-base-admin.class.d.ts +2 -0
  360. package/dist/components/retrieval/knowledge-base-admin/knowledge-base-admin.styles.js +0 -7
  361. package/dist/components/retrieval/knowledge-graph-explorer/knowledge-graph-explorer.class.d.ts +20 -6
  362. package/dist/components/retrieval/knowledge-graph-explorer/knowledge-graph-explorer.class.js +2 -2
  363. package/dist/components/retrieval/knowledge-graph-explorer/knowledge-graph-explorer.styles.js +0 -16
  364. package/dist/components/retrieval/mind-map/mind-map.class.d.ts +5 -3
  365. package/dist/components/retrieval/mind-map/mind-map.class.js +1 -1
  366. package/dist/components/retrieval/mind-map/mind-map.styles.js +0 -2
  367. package/dist/components/retrieval/neighbor-list/neighbor-list.class.d.ts +3 -2
  368. package/dist/components/retrieval/neighbor-list/neighbor-list.class.js +1 -1
  369. package/dist/components/retrieval/neighbor-list/neighbor-list.styles.js +0 -30
  370. package/dist/components/retrieval/node-palette/node-palette.styles.js +0 -11
  371. package/dist/components/retrieval/path-strip/path-strip.styles.js +0 -10
  372. package/dist/components/retrieval/provenance-panel/provenance-panel.class.d.ts +12 -3
  373. package/dist/components/retrieval/provenance-panel/provenance-panel.styles.js +0 -2
  374. package/dist/components/retrieval/rag-eval-dashboard/rag-eval-dashboard.class.d.ts +3 -2
  375. package/dist/components/retrieval/rag-eval-dashboard/rag-eval-dashboard.class.js +2 -2
  376. package/dist/components/retrieval/retrieval-results/retrieval-results.styles.js +0 -28
  377. package/dist/components/retrieval/retrieval-search/retrieval-search.styles.js +0 -4
  378. package/dist/components/retrieval/retrieval-trace/retrieval-trace.styles.js +0 -2
  379. package/dist/components/retrieval/source-card/source-card.styles.js +0 -13
  380. package/dist/components/retrieval/source-list/source-list.styles.js +0 -7
  381. package/dist/components/retrieval/source-picker/source-picker.styles.js +0 -7
  382. package/dist/components/utility/copy-button/copy-button.styles.js +0 -10
  383. package/dist/components/utility/diff-view/diff-view.styles.js +0 -14
  384. package/dist/components/utility/export-button/export-button.styles.js +0 -22
  385. package/dist/components/utility/icon/icon.styles.js +0 -6
  386. package/dist/components/utility/json-viewer/json-viewer.styles.js +2 -48
  387. package/dist/components/utility/known-date/known-date.class.d.ts +7 -3
  388. package/dist/components/utility/known-date/known-date.styles.js +10 -51
  389. package/dist/components/utility/live-region/live-region.styles.js +0 -4
  390. package/dist/components/utility/mention-popover/mention-popover.styles.js +0 -25
  391. package/dist/components/utility/poll-status/poll-status.styles.js +0 -4
  392. package/dist/components/utility/random-content/random-content.class.d.ts +22 -0
  393. package/dist/components/utility/random-content/random-content.class.js +3 -2
  394. package/dist/components/utility/random-content/random-content.styles.js +6 -13
  395. package/dist/components/utility/tour/tour.class.d.ts +4 -2
  396. package/dist/components/utility/tour/tour.class.js +3 -3
  397. package/dist/components/utility/tour/tour.styles.js +0 -13
  398. package/dist/components/utility/visually-hidden/visually-hidden.styles.js +0 -5
  399. package/dist/components/viewers/archive-viewer/archive-viewer.class.js +1 -1
  400. package/dist/components/viewers/archive-viewer/archive-viewer.styles.d.ts +2 -2
  401. package/dist/components/viewers/archive-viewer/archive-viewer.styles.js +0 -10
  402. package/dist/components/viewers/csv-viewer/csv-viewer.class.js +1 -1
  403. package/dist/components/viewers/csv-viewer/csv-viewer.styles.js +0 -19
  404. package/dist/components/viewers/dataset-viewer/dataset-viewer.class.js +1 -1
  405. package/dist/components/viewers/dataset-viewer/dataset-viewer.styles.js +0 -15
  406. package/dist/components/viewers/document-compare/document-compare.styles.js +0 -3
  407. package/dist/components/viewers/document-preview/document-preview.styles.js +0 -25
  408. package/dist/components/viewers/document-viewer/document-viewer.class.d.ts +2 -1
  409. package/dist/components/viewers/document-viewer/document-viewer.class.js +1 -1
  410. package/dist/components/viewers/document-viewer/document-viewer.styles.js +0 -5
  411. package/dist/components/viewers/docx-viewer/docx-viewer.styles.js +0 -17
  412. package/dist/components/viewers/ebook-viewer/ebook-viewer.styles.js +0 -4
  413. package/dist/components/viewers/email-viewer/email-viewer.styles.js +0 -7
  414. package/dist/components/viewers/geojson-view/geojson-view.styles.js +0 -5
  415. package/dist/components/viewers/highlight-layer/highlight-layer.styles.js +0 -3
  416. package/dist/components/viewers/notebook-viewer/notebook-viewer.class.js +1 -1
  417. package/dist/components/viewers/notebook-viewer/notebook-viewer.styles.js +0 -38
  418. package/dist/components/viewers/page-rail/page-rail.class.js +1 -1
  419. package/dist/components/viewers/page-rail/page-rail.styles.js +0 -13
  420. package/dist/components/viewers/pdf-viewer/pdf-loader.d.ts +13 -2
  421. package/dist/components/viewers/pdf-viewer/pdf-loader.js +1 -1
  422. package/dist/components/viewers/pdf-viewer/pdf-viewer.class.d.ts +32 -2
  423. package/dist/components/viewers/pdf-viewer/pdf-viewer.class.js +4 -4
  424. package/dist/components/viewers/pdf-viewer/pdf-viewer.styles.js +1 -27
  425. package/dist/components/viewers/pptx-viewer/pptx-viewer.styles.js +0 -3
  426. package/dist/components/viewers/spreadsheet-viewer/spreadsheet-viewer.class.js +1 -1
  427. package/dist/components/viewers/spreadsheet-viewer/spreadsheet-viewer.styles.js +0 -14
  428. package/dist/components/viewers/svg-viewer/svg-viewer.styles.js +0 -7
  429. package/dist/components/viewers/xml-viewer/xml-viewer.styles.js +2 -24
  430. package/dist/custom-elements-jsx.d.ts +56 -37
  431. package/dist/events.d.ts +43 -33
  432. package/dist/internal/agent-status-variants.d.ts +18 -0
  433. package/dist/internal/agent-status-variants.js +1 -0
  434. package/dist/internal/announcer.d.ts +8 -3
  435. package/dist/internal/announcer.js +1 -1
  436. package/dist/internal/autoloader-manifest.js +1 -1
  437. package/dist/internal/canvas-color.d.ts +16 -0
  438. package/dist/internal/canvas-color.js +1 -1
  439. package/dist/internal/catalog-picker.d.ts +0 -1
  440. package/dist/internal/catalog-picker.js +1 -1
  441. package/dist/internal/default-strings.generated.d.ts +1 -0
  442. package/dist/internal/default-strings.generated.js +1 -1
  443. package/dist/internal/dev-mode-attribute-warning.d.ts +27 -4
  444. package/dist/internal/dev-mode-attribute-warning.js +1 -1
  445. package/dist/internal/localization-runtime.js +1 -1
  446. package/dist/internal/localization-types.d.ts +1 -1
  447. package/dist/internal/localization.js +1 -1
  448. package/dist/internal/lyra-element.d.ts +13 -0
  449. package/dist/internal/lyra-element.js +1 -1
  450. package/dist/internal/media-controller.js +1 -1
  451. package/dist/internal/package-metadata.d.ts +1 -1
  452. package/dist/internal/package-metadata.js +1 -1
  453. package/dist/internal/scroll-overflow.d.ts +35 -13
  454. package/dist/internal/scroll-overflow.js +1 -1
  455. package/dist/internal/sizes.styles.js +0 -2
  456. package/dist/internal/specialist-tokens.styles.js +6 -11
  457. package/dist/internal/text-highlights.d.ts +4 -1
  458. package/dist/internal/text-highlights.js +1 -1
  459. package/dist/internal/tokens/palette.styles.js +0 -15
  460. package/dist/internal/tokens.styles.js +19 -113
  461. package/dist/lyra.d.ts +8 -5
  462. package/dist/styles/reservations.css +82 -0
  463. package/dist/svelte.d.ts +56 -37
  464. package/dist/translations/ar.js +1 -1
  465. package/dist/translations/de.js +1 -1
  466. package/dist/translations/es.js +1 -1
  467. package/dist/translations/fa.js +1 -1
  468. package/dist/translations/fr.js +1 -1
  469. package/dist/translations/he.js +1 -1
  470. package/dist/translations/ja.js +1 -1
  471. package/dist/translations/pt-BR.js +1 -1
  472. package/dist/translations/ru.js +1 -1
  473. package/dist/translations/zh-CN.js +1 -1
  474. package/dist/vue.d.ts +56 -37
  475. package/llms/components/lr-accordion-item.md +12 -3
  476. package/llms/components/lr-accordion.md +11 -2
  477. package/llms/components/lr-agent-eval-dashboard.md +1 -1
  478. package/llms/components/lr-agent-trace.md +3 -1
  479. package/llms/components/lr-agent-workspace.md +20 -0
  480. package/llms/components/lr-artifact-panel.md +10 -4
  481. package/llms/components/lr-attachment-chip.md +7 -4
  482. package/llms/components/lr-attachment-trigger.md +7 -4
  483. package/llms/components/lr-av-player.md +3 -1
  484. package/llms/components/lr-avatar.md +6 -6
  485. package/llms/components/lr-bar-chart.md +4 -3
  486. package/llms/components/lr-box-plot.md +1 -1
  487. package/llms/components/lr-browser-frame.md +7 -3
  488. package/llms/components/lr-bubble-chart.md +4 -3
  489. package/llms/components/lr-calendar.md +9 -2
  490. package/llms/components/lr-card.md +24 -0
  491. package/llms/components/lr-chart.md +32 -8
  492. package/llms/components/lr-chat-viewport.md +7 -2
  493. package/llms/components/lr-checkbox-group.md +13 -5
  494. package/llms/components/lr-checkbox.md +5 -2
  495. package/llms/components/lr-checkpoint.md +6 -2
  496. package/llms/components/lr-combobox.md +5 -2
  497. package/llms/components/lr-command-palette.md +4 -1
  498. package/llms/components/lr-confirm-bar.md +7 -3
  499. package/llms/components/lr-context-meter.md +12 -11
  500. package/llms/components/lr-conversation-item.md +7 -4
  501. package/llms/components/lr-details.md +11 -2
  502. package/llms/components/lr-dialog.md +15 -10
  503. package/llms/components/lr-dock-panel.md +7 -10
  504. package/llms/components/lr-document-preview.md +6 -1
  505. package/llms/components/lr-document-viewer.md +3 -2
  506. package/llms/components/lr-doughnut-chart.md +4 -3
  507. package/llms/components/lr-drawer.md +3 -3
  508. package/llms/components/lr-entity-card.md +3 -3
  509. package/llms/components/lr-entity-chip.md +1 -1
  510. package/llms/components/lr-entity-dossier.md +4 -1
  511. package/llms/components/lr-file-input.md +2 -2
  512. package/llms/components/lr-flag.md +20 -5
  513. package/llms/components/lr-heatmap.md +28 -0
  514. package/llms/components/lr-histogram.md +3 -1
  515. package/llms/components/lr-icon.md +1 -1
  516. package/llms/components/lr-json-schema-viewer.md +2 -1
  517. package/llms/components/lr-knowledge-graph-explorer.md +8 -3
  518. package/llms/components/lr-known-date.md +4 -2
  519. package/llms/components/lr-line-chart.md +4 -3
  520. package/llms/components/lr-lite-chart.md +16 -6
  521. package/llms/components/lr-map.md +72 -8
  522. package/llms/components/lr-markdown-core.md +3 -2
  523. package/llms/components/lr-media-card.md +28 -12
  524. package/llms/components/lr-message-parts.md +2 -1
  525. package/llms/components/lr-model-select.md +9 -10
  526. package/llms/components/lr-model-settings-panel.md +9 -9
  527. package/llms/components/lr-neighbor-list.md +1 -1
  528. package/llms/components/lr-notebook-viewer.md +6 -3
  529. package/llms/components/lr-option.md +5 -2
  530. package/llms/components/lr-pdf-viewer.md +62 -2
  531. package/llms/components/lr-pie-chart.md +4 -3
  532. package/llms/components/lr-polar-area-chart.md +4 -3
  533. package/llms/components/lr-popover.md +5 -0
  534. package/llms/components/lr-progress-ring.md +8 -1
  535. package/llms/components/lr-prompt-studio.md +1 -1
  536. package/llms/components/lr-provenance-panel.md +4 -2
  537. package/llms/components/lr-qr-code.md +1 -1
  538. package/llms/components/lr-radar-chart.md +4 -3
  539. package/llms/components/lr-rag-eval-dashboard.md +2 -2
  540. package/llms/components/lr-random-content.md +13 -0
  541. package/llms/components/lr-reorder-item.md +6 -1
  542. package/llms/components/lr-reorder-list.md +6 -1
  543. package/llms/components/lr-responsive-panel.md +11 -7
  544. package/llms/components/lr-scatter-chart.md +4 -3
  545. package/llms/components/lr-sequence-strip.md +16 -2
  546. package/llms/components/lr-slider.md +12 -5
  547. package/llms/components/lr-sparkline.md +1 -1
  548. package/llms/components/lr-suggestion-chips.md +7 -2
  549. package/llms/components/lr-swatch-picker.md +5 -5
  550. package/llms/components/lr-switch.md +5 -2
  551. package/llms/components/lr-table.md +30 -4
  552. package/llms/components/lr-terminal.md +3 -1
  553. package/llms/components/lr-thread-list.md +8 -8
  554. package/llms/components/lr-time-input.md +6 -1
  555. package/llms/components/lr-timeline-item.md +24 -0
  556. package/llms/components/lr-timeline.md +25 -1
  557. package/llms/components/lr-token-input.md +7 -2
  558. package/llms/components/lr-tool-approval-dialog.md +7 -8
  559. package/llms/components/lr-tool-call-chip.md +5 -1
  560. package/llms/components/lr-tool-param-form.md +14 -12
  561. package/llms/components/lr-tool-result-dialog.md +11 -9
  562. package/llms/components/lr-tool-result-view.md +7 -6
  563. package/llms/components/lr-tool-select-dialog.md +18 -16
  564. package/llms/components/lr-trace-tree.md +3 -1
  565. package/llms/components/lr-usage-badge.md +4 -1
  566. package/llms/components/lr-video-playlist.md +1 -1
  567. package/llms/components/lr-virtual-list.md +22 -14
  568. package/llms/components/lr-voice-picker.md +8 -5
  569. package/llms/components/lr-widget-renderer.md +3 -3
  570. package/llms/components/lr-widget.md +1 -1
  571. package/llms/components/lr-word-cloud.md +6 -2
  572. package/llms/peers.md +12 -2
  573. package/llms/shared.md +70 -2
  574. package/llms-full.txt +1143 -285
  575. package/package.json +17 -5
  576. package/vscode-css-data.json +37 -2
  577. package/vscode-html-data.json +401 -44
  578. package/web-types.json +299 -55
@@ -2,13 +2,6 @@ import{css}from"lit";const styles=css`
2
2
  :host {
3
3
  display: block;
4
4
  }
5
- /* An explicit height on the host has to actually bound the rendered explorer. Without this chain
6
- the column only ever sized itself from its content -- chiefly the composed graph's own
7
- intrinsic svg/canvas aspect ratio -- so a host height either left a dead gap below the graph or
8
- was overflowed by it. The same block-size: 100% propagation lr-multi-split and lr-widget use.
9
- min-block-size: 0 lets the graph below shrink past its intrinsic size instead of forcing the
10
- column taller than its allocation; with no height on the host both percentages resolve to auto
11
- and the content-sized behaviour is unchanged. */
12
5
  [part='base'] {
13
6
  display: flex;
14
7
  flex-direction: column;
@@ -81,21 +74,12 @@ import{css}from"lit";const styles=css`
81
74
  color: var(--lr-color-text-quiet);
82
75
  font-size: var(--lr-font-size-sm);
83
76
  }
84
- /* Type filters are a consumer-data-driven list (nodeTypes) with no library-imposed size limit --
85
- without a cap it floors at its full content height (browser-default flex-item min-height:
86
- auto) and starves 100% of the shrinkage onto [part='graph'] below, even though that part is
87
- explicitly set up to be the one that shrinks. Same max-block-size + overflow-y pattern as
88
- [part='search-results'] above. */
89
77
  [part='legend'] {
90
78
  flex: 0 1 auto;
91
79
  max-block-size: var(--lr-size-12rem);
92
80
  overflow-y: auto;
93
81
  overflow-x: clip;
94
82
  }
95
- /* The one flexible row: it takes whatever the toolbar, search results, pinned row and path strip
96
- leave over. flex-basis stays auto so an unsized host still gets the graph's intrinsic height,
97
- while min-block-size: 0 removes the automatic content-based flex minimum that would otherwise
98
- stop it shrinking into a shorter allocation. */
99
83
  [part='graph'] {
100
84
  display: block;
101
85
  inline-size: 100%;
@@ -89,9 +89,11 @@ export declare class LyraMindMap extends LyraElement<LyraMindMapEventMap> {
89
89
  private get effectiveExpandDepth();
90
90
  private isExpanded;
91
91
  /** Resolves `--lr-mind-map-ring-gap` to a real used pixel value for whatever unit it carries --
92
- * a live root/host font-size read for rem/em, matching `lr-table`'s own `minimumResizeWidth()`
93
- * fix for the identical problem (a hardcoded `* 16` gets ring spacing wrong on any page whose
94
- * root font-size isn't the browser default 16px). */
92
+ * a live root/host font-size read for rem/em (a hardcoded `* 16` gets ring spacing wrong on any
93
+ * page whose root font-size isn't the browser default 16px), delegated to the shared
94
+ * `resolveCssLength()` so every unit-resolving component agrees on what a length means. A value
95
+ * in a unit that cannot be resolved to a used pixel length here (`ch`, `pt`, `calc()`, a bare
96
+ * `%` with no base) falls back to the default gap rather than being read as raw pixels. */
95
97
  private ringGapPx;
96
98
  private relayout;
97
99
  protected willUpdate(changed: PropertyValues): void;
@@ -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,svg}from"lit";import{property,state,query}from"lit/decorators.js";import{LyraElement}from"../../../internal/lyra-element.js";import{srOnly}from"../../../internal/a11y.js";import{isRtl}from"../../../internal/rtl.js";import{finiteCount}from"../../../internal/numbers.js";import{getNumberFormat}from"../../../internal/intl-cache.js";import{acquireAnnouncementSink}from"../../../internal/announcer.js";import{layoutMindMap}from"./mind-map-layout.js";import{styles}from"./mind-map.styles.js";import{LYRA_DEFAULT_mindMapCollapsed,LYRA_DEFAULT_mindMapExpanded,LYRA_DEFAULT_mindMapLabel,LYRA_DEFAULT_mindMapLeafStatus,LYRA_DEFAULT_mindMapTopicStatus,LYRA_DEFAULT_noData}from"../../../internal/default-strings.generated.js";const DEFAULT_RING_GAP_PX=96,NAV_KEYS=new Set(["ArrowUp","ArrowDown","ArrowLeft","ArrowRight","Home","End","Enter"," "]);class LyraMindMap extends LyraElement{constructor(){super(...arguments),this.topics=[],this.expandDepth=1,this.expandedOverrides=new Map,this.focusedId=null,this.liveText="",this.cachedLayout={placed:[],links:[],width:0,height:0,centerX:0,centerY:0},this.ownerRealmGeneration=0,this.observedSize="",this.layoutInvalidated=!0,this.layoutContext="",this.onKeyDown=e=>{const placed=this.cachedLayout.placed;if(placed.length===0||!NAV_KEYS.has(e.key))return;if(e.preventDefault(),this.focusedId===null){this.focusNodeById(placed[0].id);return}const current=placed.find(p=>p.id===this.focusedId);if(!current)return;if(e.key==="Enter"||e.key===" "){this.activate(current);return}if(e.key==="ArrowUp"){current.parentId&&this.focusNodeById(current.parentId);return}if(e.key==="ArrowDown"){if(!current.hasChildren)return;this.isExpanded(current.id,current.depth)||this.toggle(current,!1);const child=this.childrenOf(current.id)[0];child&&this.focusNodeById(child.id);return}const rtl=isRtl(this),forwardKey=rtl?"ArrowLeft":"ArrowRight",backwardKey=rtl?"ArrowRight":"ArrowLeft";if(e.key===forwardKey||e.key===backwardKey||e.key==="Home"||e.key==="End"){const siblings=this.siblingsOf(current),index=siblings.findIndex(s=>s.id===current.id);let next=index;e.key===forwardKey?next=Math.min(siblings.length-1,index+1):e.key===backwardKey?next=Math.max(0,index-1):e.key==="Home"?next=0:next=siblings.length-1;const target=siblings[next];target&&this.focusNodeById(target.id)}},this.onFocusIn=()=>{if(this.focusedId!==null)return;const first=this.cachedLayout.placed[0];first&&(this.focusedId=first.id)}}static{this.defaultStrings={...super.defaultStrings,mindMapCollapsed:LYRA_DEFAULT_mindMapCollapsed,mindMapExpanded:LYRA_DEFAULT_mindMapExpanded,mindMapLabel:LYRA_DEFAULT_mindMapLabel,mindMapLeafStatus:LYRA_DEFAULT_mindMapLeafStatus,mindMapTopicStatus:LYRA_DEFAULT_mindMapTopicStatus,noData:LYRA_DEFAULT_noData}}static{this.ownedCollectionProperties=Object.freeze(["topics"])}static{this.styles=[LyraElement.styles,styles,srOnly]}static get observedAttributes(){return[...new Set([...super.observedAttributes,"dir","lang"])]}connectedCallback(){super.connectedCallback(),this.announcementSink??=acquireAnnouncementSink("polite",{document:this.ownerDocument,source:this}),this.layoutInvalidated=!0,this.armResizeObserver()}armResizeObserver(){const ownerDocument=this.ownerDocument,ownerWindow=ownerDocument.defaultView;if(!this.isConnected||!ownerWindow?.ResizeObserver||this.resizeObserver&&this.resizeObserverDocument===ownerDocument)return;this.resetResizeWork();const generation=this.ownerRealmGeneration,observer=new ownerWindow.ResizeObserver(entries=>{if(this.resizeObserver!==observer||this.resizeObserverDocument!==ownerDocument||this.ownerRealmGeneration!==generation||!this.isConnected||this.ownerDocument!==ownerDocument)return;const rect=entries[0]?.contentRect,size=rect?`${rect.width}:${rect.height}`:"";if(size&&size===this.observedSize)return;this.observedSize=size,this.resizeRafId!=null&&this.resizeRafOwner?.cancelAnimationFrame(this.resizeRafId);const handle=ownerWindow.requestAnimationFrame(()=>{this.resizeRafId!==handle||this.resizeRafOwner!==ownerWindow||this.resizeRafDocument!==ownerDocument||this.ownerRealmGeneration!==generation||!this.isConnected||this.ownerDocument!==ownerDocument||(this.resizeRafId=void 0,this.resizeRafOwner=void 0,this.resizeRafDocument=void 0,this.layoutInvalidated=!0,this.requestUpdate())});this.resizeRafId=handle,this.resizeRafOwner=ownerWindow,this.resizeRafDocument=ownerDocument});this.resizeObserver=observer,this.resizeObserverDocument=ownerDocument,observer.observe(this)}disconnectedCallback(){this.resetResizeWork(),this.announcementSink?.release(),this.announcementSink=void 0,super.disconnectedCallback()}adoptedCallback(){super.adoptedCallback(),this.resetResizeWork(),this.announcementSink?.release(),this.announcementSink=void 0}resetResizeWork(){this.ownerRealmGeneration+=1,this.resizeRafId!=null&&this.resizeRafOwner?.cancelAnimationFrame(this.resizeRafId),this.resizeRafId=void 0,this.resizeRafOwner=void 0,this.resizeRafDocument=void 0,this.resizeObserver?.disconnect(),this.resizeObserver=void 0,this.resizeObserverDocument=void 0,this.observedSize=""}attributeChangedCallback(name,oldValue,value){super.attributeChangedCallback(name,oldValue,value),(name==="dir"||name==="lang")&&oldValue!==value&&(this.layoutInvalidated=!0,this.requestUpdate())}get effectiveExpandDepth(){return finiteCount(this.expandDepth,1)}isExpanded(id,depth){return this.expandedOverrides.get(id)??depth<this.effectiveExpandDepth}ringGapPx(){const ownerWindow=this.ownerDocument.defaultView,hostStyle=ownerWindow?.getComputedStyle(this)??this.style,raw=hostStyle.getPropertyValue("--lr-mind-map-ring-gap").trim()||hostStyle.getPropertyValue("--_lr-mind-map-ring-gap").trim();if(!raw)return DEFAULT_RING_GAP_PX;const value=parseFloat(raw);if(!Number.isFinite(value))return DEFAULT_RING_GAP_PX;if(raw.endsWith("rem")){const rootStyle=ownerWindow?.getComputedStyle(this.ownerDocument.documentElement)??this.ownerDocument.documentElement.style,rootFontSize=Number.parseFloat(rootStyle.fontSize);return Number.isFinite(rootFontSize)?value*rootFontSize:DEFAULT_RING_GAP_PX}if(raw.endsWith("em")){const hostFontSize=Number.parseFloat(hostStyle.fontSize);return Number.isFinite(hostFontSize)?value*hostFontSize:DEFAULT_RING_GAP_PX}return value}relayout(){const hubLabel=this.label==null?this.localize("mindMapLabel"):this.label;this.cachedLayout=layoutMindMap(this.topics,hubLabel,{ringGap:this.ringGapPx(),rtl:isRtl(this),isExpanded:(id,depth)=>this.isExpanded(id,depth)})}willUpdate(changed){super.willUpdate(changed);const context=`${this.label==null?this.localize("mindMapLabel"):this.label}\0${isRtl(this)?"rtl":"ltr"}\0${this.ringGapPx()}`,structuralChange=changed.has("topics")||changed.has("expandDepth")||changed.has("expandedOverrides")||changed.has("label")||changed.has("strings")||changed.has("locale");(this.layoutInvalidated||structuralChange||context!==this.layoutContext)&&(this.relayout(),this.layoutContext=context,this.layoutInvalidated=!1,this.focusedId&&!this.cachedLayout.placed.some(topic=>topic.id===this.focusedId)&&(this.focusedId=this.cachedLayout.placed[0]?.id??null))}setAnnouncement(text){this.liveText=text,this.announcementSink?.announce(text)}toggle(node,announce=!0){const expanded=!this.isExpanded(node.id,node.depth),next=new Map(this.expandedOverrides);next.set(node.id,expanded),this.expandedOverrides=next,this.emit("lr-topic-toggle",{topicId:node.id,expanded}),announce&&this.setAnnouncement(this.localize(expanded?"mindMapExpanded":"mindMapCollapsed",void 0,{label:node.label}))}activate(node){node.hasChildren?this.toggle(node):this.emit("lr-topic-select",{topicId:node.id})}siblingsOf(node){return this.cachedLayout.placed.filter(p=>p.parentId===node.parentId)}childrenOf(id){return this.cachedLayout.placed.filter(p=>p.parentId===id)}announce(node){const numberFormat=getNumberFormat(this.effectiveLocale);this.setAnnouncement(node.hasChildren?this.localize("mindMapTopicStatus",void 0,{label:node.label,level:numberFormat.format(node.depth+1),count:numberFormat.format(this.childrenOf(node.id).length)}):this.localize("mindMapLeafStatus",void 0,{label:node.label,level:numberFormat.format(node.depth+1)}))}focusNodeById(id){this.focusedId=id;const node=this.cachedLayout.placed.find(p=>p.id===id);node&&this.announce(node)}onNodeClick(node){this.focusedId=node.id,this.svgEl?.focus(),node.hasChildren||this.announce(node),this.activate(node)}connectorControlPoint(from,to){const layout=this.cachedLayout,parentR=Math.hypot(from.x-layout.centerX,from.y-layout.centerY),dir=isRtl(this)?-1:1;return{x:layout.centerX+dir*parentR*Math.sin(to.angle),y:layout.centerY-parentR*Math.cos(to.angle)}}renderSemanticNode(node,childrenByParent){const children=childrenByParent.get(node.id)??[];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,svg}from"lit";import{property,state,query}from"lit/decorators.js";import{LyraElement}from"../../../internal/lyra-element.js";import{srOnly}from"../../../internal/a11y.js";import{isRtl}from"../../../internal/rtl.js";import{finiteCount}from"../../../internal/numbers.js";import{resolveCssLength}from"../../../internal/css-length.js";import{getNumberFormat}from"../../../internal/intl-cache.js";import{acquireAnnouncementSink}from"../../../internal/announcer.js";import{layoutMindMap}from"./mind-map-layout.js";import{styles}from"./mind-map.styles.js";import{LYRA_DEFAULT_mindMapCollapsed,LYRA_DEFAULT_mindMapExpanded,LYRA_DEFAULT_mindMapLabel,LYRA_DEFAULT_mindMapLeafStatus,LYRA_DEFAULT_mindMapTopicStatus,LYRA_DEFAULT_noData}from"../../../internal/default-strings.generated.js";const DEFAULT_RING_GAP_PX=96,NAV_KEYS=new Set(["ArrowUp","ArrowDown","ArrowLeft","ArrowRight","Home","End","Enter"," "]);class LyraMindMap extends LyraElement{constructor(){super(...arguments),this.topics=[],this.expandDepth=1,this.expandedOverrides=new Map,this.focusedId=null,this.liveText="",this.cachedLayout={placed:[],links:[],width:0,height:0,centerX:0,centerY:0},this.ownerRealmGeneration=0,this.observedSize="",this.layoutInvalidated=!0,this.layoutContext="",this.onKeyDown=e=>{const placed=this.cachedLayout.placed;if(placed.length===0||!NAV_KEYS.has(e.key))return;if(e.preventDefault(),this.focusedId===null){this.focusNodeById(placed[0].id);return}const current=placed.find(p=>p.id===this.focusedId);if(!current)return;if(e.key==="Enter"||e.key===" "){this.activate(current);return}if(e.key==="ArrowUp"){current.parentId&&this.focusNodeById(current.parentId);return}if(e.key==="ArrowDown"){if(!current.hasChildren)return;this.isExpanded(current.id,current.depth)||this.toggle(current,!1);const child=this.childrenOf(current.id)[0];child&&this.focusNodeById(child.id);return}const rtl=isRtl(this),forwardKey=rtl?"ArrowLeft":"ArrowRight",backwardKey=rtl?"ArrowRight":"ArrowLeft";if(e.key===forwardKey||e.key===backwardKey||e.key==="Home"||e.key==="End"){const siblings=this.siblingsOf(current),index=siblings.findIndex(s=>s.id===current.id);let next=index;e.key===forwardKey?next=Math.min(siblings.length-1,index+1):e.key===backwardKey?next=Math.max(0,index-1):e.key==="Home"?next=0:next=siblings.length-1;const target=siblings[next];target&&this.focusNodeById(target.id)}},this.onFocusIn=()=>{if(this.focusedId!==null)return;const first=this.cachedLayout.placed[0];first&&(this.focusedId=first.id)}}static{this.defaultStrings={...super.defaultStrings,mindMapCollapsed:LYRA_DEFAULT_mindMapCollapsed,mindMapExpanded:LYRA_DEFAULT_mindMapExpanded,mindMapLabel:LYRA_DEFAULT_mindMapLabel,mindMapLeafStatus:LYRA_DEFAULT_mindMapLeafStatus,mindMapTopicStatus:LYRA_DEFAULT_mindMapTopicStatus,noData:LYRA_DEFAULT_noData}}static{this.ownedCollectionProperties=Object.freeze(["topics"])}static{this.styles=[LyraElement.styles,styles,srOnly]}static get observedAttributes(){return[...new Set([...super.observedAttributes,"dir","lang"])]}connectedCallback(){super.connectedCallback(),this.announcementSink??=acquireAnnouncementSink("polite",{document:this.ownerDocument,source:this}),this.layoutInvalidated=!0,this.armResizeObserver()}armResizeObserver(){const ownerDocument=this.ownerDocument,ownerWindow=ownerDocument.defaultView;if(!this.isConnected||!ownerWindow?.ResizeObserver||this.resizeObserver&&this.resizeObserverDocument===ownerDocument)return;this.resetResizeWork();const generation=this.ownerRealmGeneration,observer=new ownerWindow.ResizeObserver(entries=>{if(this.resizeObserver!==observer||this.resizeObserverDocument!==ownerDocument||this.ownerRealmGeneration!==generation||!this.isConnected||this.ownerDocument!==ownerDocument)return;const rect=entries[0]?.contentRect,size=rect?`${rect.width}:${rect.height}`:"";if(size&&size===this.observedSize)return;this.observedSize=size,this.resizeRafId!=null&&this.resizeRafOwner?.cancelAnimationFrame(this.resizeRafId);const handle=ownerWindow.requestAnimationFrame(()=>{this.resizeRafId!==handle||this.resizeRafOwner!==ownerWindow||this.resizeRafDocument!==ownerDocument||this.ownerRealmGeneration!==generation||!this.isConnected||this.ownerDocument!==ownerDocument||(this.resizeRafId=void 0,this.resizeRafOwner=void 0,this.resizeRafDocument=void 0,this.layoutInvalidated=!0,this.requestUpdate())});this.resizeRafId=handle,this.resizeRafOwner=ownerWindow,this.resizeRafDocument=ownerDocument});this.resizeObserver=observer,this.resizeObserverDocument=ownerDocument,observer.observe(this)}disconnectedCallback(){this.resetResizeWork(),this.announcementSink?.release(),this.announcementSink=void 0,super.disconnectedCallback()}adoptedCallback(){super.adoptedCallback(),this.resetResizeWork(),this.announcementSink?.release(),this.announcementSink=void 0}resetResizeWork(){this.ownerRealmGeneration+=1,this.resizeRafId!=null&&this.resizeRafOwner?.cancelAnimationFrame(this.resizeRafId),this.resizeRafId=void 0,this.resizeRafOwner=void 0,this.resizeRafDocument=void 0,this.resizeObserver?.disconnect(),this.resizeObserver=void 0,this.resizeObserverDocument=void 0,this.observedSize=""}attributeChangedCallback(name,oldValue,value){super.attributeChangedCallback(name,oldValue,value),(name==="dir"||name==="lang")&&oldValue!==value&&(this.layoutInvalidated=!0,this.requestUpdate())}get effectiveExpandDepth(){return finiteCount(this.expandDepth,1)}isExpanded(id,depth){return this.expandedOverrides.get(id)??depth<this.effectiveExpandDepth}ringGapPx(){const hostStyle=this.ownerDocument.defaultView?.getComputedStyle(this)??this.style,raw=hostStyle.getPropertyValue("--lr-mind-map-ring-gap").trim()||hostStyle.getPropertyValue("--_lr-mind-map-ring-gap").trim();return resolveCssLength(raw,{host:this})??DEFAULT_RING_GAP_PX}relayout(){const hubLabel=this.label==null?this.localize("mindMapLabel"):this.label;this.cachedLayout=layoutMindMap(this.topics,hubLabel,{ringGap:this.ringGapPx(),rtl:isRtl(this),isExpanded:(id,depth)=>this.isExpanded(id,depth)})}willUpdate(changed){super.willUpdate(changed);const context=`${this.label==null?this.localize("mindMapLabel"):this.label}\0${isRtl(this)?"rtl":"ltr"}\0${this.ringGapPx()}`,structuralChange=changed.has("topics")||changed.has("expandDepth")||changed.has("expandedOverrides")||changed.has("label")||changed.has("strings")||changed.has("locale");(this.layoutInvalidated||structuralChange||context!==this.layoutContext)&&(this.relayout(),this.layoutContext=context,this.layoutInvalidated=!1,this.focusedId&&!this.cachedLayout.placed.some(topic=>topic.id===this.focusedId)&&(this.focusedId=this.cachedLayout.placed[0]?.id??null))}setAnnouncement(text){this.liveText=text,this.announcementSink?.announce(text)}toggle(node,announce=!0){const expanded=!this.isExpanded(node.id,node.depth),next=new Map(this.expandedOverrides);next.set(node.id,expanded),this.expandedOverrides=next,this.emit("lr-topic-toggle",{topicId:node.id,expanded}),announce&&this.setAnnouncement(this.localize(expanded?"mindMapExpanded":"mindMapCollapsed",void 0,{label:node.label}))}activate(node){node.hasChildren?this.toggle(node):this.emit("lr-topic-select",{topicId:node.id})}siblingsOf(node){return this.cachedLayout.placed.filter(p=>p.parentId===node.parentId)}childrenOf(id){return this.cachedLayout.placed.filter(p=>p.parentId===id)}announce(node){const numberFormat=getNumberFormat(this.effectiveLocale);this.setAnnouncement(node.hasChildren?this.localize("mindMapTopicStatus",void 0,{label:node.label,level:numberFormat.format(node.depth+1),count:numberFormat.format(this.childrenOf(node.id).length)}):this.localize("mindMapLeafStatus",void 0,{label:node.label,level:numberFormat.format(node.depth+1)}))}focusNodeById(id){this.focusedId=id;const node=this.cachedLayout.placed.find(p=>p.id===id);node&&this.announce(node)}onNodeClick(node){this.focusedId=node.id,this.svgEl?.focus(),node.hasChildren||this.announce(node),this.activate(node)}connectorControlPoint(from,to){const layout=this.cachedLayout,parentR=Math.hypot(from.x-layout.centerX,from.y-layout.centerY),dir=isRtl(this)?-1:1;return{x:layout.centerX+dir*parentR*Math.sin(to.angle),y:layout.centerY-parentR*Math.cos(to.angle)}}renderSemanticNode(node,childrenByParent){const children=childrenByParent.get(node.id)??[];return html`
2
2
  <div
3
3
  role="treeitem"
4
4
  aria-level=${node.depth+1}
@@ -39,8 +39,6 @@ import{css}from"lit";const styles=css`
39
39
  [part="node"]:hover circle {
40
40
  stroke: var(--lr-mind-map-node-hover-halo, var(--lr-color-brand-quiet));
41
41
  }
42
- /* Pressed is the same halo pushed one step toward --lr-color-mix-partner, so it stays whatever
43
- hue a consumer set --lr-mind-map-node-hover-halo to while reading as visibly held. */
44
42
  [part="node"]:active circle {
45
43
  stroke: color-mix(
46
44
  in oklab,
@@ -10,7 +10,8 @@ export interface LyraNeighborRow {
10
10
  node: LyraEntity;
11
11
  }
12
12
  export interface LyraNeighborListEventMap {
13
- 'lr-entity-activate': CustomEvent<{
13
+ /** Canonical name for the "user picked this entity" gesture. */
14
+ 'lr-entity-select': CustomEvent<{
14
15
  entityId: string;
15
16
  }>;
16
17
  /** Deliberately the *same name and detail* as the `lr-graph` event, so one host handler
@@ -28,7 +29,7 @@ export interface LyraNeighborListEventMap {
28
29
  * collection and reassign it after changes; mutating the assigned array does not update the view.
29
30
  *
30
31
  * @customElement lr-neighbor-list
31
- * @event lr-entity-activate - A row's node button was activated. `detail: { entityId }`.
32
+ * @event lr-entity-select - A row's node button was activated. `detail: { entityId }`.
32
33
  * @event lr-node-expand - A row's expand button was activated (only rendered when `expandable`).
33
34
  * `detail: { nodeId }`.
34
35
  * @csspart base - The stable root wrapper across empty, populated and virtualized states. It owns
@@ -4,7 +4,7 @@ var __decorate=function(decorators,target,key,desc){var c=arguments.length,r=c<3
4
4
  type="button"
5
5
  aria-label=${accessibleName}
6
6
  aria-description=${metaText||nothing}
7
- @click=${()=>this.emit("lr-entity-activate",{entityId:row.node.id})}
7
+ @click=${()=>{this.emit("lr-entity-select",{entityId:row.node.id})}}
8
8
  >
9
9
  <span part="direction" aria-hidden="true"
10
10
  >${this.directionGlyph(row.direction)}</span
@@ -2,18 +2,6 @@ import{css}from"lit";const styles=css`
2
2
  :host {
3
3
  display: block;
4
4
  }
5
- /* Every row rule below is paired with an lr-virtual-list::part(x) twin because this component
6
- renders rows through two paths. At or below virtualize-at, renderNeighborRow()'s result is
7
- committed into this component's own shadow root and the plain [part=] selector matches. Above
8
- it, the exact same content becomes <lr-virtual-list>'s .renderItem, and Lit commits it wherever
9
- virtual-list's own render() is updating -- i.e. inside *its* shadow root, a different shadow
10
- tree that a [part=] selector scoped to this one can never reach. ::part() crosses that single
11
- boundary. Both selectors are load-bearing; dropping either silently unstyles one path.
12
-
13
- [part='row'] is the one name shared with lr-virtual-list's own per-row wrapper, which is
14
- exactly why renderItem returns only the row's *content*: a nested second part="row" would be
15
- matched by ::part(row) too (::part uses part~= semantics and reaches any depth of the target
16
- shadow tree), doubling this rule's padding and divider border on every virtualized row. */
17
5
  [part='row'],
18
6
  lr-virtual-list::part(row) {
19
7
  display: flex;
@@ -65,15 +53,6 @@ import{css}from"lit";const styles=css`
65
53
  }
66
54
  [part='node-meta'],
67
55
  lr-virtual-list::part(node-meta) {
68
- /* A flex item's default min-inline-size is auto (a content-based automatic minimum). When
69
- lr-neighbor-list's own host is placed where its width is resolved intrinsically (e.g. as a
70
- flex/grid item itself, a common real layout for a sidebar/detail-panel row) rather than
71
- against an already-definite available width, that content-based minimum -- driven by
72
- node-meta's un-wrapped (white-space: nowrap) text -- propagates up through the row and
73
- host, growing the whole layout past its container instead of eliding. Pinning it to 0
74
- keeps node-meta (and everything containing it) out of that intrinsic-size contribution, so
75
- overflow/text-overflow above can actually clip it once real (constrained) space is
76
- available. */
77
56
  min-inline-size: 0;
78
57
  color: var(--lr-color-text-quiet);
79
58
  font-size: var(--lr-font-size-xs);
@@ -87,8 +66,6 @@ import{css}from"lit";const styles=css`
87
66
  display: inline-flex;
88
67
  align-items: center;
89
68
  justify-content: center;
90
- /* Keep the glyph compact while giving the interactive box the shared minimum target size --
91
- same split as lr-code-block's own [part='toggle']. */
92
69
  inline-size: var(--lr-size-1-25rem);
93
70
  block-size: var(--lr-size-1-25rem);
94
71
  min-inline-size: var(--lr-icon-button-size);
@@ -112,13 +89,6 @@ import{css}from"lit";const styles=css`
112
89
  outline: var(--lr-focus-ring-width) solid var(--lr-focus-ring-color);
113
90
  outline-offset: var(--lr-focus-ring-offset);
114
91
  }
115
- /* Virtualized mode renders the relation headers from the groups property through
116
- lr-virtual-list's own "group" part (re-exported from here as "group-header"), not through this
117
- component's
118
- [part='group-header'] element -- so the same presentation has to be stated for both, or the
119
- headers change appearance the moment the list crosses virtualize-at. Only the typographic
120
- treatment is shared: virtual-list positions and inline-pads its own group labels, which is
121
- layout this rule deliberately leaves alone. */
122
92
  [part='group-header'],
123
93
  lr-virtual-list::part(group) {
124
94
  padding-block: var(--lr-space-xs);
@@ -25,9 +25,6 @@ import{css}from"lit";const styles=css`
25
25
  outline: var(--lr-focus-ring-width) solid var(--lr-focus-ring-color);
26
26
  outline-offset: var(--lr-focus-ring-offset);
27
27
  }
28
- /* no-pressed-state: a press on a text field lands the caret rather than activating a control, so
29
- a pressed tint would show only for the length of the mousedown and then be replaced by the
30
- :focus-visible ring above, which is the state that actually persists and communicates. */
31
28
  [part='search']:hover {
32
29
  border-color: var(--lr-color-border-strong);
33
30
  }
@@ -68,18 +65,10 @@ import{css}from"lit";const styles=css`
68
65
  cursor: not-allowed;
69
66
  opacity: var(--lr-opacity-disabled);
70
67
  }
71
- /* :where() zeroes the wrapped attribute-selector/pseudo-class contribution, leaving only
72
- :hover/:focus-visible itself -- (0,1,0) total, functionally identical selection to
73
- [part='item']:not([aria-disabled='true']):hover ((0,3,0)) but now losing (on the
74
- pseudo-element tiebreak) to a consumer's own ::part(item):hover override ((0,1,1)) without
75
- that consumer needing !important. Matches attachment-trigger.styles.ts's low-specificity pattern. */
76
68
  :where([part='item']):hover:where(:not([aria-disabled='true'])),
77
69
  :where([part='item']):focus-visible:where(:not([aria-disabled='true'])) {
78
70
  background: var(--lr-color-surface-hover, var(--lr-color-border));
79
71
  }
80
- /* These items are drag sources (cursor: grab above), so the pressed state is the moment the drag
81
- starts -- the deeper fill and the grabbing cursor together. Kept in the same :where() shape as
82
- the hover rule so a consumer's ::part(item):active still outranks it. */
83
72
  :where([part='item']):active:where(:not([aria-disabled='true'])) {
84
73
  background: color-mix(in oklab, var(--lr-color-surface-hover, var(--lr-color-border)), var(--lr-color-mix-partner) var(--lr-color-mix-active));
85
74
  cursor: grabbing;
@@ -11,16 +11,6 @@ import{css}from"lit";const styles=css`
11
11
  }
12
12
  [part='node'],
13
13
  [part='relation'] {
14
- /* Both pill kinds share this rule, so both get the same shared minimum
15
- hit-area floor -- a short label (either a terse relation like "is-a" or
16
- a short node label) would otherwise stay well under the 40px floor.
17
- The strip scrolls horizontally (see <lr-scroller> in the render
18
- template), so the extra inline space this can add just scrolls rather
19
- than forcing a wrap or squeezing a neighboring element -- the same
20
- "direct floor" treatment lr-code-block's/lr-json-viewer's own
21
- text-bearing [part='copy-button']/[part='toggle'] already use, not the
22
- narrower split visible-label/hit-target pattern reserved for pills
23
- genuinely out of horizontal room. */
24
14
  display: inline-flex;
25
15
  align-items: center;
26
16
  justify-content: center;
@@ -28,7 +28,14 @@ type Section = 'entities' | 'relationships' | 'communities' | 'chunks';
28
28
  * events, all of which are `composed` and therefore reach a host listener on
29
29
  * `<lr-provenance-panel>` itself. Declaring only `lr-toggle` typed those controls out of existence
30
30
  * for anyone building handlers off this type. */
31
- export interface LyraProvenancePanelEventMap extends Omit<LyraCommunityCardEventMap, 'lr-entity-activate'>, Omit<LyraEntityChipEventMap, 'lr-entity-activate'>, Omit<LyraPathStripEventMap, 'lr-entity-activate'>, LyraChunkInspectorEventMap {
31
+ export interface LyraProvenancePanelEventMap extends Omit<LyraCommunityCardEventMap, 'lr-entity-activate'>, Omit<LyraEntityChipEventMap, 'lr-entity-select'>, Omit<LyraPathStripEventMap, 'lr-entity-activate'>, LyraChunkInspectorEventMap {
32
+ /** Canonical name for the "user picked this entity" gesture, surfaced unchanged from an
33
+ * embedded entity chip. No composed child emits this with an `occurrenceIndex` (only the
34
+ * community card and the relationship path strip's own `lr-entity-activate` do), so unlike
35
+ * those this stays the plain shape. */
36
+ 'lr-entity-select': CustomEvent<{
37
+ entityId: string;
38
+ }>;
32
39
  'lr-entity-activate': CustomEvent<{
33
40
  entityId: string;
34
41
  occurrenceIndex?: number;
@@ -49,8 +56,10 @@ export interface LyraProvenancePanelEventMap extends Omit<LyraCommunityCardEvent
49
56
  *
50
57
  * @customElement lr-provenance-panel
51
58
  * @event lr-toggle - A section header was toggled. `detail: { section, expanded }`.
52
- * @event lr-entity-activate - Surfaced unchanged from an embedded entity chip, community card, or
53
- * relationship path strip. `detail: { entityId, occurrenceIndex? }`.
59
+ * @event lr-entity-select - Surfaced unchanged from an embedded entity chip.
60
+ * `detail: { entityId }`.
61
+ * @event lr-entity-activate - Surfaced unchanged from an embedded community card or relationship
62
+ * path strip. `detail: { entityId, occurrenceIndex? }`.
54
63
  * @event lr-entity-open - Surfaced unchanged from an embedded entity chip (double-click, or Space
55
64
  * while focused). `detail: { entityId }`.
56
65
  * @event lr-drill - Surfaced unchanged from an embedded community card's title, drill button, or
@@ -48,8 +48,6 @@ import{css}from"lit";const styles=css`
48
48
  [part='body'][hidden] {
49
49
  display: none;
50
50
  }
51
- /* Line packing is consumer-tunable because it is unreachable otherwise: the row fills [part='body']'s
52
- inline size, so justifying the body cannot move the wrapped chip lines. */
53
51
  .entity-row {
54
52
  display: flex;
55
53
  flex-wrap: wrap;
@@ -26,7 +26,7 @@ export interface LyraRagEvalDashboardEventMap {
26
26
  'lr-slice-change': CustomEvent<{
27
27
  slice: string;
28
28
  }>;
29
- 'lr-run-select': CustomEvent<{
29
+ 'lr-run-change': CustomEvent<{
30
30
  run: LyraRagEvaluationRun;
31
31
  }>;
32
32
  }
@@ -45,7 +45,7 @@ export interface LyraRagEvalDashboardEventMap {
45
45
  * @customElement lr-rag-eval-dashboard
46
46
  * @event lr-metric-change - A metric was activated. `detail: { metricId }`.
47
47
  * @event lr-slice-change - An evaluation slice was activated. `detail: { slice }`.
48
- * @event lr-run-select - An evaluation run was activated. `detail: { run }`.
48
+ * @event lr-run-change - An evaluation run was activated. `detail: { run }`.
49
49
  * @csspart base - The named dashboard region.
50
50
  * @csspart heading - The visible dashboard heading.
51
51
  * @csspart slices - Slice filter controls.
@@ -89,6 +89,7 @@ export declare class LyraRagEvalDashboard extends LyraElement<LyraRagEvalDashboa
89
89
  private filteredRuns;
90
90
  private formatMetric;
91
91
  private latestValue;
92
+ private emitRunChange;
92
93
  private renderSlices;
93
94
  render(): TemplateResult;
94
95
  }
@@ -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{trueDefaultBooleanConverter}from"../../../internal/converters.js";import"../../charts/chart/lite-chart.class.js";import"../../data/stat/stat.class.js";import"../../overlays/empty/empty.class.js";import{styles}from"./rag-eval-dashboard.styles.js";import{retrievalSemanticLabel,retrievalSemanticRole}from"../retrieval-semantic-owner.js";import{LYRA_DEFAULT_ragEvalDashboardAllSlices,LYRA_DEFAULT_ragEvalDashboardEmpty,LYRA_DEFAULT_ragEvalDashboardLabel,LYRA_DEFAULT_ragEvalDashboardRuns,LYRA_DEFAULT_ragEvalDashboardSliceUnavailable,LYRA_DEFAULT_ragEvalDashboardSlices}from"../../../internal/default-strings.generated.js";class LyraRagEvalDashboard extends LyraElement{constructor(){super(...arguments),this.metrics=[],this.runs=[],this.metricId="",this.slice="",this.showChart=!0,this.chartHeight="220px"}static{this.defaultStrings={...super.defaultStrings,ragEvalDashboardAllSlices:LYRA_DEFAULT_ragEvalDashboardAllSlices,ragEvalDashboardEmpty:LYRA_DEFAULT_ragEvalDashboardEmpty,ragEvalDashboardLabel:LYRA_DEFAULT_ragEvalDashboardLabel,ragEvalDashboardRuns:LYRA_DEFAULT_ragEvalDashboardRuns,ragEvalDashboardSliceUnavailable:LYRA_DEFAULT_ragEvalDashboardSliceUnavailable,ragEvalDashboardSlices:LYRA_DEFAULT_ragEvalDashboardSlices}}static{this.ownedCollectionProperties=Object.freeze(["metrics","runs"])}static{this.styles=[LyraElement.styles,styles]}get normalizedMetrics(){return firstByRetrievalIdentity(Array.isArray(this.metrics)?this.metrics:[],metric=>metric.id)}get normalizedRuns(){return firstByRetrievalIdentity(Array.isArray(this.runs)?this.runs:[],run=>run.id)}activeMetric(metrics){return metrics.find(metric=>metric.id===this.metricId)??metrics[0]}slices(runs){return[...new Set(runs.map(run=>run.slice).filter(slice=>!!slice))]}filteredRuns(runs){return this.slice?runs.filter(run=>run.slice===this.slice):runs}formatMetric(metric,raw){const value=Number.isFinite(raw)?raw:0;return metric.format==="percent"?getNumberFormat(this.effectiveLocale,{style:"percent",maximumFractionDigits:1}).format(finiteRange(value,0,0,1)):getNumberFormat(this.effectiveLocale,{maximumFractionDigits:3}).format(value)}latestValue(metric,runs){return[...runs].reverse().find(run=>Number.isFinite(run.metrics[metric.id]))?.metrics[metric.id]}renderSlices(slices){if(!slices.length)return nothing;const allSlicesPart=this.slice?"slice":"slice slice-selected";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{trueDefaultBooleanConverter}from"../../../internal/converters.js";import"../../charts/chart/lite-chart.class.js";import"../../data/stat/stat.class.js";import"../../overlays/empty/empty.class.js";import{styles}from"./rag-eval-dashboard.styles.js";import{retrievalSemanticLabel,retrievalSemanticRole}from"../retrieval-semantic-owner.js";import{LYRA_DEFAULT_ragEvalDashboardAllSlices,LYRA_DEFAULT_ragEvalDashboardEmpty,LYRA_DEFAULT_ragEvalDashboardLabel,LYRA_DEFAULT_ragEvalDashboardRuns,LYRA_DEFAULT_ragEvalDashboardSliceUnavailable,LYRA_DEFAULT_ragEvalDashboardSlices}from"../../../internal/default-strings.generated.js";class LyraRagEvalDashboard extends LyraElement{constructor(){super(...arguments),this.metrics=[],this.runs=[],this.metricId="",this.slice="",this.showChart=!0,this.chartHeight="220px"}static{this.defaultStrings={...super.defaultStrings,ragEvalDashboardAllSlices:LYRA_DEFAULT_ragEvalDashboardAllSlices,ragEvalDashboardEmpty:LYRA_DEFAULT_ragEvalDashboardEmpty,ragEvalDashboardLabel:LYRA_DEFAULT_ragEvalDashboardLabel,ragEvalDashboardRuns:LYRA_DEFAULT_ragEvalDashboardRuns,ragEvalDashboardSliceUnavailable:LYRA_DEFAULT_ragEvalDashboardSliceUnavailable,ragEvalDashboardSlices:LYRA_DEFAULT_ragEvalDashboardSlices}}static{this.ownedCollectionProperties=Object.freeze(["metrics","runs"])}static{this.styles=[LyraElement.styles,styles]}get normalizedMetrics(){return firstByRetrievalIdentity(Array.isArray(this.metrics)?this.metrics:[],metric=>metric.id)}get normalizedRuns(){return firstByRetrievalIdentity(Array.isArray(this.runs)?this.runs:[],run=>run.id)}activeMetric(metrics){return metrics.find(metric=>metric.id===this.metricId)??metrics[0]}slices(runs){return[...new Set(runs.map(run=>run.slice).filter(slice=>!!slice))]}filteredRuns(runs){return this.slice?runs.filter(run=>run.slice===this.slice):runs}formatMetric(metric,raw){const value=Number.isFinite(raw)?raw:0;return metric.format==="percent"?getNumberFormat(this.effectiveLocale,{style:"percent",maximumFractionDigits:1}).format(finiteRange(value,0,0,1)):getNumberFormat(this.effectiveLocale,{maximumFractionDigits:3}).format(value)}latestValue(metric,runs){return[...runs].reverse().find(run=>Number.isFinite(run.metrics[metric.id]))?.metrics[metric.id]}emitRunChange(run){this.emit("lr-run-change",{run})}renderSlices(slices){if(!slices.length)return nothing;const allSlicesPart=this.slice?"slice":"slice slice-selected";return html`
2
2
  <nav part="slices" aria-label=${this.localize("ragEvalDashboardSlices")}>
3
3
  <button
4
4
  part=${allSlicesPart}
@@ -88,7 +88,7 @@ var __decorate=function(decorators,target,key,desc){var c=arguments.length,r=c<3
88
88
  <button
89
89
  part="run"
90
90
  type="button"
91
- @click=${()=>this.emit("lr-run-select",{run})}
91
+ @click=${()=>this.emitRunChange(run)}
92
92
  >
93
93
  <span>${run.label}</span>
94
94
  ${active&&Number.isFinite(run.metrics[active.id])?html`<span
@@ -7,19 +7,6 @@ import{css}from"lit";const styles=css`
7
7
  color: var(--lr-color-danger);
8
8
  font-size: var(--lr-font-size-sm);
9
9
  }
10
- /* Two rendering paths, one presentation. Below \`virtualize-at\` (and only while ungrouped) rows
11
- are committed into this component's own shadow root, where a plain [part~='x'] selector matches
12
- them. Grouped mode always virtualizes, and so does any list past the threshold; then the
13
- identical row template becomes <lr-virtual-list>'s .renderItem and Lit commits it inside *that*
14
- component's shadow root -- a different tree, unreachable from a selector scoped to this one.
15
- lr-virtual-list::part(x) crosses exactly that one boundary, so both selectors are needed for
16
- every row-level part; the pairing follows <lr-ingestion-queue>'s own dual-path rows.
17
-
18
- [part='row'] is the one asymmetric case: in the virtualized path the row wrapper is
19
- <lr-virtual-list>'s own "row" part (re-exported here under the same name), not an element this
20
- component renders, so the two arms carry different declarations. The virtualized arm omits the
21
- row separator: those wrappers are absolutely positioned and measured by <lr-virtual-list>
22
- itself, and the nested chunk row already draws its own block-end border there. */
23
10
  [part='row'] {
24
11
  display: flex;
25
12
  align-items: flex-start;
@@ -35,11 +22,6 @@ import{css}from"lit";const styles=css`
35
22
  padding-inline: var(--lr-space-s);
36
23
  padding-block: var(--lr-space-s);
37
24
  }
38
- /* The group header comes from <lr-virtual-list>'s own "group" part (this component passes
39
- .groups rather than a renderGroup callback), re-exported here as "group-header". The list's
40
- own default already gives it the surface/quiet/semibold treatment; what it has no opinion on
41
- is the boundary between the header and the first row beneath it, which this component draws
42
- with the same separator its rows use. */
43
25
  lr-virtual-list::part(group) {
44
26
  box-sizing: border-box;
45
27
  border-block-end: var(--lr-border-width-thin) solid var(--lr-color-border);
@@ -53,17 +35,9 @@ import{css}from"lit";const styles=css`
53
35
  lr-virtual-list::part(row-body) {
54
36
  flex: 1 1 auto;
55
37
  min-inline-size: 0;
56
- /* A border rather than a background-color change: this row's own text (the nested
57
- lr-chunk-inspector's quiet-toned score text in particular) is sized/colored for the
58
- page's default surface, and a tinted background can drop that text below the required
59
- contrast ratio against it -- a border-only indicator carries no such risk. */
60
38
  border-inline-start: var(--lr-space-2xs) solid transparent;
61
39
  padding-inline-start: var(--lr-space-xs);
62
40
  }
63
- /* The selected state is a second part token rather than the row's data-selected attribute:
64
- Shadow Parts forbids an attribute selector after ::part(), so ::part(row-body)[data-selected]
65
- is invalid CSS and the rule would be dropped entirely while virtualized. data-selected stays
66
- on the element for consumers selecting within their own tree. */
67
41
  [part~='row-body-selected'],
68
42
  lr-virtual-list::part(row-body-selected) {
69
43
  border-inline-start-color: var(--lr-retrieval-results-selected-border, var(--lr-color-brand));
@@ -83,8 +57,6 @@ import{css}from"lit";const styles=css`
83
57
  display: flex;
84
58
  gap: var(--lr-space-2xs);
85
59
  }
86
- /* The <dt>/<dd> carry their own part names because ::part() matches a single element and cannot
87
- be followed by a descendant combinator -- ::part(metadata-entry) dt reaches nothing. */
88
60
  [part~='metadata-term'],
89
61
  lr-virtual-list::part(metadata-term) {
90
62
  font-weight: var(--lr-font-weight-medium);
@@ -44,10 +44,6 @@ import{css}from"lit";const styles=css`
44
44
  background-color var(--lr-transition-fast),
45
45
  border-color var(--lr-transition-fast);
46
46
  }
47
- /* A background mix, not filter: brightness(): a filter multiplies every channel of the subtree,
48
- so it dragged the button's own --lr-color-on-brand label along with the fill and moved neither
49
- at all once the brand token was themed to pure white or pure black. Mixing the fill toward
50
- --lr-color-mix-partner (which tracks the text color) always moves, and only the fill moves. */
51
47
  [part='submit']:hover {
52
48
  background: color-mix(in oklab, var(--lr-color-brand), var(--lr-color-mix-partner) var(--lr-color-mix-hover));
53
49
  }
@@ -67,8 +67,6 @@ import{css}from"lit";const styles=css`
67
67
  [part='evidence-toggle'][aria-expanded='true'] [part='evidence-toggle-icon'] svg {
68
68
  transform: rotate(90deg);
69
69
  }
70
- /* Mirrors this family's own chevron-mirroring convention (see lr-trace-tree): rotation is
71
- physical, so a collapsed chevron under RTL points the opposite way from LTR. */
72
70
  :host(:dir(rtl)) [part='evidence-toggle']:not([aria-expanded='true']) [part='evidence-toggle-icon'] svg {
73
71
  transform: rotate(180deg);
74
72
  }
@@ -12,20 +12,10 @@ import{css}from"lit";const styles=css`
12
12
  border-radius: var(--lr-radius);
13
13
  background: var(--lr-color-surface);
14
14
  }
15
- /* Density escape -- same convention as lr-empty's compact. Source cards render in lists, so the
16
- tuned values sit behind inline var() fallbacks (rather than a :host declaration, which every
17
- instance re-declares and so shadows any ancestor value) letting a list retune every card at
18
- once from the outside; the fallbacks are the pre-existing values scaled down one step, so an
19
- unset card renders unchanged. */
20
15
  :host([compact]) [part='base'] {
21
16
  padding: var(--lr-source-card-compact-padding, var(--lr-space-xs));
22
17
  gap: var(--lr-source-card-compact-gap, var(--lr-space-2xs));
23
18
  }
24
- /* MUST stay after :host([compact]): both selectors are :host([x]) [part='base'], i.e. equal
25
- specificity, so source order alone decides which padding/gap wins when a card is both compact
26
- and plain. plain is the stronger statement ("no chrome at all"), so it goes last. The title and
27
- toggle affordances are brand-colored text with a hover underline, never a border, so they stay
28
- legible with no chrome behind them. */
29
19
  :host([frame='plain']) [part='base'] {
30
20
  padding: 0;
31
21
  border: 0;
@@ -53,9 +43,6 @@ import{css}from"lit";const styles=css`
53
43
  [part='title']:hover {
54
44
  text-decoration: underline;
55
45
  }
56
- /* Both affordances here are transparent-backed brand-colored text (see the frame='plain' note
57
- above), so the pressed signal is a wash mixed from that transparent base -- the label itself has
58
- to keep its brand color to stay readable as a link. */
59
46
  [part='title']:active {
60
47
  text-decoration: underline;
61
48
  background: color-mix(in oklab, transparent, var(--lr-color-mix-partner) var(--lr-color-mix-active));
@@ -47,13 +47,6 @@ import{css}from"lit";const styles=css`
47
47
  :host([expanded]) [part='toggle'] {
48
48
  transform: rotate(90deg);
49
49
  }
50
- /* RTL: the resting (collapsed) chevron mirrors to point left, the
51
- conventional mirrored disclosure-triangle direction for RTL. Scoped to
52
- the collapsed state specifically (rather than a plain :dir(rtl) rule) so
53
- it never has to compete with the rule above for the expanded state, which
54
- needs no mirroring: rotating this left-right-asymmetric glyph 90deg
55
- already produces a left-right-symmetric down chevron. Mirrors
56
- lr-code-block's identical toggle chevron. */
57
50
  :host(:not([expanded]):dir(rtl)) [part='toggle'] {
58
51
  transform: scaleX(-1);
59
52
  }
@@ -43,10 +43,6 @@ import{css}from"lit";const styles=css`
43
43
  min-inline-size: var(--lr-icon-button-size);
44
44
  min-block-size: var(--lr-icon-button-size);
45
45
  padding: var(--lr-size-4px) var(--lr-space-xs);
46
- /* Per-level indent computed in CSS from the plain depth number the component writes inline,
47
- rather than a pre-formatted dimension: that keeps the step a retheme-able token and lets the
48
- indent be capped, so a deeply nested tree cannot push its labels off-screen with no way back.
49
- Same shape lr-tree-item already uses. */
50
46
  padding-inline-start: calc(
51
47
  var(--lr-space-xs) +
52
48
  min(
@@ -85,9 +81,6 @@ import{css}from"lit";const styles=css`
85
81
  [part="item"]:hover {
86
82
  background: color-mix(in srgb, var(--lr-color-text) 6%, transparent);
87
83
  }
88
- /* The row itself is the control here -- clicking anywhere in it toggles the source (the
89
- [part='checkbox'] box inside is a painted div, not a focusable target), so the row earns a
90
- pressed state of its own rather than deferring to something nested. */
91
84
  [part="item"]:active {
92
85
  background: color-mix(
93
86
  in oklab,
@@ -8,8 +8,6 @@ import{css}from"lit";const styles=css`
8
8
  slot:not([name]) {
9
9
  display: contents;
10
10
  }
11
- /* Every selector below matches with ~= rather than =, because the button's part list gains a
12
- state token ('base base-error') while the feedback state is showing. */
13
11
  [part~='base'] {
14
12
  display: inline-flex;
15
13
  align-items: center;
@@ -27,9 +25,6 @@ import{css}from"lit";const styles=css`
27
25
  -webkit-tap-highlight-color: transparent;
28
26
  transition: background-color var(--lr-transition-fast);
29
27
  }
30
- /* :where() keeps this rule's specificity low ((0,1,0)) so a consumer's own
31
- ::part(base):hover override ((0,1,1)) wins without needing !important --
32
- see lr-attachment-trigger's identical fix for the same reasoning. */
33
28
  :where([part~='base']:not(:disabled)):hover {
34
29
  background: color-mix(in srgb, var(--lr-color-text) 8%, transparent);
35
30
  color: var(--lr-color-text);
@@ -38,9 +33,6 @@ import{css}from"lit";const styles=css`
38
33
  background: color-mix(in oklab, transparent, var(--lr-color-mix-partner) var(--lr-color-mix-active));
39
34
  color: var(--lr-color-text);
40
35
  }
41
- /* After the hover and pressed rules, at equal specificity, so hovering or holding the failed
42
- button still changes its background (the interactive affordance) without repainting the failure
43
- color away. */
44
36
  [part~='base-success'] {
45
37
  color: var(--success-color, var(--lr-color-success));
46
38
  }
@@ -63,8 +55,6 @@ import{css}from"lit";const styles=css`
63
55
  [part~='base'] svg {
64
56
  display: block;
65
57
  }
66
- /* The outcome is announced, not shown: the button is icon-only, so the status text exists for
67
- assistive technology alone. Same clipped-1px pattern lr-pagination's live region uses. */
68
58
  [part='feedback'] {
69
59
  position: absolute;
70
60
  inline-size: var(--lr-size-1px);
@@ -38,29 +38,15 @@ import{css}from"lit";const styles=css`
38
38
  min-inline-size: 0;
39
39
  }
40
40
  [part="line"] {
41
- /* Lives here (rather than on the ancestor pre element) so layout="split" -- whose lines sit
42
- inside [part='side'], not a pre -- inherits the same monospace typography as the default
43
- unified pre. font-family/font-size/line-height are all inheritable, so moving them here
44
- from pre is visually identical for the unified layout (same computed values, just set
45
- directly instead of inherited). */
46
41
  font-family: var(--lr-diff-view-font, var(--_lr-diff-view-font));
47
42
  font-size: var(--lr-font-size-sm);
48
43
  line-height: var(--lr-line-height-snug);
49
44
  white-space: pre-wrap;
50
- /* The base/side owns horizontal scrolling while each line owns its change-state background.
51
- Grow that painted box with an unbroken line, but keep short lines filling the scrollport. */
52
45
  box-sizing: border-box;
53
46
  inline-size: max-content;
54
47
  min-inline-size: 100%;
55
48
  }
56
49
  [part="line"]:not([data-type="fold"]) {
57
- /* Diffed source code is read left-to-right regardless of the surrounding document direction --
58
- same rationale (and matching fix shape) as code-block.styles.ts's [part='pre']: without this,
59
- an ancestor dir="rtl" bidi-reorders each line and right-aligns the block, making valid code
60
- look syntactically broken. isolate keeps any RTL run inside a string/comment from leaking out
61
- and reordering the surrounding code. Excludes [data-type='fold'] -- that line renders a
62
- localized message ("N unchanged lines"), not code, and must keep following the ambient
63
- (possibly RTL) direction like ordinary UI text. */
64
50
  direction: ltr;
65
51
  unicode-bidi: isolate;
66
52
  }
@@ -17,15 +17,9 @@ import{css}from"lit";const styles=css`
17
17
  min-block-size: var(--lr-icon-button-size);
18
18
  cursor: pointer;
19
19
  }
20
- /* :where() zeroes the wrapped selectors' specificity contribution, leaving only :hover itself
21
- -- (0,1,0) total, functionally identical selection to \`[part='trigger']:hover:not(:disabled)\`
22
- ((0,3,0)) but now losing (on the pseudo-element tiebreak) to a consumer's own
23
- \`::part(trigger):hover\` override ((0,1,1)) without that consumer needing !important. */
24
20
  :where([part='trigger']):hover:where(:not(:disabled)) {
25
21
  border-color: var(--lr-color-brand);
26
22
  }
27
- /* Same :where() shape as the hover rule above, for the same reason -- a consumer's own
28
- ::part(trigger):active must still win without !important. */
29
23
  :where([part='trigger']):active:where(:not(:disabled)) {
30
24
  border-color: var(--lr-color-brand);
31
25
  background: color-mix(in oklab, var(--lr-color-surface), var(--lr-color-mix-partner) var(--lr-color-mix-active));
@@ -39,18 +33,6 @@ import{css}from"lit";const styles=css`
39
33
  outline-offset: var(--lr-focus-ring-offset);
40
34
  }
41
35
  [part='menu'] {
42
- /* Closed state: invisible + slightly raised. visibility (not
43
- display:none) so opacity/transform can actually transition; hit-testing
44
- and a11y exposure stay off since this part is already position:fixed.
45
- visibility deliberately isn't in the transition list below: a
46
- transitioned property's computed value only settles to its new
47
- target after the UA has run an actual style-change/rendering pass,
48
- which lags behind a same-tick attribute write (e.g. updated()
49
- synchronously focusing the first menu item right after flipping
50
- open) -- that item would still resolve as visibility: hidden (and
51
- so silently fail to focus) at the moment .focus() is called. Leaving
52
- visibility untransitioned makes it apply immediately, in the same
53
- synchronous style pass as the open attribute write. */
54
36
  visibility: hidden;
55
37
  position: fixed;
56
38
  z-index: var(--lr-layer-dropdown);
@@ -71,7 +53,6 @@ import{css}from"lit";const styles=css`
71
53
  background: var(--lr-color-surface);
72
54
  border: var(--lr-border-width-thin) solid var(--lr-color-border);
73
55
  border-radius: var(--lr-radius);
74
- /* Anchored overlay: a positioner-placed menu floating over page content, not a modal layer. */
75
56
  box-shadow: var(--lr-shadow-m);
76
57
  opacity: 0;
77
58
  transform: translateY(var(--lr-size-neg-4px));
@@ -95,7 +76,6 @@ import{css}from"lit";const styles=css`
95
76
  align-items: start;
96
77
  gap: var(--lr-size-1px);
97
78
  box-sizing: border-box;
98
- min-inline-size: 0;
99
79
  inline-size: 100%;
100
80
  min-inline-size: var(--lr-icon-button-size);
101
81
  min-block-size: var(--lr-icon-button-size);
@@ -108,8 +88,6 @@ import{css}from"lit";const styles=css`
108
88
  cursor: pointer;
109
89
  border-radius: var(--lr-radius);
110
90
  }
111
- /* :where() zeroes the wrapped selectors' specificity contribution -- see the [part='trigger']
112
- hover rule above for the full rationale. */
113
91
  :where([part='menu-item']):hover:where(:not(:disabled)) {
114
92
  background: var(--lr-color-brand-quiet);
115
93
  }