@aceshooting/lyra-ui 9.1.1 → 11.0.0
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 +785 -0
- package/custom-elements.json +1 -1
- package/design-tokens.json +13 -0
- package/dist/cli/migrate-wa.mjs +216 -1
- package/dist/cli/migration-contract.json +1 -1
- package/dist/components/agent-tools/activity-feed/activity-feed.class.js +1 -1
- package/dist/components/agent-tools/activity-feed/activity-feed.styles.js +0 -16
- package/dist/components/agent-tools/agent-eval-dashboard/agent-eval-dashboard.class.js +1 -1
- package/dist/components/agent-tools/agent-eval-dashboard/agent-eval-dashboard.styles.js +7 -5
- package/dist/components/agent-tools/agent-run/agent-run.class.js +2 -2
- package/dist/components/agent-tools/agent-run/agent-run.styles.js +0 -13
- package/dist/components/agent-tools/agent-trace/agent-trace.styles.js +7 -4
- package/dist/components/agent-tools/approval-queue/approval-queue.styles.js +7 -5
- package/dist/components/agent-tools/artifact-panel/artifact-panel.styles.js +0 -3
- package/dist/components/agent-tools/browser-frame/browser-frame.styles.js +3 -5
- package/dist/components/agent-tools/commit-card/commit-card.styles.js +0 -10
- package/dist/components/agent-tools/compare-panel/compare-panel.styles.js +11 -6
- package/dist/components/agent-tools/confirm-bar/confirm-bar.styles.js +0 -46
- package/dist/components/agent-tools/eval-dataset/eval-dataset.styles.js +0 -7
- package/dist/components/agent-tools/evaluation-run/evaluation-run.class.js +2 -2
- package/dist/components/agent-tools/prompt-studio/prompt-studio.styles.js +0 -15
- package/dist/components/agent-tools/result-card/result-card.styles.js +0 -7
- package/dist/components/agent-tools/result-card/result-field.styles.js +0 -5
- package/dist/components/agent-tools/schema-viewer/schema-viewer.styles.js +0 -3
- package/dist/components/agent-tools/span-waterfall/span-waterfall.styles.js +0 -15
- package/dist/components/agent-tools/stack-trace/stack-trace.styles.js +0 -20
- package/dist/components/agent-tools/subagent-panel/subagent-panel.class.js +2 -2
- package/dist/components/agent-tools/subagent-panel/subagent-panel.styles.js +0 -3
- package/dist/components/agent-tools/task-list/task-list.styles.js +0 -15
- package/dist/components/agent-tools/terminal/terminal.class.d.ts +11 -6
- package/dist/components/agent-tools/terminal/terminal.class.js +4 -4
- package/dist/components/agent-tools/terminal/terminal.styles.js +0 -46
- package/dist/components/agent-tools/test-results/test-results.class.js +2 -2
- package/dist/components/agent-tools/test-results/test-results.styles.js +0 -5
- package/dist/components/agent-tools/thinking-panel/thinking-panel.styles.js +0 -41
- package/dist/components/agent-tools/tool-approval-dialog/tool-approval-dialog.styles.js +0 -41
- package/dist/components/agent-tools/tool-call-chip/tool-call-chip.styles.js +0 -30
- package/dist/components/agent-tools/tool-param-form/tool-param-form.class.js +6 -6
- package/dist/components/agent-tools/tool-param-form/tool-param-form.styles.js +0 -5
- package/dist/components/agent-tools/tool-result-dialog/tool-result-dialog.styles.js +0 -20
- package/dist/components/agent-tools/tool-result-view/tool-result-view.styles.js +0 -4
- package/dist/components/agent-tools/tool-select-dialog/tool-select-dialog.styles.js +0 -21
- package/dist/components/agent-tools/trace-tree/trace-tree.styles.js +7 -31
- package/dist/components/charts/chart/box-plot.class.d.ts +27 -0
- package/dist/components/charts/chart/box-plot.class.js +14 -4
- package/dist/components/charts/chart/box-plot.styles.js +28 -20
- package/dist/components/charts/chart/chart-colors.d.ts +1 -1
- package/dist/components/charts/chart/chart-colors.js +1 -1
- package/dist/components/charts/chart/chart-core-loader.d.ts +1 -0
- package/dist/components/charts/chart/chart-core-loader.js +1 -1
- package/dist/components/charts/chart/chart-feature-loader.d.ts +35 -0
- package/dist/components/charts/chart/chart-feature-loader.js +1 -1
- package/dist/components/charts/chart/chart.class.d.ts +120 -0
- package/dist/components/charts/chart/chart.class.js +16 -6
- package/dist/components/charts/chart/chart.styles.js +28 -27
- package/dist/components/charts/chart/lite-chart.class.d.ts +20 -1
- package/dist/components/charts/chart/lite-chart.class.js +4 -4
- package/dist/components/charts/chart/lite-chart.styles.js +0 -27
- package/dist/components/conversation/agent-workspace/agent-workspace.class.d.ts +20 -0
- package/dist/components/conversation/agent-workspace/agent-workspace.class.js +3 -1
- package/dist/components/conversation/agent-workspace/agent-workspace.styles.js +3 -0
- package/dist/components/conversation/audio-visualizer/audio-visualizer.styles.js +0 -7
- package/dist/components/conversation/branch-picker/branch-picker.styles.js +0 -3
- package/dist/components/conversation/chat-composer/chat-composer.styles.js +0 -51
- package/dist/components/conversation/chat-message/chat-message.styles.js +7 -35
- package/dist/components/conversation/chat-viewport/chat-viewport.class.js +1 -1
- package/dist/components/conversation/chat-viewport/chat-viewport.styles.js +0 -33
- package/dist/components/conversation/checkpoint/checkpoint.class.js +1 -1
- package/dist/components/conversation/checkpoint/checkpoint.styles.js +0 -3
- package/dist/components/conversation/code-block/code-block-shared.d.ts +5 -2
- package/dist/components/conversation/code-block/code-block.class.js +1 -1
- package/dist/components/conversation/code-block/code-block.styles.js +4 -95
- package/dist/components/conversation/code-block/code-loader.d.ts +11 -0
- package/dist/components/conversation/code-block/code-loader.js +1 -1
- package/dist/components/conversation/code-block/shiki-types.d.ts +12 -0
- package/dist/components/conversation/code-block/shiki-types.js +1 -1
- package/dist/components/conversation/conversation-item/conversation-item.styles.js +8 -54
- package/dist/components/conversation/generation-metrics/generation-metrics.class.js +2 -2
- package/dist/components/conversation/generation-metrics/generation-metrics.styles.js +0 -17
- package/dist/components/conversation/markdown/markdown-base.class.js +1 -1
- package/dist/components/conversation/markdown/markdown.styles.js +0 -41
- package/dist/components/conversation/message-actions/message-actions.styles.js +0 -3
- package/dist/components/conversation/message-feedback/message-feedback.styles.js +0 -35
- package/dist/components/conversation/message-parts/message-parts.class.d.ts +1 -1
- package/dist/components/conversation/message-parts/message-parts.styles.js +0 -5
- package/dist/components/conversation/model-select/model-select.class.js +3 -3
- package/dist/components/conversation/model-select/model-select.styles.js +12 -47
- package/dist/components/conversation/model-settings-panel/model-settings-panel.styles.js +0 -6
- package/dist/components/conversation/prompt-input/prompt-input.class.d.ts +3 -0
- package/dist/components/conversation/prompt-input/prompt-input.styles.js +0 -10
- package/dist/components/conversation/push-to-talk/push-to-talk.styles.js +0 -8
- package/dist/components/conversation/selection-toolbar/selection-toolbar.styles.js +1 -11
- package/dist/components/conversation/stream-status/stream-status.styles.js +0 -16
- package/dist/components/conversation/streaming-text/streaming-text.styles.js +0 -15
- package/dist/components/conversation/suggestion-chips/suggestion-chips.styles.js +0 -5
- package/dist/components/conversation/thread-list/thread-list.styles.js +0 -23
- package/dist/components/conversation/transcript-feed/transcript-feed.class.d.ts +16 -4
- package/dist/components/conversation/transcript-feed/transcript-feed.class.js +1 -1
- package/dist/components/conversation/transcript-feed/transcript-feed.styles.js +0 -1
- package/dist/components/conversation/typing-indicator/typing-indicator.styles.js +0 -23
- package/dist/components/conversation/usage-badge/usage-badge.styles.js +0 -3
- package/dist/components/conversation/voice-picker/voice-picker.class.js +3 -3
- package/dist/components/conversation/voice-picker/voice-picker.styles.js +9 -29
- package/dist/components/conversation/widget-renderer/resolve.d.ts +2 -0
- package/dist/components/conversation/widget-renderer/resolve.js +1 -1
- package/dist/components/data/calendar/calendar.class.d.ts +15 -2
- package/dist/components/data/calendar/calendar.class.js +2 -2
- package/dist/components/data/calendar/calendar.styles.js +2 -28
- package/dist/components/data/condition-builder/condition-builder.class.d.ts +10 -6
- package/dist/components/data/condition-builder/condition-builder.class.js +2 -2
- package/dist/components/data/condition-builder/condition-builder.styles.js +0 -6
- package/dist/components/data/context-meter/context-meter.styles.js +0 -24
- package/dist/components/data/data-grid/data-grid.class.js +3 -3
- package/dist/components/data/data-grid/data-grid.styles.js +0 -22
- package/dist/components/data/document-library/document-library.class.js +2 -2
- package/dist/components/data/document-library/document-library.styles.js +0 -4
- package/dist/components/data/env-list/env-list.class.js +1 -1
- package/dist/components/data/env-list/env-list.styles.js +7 -4
- package/dist/components/data/file-tree/file-tree.class.d.ts +12 -0
- package/dist/components/data/flow-canvas/flow-canvas.styles.js +12 -19
- package/dist/components/data/flow-controls/flow-controls.class.js +2 -2
- package/dist/components/data/flow-controls/flow-controls.styles.js +3 -36
- package/dist/components/data/flow-minimap/flow-minimap.class.js +1 -1
- package/dist/components/data/flow-minimap/flow-minimap.styles.js +0 -9
- package/dist/components/data/flow-node/flow-node.styles.js +0 -23
- package/dist/components/data/flow-run-status/flow-run-status.class.js +1 -1
- package/dist/components/data/flow-run-status/flow-run-status.styles.js +0 -7
- package/dist/components/data/graph-query-builder/graph-query-builder.class.d.ts +0 -7
- package/dist/components/data/graph-query-builder/graph-query-builder.class.js +1 -1
- package/dist/components/data/graph-query-builder/graph-query-builder.styles.js +0 -10
- package/dist/components/data/heatmap/heatmap-scale.d.ts +20 -0
- package/dist/components/data/heatmap/heatmap-scale.js +1 -1
- package/dist/components/data/heatmap/heatmap.class.d.ts +117 -1
- package/dist/components/data/heatmap/heatmap.class.js +2 -2
- package/dist/components/data/heatmap/heatmap.styles.js +0 -54
- package/dist/components/data/pagination/pagination.styles.js +23 -46
- package/dist/components/data/sequence-strip/sequence-strip.class.d.ts +34 -1
- package/dist/components/data/sequence-strip/sequence-strip.class.js +5 -2
- package/dist/components/data/sequence-strip/sequence-strip.styles.js +14 -20
- package/dist/components/data/sparkline/sparkline.class.js +1 -1
- package/dist/components/data/stat/stat.styles.js +0 -67
- package/dist/components/data/table/table.class.d.ts +42 -3
- package/dist/components/data/table/table.class.js +4 -4
- package/dist/components/data/table/table.styles.js +20 -91
- package/dist/components/data/timeline/timeline-item.styles.js +0 -30
- package/dist/components/data/timeline/timeline.class.d.ts +89 -1
- package/dist/components/data/timeline/timeline.class.js +2 -2
- package/dist/components/data/timeline/timeline.styles.js +111 -31
- package/dist/components/data/tree/tree-item.styles.js +1 -28
- package/dist/components/data/tree/tree.class.js +2 -2
- package/dist/components/data/tree/tree.styles.js +0 -6
- package/dist/components/data/word-cloud/word-cloud.styles.js +0 -5
- package/dist/components/forms/button/button.class.js +1 -1
- package/dist/components/forms/button/button.styles.js +0 -105
- package/dist/components/forms/checkbox/checkbox.class.d.ts +3 -0
- package/dist/components/forms/checkbox/checkbox.class.js +1 -1
- package/dist/components/forms/checkbox/checkbox.styles.js +0 -39
- package/dist/components/forms/checkbox-group/checkbox-group.class.d.ts +21 -2
- package/dist/components/forms/checkbox-group/checkbox-group.class.js +1 -1
- package/dist/components/forms/checkbox-group/checkbox-group.styles.js +0 -18
- package/dist/components/forms/code-editor/code-editor.styles.js +0 -30
- package/dist/components/forms/color-picker/color-picker.class.js +2 -2
- package/dist/components/forms/color-picker/color-picker.styles.js +0 -69
- package/dist/components/forms/combobox/combobox.class.d.ts +71 -3
- package/dist/components/forms/combobox/combobox.class.js +5 -3
- package/dist/components/forms/combobox/combobox.styles.js +31 -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 +47 -0
- package/dist/components/forms/date-picker/date-picker.class.js +36 -22
- package/dist/components/forms/date-picker/date-picker.styles.js +82 -29
- package/dist/components/forms/emoji-picker/emoji-data-loader.d.ts +6 -3
- package/dist/components/forms/emoji-picker/emoji-data-loader.js +1 -1
- package/dist/components/forms/emoji-picker/emoji-picker.class.d.ts +8 -1
- package/dist/components/forms/emoji-picker/emoji-picker.class.js +1 -1
- package/dist/components/forms/emoji-picker/emoji-picker.styles.js +3 -41
- package/dist/components/forms/icon-button/icon-button.class.js +1 -1
- package/dist/components/forms/icon-button/icon-button.styles.js +0 -16
- package/dist/components/forms/input/input.styles.js +0 -54
- package/dist/components/forms/input/number-input.styles.d.ts +4 -5
- package/dist/components/forms/input/number-input.styles.js +0 -11
- package/dist/components/forms/input/time-input-shared.d.ts +11 -0
- package/dist/components/forms/input/time-input-shared.js +1 -1
- package/dist/components/forms/input/time-input.class.d.ts +11 -2
- package/dist/components/forms/input/time-input.class.js +1 -1
- package/dist/components/forms/input/time-input.styles.js +0 -6
- package/dist/components/forms/locale-picker/locale-picker.class.js +2 -2
- package/dist/components/forms/locale-picker/locale-picker.styles.js +1 -26
- package/dist/components/forms/otp-input/otp-input.class.js +3 -3
- package/dist/components/forms/otp-input/otp-input.styles.js +0 -16
- package/dist/components/forms/phone-input/phone-input.class.d.ts +9 -1
- package/dist/components/forms/phone-input/phone-input.class.js +2 -2
- package/dist/components/forms/phone-input/phone-input.styles.js +0 -37
- package/dist/components/forms/radio/radio-button.styles.js +1 -30
- package/dist/components/forms/radio/radio-group.styles.js +0 -4
- package/dist/components/forms/radio/radio.styles.js +0 -44
- package/dist/components/forms/rubric-form/rubric-form.styles.js +0 -5
- package/dist/components/forms/select/select.class.js +1 -1
- package/dist/components/forms/select/select.styles.js +14 -114
- package/dist/components/forms/slider/slider.styles.js +0 -55
- package/dist/components/forms/swatch-picker/swatch-picker.class.d.ts +0 -11
- package/dist/components/forms/swatch-picker/swatch-picker.class.js +2 -2
- package/dist/components/forms/swatch-picker/swatch-picker.styles.js +0 -77
- package/dist/components/forms/switch/switch.class.d.ts +3 -0
- package/dist/components/forms/switch/switch.class.js +1 -1
- package/dist/components/forms/switch/switch.styles.js +0 -37
- package/dist/components/forms/textarea/textarea.styles.js +0 -28
- package/dist/components/forms/time-range/time-range.styles.js +12 -84
- package/dist/components/forms/token-input/token-input.class.d.ts +23 -9
- package/dist/components/forms/token-input/token-input.class.js +1 -1
- package/dist/components/forms/token-input/token-input.styles.js +1 -54
- package/dist/components/layout/app-rail/app-rail-item.class.js +2 -2
- package/dist/components/layout/app-rail/app-rail-item.styles.js +0 -13
- package/dist/components/layout/app-rail/app-rail.class.d.ts +5 -0
- package/dist/components/layout/app-rail/app-rail.class.js +1 -1
- package/dist/components/layout/app-rail/app-rail.styles.js +0 -46
- package/dist/components/layout/button-group/button-group.styles.js +0 -6
- package/dist/components/layout/card/card.class.d.ts +12 -0
- package/dist/components/layout/card/card.styles.js +3 -11
- package/dist/components/layout/carousel/carousel.styles.js +0 -1
- package/dist/components/layout/command-palette/command-palette.class.d.ts +8 -0
- package/dist/components/layout/command-palette/command-palette.class.js +3 -1
- package/dist/components/layout/command-palette/command-palette.styles.js +1 -13
- package/dist/components/layout/control-group/control-group.styles.js +0 -7
- package/dist/components/layout/dashboard-grid/dashboard-grid.styles.js +6 -25
- package/dist/components/layout/details/accordion.class.d.ts +13 -0
- package/dist/components/layout/details/accordion.class.js +1 -1
- package/dist/components/layout/details/details.class.js +1 -1
- package/dist/components/layout/details/details.styles.js +0 -12
- package/dist/components/layout/dock-panel/dock-panel.styles.js +0 -45
- package/dist/components/layout/drilldown-panel/drilldown-panel.class.d.ts +2 -0
- package/dist/components/layout/drilldown-panel/drilldown-panel.class.js +2 -2
- package/dist/components/layout/drilldown-panel/drilldown-panel.styles.js +0 -4
- package/dist/components/layout/filter-bar/filter-bar.class.js +1 -1
- package/dist/components/layout/filter-bar/filter-bar.styles.js +0 -9
- package/dist/components/layout/menu/menu-item.class.d.ts +5 -0
- package/dist/components/layout/menu/menu-item.class.js +1 -1
- package/dist/components/layout/menu/menu-item.styles.js +0 -49
- package/dist/components/layout/menu/menu-label.styles.js +0 -2
- package/dist/components/layout/menu/menu.styles.js +0 -18
- package/dist/components/layout/multi-split/multi-split.styles.js +0 -63
- package/dist/components/layout/page/page.class.d.ts +4 -0
- package/dist/components/layout/page/page.class.js +1 -1
- package/dist/components/layout/reorder-list/reorder-item.styles.js +0 -4
- package/dist/components/layout/responsive-panel/responsive-panel.styles.js +0 -27
- package/dist/components/layout/scroller/scroller.styles.js +0 -20
- package/dist/components/layout/segmented/segmented.class.d.ts +7 -1
- package/dist/components/layout/segmented/segmented.class.js +1 -1
- package/dist/components/layout/segmented/segmented.styles.js +69 -37
- package/dist/components/layout/split-panel/split-panel.styles.js +1 -7
- package/dist/components/layout/stepper/stepper.class.d.ts +8 -1
- package/dist/components/layout/stepper/stepper.class.js +1 -1
- package/dist/components/layout/stepper/stepper.styles.js +140 -41
- package/dist/components/layout/tab-group/tab-group.class.d.ts +4 -1
- package/dist/components/layout/tab-group/tab-group.styles.js +9 -75
- package/dist/components/layout/tab-group/tab.styles.js +0 -2
- package/dist/components/layout/virtual-list/virtual-list.class.d.ts +4 -4
- package/dist/components/layout/virtual-list/virtual-list.class.js +1 -1
- package/dist/components/layout/virtual-list/virtual-list.styles.js +0 -68
- package/dist/components/layout/widget/widget.class.d.ts +5 -1
- package/dist/components/layout/widget/widget.class.js +1 -1
- package/dist/components/layout/widget/widget.styles.js +97 -40
- package/dist/components/media/animated-image/animated-image.class.d.ts +3 -0
- package/dist/components/media/animated-image/animated-image.class.js +1 -1
- package/dist/components/media/animated-image/animated-image.styles.js +0 -28
- package/dist/components/media/attachment-chip/attachment-chip.class.d.ts +1 -1
- package/dist/components/media/attachment-chip/attachment-chip.class.js +1 -1
- package/dist/components/media/attachment-chip/attachment-chip.styles.js +0 -31
- package/dist/components/media/attachment-trigger/attachment-trigger.class.js +3 -3
- package/dist/components/media/attachment-trigger/attachment-trigger.styles.js +0 -40
- package/dist/components/media/av-player/av-player.class.d.ts +5 -6
- package/dist/components/media/av-player/av-player.class.js +1 -1
- package/dist/components/media/av-player/av-player.styles.js +0 -45
- package/dist/components/media/avatar/avatar.styles.js +3 -16
- package/dist/components/media/file-icon/file-icon.class.d.ts +1 -2
- package/dist/components/media/file-icon/file-icon.class.js +1 -1
- package/dist/components/media/file-input/file-input.class.d.ts +12 -0
- package/dist/components/media/file-input/file-input.styles.js +3 -24
- package/dist/components/media/flag/flag.class.d.ts +23 -1
- package/dist/components/media/flag/flag.class.js +4 -2
- package/dist/components/media/flag/flag.styles.js +7 -1
- package/dist/components/media/flag/language-map.d.ts +10 -0
- package/dist/components/media/flag/language-map.js +1 -1
- package/dist/components/media/image-comparer/image-comparer.styles.js +4 -33
- package/dist/components/media/image-viewer/image-viewer.class.js +0 -2
- package/dist/components/media/image-viewer/image-viewer.styles.js +7 -27
- package/dist/components/media/lightbox/lightbox.class.js +0 -2
- package/dist/components/media/lightbox/lightbox.styles.js +0 -21
- package/dist/components/media/map/map-loader.d.ts +19 -1
- package/dist/components/media/map/map-loader.js +1 -1
- package/dist/components/media/map/map.class.d.ts +178 -1
- package/dist/components/media/map/map.class.js +15 -3
- package/dist/components/media/map/map.styles.js +20 -17
- package/dist/components/media/media-card/media-card.class.d.ts +14 -3
- package/dist/components/media/media-card/media-card.class.js +1 -1
- package/dist/components/media/media-card/media-card.styles.js +2 -28
- package/dist/components/media/pan-zoom/pan-zoom.styles.js +0 -3
- package/dist/components/media/qr-code/qr-code.class.d.ts +3 -2
- package/dist/components/media/qr-code/qr-code.class.js +2 -2
- package/dist/components/media/qr-code/qr-code.styles.js +0 -3
- package/dist/components/media/sequence-playback/sequence-playback.class.d.ts +2 -0
- package/dist/components/media/sequence-playback/sequence-playback.class.js +2 -1
- package/dist/components/media/sequence-playback/sequence-playback.styles.js +0 -19
- package/dist/components/media/video/video.class.d.ts +23 -2
- package/dist/components/media/video/video.class.js +3 -3
- package/dist/components/media/video/video.styles.js +4 -2
- package/dist/components/media/zoomable-frame/zoomable-frame.class.d.ts +3 -2
- package/dist/components/media/zoomable-frame/zoomable-frame.class.js +2 -2
- package/dist/components/media/zoomable-frame/zoomable-frame.styles.js +0 -5
- package/dist/components/overlays/alert/alert.styles.js +4 -2
- package/dist/components/overlays/badge/badge.styles.js +4 -48
- package/dist/components/overlays/badge/tag.styles.js +0 -14
- package/dist/components/overlays/callout/callout.styles.js +0 -11
- package/dist/components/overlays/chip/chip-group.styles.js +0 -18
- package/dist/components/overlays/chip/chip.styles.js +6 -69
- package/dist/components/overlays/dialog/confirm.d.ts +1 -4
- package/dist/components/overlays/dialog/confirm.js +1 -1
- package/dist/components/overlays/dialog/dialog.class.d.ts +32 -9
- package/dist/components/overlays/dialog/dialog.class.js +1 -1
- package/dist/components/overlays/dialog/dialog.styles.js +0 -43
- package/dist/components/overlays/drawer/drawer.class.d.ts +2 -2
- package/dist/components/overlays/drawer/drawer.styles.js +0 -9
- package/dist/components/overlays/empty/empty.styles.js +0 -12
- package/dist/components/overlays/kbd/kbd.styles.js +0 -8
- package/dist/components/overlays/overlay/dropdown.class.d.ts +1 -6
- package/dist/components/overlays/overlay/dropdown.class.js +2 -2
- package/dist/components/overlays/overlay/overlay.styles.js +0 -28
- package/dist/components/overlays/overlay/popover.class.d.ts +28 -4
- package/dist/components/overlays/overlay/popover.class.js +2 -2
- package/dist/components/overlays/overlay/tooltip.class.d.ts +10 -0
- package/dist/components/overlays/overlay/tooltip.class.js +1 -1
- package/dist/components/overlays/popup/popup.class.d.ts +1 -0
- package/dist/components/overlays/popup/popup.class.js +1 -1
- package/dist/components/overlays/popup/popup.styles.js +0 -15
- package/dist/components/overlays/progress/progress-ring.class.d.ts +9 -1
- package/dist/components/overlays/progress/progress-ring.class.js +3 -3
- package/dist/components/overlays/progress/progress.styles.js +0 -21
- package/dist/components/overlays/rating/rating.styles.js +0 -25
- package/dist/components/overlays/skeleton/skeleton.styles.js +0 -4
- package/dist/components/overlays/spinner/spinner.styles.js +0 -3
- package/dist/components/overlays/toast/toast-item.styles.js +3 -45
- package/dist/components/retrieval/chunk-inspector/chunk-inspector.styles.js +0 -35
- package/dist/components/retrieval/citation-badge/citation-badge.class.d.ts +2 -2
- package/dist/components/retrieval/citation-badge/citation-badge.class.js +3 -3
- package/dist/components/retrieval/citation-badge/citation-badge.styles.js +0 -20
- package/dist/components/retrieval/claim-evidence/claim-evidence.styles.js +0 -8
- package/dist/components/retrieval/community-card/community-card.class.d.ts +1 -0
- package/dist/components/retrieval/community-card/community-card.styles.js +0 -6
- package/dist/components/retrieval/embedding-explorer/embedding-explorer.styles.js +8 -12
- package/dist/components/retrieval/entity-card/entity-card.class.d.ts +4 -3
- package/dist/components/retrieval/entity-card/entity-card.class.js +1 -1
- package/dist/components/retrieval/entity-card/entity-card.styles.js +0 -12
- package/dist/components/retrieval/entity-chip/entity-chip.class.d.ts +10 -4
- package/dist/components/retrieval/entity-chip/entity-chip.class.js +3 -3
- package/dist/components/retrieval/entity-chip/entity-chip.styles.js +6 -9
- package/dist/components/retrieval/entity-dossier/entity-dossier.class.d.ts +19 -5
- package/dist/components/retrieval/graph/graph.class.d.ts +5 -0
- package/dist/components/retrieval/graph/graph.class.js +1 -1
- package/dist/components/retrieval/graph/graph.styles.js +0 -30
- package/dist/components/retrieval/graph-legend/graph-legend.styles.js +0 -3
- package/dist/components/retrieval/ingestion-queue/ingestion-queue.styles.js +0 -25
- package/dist/components/retrieval/knowledge-base-admin/knowledge-base-admin.class.d.ts +2 -0
- package/dist/components/retrieval/knowledge-base-admin/knowledge-base-admin.styles.js +0 -7
- package/dist/components/retrieval/knowledge-graph-explorer/knowledge-graph-explorer.class.d.ts +20 -6
- package/dist/components/retrieval/knowledge-graph-explorer/knowledge-graph-explorer.class.js +2 -2
- package/dist/components/retrieval/knowledge-graph-explorer/knowledge-graph-explorer.styles.js +0 -16
- package/dist/components/retrieval/mind-map/mind-map.class.d.ts +5 -3
- package/dist/components/retrieval/mind-map/mind-map.class.js +1 -1
- package/dist/components/retrieval/mind-map/mind-map.styles.js +0 -2
- package/dist/components/retrieval/neighbor-list/neighbor-list.class.d.ts +3 -2
- package/dist/components/retrieval/neighbor-list/neighbor-list.class.js +1 -1
- package/dist/components/retrieval/neighbor-list/neighbor-list.styles.js +0 -30
- package/dist/components/retrieval/node-palette/node-palette.styles.js +0 -11
- package/dist/components/retrieval/path-strip/path-strip.styles.js +0 -10
- package/dist/components/retrieval/provenance-panel/provenance-panel.class.d.ts +12 -3
- package/dist/components/retrieval/provenance-panel/provenance-panel.styles.js +0 -2
- package/dist/components/retrieval/rag-eval-dashboard/rag-eval-dashboard.class.d.ts +3 -2
- package/dist/components/retrieval/rag-eval-dashboard/rag-eval-dashboard.class.js +2 -2
- package/dist/components/retrieval/retrieval-results/retrieval-results.styles.js +0 -28
- package/dist/components/retrieval/retrieval-search/retrieval-search.styles.js +0 -4
- package/dist/components/retrieval/retrieval-trace/retrieval-trace.styles.js +0 -2
- package/dist/components/retrieval/source-card/source-card.styles.js +0 -13
- package/dist/components/retrieval/source-list/source-list.styles.js +0 -7
- package/dist/components/retrieval/source-picker/source-picker.styles.js +0 -7
- package/dist/components/utility/copy-button/copy-button.styles.js +0 -10
- package/dist/components/utility/diff-view/diff-view.styles.js +0 -14
- package/dist/components/utility/export-button/export-button.styles.js +0 -22
- package/dist/components/utility/icon/icon.styles.js +0 -6
- package/dist/components/utility/json-viewer/json-viewer.styles.js +2 -48
- package/dist/components/utility/known-date/known-date.class.d.ts +7 -3
- package/dist/components/utility/known-date/known-date.styles.js +10 -51
- package/dist/components/utility/live-region/live-region.styles.js +0 -4
- package/dist/components/utility/mention-popover/mention-popover.styles.js +0 -25
- package/dist/components/utility/poll-status/poll-status.styles.js +0 -4
- package/dist/components/utility/random-content/random-content.class.d.ts +22 -0
- package/dist/components/utility/random-content/random-content.class.js +3 -2
- package/dist/components/utility/random-content/random-content.styles.js +6 -13
- package/dist/components/utility/tour/tour.class.d.ts +4 -2
- package/dist/components/utility/tour/tour.class.js +3 -3
- package/dist/components/utility/tour/tour.styles.js +0 -13
- package/dist/components/utility/visually-hidden/visually-hidden.styles.js +0 -5
- package/dist/components/viewers/archive-viewer/archive-viewer.class.js +1 -1
- package/dist/components/viewers/archive-viewer/archive-viewer.styles.d.ts +2 -2
- package/dist/components/viewers/archive-viewer/archive-viewer.styles.js +0 -10
- package/dist/components/viewers/csv-viewer/csv-viewer.class.js +1 -1
- package/dist/components/viewers/csv-viewer/csv-viewer.styles.js +0 -19
- package/dist/components/viewers/dataset-viewer/dataset-viewer.class.js +1 -1
- package/dist/components/viewers/dataset-viewer/dataset-viewer.styles.js +0 -15
- package/dist/components/viewers/document-compare/document-compare.styles.js +0 -3
- package/dist/components/viewers/document-preview/document-preview.styles.js +0 -25
- package/dist/components/viewers/document-viewer/document-viewer.class.d.ts +2 -1
- package/dist/components/viewers/document-viewer/document-viewer.class.js +1 -1
- package/dist/components/viewers/document-viewer/document-viewer.styles.js +0 -5
- package/dist/components/viewers/docx-viewer/docx-viewer.styles.js +0 -17
- package/dist/components/viewers/ebook-viewer/ebook-viewer.styles.js +0 -4
- package/dist/components/viewers/email-viewer/email-viewer.styles.js +0 -7
- package/dist/components/viewers/geojson-view/geojson-view.styles.js +0 -5
- package/dist/components/viewers/highlight-layer/highlight-layer.styles.js +0 -3
- package/dist/components/viewers/notebook-viewer/notebook-viewer.class.js +1 -1
- package/dist/components/viewers/notebook-viewer/notebook-viewer.styles.js +0 -38
- package/dist/components/viewers/page-rail/page-rail.class.js +1 -1
- package/dist/components/viewers/page-rail/page-rail.styles.js +0 -13
- package/dist/components/viewers/pdf-viewer/pdf-loader.d.ts +13 -2
- package/dist/components/viewers/pdf-viewer/pdf-loader.js +1 -1
- package/dist/components/viewers/pdf-viewer/pdf-viewer.class.d.ts +32 -2
- package/dist/components/viewers/pdf-viewer/pdf-viewer.class.js +4 -4
- package/dist/components/viewers/pdf-viewer/pdf-viewer.styles.js +1 -27
- package/dist/components/viewers/pptx-viewer/pptx-viewer.styles.js +0 -3
- package/dist/components/viewers/spreadsheet-viewer/spreadsheet-viewer.class.js +1 -1
- package/dist/components/viewers/spreadsheet-viewer/spreadsheet-viewer.styles.js +0 -14
- package/dist/components/viewers/svg-viewer/svg-viewer.styles.js +0 -7
- package/dist/components/viewers/xml-viewer/xml-viewer.styles.js +2 -24
- package/dist/custom-elements-jsx.d.ts +72 -40
- package/dist/events.d.ts +43 -33
- package/dist/internal/agent-status-variants.d.ts +18 -0
- package/dist/internal/agent-status-variants.js +1 -0
- package/dist/internal/announcer.d.ts +8 -3
- package/dist/internal/announcer.js +1 -1
- package/dist/internal/autoloader-manifest.js +1 -1
- package/dist/internal/canvas-color.d.ts +16 -0
- package/dist/internal/canvas-color.js +1 -1
- package/dist/internal/catalog-picker.d.ts +0 -1
- package/dist/internal/catalog-picker.js +1 -1
- package/dist/internal/default-strings.generated.d.ts +1 -0
- package/dist/internal/default-strings.generated.js +1 -1
- package/dist/internal/dev-mode-attribute-warning.d.ts +27 -4
- package/dist/internal/dev-mode-attribute-warning.js +1 -1
- package/dist/internal/localization-runtime.js +1 -1
- package/dist/internal/localization-types.d.ts +1 -1
- package/dist/internal/localization.js +1 -1
- package/dist/internal/lyra-element.d.ts +13 -0
- package/dist/internal/lyra-element.js +1 -1
- package/dist/internal/media-controller.js +1 -1
- package/dist/internal/package-metadata.d.ts +1 -1
- package/dist/internal/package-metadata.js +1 -1
- package/dist/internal/scroll-overflow.d.ts +35 -13
- package/dist/internal/scroll-overflow.js +1 -1
- package/dist/internal/sizes.styles.js +0 -2
- package/dist/internal/specialist-tokens.styles.js +6 -11
- package/dist/internal/text-highlights.d.ts +4 -1
- package/dist/internal/text-highlights.js +1 -1
- package/dist/internal/tokens/palette.styles.js +0 -15
- package/dist/internal/tokens.styles.js +20 -113
- package/dist/lyra.d.ts +9 -6
- package/dist/styles/reservations.css +82 -0
- package/dist/svelte.d.ts +72 -40
- 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 +72 -40
- package/llms/components/lr-accordion-item.md +12 -3
- package/llms/components/lr-accordion.md +11 -2
- package/llms/components/lr-agent-eval-dashboard.md +1 -1
- package/llms/components/lr-agent-trace.md +3 -1
- package/llms/components/lr-agent-workspace.md +20 -0
- package/llms/components/lr-artifact-panel.md +10 -4
- package/llms/components/lr-attachment-chip.md +7 -4
- package/llms/components/lr-attachment-trigger.md +7 -4
- package/llms/components/lr-av-player.md +3 -1
- package/llms/components/lr-avatar.md +6 -6
- package/llms/components/lr-bar-chart.md +8 -6
- package/llms/components/lr-box-plot.md +15 -4
- package/llms/components/lr-browser-frame.md +7 -3
- package/llms/components/lr-bubble-chart.md +8 -6
- package/llms/components/lr-calendar.md +9 -2
- package/llms/components/lr-card.md +24 -0
- package/llms/components/lr-chart.md +45 -11
- 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 +47 -8
- 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-date-input.md +22 -2
- package/llms/components/lr-date-picker.md +23 -3
- package/llms/components/lr-details.md +11 -2
- package/llms/components/lr-dialog.md +16 -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 +8 -6
- 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 +30 -8
- package/llms/components/lr-heatmap.md +46 -0
- package/llms/components/lr-histogram.md +7 -4
- 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 +8 -6
- package/llms/components/lr-lite-chart.md +16 -6
- package/llms/components/lr-map.md +91 -10
- 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 +46 -7
- package/llms/components/lr-pdf-viewer.md +62 -2
- package/llms/components/lr-pie-chart.md +8 -6
- package/llms/components/lr-polar-area-chart.md +8 -6
- package/llms/components/lr-popover.md +25 -1
- 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 +8 -6
- 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 +8 -6
- package/llms/components/lr-sequence-strip.md +16 -2
- package/llms/components/lr-slider.md +12 -5
- package/llms/components/lr-sparkline.md +1 -1
- package/llms/components/lr-suggestion-chips.md +7 -2
- package/llms/components/lr-swatch-picker.md +5 -5
- package/llms/components/lr-switch.md +5 -2
- package/llms/components/lr-table.md +30 -4
- package/llms/components/lr-terminal.md +3 -1
- package/llms/components/lr-thread-list.md +8 -8
- package/llms/components/lr-time-input.md +6 -1
- package/llms/components/lr-timeline-item.md +24 -0
- package/llms/components/lr-timeline.md +25 -1
- package/llms/components/lr-token-input.md +7 -2
- package/llms/components/lr-tool-approval-dialog.md +7 -8
- package/llms/components/lr-tool-call-chip.md +5 -1
- package/llms/components/lr-tool-param-form.md +14 -12
- package/llms/components/lr-tool-result-dialog.md +11 -9
- package/llms/components/lr-tool-result-view.md +7 -6
- package/llms/components/lr-tool-select-dialog.md +18 -16
- package/llms/components/lr-trace-tree.md +3 -1
- package/llms/components/lr-usage-badge.md +4 -1
- package/llms/components/lr-video-playlist.md +1 -1
- package/llms/components/lr-virtual-list.md +22 -14
- package/llms/components/lr-voice-picker.md +8 -5
- package/llms/components/lr-widget-renderer.md +3 -3
- package/llms/components/lr-widget.md +1 -1
- package/llms/components/lr-word-cloud.md +6 -2
- package/llms/peers.md +12 -2
- package/llms/shared.md +70 -2
- package/llms/tokens.md +15 -1
- package/llms-full.txt +1335 -306
- package/package.json +17 -5
- package/vscode-css-data.json +93 -2
- package/vscode-html-data.json +513 -59
- package/web-types.json +457 -72
|
@@ -14,9 +14,6 @@ import{css}from"lit";const styles=css`
|
|
|
14
14
|
}
|
|
15
15
|
[part="up-button"],
|
|
16
16
|
[part="down-button"] {
|
|
17
|
-
/* Keep the glyph compact while giving the interactive box the shared
|
|
18
|
-
minimum target size -- same "small glyph, padded hit box" pattern as
|
|
19
|
-
lr-code-block's/lr-json-viewer's [part='toggle']. */
|
|
20
17
|
display: inline-flex;
|
|
21
18
|
align-items: center;
|
|
22
19
|
justify-content: center;
|
|
@@ -31,8 +28,6 @@ import{css}from"lit";const styles=css`
|
|
|
31
28
|
color: var(--lr-color-text-quiet);
|
|
32
29
|
cursor: pointer;
|
|
33
30
|
}
|
|
34
|
-
/* Keep authored state qualifiers low-weight and easy to compose. Consumer-part precedence is
|
|
35
|
-
verified from rendered computed style rather than inferred from selector arithmetic. */
|
|
36
31
|
:where([part="up-button"]):hover:where(:not(:disabled)),
|
|
37
32
|
:where([part="down-button"]):hover:where(:not(:disabled)) {
|
|
38
33
|
background: var(--lr-color-surface-raised);
|
|
@@ -52,15 +47,6 @@ import{css}from"lit";const styles=css`
|
|
|
52
47
|
outline: var(--lr-focus-ring-width) solid var(--lr-focus-ring-color);
|
|
53
48
|
outline-offset: var(--lr-focus-ring-offset);
|
|
54
49
|
}
|
|
55
|
-
/* The pressed state is never color-alone -- the icon itself swaps to a filled glyph in
|
|
56
|
-
lockstep with aria-pressed. These color/background/border rules are additive emphasis
|
|
57
|
-
layered on top of that shape change, not the sole signal. */
|
|
58
|
-
/* Inline var() fallbacks rather than :host-declared properties, so a consumer can set them on the
|
|
59
|
-
element or any ancestor and a :host declaration can never shadow that.
|
|
60
|
-
::part(up-button)[aria-pressed='true'] is invalid CSS -- Shadow Parts forbids an attribute
|
|
61
|
-
selector after ::part() -- so retinting the pressed state used to mean hijacking the shared
|
|
62
|
-
--lr-color-success/-danger tokens, which repainted every other surface reading them. Unset,
|
|
63
|
-
each falls back to the token the rule already used, so the rendering is unchanged. */
|
|
64
50
|
[part="up-button"][aria-pressed="true"] {
|
|
65
51
|
color: var(--lr-message-feedback-up-active-color, var(--lr-color-success));
|
|
66
52
|
background: var(
|
|
@@ -88,9 +74,6 @@ import{css}from"lit";const styles=css`
|
|
|
88
74
|
cursor: not-allowed;
|
|
89
75
|
opacity: var(--lr-opacity-disabled);
|
|
90
76
|
}
|
|
91
|
-
/* A 0fr/1fr grid-row trick animates the disclosure's block size without measuring content --
|
|
92
|
-
min-block-size: 0 on the inner wrapper plus overflow: hidden here keeps collapsed content from
|
|
93
|
-
leaking through during the transition. */
|
|
94
77
|
[part="panel"] {
|
|
95
78
|
display: grid;
|
|
96
79
|
grid-template-rows: 0fr;
|
|
@@ -144,10 +127,6 @@ import{css}from"lit";const styles=css`
|
|
|
144
127
|
outline: var(--lr-focus-ring-width) solid var(--lr-focus-ring-color);
|
|
145
128
|
outline-offset: var(--lr-focus-ring-offset);
|
|
146
129
|
}
|
|
147
|
-
/* no-pressed-state: [part='comment'] is a textarea. A press on a text field is answered by the
|
|
148
|
-
field taking focus and raising its focus ring, which is both stronger than any momentary
|
|
149
|
-
pressed tint and outlasts the mouse button; a second, competing flash on mousedown would only
|
|
150
|
-
add noise to the one interaction that already has unambiguous feedback. */
|
|
151
130
|
:where([part="comment"]):hover:where(:not(:disabled)) {
|
|
152
131
|
border-color: var(--lr-color-brand);
|
|
153
132
|
}
|
|
@@ -169,16 +148,6 @@ import{css}from"lit";const styles=css`
|
|
|
169
148
|
overflow-wrap: anywhere;
|
|
170
149
|
cursor: pointer;
|
|
171
150
|
}
|
|
172
|
-
/* Hover/press are a background mix, never filter: brightness(). brightness() multiplies every
|
|
173
|
-
channel, so it lightens a dark fill and darkens a light one only by accident, does nothing at
|
|
174
|
-
all to a pure white or pure black brand color, and -- because filter applies to the whole
|
|
175
|
-
subtree -- dims the label along with the fill. Mixing the resting fill toward
|
|
176
|
-
--lr-color-mix-partner (which tracks the text color) always moves, always in the direction the
|
|
177
|
-
surface needs, and leaves the label alone. */
|
|
178
|
-
/* Gated on :not(:disabled) through the same :where() wrapper the thumb buttons use above -- a
|
|
179
|
-
submit button held disabled by the disabled or a long-lived pending state still matches :hover
|
|
180
|
-
(CSS keeps matching it on a disabled control), so an ungated rule made the one control the
|
|
181
|
-
user cannot activate look like the most activatable thing on the panel. */
|
|
182
151
|
:where([part="submit-button"]):hover:where(:not(:disabled)) {
|
|
183
152
|
background: color-mix(
|
|
184
153
|
in oklab,
|
|
@@ -193,8 +162,6 @@ import{css}from"lit";const styles=css`
|
|
|
193
162
|
var(--lr-color-mix-partner) var(--lr-color-mix-active)
|
|
194
163
|
);
|
|
195
164
|
}
|
|
196
|
-
/* Matches the up/down thumb buttons' own disabled treatment, so every control in the component
|
|
197
|
-
reads as unavailable from the same two signals (dimmed fill, not-allowed cursor). */
|
|
198
165
|
[part="submit-button"]:disabled {
|
|
199
166
|
cursor: not-allowed;
|
|
200
167
|
opacity: var(--lr-opacity-disabled);
|
|
@@ -207,6 +174,4 @@ import{css}from"lit";const styles=css`
|
|
|
207
174
|
outline: var(--lr-focus-ring-width) solid var(--lr-focus-ring-color);
|
|
208
175
|
outline-offset: var(--lr-focus-ring-offset);
|
|
209
176
|
}
|
|
210
|
-
/* 320px baseline: the panel already stacks in a flex column and the comment field is full-width
|
|
211
|
-
by construction, so no additional narrow-specific rule is needed. */
|
|
212
177
|
`;export{styles};
|
|
@@ -48,7 +48,7 @@ export interface LyraMessagePartsEventMap extends Omit<LyraMarkdownEventMap, 'lr
|
|
|
48
48
|
* @event lr-highlight-activate - Passthrough from rendered Markdown.
|
|
49
49
|
* @event lr-text-select - Passthrough from rendered Markdown.
|
|
50
50
|
* @event lr-anchor-result - Passthrough from rendered Markdown.
|
|
51
|
-
* @event lr-preview-request -
|
|
51
|
+
* @event lr-preview-request - Passthrough from a rendered attachment. Not cancelable since 10.0.0.
|
|
52
52
|
* @event lr-retry - Passthrough from a rendered attachment.
|
|
53
53
|
* @event lr-remove - Passthrough from a rendered attachment.
|
|
54
54
|
* @event lr-citation-open - Passthrough from a rendered citation's full-preview action.
|
|
@@ -16,11 +16,6 @@ import{css}from"lit";const styles=css`
|
|
|
16
16
|
min-inline-size: 0;
|
|
17
17
|
}
|
|
18
18
|
|
|
19
|
-
/* De-emphasises this part's OWN text while an answer is still streaming. Deliberately a colour
|
|
20
|
-
change rather than an opacity on the subtree: a streaming part can contain a nested component
|
|
21
|
-
(an <lr-thinking-panel>, a tool-call chip) that sets its own colour at the contrast floor, and
|
|
22
|
-
a container opacity multiplies that down through it — which is a WCAG 1.4.3 failure the nested
|
|
23
|
-
component cannot see or defend against. color only reaches text that actually inherits it. */
|
|
24
19
|
[part~='part-streaming'] {
|
|
25
20
|
color: var(--lr-message-parts-streaming-color, var(--lr-color-text-quiet));
|
|
26
21
|
}
|
|
@@ -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{activeElementIn}from"../../../internal/active-element.js";import{applyComposedFocusRepair,captureComposedFocusRepair,isComposedFocusAvailable}from"../../../internal/focus-navigation.js";import{LyraElement}from"../../../internal/lyra-element.js";import{sizes}from"../../../internal/sizes.styles.js";import{nextId}from"../../../internal/a11y.js";import{chevronIcon}from"../../../internal/icons.js";import{AnchoredValidityController,VALIDITY_ANCHOR}from"../../../internal/anchored-validity.js";import{syncValidityStates}from"../../../internal/custom-states.js";import{styles}from"./model-select.styles.js";import{spellcheckFromAttributeConverter as spellcheckConverter}from"../../../internal/converters.js";import{attachInternalsSafely,getFormOwner,installCustomErrorProperty,isBarredFromValidation,setFormOwner}from"../../../internal/form-associated.js";import{installInvalidEventAlias}from"../../../internal/invalid-event-alias.js";import{CatalogPickerController}from"../../../internal/catalog-picker.js";import{SlotPresenceController}from"../../../internal/slot-presence-controller.js";import{LYRA_DEFAULT_fieldRequired,LYRA_DEFAULT_model,LYRA_DEFAULT_modelSelectNoModels,LYRA_DEFAULT_modelSelectRequired,LYRA_DEFAULT_noMatches,LYRA_DEFAULT_notInCatalog}from"../../../internal/default-strings.generated.js";class LyraModelSelect extends LyraElement{static{this.defaultStrings={...super.defaultStrings,fieldRequired:LYRA_DEFAULT_fieldRequired,model:LYRA_DEFAULT_model,modelSelectNoModels:LYRA_DEFAULT_modelSelectNoModels,modelSelectRequired:LYRA_DEFAULT_modelSelectRequired,noMatches:LYRA_DEFAULT_noMatches,notInCatalog:LYRA_DEFAULT_notInCatalog}}static{this.ownedCollectionProperties=Object.freeze(["catalog"])}static{this.formAssociated=!0}static{this.styles=[LyraElement.styles,sizes,styles]}static{this.properties={customError:{attribute:"custom-error",reflect:!0,noAccessor:!0},disabled:{type:Boolean,reflect:!0,noAccessor:!0},required:{type:Boolean,reflect:!0,noAccessor:!0},value:{attribute:!1,noAccessor:!0},defaultValue:{attribute:"value",reflect:!0,useDefault:!0,noAccessor:!0},name:{reflect:!0,noAccessor:!0}}}get open(){return this.catalogPicker.open}set open(next){this.catalogPicker.setOpen(next)}get activeIndex(){return this.catalogPicker.activeIndex}set activeIndex(next){this.catalogPicker.setActiveIndex(next)}get query(){return this.catalogPicker.query}set query(next){this.catalogPicker.setQuery(next)}constructor(){super(),this.provider="",this.allowCustom=!1,this.label="",this.hint="",this.errorText="",this.placeholder="",this.spellcheck=!0,this.autocapitalize="",this.autoCorrect="",this.autocomplete="off",this.inputMode="",this.enterKeyHint="",this.size="m",this.touched=!1,this.slotPresence=new SlotPresenceController(this),this.listId=nextId("model-select-list"),this.controlId=nextId("model-select-control"),this._fieldsetDisabled=!1,this._name="",this._disabled=!1,this._required=!1,this.suppressControlBlur=!1,this.catalogPicker=new CatalogPickerController(this,{catalog:()=>this.catalog,allowCustom:()=>this.allowCustom,locale:()=>this.effectiveLocale,searchableFields:entry=>[entry.id,entry.label],emitChange:detail=>this.emit("lr-change",detail),emitFocusAlias:()=>{},onValueChange:(value,oldValue)=>{this.internals.setFormValue(value),this.updateValidity(),this.requestUpdate("value",oldValue)},onDefaultValueChange:(_value,oldValue)=>this.requestUpdate("defaultValue",oldValue),onStateChange:(state2,oldValue)=>{state2==="open"?this.requestUpdate("open",oldValue):this.requestUpdate()},onControlFocus:event=>this.captureModeFocus(event),onControlBlur:event=>{this.effectiveDisabled||(this.touched=!0),this.retireModeFocusAfterBlur(event)},forwardFreeInputClick:!0}),this.onTriggerClick=()=>{this.effectiveDisabled||(this.open?this.hide():this.show())},this.onTriggerBlur=event=>{this.catalogPicker.handleControlBlur(event)},this.onTriggerFocus=event=>{this.catalogPicker.handleControlFocus(event)},this.onTriggerKeyDown=e=>{this.catalogPicker.handleTriggerKeyDown(e)},this.onComboMouseDown=e=>{this.catalogPicker.handleComboMouseDown(e)},this.onInputFocus=event=>{this.catalogPicker.handleInputFocus(event)},this.onInput=e=>{this.catalogPicker.handleInput(e)},this.onInputBlur=event=>{this.catalogPicker.handleControlBlur(event)},this.onInputKeyDown=e=>{this.catalogPicker.handleInputKeyDown(e)},this.onListboxMouseDown=e=>{this.catalogPicker.handleListboxMouseDown(e)},this.onListboxClick=e=>{this.catalogPicker.handleListboxClick(e)},this.internals=attachInternalsSafely(this),this.validityController=new AnchoredValidityController(this,this.internals,()=>this[VALIDITY_ANCHOR]()),installCustomErrorProperty(this,()=>this.validityController.customValidityMessage),installInvalidEventAlias(this,init=>this.emit("lr-invalid",null,init)),this.internals.setFormValue("")}click(){this.catalogPicker.click()}focus(options){this.catalogPicker.focus(options)}blur(){this.catalogPicker.blur()}get input(){return this.catalogPicker.input}get selectionStart(){return this.input?.selectionStart??null}set selectionStart(value){this.input&&(this.input.selectionStart=value)}get selectionEnd(){return this.input?.selectionEnd??null}set selectionEnd(value){this.input&&(this.input.selectionEnd=value)}get selectionDirection(){return this.input?.selectionDirection??null}set selectionDirection(value){this.input&&(this.input.selectionDirection=value)}select(){this.catalogPicker.select()}setSelectionRange(start,end,direction){this.catalogPicker.setSelectionRange(start,end,direction)}setRangeText(replacement,start,end,selectMode){this.catalogPicker.setRangeText(replacement,start,end,selectMode)}get form(){return getFormOwner(this.internals)}set form(owner){setFormOwner(this,owner)}getForm(){return getFormOwner(this.internals)}get labels(){return this.internals.labels}get validity(){return this.internals.validity}get validationMessage(){return this.internals.validationMessage}get willValidate(){return this.internals.willValidate}[VALIDITY_ANCHOR](){return this.renderRoot?.querySelector('[part="trigger"], [part="combobox-input"]')??null}connectedCallback(){super.connectedCallback(),this.updateValidity(),this.catalogPicker.connected(this.hasUpdated)}willUpdate(changed){super.willUpdate(changed);let modeChanged=!1;if(this.hasUpdated){const renderedControl=this.renderRoot.querySelector('[part="trigger"], [part="combobox-input"]');modeChanged=renderedControl?.getAttribute("part")==="trigger"!==this.closedMode,this.suppressControlBlur=modeChanged,this.catalogPicker.suppressControlEvents=modeChanged,this.modeFocusRepair=modeChanged&&renderedControl!==null&&activeElementIn(this.shadowRoot)===renderedControl?captureComposedFocusRepair(this,this.modeFocusFallback()??renderedControl)??void 0:modeChanged?this.focusedModeRepair:void 0}this.open&&(changed.has("catalog")||changed.has("value")||changed.has("allowCustom"))&&this.catalogPicker.reconcileRows(void 0,changed.has("value")||changed.has("allowCustom")||modeChanged,!1)}disconnectedCallback(){super.disconnectedCallback(),this.modeFocusRepair=void 0,this.focusedModeRepair=void 0,this.focusReturnTarget=void 0,this.catalogPicker.disconnected()}adoptedCallback(){super.adoptedCallback(),this.modeFocusRepair=void 0,this.focusedModeRepair=void 0,this.focusReturnTarget=void 0,this.catalogPicker.adopted()}get value(){return this.catalogPicker.value}set value(next){this.catalogPicker.value=next}get defaultValue(){return this.catalogPicker.defaultValue}set defaultValue(next){this.catalogPicker.defaultValue=next}get name(){return this._name}set name(next){const old=this._name;this._name=next??"",this._name?this.setAttribute("name",this._name):this.removeAttribute("name"),this.requestUpdate("name",old)}get disabled(){return this._disabled}set disabled(next){const old=this._disabled;this._disabled=!!next,this.toggleAttribute("disabled",this._disabled),this._disabled&&this.hide(),this.updateValidity(),this.requestUpdate("disabled",old)}get required(){return this._required}set required(next){const old=this._required;this._required=!!next,this.toggleAttribute("required",this._required),this.updateValidity(),this.requestUpdate("required",old)}get effectiveDisabled(){return this.disabled||this._fieldsetDisabled}get barredFromValidation(){return isBarredFromValidation(this,this.internals)}updateValidity(){this.barredFromValidation?this.validityController.setValidity({}):this.required&&!this.value?this.validityController.setValidity({valueMissing:!0},this.localize("modelSelectRequired")):this.validityController.setValidity({}),this.publishValidityStates()}publishValidityStates(){syncValidityStates(this.internals,{required:this.required,hasInteracted:this.touched,barred:this.barredFromValidation})}formResetCallback(){this.touched=!1,this.catalogPicker.resetValue()}formStateRestoreCallback(state2,_mode){this.catalogPicker.restoreState(state2)}formDisabledCallback(disabled){this._fieldsetDisabled=disabled,disabled&&this.hide(),this.updateValidity(),this.requestUpdate()}checkValidity(){return this.internals.checkValidity()}reportValidity(){return this.touched=!0,this.publishValidityStates(),this.internals.reportValidity()}setCustomValidity(message){this.validityController.setCustomValidity(message??""),this.publishValidityStates()}get closedMode(){return this.catalogPicker.closedMode}get effectiveEntries(){return this.catalogPicker.effectiveEntries}get filteredEntries(){return this.catalogPicker.filteredEntries}labelFor(id){return this.catalogPicker.labelFor(id)}show(){this.catalogPicker.show()}hide(){this.catalogPicker.hide()}updated(changed){super.updated(changed);const reposition=changed.has("open")||this.open&&(changed.has("catalog")||changed.has("allowCustom"));this.catalogPicker.updated(reposition),(changed.has("required")||changed.has("touched")||changed.has("value"))&&this.toggleAttribute("data-invalid",this.touched&&!this.internals.validity.valid),this.publishValidityStates(),this.suppressControlBlur=!1,this.catalogPicker.suppressControlEvents=!1;const focusRepair=this.modeFocusRepair;this.modeFocusRepair=void 0,focusRepair&&this.scheduleAfterUpdate(()=>{const replacement=this[VALIDITY_ANCHOR](),target=replacement&&isComposedFocusAvailable(replacement)?replacement:this.modeFocusFallback();applyComposedFocusRepair(focusRepair,target),this.focusedModeRepair===focusRepair&&(this.focusedModeRepair=void 0)},"model-select-mode-focus")}rememberFocusReturn(event){const related=event.relatedTarget;related&&related.nodeType===1&&isComposedFocusAvailable(related)&&(this.focusReturnTarget=related)}captureModeFocus(event){this.rememberFocusReturn(event);const control=event.currentTarget;!control||control.nodeType!==1||(this.focusedModeRepair=captureComposedFocusRepair(this,this.modeFocusFallback()??control)??void 0)}retireModeFocusAfterBlur(event){const destination=event.relatedTarget;if(destination&&destination.nodeType===1){this.focusedModeRepair=void 0;return}queueMicrotask(()=>{!this.suppressControlBlur&&!this.effectiveDisabled&&!this.hasAttribute("inert")&&(this.focusedModeRepair=void 0)})}modeFocusFallback(){if(this.focusReturnTarget&&isComposedFocusAvailable(this.focusReturnTarget))return this.focusReturnTarget;const owner=this.renderRoot.querySelector('[part="form-control"]');return owner&&isComposedFocusAvailable(owner)?owner:null}renderRows(rows,activeId){return rows.map((entry,i)=>{const id=`${this.listId}-opt-${i}`,selected=entry.id===this.value;return html`<div
|
|
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{activeElementIn}from"../../../internal/active-element.js";import{applyComposedFocusRepair,captureComposedFocusRepair,isComposedFocusAvailable}from"../../../internal/focus-navigation.js";import{LyraElement}from"../../../internal/lyra-element.js";import{sizes}from"../../../internal/sizes.styles.js";import{hostAriaLabel,nextId}from"../../../internal/a11y.js";import{chevronIcon}from"../../../internal/icons.js";import{AnchoredValidityController,VALIDITY_ANCHOR}from"../../../internal/anchored-validity.js";import{syncValidityStates}from"../../../internal/custom-states.js";import{styles}from"./model-select.styles.js";import{spellcheckFromAttributeConverter as spellcheckConverter}from"../../../internal/converters.js";import{attachInternalsSafely,getFormOwner,installCustomErrorProperty,isBarredFromValidation,setFormOwner}from"../../../internal/form-associated.js";import{installInvalidEventAlias}from"../../../internal/invalid-event-alias.js";import{CatalogPickerController}from"../../../internal/catalog-picker.js";import{SlotPresenceController}from"../../../internal/slot-presence-controller.js";import{LYRA_DEFAULT_fieldRequired,LYRA_DEFAULT_model,LYRA_DEFAULT_modelSelectNoModels,LYRA_DEFAULT_modelSelectRequired,LYRA_DEFAULT_noMatches,LYRA_DEFAULT_notInCatalog}from"../../../internal/default-strings.generated.js";class LyraModelSelect extends LyraElement{static{this.defaultStrings={...super.defaultStrings,fieldRequired:LYRA_DEFAULT_fieldRequired,model:LYRA_DEFAULT_model,modelSelectNoModels:LYRA_DEFAULT_modelSelectNoModels,modelSelectRequired:LYRA_DEFAULT_modelSelectRequired,noMatches:LYRA_DEFAULT_noMatches,notInCatalog:LYRA_DEFAULT_notInCatalog}}static{this.ownedCollectionProperties=Object.freeze(["catalog"])}static{this.formAssociated=!0}static{this.styles=[LyraElement.styles,sizes,styles]}static{this.properties={customError:{attribute:"custom-error",reflect:!0,noAccessor:!0},disabled:{type:Boolean,reflect:!0,noAccessor:!0},required:{type:Boolean,reflect:!0,noAccessor:!0},value:{attribute:!1,noAccessor:!0},defaultValue:{attribute:"value",reflect:!0,useDefault:!0,noAccessor:!0},name:{reflect:!0,noAccessor:!0}}}get open(){return this.catalogPicker.open}set open(next){this.catalogPicker.setOpen(next)}get activeIndex(){return this.catalogPicker.activeIndex}set activeIndex(next){this.catalogPicker.setActiveIndex(next)}get query(){return this.catalogPicker.query}set query(next){this.catalogPicker.setQuery(next)}constructor(){super(),this.provider="",this.allowCustom=!1,this.label="",this.hint="",this.errorText="",this.placeholder="",this.spellcheck=!0,this.autocapitalize="",this.autoCorrect="",this.autocomplete="off",this.inputMode="",this.enterKeyHint="",this.size="m",this.touched=!1,this.slotPresence=new SlotPresenceController(this),this.listId=nextId("model-select-list"),this.controlId=nextId("model-select-control"),this._fieldsetDisabled=!1,this._name="",this._disabled=!1,this._required=!1,this.suppressControlBlur=!1,this.catalogPicker=new CatalogPickerController(this,{catalog:()=>this.catalog,allowCustom:()=>this.allowCustom,locale:()=>this.effectiveLocale,searchableFields:entry=>[entry.id,entry.label],emitChange:detail=>this.emit("lr-change",detail),onValueChange:(value,oldValue)=>{this.internals.setFormValue(value),this.updateValidity(),this.requestUpdate("value",oldValue)},onDefaultValueChange:(_value,oldValue)=>this.requestUpdate("defaultValue",oldValue),onStateChange:(state2,oldValue)=>{state2==="open"?this.requestUpdate("open",oldValue):this.requestUpdate()},onControlFocus:event=>this.captureModeFocus(event),onControlBlur:event=>{this.effectiveDisabled||(this.touched=!0),this.retireModeFocusAfterBlur(event)},forwardFreeInputClick:!0}),this.onTriggerClick=()=>{this.effectiveDisabled||(this.open?this.hide():this.show())},this.onTriggerBlur=event=>{this.catalogPicker.handleControlBlur(event)},this.onTriggerFocus=event=>{this.catalogPicker.handleControlFocus(event)},this.onTriggerKeyDown=e=>{this.catalogPicker.handleTriggerKeyDown(e)},this.onComboMouseDown=e=>{this.catalogPicker.handleComboMouseDown(e)},this.onInputFocus=event=>{this.catalogPicker.handleInputFocus(event)},this.onInput=e=>{this.catalogPicker.handleInput(e)},this.onInputBlur=event=>{this.catalogPicker.handleControlBlur(event)},this.onInputKeyDown=e=>{this.catalogPicker.handleInputKeyDown(e)},this.onListboxMouseDown=e=>{this.catalogPicker.handleListboxMouseDown(e)},this.onListboxClick=e=>{this.catalogPicker.handleListboxClick(e)},this.internals=attachInternalsSafely(this),this.validityController=new AnchoredValidityController(this,this.internals,()=>this[VALIDITY_ANCHOR]()),installCustomErrorProperty(this,()=>this.validityController.customValidityMessage),installInvalidEventAlias(this,init=>this.emit("lr-invalid",null,init)),this.internals.setFormValue("")}click(){this.catalogPicker.click()}focus(options){this.catalogPicker.focus(options)}blur(){this.catalogPicker.blur()}get input(){return this.catalogPicker.input}get selectionStart(){return this.input?.selectionStart??null}set selectionStart(value){this.input&&(this.input.selectionStart=value)}get selectionEnd(){return this.input?.selectionEnd??null}set selectionEnd(value){this.input&&(this.input.selectionEnd=value)}get selectionDirection(){return this.input?.selectionDirection??null}set selectionDirection(value){this.input&&(this.input.selectionDirection=value)}select(){this.catalogPicker.select()}setSelectionRange(start,end,direction){this.catalogPicker.setSelectionRange(start,end,direction)}setRangeText(replacement,start,end,selectMode){this.catalogPicker.setRangeText(replacement,start,end,selectMode)}get form(){return getFormOwner(this.internals)}set form(owner){setFormOwner(this,owner)}getForm(){return getFormOwner(this.internals)}get labels(){return this.internals.labels}get validity(){return this.internals.validity}get validationMessage(){return this.internals.validationMessage}get willValidate(){return this.internals.willValidate}[VALIDITY_ANCHOR](){return this.renderRoot?.querySelector('[part="trigger"], [part="combobox-input"]')??null}connectedCallback(){super.connectedCallback(),this.updateValidity(),this.catalogPicker.connected(this.hasUpdated)}willUpdate(changed){super.willUpdate(changed);let modeChanged=!1;if(this.hasUpdated){const renderedControl=this.renderRoot.querySelector('[part="trigger"], [part="combobox-input"]');modeChanged=renderedControl?.getAttribute("part")==="trigger"!==this.closedMode,this.suppressControlBlur=modeChanged,this.catalogPicker.suppressControlEvents=modeChanged,this.modeFocusRepair=modeChanged&&renderedControl!==null&&activeElementIn(this.shadowRoot)===renderedControl?captureComposedFocusRepair(this,this.modeFocusFallback()??renderedControl)??void 0:modeChanged?this.focusedModeRepair:void 0}this.open&&(changed.has("catalog")||changed.has("value")||changed.has("allowCustom"))&&this.catalogPicker.reconcileRows(void 0,changed.has("value")||changed.has("allowCustom")||modeChanged,!1)}disconnectedCallback(){super.disconnectedCallback(),this.modeFocusRepair=void 0,this.focusedModeRepair=void 0,this.focusReturnTarget=void 0,this.catalogPicker.disconnected()}adoptedCallback(){super.adoptedCallback(),this.modeFocusRepair=void 0,this.focusedModeRepair=void 0,this.focusReturnTarget=void 0,this.catalogPicker.adopted()}get value(){return this.catalogPicker.value}set value(next){this.catalogPicker.value=next}get defaultValue(){return this.catalogPicker.defaultValue}set defaultValue(next){this.catalogPicker.defaultValue=next}get name(){return this._name}set name(next){const old=this._name;this._name=next??"",this._name?this.setAttribute("name",this._name):this.removeAttribute("name"),this.requestUpdate("name",old)}get disabled(){return this._disabled}set disabled(next){const old=this._disabled;this._disabled=!!next,this.toggleAttribute("disabled",this._disabled),this._disabled&&this.hide(),this.updateValidity(),this.requestUpdate("disabled",old)}get required(){return this._required}set required(next){const old=this._required;this._required=!!next,this.toggleAttribute("required",this._required),this.updateValidity(),this.requestUpdate("required",old)}get effectiveDisabled(){return this.disabled||this._fieldsetDisabled}get barredFromValidation(){return isBarredFromValidation(this,this.internals)}updateValidity(){this.barredFromValidation?this.validityController.setValidity({}):this.required&&!this.value?this.validityController.setValidity({valueMissing:!0},this.localize("modelSelectRequired")):this.validityController.setValidity({}),this.publishValidityStates()}publishValidityStates(){syncValidityStates(this.internals,{required:this.required,hasInteracted:this.touched,barred:this.barredFromValidation})}formResetCallback(){this.touched=!1,this.catalogPicker.resetValue()}formStateRestoreCallback(state2,_mode){this.catalogPicker.restoreState(state2)}formDisabledCallback(disabled){this._fieldsetDisabled=disabled,disabled&&this.hide(),this.updateValidity(),this.requestUpdate()}checkValidity(){return this.internals.checkValidity()}reportValidity(){return this.touched=!0,this.publishValidityStates(),this.internals.reportValidity()}setCustomValidity(message){this.validityController.setCustomValidity(message??""),this.publishValidityStates()}get closedMode(){return this.catalogPicker.closedMode}get effectiveEntries(){return this.catalogPicker.effectiveEntries}get filteredEntries(){return this.catalogPicker.filteredEntries}labelFor(id){return this.catalogPicker.labelFor(id)}show(){this.catalogPicker.show()}hide(){this.catalogPicker.hide()}updated(changed){super.updated(changed);const reposition=changed.has("open")||this.open&&(changed.has("catalog")||changed.has("allowCustom"));this.catalogPicker.updated(reposition),(changed.has("required")||changed.has("touched")||changed.has("value"))&&this.toggleAttribute("data-invalid",this.touched&&!this.internals.validity.valid),this.publishValidityStates(),this.suppressControlBlur=!1,this.catalogPicker.suppressControlEvents=!1;const focusRepair=this.modeFocusRepair;this.modeFocusRepair=void 0,focusRepair&&this.scheduleAfterUpdate(()=>{const replacement=this[VALIDITY_ANCHOR](),target=replacement&&isComposedFocusAvailable(replacement)?replacement:this.modeFocusFallback();applyComposedFocusRepair(focusRepair,target),this.focusedModeRepair===focusRepair&&(this.focusedModeRepair=void 0)},"model-select-mode-focus")}rememberFocusReturn(event){const related=event.relatedTarget;related&&related.nodeType===1&&isComposedFocusAvailable(related)&&(this.focusReturnTarget=related)}captureModeFocus(event){this.rememberFocusReturn(event);const control=event.currentTarget;!control||control.nodeType!==1||(this.focusedModeRepair=captureComposedFocusRepair(this,this.modeFocusFallback()??control)??void 0)}retireModeFocusAfterBlur(event){const destination=event.relatedTarget;if(destination&&destination.nodeType===1){this.focusedModeRepair=void 0;return}queueMicrotask(()=>{!this.suppressControlBlur&&!this.effectiveDisabled&&!this.hasAttribute("inert")&&(this.focusedModeRepair=void 0)})}modeFocusFallback(){if(this.focusReturnTarget&&isComposedFocusAvailable(this.focusReturnTarget))return this.focusReturnTarget;const owner=this.renderRoot.querySelector('[part="form-control"]');return owner&&isComposedFocusAvailable(owner)?owner:null}renderRows(rows,activeId){return rows.map((entry,i)=>{const id=`${this.listId}-opt-${i}`,selected=entry.id===this.value;return html`<div
|
|
2
2
|
part="option"
|
|
3
3
|
id=${id}
|
|
4
4
|
role="option"
|
|
@@ -40,7 +40,7 @@ var __decorate=function(decorators,target,key,desc){var c=arguments.length,r=c<3
|
|
|
40
40
|
aria-expanded=${this.open?"true":"false"}
|
|
41
41
|
aria-controls=${this.listId}
|
|
42
42
|
aria-activedescendant=${activeId}
|
|
43
|
-
aria-label=${this
|
|
43
|
+
aria-label=${hostAriaLabel(this)??(hasLabel?nothing:this.placeholder||this.localize("model"))}
|
|
44
44
|
aria-describedby=${describedBy||nothing}
|
|
45
45
|
aria-required=${this.required?"true":"false"}
|
|
46
46
|
aria-invalid=${this.touched&&!this.internals.validity.valid?"true":"false"}
|
|
@@ -66,7 +66,7 @@ var __decorate=function(decorators,target,key,desc){var c=arguments.length,r=c<3
|
|
|
66
66
|
id=${this.controlId}
|
|
67
67
|
part="combobox-input"
|
|
68
68
|
role="combobox"
|
|
69
|
-
aria-label=${this
|
|
69
|
+
aria-label=${hostAriaLabel(this)??(hasLabel?nothing:this.placeholder||this.localize("model"))}
|
|
70
70
|
aria-expanded=${this.open?"true":"false"}
|
|
71
71
|
aria-controls=${this.listId}
|
|
72
72
|
aria-activedescendant=${activeId}
|
|
@@ -5,13 +5,6 @@ import{css}from"lit";import{formControlRequiredMarker}from"../../../internal/for
|
|
|
5
5
|
inline-size: 100%;
|
|
6
6
|
min-inline-size: 0;
|
|
7
7
|
max-inline-size: var(--lr-size-24rem);
|
|
8
|
-
/* The size ladder itself lives in internal/sizes.styles.ts, which this component composes ahead
|
|
9
|
-
of this sheet. Only the indirection is here: the public --lr-model-select-* surface stays
|
|
10
|
-
exactly as documented, while its VALUES come from the one --lr-form-control-* scale every
|
|
11
|
-
other control in the library sizes against. That keeps a model select the same height as the
|
|
12
|
-
lr-select / lr-input / lr-button next to it in a toolbar row at every tier, and it means the
|
|
13
|
-
shared sheet's per-tier :host([size='...']) rules (which list both spellings of each step)
|
|
14
|
-
are the only place a tier is ever restated. */
|
|
15
8
|
--_lr-model-select-trigger-padding: var(--lr-form-control-padding-block)
|
|
16
9
|
var(--lr-form-control-padding-inline);
|
|
17
10
|
--_lr-model-select-trigger-min-height: var(--lr-form-control-height);
|
|
@@ -23,9 +16,6 @@ import{css}from"lit";import{formControlRequiredMarker}from"../../../internal/for
|
|
|
23
16
|
:host(:disabled) {
|
|
24
17
|
cursor: not-allowed;
|
|
25
18
|
}
|
|
26
|
-
/* The decorative expand icon is the one knob the shared ladder has no equivalent for -- it is a
|
|
27
|
-
glyph box, not a control metric -- so its three sizes stay here, listed in both spellings of
|
|
28
|
-
each tier so they track the shared sheet exactly. */
|
|
29
19
|
:host([size="2xs"]),
|
|
30
20
|
:host([size="xs"]) {
|
|
31
21
|
--_lr-model-select-expand-size: var(--lr-size-1rem);
|
|
@@ -41,14 +31,9 @@ import{css}from"lit";import{formControlRequiredMarker}from"../../../internal/for
|
|
|
41
31
|
font-size: var(--lr-font-size-md-sm);
|
|
42
32
|
font-weight: var(--lr-font-weight-semibold);
|
|
43
33
|
}
|
|
44
|
-
/* :empty never matches here because the part always contains a slot element. Visible-label
|
|
45
|
-
presence is tracked from both the property and named slot, then reflected through hidden. */
|
|
46
34
|
[part="form-control-label"][hidden] {
|
|
47
35
|
display: none;
|
|
48
36
|
}
|
|
49
|
-
/* This control accepts required and renders a visible label like every other field in the
|
|
50
|
-
library, so it marks it the same way -- the [hidden] rule above is what keeps the marker from
|
|
51
|
-
orphaning a stray glyph when no label is set. */
|
|
52
37
|
${formControlRequiredMarker}
|
|
53
38
|
|
|
54
39
|
[part='trigger'],
|
|
@@ -92,9 +77,6 @@ import{css}from"lit";import{formControlRequiredMarker}from"../../../internal/for
|
|
|
92
77
|
outline: var(--lr-focus-ring-width) solid var(--lr-focus-ring-color);
|
|
93
78
|
outline-offset: var(--lr-focus-ring-offset);
|
|
94
79
|
}
|
|
95
|
-
/* :where() zeroes the wrapped selectors' specificity contribution, keeping this at (0,1,0) --
|
|
96
|
-
matches lr-attachment-trigger's fixed convention, so a consumer's ::part(trigger):hover
|
|
97
|
-
override ((0,1,1)) still wins without needing !important. */
|
|
98
80
|
:where([part="trigger"]):hover:where(:not(:disabled)) {
|
|
99
81
|
background: var(--lr-color-brand-quiet);
|
|
100
82
|
}
|
|
@@ -199,11 +181,7 @@ import{css}from"lit";import{formControlRequiredMarker}from"../../../internal/for
|
|
|
199
181
|
--lr-model-select-radius,
|
|
200
182
|
var(--_lr-model-select-radius-default)
|
|
201
183
|
);
|
|
202
|
-
/* Anchored overlay: a positioner-placed listbox floating over page content, not a modal layer. */
|
|
203
184
|
box-shadow: var(--lr-shadow-m);
|
|
204
|
-
/* Closed state: invisible + slightly raised. visibility (not
|
|
205
|
-
display:none) so opacity/transform can actually transition; hit-testing
|
|
206
|
-
and a11y exposure stay off since this part is already position:fixed. */
|
|
207
185
|
visibility: hidden;
|
|
208
186
|
opacity: 0;
|
|
209
187
|
transform: translateY(var(--lr-size-neg-0-25rem));
|
|
@@ -239,6 +217,18 @@ import{css}from"lit";import{formControlRequiredMarker}from"../../../internal/for
|
|
|
239
217
|
text-align: start;
|
|
240
218
|
cursor: pointer;
|
|
241
219
|
}
|
|
220
|
+
[part="option"][aria-selected="true"] {
|
|
221
|
+
background: var(--lr-model-select-option-selected-bg, transparent);
|
|
222
|
+
border-color: var(
|
|
223
|
+
--lr-model-select-option-selected-border,
|
|
224
|
+
var(--lr-color-brand)
|
|
225
|
+
);
|
|
226
|
+
color: var(--lr-model-select-option-selected-color, var(--lr-color-brand));
|
|
227
|
+
font-weight: var(
|
|
228
|
+
--lr-model-select-option-selected-font-weight,
|
|
229
|
+
var(--lr-font-weight-semibold)
|
|
230
|
+
);
|
|
231
|
+
}
|
|
242
232
|
[part="option"]:hover,
|
|
243
233
|
[part="option"][data-active] {
|
|
244
234
|
background: var(
|
|
@@ -246,8 +236,6 @@ import{css}from"lit";import{formControlRequiredMarker}from"../../../internal/for
|
|
|
246
236
|
var(--lr-color-brand-quiet)
|
|
247
237
|
);
|
|
248
238
|
}
|
|
249
|
-
/* Mixes the SAME --lr-model-select-option-active-bg the hover/active-descendant rule above uses,
|
|
250
|
-
so a consumer retinting the highlight gets a matching pressed step for free. */
|
|
251
239
|
[part="option"]:active {
|
|
252
240
|
background: color-mix(
|
|
253
241
|
in oklab,
|
|
@@ -255,21 +243,6 @@ import{css}from"lit";import{formControlRequiredMarker}from"../../../internal/for
|
|
|
255
243
|
var(--lr-color-mix-partner) var(--lr-color-mix-active)
|
|
256
244
|
);
|
|
257
245
|
}
|
|
258
|
-
[part="option"][aria-selected="true"] {
|
|
259
|
-
/* Per-component indirection (inline var() fallbacks to the shared brand tokens, so unset
|
|
260
|
-
rendering is byte-for-byte unchanged) -- so a consumer can retheme just the selected row
|
|
261
|
-
without hijacking --lr-color-brand library-wide. */
|
|
262
|
-
background: var(--lr-model-select-option-selected-bg, transparent);
|
|
263
|
-
border-color: var(
|
|
264
|
-
--lr-model-select-option-selected-border,
|
|
265
|
-
var(--lr-color-brand)
|
|
266
|
-
);
|
|
267
|
-
color: var(--lr-model-select-option-selected-color, var(--lr-color-brand));
|
|
268
|
-
font-weight: var(
|
|
269
|
-
--lr-model-select-option-selected-font-weight,
|
|
270
|
-
var(--lr-font-weight-semibold)
|
|
271
|
-
);
|
|
272
|
-
}
|
|
273
246
|
[part="option-icon"] {
|
|
274
247
|
flex: 0 0 auto;
|
|
275
248
|
line-height: var(--lr-line-height-1-4);
|
|
@@ -281,10 +254,6 @@ import{css}from"lit";import{formControlRequiredMarker}from"../../../internal/for
|
|
|
281
254
|
text-overflow: ellipsis;
|
|
282
255
|
white-space: nowrap;
|
|
283
256
|
}
|
|
284
|
-
/* Stale-value row: a previously-saved value that no longer appears in the
|
|
285
|
-
catalog. Marked with a dashed border + italic label (instead of the
|
|
286
|
-
solid border every real row uses) so it visually reads as "remembered,
|
|
287
|
-
not offered" rather than a normal selectable catalog entry. */
|
|
288
257
|
[part="option"][data-synthetic] {
|
|
289
258
|
border-style: var(--lr-model-select-option-synthetic-border-style, dashed);
|
|
290
259
|
border-color: var(
|
|
@@ -315,10 +284,6 @@ import{css}from"lit";import{formControlRequiredMarker}from"../../../internal/for
|
|
|
315
284
|
font-size: var(--lr-font-size-sm);
|
|
316
285
|
color: var(--lr-color-text-quiet);
|
|
317
286
|
}
|
|
318
|
-
/* :empty never matches here -- the part always contains a literal slot
|
|
319
|
-
child element regardless of assigned/text content -- so real emptiness
|
|
320
|
-
is tracked in JS (hasHintSlot) and reflected via the hidden attribute
|
|
321
|
-
instead (same fix as lr-select's identical part). */
|
|
322
287
|
[part="hint"][hidden] {
|
|
323
288
|
display: none;
|
|
324
289
|
}
|
|
@@ -21,8 +21,6 @@ import{css}from"lit";const styles=css`
|
|
|
21
21
|
gap: var(--lr-space-xs);
|
|
22
22
|
min-inline-size: 0;
|
|
23
23
|
}
|
|
24
|
-
/* The nested control's own max-inline-size (24rem, sized for a standalone
|
|
25
|
-
dropdown) would otherwise clip a full-width row inside this card. */
|
|
26
24
|
[part='model-row'] lr-model-select {
|
|
27
25
|
inline-size: 100%;
|
|
28
26
|
max-inline-size: none;
|
|
@@ -52,10 +50,6 @@ import{css}from"lit";const styles=css`
|
|
|
52
50
|
text-align: end;
|
|
53
51
|
}
|
|
54
52
|
|
|
55
|
-
/* Compact layout: the two rows sit side by side instead of stacked, and
|
|
56
|
-
the temperature caption shrinks to an uppercase micro-label -- a denser
|
|
57
|
-
treatment for toolbars/sidebars where the vertical layout's full-height
|
|
58
|
-
rows don't fit. */
|
|
59
53
|
:host([layout='compact']) {
|
|
60
54
|
max-inline-size: none;
|
|
61
55
|
}
|
|
@@ -4,13 +4,16 @@ import type { DocumentRef } from '../../../ai/types.js';
|
|
|
4
4
|
import { LyraElement } from '../../../internal/lyra-element.js';
|
|
5
5
|
import type { LyraAttachmentCapability, LyraAttachmentFilesDetail } from '../../media/attachment-trigger/attachment-trigger.class.js';
|
|
6
6
|
import type { LyraSourceEntry } from '../../retrieval/source-picker/source-picker.class.js';
|
|
7
|
+
export type { LyraSourceEntry } from '../../retrieval/source-picker/source-picker.class.js';
|
|
7
8
|
import type { LyraMentionItem } from '../../utility/mention-popover/mention-popover.class.js';
|
|
8
9
|
import type { ChatComposerSelectionDirection, ChatComposerStatus, ChatComposerWrap } from '../chat-composer/chat-composer.class.js';
|
|
9
10
|
import type { LyraCatalog, LyraModelCatalogEntry } from '../model-select/model-select.class.js';
|
|
10
11
|
import type { PromptQueueItem } from '../prompt-queue/prompt-queue.class.js';
|
|
12
|
+
export type { PromptQueueItem } from '../prompt-queue/prompt-queue.class.js';
|
|
11
13
|
import type { PromptQueueChangeDetail } from '../prompt-queue/prompt-queue.class.js';
|
|
12
14
|
import type { LyraAttachmentIdDetail, LyraAttachmentPreviewRequestDetail, LyraAttachmentUploadStatus } from '../../media/attachment-chip/attachment-chip.class.js';
|
|
13
15
|
import type { LyraVoiceCatalogEntry } from '../voice-picker/voice-picker.class.js';
|
|
16
|
+
export type { LyraVoiceCatalogEntry } from '../voice-picker/voice-picker.class.js';
|
|
14
17
|
export interface LyraPromptSuggestion extends LyraMentionItem {
|
|
15
18
|
/** Inserted after the trigger. Defaults to `label`. */
|
|
16
19
|
insertText?: string;
|
|
@@ -20,14 +20,6 @@ import{css}from"lit";const styles=css`
|
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
[part='controls'] > * {
|
|
23
|
-
/* The prompt-scoped width hook avoids an ancestor-wide generic control collision. Unlike
|
|
24
|
-
lr-model-select's own
|
|
25
|
-
min-inline-size, which resolves through --lr-size-12rem directly) -- an unset custom
|
|
26
|
-
property makes var() invalid at computed-value time, which invalidates this whole
|
|
27
|
-
declaration (min-inline-size falls back to its auto initial value; flex-basis, below,
|
|
28
|
-
falls back to auto too) rather than merely omitting the min/basis. --lr-size-12rem
|
|
29
|
-
mirrors the min-inline-size lr-model-select's own popover uses for the same "one control
|
|
30
|
-
row item" sizing purpose. */
|
|
31
23
|
min-inline-size: min(100%, var(--lr-prompt-input-control-width, var(--lr-size-12rem)));
|
|
32
24
|
flex: 1 1 var(--lr-prompt-input-control-width, var(--lr-size-12rem));
|
|
33
25
|
}
|
|
@@ -48,8 +40,6 @@ import{css}from"lit";const styles=css`
|
|
|
48
40
|
[part='sources-summary']:hover {
|
|
49
41
|
color: var(--lr-color-brand);
|
|
50
42
|
}
|
|
51
|
-
/* The summary is a disclosure control, so the press gets a fill on top of the hover recolor --
|
|
52
|
-
mixed from [part='sources']'s own surface, which is what shows through the summary at rest. */
|
|
53
43
|
[part='sources-summary']:active {
|
|
54
44
|
color: var(--lr-color-brand);
|
|
55
45
|
background: color-mix(in oklab, var(--lr-color-surface), var(--lr-color-mix-partner) var(--lr-color-mix-active));
|
|
@@ -34,15 +34,9 @@ import{css}from"lit";const styles=css`
|
|
|
34
34
|
opacity: var(--lr-opacity-disabled);
|
|
35
35
|
cursor: not-allowed;
|
|
36
36
|
}
|
|
37
|
-
/* :where() zeroes the wrapped selectors' specificity contribution, leaving this at (0,1,0) --
|
|
38
|
-
matches lr-attachment-trigger's fixed convention, so a consumer's ::part(trigger):hover
|
|
39
|
-
override ((0,1,1)) still wins without needing !important. */
|
|
40
37
|
:where([part='trigger']):hover:where(:not(:disabled)) {
|
|
41
38
|
background: var(--lr-color-brand-quiet);
|
|
42
39
|
}
|
|
43
|
-
/* Press-and-hold is this component's entire interaction, so the pressed fill is not decoration:
|
|
44
|
-
it is the "I am registering your hold" signal, and it appears the instant the pointer goes
|
|
45
|
-
down -- before the recording state and its pulse ring have anything to show. */
|
|
46
40
|
:where([part='trigger']):active:where(:not(:disabled)) {
|
|
47
41
|
background: color-mix(in oklab, var(--lr-color-brand-quiet), var(--lr-color-mix-partner) var(--lr-color-mix-active));
|
|
48
42
|
}
|
|
@@ -64,8 +58,6 @@ import{css}from"lit";const styles=css`
|
|
|
64
58
|
position: absolute;
|
|
65
59
|
inset: calc(-1 * var(--lr-size-4px));
|
|
66
60
|
border-radius: 50%;
|
|
67
|
-
/* The aggregate recording color remains the shared fallback, while the ring can be retinted
|
|
68
|
-
independently from the trigger's border and foreground. */
|
|
69
61
|
border: var(--lr-border-width-medium) solid
|
|
70
62
|
var(
|
|
71
63
|
--lr-push-to-talk-pulse-recording-border-color,
|
|
@@ -6,7 +6,7 @@ import{css}from"lit";const styles=css`
|
|
|
6
6
|
|
|
7
7
|
[part='toolbar'] {
|
|
8
8
|
position: fixed;
|
|
9
|
-
z-index: var(--lr-overlay-stack-index,
|
|
9
|
+
z-index: var(--lr-overlay-stack-index, var(--lr-layer-popover));
|
|
10
10
|
inset-inline-start: var(--_lr-selection-toolbar-inline-start);
|
|
11
11
|
inset-block-start: var(--_lr-selection-toolbar-block-start);
|
|
12
12
|
display: flex;
|
|
@@ -24,7 +24,6 @@ import{css}from"lit";const styles=css`
|
|
|
24
24
|
border: var(--lr-border-width-thin) solid var(--lr-color-border);
|
|
25
25
|
border-radius: var(--lr-radius);
|
|
26
26
|
background: var(--lr-color-surface);
|
|
27
|
-
/* Anchored overlay: a floating toolbar pinned to the current selection, not a modal layer. */
|
|
28
27
|
box-shadow: var(--lr-shadow-m);
|
|
29
28
|
transform: translate(
|
|
30
29
|
-50%,
|
|
@@ -70,10 +69,6 @@ import{css}from"lit";const styles=css`
|
|
|
70
69
|
color: var(--lr-color-brand);
|
|
71
70
|
}
|
|
72
71
|
|
|
73
|
-
/* Each action is an <lr-button appearance="plain">, which already supplies its own pressed
|
|
74
|
-
treatment (--lr-button-active-scale) inside its shadow root. What this rule adds is the
|
|
75
|
-
toolbar's brand accent escalated one step -- a background box on the host would sit behind the
|
|
76
|
-
button's own transparent base and read as a second, misaligned control. */
|
|
77
72
|
[part~='action']:active {
|
|
78
73
|
color: color-mix(in oklab, var(--lr-color-brand), var(--lr-color-mix-partner) var(--lr-color-mix-active));
|
|
79
74
|
}
|
|
@@ -83,9 +78,4 @@ import{css}from"lit";const styles=css`
|
|
|
83
78
|
outline-offset: var(--lr-focus-ring-offset);
|
|
84
79
|
}
|
|
85
80
|
|
|
86
|
-
@media (prefers-reduced-motion: reduce) {
|
|
87
|
-
[part='toolbar'] {
|
|
88
|
-
transition: none;
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
81
|
`;export{styles};
|
|
@@ -4,15 +4,10 @@ import{css}from"lit";const styles=css`
|
|
|
4
4
|
min-inline-size: 0;
|
|
5
5
|
max-inline-size: 100%;
|
|
6
6
|
vertical-align: middle;
|
|
7
|
-
/* Keep the public hooks undeclared here: a consumer may set either one
|
|
8
|
-
on an ancestor. The private values below retain per-phase defaults when
|
|
9
|
-
the public hook is unset, following lr-timeline-item's marker pattern. */
|
|
10
7
|
--_lr-stream-status-dot-color-default: var(--lr-color-text-quiet);
|
|
11
8
|
--_lr-stream-status-dot-opacity-default: 0.35;
|
|
12
9
|
}
|
|
13
10
|
|
|
14
|
-
/* 'connecting' gets a dimmer, static brand dot -- present but deliberately
|
|
15
|
-
quieter than 'streaming' so the two are never confused at a glance. */
|
|
16
11
|
:host([connection-state='connecting']) {
|
|
17
12
|
--_lr-stream-status-dot-color-default: var(--lr-color-brand);
|
|
18
13
|
--_lr-stream-status-dot-opacity-default: 0.6;
|
|
@@ -21,8 +16,6 @@ import{css}from"lit";const styles=css`
|
|
|
21
16
|
--_lr-stream-status-dot-color-default: var(--lr-color-brand);
|
|
22
17
|
--_lr-stream-status-dot-opacity-default: 1;
|
|
23
18
|
}
|
|
24
|
-
/* Warning, not danger -- see the class doc's "Visual" section for why a
|
|
25
|
-
stall defaults to the recoverable/actionable tone. */
|
|
26
19
|
:host([data-stalled]) {
|
|
27
20
|
--_lr-stream-status-dot-color-default: var(--lr-color-warning);
|
|
28
21
|
--_lr-stream-status-dot-opacity-default: 1;
|
|
@@ -41,9 +34,6 @@ import{css}from"lit";const styles=css`
|
|
|
41
34
|
border-color var(--lr-transition-base);
|
|
42
35
|
}
|
|
43
36
|
|
|
44
|
-
/* The one "unmistakable" treatment the spec calls for: a stall tints the
|
|
45
|
-
whole row, not just the dot, so the message/actions read as one alert
|
|
46
|
-
unit rather than a plain dot next to unrelated-looking text. */
|
|
47
37
|
:host([data-stalled]) [part='base'] {
|
|
48
38
|
padding: var(--lr-space-xs) var(--lr-space-s);
|
|
49
39
|
background: var(--lr-stream-status-stalled-bg, var(--lr-color-warning-quiet));
|
|
@@ -75,12 +65,6 @@ import{css}from"lit";const styles=css`
|
|
|
75
65
|
font-weight: var(--lr-font-weight-semibold);
|
|
76
66
|
}
|
|
77
67
|
|
|
78
|
-
/* Only 'streaming' pulses -- a moving dot reads as "actively receiving
|
|
79
|
-
data right now"; every other phase (including 'stalled', which wants
|
|
80
|
-
steady attention via color/tint, not extra motion) stays static. Same
|
|
81
|
-
token/rationale as lr-typing-indicator's pulse variant -- see that
|
|
82
|
-
component's styles for the full explanation of why
|
|
83
|
-
--lr-transition-ambient is the right length for an ambient loop. */
|
|
84
68
|
:host([connection-state='streaming']:not([data-stalled])) [part='indicator'] {
|
|
85
69
|
animation: lr-stream-status-pulse var(--lr-transition-ambient) infinite;
|
|
86
70
|
}
|
|
@@ -8,17 +8,10 @@ import{css}from"lit";const styles=css`
|
|
|
8
8
|
line-height: var(--lr-line-height-loose);
|
|
9
9
|
}
|
|
10
10
|
|
|
11
|
-
/* Plain-text path only (Markdown mode never renders this element) -- see
|
|
12
|
-
the class doc for why Markdown content can't share this same
|
|
13
|
-
white-space treatment. */
|
|
14
11
|
.plain {
|
|
15
12
|
white-space: pre-wrap;
|
|
16
13
|
}
|
|
17
14
|
|
|
18
|
-
/* inline-block (not inline) so it participates in text layout on the same
|
|
19
|
-
line as the preceding content while still accepting a fixed block-size
|
|
20
|
-
for the bar -- in plain-text mode this sits at the visual tail of the
|
|
21
|
-
final wrapped line, immediately after the last character. */
|
|
22
15
|
[part='cursor'] {
|
|
23
16
|
display: inline-block;
|
|
24
17
|
vertical-align: text-bottom;
|
|
@@ -27,15 +20,9 @@ import{css}from"lit";const styles=css`
|
|
|
27
20
|
margin-inline-start: var(--lr-space-xs);
|
|
28
21
|
background: currentColor;
|
|
29
22
|
border-radius: var(--lr-inline-cursor-width, var(--lr-size-0-125rem));
|
|
30
|
-
/* Ambient, infinite "still alive" indicator, not a discrete state flip --
|
|
31
|
-
same reasoning as lr-typing-indicator's own cursor variant, which
|
|
32
|
-
uses this same token for the identical blink pattern. */
|
|
33
23
|
animation: lr-streaming-text-cursor-blink var(--lr-transition-ambient) infinite;
|
|
34
24
|
}
|
|
35
25
|
|
|
36
|
-
/* Two adjacent keyframe stops (49% / 50%) either side of an instant flip,
|
|
37
|
-
same shape as lr-typing-indicator's cursor variant, so the blink still
|
|
38
|
-
reads as a sharp on/off even under the token's own ease-out timing. */
|
|
39
26
|
@keyframes lr-streaming-text-cursor-blink {
|
|
40
27
|
0%,
|
|
41
28
|
49% {
|
|
@@ -47,8 +34,6 @@ import{css}from"lit";const styles=css`
|
|
|
47
34
|
}
|
|
48
35
|
}
|
|
49
36
|
|
|
50
|
-
/* Degrades to a static, fully-visible bar -- never a frozen mid-blink
|
|
51
|
-
(invisible) frame. */
|
|
52
37
|
@media (prefers-reduced-motion: reduce) {
|
|
53
38
|
[part='cursor'] {
|
|
54
39
|
animation: none !important;
|
|
@@ -6,9 +6,6 @@ import{css}from"lit";const styles=css`
|
|
|
6
6
|
[part='base'] {
|
|
7
7
|
max-inline-size: 100%;
|
|
8
8
|
}
|
|
9
|
-
/* Line packing is consumer-tunable because it is unreachable otherwise: centering the chips under
|
|
10
|
-
centered empty-state text needs the wrapped final line centered too, and ::part(base) can only
|
|
11
|
-
center the row while it still fits on one line. */
|
|
12
9
|
.row {
|
|
13
10
|
display: flex;
|
|
14
11
|
justify-content: var(--lr-suggestion-chips-justify, flex-start);
|
|
@@ -49,8 +46,6 @@ import{css}from"lit";const styles=css`
|
|
|
49
46
|
background: var(--lr-suggestion-chips-hover-bg, var(--lr-color-brand-quiet));
|
|
50
47
|
border-color: var(--lr-suggestion-chips-hover-border, var(--lr-color-brand));
|
|
51
48
|
}
|
|
52
|
-
/* Mixes the SAME --lr-suggestion-chips-hover-bg the rule above uses, so a consumer retinting the
|
|
53
|
-
hover fill gets a matching pressed step without a second custom property to keep in sync. */
|
|
54
49
|
[part~='chip']:active {
|
|
55
50
|
background: color-mix(
|
|
56
51
|
in oklab,
|
|
@@ -30,10 +30,6 @@ import{css}from"lit";const styles=css`
|
|
|
30
30
|
outline: var(--lr-focus-ring-width) solid var(--lr-focus-ring-color);
|
|
31
31
|
outline-offset: var(--lr-focus-ring-offset);
|
|
32
32
|
}
|
|
33
|
-
/* no-pressed-state: [part='search-input'] is a text field. A press on it is answered by the field
|
|
34
|
-
taking focus and raising its focus ring, which is both stronger than any momentary pressed tint
|
|
35
|
-
and outlasts the mouse button; a second, competing flash on mousedown would only add noise to
|
|
36
|
-
the one interaction that already has unambiguous feedback. */
|
|
37
33
|
[part='search-input']:hover {
|
|
38
34
|
border-color: var(--lr-color-brand);
|
|
39
35
|
}
|
|
@@ -52,14 +48,6 @@ import{css}from"lit";const styles=css`
|
|
|
52
48
|
display: flex;
|
|
53
49
|
flex-direction: column;
|
|
54
50
|
}
|
|
55
|
-
/* The internal list has to fill whatever height this component was given, instead of scrolling
|
|
56
|
-
inside lr-virtual-list's own 24rem --lr-virtual-list-height default. Deliberately *not*
|
|
57
|
-
--lr-virtual-list-height: 100%: that percentage resolves against this host, which is a flex
|
|
58
|
-
item, so in an auto-height container it chains to auto and the viewport either collapses to
|
|
59
|
-
zero (no rows) or grows to the full un-virtualized content height (rows). Making the list host
|
|
60
|
-
a column flex container instead turns the shipped block-size: 24rem on [part='base'] into its
|
|
61
|
-
*flex-basis*: it grows to fill a bounded pane, shrinks below 24rem in a short one, and in an
|
|
62
|
-
auto-height container falls back to exactly the 24rem it renders at today. */
|
|
63
51
|
lr-virtual-list {
|
|
64
52
|
flex: 1 1 auto;
|
|
65
53
|
min-block-size: 0;
|
|
@@ -84,11 +72,6 @@ import{css}from"lit";const styles=css`
|
|
|
84
72
|
background: var(--lr-color-surface);
|
|
85
73
|
color: var(--lr-color-text-quiet);
|
|
86
74
|
}
|
|
87
|
-
/* sticky-groups: the pinned copy of the current group header. lr-virtual-list ships that layer
|
|
88
|
-
pointer-transparent, because it is a copy of a row that already exists; this component's header
|
|
89
|
-
owns a real collapse toggle, so it opts back in. Everything else about the copy -- padding,
|
|
90
|
-
background, the toggle and icon -- comes from the group-header/group-toggle/group-icon rules
|
|
91
|
-
around this one, which the copy shares by rendering the same parts. */
|
|
92
75
|
lr-virtual-list::part(sticky-group) {
|
|
93
76
|
pointer-events: auto;
|
|
94
77
|
}
|
|
@@ -138,10 +121,6 @@ import{css}from"lit";const styles=css`
|
|
|
138
121
|
lr-virtual-list::part(row-actions) {
|
|
139
122
|
min-inline-size: 0;
|
|
140
123
|
}
|
|
141
|
-
/* row-start/row-actions (see thread-list.class.ts) are plain <span>s, so they default to
|
|
142
|
-
display: inline -- an ordinary text baseline box with descender strut height. Their
|
|
143
|
-
content is adornments (icon/avatar, action buttons), not text, so center them on a flex
|
|
144
|
-
line instead; row-content/row-meta hold real text and keep their own inline/block flow. */
|
|
145
124
|
lr-virtual-list::part(row-start),
|
|
146
125
|
lr-virtual-list::part(row-actions) {
|
|
147
126
|
display: inline-flex;
|
|
@@ -151,8 +130,6 @@ import{css}from"lit";const styles=css`
|
|
|
151
130
|
display: inline-flex;
|
|
152
131
|
align-items: center;
|
|
153
132
|
justify-content: center;
|
|
154
|
-
/* Keep the glyph compact while giving the interactive box the shared
|
|
155
|
-
minimum target size. */
|
|
156
133
|
inline-size: var(--lr-size-1-5rem);
|
|
157
134
|
block-size: var(--lr-size-1-5rem);
|
|
158
135
|
min-inline-size: var(--lr-icon-button-size);
|