@aceshooting/lyra-ui 9.1.0 → 10.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +843 -0
- package/README.md +7 -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 +2 -2
- 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 +9 -7
- 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.class.js +1 -1
- 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.class.js +1 -1
- package/dist/components/agent-tools/browser-frame/browser-frame.styles.js +3 -5
- package/dist/components/agent-tools/commit-card/commit-card.class.js +1 -1
- 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.class.js +2 -2
- package/dist/components/agent-tools/confirm-bar/confirm-bar.styles.js +0 -46
- package/dist/components/agent-tools/context-inspector/context-inspector.class.js +1 -1
- package/dist/components/agent-tools/eval-dataset/eval-dataset.styles.js +0 -7
- package/dist/components/agent-tools/eval-result/eval-result.class.js +1 -1
- package/dist/components/agent-tools/evaluation-run/evaluation-run.class.js +2 -2
- package/dist/components/agent-tools/policy-summary/policy-summary.class.js +1 -1
- 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 +2 -5
- package/dist/components/agent-tools/span-waterfall/span-waterfall.class.js +1 -1
- 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 +1 -4
- package/dist/components/agent-tools/task-list/task-list.class.js +2 -2
- 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.class.js +1 -1
- 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.class.js +2 -2
- 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.class.js +2 -2
- 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.class.js +2 -2
- package/dist/components/agent-tools/trace-tree/trace-tree.styles.js +7 -31
- package/dist/components/charts/chart/bar-chart.class.js +1 -1
- package/dist/components/charts/chart/box-plot.styles.js +0 -20
- package/dist/components/charts/chart/bubble-chart.class.js +1 -1
- 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/doughnut-chart.class.js +1 -1
- package/dist/components/charts/chart/histogram.class.js +1 -1
- package/dist/components/charts/chart/line-chart.class.js +1 -1
- 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/charts/chart/pie-chart.class.js +1 -1
- package/dist/components/charts/chart/polar-area-chart.class.js +1 -1
- package/dist/components/charts/chart/radar-chart.class.js +1 -1
- package/dist/components/charts/chart/scatter-chart.class.js +1 -1
- 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.class.js +2 -2
- package/dist/components/conversation/chat-message/chat-message.styles.js +13 -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/realtime-session/realtime-session.styles.js +1 -1
- 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 +5 -19
- 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.class.js +1 -1
- 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/file-tree/file-tree.class.js +1 -1
- 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 +85 -2
- 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.class.js +1 -1
- 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 +1 -106
- 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 +3 -38
- 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 +5 -13
- 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.class.js +1 -1
- 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.class.js +1 -1
- package/dist/components/layout/multi-split/multi-split.styles.js +8 -51
- 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 +2 -2
- package/dist/components/media/attachment-chip/attachment-chip.styles.js +0 -31
- package/dist/components/media/attachment-trigger/attachment-trigger.class.d.ts +1 -1
- package/dist/components/media/attachment-trigger/attachment-trigger.class.js +4 -4
- 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.class.js +1 -1
- 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 +2 -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 +2 -13
- 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.class.js +1 -1
- 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 +2 -2
- package/dist/components/overlays/popup/popup.class.d.ts +1 -0
- package/dist/components/overlays/popup/popup.class.js +2 -2
- 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 +2 -5
- 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.class.js +1 -1
- 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/entity-dossier/entity-dossier.class.js +1 -1
- 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/grounding-summary/grounding-summary.class.js +2 -2
- 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 +6 -11
- package/dist/components/retrieval/memory-panel/memory-panel.class.js +1 -1
- 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.class.js +1 -1
- 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.class.js +1 -1
- 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.class.js +1 -1
- 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/contact-viewer/contact-viewer.class.js +1 -1
- 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.class.js +1 -1
- 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.class.js +1 -1
- 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 +30 -0
- package/dist/internal/dev-mode-attribute-warning.js +1 -0
- 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 +9 -6
- 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 +29 -1
- 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/index.md +1 -1
- package/llms/peers.md +13 -3
- package/llms/shared.md +83 -2
- package/llms-full.txt +1159 -288
- package/package.json +19 -7
- package/vscode-css-data.json +37 -2
- package/vscode-html-data.json +402 -45
- package/web-types.json +300 -56
|
@@ -1,15 +1,7 @@
|
|
|
1
1
|
import{css}from"lit";const styles=css`
|
|
2
2
|
:host {
|
|
3
3
|
display: block;
|
|
4
|
-
/* Makes the host a query container so the @container rule below reacts to the bar's own
|
|
5
|
-
allocated width (a chat transcript, a split pane, a narrow dialog) instead of the
|
|
6
|
-
viewport's. */
|
|
7
4
|
container: lr-confirm-bar / inline-size;
|
|
8
|
-
/* inline-size containment strips the box of content-based intrinsic sizing, so without this
|
|
9
|
-
fallback the bar collapses to a sliver in any shrink-to-fit context (a flex row, a centered
|
|
10
|
-
grid cell, a fit-content wrapper) -- the same pairing every other inline-size query
|
|
11
|
-
container in the library declares (eval-result, mcp-app, prompt-studio). The compact host
|
|
12
|
-
state sets container: none and is unaffected either way. */
|
|
13
5
|
contain-intrinsic-inline-size: var(--lr-size-20rem);
|
|
14
6
|
min-inline-size: 0;
|
|
15
7
|
max-inline-size: 100%;
|
|
@@ -43,16 +35,6 @@ import{css}from"lit";const styles=css`
|
|
|
43
35
|
justify-content: flex-end;
|
|
44
36
|
gap: var(--lr-space-s);
|
|
45
37
|
}
|
|
46
|
-
/* deny-button/approve-button are <lr-button> hosts (see confirm-bar.class.ts's render()) --
|
|
47
|
-
their own padding/border/background/color/hover/focus-visible/disabled chrome lives entirely
|
|
48
|
-
inside lr-button's own styles.ts, driven by its "variant" property. A rule declared here
|
|
49
|
-
against [part='deny-button']/[part='approve-button'] directly would either double up a visual
|
|
50
|
-
effect lr-button already applies internally (hover brightness, disabled opacity both compound
|
|
51
|
-
when applied on both the outer host and the inner native button) or be silently dead
|
|
52
|
-
(:focus-visible never matches this outer host -- real DOM focus lands on the native <button>
|
|
53
|
-
nested one shadow level down, inside lr-button's own shadow root, never on the host itself).
|
|
54
|
-
Only cross-cutting FLEX-ITEM sizing concerns belong here -- the @container rule below is
|
|
55
|
-
exactly that, and is unaffected by what part="deny-button"/"approve-button" resolves to. */
|
|
56
38
|
[part='status'] {
|
|
57
39
|
display: flex;
|
|
58
40
|
align-items: center;
|
|
@@ -83,18 +65,8 @@ import{css}from"lit";const styles=css`
|
|
|
83
65
|
}
|
|
84
66
|
}
|
|
85
67
|
|
|
86
|
-
/* Density escape -- same convention as lr-agent-run's/lr-commit-card's compact, and purely a
|
|
87
|
-
density and layout knob: the card border, radius and background all stay, and frame='plain'
|
|
88
|
-
below is what drops them. The tuned values sit behind inline var() fallbacks (rather than a
|
|
89
|
-
:host declaration, which every instance would re-declare and so shadow any ancestor value) so a
|
|
90
|
-
consumer can retune the density from outside without restating the whole rule. */
|
|
91
68
|
:host([compact]) {
|
|
92
69
|
display: inline-flex;
|
|
93
|
-
/* The container query above measures *this* host. A compact bar exists precisely to be dropped
|
|
94
|
-
into a narrow slot (a table cell, a card action row), so that query would fire essentially
|
|
95
|
-
always and stretch the buttons to fill -- the exact opposite of the intent. Dropping the
|
|
96
|
-
query container is what neutralizes it: with no containment here and (normally) no ancestor
|
|
97
|
-
container either, the max-inline-size: 20rem query simply never matches. */
|
|
98
70
|
container: none;
|
|
99
71
|
}
|
|
100
72
|
:host([compact]) [part='base'] {
|
|
@@ -111,31 +83,13 @@ import{css}from"lit";const styles=css`
|
|
|
111
83
|
:host([compact]) [part='footer'] {
|
|
112
84
|
flex: 0 0 auto;
|
|
113
85
|
}
|
|
114
|
-
/* Once decided the buttons unmount and [part='footer'] is left holding only the (usually
|
|
115
|
-
unassigned) footer slot -- a zero-size flex item that would still consume one gap mid-row.
|
|
116
|
-
display: contents drops that box so the row closes up, while any real footer-slotted
|
|
117
|
-
content simply becomes a direct flex item of the row instead. */
|
|
118
86
|
:host([compact][decision]) [part='footer'] {
|
|
119
87
|
display: contents;
|
|
120
88
|
}
|
|
121
|
-
/* Chrome escape -- the shared frame='plain' treatment, same convention as lr-agent-run's and
|
|
122
|
-
lr-result-card's. MUST stay after both :host([variant='danger']) [part='base'] and
|
|
123
|
-
:host([compact]) [part='base']: all three are equal-specificity, so source order alone decides
|
|
124
|
-
which border/padding wins. plain is the stronger statement ('no chrome at all'), so it goes
|
|
125
|
-
last. The Deny/Approve lr-buttons keep their own border/background -- that chrome is theirs,
|
|
126
|
-
not the card's -- so a chrome-less bar still has a visible interactive affordance. */
|
|
127
89
|
:host([frame='plain']) [part='base'] {
|
|
128
90
|
padding: 0;
|
|
129
91
|
border: 0;
|
|
130
92
|
border-radius: 0;
|
|
131
93
|
background: transparent;
|
|
132
94
|
}
|
|
133
|
-
/* NOTE: the undecided [part='status'] is deliberately NOT collapsed here, in either presentation.
|
|
134
|
-
[part='status']:empty above never actually matches (the part's lit template leaves
|
|
135
|
-
whitespace-only text nodes behind, and Chromium's :empty ignores only comments), and that dead
|
|
136
|
-
rule is load-bearing by accident: decide() focuses [part='status'] synchronously *before*
|
|
137
|
-
setting this.decision, so anything that made the undecided status display: none would leave
|
|
138
|
-
.focus() a no-op and drop focus to <body> the moment the buttons unmount. An empty flex item
|
|
139
|
-
is zero-sized in both presentations; the only cost is one trailing gap at the end of a compact
|
|
140
|
-
row. See llms/agent-tools.md. */
|
|
141
95
|
`;export{styles};
|
|
@@ -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{LyraElement}from"../../../internal/lyra-element.js";import{finiteCount}from"../../../internal/numbers.js";import{resolveIntlLocale}from"../../../internal/intl-cache.js";import"../../data/context-meter/context-meter.class.js";import"../../utility/copy-button/copy-button.class.js";import"../../utility/export-button/export-button.class.js";import"../../retrieval/citation-badge/citation-badge.class.js";import"../../overlays/empty/empty.class.js";import{styles}from"./context-inspector.styles.js";import{firstByIdentity}from"../collection-identity.js";import{overallSemanticLabel,overallSemanticRole}from"../semantic-owner.js";import{LYRA_DEFAULT_collapse,LYRA_DEFAULT_contextInspectorCopyLabel,LYRA_DEFAULT_contextInspectorEmpty,LYRA_DEFAULT_contextInspectorLabel,LYRA_DEFAULT_contextInspectorRedacted,LYRA_DEFAULT_contextInspectorSegmentTokens,LYRA_DEFAULT_contextInspectorTruncated,LYRA_DEFAULT_contextInspectorTruncatedCount,LYRA_DEFAULT_details,LYRA_DEFAULT_fieldRequired,LYRA_DEFAULT_map,LYRA_DEFAULT_navigation,LYRA_DEFAULT_open,LYRA_DEFAULT_progress,LYRA_DEFAULT_restore,LYRA_DEFAULT_search,LYRA_DEFAULT_select}from"../../../internal/default-strings.generated.js";function normalizeRedactions(redactions,length){if(!redactions||redactions.length===0)return[];const clamped=redactions.map(r=>({start:finiteCount(Math.min(r.start,r.end),0,length),end:finiteCount(Math.max(r.start,r.end),0,length),reason:r.reason})).filter(r=>r.end>r.start).sort((a,b)=>a.start-b.start),merged=[];for(const r of clamped){const prev=merged[merged.length-1];if(prev&&r.start<prev.end){prev.end=Math.max(prev.end,r.end);continue}merged.push({...r})}return merged}function formatCount(n,locale){return Math.round(finiteCount(n)).toLocaleString(resolveIntlLocale(locale))}class LyraContextInspector extends LyraElement{constructor(){super(...arguments),this.segments=[],this.total=0,this.label="",this.exportFormats=["json"],this.exportFilename="context"}static{this.defaultStrings={...super.defaultStrings,collapse:LYRA_DEFAULT_collapse,contextInspectorCopyLabel:LYRA_DEFAULT_contextInspectorCopyLabel,contextInspectorEmpty:LYRA_DEFAULT_contextInspectorEmpty,contextInspectorLabel:LYRA_DEFAULT_contextInspectorLabel,contextInspectorRedacted:LYRA_DEFAULT_contextInspectorRedacted,contextInspectorSegmentTokens:LYRA_DEFAULT_contextInspectorSegmentTokens,contextInspectorTruncated:LYRA_DEFAULT_contextInspectorTruncated,contextInspectorTruncatedCount:LYRA_DEFAULT_contextInspectorTruncatedCount,details:LYRA_DEFAULT_details,fieldRequired:LYRA_DEFAULT_fieldRequired,map:LYRA_DEFAULT_map,navigation:LYRA_DEFAULT_navigation,open:LYRA_DEFAULT_open,progress:LYRA_DEFAULT_progress,restore:LYRA_DEFAULT_restore,search:LYRA_DEFAULT_search,select:LYRA_DEFAULT_select}}static{this.ownedCollectionProperties=Object.freeze(["segments","exportFormats"])}static{this.styles=[LyraElement.styles,styles]}get normalizedSegments(){return firstByIdentity(Array.isArray(this.segments)?this.segments:[],segment=>segment.id)}get meterSegments(){return this.normalizedSegments.map(s=>({label:s.label,value:s.tokens,...s.tone?{tone:s.tone}:{}}))}get safeTotal(){return finiteCount(this.total)}get assembledText(){return this.normalizedSegments.map(s=>`${s.label}
|
|
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{LyraElement}from"../../../internal/lyra-element.js";import{finiteCount}from"../../../internal/numbers.js";import{resolveIntlLocale}from"../../../internal/intl-cache.js";import"../../data/context-meter/context-meter.class.js";import"../../utility/copy-button/copy-button.class.js";import"../../utility/export-button/export-button.class.js";import"../../retrieval/citation-badge/citation-badge.class.js";import"../../overlays/empty/empty.class.js";import{styles}from"./context-inspector.styles.js";import{firstByIdentity}from"../collection-identity.js";import{overallSemanticLabel,overallSemanticRole}from"../semantic-owner.js";import{LYRA_DEFAULT_collapse,LYRA_DEFAULT_contextInspectorCopyLabel,LYRA_DEFAULT_contextInspectorEmpty,LYRA_DEFAULT_contextInspectorLabel,LYRA_DEFAULT_contextInspectorRedacted,LYRA_DEFAULT_contextInspectorSegmentTokens,LYRA_DEFAULT_contextInspectorTruncated,LYRA_DEFAULT_contextInspectorTruncatedCount,LYRA_DEFAULT_details,LYRA_DEFAULT_fieldRequired,LYRA_DEFAULT_map,LYRA_DEFAULT_navigation,LYRA_DEFAULT_open,LYRA_DEFAULT_popover,LYRA_DEFAULT_progress,LYRA_DEFAULT_restore,LYRA_DEFAULT_search,LYRA_DEFAULT_select}from"../../../internal/default-strings.generated.js";function normalizeRedactions(redactions,length){if(!redactions||redactions.length===0)return[];const clamped=redactions.map(r=>({start:finiteCount(Math.min(r.start,r.end),0,length),end:finiteCount(Math.max(r.start,r.end),0,length),reason:r.reason})).filter(r=>r.end>r.start).sort((a,b)=>a.start-b.start),merged=[];for(const r of clamped){const prev=merged[merged.length-1];if(prev&&r.start<prev.end){prev.end=Math.max(prev.end,r.end);continue}merged.push({...r})}return merged}function formatCount(n,locale){return Math.round(finiteCount(n)).toLocaleString(resolveIntlLocale(locale))}class LyraContextInspector extends LyraElement{constructor(){super(...arguments),this.segments=[],this.total=0,this.label="",this.exportFormats=["json"],this.exportFilename="context"}static{this.defaultStrings={...super.defaultStrings,collapse:LYRA_DEFAULT_collapse,contextInspectorCopyLabel:LYRA_DEFAULT_contextInspectorCopyLabel,contextInspectorEmpty:LYRA_DEFAULT_contextInspectorEmpty,contextInspectorLabel:LYRA_DEFAULT_contextInspectorLabel,contextInspectorRedacted:LYRA_DEFAULT_contextInspectorRedacted,contextInspectorSegmentTokens:LYRA_DEFAULT_contextInspectorSegmentTokens,contextInspectorTruncated:LYRA_DEFAULT_contextInspectorTruncated,contextInspectorTruncatedCount:LYRA_DEFAULT_contextInspectorTruncatedCount,details:LYRA_DEFAULT_details,fieldRequired:LYRA_DEFAULT_fieldRequired,map:LYRA_DEFAULT_map,navigation:LYRA_DEFAULT_navigation,open:LYRA_DEFAULT_open,popover:LYRA_DEFAULT_popover,progress:LYRA_DEFAULT_progress,restore:LYRA_DEFAULT_restore,search:LYRA_DEFAULT_search,select:LYRA_DEFAULT_select}}static{this.ownedCollectionProperties=Object.freeze(["segments","exportFormats"])}static{this.styles=[LyraElement.styles,styles]}get normalizedSegments(){return firstByIdentity(Array.isArray(this.segments)?this.segments:[],segment=>segment.id)}get meterSegments(){return this.normalizedSegments.map(s=>({label:s.label,value:s.tokens,...s.tone?{tone:s.tone}:{}}))}get safeTotal(){return finiteCount(this.total)}get assembledText(){return this.normalizedSegments.map(s=>`${s.label}
|
|
2
2
|
${s.text}`).join(`
|
|
3
3
|
|
|
4
4
|
`)}get exportRows(){return this.normalizedSegments.map(s=>({id:s.id,label:s.label,tokens:s.tokens,truncated:!!s.truncated,omittedTokens:s.omittedTokens??null,sourceId:s.citation?.sourceId??null,redactionCount:s.redactions?.length??0,text:s.text}))}renderSegmentText(segment){const text=segment.text,redactions=normalizeRedactions(segment.redactions,text.length);if(redactions.length===0)return html`${text}`;const nodes=[];let cursor=0;for(const r of redactions)r.start>cursor&&nodes.push(text.slice(cursor,r.start)),nodes.push(html`<mark part="redaction" title=${r.reason||this.localize("contextInspectorRedacted")}
|
|
@@ -27,14 +27,10 @@ import{css}from"lit";const styles=css`
|
|
|
27
27
|
font: inherit;
|
|
28
28
|
cursor: pointer;
|
|
29
29
|
}
|
|
30
|
-
/* Hover changes the border while the distinct pressed step below changes the surface fill. */
|
|
31
30
|
:where([part='add-button']):hover:where(:not(:disabled)),
|
|
32
31
|
:where([part='remove-button']):hover:where(:not(:disabled)) {
|
|
33
32
|
border-color: var(--lr-color-brand);
|
|
34
33
|
}
|
|
35
|
-
/* The hover recolours the border only, which leaves the pressed step nothing to deepen -- so
|
|
36
|
-
pressed tints the button's own surface fill toward --lr-color-mix-partner (which follows the
|
|
37
|
-
text colour) instead, darkening in a light theme and lightening in a dark one. */
|
|
38
34
|
:where([part='add-button']):active:where(:not(:disabled)),
|
|
39
35
|
:where([part='remove-button']):active:where(:not(:disabled)) {
|
|
40
36
|
background: color-mix(in oklab, var(--lr-color-surface), var(--lr-color-mix-partner) var(--lr-color-mix-active));
|
|
@@ -84,9 +80,6 @@ import{css}from"lit";const styles=css`
|
|
|
84
80
|
outline: var(--lr-focus-ring-width) solid var(--lr-focus-ring-color);
|
|
85
81
|
outline-offset: var(--lr-focus-ring-offset);
|
|
86
82
|
}
|
|
87
|
-
/* no-pressed-state: a search field is a caret target, not a push target -- pointer-down places an
|
|
88
|
-
insertion point and hands the affordance to :focus-visible, so a pressed tint would flash for
|
|
89
|
-
one frame and then be contradicted by the focus ring. */
|
|
90
83
|
:where([part='search-input']):hover:where(:not(:disabled)) {
|
|
91
84
|
border-color: var(--lr-color-brand);
|
|
92
85
|
}
|
|
@@ -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{LyraElement}from"../../../internal/lyra-element.js";import{styles}from"./eval-result.styles.js";import{firstByIdentity}from"../collection-identity.js";import"../../forms/rubric-form/rubric-form.class.js";import"../../data/table/table.class.js";import"../../utility/diff-view/diff-view.class.js";import{LYRA_DEFAULT_collapse,LYRA_DEFAULT_details,LYRA_DEFAULT_evaluationDashboardRunsLabel,LYRA_DEFAULT_fieldRequired,LYRA_DEFAULT_map,LYRA_DEFAULT_navigation,LYRA_DEFAULT_noData,LYRA_DEFAULT_open,LYRA_DEFAULT_progress,LYRA_DEFAULT_remove,LYRA_DEFAULT_restore,LYRA_DEFAULT_search,LYRA_DEFAULT_select}from"../../../internal/default-strings.generated.js";const EMPTY_RUNS=[],EMPTY_COLUMNS=[],EMPTY_KEYS=[],EMPTY_VALUE={};class LyraEvalResult extends LyraElement{constructor(){super(...arguments),this.runs=EMPTY_RUNS,this.columns=EMPTY_COLUMNS,this.rubricKeys=EMPTY_KEYS,this.selectedRunId=null,this.baselineRunId=null,this.reviewSkippable=!1,this.disabled=!1}static{this.defaultStrings={...super.defaultStrings,collapse:LYRA_DEFAULT_collapse,details:LYRA_DEFAULT_details,evaluationDashboardRunsLabel:LYRA_DEFAULT_evaluationDashboardRunsLabel,fieldRequired:LYRA_DEFAULT_fieldRequired,map:LYRA_DEFAULT_map,navigation:LYRA_DEFAULT_navigation,noData:LYRA_DEFAULT_noData,open:LYRA_DEFAULT_open,progress:LYRA_DEFAULT_progress,remove:LYRA_DEFAULT_remove,restore:LYRA_DEFAULT_restore,search:LYRA_DEFAULT_search,select:LYRA_DEFAULT_select}}static{this.ownedCollectionProperties=Object.freeze(["runs","columns","rubricKeys"])}static{this.styles=[LyraElement.styles,styles]}static{this.immutableEventDetails=Object.freeze(["lr-run-activate","lr-review-input","lr-review-validity-change","lr-review-submit","lr-review-skip"])}get normalizedRuns(){return firstByIdentity(Array.isArray(this.runs)?this.runs:[],run=>run.id)}get normalizedColumns(){return firstByIdentity(Array.isArray(this.columns)?this.columns:[],column=>column.key)}get normalizedRubricKeys(){return firstByIdentity(Array.isArray(this.rubricKeys)?this.rubricKeys:[],key=>key.key)}get effectiveSelectedRunId(){return this.selectedRunId??this.normalizedRuns[0]?.id??""}get selectedRun(){const id=this.effectiveSelectedRunId;return this.normalizedRuns.find(run=>run.id===id)}get effectiveBaselineRunId(){return this.baselineRunId??this.normalizedRuns[0]?.id??""}get baselineRun(){const id=this.effectiveBaselineRunId;return this.normalizedRuns.find(run=>run.id===id)}stopOwnedEvent(event){event.stopPropagation()}renderReview(selected){return html`<lr-rubric-form
|
|
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{LyraElement}from"../../../internal/lyra-element.js";import{styles}from"./eval-result.styles.js";import{firstByIdentity}from"../collection-identity.js";import"../../forms/rubric-form/rubric-form.class.js";import"../../data/table/table.class.js";import"../../utility/diff-view/diff-view.class.js";import{LYRA_DEFAULT_collapse,LYRA_DEFAULT_details,LYRA_DEFAULT_evaluationDashboardRunsLabel,LYRA_DEFAULT_fieldRequired,LYRA_DEFAULT_map,LYRA_DEFAULT_navigation,LYRA_DEFAULT_noData,LYRA_DEFAULT_open,LYRA_DEFAULT_popover,LYRA_DEFAULT_progress,LYRA_DEFAULT_remove,LYRA_DEFAULT_restore,LYRA_DEFAULT_search,LYRA_DEFAULT_select}from"../../../internal/default-strings.generated.js";const EMPTY_RUNS=[],EMPTY_COLUMNS=[],EMPTY_KEYS=[],EMPTY_VALUE={};class LyraEvalResult extends LyraElement{constructor(){super(...arguments),this.runs=EMPTY_RUNS,this.columns=EMPTY_COLUMNS,this.rubricKeys=EMPTY_KEYS,this.selectedRunId=null,this.baselineRunId=null,this.reviewSkippable=!1,this.disabled=!1}static{this.defaultStrings={...super.defaultStrings,collapse:LYRA_DEFAULT_collapse,details:LYRA_DEFAULT_details,evaluationDashboardRunsLabel:LYRA_DEFAULT_evaluationDashboardRunsLabel,fieldRequired:LYRA_DEFAULT_fieldRequired,map:LYRA_DEFAULT_map,navigation:LYRA_DEFAULT_navigation,noData:LYRA_DEFAULT_noData,open:LYRA_DEFAULT_open,popover:LYRA_DEFAULT_popover,progress:LYRA_DEFAULT_progress,remove:LYRA_DEFAULT_remove,restore:LYRA_DEFAULT_restore,search:LYRA_DEFAULT_search,select:LYRA_DEFAULT_select}}static{this.ownedCollectionProperties=Object.freeze(["runs","columns","rubricKeys"])}static{this.styles=[LyraElement.styles,styles]}static{this.immutableEventDetails=Object.freeze(["lr-run-activate","lr-review-input","lr-review-validity-change","lr-review-submit","lr-review-skip"])}get normalizedRuns(){return firstByIdentity(Array.isArray(this.runs)?this.runs:[],run=>run.id)}get normalizedColumns(){return firstByIdentity(Array.isArray(this.columns)?this.columns:[],column=>column.key)}get normalizedRubricKeys(){return firstByIdentity(Array.isArray(this.rubricKeys)?this.rubricKeys:[],key=>key.key)}get effectiveSelectedRunId(){return this.selectedRunId??this.normalizedRuns[0]?.id??""}get selectedRun(){const id=this.effectiveSelectedRunId;return this.normalizedRuns.find(run=>run.id===id)}get effectiveBaselineRunId(){return this.baselineRunId??this.normalizedRuns[0]?.id??""}get baselineRun(){const id=this.effectiveBaselineRunId;return this.normalizedRuns.find(run=>run.id===id)}stopOwnedEvent(event){event.stopPropagation()}renderReview(selected){return html`<lr-rubric-form
|
|
2
2
|
part="review"
|
|
3
3
|
.keys=${this.normalizedRubricKeys}
|
|
4
4
|
.value=${selected.review??EMPTY_VALUE}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var __decorate=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r};import{html,nothing}from"lit";import{property,state,query}from"lit/decorators.js";import{LyraElement}from"../../../internal/lyra-element.js";import{finiteCount}from"../../../internal/numbers.js";import{getNumberFormat}from"../../../internal/intl-cache.js";import{firstByIdentity}from"../collection-identity.js";import{styles}from"./evaluation-run.styles.js";import{agentStatusKind,agentStatusLabel,agentStatusMessage,agentStatusVariant,isAgentStatusTerminal}from"../agent-status-presentation.js";import{overallSemanticLabel,overallSemanticRole}from"../semantic-owner.js";import{LYRA_DEFAULT_agentRunStatusCollecting,LYRA_DEFAULT_agentRunStatusQueued,LYRA_DEFAULT_evaluationRunExampleCancelledAnnounce,LYRA_DEFAULT_evaluationRunExampleCompletedAnnounce,LYRA_DEFAULT_evaluationRunExampleFailedAnnounce,LYRA_DEFAULT_evaluationRunExampleLabel,LYRA_DEFAULT_evaluationRunExampleStartedAnnounce,LYRA_DEFAULT_evaluationRunExampleWaitingApprovalAnnounce,LYRA_DEFAULT_evaluationRunExampleWaitingInputAnnounce,LYRA_DEFAULT_evaluationRunFailedCount,LYRA_DEFAULT_evaluationRunGroundingHeading,LYRA_DEFAULT_evaluationRunInputHeading,LYRA_DEFAULT_evaluationRunLabel,LYRA_DEFAULT_evaluationRunOutputHeading,LYRA_DEFAULT_evaluationRunProgressLabel,LYRA_DEFAULT_evaluationRunProgressSummary,LYRA_DEFAULT_evaluationRunRunningCount,LYRA_DEFAULT_evaluationRunStatusCancelled,LYRA_DEFAULT_evaluationRunStatusIdle,LYRA_DEFAULT_evaluationRunStatusWaitingApproval,LYRA_DEFAULT_evaluationRunStatusWaitingInput,LYRA_DEFAULT_evaluationRunToolTraceHeading,LYRA_DEFAULT_noData,LYRA_DEFAULT_statusError,LYRA_DEFAULT_statusRunning,LYRA_DEFAULT_statusSuccess}from"../../../internal/default-strings.generated.js";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}from"lit";import{property,state,query}from"lit/decorators.js";import{LyraElement}from"../../../internal/lyra-element.js";import{finiteCount}from"../../../internal/numbers.js";import{getNumberFormat}from"../../../internal/intl-cache.js";import{AGENT_STATUS_VARIANTS}from"../../../internal/agent-status-variants.js";import{firstByIdentity}from"../collection-identity.js";import{styles}from"./evaluation-run.styles.js";import{agentStatusKind,agentStatusLabel,agentStatusMessage,agentStatusVariant,isAgentStatusTerminal}from"../agent-status-presentation.js";import{overallSemanticLabel,overallSemanticRole}from"../semantic-owner.js";import{LYRA_DEFAULT_agentRunStatusCollecting,LYRA_DEFAULT_agentRunStatusQueued,LYRA_DEFAULT_evaluationRunExampleCancelledAnnounce,LYRA_DEFAULT_evaluationRunExampleCompletedAnnounce,LYRA_DEFAULT_evaluationRunExampleFailedAnnounce,LYRA_DEFAULT_evaluationRunExampleLabel,LYRA_DEFAULT_evaluationRunExampleStartedAnnounce,LYRA_DEFAULT_evaluationRunExampleWaitingApprovalAnnounce,LYRA_DEFAULT_evaluationRunExampleWaitingInputAnnounce,LYRA_DEFAULT_evaluationRunFailedCount,LYRA_DEFAULT_evaluationRunGroundingHeading,LYRA_DEFAULT_evaluationRunInputHeading,LYRA_DEFAULT_evaluationRunLabel,LYRA_DEFAULT_evaluationRunOutputHeading,LYRA_DEFAULT_evaluationRunProgressLabel,LYRA_DEFAULT_evaluationRunProgressSummary,LYRA_DEFAULT_evaluationRunRunningCount,LYRA_DEFAULT_evaluationRunStatusCancelled,LYRA_DEFAULT_evaluationRunStatusIdle,LYRA_DEFAULT_evaluationRunStatusWaitingApproval,LYRA_DEFAULT_evaluationRunStatusWaitingInput,LYRA_DEFAULT_evaluationRunToolTraceHeading,LYRA_DEFAULT_noData,LYRA_DEFAULT_statusError,LYRA_DEFAULT_statusRunning,LYRA_DEFAULT_statusSuccess}from"../../../internal/default-strings.generated.js";const RUNNING_ERROR_KINDS=["running","error"];class LyraEvalRun extends LyraElement{constructor(){super(...arguments),this.examples=[],this.total=null,this.label="",this.expandedIds=new Set,this.isMounting=!0,this.previousStatusById=new Map}static{this.defaultStrings={...super.defaultStrings,agentRunStatusCollecting:LYRA_DEFAULT_agentRunStatusCollecting,agentRunStatusQueued:LYRA_DEFAULT_agentRunStatusQueued,evaluationRunExampleCancelledAnnounce:LYRA_DEFAULT_evaluationRunExampleCancelledAnnounce,evaluationRunExampleCompletedAnnounce:LYRA_DEFAULT_evaluationRunExampleCompletedAnnounce,evaluationRunExampleFailedAnnounce:LYRA_DEFAULT_evaluationRunExampleFailedAnnounce,evaluationRunExampleLabel:LYRA_DEFAULT_evaluationRunExampleLabel,evaluationRunExampleStartedAnnounce:LYRA_DEFAULT_evaluationRunExampleStartedAnnounce,evaluationRunExampleWaitingApprovalAnnounce:LYRA_DEFAULT_evaluationRunExampleWaitingApprovalAnnounce,evaluationRunExampleWaitingInputAnnounce:LYRA_DEFAULT_evaluationRunExampleWaitingInputAnnounce,evaluationRunFailedCount:LYRA_DEFAULT_evaluationRunFailedCount,evaluationRunGroundingHeading:LYRA_DEFAULT_evaluationRunGroundingHeading,evaluationRunInputHeading:LYRA_DEFAULT_evaluationRunInputHeading,evaluationRunLabel:LYRA_DEFAULT_evaluationRunLabel,evaluationRunOutputHeading:LYRA_DEFAULT_evaluationRunOutputHeading,evaluationRunProgressLabel:LYRA_DEFAULT_evaluationRunProgressLabel,evaluationRunProgressSummary:LYRA_DEFAULT_evaluationRunProgressSummary,evaluationRunRunningCount:LYRA_DEFAULT_evaluationRunRunningCount,evaluationRunStatusCancelled:LYRA_DEFAULT_evaluationRunStatusCancelled,evaluationRunStatusIdle:LYRA_DEFAULT_evaluationRunStatusIdle,evaluationRunStatusWaitingApproval:LYRA_DEFAULT_evaluationRunStatusWaitingApproval,evaluationRunStatusWaitingInput:LYRA_DEFAULT_evaluationRunStatusWaitingInput,evaluationRunToolTraceHeading:LYRA_DEFAULT_evaluationRunToolTraceHeading,noData:LYRA_DEFAULT_noData,statusError:LYRA_DEFAULT_statusError,statusRunning:LYRA_DEFAULT_statusRunning,statusSuccess:LYRA_DEFAULT_statusSuccess}}static{this.ownedCollectionProperties=Object.freeze(["examples"])}static{this.styles=[LyraElement.styles,styles]}static{this.immutableEventDetails=Object.freeze(["lr-example-citation-select","lr-example-claim-select"])}get normalizedExamples(){return firstByIdentity(Array.isArray(this.examples)?this.examples:[],example=>example.id)}willUpdate(changed){if(super.willUpdate(changed),!changed.has("examples"))return;const ids=new Set(this.normalizedExamples.map(example=>example.id));let pruned;for(const id of this.expandedIds)ids.has(id)||(pruned??=new Set(this.expandedIds),pruned.delete(id));pruned&&(this.expandedIds=pruned)}updated(changed){super.updated(changed);const wasMounting=this.isMounting;this.isMounting=!1,changed.has("examples")&&this.diffAndAnnounce(wasMounting)}statusCounts(){const counts={};for(const example of this.normalizedExamples)counts[example.status.kind]=(counts[example.status.kind]??0)+1;return counts}exampleLabel(example,index){return example.label||this.localize("evaluationRunExampleLabel",void 0,{index:getNumberFormat(this.effectiveLocale).format(index+1)})}statusText(status){const override=agentStatusLabel(status);if(override!==void 0)return override;const kind=agentStatusKind(status);switch(kind){case"idle":return this.localize("evaluationRunStatusIdle");case"running":return this.localize("statusRunning");case"queued":return this.localize("agentRunStatusQueued");case"collecting":return this.localize("agentRunStatusCollecting");case"waiting-input":return this.localize("evaluationRunStatusWaitingInput");case"waiting-approval":return this.localize("evaluationRunStatusWaitingApproval");case"done":return this.localize("statusSuccess");case"error":return this.localize("statusError");case"cancelled":return this.localize("evaluationRunStatusCancelled");default:return kind.replace(/[-_]+/g," ").replace(/\b\w/g,letter=>letter.toUpperCase())}}diffAndAnnounce(firstSight){const region=this.liveRegion,nextStatusById=new Map;this.normalizedExamples.forEach((example,index)=>{if(nextStatusById.set(example.id,example.status.kind),firstSight||!region)return;const previous=this.previousStatusById.get(example.id),kind=example.status.kind;if(previous===void 0||previous===kind)return;const label=this.exampleLabel(example,index);switch(kind){case"running":region.mode="polite",region.announce(this.localize("evaluationRunExampleStartedAnnounce",void 0,{label}),{force:!0});break;case"done":region.mode="polite",region.announce(this.localize("evaluationRunExampleCompletedAnnounce",void 0,{label}),{force:!0});break;case"error":region.mode="assertive",region.announce(this.localize("evaluationRunExampleFailedAnnounce",void 0,{label}),{force:!0});break;case"cancelled":region.mode="polite",region.announce(this.localize("evaluationRunExampleCancelledAnnounce",void 0,{label}),{force:!0});break;case"waiting-input":region.mode="polite",region.announce(this.localize("evaluationRunExampleWaitingInputAnnounce",void 0,{label}),{force:!0});break;case"waiting-approval":region.mode="polite",region.announce(this.localize("evaluationRunExampleWaitingApprovalAnnounce",void 0,{label}),{force:!0});break;case"idle":break}}),this.previousStatusById=nextStatusById}onExampleToggle(id,event){event.stopPropagation();const expanded=event.detail.open,next=new Set(this.expandedIds);expanded?next.add(id):next.delete(id),this.expandedIds=next,this.emit("lr-example-toggle",{exampleId:id,expanded})}onCitationSelect(exampleId,event){event.stopPropagation(),this.emit("lr-example-citation-select",{exampleId,citation:event.detail.citation})}onClaimSelect(exampleId,event){event.stopPropagation(),this.emit("lr-example-claim-select",{exampleId,claim:event.detail.claim})}onToolApprovalDecide(exampleId,event){event.stopPropagation(),this.emit("lr-example-tool-approval-decide",{exampleId,...event.detail},{cancelable:!0}).defaultPrevented&&event.preventDefault()}onToolActivate(exampleId,event){event.stopPropagation(),this.emit("lr-example-tool-activate",{exampleId,...event.detail})}onToolRenderError(exampleId,event){event.stopPropagation(),this.emit("lr-example-tool-render-error",{exampleId,...event.detail})}stopOwnedEvent(event){event.stopPropagation()}renderContent(content,part){return content.format==="code"?html`<lr-code-block
|
|
2
2
|
part=${part}
|
|
3
3
|
code=${content.text}
|
|
4
4
|
language=${content.language??""}
|
|
@@ -53,7 +53,7 @@ var __decorate=function(decorators,target,key,desc){var c=arguments.length,r=c<3
|
|
|
53
53
|
>
|
|
54
54
|
<span slot="summary" part="example-summary">
|
|
55
55
|
<span part="example-label">${this.exampleLabel(example,index)}</span>
|
|
56
|
-
<lr-badge part="example-status" variant=${agentStatusVariant(example.status,
|
|
56
|
+
<lr-badge part="example-status" variant=${agentStatusVariant(example.status,AGENT_STATUS_VARIANTS[kind]??"neutral")}>${this.statusText(example.status)}</lr-badge>
|
|
57
57
|
${message!==void 0?html`<span part="example-status-message">${message}</span>`:nothing}
|
|
58
58
|
</span>
|
|
59
59
|
${expanded?html`
|
|
@@ -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{LyraElement}from"../../../internal/lyra-element.js";import{getNumberFormat}from"../../../internal/intl-cache.js";import"../../overlays/badge/badge.class.js";import"../../layout/details/details.class.js";import"../../overlays/empty/empty.class.js";import{styles}from"./policy-summary.styles.js";import{firstByIdentity}from"../collection-identity.js";import{LYRA_DEFAULT_collapse,LYRA_DEFAULT_deny,LYRA_DEFAULT_details,LYRA_DEFAULT_fieldRequired,LYRA_DEFAULT_map,LYRA_DEFAULT_navigation,LYRA_DEFAULT_noData,LYRA_DEFAULT_open,LYRA_DEFAULT_policySummaryAllowCount,LYRA_DEFAULT_policySummaryCategoryGuardrail,LYRA_DEFAULT_policySummaryCategoryPermission,LYRA_DEFAULT_policySummaryCategoryPrivacy,LYRA_DEFAULT_policySummaryCategoryTool,LYRA_DEFAULT_policySummaryDenyCount,LYRA_DEFAULT_policySummaryDetailLabel,LYRA_DEFAULT_policySummaryLabel,LYRA_DEFAULT_policySummaryNeedsReviewCount,LYRA_DEFAULT_policySummaryStateAllow,LYRA_DEFAULT_policySummaryStateDeny,LYRA_DEFAULT_policySummaryStateNeedsReview,LYRA_DEFAULT_progress,LYRA_DEFAULT_restore,LYRA_DEFAULT_search,LYRA_DEFAULT_select}from"../../../internal/default-strings.generated.js";const STATE_VARIANT={allow:"success",deny:"danger","needs-review":"warning"},STATE_LABEL_KEY={allow:"policySummaryStateAllow",deny:"policySummaryStateDeny","needs-review":"policySummaryStateNeedsReview"},STATE_COUNT_KEY={allow:"policySummaryAllowCount",deny:"policySummaryDenyCount","needs-review":"policySummaryNeedsReviewCount"},CATEGORY_LABEL_KEY={guardrail:"policySummaryCategoryGuardrail",permission:"policySummaryCategoryPermission",privacy:"policySummaryCategoryPrivacy",tool:"policySummaryCategoryTool"},STATES=["allow","deny","needs-review"];class LyraPolicySummary extends LyraElement{constructor(){super(...arguments),this.decisions=[]}static{this.defaultStrings={...super.defaultStrings,collapse:LYRA_DEFAULT_collapse,deny:LYRA_DEFAULT_deny,details:LYRA_DEFAULT_details,fieldRequired:LYRA_DEFAULT_fieldRequired,map:LYRA_DEFAULT_map,navigation:LYRA_DEFAULT_navigation,noData:LYRA_DEFAULT_noData,open:LYRA_DEFAULT_open,policySummaryAllowCount:LYRA_DEFAULT_policySummaryAllowCount,policySummaryCategoryGuardrail:LYRA_DEFAULT_policySummaryCategoryGuardrail,policySummaryCategoryPermission:LYRA_DEFAULT_policySummaryCategoryPermission,policySummaryCategoryPrivacy:LYRA_DEFAULT_policySummaryCategoryPrivacy,policySummaryCategoryTool:LYRA_DEFAULT_policySummaryCategoryTool,policySummaryDenyCount:LYRA_DEFAULT_policySummaryDenyCount,policySummaryDetailLabel:LYRA_DEFAULT_policySummaryDetailLabel,policySummaryLabel:LYRA_DEFAULT_policySummaryLabel,policySummaryNeedsReviewCount:LYRA_DEFAULT_policySummaryNeedsReviewCount,policySummaryStateAllow:LYRA_DEFAULT_policySummaryStateAllow,policySummaryStateDeny:LYRA_DEFAULT_policySummaryStateDeny,policySummaryStateNeedsReview:LYRA_DEFAULT_policySummaryStateNeedsReview,progress:LYRA_DEFAULT_progress,restore:LYRA_DEFAULT_restore,search:LYRA_DEFAULT_search,select:LYRA_DEFAULT_select}}static{this.ownedCollectionProperties=Object.freeze(["decisions"])}static{this.styles=[LyraElement.styles,styles]}get normalizedDecisions(){return firstByIdentity(Array.isArray(this.decisions)?this.decisions:[],decision=>decision.id)}countOf(state){return this.normalizedDecisions.filter(decision=>decision.state===state).length}stopNestedLifecycle(event){event.stopPropagation()}renderDecision(decision){const variant=STATE_VARIANT[decision.state];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{LyraElement}from"../../../internal/lyra-element.js";import{getNumberFormat}from"../../../internal/intl-cache.js";import"../../overlays/badge/badge.class.js";import"../../layout/details/details.class.js";import"../../overlays/empty/empty.class.js";import{styles}from"./policy-summary.styles.js";import{firstByIdentity}from"../collection-identity.js";import{LYRA_DEFAULT_collapse,LYRA_DEFAULT_deny,LYRA_DEFAULT_details,LYRA_DEFAULT_fieldRequired,LYRA_DEFAULT_map,LYRA_DEFAULT_navigation,LYRA_DEFAULT_noData,LYRA_DEFAULT_open,LYRA_DEFAULT_policySummaryAllowCount,LYRA_DEFAULT_policySummaryCategoryGuardrail,LYRA_DEFAULT_policySummaryCategoryPermission,LYRA_DEFAULT_policySummaryCategoryPrivacy,LYRA_DEFAULT_policySummaryCategoryTool,LYRA_DEFAULT_policySummaryDenyCount,LYRA_DEFAULT_policySummaryDetailLabel,LYRA_DEFAULT_policySummaryLabel,LYRA_DEFAULT_policySummaryNeedsReviewCount,LYRA_DEFAULT_policySummaryStateAllow,LYRA_DEFAULT_policySummaryStateDeny,LYRA_DEFAULT_policySummaryStateNeedsReview,LYRA_DEFAULT_popover,LYRA_DEFAULT_progress,LYRA_DEFAULT_restore,LYRA_DEFAULT_search,LYRA_DEFAULT_select}from"../../../internal/default-strings.generated.js";const STATE_VARIANT={allow:"success",deny:"danger","needs-review":"warning"},STATE_LABEL_KEY={allow:"policySummaryStateAllow",deny:"policySummaryStateDeny","needs-review":"policySummaryStateNeedsReview"},STATE_COUNT_KEY={allow:"policySummaryAllowCount",deny:"policySummaryDenyCount","needs-review":"policySummaryNeedsReviewCount"},CATEGORY_LABEL_KEY={guardrail:"policySummaryCategoryGuardrail",permission:"policySummaryCategoryPermission",privacy:"policySummaryCategoryPrivacy",tool:"policySummaryCategoryTool"},STATES=["allow","deny","needs-review"];class LyraPolicySummary extends LyraElement{constructor(){super(...arguments),this.decisions=[]}static{this.defaultStrings={...super.defaultStrings,collapse:LYRA_DEFAULT_collapse,deny:LYRA_DEFAULT_deny,details:LYRA_DEFAULT_details,fieldRequired:LYRA_DEFAULT_fieldRequired,map:LYRA_DEFAULT_map,navigation:LYRA_DEFAULT_navigation,noData:LYRA_DEFAULT_noData,open:LYRA_DEFAULT_open,policySummaryAllowCount:LYRA_DEFAULT_policySummaryAllowCount,policySummaryCategoryGuardrail:LYRA_DEFAULT_policySummaryCategoryGuardrail,policySummaryCategoryPermission:LYRA_DEFAULT_policySummaryCategoryPermission,policySummaryCategoryPrivacy:LYRA_DEFAULT_policySummaryCategoryPrivacy,policySummaryCategoryTool:LYRA_DEFAULT_policySummaryCategoryTool,policySummaryDenyCount:LYRA_DEFAULT_policySummaryDenyCount,policySummaryDetailLabel:LYRA_DEFAULT_policySummaryDetailLabel,policySummaryLabel:LYRA_DEFAULT_policySummaryLabel,policySummaryNeedsReviewCount:LYRA_DEFAULT_policySummaryNeedsReviewCount,policySummaryStateAllow:LYRA_DEFAULT_policySummaryStateAllow,policySummaryStateDeny:LYRA_DEFAULT_policySummaryStateDeny,policySummaryStateNeedsReview:LYRA_DEFAULT_policySummaryStateNeedsReview,popover:LYRA_DEFAULT_popover,progress:LYRA_DEFAULT_progress,restore:LYRA_DEFAULT_restore,search:LYRA_DEFAULT_search,select:LYRA_DEFAULT_select}}static{this.ownedCollectionProperties=Object.freeze(["decisions"])}static{this.styles=[LyraElement.styles,styles]}get normalizedDecisions(){return firstByIdentity(Array.isArray(this.decisions)?this.decisions:[],decision=>decision.id)}countOf(state){return this.normalizedDecisions.filter(decision=>decision.state===state).length}stopNestedLifecycle(event){event.stopPropagation()}renderDecision(decision){const variant=STATE_VARIANT[decision.state];return html`
|
|
2
2
|
<div part="decision" role="listitem" data-state=${decision.state} data-category=${decision.category}>
|
|
3
3
|
<div part="decision-header">
|
|
4
4
|
<span part="category">${this.localize(CATEGORY_LABEL_KEY[decision.category])}</span>
|
|
@@ -22,12 +22,7 @@ import{css}from"lit";const styles=css`
|
|
|
22
22
|
padding-inline: var(--lr-space-s) var(--lr-space-l);
|
|
23
23
|
cursor: pointer;
|
|
24
24
|
}
|
|
25
|
-
/* The select's popup list is still painted by the browser from these options; without an
|
|
26
|
-
explicit surface/text pairing it falls back to UA colors (a white panel in dark themes). */
|
|
27
25
|
[part='message-role'] option { background: var(--lr-color-surface); color: var(--lr-color-text); }
|
|
28
|
-
/* appearance: none strips the native dropdown affordance, so this chevron -- matching
|
|
29
|
-
av-player's [part='rate-select'] / image-viewer's [part='fit-control'] pattern -- replaces
|
|
30
|
-
it; without one a visible, functional <select> would read as a plain bordered box. */
|
|
31
26
|
.message-role-chevron {
|
|
32
27
|
position: absolute;
|
|
33
28
|
inset-inline-end: var(--lr-space-xs);
|
|
@@ -37,10 +32,6 @@ import{css}from"lit";const styles=css`
|
|
|
37
32
|
pointer-events: none;
|
|
38
33
|
}
|
|
39
34
|
.message-role-chevron svg { transform: rotate(90deg); }
|
|
40
|
-
/* no-pressed-state: these three are field surfaces, not push targets -- pointer-down on the
|
|
41
|
-
textarea or the text input places a caret, and pointer-down on the role select hands the whole
|
|
42
|
-
interaction to the UA's own native option list, which paints its own pressed feedback and holds
|
|
43
|
-
it for as long as the popup is open. :focus-visible carries the affordance in all three cases. */
|
|
44
35
|
:where([part='message-role'], [part='message-content']):hover:where(:not(:disabled)),
|
|
45
36
|
:where([part='variable']) input:hover:where(:not(:disabled)) {
|
|
46
37
|
border-color: var(--lr-prompt-studio-field-hover-border, var(--lr-color-brand));
|
|
@@ -60,15 +51,10 @@ import{css}from"lit";const styles=css`
|
|
|
60
51
|
font: inherit;
|
|
61
52
|
cursor: pointer;
|
|
62
53
|
}
|
|
63
|
-
/* Keep the state pseudo-class outside :where(): it supplies the same specificity as each
|
|
64
|
-
resting [part] selector, while the toolbar descendant retains its matching type specificity. */
|
|
65
54
|
:where([part='toolbar']) button:hover:where(:not(:disabled)),
|
|
66
55
|
:where([part='move-message-up'], [part='move-message-down'], [part='remove-message'], [part='add-message'], [part='version']):hover:where(:not(:disabled)) {
|
|
67
56
|
background: var(--lr-color-surface-raised);
|
|
68
57
|
}
|
|
69
|
-
/* Pressed is the hovered tint pushed a further --lr-color-mix-active toward
|
|
70
|
-
--lr-color-mix-partner (which follows the text colour), so it reads as a distinctly deeper step
|
|
71
|
-
than hover in both light and dark themes rather than repeating it. */
|
|
72
58
|
:where([part='toolbar']) button:active:where(:not(:disabled)),
|
|
73
59
|
:where([part='move-message-up'], [part='move-message-down'], [part='remove-message'], [part='add-message'], [part='version']):active:where(:not(:disabled)) {
|
|
74
60
|
background: color-mix(in oklab, var(--lr-color-surface-raised), var(--lr-color-mix-partner) var(--lr-color-mix-active));
|
|
@@ -80,7 +66,6 @@ import{css}from"lit";const styles=css`
|
|
|
80
66
|
background: var(--lr-prompt-studio-version-selected-bg, var(--lr-color-brand-quiet));
|
|
81
67
|
color: var(--lr-prompt-studio-version-selected-color, var(--lr-color-text));
|
|
82
68
|
}
|
|
83
|
-
/* Compose selected and pointer states without changing the part selector itself. */
|
|
84
69
|
[part='version']:where([aria-pressed='true']):where(:hover:not(:disabled)) {
|
|
85
70
|
background: var(
|
|
86
71
|
--lr-prompt-studio-version-selected-hover-bg,
|
|
@@ -11,11 +11,6 @@ import{css}from"lit";const styles=css`
|
|
|
11
11
|
overflow: hidden;
|
|
12
12
|
font-size: var(--lr-font-size-sm);
|
|
13
13
|
}
|
|
14
|
-
/* Density escape -- same convention as lr-agent-run's compact. The tuned values sit behind
|
|
15
|
-
inline var() fallbacks (rather than a :host declaration, which every instance would
|
|
16
|
-
re-declare and so shadow any ancestor value) so a consumer can retune them from outside
|
|
17
|
-
without restating the whole rule; the fallbacks are the pre-existing values, so an unset
|
|
18
|
-
card renders unchanged. */
|
|
19
14
|
:host([compact]) [part='header'] {
|
|
20
15
|
padding: var(--lr-result-card-compact-header-padding, var(--lr-space-xs));
|
|
21
16
|
gap: var(--lr-result-card-compact-header-gap, var(--lr-space-xs));
|
|
@@ -24,8 +19,6 @@ import{css}from"lit";const styles=css`
|
|
|
24
19
|
padding: var(--lr-result-card-compact-body-padding, var(--lr-space-xs));
|
|
25
20
|
gap: var(--lr-result-card-compact-body-gap, var(--lr-space-2xs));
|
|
26
21
|
}
|
|
27
|
-
/* 'plain' removes the chrome entirely rather than just tightening it -- see the class doc for
|
|
28
|
-
why it wins over compact when both are set. */
|
|
29
22
|
:host([frame='plain']) [part='base'] {
|
|
30
23
|
border: 0;
|
|
31
24
|
border-radius: 0;
|
|
@@ -2,11 +2,6 @@ import{css}from"lit";const styles=css`
|
|
|
2
2
|
:host {
|
|
3
3
|
display: block;
|
|
4
4
|
}
|
|
5
|
-
/* Dense "label: value" single-line row by default -- the compact
|
|
6
|
-
presentation short status/duration/count content (the kind this
|
|
7
|
-
component is meant for) reads best as, versus a stacked two-line
|
|
8
|
-
layout. A consumer that prefers stacked can override this from the
|
|
9
|
-
light DOM: :host { } / [part='base'] { flex-direction: column; }. */
|
|
10
5
|
[part='base'] {
|
|
11
6
|
display: flex;
|
|
12
7
|
align-items: baseline;
|
|
@@ -24,15 +24,12 @@ import{css}from"lit";const styles=css`
|
|
|
24
24
|
padding: var(--lr-space-xs); border: 0; border-radius: var(--lr-radius); background: transparent; color: var(--lr-color-text); font: inherit; text-align: start; cursor: pointer;
|
|
25
25
|
}
|
|
26
26
|
[part='node-trigger']:hover { background: var(--lr-color-surface-raised); }
|
|
27
|
-
/* Pressed is the hovered tint pushed a further --lr-color-mix-active toward
|
|
28
|
-
--lr-color-mix-partner (which follows the text colour), so it reads as a distinctly deeper step
|
|
29
|
-
than hover in both light and dark themes rather than repeating it. */
|
|
30
27
|
[part='node-trigger']:active {
|
|
31
28
|
background: color-mix(in oklab, var(--lr-color-surface-raised), var(--lr-color-mix-partner) var(--lr-color-mix-active));
|
|
32
29
|
}
|
|
33
30
|
[part='node-trigger']:focus-visible { outline: var(--lr-focus-ring-width) solid var(--lr-focus-ring-color); outline-offset: var(--lr-focus-ring-offset); }
|
|
34
|
-
[part='name'] { min-inline-size: 0; overflow-wrap:
|
|
35
|
-
[part='description'], [part='issue'] { margin: var(--lr-space-2xs) var(--lr-space-xs); font-size: var(--lr-font-size-sm); overflow-wrap:
|
|
31
|
+
[part='name'] { min-inline-size: 0; overflow-wrap: break-word; }
|
|
32
|
+
[part='description'], [part='issue'] { margin: var(--lr-space-2xs) var(--lr-space-xs); font-size: var(--lr-font-size-sm); overflow-wrap: break-word; }
|
|
36
33
|
[part='description'] { color: var(--lr-color-text-quiet); }
|
|
37
34
|
[part='issue'] {
|
|
38
35
|
padding: var(--lr-space-xs);
|
|
@@ -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,query}from"lit/decorators.js";import{LyraElement}from"../../../internal/lyra-element.js";import{prefersReducedMotion}from"../../../internal/motion.js";import{finiteRatio,finiteRange}from"../../../internal/numbers.js";import{getNumberFormat}from"../../../internal/intl-cache.js";import{acquireAnnouncementSink}from"../../../internal/announcer.js";import{styles}from"./span-waterfall.styles.js";import{MAX_RENDERED_LYRA_SPANS,normalizeLyraSpans}from"../trace-tree/span.js";import{LYRA_DEFAULT_accessibleLabelSeparator,LYRA_DEFAULT_collapse,LYRA_DEFAULT_details,LYRA_DEFAULT_durationMilliseconds,LYRA_DEFAULT_map,LYRA_DEFAULT_navigation,LYRA_DEFAULT_noData,LYRA_DEFAULT_open,LYRA_DEFAULT_progress,LYRA_DEFAULT_search,LYRA_DEFAULT_select,LYRA_DEFAULT_spanKindAgent,LYRA_DEFAULT_spanKindEmbedding,LYRA_DEFAULT_spanKindLlm,LYRA_DEFAULT_spanKindOther,LYRA_DEFAULT_spanKindRetriever,LYRA_DEFAULT_spanKindTool,LYRA_DEFAULT_spanProjectionLimit,LYRA_DEFAULT_spanStartedAtOffset,LYRA_DEFAULT_spanWaterfall,LYRA_DEFAULT_statusDenied,LYRA_DEFAULT_statusError,LYRA_DEFAULT_statusPending,LYRA_DEFAULT_statusRunning,LYRA_DEFAULT_statusSuccess}from"../../../internal/default-strings.generated.js";const KIND_LABEL_KEY={agent:"spanKindAgent",llm:"spanKindLlm",tool:"spanKindTool",retriever:"spanKindRetriever",embedding:"spanKindEmbedding",other:"spanKindOther"},STATUS_LABEL_KEY={pending:"statusPending",running:"statusRunning",success:"statusSuccess",error:"statusError",denied:"statusDenied"},STATUS_TONE={success:"success",error:"danger",denied:"warning",running:"accent",pending:"neutral"};function niceStep(span,count){if(span<=0)return 1;const rough=span/Math.max(1,count),magnitude=10**Math.floor(Math.log10(rough)),residual=rough/magnitude;return(residual<1.5?1:residual<3?2:residual<7?5:10)*magnitude}function axisTicks(start,end,count=5){const step=niceStep(end-start,count);if(!Number.isFinite(step)||step<=0)return[start,end];const first=Math.ceil(start/step)*step;if(!Number.isFinite(first))return[start,end];const ticks=[];for(let index=0;index<=count+2;index++){const value=first+index*step;if(!Number.isFinite(value)||value>end+step/2)break;const rounded=Math.round(value/step)*step;Number.isFinite(rounded)&&(ticks.length===0||rounded>ticks[ticks.length-1])&&ticks.push(rounded)}return ticks}class LyraSpanWaterfall extends LyraElement{constructor(){super(...arguments),this.spans=[],this.activeSpanId=null,this.viewStartMs=null,this.viewEndMs=null,this.hideAxis=!1,this.label="",this.focusedId=null,this.sortedActiveSpanId=null,this.sortedCache=[],this.sortedCacheTruncated=!1,this.limitAnnouncementInitialized=!1,this.previouslyTruncated=!1,this.onKeyDown=e=>{const view=this.viewWindow(),rows=this.sortedSpans().filter(span=>this.barGeometry(span,view).visible);if(rows.length===0)return;const currentIndex=rows.findIndex(s=>s.id===this.focusedId),idx=currentIndex>=0?currentIndex:0;switch(e.key){case"ArrowDown":e.preventDefault(),this.focusRow(rows[Math.min(rows.length-1,idx+1)]);break;case"ArrowUp":e.preventDefault(),this.focusRow(rows[Math.max(0,idx-1)]);break;case"Home":e.preventDefault(),this.focusRow(rows[0]);break;case"End":e.preventDefault(),this.focusRow(rows[rows.length-1]);break;case"Enter":case" ":e.preventDefault(),this.selectRow(rows[idx].id);break;default:return}}}static{this.defaultStrings={...super.defaultStrings,accessibleLabelSeparator:LYRA_DEFAULT_accessibleLabelSeparator,collapse:LYRA_DEFAULT_collapse,details:LYRA_DEFAULT_details,durationMilliseconds:LYRA_DEFAULT_durationMilliseconds,map:LYRA_DEFAULT_map,navigation:LYRA_DEFAULT_navigation,noData:LYRA_DEFAULT_noData,open:LYRA_DEFAULT_open,progress:LYRA_DEFAULT_progress,search:LYRA_DEFAULT_search,select:LYRA_DEFAULT_select,spanKindAgent:LYRA_DEFAULT_spanKindAgent,spanKindEmbedding:LYRA_DEFAULT_spanKindEmbedding,spanKindLlm:LYRA_DEFAULT_spanKindLlm,spanKindOther:LYRA_DEFAULT_spanKindOther,spanKindRetriever:LYRA_DEFAULT_spanKindRetriever,spanKindTool:LYRA_DEFAULT_spanKindTool,spanProjectionLimit:LYRA_DEFAULT_spanProjectionLimit,spanStartedAtOffset:LYRA_DEFAULT_spanStartedAtOffset,spanWaterfall:LYRA_DEFAULT_spanWaterfall,statusDenied:LYRA_DEFAULT_statusDenied,statusError:LYRA_DEFAULT_statusError,statusPending:LYRA_DEFAULT_statusPending,statusRunning:LYRA_DEFAULT_statusRunning,statusSuccess:LYRA_DEFAULT_statusSuccess}}static{this.ownedCollectionProperties=Object.freeze(["spans"])}static{this.styles=[LyraElement.styles,styles]}connectedCallback(){super.connectedCallback(),this.syncLimitAnnouncementSink(),this.limitAnnouncementInitialized=this.hasUpdated,this.previouslyTruncated=this.sortedCacheTruncated}disconnectedCallback(){this.limitAnnouncementSink?.release(),this.limitAnnouncementSink=void 0,super.disconnectedCallback()}adoptedCallback(){super.adoptedCallback(),this.limitAnnouncementSink?.release(),this.limitAnnouncementSink=void 0,this.syncLimitAnnouncementSink()}syncLimitAnnouncementSink(){!this.isConnected||this.limitAnnouncementSink?.element.ownerDocument===this.ownerDocument||(this.limitAnnouncementSink?.release(),this.limitAnnouncementSink=acquireAnnouncementSink("polite",{document:this.ownerDocument,source:this}))}sortedSpans(){if(this.sortedSource===this.spans&&this.sortedActiveSpanId===this.activeSpanId)return this.sortedCache;this.sortedSource=this.spans,this.sortedActiveSpanId=this.activeSpanId;const projection=normalizeLyraSpans(this.spans,this.activeSpanId);return this.sortedCacheTruncated=projection.truncated,this.sortedCache=projection.spans.map((s,i)=>({s,i})).sort((a,b)=>a.s.startMs-b.s.startMs||a.i-b.i).map(x=>x.s),this.sortedCache}viewWindow(){const extentEnd=this.sortedSpans().reduce((m,s)=>Math.max(m,s.endMs??s.startMs,s.startMs),0),fallbackEnd=Math.max(extentEnd,1),start=this.viewStartMs==null?0:finiteRange(this.viewStartMs,0,0,Number.MAX_SAFE_INTEGER-1),end=this.viewEndMs==null?fallbackEnd:finiteRange(this.viewEndMs,fallbackEnd,0,Number.MAX_SAFE_INTEGER);return{start,end:end>start?end:start+1}}barGeometry(span,view){const endMs=span.endMs??(span.status==="running"?view.end:span.startMs),visible=span.startMs<=view.end&&endMs>=view.start,clampedStart=Math.max(view.start,span.startMs),clampedEnd=Math.min(view.end,Math.max(endMs,span.startMs)),startPct=finiteRatio(clampedStart,view.start,view.end)*100,endPct=finiteRatio(clampedEnd,view.start,view.end)*100;return{startPct,widthPct:Math.max(0,endPct-startPct),visible}}formatDuration(ms){if(ms==null||!Number.isFinite(ms))return"";const milliseconds=Math.max(0,ms);return milliseconds<1e3?getNumberFormat(this.effectiveLocale,{style:"unit",unit:"millisecond",unitDisplay:"short",maximumFractionDigits:0}).format(milliseconds):getNumberFormat(this.effectiveLocale,{style:"unit",unit:"second",unitDisplay:"short",maximumFractionDigits:1}).format(milliseconds/1e3)}focusRow(span){if(!span)return;const previous=this.renderRoot.querySelector('[part="bar"][tabindex="0"]');this.focusedId=span.id,this.announceFocus(span),previous?.setAttribute("tabindex","-1");const next=this.renderedBarById(span.id);next?.setAttribute("tabindex","0"),next?.focus()}announceFocus(span){const parts=[span.name,this.localize(KIND_LABEL_KEY[span.kind]),this.localize(STATUS_LABEL_KEY[span.status]),this.localize("spanStartedAtOffset",void 0,{value:this.formatDuration(span.startMs)||this.localize("durationMilliseconds",void 0,{value:0})})];span.endMs!=null&&parts.push(this.formatDuration(span.endMs-span.startMs)),this.liveRegion?.announce(parts.join(this.localize("accessibleLabelSeparator")),{force:!0})}selectRow(id){this.focusedId=id,this.emit("lr-span-select",{spanId:id})}willUpdate(changed){if(super.willUpdate(changed),(changed.has("spans")||changed.has("activeSpanId"))&&(this.sortedSource=void 0),changed.has("spans")||changed.has("viewStartMs")||changed.has("viewEndMs")||changed.has("activeSpanId")){const view=this.viewWindow(),ids=new Set(this.sortedSpans().filter(span=>this.barGeometry(span,view).visible).map(span=>span.id));(this.focusedId==null||!ids.has(this.focusedId))&&(this.focusedId=this.activeSpanId&&ids.has(this.activeSpanId)?this.activeSpanId:this.sortedSpans()[0]?.id??null),this.focusedId!==null&&!ids.has(this.focusedId)&&(this.focusedId=this.sortedSpans().find(span=>ids.has(span.id))?.id??null),changed.has("activeSpanId")&&this.activeSpanId&&ids.has(this.activeSpanId)&&(this.focusedId=this.activeSpanId)}}renderedBarById(id){const ownerCss=this.ownerDocument.defaultView?.CSS;return typeof ownerCss?.escape=="function"?this.renderRoot.querySelector(`[data-id="${ownerCss.escape(id)}"]`):Array.from(this.renderRoot.querySelectorAll("[data-id]")).find(element=>element.dataset.id===id)??null}updated(changed){if(super.updated(changed),changed.has("activeSpanId")&&this.activeSpanId){const bar=this.renderedBarById(this.activeSpanId);if(bar&&!bar.hidden){const ownerWindow=bar.ownerDocument.defaultView,reducedMotion=!ownerWindow||prefersReducedMotion(ownerWindow);bar.scrollIntoView({block:"nearest",behavior:reducedMotion?"auto":"smooth"})}}this.limitAnnouncementInitialized&&this.sortedCacheTruncated&&!this.previouslyTruncated&&this.limitAnnouncementSink?.announce(this.localize("spanProjectionLimit",void 0,{count:MAX_RENDERED_LYRA_SPANS})),this.limitAnnouncementInitialized=!0,this.previouslyTruncated=this.sortedCacheTruncated}renderAxis(view){const ticks=axisTicks(view.start,view.end);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,query}from"lit/decorators.js";import{LyraElement}from"../../../internal/lyra-element.js";import{prefersReducedMotion}from"../../../internal/motion.js";import{finiteRatio,finiteRange}from"../../../internal/numbers.js";import{getNumberFormat}from"../../../internal/intl-cache.js";import{acquireAnnouncementSink}from"../../../internal/announcer.js";import{styles}from"./span-waterfall.styles.js";import{MAX_RENDERED_LYRA_SPANS,normalizeLyraSpans}from"../trace-tree/span.js";import{LYRA_DEFAULT_accessibleLabelSeparator,LYRA_DEFAULT_collapse,LYRA_DEFAULT_details,LYRA_DEFAULT_durationMilliseconds,LYRA_DEFAULT_map,LYRA_DEFAULT_navigation,LYRA_DEFAULT_noData,LYRA_DEFAULT_open,LYRA_DEFAULT_popover,LYRA_DEFAULT_progress,LYRA_DEFAULT_search,LYRA_DEFAULT_select,LYRA_DEFAULT_spanKindAgent,LYRA_DEFAULT_spanKindEmbedding,LYRA_DEFAULT_spanKindLlm,LYRA_DEFAULT_spanKindOther,LYRA_DEFAULT_spanKindRetriever,LYRA_DEFAULT_spanKindTool,LYRA_DEFAULT_spanProjectionLimit,LYRA_DEFAULT_spanStartedAtOffset,LYRA_DEFAULT_spanWaterfall,LYRA_DEFAULT_statusDenied,LYRA_DEFAULT_statusError,LYRA_DEFAULT_statusPending,LYRA_DEFAULT_statusRunning,LYRA_DEFAULT_statusSuccess}from"../../../internal/default-strings.generated.js";const KIND_LABEL_KEY={agent:"spanKindAgent",llm:"spanKindLlm",tool:"spanKindTool",retriever:"spanKindRetriever",embedding:"spanKindEmbedding",other:"spanKindOther"},STATUS_LABEL_KEY={pending:"statusPending",running:"statusRunning",success:"statusSuccess",error:"statusError",denied:"statusDenied"},STATUS_TONE={success:"success",error:"danger",denied:"warning",running:"accent",pending:"neutral"};function niceStep(span,count){if(span<=0)return 1;const rough=span/Math.max(1,count),magnitude=10**Math.floor(Math.log10(rough)),residual=rough/magnitude;return(residual<1.5?1:residual<3?2:residual<7?5:10)*magnitude}function axisTicks(start,end,count=5){const step=niceStep(end-start,count);if(!Number.isFinite(step)||step<=0)return[start,end];const first=Math.ceil(start/step)*step;if(!Number.isFinite(first))return[start,end];const ticks=[];for(let index=0;index<=count+2;index++){const value=first+index*step;if(!Number.isFinite(value)||value>end+step/2)break;const rounded=Math.round(value/step)*step;Number.isFinite(rounded)&&(ticks.length===0||rounded>ticks[ticks.length-1])&&ticks.push(rounded)}return ticks}class LyraSpanWaterfall extends LyraElement{constructor(){super(...arguments),this.spans=[],this.activeSpanId=null,this.viewStartMs=null,this.viewEndMs=null,this.hideAxis=!1,this.label="",this.focusedId=null,this.sortedActiveSpanId=null,this.sortedCache=[],this.sortedCacheTruncated=!1,this.limitAnnouncementInitialized=!1,this.previouslyTruncated=!1,this.onKeyDown=e=>{const view=this.viewWindow(),rows=this.sortedSpans().filter(span=>this.barGeometry(span,view).visible);if(rows.length===0)return;const currentIndex=rows.findIndex(s=>s.id===this.focusedId),idx=currentIndex>=0?currentIndex:0;switch(e.key){case"ArrowDown":e.preventDefault(),this.focusRow(rows[Math.min(rows.length-1,idx+1)]);break;case"ArrowUp":e.preventDefault(),this.focusRow(rows[Math.max(0,idx-1)]);break;case"Home":e.preventDefault(),this.focusRow(rows[0]);break;case"End":e.preventDefault(),this.focusRow(rows[rows.length-1]);break;case"Enter":case" ":e.preventDefault(),this.selectRow(rows[idx].id);break;default:return}}}static{this.defaultStrings={...super.defaultStrings,accessibleLabelSeparator:LYRA_DEFAULT_accessibleLabelSeparator,collapse:LYRA_DEFAULT_collapse,details:LYRA_DEFAULT_details,durationMilliseconds:LYRA_DEFAULT_durationMilliseconds,map:LYRA_DEFAULT_map,navigation:LYRA_DEFAULT_navigation,noData:LYRA_DEFAULT_noData,open:LYRA_DEFAULT_open,popover:LYRA_DEFAULT_popover,progress:LYRA_DEFAULT_progress,search:LYRA_DEFAULT_search,select:LYRA_DEFAULT_select,spanKindAgent:LYRA_DEFAULT_spanKindAgent,spanKindEmbedding:LYRA_DEFAULT_spanKindEmbedding,spanKindLlm:LYRA_DEFAULT_spanKindLlm,spanKindOther:LYRA_DEFAULT_spanKindOther,spanKindRetriever:LYRA_DEFAULT_spanKindRetriever,spanKindTool:LYRA_DEFAULT_spanKindTool,spanProjectionLimit:LYRA_DEFAULT_spanProjectionLimit,spanStartedAtOffset:LYRA_DEFAULT_spanStartedAtOffset,spanWaterfall:LYRA_DEFAULT_spanWaterfall,statusDenied:LYRA_DEFAULT_statusDenied,statusError:LYRA_DEFAULT_statusError,statusPending:LYRA_DEFAULT_statusPending,statusRunning:LYRA_DEFAULT_statusRunning,statusSuccess:LYRA_DEFAULT_statusSuccess}}static{this.ownedCollectionProperties=Object.freeze(["spans"])}static{this.styles=[LyraElement.styles,styles]}connectedCallback(){super.connectedCallback(),this.syncLimitAnnouncementSink(),this.limitAnnouncementInitialized=this.hasUpdated,this.previouslyTruncated=this.sortedCacheTruncated}disconnectedCallback(){this.limitAnnouncementSink?.release(),this.limitAnnouncementSink=void 0,super.disconnectedCallback()}adoptedCallback(){super.adoptedCallback(),this.limitAnnouncementSink?.release(),this.limitAnnouncementSink=void 0,this.syncLimitAnnouncementSink()}syncLimitAnnouncementSink(){!this.isConnected||this.limitAnnouncementSink?.element.ownerDocument===this.ownerDocument||(this.limitAnnouncementSink?.release(),this.limitAnnouncementSink=acquireAnnouncementSink("polite",{document:this.ownerDocument,source:this}))}sortedSpans(){if(this.sortedSource===this.spans&&this.sortedActiveSpanId===this.activeSpanId)return this.sortedCache;this.sortedSource=this.spans,this.sortedActiveSpanId=this.activeSpanId;const projection=normalizeLyraSpans(this.spans,this.activeSpanId);return this.sortedCacheTruncated=projection.truncated,this.sortedCache=projection.spans.map((s,i)=>({s,i})).sort((a,b)=>a.s.startMs-b.s.startMs||a.i-b.i).map(x=>x.s),this.sortedCache}viewWindow(){const extentEnd=this.sortedSpans().reduce((m,s)=>Math.max(m,s.endMs??s.startMs,s.startMs),0),fallbackEnd=Math.max(extentEnd,1),start=this.viewStartMs==null?0:finiteRange(this.viewStartMs,0,0,Number.MAX_SAFE_INTEGER-1),end=this.viewEndMs==null?fallbackEnd:finiteRange(this.viewEndMs,fallbackEnd,0,Number.MAX_SAFE_INTEGER);return{start,end:end>start?end:start+1}}barGeometry(span,view){const endMs=span.endMs??(span.status==="running"?view.end:span.startMs),visible=span.startMs<=view.end&&endMs>=view.start,clampedStart=Math.max(view.start,span.startMs),clampedEnd=Math.min(view.end,Math.max(endMs,span.startMs)),startPct=finiteRatio(clampedStart,view.start,view.end)*100,endPct=finiteRatio(clampedEnd,view.start,view.end)*100;return{startPct,widthPct:Math.max(0,endPct-startPct),visible}}formatDuration(ms){if(ms==null||!Number.isFinite(ms))return"";const milliseconds=Math.max(0,ms);return milliseconds<1e3?getNumberFormat(this.effectiveLocale,{style:"unit",unit:"millisecond",unitDisplay:"short",maximumFractionDigits:0}).format(milliseconds):getNumberFormat(this.effectiveLocale,{style:"unit",unit:"second",unitDisplay:"short",maximumFractionDigits:1}).format(milliseconds/1e3)}focusRow(span){if(!span)return;const previous=this.renderRoot.querySelector('[part="bar"][tabindex="0"]');this.focusedId=span.id,this.announceFocus(span),previous?.setAttribute("tabindex","-1");const next=this.renderedBarById(span.id);next?.setAttribute("tabindex","0"),next?.focus()}announceFocus(span){const parts=[span.name,this.localize(KIND_LABEL_KEY[span.kind]),this.localize(STATUS_LABEL_KEY[span.status]),this.localize("spanStartedAtOffset",void 0,{value:this.formatDuration(span.startMs)||this.localize("durationMilliseconds",void 0,{value:0})})];span.endMs!=null&&parts.push(this.formatDuration(span.endMs-span.startMs)),this.liveRegion?.announce(parts.join(this.localize("accessibleLabelSeparator")),{force:!0})}selectRow(id){this.focusedId=id,this.emit("lr-span-select",{spanId:id})}willUpdate(changed){if(super.willUpdate(changed),(changed.has("spans")||changed.has("activeSpanId"))&&(this.sortedSource=void 0),changed.has("spans")||changed.has("viewStartMs")||changed.has("viewEndMs")||changed.has("activeSpanId")){const view=this.viewWindow(),ids=new Set(this.sortedSpans().filter(span=>this.barGeometry(span,view).visible).map(span=>span.id));(this.focusedId==null||!ids.has(this.focusedId))&&(this.focusedId=this.activeSpanId&&ids.has(this.activeSpanId)?this.activeSpanId:this.sortedSpans()[0]?.id??null),this.focusedId!==null&&!ids.has(this.focusedId)&&(this.focusedId=this.sortedSpans().find(span=>ids.has(span.id))?.id??null),changed.has("activeSpanId")&&this.activeSpanId&&ids.has(this.activeSpanId)&&(this.focusedId=this.activeSpanId)}}renderedBarById(id){const ownerCss=this.ownerDocument.defaultView?.CSS;return typeof ownerCss?.escape=="function"?this.renderRoot.querySelector(`[data-id="${ownerCss.escape(id)}"]`):Array.from(this.renderRoot.querySelectorAll("[data-id]")).find(element=>element.dataset.id===id)??null}updated(changed){if(super.updated(changed),changed.has("activeSpanId")&&this.activeSpanId){const bar=this.renderedBarById(this.activeSpanId);if(bar&&!bar.hidden){const ownerWindow=bar.ownerDocument.defaultView,reducedMotion=!ownerWindow||prefersReducedMotion(ownerWindow);bar.scrollIntoView({block:"nearest",behavior:reducedMotion?"auto":"smooth"})}}this.limitAnnouncementInitialized&&this.sortedCacheTruncated&&!this.previouslyTruncated&&this.limitAnnouncementSink?.announce(this.localize("spanProjectionLimit",void 0,{count:MAX_RENDERED_LYRA_SPANS})),this.limitAnnouncementInitialized=!0,this.previouslyTruncated=this.sortedCacheTruncated}renderAxis(view){const ticks=axisTicks(view.start,view.end);return html`
|
|
2
2
|
<div part="axis" aria-hidden="true">
|
|
3
3
|
${ticks.map(t=>{const pct=finiteRatio(t,view.start,view.end)*100;return pct<0||pct>100?nothing:html`<span
|
|
4
4
|
part="tick"
|
|
@@ -67,9 +67,6 @@ import{css}from"lit";const styles=css`
|
|
|
67
67
|
|
|
68
68
|
[part="bar-track"] {
|
|
69
69
|
position: relative;
|
|
70
|
-
/* 1.5rem (24px), not a narrower duration-scaled height -- [part='bar'] is the sole
|
|
71
|
-
click/keyboard target for lr-span-select and must clear the WCAG 2.5.8 24px minimum
|
|
72
|
-
target size regardless of how thin a given bar's duration would otherwise render it. */
|
|
73
70
|
block-size: var(--lr-size-1-5rem);
|
|
74
71
|
}
|
|
75
72
|
[part="bar"] {
|
|
@@ -84,14 +81,6 @@ import{css}from"lit";const styles=css`
|
|
|
84
81
|
[part="bar"][hidden] {
|
|
85
82
|
display: none;
|
|
86
83
|
}
|
|
87
|
-
/* The hover/pressed tint is a veil on a pseudo-element rather than a background swap on the bar
|
|
88
|
-
itself, because a bar's fill is one of five different things: four solid tones, a striped
|
|
89
|
-
gradient for the running tone, and a transparent dashed box for the pending one. No single
|
|
90
|
-
background declaration tints all five; one translucent overlay does. Mixing toward
|
|
91
|
-
--lr-color-mix-partner (which follows the text colour) darkens the veil in a light theme and
|
|
92
|
-
lightens it in a dark one -- which the filter: brightness() this replaces only managed by luck.
|
|
93
|
-
A filter multiplies every channel, so it moved a mid-tone bar, did nothing at all to a pure
|
|
94
|
-
white or pure black one, and applied to the whole subtree instead of just the surface. */
|
|
95
84
|
[part="bar"]::after {
|
|
96
85
|
content: "";
|
|
97
86
|
position: absolute;
|
|
@@ -148,10 +137,6 @@ import{css}from"lit";const styles=css`
|
|
|
148
137
|
var(--lr-color-border-strong)
|
|
149
138
|
);
|
|
150
139
|
}
|
|
151
|
-
/* background-position is physical, so the stripe crawl direction does not mirror on its own
|
|
152
|
-
under RTL; play the same keyframes backwards there. animation-direction (not a second
|
|
153
|
-
animation-name) keeps the reduced-motion 'animation: none' override below effective --
|
|
154
|
-
this rule's higher specificity would otherwise win the animation-name longhand back. */
|
|
155
140
|
:host(:dir(rtl)) [part="bar"][data-tone="accent"] {
|
|
156
141
|
animation-direction: reverse;
|
|
157
142
|
}
|
|
@@ -2,8 +2,6 @@ import{css}from"lit";const styles=css`
|
|
|
2
2
|
:host {
|
|
3
3
|
display: block;
|
|
4
4
|
font-size: var(--lr-font-size-sm);
|
|
5
|
-
/* Consumer-tunable scroll cap -- 'none' means the component grows with its content until a
|
|
6
|
-
caller opts into an internal scrollbar via the max-height attribute. */
|
|
7
5
|
--_lr-stack-trace-max-height: none;
|
|
8
6
|
--_lr-stack-trace-font: var(--lr-font-mono);
|
|
9
7
|
}
|
|
@@ -19,11 +17,6 @@ import{css}from"lit";const styles=css`
|
|
|
19
17
|
background: var(--lr-color-surface);
|
|
20
18
|
padding: var(--lr-space-s);
|
|
21
19
|
}
|
|
22
|
-
/* Density escape -- same convention as lr-agent-run's/lr-thinking-panel's compact. The tuned
|
|
23
|
-
values sit behind inline var() fallbacks (rather than a :host declaration, which every instance
|
|
24
|
-
would re-declare and so shadow any ancestor value) so a consumer can retune them from outside
|
|
25
|
-
without restating the whole rule. Purely density: the border, radius and background stay, and
|
|
26
|
-
frame="plain" below is what drops them. */
|
|
27
20
|
:host([compact]) [part="base"] {
|
|
28
21
|
padding: var(--lr-stack-trace-compact-padding, var(--lr-space-2xs));
|
|
29
22
|
}
|
|
@@ -34,14 +27,6 @@ import{css}from"lit";const styles=css`
|
|
|
34
27
|
:host([compact]) [part="group"]:last-child {
|
|
35
28
|
margin-block-end: 0;
|
|
36
29
|
}
|
|
37
|
-
/* MUST stay after :host([compact]) [part='base']: both are equal-specificity, so source order
|
|
38
|
-
alone decides which padding wins when a trace is both compact and frame="plain". plain is the
|
|
39
|
-
stronger statement ("no chrome at all"), so it goes last.
|
|
40
|
-
Chrome-less escape, the shared frame="plain" treatment (and lr-callout's [inline]): a stack
|
|
41
|
-
trace is routinely nested inside an lr-result-card or lr-agent-run that already draws a border,
|
|
42
|
-
which would otherwise double the box. Only the box decoration goes -- the max-block-size scroll
|
|
43
|
-
cap and overflow stay, as do the copy button's and stack frames' own hover/focus affordances,
|
|
44
|
-
which never depended on this border. */
|
|
45
30
|
:host([frame="plain"]) [part="base"] {
|
|
46
31
|
padding: 0;
|
|
47
32
|
border: 0;
|
|
@@ -83,9 +68,6 @@ import{css}from"lit";const styles=css`
|
|
|
83
68
|
button[part="frame"]:focus-visible {
|
|
84
69
|
color: var(--lr-stack-trace-interactive-color, var(--lr-color-brand));
|
|
85
70
|
}
|
|
86
|
-
/* The hover recolours the label only, which leaves the pressed step nothing to deepen -- so
|
|
87
|
-
pressed tints the frame's own (transparent) surface toward --lr-color-mix-partner, which
|
|
88
|
-
follows the text colour and therefore darkens in a light theme and lightens in a dark one. */
|
|
89
71
|
button[part="frame"]:active {
|
|
90
72
|
background: color-mix(
|
|
91
73
|
in oklab,
|
|
@@ -162,8 +144,6 @@ import{css}from"lit";const styles=css`
|
|
|
162
144
|
var(--lr-color-brand)
|
|
163
145
|
);
|
|
164
146
|
}
|
|
165
|
-
/* As with [part='frame'] above: the hover moves the border only, so pressed tints the button's
|
|
166
|
-
own surface fill toward --lr-color-mix-partner instead of restating the border colour. */
|
|
167
147
|
[part="copy-button"]:active {
|
|
168
148
|
background: color-mix(
|
|
169
149
|
in oklab,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var __decorate=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r};import{html,nothing}from"lit";import{property,state}from"lit/decorators.js";import{styleMap}from"lit/directives/style-map.js";import{LyraElement}from"../../../internal/lyra-element.js";import{finiteRange}from"../../../internal/numbers.js";import{getNumberFormat}from"../../../internal/intl-cache.js";import{acquireAnnouncementSink}from"../../../internal/announcer.js";import"../../overlays/badge/badge.class.js";import"../../overlays/empty/empty.class.js";import{styles}from"./subagent-panel.styles.js";import{LYRA_DEFAULT_agentRunStatusCancelled,LYRA_DEFAULT_agentRunStatusCollecting,LYRA_DEFAULT_agentRunStatusDone,LYRA_DEFAULT_agentRunStatusIdle,LYRA_DEFAULT_agentRunStatusQueued,LYRA_DEFAULT_agentRunStatusWaitingApproval,LYRA_DEFAULT_agentRunStatusWaitingInput,LYRA_DEFAULT_statusError,LYRA_DEFAULT_statusRunning,LYRA_DEFAULT_subagentPanelCancelRun,LYRA_DEFAULT_subagentPanelEmpty,LYRA_DEFAULT_subagentPanelLabel,LYRA_DEFAULT_subagentPanelLimit,LYRA_DEFAULT_subagentPanelRetry,LYRA_DEFAULT_subagentPanelRetryRun}from"../../../internal/default-strings.generated.js";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}from"lit";import{property,state}from"lit/decorators.js";import{styleMap}from"lit/directives/style-map.js";import{LyraElement}from"../../../internal/lyra-element.js";import{finiteRange}from"../../../internal/numbers.js";import{getNumberFormat}from"../../../internal/intl-cache.js";import{acquireAnnouncementSink}from"../../../internal/announcer.js";import{AGENT_STATUS_VARIANTS}from"../../../internal/agent-status-variants.js";import"../../overlays/badge/badge.class.js";import"../../overlays/empty/empty.class.js";import{styles}from"./subagent-panel.styles.js";import{LYRA_DEFAULT_agentRunStatusCancelled,LYRA_DEFAULT_agentRunStatusCollecting,LYRA_DEFAULT_agentRunStatusDone,LYRA_DEFAULT_agentRunStatusIdle,LYRA_DEFAULT_agentRunStatusQueued,LYRA_DEFAULT_agentRunStatusWaitingApproval,LYRA_DEFAULT_agentRunStatusWaitingInput,LYRA_DEFAULT_statusError,LYRA_DEFAULT_statusRunning,LYRA_DEFAULT_subagentPanelCancelRun,LYRA_DEFAULT_subagentPanelEmpty,LYRA_DEFAULT_subagentPanelLabel,LYRA_DEFAULT_subagentPanelLimit,LYRA_DEFAULT_subagentPanelRetry,LYRA_DEFAULT_subagentPanelRetryRun}from"../../../internal/default-strings.generated.js";const ACTIVE=new Set(["queued","running","collecting","waiting-input","waiting-approval"]),MAX_RENDERED_RUNS=500,MAX_VISUAL_INDENT_DEPTH=12;class LyraSubagentPanel extends LyraElement{constructor(){super(...arguments),this.runs=[],this.selectedRunId=null,this.focusedId=null,this.orderedRunsCache={rows:[],truncated:!1},this.previousLimitText="",this.suppressNextLimitAnnouncement=!0,this.onKeyDown=e=>{const{rows}=this.orderedRunsCache;if(rows.length===0)return;const currentIndex=rows.findIndex(r=>r.run.id===this.focusedId);switch(e.key){case"ArrowDown":e.preventDefault(),this.focusRow(rows[Math.min(rows.length-1,currentIndex+1)]);break;case"ArrowUp":e.preventDefault(),this.focusRow(rows[Math.max(0,currentIndex-1)]);break;case"Home":e.preventDefault(),this.focusRow(rows[0]);break;case"End":e.preventDefault(),this.focusRow(rows[rows.length-1]);break;case"Enter":case" ":{const target=e.target;if(target.getAttribute("role")!=="treeitem")return;const row=rows.find(candidate=>candidate.run.id===target.dataset.runId);if(!row)return;e.preventDefault(),this.emit("lr-run-activate",{runId:row.run.id,run:row.run});break}default:return}},this.onFocusIn=e=>{const runId=e.target?.closest('[role="treeitem"]')?.dataset.runId;runId&&(this.focusedId=runId)},this.renderRun=({run,depth,posInSet,setSize},firstId)=>{const selected=run.id===this.selectedRunId,progress=typeof run.progressRatio=="number"?finiteRange(run.progressRatio,0,0,1):null,runPart=selected?"run run-selected":"run",tabbable=this.focusedId===run.id||this.focusedId==null&&run.id===firstId;return html`
|
|
2
2
|
<li
|
|
3
3
|
part=${runPart}
|
|
4
4
|
data-run-id=${run.id}
|
|
@@ -18,7 +18,7 @@ var __decorate=function(decorators,target,key,desc){var c=arguments.length,r=c<3
|
|
|
18
18
|
@click=${()=>this.emit("lr-run-activate",{runId:run.id,run})}
|
|
19
19
|
>
|
|
20
20
|
<span part="label">${run.label}</span>
|
|
21
|
-
<lr-badge part="status" variant=${
|
|
21
|
+
<lr-badge part="status" variant=${AGENT_STATUS_VARIANTS[run.status]??"neutral"}>${this.statusLabel(run.status)}</lr-badge>
|
|
22
22
|
${run.task?html`<span part="task">${run.task}</span>`:nothing}
|
|
23
23
|
${run.model?html`<span part="model">${run.model}</span>`:nothing}
|
|
24
24
|
${progress!=null?html`<span
|
|
@@ -11,14 +11,11 @@ import{css}from"lit";const styles=css`
|
|
|
11
11
|
padding: var(--lr-space-s); border: 0; background: var(--lr-color-surface); color: var(--lr-color-text); font: inherit; text-align: start; cursor: pointer;
|
|
12
12
|
}
|
|
13
13
|
[part='run-trigger']:hover, [part='cancel']:hover, [part='retry']:hover { background: var(--lr-color-surface-raised); }
|
|
14
|
-
/* Pressed is the hovered tint pushed a further --lr-color-mix-active toward
|
|
15
|
-
--lr-color-mix-partner (which follows the text colour), so it reads as a distinctly deeper step
|
|
16
|
-
than hover in both light and dark themes rather than repeating it. */
|
|
17
14
|
[part='run-trigger']:active, [part='cancel']:active, [part='retry']:active {
|
|
18
15
|
background: color-mix(in oklab, var(--lr-color-surface-raised), var(--lr-color-mix-partner) var(--lr-color-mix-active));
|
|
19
16
|
}
|
|
20
17
|
[part='run-trigger']:focus-visible, [part='cancel']:focus-visible, [part='retry']:focus-visible { outline: var(--lr-focus-ring-width) solid var(--lr-focus-ring-color); outline-offset: calc(var(--lr-focus-ring-offset) * -1); }
|
|
21
|
-
[part='label'], [part='task'], [part='model'] { min-inline-size: 0; overflow-wrap:
|
|
18
|
+
[part='label'], [part='task'], [part='model'] { min-inline-size: 0; overflow-wrap: break-word; }
|
|
22
19
|
[part='task'], [part='model'] { grid-column: 1 / -1; color: var(--lr-color-text-quiet); font-size: var(--lr-font-size-sm); }
|
|
23
20
|
[part='progress'] {
|
|
24
21
|
grid-column: 1 / -1;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var __decorate=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r};import{html,svg,nothing}from"lit";import{repeat}from"lit/directives/repeat.js";import{property,query}from"lit/decorators.js";import{LyraElement}from"../../../internal/lyra-element.js";import{nextId}from"../../../internal/a11y.js";import{activeElementIn}from"../../../internal/active-element.js";import{getNumberFormat}from"../../../internal/intl-cache.js";import{resolveHeadingLevel}from"../../../internal/heading-level.js";import{chevronIcon}from"../../../internal/icons.js";import{styles}from"./task-list.styles.js";import{presenceTrueDefaultBooleanConverter as trueDefaultBooleanConverter}from"../../../internal/converters.js";import{LYRA_DEFAULT_collapse,LYRA_DEFAULT_details,LYRA_DEFAULT_item,LYRA_DEFAULT_items,LYRA_DEFAULT_map,LYRA_DEFAULT_navigation,LYRA_DEFAULT_open,LYRA_DEFAULT_progress,LYRA_DEFAULT_search,LYRA_DEFAULT_select,LYRA_DEFAULT_statusError,LYRA_DEFAULT_statusPending,LYRA_DEFAULT_statusRunning,LYRA_DEFAULT_statusSuccess,LYRA_DEFAULT_taskListCompletedOfTotal,LYRA_DEFAULT_taskListLabel,LYRA_DEFAULT_taskListStepCompletedAnnounce,LYRA_DEFAULT_taskListStepFailedAnnounce,LYRA_DEFAULT_taskListStepStartedAnnounce,LYRA_DEFAULT_treeNodeMoved}from"../../../internal/default-strings.generated.js";function normalizeTaskStatus(value){return value==="running"||value==="success"||value==="error"?value:"pending"}const ICON_VIEW_BOX="0 0 24 24",ICON_STROKE_WIDTH="1.75";function icon(paths){return svg`
|
|
1
|
+
var __decorate=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r};import{html,svg,nothing}from"lit";import{repeat}from"lit/directives/repeat.js";import{property,query}from"lit/decorators.js";import{LyraElement}from"../../../internal/lyra-element.js";import{nextId}from"../../../internal/a11y.js";import{activeElementIn}from"../../../internal/active-element.js";import{getNumberFormat}from"../../../internal/intl-cache.js";import{resolveHeadingLevel}from"../../../internal/heading-level.js";import{chevronIcon}from"../../../internal/icons.js";import{styles}from"./task-list.styles.js";import{presenceTrueDefaultBooleanConverter as trueDefaultBooleanConverter}from"../../../internal/converters.js";import{LYRA_DEFAULT_collapse,LYRA_DEFAULT_details,LYRA_DEFAULT_item,LYRA_DEFAULT_items,LYRA_DEFAULT_map,LYRA_DEFAULT_navigation,LYRA_DEFAULT_open,LYRA_DEFAULT_popover,LYRA_DEFAULT_progress,LYRA_DEFAULT_search,LYRA_DEFAULT_select,LYRA_DEFAULT_statusError,LYRA_DEFAULT_statusPending,LYRA_DEFAULT_statusRunning,LYRA_DEFAULT_statusSuccess,LYRA_DEFAULT_taskListCompletedOfTotal,LYRA_DEFAULT_taskListLabel,LYRA_DEFAULT_taskListStepCompletedAnnounce,LYRA_DEFAULT_taskListStepFailedAnnounce,LYRA_DEFAULT_taskListStepStartedAnnounce,LYRA_DEFAULT_treeNodeMoved}from"../../../internal/default-strings.generated.js";function normalizeTaskStatus(value){return value==="running"||value==="success"||value==="error"?value:"pending"}const ICON_VIEW_BOX="0 0 24 24",ICON_STROKE_WIDTH="1.75";function icon(paths){return svg`
|
|
2
2
|
<svg
|
|
3
3
|
width="1em"
|
|
4
4
|
height="1em"
|
|
@@ -15,7 +15,7 @@ var __decorate=function(decorators,target,key,desc){var c=arguments.length,r=c<3
|
|
|
15
15
|
<circle cx="12" cy="12" r="9"></circle>
|
|
16
16
|
<line x1="9" y1="9" x2="15" y2="15"></line>
|
|
17
17
|
<line x1="15" y1="9" x2="9" y2="15"></line>
|
|
18
|
-
`)}const STATUS_ICON={pending:pendingIcon,running:runningIcon,success:successIcon,error:errorIcon},STATUS_LABEL_KEY={pending:"statusPending",running:"statusRunning",success:"statusSuccess",error:"statusError"};class LyraTaskList extends LyraElement{constructor(){super(...arguments),this.items=[],this.reorderable=!1,this.headingLevel="3",this.expanded=!0,this.collapsible=!0,this.compact=!1,this.frame="card",this.headerId=nextId("task-list-header"),this.bodyId=nextId("task-list-body"),this.isMounting=!0,this.previousStatusById=new Map,this.pendingFocusId=null,this.toggle=()=>{this.collapsible&&(this.expanded=!this.expanded,this.emit("lr-toggle",{expanded:this.expanded}))}}static{this.defaultStrings={...super.defaultStrings,collapse:LYRA_DEFAULT_collapse,details:LYRA_DEFAULT_details,item:LYRA_DEFAULT_item,items:LYRA_DEFAULT_items,map:LYRA_DEFAULT_map,navigation:LYRA_DEFAULT_navigation,open:LYRA_DEFAULT_open,progress:LYRA_DEFAULT_progress,search:LYRA_DEFAULT_search,select:LYRA_DEFAULT_select,statusError:LYRA_DEFAULT_statusError,statusPending:LYRA_DEFAULT_statusPending,statusRunning:LYRA_DEFAULT_statusRunning,statusSuccess:LYRA_DEFAULT_statusSuccess,taskListCompletedOfTotal:LYRA_DEFAULT_taskListCompletedOfTotal,taskListLabel:LYRA_DEFAULT_taskListLabel,taskListStepCompletedAnnounce:LYRA_DEFAULT_taskListStepCompletedAnnounce,taskListStepFailedAnnounce:LYRA_DEFAULT_taskListStepFailedAnnounce,taskListStepStartedAnnounce:LYRA_DEFAULT_taskListStepStartedAnnounce,treeNodeMoved:LYRA_DEFAULT_treeNodeMoved}}static{this.ownedCollectionProperties=Object.freeze(["items"])}static{this.styles=[LyraElement.styles,styles]}willUpdate(changed){if(super.willUpdate(changed),changed.has("reorderable")&&!this.reorderable&&this.clearPendingReorder(),changed.has("items")){for(const item of this.items)for(const child of item.children??[])for(const grandchild of child.children??[])console.warn(`<lr-task-list> item "${grandchild.id}" is nested more than one level deep and will be ignored -- only one level of nesting is supported.`);this.capturePendingReorderFocus()}}updated(changed){super.updated(changed);const wasMounting=this.isMounting;this.isMounting=!1,changed.has("items")&&(this.diffAndAnnounce(wasMounting),this.confirmPendingReorder())}disconnectedCallback(){super.disconnectedCallback(),this.clearPendingReorder()}flattenOneLevel(items){const out=[];for(const item of items){out.push(item);for(const child of item.children??[])out.push(child)}return out}diffAndAnnounce(firstSight){const region=this.liveRegion,nextMap=new Map;for(const item of this.flattenOneLevel(this.items)){const status=normalizeTaskStatus(item.status);if(nextMap.set(item.id,status),!firstSight&®ion){const previous=this.previousStatusById.get(item.id);previous!==void 0&&previous!==status&&(status==="running"?(region.mode="polite",region.announce(this.localize("taskListStepStartedAnnounce",void 0,{label:item.label}),{force:!0})):status==="success"?(region.mode="polite",region.announce(this.localize("taskListStepCompletedAnnounce",void 0,{label:item.label}),{force:!0})):status==="error"&&(region.mode="assertive",region.announce(this.localize("taskListStepFailedAnnounce",void 0,{label:item.label}),{force:!0})))}}this.previousStatusById=nextMap}idsAreUnique(){const ids=new Set;for(const item of this.flattenOneLevel(this.items)){if(item.id.trim().length===0||ids.has(item.id))return!1;ids.add(item.id)}return!0}canReorderItems(){return this.reorderable&&this.idsAreUnique()}siblingItems(parentId){return parentId===null?this.items:this.items.find(item=>item.id===parentId)?.children}requestReorder(item,parentId,delta){if(!this.canReorderItems())return;const siblings=this.siblingItems(parentId);if(!siblings)return;const fromIndex=siblings.findIndex(candidate=>candidate.id===item.id),toIndex=fromIndex+delta;fromIndex<0||toIndex<0||toIndex>=siblings.length||(this.pendingReorder={id:item.id,parentId,originalSiblingIds:siblings.map(candidate=>candidate.id),targetSiblingId:siblings[toIndex].id,fromIndex,toIndex},this.pendingFocusId=null,this.emit("lr-reorder",{taskId:item.id,parentTaskId:parentId,fromIndex,toIndex}))}onItemKeyDown(event,item,parentId){event.composedPath()[0]===event.currentTarget&&(!this.canReorderItems()||!(event.ctrlKey||event.metaKey)||event.key!=="ArrowUp"&&event.key!=="ArrowDown"||(event.preventDefault(),this.requestReorder(item,parentId,event.key==="ArrowDown"?1:-1)))}capturePendingReorderFocus(){const pending=this.pendingReorder;if(!pending)return;const active=activeElementIn(this.shadowRoot);this.pendingFocusId=active instanceof HTMLElement&&active.getAttribute("part")==="item"&&active.dataset.id===pending.id?pending.id:null}confirmPendingReorder(){const pending=this.pendingReorder;if(!pending)return;const siblings=this.siblingItems(pending.parentId);if(!siblings||!this.idsAreUnique()){this.clearPendingReorder();return}const siblingIds=siblings.map(item=>item.id);if(!(siblingIds.length!==pending.originalSiblingIds.length||siblingIds.some((id,index)=>id!==pending.originalSiblingIds[index])))return;this.pendingReorder=void 0;const restoreFocus=this.pendingFocusId===pending.id;if(this.pendingFocusId=null,siblingIds[pending.toIndex]!==pending.id||siblingIds[pending.fromIndex]!==pending.targetSiblingId)return;const moved=siblings[pending.toIndex],region=this.liveRegion;region&&(region.mode="polite",region.announce(this.localize("treeNodeMoved",void 0,{label:moved.label,index:getNumberFormat(this.effectiveLocale).format(pending.toIndex+1),total:getNumberFormat(this.effectiveLocale).format(siblings.length)}),{force:!0})),restoreFocus&&this.focusItem(pending.id)}focusItem(id){[...this.shadowRoot?.querySelectorAll('[part="item"]')??[]].find(candidate=>candidate.dataset.id===id)?.focus()}clearPendingReorder(){this.pendingReorder=void 0,this.pendingFocusId=null}renderItem(item,depth,parentId,canReorder){const status=normalizeTaskStatus(item.status),hasChildren=depth===0&&!!item.children&&item.children.length>0;return html`
|
|
18
|
+
`)}const STATUS_ICON={pending:pendingIcon,running:runningIcon,success:successIcon,error:errorIcon},STATUS_LABEL_KEY={pending:"statusPending",running:"statusRunning",success:"statusSuccess",error:"statusError"};class LyraTaskList extends LyraElement{constructor(){super(...arguments),this.items=[],this.reorderable=!1,this.headingLevel="3",this.expanded=!0,this.collapsible=!0,this.compact=!1,this.frame="card",this.headerId=nextId("task-list-header"),this.bodyId=nextId("task-list-body"),this.isMounting=!0,this.previousStatusById=new Map,this.pendingFocusId=null,this.toggle=()=>{this.collapsible&&(this.expanded=!this.expanded,this.emit("lr-toggle",{expanded:this.expanded}))}}static{this.defaultStrings={...super.defaultStrings,collapse:LYRA_DEFAULT_collapse,details:LYRA_DEFAULT_details,item:LYRA_DEFAULT_item,items:LYRA_DEFAULT_items,map:LYRA_DEFAULT_map,navigation:LYRA_DEFAULT_navigation,open:LYRA_DEFAULT_open,popover:LYRA_DEFAULT_popover,progress:LYRA_DEFAULT_progress,search:LYRA_DEFAULT_search,select:LYRA_DEFAULT_select,statusError:LYRA_DEFAULT_statusError,statusPending:LYRA_DEFAULT_statusPending,statusRunning:LYRA_DEFAULT_statusRunning,statusSuccess:LYRA_DEFAULT_statusSuccess,taskListCompletedOfTotal:LYRA_DEFAULT_taskListCompletedOfTotal,taskListLabel:LYRA_DEFAULT_taskListLabel,taskListStepCompletedAnnounce:LYRA_DEFAULT_taskListStepCompletedAnnounce,taskListStepFailedAnnounce:LYRA_DEFAULT_taskListStepFailedAnnounce,taskListStepStartedAnnounce:LYRA_DEFAULT_taskListStepStartedAnnounce,treeNodeMoved:LYRA_DEFAULT_treeNodeMoved}}static{this.ownedCollectionProperties=Object.freeze(["items"])}static{this.styles=[LyraElement.styles,styles]}willUpdate(changed){if(super.willUpdate(changed),changed.has("reorderable")&&!this.reorderable&&this.clearPendingReorder(),changed.has("items")){for(const item of this.items)for(const child of item.children??[])for(const grandchild of child.children??[])console.warn(`<lr-task-list> item "${grandchild.id}" is nested more than one level deep and will be ignored -- only one level of nesting is supported.`);this.capturePendingReorderFocus()}}updated(changed){super.updated(changed);const wasMounting=this.isMounting;this.isMounting=!1,changed.has("items")&&(this.diffAndAnnounce(wasMounting),this.confirmPendingReorder())}disconnectedCallback(){super.disconnectedCallback(),this.clearPendingReorder()}flattenOneLevel(items){const out=[];for(const item of items){out.push(item);for(const child of item.children??[])out.push(child)}return out}diffAndAnnounce(firstSight){const region=this.liveRegion,nextMap=new Map;for(const item of this.flattenOneLevel(this.items)){const status=normalizeTaskStatus(item.status);if(nextMap.set(item.id,status),!firstSight&®ion){const previous=this.previousStatusById.get(item.id);previous!==void 0&&previous!==status&&(status==="running"?(region.mode="polite",region.announce(this.localize("taskListStepStartedAnnounce",void 0,{label:item.label}),{force:!0})):status==="success"?(region.mode="polite",region.announce(this.localize("taskListStepCompletedAnnounce",void 0,{label:item.label}),{force:!0})):status==="error"&&(region.mode="assertive",region.announce(this.localize("taskListStepFailedAnnounce",void 0,{label:item.label}),{force:!0})))}}this.previousStatusById=nextMap}idsAreUnique(){const ids=new Set;for(const item of this.flattenOneLevel(this.items)){if(item.id.trim().length===0||ids.has(item.id))return!1;ids.add(item.id)}return!0}canReorderItems(){return this.reorderable&&this.idsAreUnique()}siblingItems(parentId){return parentId===null?this.items:this.items.find(item=>item.id===parentId)?.children}requestReorder(item,parentId,delta){if(!this.canReorderItems())return;const siblings=this.siblingItems(parentId);if(!siblings)return;const fromIndex=siblings.findIndex(candidate=>candidate.id===item.id),toIndex=fromIndex+delta;fromIndex<0||toIndex<0||toIndex>=siblings.length||(this.pendingReorder={id:item.id,parentId,originalSiblingIds:siblings.map(candidate=>candidate.id),targetSiblingId:siblings[toIndex].id,fromIndex,toIndex},this.pendingFocusId=null,this.emit("lr-reorder",{taskId:item.id,parentTaskId:parentId,fromIndex,toIndex}))}onItemKeyDown(event,item,parentId){event.composedPath()[0]===event.currentTarget&&(!this.canReorderItems()||!(event.ctrlKey||event.metaKey)||event.key!=="ArrowUp"&&event.key!=="ArrowDown"||(event.preventDefault(),this.requestReorder(item,parentId,event.key==="ArrowDown"?1:-1)))}capturePendingReorderFocus(){const pending=this.pendingReorder;if(!pending)return;const active=activeElementIn(this.shadowRoot);this.pendingFocusId=active instanceof HTMLElement&&active.getAttribute("part")==="item"&&active.dataset.id===pending.id?pending.id:null}confirmPendingReorder(){const pending=this.pendingReorder;if(!pending)return;const siblings=this.siblingItems(pending.parentId);if(!siblings||!this.idsAreUnique()){this.clearPendingReorder();return}const siblingIds=siblings.map(item=>item.id);if(!(siblingIds.length!==pending.originalSiblingIds.length||siblingIds.some((id,index)=>id!==pending.originalSiblingIds[index])))return;this.pendingReorder=void 0;const restoreFocus=this.pendingFocusId===pending.id;if(this.pendingFocusId=null,siblingIds[pending.toIndex]!==pending.id||siblingIds[pending.fromIndex]!==pending.targetSiblingId)return;const moved=siblings[pending.toIndex],region=this.liveRegion;region&&(region.mode="polite",region.announce(this.localize("treeNodeMoved",void 0,{label:moved.label,index:getNumberFormat(this.effectiveLocale).format(pending.toIndex+1),total:getNumberFormat(this.effectiveLocale).format(siblings.length)}),{force:!0})),restoreFocus&&this.focusItem(pending.id)}focusItem(id){[...this.shadowRoot?.querySelectorAll('[part="item"]')??[]].find(candidate=>candidate.dataset.id===id)?.focus()}clearPendingReorder(){this.pendingReorder=void 0,this.pendingFocusId=null}renderItem(item,depth,parentId,canReorder){const status=normalizeTaskStatus(item.status),hasChildren=depth===0&&!!item.children&&item.children.length>0;return html`
|
|
19
19
|
<div
|
|
20
20
|
part="item"
|
|
21
21
|
role="listitem"
|