@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.
- package/CHANGELOG.md +597 -0
- package/custom-elements.json +1 -1
- package/dist/cli/migrate-wa.mjs +52 -0
- package/dist/cli/migration-contract.json +1 -1
- package/dist/components/agent-tools/activity-feed/activity-feed.class.js +1 -1
- package/dist/components/agent-tools/activity-feed/activity-feed.styles.js +0 -16
- package/dist/components/agent-tools/agent-eval-dashboard/agent-eval-dashboard.class.js +1 -1
- package/dist/components/agent-tools/agent-eval-dashboard/agent-eval-dashboard.styles.js +7 -5
- package/dist/components/agent-tools/agent-run/agent-run.class.js +2 -2
- package/dist/components/agent-tools/agent-run/agent-run.styles.js +0 -13
- package/dist/components/agent-tools/agent-trace/agent-trace.styles.js +7 -4
- package/dist/components/agent-tools/approval-queue/approval-queue.styles.js +7 -5
- package/dist/components/agent-tools/artifact-panel/artifact-panel.styles.js +0 -3
- package/dist/components/agent-tools/browser-frame/browser-frame.styles.js +3 -5
- package/dist/components/agent-tools/commit-card/commit-card.styles.js +0 -10
- package/dist/components/agent-tools/compare-panel/compare-panel.styles.js +11 -6
- package/dist/components/agent-tools/confirm-bar/confirm-bar.styles.js +0 -46
- package/dist/components/agent-tools/eval-dataset/eval-dataset.styles.js +0 -7
- package/dist/components/agent-tools/evaluation-run/evaluation-run.class.js +2 -2
- package/dist/components/agent-tools/prompt-studio/prompt-studio.styles.js +0 -15
- package/dist/components/agent-tools/result-card/result-card.styles.js +0 -7
- package/dist/components/agent-tools/result-card/result-field.styles.js +0 -5
- package/dist/components/agent-tools/schema-viewer/schema-viewer.styles.js +0 -3
- package/dist/components/agent-tools/span-waterfall/span-waterfall.styles.js +0 -15
- package/dist/components/agent-tools/stack-trace/stack-trace.styles.js +0 -20
- package/dist/components/agent-tools/subagent-panel/subagent-panel.class.js +2 -2
- package/dist/components/agent-tools/subagent-panel/subagent-panel.styles.js +0 -3
- package/dist/components/agent-tools/task-list/task-list.styles.js +0 -15
- package/dist/components/agent-tools/terminal/terminal.class.d.ts +11 -6
- package/dist/components/agent-tools/terminal/terminal.class.js +4 -4
- package/dist/components/agent-tools/terminal/terminal.styles.js +0 -46
- package/dist/components/agent-tools/test-results/test-results.class.js +2 -2
- package/dist/components/agent-tools/test-results/test-results.styles.js +0 -5
- package/dist/components/agent-tools/thinking-panel/thinking-panel.styles.js +0 -41
- package/dist/components/agent-tools/tool-approval-dialog/tool-approval-dialog.styles.js +0 -41
- package/dist/components/agent-tools/tool-call-chip/tool-call-chip.styles.js +0 -30
- package/dist/components/agent-tools/tool-param-form/tool-param-form.class.js +6 -6
- package/dist/components/agent-tools/tool-param-form/tool-param-form.styles.js +0 -5
- package/dist/components/agent-tools/tool-result-dialog/tool-result-dialog.styles.js +0 -20
- package/dist/components/agent-tools/tool-result-view/tool-result-view.styles.js +0 -4
- package/dist/components/agent-tools/tool-select-dialog/tool-select-dialog.styles.js +0 -21
- package/dist/components/agent-tools/trace-tree/trace-tree.styles.js +7 -31
- package/dist/components/charts/chart/box-plot.styles.js +0 -20
- package/dist/components/charts/chart/chart-colors.d.ts +1 -1
- package/dist/components/charts/chart/chart-colors.js +1 -1
- package/dist/components/charts/chart/chart-core-loader.d.ts +1 -0
- package/dist/components/charts/chart/chart-core-loader.js +1 -1
- package/dist/components/charts/chart/chart-feature-loader.d.ts +35 -0
- package/dist/components/charts/chart/chart-feature-loader.js +1 -1
- package/dist/components/charts/chart/chart.class.d.ts +93 -0
- package/dist/components/charts/chart/chart.class.js +3 -3
- package/dist/components/charts/chart/chart.styles.js +0 -27
- package/dist/components/charts/chart/lite-chart.class.d.ts +20 -1
- package/dist/components/charts/chart/lite-chart.class.js +4 -4
- package/dist/components/charts/chart/lite-chart.styles.js +0 -27
- package/dist/components/conversation/agent-workspace/agent-workspace.class.d.ts +20 -0
- package/dist/components/conversation/agent-workspace/agent-workspace.class.js +3 -1
- package/dist/components/conversation/agent-workspace/agent-workspace.styles.js +3 -0
- package/dist/components/conversation/audio-visualizer/audio-visualizer.styles.js +0 -7
- package/dist/components/conversation/branch-picker/branch-picker.styles.js +0 -3
- package/dist/components/conversation/chat-composer/chat-composer.styles.js +0 -51
- package/dist/components/conversation/chat-message/chat-message.styles.js +7 -35
- package/dist/components/conversation/chat-viewport/chat-viewport.class.js +1 -1
- package/dist/components/conversation/chat-viewport/chat-viewport.styles.js +0 -33
- package/dist/components/conversation/checkpoint/checkpoint.class.js +1 -1
- package/dist/components/conversation/checkpoint/checkpoint.styles.js +0 -3
- package/dist/components/conversation/code-block/code-block-shared.d.ts +5 -2
- package/dist/components/conversation/code-block/code-block.class.js +1 -1
- package/dist/components/conversation/code-block/code-block.styles.js +4 -95
- package/dist/components/conversation/code-block/code-loader.d.ts +11 -0
- package/dist/components/conversation/code-block/code-loader.js +1 -1
- package/dist/components/conversation/code-block/shiki-types.d.ts +12 -0
- package/dist/components/conversation/code-block/shiki-types.js +1 -1
- package/dist/components/conversation/conversation-item/conversation-item.styles.js +8 -54
- package/dist/components/conversation/generation-metrics/generation-metrics.class.js +2 -2
- package/dist/components/conversation/generation-metrics/generation-metrics.styles.js +0 -17
- package/dist/components/conversation/markdown/markdown-base.class.js +1 -1
- package/dist/components/conversation/markdown/markdown.styles.js +0 -41
- package/dist/components/conversation/message-actions/message-actions.styles.js +0 -3
- package/dist/components/conversation/message-feedback/message-feedback.styles.js +0 -35
- package/dist/components/conversation/message-parts/message-parts.class.d.ts +1 -1
- package/dist/components/conversation/message-parts/message-parts.styles.js +0 -5
- package/dist/components/conversation/model-select/model-select.class.js +3 -3
- package/dist/components/conversation/model-select/model-select.styles.js +12 -47
- package/dist/components/conversation/model-settings-panel/model-settings-panel.styles.js +0 -6
- package/dist/components/conversation/prompt-input/prompt-input.class.d.ts +3 -0
- package/dist/components/conversation/prompt-input/prompt-input.styles.js +0 -10
- package/dist/components/conversation/push-to-talk/push-to-talk.styles.js +0 -8
- package/dist/components/conversation/selection-toolbar/selection-toolbar.styles.js +1 -11
- package/dist/components/conversation/stream-status/stream-status.styles.js +0 -16
- package/dist/components/conversation/streaming-text/streaming-text.styles.js +0 -15
- package/dist/components/conversation/suggestion-chips/suggestion-chips.styles.js +0 -5
- package/dist/components/conversation/thread-list/thread-list.styles.js +0 -23
- package/dist/components/conversation/transcript-feed/transcript-feed.class.d.ts +16 -4
- package/dist/components/conversation/transcript-feed/transcript-feed.class.js +1 -1
- package/dist/components/conversation/transcript-feed/transcript-feed.styles.js +0 -1
- package/dist/components/conversation/typing-indicator/typing-indicator.styles.js +0 -23
- package/dist/components/conversation/usage-badge/usage-badge.styles.js +0 -3
- package/dist/components/conversation/voice-picker/voice-picker.class.js +3 -3
- package/dist/components/conversation/voice-picker/voice-picker.styles.js +9 -29
- package/dist/components/conversation/widget-renderer/resolve.d.ts +2 -0
- package/dist/components/conversation/widget-renderer/resolve.js +1 -1
- package/dist/components/data/calendar/calendar.class.d.ts +15 -2
- package/dist/components/data/calendar/calendar.class.js +2 -2
- package/dist/components/data/calendar/calendar.styles.js +2 -28
- package/dist/components/data/condition-builder/condition-builder.class.d.ts +10 -6
- package/dist/components/data/condition-builder/condition-builder.class.js +2 -2
- package/dist/components/data/condition-builder/condition-builder.styles.js +0 -6
- package/dist/components/data/context-meter/context-meter.styles.js +0 -24
- package/dist/components/data/data-grid/data-grid.class.js +3 -3
- package/dist/components/data/data-grid/data-grid.styles.js +0 -22
- package/dist/components/data/document-library/document-library.class.js +2 -2
- package/dist/components/data/document-library/document-library.styles.js +0 -4
- package/dist/components/data/env-list/env-list.class.js +1 -1
- package/dist/components/data/env-list/env-list.styles.js +7 -4
- package/dist/components/data/file-tree/file-tree.class.d.ts +12 -0
- package/dist/components/data/flow-canvas/flow-canvas.styles.js +12 -19
- package/dist/components/data/flow-controls/flow-controls.class.js +2 -2
- package/dist/components/data/flow-controls/flow-controls.styles.js +3 -36
- package/dist/components/data/flow-minimap/flow-minimap.class.js +1 -1
- package/dist/components/data/flow-minimap/flow-minimap.styles.js +0 -9
- package/dist/components/data/flow-node/flow-node.styles.js +0 -23
- package/dist/components/data/flow-run-status/flow-run-status.class.js +1 -1
- package/dist/components/data/flow-run-status/flow-run-status.styles.js +0 -7
- package/dist/components/data/graph-query-builder/graph-query-builder.class.d.ts +0 -7
- package/dist/components/data/graph-query-builder/graph-query-builder.class.js +1 -1
- package/dist/components/data/graph-query-builder/graph-query-builder.styles.js +0 -10
- package/dist/components/data/heatmap/heatmap-scale.d.ts +20 -0
- package/dist/components/data/heatmap/heatmap-scale.js +1 -1
- package/dist/components/data/heatmap/heatmap.class.d.ts +84 -1
- package/dist/components/data/heatmap/heatmap.class.js +2 -2
- package/dist/components/data/heatmap/heatmap.styles.js +0 -54
- package/dist/components/data/pagination/pagination.styles.js +23 -46
- package/dist/components/data/sequence-strip/sequence-strip.class.d.ts +34 -1
- package/dist/components/data/sequence-strip/sequence-strip.class.js +5 -2
- package/dist/components/data/sequence-strip/sequence-strip.styles.js +14 -20
- package/dist/components/data/sparkline/sparkline.class.js +1 -1
- package/dist/components/data/stat/stat.styles.js +0 -67
- package/dist/components/data/table/table.class.d.ts +42 -3
- package/dist/components/data/table/table.class.js +4 -4
- package/dist/components/data/table/table.styles.js +20 -91
- package/dist/components/data/timeline/timeline-item.styles.js +0 -30
- package/dist/components/data/timeline/timeline.class.d.ts +89 -1
- package/dist/components/data/timeline/timeline.class.js +2 -2
- package/dist/components/data/timeline/timeline.styles.js +111 -31
- package/dist/components/data/tree/tree-item.styles.js +1 -28
- package/dist/components/data/tree/tree.class.js +2 -2
- package/dist/components/data/tree/tree.styles.js +0 -6
- package/dist/components/data/word-cloud/word-cloud.styles.js +0 -5
- package/dist/components/forms/button/button.class.js +1 -1
- package/dist/components/forms/button/button.styles.js +0 -105
- package/dist/components/forms/checkbox/checkbox.class.d.ts +3 -0
- package/dist/components/forms/checkbox/checkbox.class.js +1 -1
- package/dist/components/forms/checkbox/checkbox.styles.js +0 -39
- package/dist/components/forms/checkbox-group/checkbox-group.class.d.ts +21 -2
- package/dist/components/forms/checkbox-group/checkbox-group.class.js +1 -1
- package/dist/components/forms/checkbox-group/checkbox-group.styles.js +0 -18
- package/dist/components/forms/code-editor/code-editor.styles.js +0 -30
- package/dist/components/forms/color-picker/color-picker.class.js +2 -2
- package/dist/components/forms/color-picker/color-picker.styles.js +0 -69
- package/dist/components/forms/combobox/combobox.class.js +2 -2
- package/dist/components/forms/combobox/combobox.styles.js +22 -111
- package/dist/components/forms/combobox/option.styles.js +7 -1
- package/dist/components/forms/date-picker/date-input.class.js +1 -1
- package/dist/components/forms/date-picker/date-input.styles.js +12 -67
- package/dist/components/forms/date-picker/date-picker.class.d.ts +1 -0
- package/dist/components/forms/date-picker/date-picker.class.js +22 -20
- package/dist/components/forms/date-picker/date-picker.styles.js +36 -29
- package/dist/components/forms/emoji-picker/emoji-data-loader.d.ts +6 -3
- package/dist/components/forms/emoji-picker/emoji-data-loader.js +1 -1
- package/dist/components/forms/emoji-picker/emoji-picker.class.d.ts +8 -1
- package/dist/components/forms/emoji-picker/emoji-picker.class.js +1 -1
- package/dist/components/forms/emoji-picker/emoji-picker.styles.js +3 -41
- package/dist/components/forms/icon-button/icon-button.class.js +1 -1
- package/dist/components/forms/icon-button/icon-button.styles.js +0 -16
- package/dist/components/forms/input/input.styles.js +0 -54
- package/dist/components/forms/input/number-input.styles.d.ts +4 -5
- package/dist/components/forms/input/number-input.styles.js +0 -11
- package/dist/components/forms/input/time-input-shared.d.ts +11 -0
- package/dist/components/forms/input/time-input-shared.js +1 -1
- package/dist/components/forms/input/time-input.class.d.ts +11 -2
- package/dist/components/forms/input/time-input.class.js +1 -1
- package/dist/components/forms/input/time-input.styles.js +0 -6
- package/dist/components/forms/locale-picker/locale-picker.class.js +2 -2
- package/dist/components/forms/locale-picker/locale-picker.styles.js +1 -26
- package/dist/components/forms/otp-input/otp-input.class.js +3 -3
- package/dist/components/forms/otp-input/otp-input.styles.js +0 -16
- package/dist/components/forms/phone-input/phone-input.class.d.ts +9 -1
- package/dist/components/forms/phone-input/phone-input.class.js +2 -2
- package/dist/components/forms/phone-input/phone-input.styles.js +0 -37
- package/dist/components/forms/radio/radio-button.styles.js +1 -30
- package/dist/components/forms/radio/radio-group.styles.js +0 -4
- package/dist/components/forms/radio/radio.styles.js +0 -44
- package/dist/components/forms/rubric-form/rubric-form.styles.js +0 -5
- package/dist/components/forms/select/select.class.js +1 -1
- package/dist/components/forms/select/select.styles.js +14 -114
- package/dist/components/forms/slider/slider.styles.js +0 -55
- package/dist/components/forms/swatch-picker/swatch-picker.class.d.ts +0 -11
- package/dist/components/forms/swatch-picker/swatch-picker.class.js +2 -2
- package/dist/components/forms/swatch-picker/swatch-picker.styles.js +0 -77
- package/dist/components/forms/switch/switch.class.d.ts +3 -0
- package/dist/components/forms/switch/switch.class.js +1 -1
- package/dist/components/forms/switch/switch.styles.js +0 -37
- package/dist/components/forms/textarea/textarea.styles.js +0 -28
- package/dist/components/forms/time-range/time-range.styles.js +12 -84
- package/dist/components/forms/token-input/token-input.class.d.ts +23 -9
- package/dist/components/forms/token-input/token-input.class.js +1 -1
- package/dist/components/forms/token-input/token-input.styles.js +1 -54
- package/dist/components/layout/app-rail/app-rail-item.class.js +2 -2
- package/dist/components/layout/app-rail/app-rail-item.styles.js +0 -13
- package/dist/components/layout/app-rail/app-rail.class.d.ts +5 -0
- package/dist/components/layout/app-rail/app-rail.class.js +1 -1
- package/dist/components/layout/app-rail/app-rail.styles.js +0 -46
- package/dist/components/layout/button-group/button-group.styles.js +0 -6
- package/dist/components/layout/card/card.class.d.ts +12 -0
- package/dist/components/layout/card/card.styles.js +3 -11
- package/dist/components/layout/carousel/carousel.styles.js +0 -1
- package/dist/components/layout/command-palette/command-palette.class.d.ts +8 -0
- package/dist/components/layout/command-palette/command-palette.class.js +3 -1
- package/dist/components/layout/command-palette/command-palette.styles.js +1 -13
- package/dist/components/layout/control-group/control-group.styles.js +0 -7
- package/dist/components/layout/dashboard-grid/dashboard-grid.styles.js +6 -25
- package/dist/components/layout/details/accordion.class.d.ts +13 -0
- package/dist/components/layout/details/accordion.class.js +1 -1
- package/dist/components/layout/details/details.class.js +1 -1
- package/dist/components/layout/details/details.styles.js +0 -12
- package/dist/components/layout/dock-panel/dock-panel.styles.js +0 -45
- package/dist/components/layout/drilldown-panel/drilldown-panel.class.d.ts +2 -0
- package/dist/components/layout/drilldown-panel/drilldown-panel.class.js +2 -2
- package/dist/components/layout/drilldown-panel/drilldown-panel.styles.js +0 -4
- package/dist/components/layout/filter-bar/filter-bar.class.js +1 -1
- package/dist/components/layout/filter-bar/filter-bar.styles.js +0 -9
- package/dist/components/layout/menu/menu-item.class.d.ts +5 -0
- package/dist/components/layout/menu/menu-item.class.js +1 -1
- package/dist/components/layout/menu/menu-item.styles.js +0 -49
- package/dist/components/layout/menu/menu-label.styles.js +0 -2
- package/dist/components/layout/menu/menu.styles.js +0 -18
- package/dist/components/layout/multi-split/multi-split.styles.js +0 -63
- package/dist/components/layout/page/page.class.d.ts +4 -0
- package/dist/components/layout/page/page.class.js +1 -1
- package/dist/components/layout/reorder-list/reorder-item.styles.js +0 -4
- package/dist/components/layout/responsive-panel/responsive-panel.styles.js +0 -27
- package/dist/components/layout/scroller/scroller.styles.js +0 -20
- package/dist/components/layout/segmented/segmented.class.d.ts +7 -1
- package/dist/components/layout/segmented/segmented.class.js +1 -1
- package/dist/components/layout/segmented/segmented.styles.js +69 -37
- package/dist/components/layout/split-panel/split-panel.styles.js +1 -7
- package/dist/components/layout/stepper/stepper.class.d.ts +8 -1
- package/dist/components/layout/stepper/stepper.class.js +1 -1
- package/dist/components/layout/stepper/stepper.styles.js +140 -41
- package/dist/components/layout/tab-group/tab-group.class.d.ts +4 -1
- package/dist/components/layout/tab-group/tab-group.styles.js +9 -75
- package/dist/components/layout/tab-group/tab.styles.js +0 -2
- package/dist/components/layout/virtual-list/virtual-list.class.d.ts +4 -4
- package/dist/components/layout/virtual-list/virtual-list.class.js +1 -1
- package/dist/components/layout/virtual-list/virtual-list.styles.js +0 -68
- package/dist/components/layout/widget/widget.class.d.ts +5 -1
- package/dist/components/layout/widget/widget.class.js +1 -1
- package/dist/components/layout/widget/widget.styles.js +97 -40
- package/dist/components/media/animated-image/animated-image.class.d.ts +3 -0
- package/dist/components/media/animated-image/animated-image.class.js +1 -1
- package/dist/components/media/animated-image/animated-image.styles.js +0 -28
- package/dist/components/media/attachment-chip/attachment-chip.class.d.ts +1 -1
- package/dist/components/media/attachment-chip/attachment-chip.class.js +1 -1
- package/dist/components/media/attachment-chip/attachment-chip.styles.js +0 -31
- package/dist/components/media/attachment-trigger/attachment-trigger.class.js +3 -3
- package/dist/components/media/attachment-trigger/attachment-trigger.styles.js +0 -40
- package/dist/components/media/av-player/av-player.class.d.ts +5 -6
- package/dist/components/media/av-player/av-player.class.js +1 -1
- package/dist/components/media/av-player/av-player.styles.js +0 -45
- package/dist/components/media/avatar/avatar.styles.js +3 -16
- package/dist/components/media/file-icon/file-icon.class.d.ts +1 -2
- package/dist/components/media/file-icon/file-icon.class.js +1 -1
- package/dist/components/media/file-input/file-input.class.d.ts +12 -0
- package/dist/components/media/file-input/file-input.styles.js +3 -24
- package/dist/components/media/flag/flag.class.d.ts +20 -0
- package/dist/components/media/flag/flag.class.js +4 -2
- package/dist/components/media/flag/flag.styles.js +7 -1
- package/dist/components/media/flag/language-map.d.ts +10 -0
- package/dist/components/media/flag/language-map.js +1 -1
- package/dist/components/media/image-comparer/image-comparer.styles.js +4 -33
- package/dist/components/media/image-viewer/image-viewer.class.js +0 -2
- package/dist/components/media/image-viewer/image-viewer.styles.js +7 -27
- package/dist/components/media/lightbox/lightbox.class.js +0 -2
- package/dist/components/media/lightbox/lightbox.styles.js +0 -21
- package/dist/components/media/map/map-loader.d.ts +19 -1
- package/dist/components/media/map/map-loader.js +1 -1
- package/dist/components/media/map/map.class.d.ts +141 -1
- package/dist/components/media/map/map.class.js +15 -3
- package/dist/components/media/map/map.styles.js +20 -17
- package/dist/components/media/media-card/media-card.class.d.ts +14 -3
- package/dist/components/media/media-card/media-card.class.js +1 -1
- package/dist/components/media/media-card/media-card.styles.js +2 -28
- package/dist/components/media/pan-zoom/pan-zoom.styles.js +0 -3
- package/dist/components/media/qr-code/qr-code.class.d.ts +3 -2
- package/dist/components/media/qr-code/qr-code.class.js +2 -2
- package/dist/components/media/qr-code/qr-code.styles.js +0 -3
- package/dist/components/media/sequence-playback/sequence-playback.class.d.ts +2 -0
- package/dist/components/media/sequence-playback/sequence-playback.class.js +2 -1
- package/dist/components/media/sequence-playback/sequence-playback.styles.js +0 -19
- package/dist/components/media/video/video.class.d.ts +23 -2
- package/dist/components/media/video/video.class.js +3 -3
- package/dist/components/media/video/video.styles.js +4 -2
- package/dist/components/media/zoomable-frame/zoomable-frame.class.d.ts +3 -2
- package/dist/components/media/zoomable-frame/zoomable-frame.class.js +2 -2
- package/dist/components/media/zoomable-frame/zoomable-frame.styles.js +0 -5
- package/dist/components/overlays/alert/alert.styles.js +4 -2
- package/dist/components/overlays/badge/badge.styles.js +4 -48
- package/dist/components/overlays/badge/tag.styles.js +0 -14
- package/dist/components/overlays/callout/callout.styles.js +0 -11
- package/dist/components/overlays/chip/chip-group.styles.js +0 -18
- package/dist/components/overlays/chip/chip.styles.js +6 -69
- package/dist/components/overlays/dialog/confirm.d.ts +1 -4
- package/dist/components/overlays/dialog/confirm.js +1 -1
- package/dist/components/overlays/dialog/dialog.class.d.ts +12 -9
- package/dist/components/overlays/dialog/dialog.class.js +1 -1
- package/dist/components/overlays/dialog/dialog.styles.js +0 -43
- package/dist/components/overlays/drawer/drawer.class.d.ts +2 -2
- package/dist/components/overlays/drawer/drawer.styles.js +0 -9
- package/dist/components/overlays/empty/empty.styles.js +0 -12
- package/dist/components/overlays/kbd/kbd.styles.js +0 -8
- package/dist/components/overlays/overlay/dropdown.class.d.ts +1 -6
- package/dist/components/overlays/overlay/dropdown.class.js +2 -2
- package/dist/components/overlays/overlay/overlay.styles.js +0 -28
- package/dist/components/overlays/overlay/popover.class.d.ts +9 -1
- package/dist/components/overlays/overlay/popover.class.js +2 -2
- package/dist/components/overlays/overlay/tooltip.class.d.ts +10 -0
- package/dist/components/overlays/overlay/tooltip.class.js +1 -1
- package/dist/components/overlays/popup/popup.class.d.ts +1 -0
- package/dist/components/overlays/popup/popup.class.js +1 -1
- package/dist/components/overlays/popup/popup.styles.js +0 -15
- package/dist/components/overlays/progress/progress-ring.class.d.ts +9 -1
- package/dist/components/overlays/progress/progress-ring.class.js +3 -3
- package/dist/components/overlays/progress/progress.styles.js +0 -21
- package/dist/components/overlays/rating/rating.styles.js +0 -25
- package/dist/components/overlays/skeleton/skeleton.styles.js +0 -4
- package/dist/components/overlays/spinner/spinner.styles.js +0 -3
- package/dist/components/overlays/toast/toast-item.styles.js +3 -45
- package/dist/components/retrieval/chunk-inspector/chunk-inspector.styles.js +0 -35
- package/dist/components/retrieval/citation-badge/citation-badge.class.d.ts +2 -2
- package/dist/components/retrieval/citation-badge/citation-badge.class.js +3 -3
- package/dist/components/retrieval/citation-badge/citation-badge.styles.js +0 -20
- package/dist/components/retrieval/claim-evidence/claim-evidence.styles.js +0 -8
- package/dist/components/retrieval/community-card/community-card.class.d.ts +1 -0
- package/dist/components/retrieval/community-card/community-card.styles.js +0 -6
- package/dist/components/retrieval/embedding-explorer/embedding-explorer.styles.js +8 -12
- package/dist/components/retrieval/entity-card/entity-card.class.d.ts +4 -3
- package/dist/components/retrieval/entity-card/entity-card.class.js +1 -1
- package/dist/components/retrieval/entity-card/entity-card.styles.js +0 -12
- package/dist/components/retrieval/entity-chip/entity-chip.class.d.ts +10 -4
- package/dist/components/retrieval/entity-chip/entity-chip.class.js +3 -3
- package/dist/components/retrieval/entity-chip/entity-chip.styles.js +6 -9
- package/dist/components/retrieval/entity-dossier/entity-dossier.class.d.ts +19 -5
- package/dist/components/retrieval/graph/graph.class.d.ts +5 -0
- package/dist/components/retrieval/graph/graph.class.js +1 -1
- package/dist/components/retrieval/graph/graph.styles.js +0 -30
- package/dist/components/retrieval/graph-legend/graph-legend.styles.js +0 -3
- package/dist/components/retrieval/ingestion-queue/ingestion-queue.styles.js +0 -25
- package/dist/components/retrieval/knowledge-base-admin/knowledge-base-admin.class.d.ts +2 -0
- package/dist/components/retrieval/knowledge-base-admin/knowledge-base-admin.styles.js +0 -7
- package/dist/components/retrieval/knowledge-graph-explorer/knowledge-graph-explorer.class.d.ts +20 -6
- package/dist/components/retrieval/knowledge-graph-explorer/knowledge-graph-explorer.class.js +2 -2
- package/dist/components/retrieval/knowledge-graph-explorer/knowledge-graph-explorer.styles.js +0 -16
- package/dist/components/retrieval/mind-map/mind-map.class.d.ts +5 -3
- package/dist/components/retrieval/mind-map/mind-map.class.js +1 -1
- package/dist/components/retrieval/mind-map/mind-map.styles.js +0 -2
- package/dist/components/retrieval/neighbor-list/neighbor-list.class.d.ts +3 -2
- package/dist/components/retrieval/neighbor-list/neighbor-list.class.js +1 -1
- package/dist/components/retrieval/neighbor-list/neighbor-list.styles.js +0 -30
- package/dist/components/retrieval/node-palette/node-palette.styles.js +0 -11
- package/dist/components/retrieval/path-strip/path-strip.styles.js +0 -10
- package/dist/components/retrieval/provenance-panel/provenance-panel.class.d.ts +12 -3
- package/dist/components/retrieval/provenance-panel/provenance-panel.styles.js +0 -2
- package/dist/components/retrieval/rag-eval-dashboard/rag-eval-dashboard.class.d.ts +3 -2
- package/dist/components/retrieval/rag-eval-dashboard/rag-eval-dashboard.class.js +2 -2
- package/dist/components/retrieval/retrieval-results/retrieval-results.styles.js +0 -28
- package/dist/components/retrieval/retrieval-search/retrieval-search.styles.js +0 -4
- package/dist/components/retrieval/retrieval-trace/retrieval-trace.styles.js +0 -2
- package/dist/components/retrieval/source-card/source-card.styles.js +0 -13
- package/dist/components/retrieval/source-list/source-list.styles.js +0 -7
- package/dist/components/retrieval/source-picker/source-picker.styles.js +0 -7
- package/dist/components/utility/copy-button/copy-button.styles.js +0 -10
- package/dist/components/utility/diff-view/diff-view.styles.js +0 -14
- package/dist/components/utility/export-button/export-button.styles.js +0 -22
- package/dist/components/utility/icon/icon.styles.js +0 -6
- package/dist/components/utility/json-viewer/json-viewer.styles.js +2 -48
- package/dist/components/utility/known-date/known-date.class.d.ts +7 -3
- package/dist/components/utility/known-date/known-date.styles.js +10 -51
- package/dist/components/utility/live-region/live-region.styles.js +0 -4
- package/dist/components/utility/mention-popover/mention-popover.styles.js +0 -25
- package/dist/components/utility/poll-status/poll-status.styles.js +0 -4
- package/dist/components/utility/random-content/random-content.class.d.ts +22 -0
- package/dist/components/utility/random-content/random-content.class.js +3 -2
- package/dist/components/utility/random-content/random-content.styles.js +6 -13
- package/dist/components/utility/tour/tour.class.d.ts +4 -2
- package/dist/components/utility/tour/tour.class.js +3 -3
- package/dist/components/utility/tour/tour.styles.js +0 -13
- package/dist/components/utility/visually-hidden/visually-hidden.styles.js +0 -5
- package/dist/components/viewers/archive-viewer/archive-viewer.class.js +1 -1
- package/dist/components/viewers/archive-viewer/archive-viewer.styles.d.ts +2 -2
- package/dist/components/viewers/archive-viewer/archive-viewer.styles.js +0 -10
- package/dist/components/viewers/csv-viewer/csv-viewer.class.js +1 -1
- package/dist/components/viewers/csv-viewer/csv-viewer.styles.js +0 -19
- package/dist/components/viewers/dataset-viewer/dataset-viewer.class.js +1 -1
- package/dist/components/viewers/dataset-viewer/dataset-viewer.styles.js +0 -15
- package/dist/components/viewers/document-compare/document-compare.styles.js +0 -3
- package/dist/components/viewers/document-preview/document-preview.styles.js +0 -25
- package/dist/components/viewers/document-viewer/document-viewer.class.d.ts +2 -1
- package/dist/components/viewers/document-viewer/document-viewer.class.js +1 -1
- package/dist/components/viewers/document-viewer/document-viewer.styles.js +0 -5
- package/dist/components/viewers/docx-viewer/docx-viewer.styles.js +0 -17
- package/dist/components/viewers/ebook-viewer/ebook-viewer.styles.js +0 -4
- package/dist/components/viewers/email-viewer/email-viewer.styles.js +0 -7
- package/dist/components/viewers/geojson-view/geojson-view.styles.js +0 -5
- package/dist/components/viewers/highlight-layer/highlight-layer.styles.js +0 -3
- package/dist/components/viewers/notebook-viewer/notebook-viewer.class.js +1 -1
- package/dist/components/viewers/notebook-viewer/notebook-viewer.styles.js +0 -38
- package/dist/components/viewers/page-rail/page-rail.class.js +1 -1
- package/dist/components/viewers/page-rail/page-rail.styles.js +0 -13
- package/dist/components/viewers/pdf-viewer/pdf-loader.d.ts +13 -2
- package/dist/components/viewers/pdf-viewer/pdf-loader.js +1 -1
- package/dist/components/viewers/pdf-viewer/pdf-viewer.class.d.ts +32 -2
- package/dist/components/viewers/pdf-viewer/pdf-viewer.class.js +4 -4
- package/dist/components/viewers/pdf-viewer/pdf-viewer.styles.js +1 -27
- package/dist/components/viewers/pptx-viewer/pptx-viewer.styles.js +0 -3
- package/dist/components/viewers/spreadsheet-viewer/spreadsheet-viewer.class.js +1 -1
- package/dist/components/viewers/spreadsheet-viewer/spreadsheet-viewer.styles.js +0 -14
- package/dist/components/viewers/svg-viewer/svg-viewer.styles.js +0 -7
- package/dist/components/viewers/xml-viewer/xml-viewer.styles.js +2 -24
- package/dist/custom-elements-jsx.d.ts +56 -37
- package/dist/events.d.ts +43 -33
- package/dist/internal/agent-status-variants.d.ts +18 -0
- package/dist/internal/agent-status-variants.js +1 -0
- package/dist/internal/announcer.d.ts +8 -3
- package/dist/internal/announcer.js +1 -1
- package/dist/internal/autoloader-manifest.js +1 -1
- package/dist/internal/canvas-color.d.ts +16 -0
- package/dist/internal/canvas-color.js +1 -1
- package/dist/internal/catalog-picker.d.ts +0 -1
- package/dist/internal/catalog-picker.js +1 -1
- package/dist/internal/default-strings.generated.d.ts +1 -0
- package/dist/internal/default-strings.generated.js +1 -1
- package/dist/internal/dev-mode-attribute-warning.d.ts +27 -4
- package/dist/internal/dev-mode-attribute-warning.js +1 -1
- package/dist/internal/localization-runtime.js +1 -1
- package/dist/internal/localization-types.d.ts +1 -1
- package/dist/internal/localization.js +1 -1
- package/dist/internal/lyra-element.d.ts +13 -0
- package/dist/internal/lyra-element.js +1 -1
- package/dist/internal/media-controller.js +1 -1
- package/dist/internal/package-metadata.d.ts +1 -1
- package/dist/internal/package-metadata.js +1 -1
- package/dist/internal/scroll-overflow.d.ts +35 -13
- package/dist/internal/scroll-overflow.js +1 -1
- package/dist/internal/sizes.styles.js +0 -2
- package/dist/internal/specialist-tokens.styles.js +6 -11
- package/dist/internal/text-highlights.d.ts +4 -1
- package/dist/internal/text-highlights.js +1 -1
- package/dist/internal/tokens/palette.styles.js +0 -15
- package/dist/internal/tokens.styles.js +19 -113
- package/dist/lyra.d.ts +8 -5
- package/dist/styles/reservations.css +82 -0
- package/dist/svelte.d.ts +56 -37
- package/dist/translations/ar.js +1 -1
- package/dist/translations/de.js +1 -1
- package/dist/translations/es.js +1 -1
- package/dist/translations/fa.js +1 -1
- package/dist/translations/fr.js +1 -1
- package/dist/translations/he.js +1 -1
- package/dist/translations/ja.js +1 -1
- package/dist/translations/pt-BR.js +1 -1
- package/dist/translations/ru.js +1 -1
- package/dist/translations/zh-CN.js +1 -1
- package/dist/vue.d.ts +56 -37
- package/llms/components/lr-accordion-item.md +12 -3
- package/llms/components/lr-accordion.md +11 -2
- package/llms/components/lr-agent-eval-dashboard.md +1 -1
- package/llms/components/lr-agent-trace.md +3 -1
- package/llms/components/lr-agent-workspace.md +20 -0
- package/llms/components/lr-artifact-panel.md +10 -4
- package/llms/components/lr-attachment-chip.md +7 -4
- package/llms/components/lr-attachment-trigger.md +7 -4
- package/llms/components/lr-av-player.md +3 -1
- package/llms/components/lr-avatar.md +6 -6
- package/llms/components/lr-bar-chart.md +4 -3
- package/llms/components/lr-box-plot.md +1 -1
- package/llms/components/lr-browser-frame.md +7 -3
- package/llms/components/lr-bubble-chart.md +4 -3
- package/llms/components/lr-calendar.md +9 -2
- package/llms/components/lr-card.md +24 -0
- package/llms/components/lr-chart.md +32 -8
- package/llms/components/lr-chat-viewport.md +7 -2
- package/llms/components/lr-checkbox-group.md +13 -5
- package/llms/components/lr-checkbox.md +5 -2
- package/llms/components/lr-checkpoint.md +6 -2
- package/llms/components/lr-combobox.md +5 -2
- package/llms/components/lr-command-palette.md +4 -1
- package/llms/components/lr-confirm-bar.md +7 -3
- package/llms/components/lr-context-meter.md +12 -11
- package/llms/components/lr-conversation-item.md +7 -4
- package/llms/components/lr-details.md +11 -2
- package/llms/components/lr-dialog.md +15 -10
- package/llms/components/lr-dock-panel.md +7 -10
- package/llms/components/lr-document-preview.md +6 -1
- package/llms/components/lr-document-viewer.md +3 -2
- package/llms/components/lr-doughnut-chart.md +4 -3
- package/llms/components/lr-drawer.md +3 -3
- package/llms/components/lr-entity-card.md +3 -3
- package/llms/components/lr-entity-chip.md +1 -1
- package/llms/components/lr-entity-dossier.md +4 -1
- package/llms/components/lr-file-input.md +2 -2
- package/llms/components/lr-flag.md +20 -5
- package/llms/components/lr-heatmap.md +28 -0
- package/llms/components/lr-histogram.md +3 -1
- package/llms/components/lr-icon.md +1 -1
- package/llms/components/lr-json-schema-viewer.md +2 -1
- package/llms/components/lr-knowledge-graph-explorer.md +8 -3
- package/llms/components/lr-known-date.md +4 -2
- package/llms/components/lr-line-chart.md +4 -3
- package/llms/components/lr-lite-chart.md +16 -6
- package/llms/components/lr-map.md +72 -8
- package/llms/components/lr-markdown-core.md +3 -2
- package/llms/components/lr-media-card.md +28 -12
- package/llms/components/lr-message-parts.md +2 -1
- package/llms/components/lr-model-select.md +9 -10
- package/llms/components/lr-model-settings-panel.md +9 -9
- package/llms/components/lr-neighbor-list.md +1 -1
- package/llms/components/lr-notebook-viewer.md +6 -3
- package/llms/components/lr-option.md +5 -2
- package/llms/components/lr-pdf-viewer.md +62 -2
- package/llms/components/lr-pie-chart.md +4 -3
- package/llms/components/lr-polar-area-chart.md +4 -3
- package/llms/components/lr-popover.md +5 -0
- package/llms/components/lr-progress-ring.md +8 -1
- package/llms/components/lr-prompt-studio.md +1 -1
- package/llms/components/lr-provenance-panel.md +4 -2
- package/llms/components/lr-qr-code.md +1 -1
- package/llms/components/lr-radar-chart.md +4 -3
- package/llms/components/lr-rag-eval-dashboard.md +2 -2
- package/llms/components/lr-random-content.md +13 -0
- package/llms/components/lr-reorder-item.md +6 -1
- package/llms/components/lr-reorder-list.md +6 -1
- package/llms/components/lr-responsive-panel.md +11 -7
- package/llms/components/lr-scatter-chart.md +4 -3
- package/llms/components/lr-sequence-strip.md +16 -2
- package/llms/components/lr-slider.md +12 -5
- package/llms/components/lr-sparkline.md +1 -1
- package/llms/components/lr-suggestion-chips.md +7 -2
- package/llms/components/lr-swatch-picker.md +5 -5
- package/llms/components/lr-switch.md +5 -2
- package/llms/components/lr-table.md +30 -4
- package/llms/components/lr-terminal.md +3 -1
- package/llms/components/lr-thread-list.md +8 -8
- package/llms/components/lr-time-input.md +6 -1
- package/llms/components/lr-timeline-item.md +24 -0
- package/llms/components/lr-timeline.md +25 -1
- package/llms/components/lr-token-input.md +7 -2
- package/llms/components/lr-tool-approval-dialog.md +7 -8
- package/llms/components/lr-tool-call-chip.md +5 -1
- package/llms/components/lr-tool-param-form.md +14 -12
- package/llms/components/lr-tool-result-dialog.md +11 -9
- package/llms/components/lr-tool-result-view.md +7 -6
- package/llms/components/lr-tool-select-dialog.md +18 -16
- package/llms/components/lr-trace-tree.md +3 -1
- package/llms/components/lr-usage-badge.md +4 -1
- package/llms/components/lr-video-playlist.md +1 -1
- package/llms/components/lr-virtual-list.md +22 -14
- package/llms/components/lr-voice-picker.md +8 -5
- package/llms/components/lr-widget-renderer.md +3 -3
- package/llms/components/lr-widget.md +1 -1
- package/llms/components/lr-word-cloud.md +6 -2
- package/llms/peers.md +12 -2
- package/llms/shared.md +70 -2
- package/llms-full.txt +1143 -285
- package/package.json +17 -5
- package/vscode-css-data.json +37 -2
- package/vscode-html-data.json +401 -44
- package/web-types.json +299 -55
package/dist/components/retrieval/knowledge-graph-explorer/knowledge-graph-explorer.styles.js
CHANGED
|
@@ -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
|
|
93
|
-
*
|
|
94
|
-
*
|
|
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
|
|
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
|
-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
53
|
-
*
|
|
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-
|
|
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-
|
|
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.
|
|
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
|
}
|