@aceshooting/lyra-ui 5.0.0 → 5.1.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/README.md +30 -12
- package/custom-elements.json +2150 -220
- package/dist/components/agent-tools/activity-feed/activity-feed.class.d.ts +2 -0
- package/dist/components/agent-tools/activity-feed/activity-feed.class.d.ts.map +1 -1
- package/dist/components/agent-tools/activity-feed/activity-feed.class.js +2 -0
- package/dist/components/agent-tools/activity-feed/activity-feed.class.js.map +1 -1
- package/dist/components/agent-tools/agent-run/agent-run.class.d.ts +1 -0
- package/dist/components/agent-tools/agent-run/agent-run.class.d.ts.map +1 -1
- package/dist/components/agent-tools/agent-run/agent-run.class.js +1 -0
- package/dist/components/agent-tools/agent-run/agent-run.class.js.map +1 -1
- package/dist/components/agent-tools/compare-panel/compare-panel.class.d.ts +2 -0
- package/dist/components/agent-tools/compare-panel/compare-panel.class.d.ts.map +1 -1
- package/dist/components/agent-tools/compare-panel/compare-panel.class.js +2 -0
- package/dist/components/agent-tools/compare-panel/compare-panel.class.js.map +1 -1
- package/dist/components/agent-tools/stack-trace/stack-trace.class.d.ts +5 -0
- package/dist/components/agent-tools/stack-trace/stack-trace.class.d.ts.map +1 -1
- package/dist/components/agent-tools/stack-trace/stack-trace.class.js +5 -0
- package/dist/components/agent-tools/stack-trace/stack-trace.class.js.map +1 -1
- package/dist/components/agent-tools/terminal/terminal.class.d.ts +3 -0
- package/dist/components/agent-tools/terminal/terminal.class.d.ts.map +1 -1
- package/dist/components/agent-tools/terminal/terminal.class.js +3 -0
- package/dist/components/agent-tools/terminal/terminal.class.js.map +1 -1
- package/dist/components/agent-tools/thinking-panel/thinking-panel.class.d.ts +2 -0
- package/dist/components/agent-tools/thinking-panel/thinking-panel.class.d.ts.map +1 -1
- package/dist/components/agent-tools/thinking-panel/thinking-panel.class.js +2 -0
- package/dist/components/agent-tools/thinking-panel/thinking-panel.class.js.map +1 -1
- package/dist/components/agent-tools/tool-approval-dialog/tool-approval-dialog.class.d.ts +2 -0
- package/dist/components/agent-tools/tool-approval-dialog/tool-approval-dialog.class.d.ts.map +1 -1
- package/dist/components/agent-tools/tool-approval-dialog/tool-approval-dialog.class.js +2 -0
- package/dist/components/agent-tools/tool-approval-dialog/tool-approval-dialog.class.js.map +1 -1
- package/dist/components/agent-tools/tool-call-chip/tool-call-chip.class.d.ts +3 -0
- package/dist/components/agent-tools/tool-call-chip/tool-call-chip.class.d.ts.map +1 -1
- package/dist/components/agent-tools/tool-call-chip/tool-call-chip.class.js +3 -0
- package/dist/components/agent-tools/tool-call-chip/tool-call-chip.class.js.map +1 -1
- package/dist/components/agent-tools/tool-result-view/tool-result-view.class.d.ts +1 -0
- package/dist/components/agent-tools/tool-result-view/tool-result-view.class.d.ts.map +1 -1
- package/dist/components/agent-tools/tool-result-view/tool-result-view.class.js +1 -0
- package/dist/components/agent-tools/tool-result-view/tool-result-view.class.js.map +1 -1
- package/dist/components/agent-tools/tool-select-dialog/tool-select-dialog.class.d.ts +1 -0
- package/dist/components/agent-tools/tool-select-dialog/tool-select-dialog.class.d.ts.map +1 -1
- package/dist/components/agent-tools/tool-select-dialog/tool-select-dialog.class.js +1 -0
- package/dist/components/agent-tools/tool-select-dialog/tool-select-dialog.class.js.map +1 -1
- package/dist/components/agent-tools/tool-timeline/tool-timeline.class.d.ts +2 -0
- package/dist/components/agent-tools/tool-timeline/tool-timeline.class.d.ts.map +1 -1
- package/dist/components/agent-tools/tool-timeline/tool-timeline.class.js +2 -0
- package/dist/components/agent-tools/tool-timeline/tool-timeline.class.js.map +1 -1
- package/dist/components/charts/chart/chart.class.d.ts +15 -0
- package/dist/components/charts/chart/chart.class.d.ts.map +1 -1
- package/dist/components/charts/chart/chart.class.js +15 -0
- package/dist/components/charts/chart/chart.class.js.map +1 -1
- package/dist/components/conversation/audio-visualizer/audio-visualizer.class.d.ts +2 -0
- package/dist/components/conversation/audio-visualizer/audio-visualizer.class.d.ts.map +1 -1
- package/dist/components/conversation/audio-visualizer/audio-visualizer.class.js +2 -0
- package/dist/components/conversation/audio-visualizer/audio-visualizer.class.js.map +1 -1
- package/dist/components/conversation/branch-picker/branch-picker.class.d.ts +2 -0
- package/dist/components/conversation/branch-picker/branch-picker.class.d.ts.map +1 -1
- package/dist/components/conversation/branch-picker/branch-picker.class.js +2 -0
- package/dist/components/conversation/branch-picker/branch-picker.class.js.map +1 -1
- package/dist/components/conversation/chat-message/chat-message.class.d.ts +5 -1
- package/dist/components/conversation/chat-message/chat-message.class.d.ts.map +1 -1
- package/dist/components/conversation/chat-message/chat-message.class.js +5 -1
- package/dist/components/conversation/chat-message/chat-message.class.js.map +1 -1
- package/dist/components/conversation/chat-message/chat-message.styles.d.ts.map +1 -1
- package/dist/components/conversation/chat-message/chat-message.styles.js +15 -2
- package/dist/components/conversation/chat-message/chat-message.styles.js.map +1 -1
- package/dist/components/conversation/code-block/code-block.class.d.ts +4 -0
- package/dist/components/conversation/code-block/code-block.class.d.ts.map +1 -1
- package/dist/components/conversation/code-block/code-block.class.js +4 -0
- package/dist/components/conversation/code-block/code-block.class.js.map +1 -1
- package/dist/components/conversation/conversation-item/conversation-item.class.d.ts +2 -0
- package/dist/components/conversation/conversation-item/conversation-item.class.d.ts.map +1 -1
- package/dist/components/conversation/conversation-item/conversation-item.class.js +2 -0
- package/dist/components/conversation/conversation-item/conversation-item.class.js.map +1 -1
- package/dist/components/conversation/markdown/markdown.class.d.ts +2 -0
- package/dist/components/conversation/markdown/markdown.class.d.ts.map +1 -1
- package/dist/components/conversation/markdown/markdown.class.js +2 -0
- package/dist/components/conversation/markdown/markdown.class.js.map +1 -1
- package/dist/components/conversation/push-to-talk/push-to-talk.class.d.ts +2 -0
- package/dist/components/conversation/push-to-talk/push-to-talk.class.d.ts.map +1 -1
- package/dist/components/conversation/push-to-talk/push-to-talk.class.js +2 -0
- package/dist/components/conversation/push-to-talk/push-to-talk.class.js.map +1 -1
- package/dist/components/conversation/stream-status/stream-status.class.d.ts +5 -0
- package/dist/components/conversation/stream-status/stream-status.class.d.ts.map +1 -1
- package/dist/components/conversation/stream-status/stream-status.class.js +5 -0
- package/dist/components/conversation/stream-status/stream-status.class.js.map +1 -1
- package/dist/components/conversation/streaming-text/streaming-text.class.d.ts +2 -0
- package/dist/components/conversation/streaming-text/streaming-text.class.d.ts.map +1 -1
- package/dist/components/conversation/streaming-text/streaming-text.class.js +2 -0
- package/dist/components/conversation/streaming-text/streaming-text.class.js.map +1 -1
- package/dist/components/conversation/transcript-feed/transcript-feed.class.d.ts +1 -0
- package/dist/components/conversation/transcript-feed/transcript-feed.class.d.ts.map +1 -1
- package/dist/components/conversation/transcript-feed/transcript-feed.class.js +1 -0
- package/dist/components/conversation/transcript-feed/transcript-feed.class.js.map +1 -1
- package/dist/components/data/calendar/calendar.class.d.ts +6 -0
- package/dist/components/data/calendar/calendar.class.d.ts.map +1 -1
- package/dist/components/data/calendar/calendar.class.js +6 -0
- package/dist/components/data/calendar/calendar.class.js.map +1 -1
- package/dist/components/data/context-meter/context-meter.class.d.ts +1 -0
- package/dist/components/data/context-meter/context-meter.class.d.ts.map +1 -1
- package/dist/components/data/context-meter/context-meter.class.js +1 -0
- package/dist/components/data/context-meter/context-meter.class.js.map +1 -1
- package/dist/components/data/data-grid/data-grid.class.d.ts +1 -0
- package/dist/components/data/data-grid/data-grid.class.d.ts.map +1 -1
- package/dist/components/data/data-grid/data-grid.class.js +1 -0
- package/dist/components/data/data-grid/data-grid.class.js.map +1 -1
- package/dist/components/data/flow-canvas/flow-canvas.class.d.ts +3 -1
- package/dist/components/data/flow-canvas/flow-canvas.class.d.ts.map +1 -1
- package/dist/components/data/flow-canvas/flow-canvas.class.js +3 -1
- package/dist/components/data/flow-canvas/flow-canvas.class.js.map +1 -1
- package/dist/components/data/flow-minimap/flow-minimap.class.d.ts +2 -2
- package/dist/components/data/flow-minimap/flow-minimap.class.js +2 -2
- package/dist/components/data/flow-node/flow-node.class.d.ts +1 -1
- package/dist/components/data/flow-node/flow-node.class.js +1 -1
- package/dist/components/data/heatmap/heatmap.class.d.ts +51 -2
- package/dist/components/data/heatmap/heatmap.class.d.ts.map +1 -1
- package/dist/components/data/heatmap/heatmap.class.js +42 -6
- package/dist/components/data/heatmap/heatmap.class.js.map +1 -1
- package/dist/components/data/heatmap/heatmap.styles.d.ts.map +1 -1
- package/dist/components/data/heatmap/heatmap.styles.js +19 -0
- package/dist/components/data/heatmap/heatmap.styles.js.map +1 -1
- package/dist/components/data/sequence-strip/sequence-strip.class.d.ts +20 -0
- package/dist/components/data/sequence-strip/sequence-strip.class.d.ts.map +1 -1
- package/dist/components/data/sequence-strip/sequence-strip.class.js +35 -0
- package/dist/components/data/sequence-strip/sequence-strip.class.js.map +1 -1
- package/dist/components/data/sequence-strip/sequence-strip.styles.d.ts.map +1 -1
- package/dist/components/data/sequence-strip/sequence-strip.styles.js +29 -0
- package/dist/components/data/sequence-strip/sequence-strip.styles.js.map +1 -1
- package/dist/components/data/table/table.class.d.ts +11 -0
- package/dist/components/data/table/table.class.d.ts.map +1 -1
- package/dist/components/data/table/table.class.js +11 -0
- package/dist/components/data/table/table.class.js.map +1 -1
- package/dist/components/data/timeline/timeline-item.class.d.ts +17 -0
- package/dist/components/data/timeline/timeline-item.class.d.ts.map +1 -1
- package/dist/components/data/timeline/timeline-item.class.js +17 -0
- package/dist/components/data/timeline/timeline-item.class.js.map +1 -1
- package/dist/components/data/timeline/timeline.styles.d.ts.map +1 -1
- package/dist/components/data/timeline/timeline.styles.js +6 -3
- package/dist/components/data/timeline/timeline.styles.js.map +1 -1
- package/dist/components/data/tree/tree-node.class.d.ts +3 -0
- package/dist/components/data/tree/tree-node.class.d.ts.map +1 -1
- package/dist/components/data/tree/tree-node.class.js +3 -0
- package/dist/components/data/tree/tree-node.class.js.map +1 -1
- package/dist/components/forms/button/button.class.d.ts +24 -0
- package/dist/components/forms/button/button.class.d.ts.map +1 -1
- package/dist/components/forms/button/button.class.js +24 -0
- package/dist/components/forms/button/button.class.js.map +1 -1
- package/dist/components/forms/code-editor/code-editor.class.d.ts +28 -12
- package/dist/components/forms/code-editor/code-editor.class.d.ts.map +1 -1
- package/dist/components/forms/code-editor/code-editor.class.js +44 -14
- package/dist/components/forms/code-editor/code-editor.class.js.map +1 -1
- package/dist/components/forms/code-editor/code-editor.styles.d.ts.map +1 -1
- package/dist/components/forms/code-editor/code-editor.styles.js +4 -0
- package/dist/components/forms/code-editor/code-editor.styles.js.map +1 -1
- package/dist/components/forms/combobox/combobox.class.d.ts +10 -0
- package/dist/components/forms/combobox/combobox.class.d.ts.map +1 -1
- package/dist/components/forms/combobox/combobox.class.js +16 -0
- package/dist/components/forms/combobox/combobox.class.js.map +1 -1
- package/dist/components/forms/combobox/option.class.d.ts +3 -3
- package/dist/components/forms/combobox/option.class.d.ts.map +1 -1
- package/dist/components/forms/combobox/option.class.js +9 -0
- package/dist/components/forms/combobox/option.class.js.map +1 -1
- package/dist/components/forms/date-picker/date-input.class.d.ts +3 -0
- package/dist/components/forms/date-picker/date-input.class.d.ts.map +1 -1
- package/dist/components/forms/date-picker/date-input.class.js +3 -0
- package/dist/components/forms/date-picker/date-input.class.js.map +1 -1
- package/dist/components/forms/emoji-picker/emoji-picker.class.d.ts +37 -2
- package/dist/components/forms/emoji-picker/emoji-picker.class.d.ts.map +1 -1
- package/dist/components/forms/emoji-picker/emoji-picker.class.js +113 -10
- package/dist/components/forms/emoji-picker/emoji-picker.class.js.map +1 -1
- package/dist/components/forms/emoji-picker/emoji-picker.styles.d.ts.map +1 -1
- package/dist/components/forms/emoji-picker/emoji-picker.styles.js +30 -0
- package/dist/components/forms/emoji-picker/emoji-picker.styles.js.map +1 -1
- package/dist/components/forms/icon-button/icon-button.class.d.ts +4 -0
- package/dist/components/forms/icon-button/icon-button.class.d.ts.map +1 -1
- package/dist/components/forms/icon-button/icon-button.class.js +4 -0
- package/dist/components/forms/icon-button/icon-button.class.js.map +1 -1
- package/dist/components/forms/input/input.class.d.ts +11 -3
- package/dist/components/forms/input/input.class.d.ts.map +1 -1
- package/dist/components/forms/input/input.class.js +3 -0
- package/dist/components/forms/input/input.class.js.map +1 -1
- package/dist/components/forms/input/time-input.class.d.ts +12 -0
- package/dist/components/forms/input/time-input.class.d.ts.map +1 -1
- package/dist/components/forms/input/time-input.class.js +27 -0
- package/dist/components/forms/input/time-input.class.js.map +1 -1
- package/dist/components/forms/rubric-form/rubric-form.class.d.ts +7 -0
- package/dist/components/forms/rubric-form/rubric-form.class.d.ts.map +1 -1
- package/dist/components/forms/rubric-form/rubric-form.class.js +7 -0
- package/dist/components/forms/rubric-form/rubric-form.class.js.map +1 -1
- package/dist/components/forms/select/select.class.d.ts +8 -0
- package/dist/components/forms/select/select.class.d.ts.map +1 -1
- package/dist/components/forms/select/select.class.js +8 -0
- package/dist/components/forms/select/select.class.js.map +1 -1
- package/dist/components/forms/swatch-picker/swatch-picker.class.d.ts +1 -1
- package/dist/components/forms/swatch-picker/swatch-picker.class.js +1 -1
- package/dist/components/forms/switch/switch.class.d.ts +6 -0
- package/dist/components/forms/switch/switch.class.d.ts.map +1 -1
- package/dist/components/forms/switch/switch.class.js +6 -0
- package/dist/components/forms/switch/switch.class.js.map +1 -1
- package/dist/components/forms/token-input/token-input.class.d.ts +2 -0
- package/dist/components/forms/token-input/token-input.class.d.ts.map +1 -1
- package/dist/components/forms/token-input/token-input.class.js +2 -0
- package/dist/components/forms/token-input/token-input.class.js.map +1 -1
- package/dist/components/layout/app-rail/app-rail.class.d.ts +8 -0
- package/dist/components/layout/app-rail/app-rail.class.d.ts.map +1 -1
- package/dist/components/layout/app-rail/app-rail.class.js +8 -0
- package/dist/components/layout/app-rail/app-rail.class.js.map +1 -1
- package/dist/components/layout/button-group/button-group.class.d.ts +1 -1
- package/dist/components/layout/button-group/button-group.class.js +1 -1
- package/dist/components/layout/command-palette/command-palette.class.d.ts +12 -0
- package/dist/components/layout/command-palette/command-palette.class.d.ts.map +1 -1
- package/dist/components/layout/command-palette/command-palette.class.js +12 -0
- package/dist/components/layout/command-palette/command-palette.class.js.map +1 -1
- package/dist/components/layout/control-group/control-group.class.d.ts +1 -1
- package/dist/components/layout/control-group/control-group.class.js +1 -1
- package/dist/components/layout/dashboard-grid/dashboard-grid.class.d.ts +7 -0
- package/dist/components/layout/dashboard-grid/dashboard-grid.class.d.ts.map +1 -1
- package/dist/components/layout/dashboard-grid/dashboard-grid.class.js +7 -0
- package/dist/components/layout/dashboard-grid/dashboard-grid.class.js.map +1 -1
- package/dist/components/layout/dock-panel/dock-panel.class.d.ts +3 -0
- package/dist/components/layout/dock-panel/dock-panel.class.d.ts.map +1 -1
- package/dist/components/layout/dock-panel/dock-panel.class.js +3 -0
- package/dist/components/layout/dock-panel/dock-panel.class.js.map +1 -1
- package/dist/components/layout/responsive-panel/responsive-panel.class.d.ts +2 -0
- package/dist/components/layout/responsive-panel/responsive-panel.class.d.ts.map +1 -1
- package/dist/components/layout/responsive-panel/responsive-panel.class.js +2 -0
- package/dist/components/layout/responsive-panel/responsive-panel.class.js.map +1 -1
- package/dist/components/layout/scroller/scroller.class.d.ts +2 -2
- package/dist/components/layout/scroller/scroller.class.js +2 -2
- package/dist/components/layout/segmented/segmented.class.d.ts +6 -0
- package/dist/components/layout/segmented/segmented.class.d.ts.map +1 -1
- package/dist/components/layout/segmented/segmented.class.js +6 -0
- package/dist/components/layout/segmented/segmented.class.js.map +1 -1
- package/dist/components/layout/split/split.class.d.ts +68 -15
- package/dist/components/layout/split/split.class.d.ts.map +1 -1
- package/dist/components/layout/split/split.class.js +80 -21
- package/dist/components/layout/split/split.class.js.map +1 -1
- package/dist/components/layout/stepper/stepper.class.d.ts +52 -11
- package/dist/components/layout/stepper/stepper.class.d.ts.map +1 -1
- package/dist/components/layout/stepper/stepper.class.js +69 -17
- package/dist/components/layout/stepper/stepper.class.js.map +1 -1
- package/dist/components/layout/virtual-list/virtual-list.class.d.ts +3 -0
- package/dist/components/layout/virtual-list/virtual-list.class.d.ts.map +1 -1
- package/dist/components/layout/virtual-list/virtual-list.class.js +3 -0
- package/dist/components/layout/virtual-list/virtual-list.class.js.map +1 -1
- package/dist/components/layout/widget/widget.class.d.ts +6 -0
- package/dist/components/layout/widget/widget.class.d.ts.map +1 -1
- package/dist/components/layout/widget/widget.class.js +6 -0
- package/dist/components/layout/widget/widget.class.js.map +1 -1
- package/dist/components/media/attachment-chip/attachment-chip.class.d.ts +13 -0
- package/dist/components/media/attachment-chip/attachment-chip.class.d.ts.map +1 -1
- package/dist/components/media/attachment-chip/attachment-chip.class.js +13 -0
- package/dist/components/media/attachment-chip/attachment-chip.class.js.map +1 -1
- package/dist/components/media/avatar/avatar.class.d.ts +6 -0
- package/dist/components/media/avatar/avatar.class.d.ts.map +1 -1
- package/dist/components/media/avatar/avatar.class.js +6 -0
- package/dist/components/media/avatar/avatar.class.js.map +1 -1
- package/dist/components/media/media-card/media-card.class.d.ts +2 -0
- package/dist/components/media/media-card/media-card.class.d.ts.map +1 -1
- package/dist/components/media/media-card/media-card.class.js +2 -0
- package/dist/components/media/media-card/media-card.class.js.map +1 -1
- package/dist/components/media/playback/playback.class.d.ts +2 -0
- package/dist/components/media/playback/playback.class.d.ts.map +1 -1
- package/dist/components/media/playback/playback.class.js +2 -0
- package/dist/components/media/playback/playback.class.js.map +1 -1
- package/dist/components/media/zoomable-frame/zoomable-frame.class.d.ts +3 -0
- package/dist/components/media/zoomable-frame/zoomable-frame.class.d.ts.map +1 -1
- package/dist/components/media/zoomable-frame/zoomable-frame.class.js +3 -0
- package/dist/components/media/zoomable-frame/zoomable-frame.class.js.map +1 -1
- package/dist/components/overlays/badge/badge.class.d.ts +6 -0
- package/dist/components/overlays/badge/badge.class.d.ts.map +1 -1
- package/dist/components/overlays/badge/badge.class.js +6 -0
- package/dist/components/overlays/badge/badge.class.js.map +1 -1
- package/dist/components/overlays/callout/callout.class.d.ts +6 -0
- package/dist/components/overlays/callout/callout.class.d.ts.map +1 -1
- package/dist/components/overlays/callout/callout.class.js +6 -0
- package/dist/components/overlays/callout/callout.class.js.map +1 -1
- package/dist/components/overlays/chip/chip.class.d.ts +18 -0
- package/dist/components/overlays/chip/chip.class.d.ts.map +1 -1
- package/dist/components/overlays/chip/chip.class.js +18 -0
- package/dist/components/overlays/chip/chip.class.js.map +1 -1
- package/dist/components/overlays/dialog/dialog.class.d.ts +6 -0
- package/dist/components/overlays/dialog/dialog.class.d.ts.map +1 -1
- package/dist/components/overlays/dialog/dialog.class.js +6 -0
- package/dist/components/overlays/dialog/dialog.class.js.map +1 -1
- package/dist/components/overlays/drawer/drawer.class.d.ts +6 -0
- package/dist/components/overlays/drawer/drawer.class.d.ts.map +1 -1
- package/dist/components/overlays/drawer/drawer.class.js +6 -0
- package/dist/components/overlays/drawer/drawer.class.js.map +1 -1
- package/dist/components/overlays/progress/progress-ring.class.d.ts +1 -0
- package/dist/components/overlays/progress/progress-ring.class.d.ts.map +1 -1
- package/dist/components/overlays/progress/progress-ring.class.js +1 -0
- package/dist/components/overlays/progress/progress-ring.class.js.map +1 -1
- package/dist/components/overlays/skeleton/skeleton.class.d.ts +2 -0
- package/dist/components/overlays/skeleton/skeleton.class.d.ts.map +1 -1
- package/dist/components/overlays/skeleton/skeleton.class.js +2 -0
- package/dist/components/overlays/skeleton/skeleton.class.js.map +1 -1
- package/dist/components/overlays/spinner/spinner.class.d.ts +4 -0
- package/dist/components/overlays/spinner/spinner.class.d.ts.map +1 -1
- package/dist/components/overlays/spinner/spinner.class.js +4 -0
- package/dist/components/overlays/spinner/spinner.class.js.map +1 -1
- package/dist/components/overlays/toast/toast-item.class.d.ts +11 -0
- package/dist/components/overlays/toast/toast-item.class.d.ts.map +1 -1
- package/dist/components/overlays/toast/toast-item.class.js +11 -0
- package/dist/components/overlays/toast/toast-item.class.js.map +1 -1
- package/dist/components/overlays/toast/toast.class.d.ts +15 -0
- package/dist/components/overlays/toast/toast.class.d.ts.map +1 -1
- package/dist/components/overlays/toast/toast.class.js +15 -0
- package/dist/components/overlays/toast/toast.class.js.map +1 -1
- package/dist/components/retrieval/citation-badge/citation-badge.class.d.ts +8 -0
- package/dist/components/retrieval/citation-badge/citation-badge.class.d.ts.map +1 -1
- package/dist/components/retrieval/citation-badge/citation-badge.class.js +8 -0
- package/dist/components/retrieval/citation-badge/citation-badge.class.js.map +1 -1
- package/dist/components/retrieval/entity-chip/entity-chip.class.d.ts +1 -0
- package/dist/components/retrieval/entity-chip/entity-chip.class.d.ts.map +1 -1
- package/dist/components/retrieval/entity-chip/entity-chip.class.js +1 -0
- package/dist/components/retrieval/entity-chip/entity-chip.class.js.map +1 -1
- package/dist/components/retrieval/ingestion-queue/ingestion-queue.class.d.ts +2 -0
- package/dist/components/retrieval/ingestion-queue/ingestion-queue.class.d.ts.map +1 -1
- package/dist/components/retrieval/ingestion-queue/ingestion-queue.class.js +2 -0
- package/dist/components/retrieval/ingestion-queue/ingestion-queue.class.js.map +1 -1
- package/dist/components/retrieval/retrieval-trace/retrieval-trace.class.d.ts +1 -0
- package/dist/components/retrieval/retrieval-trace/retrieval-trace.class.d.ts.map +1 -1
- package/dist/components/retrieval/retrieval-trace/retrieval-trace.class.js +1 -0
- package/dist/components/retrieval/retrieval-trace/retrieval-trace.class.js.map +1 -1
- package/dist/components/utility/diff-view/diff-view.class.d.ts +1 -0
- package/dist/components/utility/diff-view/diff-view.class.d.ts.map +1 -1
- package/dist/components/utility/diff-view/diff-view.class.js +1 -0
- package/dist/components/utility/diff-view/diff-view.class.js.map +1 -1
- package/dist/components/utility/icon/icon.class.d.ts +1 -0
- package/dist/components/utility/icon/icon.class.d.ts.map +1 -1
- package/dist/components/utility/icon/icon.class.js +1 -0
- package/dist/components/utility/icon/icon.class.js.map +1 -1
- package/dist/components/utility/json-viewer/json-viewer.class.d.ts +3 -0
- package/dist/components/utility/json-viewer/json-viewer.class.d.ts.map +1 -1
- package/dist/components/utility/json-viewer/json-viewer.class.js +3 -0
- package/dist/components/utility/json-viewer/json-viewer.class.js.map +1 -1
- package/dist/components/utility/known-date/known-date.class.d.ts +11 -0
- package/dist/components/utility/known-date/known-date.class.d.ts.map +1 -1
- package/dist/components/utility/known-date/known-date.class.js +11 -0
- package/dist/components/utility/known-date/known-date.class.js.map +1 -1
- package/dist/components/viewers/calendar-viewer/calendar-viewer.class.d.ts +2 -0
- package/dist/components/viewers/calendar-viewer/calendar-viewer.class.d.ts.map +1 -1
- package/dist/components/viewers/calendar-viewer/calendar-viewer.class.js +2 -0
- package/dist/components/viewers/calendar-viewer/calendar-viewer.class.js.map +1 -1
- package/dist/components/viewers/dataset-viewer/dataset-viewer.class.d.ts +5 -0
- package/dist/components/viewers/dataset-viewer/dataset-viewer.class.d.ts.map +1 -1
- package/dist/components/viewers/dataset-viewer/dataset-viewer.class.js +5 -0
- package/dist/components/viewers/dataset-viewer/dataset-viewer.class.js.map +1 -1
- package/dist/components/viewers/document-compare/document-compare.class.d.ts +1 -1
- package/dist/components/viewers/document-compare/document-compare.class.js +1 -1
- package/dist/components/viewers/document-preview/document-preview.class.d.ts +3 -0
- package/dist/components/viewers/document-preview/document-preview.class.d.ts.map +1 -1
- package/dist/components/viewers/document-preview/document-preview.class.js +3 -0
- package/dist/components/viewers/document-preview/document-preview.class.js.map +1 -1
- package/dist/components/viewers/email-viewer/email-viewer.class.d.ts +2 -0
- package/dist/components/viewers/email-viewer/email-viewer.class.d.ts.map +1 -1
- package/dist/components/viewers/email-viewer/email-viewer.class.js +2 -0
- package/dist/components/viewers/email-viewer/email-viewer.class.js.map +1 -1
- package/dist/components/viewers/html-viewer/html-viewer.class.d.ts +2 -0
- package/dist/components/viewers/html-viewer/html-viewer.class.d.ts.map +1 -1
- package/dist/components/viewers/html-viewer/html-viewer.class.js +2 -0
- package/dist/components/viewers/html-viewer/html-viewer.class.js.map +1 -1
- package/dist/components/viewers/pdf-viewer/pdf-viewer.class.d.ts.map +1 -1
- package/dist/components/viewers/pdf-viewer/pdf-viewer.class.js +41 -9
- package/dist/components/viewers/pdf-viewer/pdf-viewer.class.js.map +1 -1
- package/dist/internal/css-length.d.ts +40 -0
- package/dist/internal/css-length.d.ts.map +1 -0
- package/dist/internal/css-length.js +72 -0
- package/dist/internal/css-length.js.map +1 -0
- package/dist/internal/orientation-breakpoint.d.ts +12 -0
- package/dist/internal/orientation-breakpoint.d.ts.map +1 -0
- package/dist/internal/orientation-breakpoint.js +127 -0
- package/dist/internal/orientation-breakpoint.js.map +1 -0
- package/dist/lyra.d.ts +2 -2
- package/dist/lyra.d.ts.map +1 -1
- package/dist/lyra.js.map +1 -1
- package/llms/components/lr-accordion-item.md +23 -0
- package/llms/components/lr-accordion.md +23 -0
- package/llms/components/lr-activity-feed.md +45 -0
- package/llms/components/lr-agent-run.md +66 -0
- package/llms/components/lr-agent-trace.md +42 -0
- package/llms/components/lr-agent-workspace.md +109 -0
- package/llms/components/lr-animated-image.md +66 -0
- package/llms/components/lr-animation.md +73 -0
- package/llms/components/lr-app-rail-item.md +218 -0
- package/llms/components/lr-app-rail.md +218 -0
- package/llms/components/lr-archive-viewer.md +36 -0
- package/llms/components/lr-artifact-panel.md +60 -0
- package/llms/components/lr-attachment-chip.md +131 -0
- package/llms/components/lr-attachment-trigger.md +90 -0
- package/llms/components/lr-audio-visualizer.md +43 -0
- package/llms/components/lr-av-player.md +50 -0
- package/llms/components/lr-avatar-group.md +69 -0
- package/llms/components/lr-avatar.md +69 -0
- package/llms/components/lr-badge.md +25 -0
- package/llms/components/lr-bar-chart.md +70 -0
- package/llms/components/lr-box-plot.md +67 -0
- package/llms/components/lr-branch-picker.md +32 -0
- package/llms/components/lr-breadcrumb-item.md +30 -0
- package/llms/components/lr-breadcrumb.md +30 -0
- package/llms/components/lr-browser-frame.md +51 -0
- package/llms/components/lr-bubble-chart.md +70 -0
- package/llms/components/lr-button-group.md +30 -0
- package/llms/components/lr-button.md +89 -0
- package/llms/components/lr-calendar-viewer.md +32 -0
- package/llms/components/lr-calendar.md +52 -0
- package/llms/components/lr-callout.md +37 -0
- package/llms/components/lr-card.md +67 -0
- package/llms/components/lr-carousel-item.md +29 -0
- package/llms/components/lr-carousel.md +43 -0
- package/llms/components/lr-chart.md +148 -0
- package/llms/components/lr-chat-composer.md +139 -0
- package/llms/components/lr-chat-message.md +145 -0
- package/llms/components/lr-chat-viewport.md +70 -0
- package/llms/components/lr-checkbox-group.md +21 -0
- package/llms/components/lr-checkbox.md +79 -0
- package/llms/components/lr-checkpoint.md +48 -0
- package/llms/components/lr-chip-group.md +152 -0
- package/llms/components/lr-chip.md +152 -0
- package/llms/components/lr-chunk-inspector.md +66 -0
- package/llms/components/lr-citation-badge.md +102 -0
- package/llms/components/lr-code-block-core.md +113 -0
- package/llms/components/lr-code-block.md +146 -0
- package/llms/components/lr-code-editor.md +72 -0
- package/llms/components/lr-color-picker.md +21 -0
- package/llms/components/lr-combobox.md +196 -0
- package/llms/components/lr-command-palette.md +50 -0
- package/llms/components/lr-commit-card.md +33 -0
- package/llms/components/lr-community-card.md +54 -0
- package/llms/components/lr-compare-panel.md +38 -0
- package/llms/components/lr-confirm-bar.md +48 -0
- package/llms/components/lr-contact-viewer.md +34 -0
- package/llms/components/lr-context-inspector.md +50 -0
- package/llms/components/lr-context-meter.md +92 -0
- package/llms/components/lr-control-group.md +46 -0
- package/llms/components/lr-conversation-item.md +118 -0
- package/llms/components/lr-copy-button.md +52 -0
- package/llms/components/lr-csv-viewer.md +49 -0
- package/llms/components/lr-dashboard-grid.md +34 -0
- package/llms/components/lr-data-grid.md +47 -0
- package/llms/components/lr-dataset-viewer.md +60 -0
- package/llms/components/lr-date-input.md +201 -0
- package/llms/components/lr-date-picker.md +201 -0
- package/llms/components/lr-details.md +23 -0
- package/llms/components/lr-dialog.md +185 -0
- package/llms/components/lr-diff-view.md +86 -0
- package/llms/components/lr-divider.md +28 -0
- package/llms/components/lr-dock-panel.md +110 -0
- package/llms/components/lr-document-compare.md +22 -0
- package/llms/components/lr-document-library.md +21 -0
- package/llms/components/lr-document-preview.md +179 -0
- package/llms/components/lr-document-viewer.md +84 -0
- package/llms/components/lr-docx-viewer.md +63 -0
- package/llms/components/lr-doughnut-chart.md +70 -0
- package/llms/components/lr-drawer.md +48 -0
- package/llms/components/lr-drilldown-panel.md +25 -0
- package/llms/components/lr-dropdown-item.md +171 -0
- package/llms/components/lr-dropdown.md +24 -0
- package/llms/components/lr-ebook-viewer.md +60 -0
- package/llms/components/lr-email-viewer.md +51 -0
- package/llms/components/lr-emoji-picker.md +71 -0
- package/llms/components/lr-empty.md +56 -0
- package/llms/components/lr-entity-card.md +64 -0
- package/llms/components/lr-entity-chip.md +50 -0
- package/llms/components/lr-entity-dossier.md +71 -0
- package/llms/components/lr-env-list.md +27 -0
- package/llms/components/lr-eval-dataset.md +45 -0
- package/llms/components/lr-eval-result.md +45 -0
- package/llms/components/lr-evaluation-run.md +50 -0
- package/llms/components/lr-export-button.md +104 -0
- package/llms/components/lr-file-icon.md +34 -0
- package/llms/components/lr-file-input.md +104 -0
- package/llms/components/lr-file-tree.md +29 -0
- package/llms/components/lr-filter-bar.md +20 -0
- package/llms/components/lr-flag.md +122 -0
- package/llms/components/lr-flow-canvas.md +112 -0
- package/llms/components/lr-flow-controls.md +47 -0
- package/llms/components/lr-flow-minimap.md +52 -0
- package/llms/components/lr-flow-node.md +56 -0
- package/llms/components/lr-flow-run-overlay.md +56 -0
- package/llms/components/lr-format-bytes.md +31 -0
- package/llms/components/lr-format-date.md +33 -0
- package/llms/components/lr-format-number.md +41 -0
- package/llms/components/lr-gauge.md +65 -0
- package/llms/components/lr-generation-status.md +105 -0
- package/llms/components/lr-geojson-view.md +43 -0
- package/llms/components/lr-graph-legend.md +64 -0
- package/llms/components/lr-graph-query-builder.md +27 -0
- package/llms/components/lr-graph.md +224 -0
- package/llms/components/lr-grounding-summary.md +57 -0
- package/llms/components/lr-handoff-divider.md +27 -0
- package/llms/components/lr-heatmap.md +232 -0
- package/llms/components/lr-highlight-layer.md +31 -0
- package/llms/components/lr-histogram.md +69 -0
- package/llms/components/lr-html-viewer.md +30 -0
- package/llms/components/lr-icon-button.md +39 -0
- package/llms/components/lr-icon.md +36 -0
- package/llms/components/lr-image-comparer.md +38 -0
- package/llms/components/lr-image-viewer.md +35 -0
- package/llms/components/lr-include.md +53 -0
- package/llms/components/lr-ingestion-queue.md +60 -0
- package/llms/components/lr-input.md +82 -0
- package/llms/components/lr-intersection-observer.md +25 -0
- package/llms/components/lr-json-viewer.md +98 -0
- package/llms/components/lr-kbd.md +74 -0
- package/llms/components/lr-knowledge-base.md +64 -0
- package/llms/components/lr-knowledge-graph-explorer.md +92 -0
- package/llms/components/lr-known-date.md +84 -0
- package/llms/components/lr-lightbox.md +79 -0
- package/llms/components/lr-line-chart.md +70 -0
- package/llms/components/lr-lite-chart.md +143 -0
- package/llms/components/lr-live-region.md +105 -0
- package/llms/components/lr-map.md +127 -0
- package/llms/components/lr-markdown-core.md +70 -0
- package/llms/components/lr-markdown.md +171 -0
- package/llms/components/lr-media-card.md +106 -0
- package/llms/components/lr-memory-panel.md +67 -0
- package/llms/components/lr-mention-popover.md +139 -0
- package/llms/components/lr-menu-item.md +171 -0
- package/llms/components/lr-menu.md +171 -0
- package/llms/components/lr-message-actions.md +48 -0
- package/llms/components/lr-message-feedback.md +37 -0
- package/llms/components/lr-mind-map.md +64 -0
- package/llms/components/lr-model-select.md +144 -0
- package/llms/components/lr-model-settings-panel.md +99 -0
- package/llms/components/lr-mutation-observer.md +27 -0
- package/llms/components/lr-neighbor-list.md +56 -0
- package/llms/components/lr-node-palette.md +67 -0
- package/llms/components/lr-notebook-viewer.md +65 -0
- package/llms/components/lr-number-input.md +44 -0
- package/llms/components/lr-option.md +196 -0
- package/llms/components/lr-page-rail.md +37 -0
- package/llms/components/lr-pagination.md +88 -0
- package/llms/components/lr-path-strip.md +55 -0
- package/llms/components/lr-pdf-viewer.md +78 -0
- package/llms/components/lr-phone-input.md +162 -0
- package/llms/components/lr-pie-chart.md +70 -0
- package/llms/components/lr-playback.md +74 -0
- package/llms/components/lr-polar-area-chart.md +70 -0
- package/llms/components/lr-policy-summary.md +33 -0
- package/llms/components/lr-poll-status.md +71 -0
- package/llms/components/lr-popover.md +31 -0
- package/llms/components/lr-pptx-viewer.md +35 -0
- package/llms/components/lr-progress-bar.md +22 -0
- package/llms/components/lr-progress-ring.md +26 -0
- package/llms/components/lr-provenance-panel.md +58 -0
- package/llms/components/lr-push-to-talk.md +50 -0
- package/llms/components/lr-qr-code.md +20 -0
- package/llms/components/lr-query-builder.md +21 -0
- package/llms/components/lr-radar-chart.md +70 -0
- package/llms/components/lr-radio-group.md +25 -0
- package/llms/components/lr-radio.md +31 -0
- package/llms/components/lr-random-content.md +62 -0
- package/llms/components/lr-rating.md +21 -0
- package/llms/components/lr-relative-time.md +31 -0
- package/llms/components/lr-resize-observer.md +25 -0
- package/llms/components/lr-responsive-panel.md +112 -0
- package/llms/components/lr-result-card.md +88 -0
- package/llms/components/lr-result-field.md +88 -0
- package/llms/components/lr-retrieval-results.md +84 -0
- package/llms/components/lr-retrieval-search.md +70 -0
- package/llms/components/lr-retrieval-trace.md +59 -0
- package/llms/components/lr-rubric-form.md +37 -0
- package/llms/components/lr-scatter-chart.md +70 -0
- package/llms/components/lr-scroller.md +47 -0
- package/llms/components/lr-segmented.md +74 -0
- package/llms/components/lr-select.md +113 -0
- package/llms/components/lr-sequence-strip.md +95 -0
- package/llms/components/lr-skeleton.md +53 -0
- package/llms/components/lr-slider.md +92 -0
- package/llms/components/lr-source-card.md +131 -0
- package/llms/components/lr-source-list.md +131 -0
- package/llms/components/lr-source-picker.md +63 -0
- package/llms/components/lr-span-waterfall.md +42 -0
- package/llms/components/lr-sparkline.md +60 -0
- package/llms/components/lr-spinner.md +32 -0
- package/llms/components/lr-split.md +191 -0
- package/llms/components/lr-spreadsheet-viewer.md +47 -0
- package/llms/components/lr-stack-trace.md +77 -0
- package/llms/components/lr-stat.md +89 -0
- package/llms/components/lr-stepper.md +118 -0
- package/llms/components/lr-stream-status.md +128 -0
- package/llms/components/lr-streaming-text.md +101 -0
- package/llms/components/lr-suggestion-chips.md +40 -0
- package/llms/components/lr-svg-viewer.md +47 -0
- package/llms/components/lr-swatch-picker.md +91 -0
- package/llms/components/lr-switch.md +82 -0
- package/llms/components/lr-table.md +201 -0
- package/llms/components/lr-tabs.md +80 -0
- package/llms/components/lr-tag.md +25 -0
- package/llms/components/lr-task-list.md +42 -0
- package/llms/components/lr-terminal.md +44 -0
- package/llms/components/lr-test-results.md +38 -0
- package/llms/components/lr-textarea.md +111 -0
- package/llms/components/lr-thinking-panel.md +93 -0
- package/llms/components/lr-thread-list.md +97 -0
- package/llms/components/lr-time-input.md +53 -0
- package/llms/components/lr-time-range.md +91 -0
- package/llms/components/lr-timeline-item.md +65 -0
- package/llms/components/lr-timeline.md +65 -0
- package/llms/components/lr-toast-item.md +123 -0
- package/llms/components/lr-toast.md +123 -0
- package/llms/components/lr-token-input.md +31 -0
- package/llms/components/lr-tool-approval-dialog.md +131 -0
- package/llms/components/lr-tool-call-chip.md +101 -0
- package/llms/components/lr-tool-param-form.md +148 -0
- package/llms/components/lr-tool-result-dialog.md +106 -0
- package/llms/components/lr-tool-result-view.md +162 -0
- package/llms/components/lr-tool-select-dialog.md +124 -0
- package/llms/components/lr-tool-timeline.md +56 -0
- package/llms/components/lr-tooltip.md +47 -0
- package/llms/components/lr-tour.md +100 -0
- package/llms/components/lr-trace-tree.md +35 -0
- package/llms/components/lr-transcript-feed.md +45 -0
- package/llms/components/lr-tree-node.md +133 -0
- package/llms/components/lr-tree.md +133 -0
- package/llms/components/lr-typing-indicator.md +80 -0
- package/llms/components/lr-usage-badge.md +44 -0
- package/llms/components/lr-virtual-list.md +145 -0
- package/llms/components/lr-voice-picker.md +78 -0
- package/llms/components/lr-widget-renderer.md +78 -0
- package/llms/components/lr-widget.md +104 -0
- package/llms/components/lr-word-cloud.md +112 -0
- package/llms/components/lr-xml-viewer.md +58 -0
- package/llms/components/lr-zoomable-frame.md +57 -0
- package/llms/index.md +301 -0
- package/llms/migration.md +86 -0
- package/llms/peers.md +41 -0
- package/llms/shared.md +321 -0
- package/llms/tokens.md +533 -0
- package/llms-full.txt +10731 -8563
- package/llms.txt +64 -121
- package/package.json +14 -2
- package/vscode-css-data.json +1424 -185
- package/vscode-html-data.json +128 -107
- package/web-types.json +853 -118
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
<!-- GENERATED by scripts/build-llms.mjs from llms/retrieval.md — do not edit this file. -->
|
|
2
|
+
|
|
3
|
+
# `lr-source-list`
|
|
4
|
+
|
|
5
|
+
- **Import** `import '@aceshooting/lyra-ui/components/retrieval/source-list/source-list.js';` (registers the tag; side-effect import)
|
|
6
|
+
- **Class** `LyraSourceList`, also available unregistered from `@aceshooting/lyra-ui/components/retrieval/source-list/source-list.class.js`
|
|
7
|
+
- **Family** `components/retrieval/` — see `llms/index.md` for its siblings
|
|
8
|
+
- **Optional peers** none
|
|
9
|
+
- **Documented with** `lr-source-card` (same section below)
|
|
10
|
+
- **Library-wide behavior** (events, form association, `locale`/`strings`, tokens, TS types): `llms/shared.md`
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## `lr-source-list` / `lr-source-card`
|
|
15
|
+
|
|
16
|
+
A collapsible "Sources" panel for one chat message (`lr-source-list`) that groups a set of
|
|
17
|
+
`lr-source-card` entries. First-party invention (no Web Awesome equivalent). Cards are meant to be
|
|
18
|
+
direct light-DOM children of the list (plain composition — no `.items` array prop, the same shape
|
|
19
|
+
`<lr-split>`'s panels take), though `lr-source-card` renders and functions fine standalone.
|
|
20
|
+
|
|
21
|
+
### `lr-source-list`
|
|
22
|
+
|
|
23
|
+
**Properties:**
|
|
24
|
+
- `expanded: boolean = false` (reflected) — whether the card list is currently shown. Starts
|
|
25
|
+
collapsed by default so a message's sources don't eat vertical space until asked for.
|
|
26
|
+
- `label: string = ''` — header text used when `label-plural` isn't set, e.g. `"Sources"`.
|
|
27
|
+
- `labelPlural: string = ''` (attribute `label-plural`) — fully consumer-built, already-pluralized
|
|
28
|
+
header summary, e.g. `"3 sources"` or `"1 source"`; this component never counts or pluralizes on
|
|
29
|
+
its own. Takes precedence over `label` when both are set. If neither is set, the header falls back
|
|
30
|
+
to the literal word `"Sources"`.
|
|
31
|
+
|
|
32
|
+
**Getters:** `sourceCount: number` — read-only, live-updated count of the currently-slotted children,
|
|
33
|
+
handy for building a `label-plural` string reactively, e.g. `` list.labelPlural = `${list.sourceCount} sources` ``.
|
|
34
|
+
|
|
35
|
+
**Events:** `lr-toggle` (`detail: { expanded: boolean }`) — the header was activated, expanding or
|
|
36
|
+
collapsing the list.
|
|
37
|
+
|
|
38
|
+
**Slots:** default — `<lr-source-card>` elements (or any content, though the card pairing is the
|
|
39
|
+
intended usage).
|
|
40
|
+
|
|
41
|
+
**CSS parts:** `base` (outer container), `header` (the clickable `<button>` toggling `expanded`),
|
|
42
|
+
`toggle` (the chevron indicator inside the header), `list` (wrapper around the default slot, `hidden`
|
|
43
|
+
while collapsed).
|
|
44
|
+
|
|
45
|
+
**Themeable custom properties:** shared tokens only — `--lr-color-border`, `--lr-color-surface`,
|
|
46
|
+
`--lr-color-text`, `--lr-color-brand` / `-brand-quiet`, `--lr-radius`, `--lr-space-xs`/`-s`/
|
|
47
|
+
`-m`, `--lr-transition-fast`, `--lr-focus-ring-*`.
|
|
48
|
+
|
|
49
|
+
**Optional peer deps:** none.
|
|
50
|
+
|
|
51
|
+
### `lr-source-card`
|
|
52
|
+
|
|
53
|
+
**Properties:**
|
|
54
|
+
- `sourceId: string = ''` (attribute `source-id`) — stable identifier matching a
|
|
55
|
+
`<lr-citation-badge>` elsewhere on the page.
|
|
56
|
+
- `title: string = ''` — the source's display title, e.g. a filename. Falls back to `"Untitled
|
|
57
|
+
source"` when empty.
|
|
58
|
+
- `page?: string | number` — optional page reference, e.g. `12` or `"iv"`, rendered as-is (never
|
|
59
|
+
parsed/validated as a number), appended to the title as `" — p. {page}"`.
|
|
60
|
+
- `href?: string` — optional URL, echoed back (unopened) in `lr-open`'s detail.
|
|
61
|
+
|
|
62
|
+
**Events:**
|
|
63
|
+
- `lr-expand` (`detail: { sourceId: string; expanded: boolean }`) — the per-card "Show
|
|
64
|
+
more"/"Show less" toggle was activated. Unrelated to the parent `lr-source-list`'s own
|
|
65
|
+
expand/collapse, which only ever hides/shows the *set* of cards, never a single card's own content.
|
|
66
|
+
- `lr-open` (`detail: { sourceId: string; href?: string }`) — the title was activated. This
|
|
67
|
+
component never navigates on its own (a controlled component, the same convention
|
|
68
|
+
`<lr-tool-call-chip>`'s `lr-tool-call-chip-select` follows); a listener decides what "open"
|
|
69
|
+
means.
|
|
70
|
+
|
|
71
|
+
**Slots:** `excerpt` (a short preview; when left empty, the `excerpt` part collapses away entirely —
|
|
72
|
+
its wrapper is `hidden`, not just visually empty), `full` (the complete source text/chunk, hidden
|
|
73
|
+
behind the "Show more"/"Show less" toggle — when left empty, no toggle renders at all; removing all
|
|
74
|
+
`full`-slotted content while expanded auto-collapses it back).
|
|
75
|
+
|
|
76
|
+
**CSS parts:** `base` (outer container), `title` (the clickable title/page heading, a `<button>`),
|
|
77
|
+
`excerpt` (wrapper around the `excerpt` slot, `hidden` when the slot has no assigned content), `full`
|
|
78
|
+
(wrapper around the `full` slot, `hidden` while collapsed), `toggle` (the "Show more"/"Show less"
|
|
79
|
+
button — only rendered when the `full` slot has content).
|
|
80
|
+
|
|
81
|
+
**Themeable custom properties:** shared tokens only — `--lr-color-border`, `--lr-color-surface`,
|
|
82
|
+
`--lr-color-text` / `-text-quiet`, `--lr-color-brand`, `--lr-radius`, `--lr-space-xs`/`-s`,
|
|
83
|
+
`--lr-focus-ring-*`.
|
|
84
|
+
|
|
85
|
+
**Optional peer deps:** none.
|
|
86
|
+
|
|
87
|
+
```html
|
|
88
|
+
<lr-source-list label-plural="2 sources">
|
|
89
|
+
<lr-source-card source-id="doc-1" title="annual_report.pdf" page="12">
|
|
90
|
+
<span slot="excerpt">Revenue grew 12% year over year...</span>
|
|
91
|
+
<span slot="full">Revenue grew 12% year over year, driven primarily by...</span>
|
|
92
|
+
</lr-source-card>
|
|
93
|
+
<lr-source-card source-id="doc-2" title="q3_notes.md">
|
|
94
|
+
<span slot="excerpt">No matching full-text chunk for this source.</span>
|
|
95
|
+
</lr-source-card>
|
|
96
|
+
</lr-source-list>
|
|
97
|
+
<script type="module">
|
|
98
|
+
// Elsewhere, a <lr-citation-badge>'s activation handler can scroll to and
|
|
99
|
+
// highlight the matching card -- neither component needs extra API surface
|
|
100
|
+
// for that, only source-id to be targeted by:
|
|
101
|
+
document.addEventListener('lr-citation-activate', (e) => {
|
|
102
|
+
const card = document.querySelector(`lr-source-card[source-id="${e.detail.sourceId}"]`);
|
|
103
|
+
card?.scrollIntoView({ behavior: 'smooth', block: 'center' });
|
|
104
|
+
});
|
|
105
|
+
</script>
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
`lr-source-list` removes the card list from the accessibility tree (not just visually hides it)
|
|
109
|
+
while collapsed, via the native `hidden` attribute on `[part="list"]` — a screen reader user tabbing
|
|
110
|
+
past the header never lands on off-screen source cards they can't currently see. Both components
|
|
111
|
+
track slot presence in JS state (`slottedCount` on the list, `hasFullSlot` on the card) rather than
|
|
112
|
+
relying on CSS `:empty`, since a `[part]` wrapper always contains a literal `<slot>` child regardless
|
|
113
|
+
of assigned content; both also reconcile that state in `firstUpdated()` as a fallback for slot-
|
|
114
|
+
forwarding scenarios or engines that don't fire `slotchange` for content already present at parse
|
|
115
|
+
time.
|
|
116
|
+
|
|
117
|
+
**Known gotchas:**
|
|
118
|
+
- This library has no built-in i18n/pluralization (the same stance `<lr-empty>`'s plain
|
|
119
|
+
`description` prop takes) — `lr-source-list`'s header text is entirely consumer-supplied via
|
|
120
|
+
`label`/`label-plural`; there's no automatic "N sources" string generation beyond the literal
|
|
121
|
+
`"Sources"` fallback.
|
|
122
|
+
- `lr-source-card`'s own expand/collapse (`full` slot, `lr-expand` event) is completely
|
|
123
|
+
independent of the parent list's `expanded`/`lr-toggle` — collapsing the list doesn't reset an
|
|
124
|
+
individual card's `fullExpanded` state, and there is no cross-talk between the two components at
|
|
125
|
+
all beyond DOM nesting.
|
|
126
|
+
- `lr-source-card` actively strips a bare host-level `title` attribute right after Lit syncs it into
|
|
127
|
+
the `title` property — otherwise the whole card would grow an unsolicited native tooltip repeating
|
|
128
|
+
the title text on hover. Set `title` only as a property/attribute meant to become the rendered
|
|
129
|
+
heading; don't rely on it surviving as a DOM attribute afterward.
|
|
130
|
+
|
|
131
|
+
---
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
<!-- GENERATED by scripts/build-llms.mjs from llms/retrieval.md — do not edit this file. -->
|
|
2
|
+
|
|
3
|
+
# `lr-source-picker`
|
|
4
|
+
|
|
5
|
+
- **Import** `import '@aceshooting/lyra-ui/components/retrieval/source-picker/source-picker.js';` (registers the tag; side-effect import)
|
|
6
|
+
- **Class** `LyraSourcePicker`, also available unregistered from `@aceshooting/lyra-ui/components/retrieval/source-picker/source-picker.class.js`
|
|
7
|
+
- **Family** `components/retrieval/` — see `llms/index.md` for its siblings
|
|
8
|
+
- **Optional peers** none
|
|
9
|
+
- **Library-wide behavior** (events, form association, `locale`/`strings`, tokens, TS types): `llms/shared.md`
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## `lr-source-picker`
|
|
14
|
+
|
|
15
|
+
A checkbox tree/list scoping which sources ground the next answer: tri-state folders, select-all,
|
|
16
|
+
type icons, search. **Not `FormAssociated`, deliberately**: this is a scoping panel, not a form
|
|
17
|
+
control — the selection is immediate app state consumed by the next retrieval call, exactly the
|
|
18
|
+
stance `lr-tool-select-dialog` already takes.
|
|
19
|
+
|
|
20
|
+
**Properties:**
|
|
21
|
+
- `sources: LyraSourceEntry[] = []` (attribute: false) — `LyraSourceEntry { id: string; label:
|
|
22
|
+
string; mimeType?: string; name?: string; children?: LyraSourceEntry[] }`; flat (no `children`) or
|
|
23
|
+
a tree — presence of `children` makes a row a group/folder with tri-state select
|
|
24
|
+
- `selectedIds: string[] = []` (attribute: false) — controlled; the host assigns this back from
|
|
25
|
+
`lr-sources-change`
|
|
26
|
+
- `showSelectAll: boolean = true` (attribute `show-select-all`)
|
|
27
|
+
- `searchable: boolean = true`
|
|
28
|
+
- `label: string = ''`
|
|
29
|
+
- `accessibleLabel: string | null = null` (attribute `aria-label`) — overrides the tree's computed
|
|
30
|
+
accessible name; wins over `label` and the localized default, and attribute-reflects from a
|
|
31
|
+
host-level `aria-label` so plain markup gets ARIA-name forwarding
|
|
32
|
+
|
|
33
|
+
**Events:** `lr-sources-change` (`detail: { selectedIds }`, the complete updated leaf-id array,
|
|
34
|
+
fired after every toggle including select-all).
|
|
35
|
+
|
|
36
|
+
**Slots:** none.
|
|
37
|
+
|
|
38
|
+
**CSS parts:** `base`, `search` (the built-in filter `lr-input`, only when `searchable`),
|
|
39
|
+
`select-all` (only when `showSelectAll`), `summary` ("{selected} of {total} selected"), `tree`
|
|
40
|
+
(`role="tree"`), `item` (`role="treeitem"`), `checkbox` (tri-state glyph), `icon` (the
|
|
41
|
+
`lr-file-icon` type badge), `label`, `empty` (`noData` when `sources` is empty, `noMatches` when a
|
|
42
|
+
filter empties the tree).
|
|
43
|
+
|
|
44
|
+
**Themeable custom properties:** shared tokens only.
|
|
45
|
+
|
|
46
|
+
**Optional peer deps:** none.
|
|
47
|
+
|
|
48
|
+
```html
|
|
49
|
+
<lr-source-picker></lr-source-picker>
|
|
50
|
+
<script>
|
|
51
|
+
const picker = document.querySelector('lr-source-picker');
|
|
52
|
+
picker.sources = [
|
|
53
|
+
{ id: 'folder-1', label: 'Reports', children: [{ id: 'doc-1', label: 'Q3.pdf', mimeType: 'application/pdf' }] },
|
|
54
|
+
];
|
|
55
|
+
picker.addEventListener('lr-sources-change', (e) => (retrievalScope = e.detail.selectedIds));
|
|
56
|
+
</script>
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
**Known gotchas:**
|
|
60
|
+
- Deliberately not form-associated — `lr-sources-change` is the only wiring; there's no
|
|
61
|
+
`name`/`value`/`FormData` participation the way a genuine form control would have.
|
|
62
|
+
|
|
63
|
+
---
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
<!-- GENERATED by scripts/build-llms.mjs from llms/agent-tools.md — do not edit this file. -->
|
|
2
|
+
|
|
3
|
+
# `lr-span-waterfall`
|
|
4
|
+
|
|
5
|
+
- **Import** `import '@aceshooting/lyra-ui/components/agent-tools/span-waterfall/span-waterfall.js';` (registers the tag; side-effect import)
|
|
6
|
+
- **Class** `LyraSpanWaterfall`, also available unregistered from `@aceshooting/lyra-ui/components/agent-tools/span-waterfall/span-waterfall.class.js`
|
|
7
|
+
- **Family** `components/agent-tools/` — see `llms/index.md` for its siblings
|
|
8
|
+
- **Optional peers** none
|
|
9
|
+
- **Library-wide behavior** (events, form association, `locale`/`strings`, tokens, TS types): `llms/shared.md`
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## `lr-span-waterfall`
|
|
14
|
+
|
|
15
|
+
The horizontal-timeline projection of the same `LyraSpan[]` `<lr-trace-tree>` consumes: a time
|
|
16
|
+
axis, one row per span in start order, status-toned bars (Langfuse timeline / Temporal
|
|
17
|
+
event-history style).
|
|
18
|
+
|
|
19
|
+
**Properties:** `spans: LyraSpan[] = []` (attribute: false) — `LyraSpan { id: string; parentId?:
|
|
20
|
+
string; name: string; kind: 'agent' | 'llm' | 'tool' | 'retriever' | 'embedding' | 'other';
|
|
21
|
+
startMs: number; endMs?: number; status: 'pending' | 'running' | 'success' | 'error' | 'denied';
|
|
22
|
+
tokensIn?: number; tokensOut?: number; costText?: string; detail?: string }`, exported from
|
|
23
|
+
`trace-tree/span.ts`. `startMs`/`endMs` are milliseconds **relative to the trace start**, not
|
|
24
|
+
wall-clock timestamps; `endMs` is absent while the span is still running. `costText` is preformatted
|
|
25
|
+
by the host (e.g. `"$0.0012"`) and rendered verbatim, never parsed or summed. One flat array powers
|
|
26
|
+
both this component (timeline projection via `startMs`/`endMs`) and `lr-trace-tree` (hierarchy
|
|
27
|
+
projection via `parentId`) — never two shapes. `activeSpanId: string | null = null`
|
|
28
|
+
(attribute `active-span-id`), `viewStartMs: number | null = null` (attribute `view-start-ms`) and
|
|
29
|
+
`viewEndMs: number | null = null` (attribute `view-end-ms`) — override the auto-computed time
|
|
30
|
+
window, `hideAxis: boolean = false` (attribute `hide-axis`), and `label: string = ''`.
|
|
31
|
+
|
|
32
|
+
**Events:** `lr-span-select` — `detail: { id: string }`, a bar/row was activated (click, Enter,
|
|
33
|
+
Space).
|
|
34
|
+
|
|
35
|
+
**CSS parts:** `base`, `axis` (the time-ruler row, hidden when `hideAxis`), `tick`, `tick-label`,
|
|
36
|
+
`row`, `name` (the row's name gutter), `bar-track`, `bar` (the interactive, focusable status-toned
|
|
37
|
+
bar), `meta` (secondary row info, shown inline under 480px), `status-text`, `duration`, `empty` (shown
|
|
38
|
+
when `spans` is empty), and `live-region`.
|
|
39
|
+
|
|
40
|
+
**Themeable custom properties:** `--lr-span-waterfall-name-width` (default `8rem`) and
|
|
41
|
+
`--lr-span-waterfall-stripe-speed` (a `running` span's striped-bar animation duration; defaults to
|
|
42
|
+
`--lr-transition-ambient`).
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
<!-- GENERATED by scripts/build-llms.mjs from llms/data.md — do not edit this file. -->
|
|
2
|
+
|
|
3
|
+
# `lr-sparkline`
|
|
4
|
+
|
|
5
|
+
- **Import** `import '@aceshooting/lyra-ui/components/data/sparkline/sparkline.js';` (registers the tag; side-effect import)
|
|
6
|
+
- **Class** `LyraSparkline`, also available unregistered from `@aceshooting/lyra-ui/components/data/sparkline/sparkline.class.js`
|
|
7
|
+
- **Family** `components/data/` — see `llms/index.md` for its siblings
|
|
8
|
+
- **Optional peers** none
|
|
9
|
+
- **Library-wide behavior** (events, form association, `locale`/`strings`, tokens, TS types): `llms/shared.md`
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## `lr-sparkline`
|
|
14
|
+
|
|
15
|
+
Zero-dependency inline SVG trend chart (mirrors `<wa-sparkline>`).
|
|
16
|
+
|
|
17
|
+
**Properties:**
|
|
18
|
+
- `values: number[] = []`
|
|
19
|
+
- `type: 'line' | 'bar' | 'area' = 'line'`
|
|
20
|
+
- `min?: number` (defaults to data minimum)
|
|
21
|
+
- `max?: number` (defaults to data maximum)
|
|
22
|
+
- `accessibleLabel: string | null = null` (attribute `aria-label`) — overrides the localized
|
|
23
|
+
generated summary on the internal SVG
|
|
24
|
+
|
|
25
|
+
**Events:** none.
|
|
26
|
+
|
|
27
|
+
**Slots:** none.
|
|
28
|
+
|
|
29
|
+
**CSS parts:** `line`, `area`, `bar`
|
|
30
|
+
|
|
31
|
+
**Themeable custom properties:** `--lr-color-brand` (pure CSS cascade, no JS/`getComputedStyle`
|
|
32
|
+
bridging needed), `--lr-sparkline-stroke-width` (default `1.5` — stroke width of the line/area
|
|
33
|
+
path), and `--lr-sparkline-area-opacity` (default `0.15` — fill opacity of the area under the
|
|
34
|
+
line, `type="area"` only).
|
|
35
|
+
|
|
36
|
+
**Optional peer deps:** none.
|
|
37
|
+
|
|
38
|
+
```html
|
|
39
|
+
<lr-sparkline type="area"></lr-sparkline>
|
|
40
|
+
<script>
|
|
41
|
+
document.querySelector('lr-sparkline').values = [3, 5, 4, 8, 6, 9, 7];
|
|
42
|
+
</script>
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
**Known gotchas:**
|
|
46
|
+
- The semantic `role="img"` and accessible name live on the SVG that owns the graphic. The generated
|
|
47
|
+
summary is localized, formats the last value with `effectiveLocale`, and can be replaced through
|
|
48
|
+
`accessibleLabel`/host `aria-label`. It remains a concise summary rather than a tabular fallback.
|
|
49
|
+
- flat data (every value equal, so the auto-computed range spans zero) now renders a centered
|
|
50
|
+
midline/mid-height bars instead of collapsing every point to the bottom edge, and a single-value
|
|
51
|
+
series renders a visible flat line (a zero-length path was previously invisible). **Every** `type`
|
|
52
|
+
(`line`/`area`/`bar`) decimates a `values` array past 500 points down to at most 500 plotted
|
|
53
|
+
samples — evenly sampled by index, always keeping the first and last value exactly, not
|
|
54
|
+
aggregated/averaged. `type="bar"` caps at 500 rendered `<rect>`s directly; `line`/`area` cap the
|
|
55
|
+
point count baked into the single `<path>`'s `d` string instead (an uncapped path string also
|
|
56
|
+
grows unbounded, even though the element count stays at one `<path>`). Auto `min`/`max` is still
|
|
57
|
+
scanned from the *full* pre-decimation `values` array, so a real extreme value that decimation
|
|
58
|
+
happens to drop can't silently narrow the rendered scale.
|
|
59
|
+
|
|
60
|
+
---
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
<!-- GENERATED by scripts/build-llms.mjs from llms/overlays.md — do not edit this file. -->
|
|
2
|
+
|
|
3
|
+
# `lr-spinner`
|
|
4
|
+
|
|
5
|
+
- **Import** `import '@aceshooting/lyra-ui/components/overlays/spinner/spinner.js';` (registers the tag; side-effect import)
|
|
6
|
+
- **Class** `LyraSpinner`, also available unregistered from `@aceshooting/lyra-ui/components/overlays/spinner/spinner.class.js`
|
|
7
|
+
- **Family** `components/overlays/` — see `llms/index.md` for its siblings
|
|
8
|
+
- **Optional peers** none
|
|
9
|
+
- **Library-wide behavior** (events, form association, `locale`/`strings`, tokens, TS types): `llms/shared.md`
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## `lr-spinner`
|
|
14
|
+
|
|
15
|
+
An indeterminate busy indicator with a localized `role="status"` name.
|
|
16
|
+
|
|
17
|
+
**Properties:** `labelPlacement: 'none' | 'after' = 'none'` (attribute `label-placement`, reflected)
|
|
18
|
+
and `accessibleLabel: string | null = null` (attribute **`aria-label`**, not `accessible-label`) —
|
|
19
|
+
names `[part="base"]`'s `role="status"`; unset falls back to the localized "Loading…".
|
|
20
|
+
|
|
21
|
+
**Events:** none.
|
|
22
|
+
|
|
23
|
+
**Slots:** default — optional label text. `label-placement="after"` renders it inline next to the
|
|
24
|
+
indicator; `'none'` (the default) keeps it visually clipped but still in the DOM.
|
|
25
|
+
|
|
26
|
+
**CSS parts:** `base` (the `role="status"` wrapper), `spinner` (the animated ring; `aria-hidden`),
|
|
27
|
+
`label` (the default-slot wrapper).
|
|
28
|
+
|
|
29
|
+
**Themeable custom properties:** `--lr-spinner-size` (default `--lr-size-1-25rem` — both
|
|
30
|
+
dimensions), `--lr-spinner-track-width` (default `--lr-border-width-medium` — ring thickness),
|
|
31
|
+
`--lr-spinner-duration` (default `800ms` — one full rotation; the animation is dropped entirely
|
|
32
|
+
under `prefers-reduced-motion: reduce`). The ring colors come from `--lr-color-brand`/`-brand-quiet`.
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
<!-- GENERATED by scripts/build-llms.mjs from llms/layout.md — do not edit this file. -->
|
|
2
|
+
|
|
3
|
+
# `lr-split`
|
|
4
|
+
|
|
5
|
+
- **Import** `import '@aceshooting/lyra-ui/components/layout/split/split.js';` (registers the tag; side-effect import)
|
|
6
|
+
- **Class** `LyraSplit`, also available unregistered from `@aceshooting/lyra-ui/components/layout/split/split.class.js`
|
|
7
|
+
- **Family** `components/layout/` — see `llms/index.md` for its siblings
|
|
8
|
+
- **Optional peers** none
|
|
9
|
+
- **Library-wide behavior** (events, form association, `locale`/`strings`, tokens, TS types): `llms/shared.md`
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## `lr-split`
|
|
14
|
+
|
|
15
|
+
Resizable panels for dashboard layouts. Direct **light-DOM children are the panels**; a divider is
|
|
16
|
+
auto-inserted between each adjacent pair.
|
|
17
|
+
|
|
18
|
+
**Properties:**
|
|
19
|
+
- `sizes: number[] = []` (attribute: false — percentages per panel, auto-computed equally if
|
|
20
|
+
omitted/mismatched)
|
|
21
|
+
- `defaultSizes: number[] = []` (attribute: false) — initialization-only fallback: a valid restored
|
|
22
|
+
`storageKey` layout wins first; otherwise a valid `defaultSizes` wins over equal distribution.
|
|
23
|
+
Later reassignment never overwrites live drag/persisted state — set it once, at mount.
|
|
24
|
+
- `min: number = 10` (min % per panel)
|
|
25
|
+
- `orientation: 'horizontal'|'vertical' = 'horizontal'` (reflected) — the axis used at/above
|
|
26
|
+
`orientationBreakpoint` (or always, when that's unset).
|
|
27
|
+
- `orientationBreakpoint?: number | string` (attribute `orientation-breakpoint`) — opt-in inline-size
|
|
28
|
+
breakpoint measured on `[part='base']`; unset (the default) means no behavior change at all, and
|
|
29
|
+
no `ResizeObserver` is armed. Below it, `narrowOrientation` becomes the effective axis instead of
|
|
30
|
+
`orientation`. Accepts a bare pixel number (`900`, `orientation-breakpoint="900"`) or a CSS length
|
|
31
|
+
string: `'900px'`, `'56.25rem'`, `'3em'`. Under the default `orientationBreakpointBasis='container'`,
|
|
32
|
+
`rem` resolves against the document root's **computed** font size (the rule a `@container` query
|
|
33
|
+
follows) and `em` against this element's own computed font size. The length is **re-resolved on
|
|
34
|
+
every measurement**, never cached at first render, so a root font-size change moves the crossing
|
|
35
|
+
width with no invalidation step on the consumer's side. Anything that isn't a resolvable length
|
|
36
|
+
behaves exactly as unset (no observation, no `data-effective-orientation`): `''`, `'auto'`,
|
|
37
|
+
garbage, a non-finite number, and deliberately `%`, `vw`/`vh` and `calc()` — a viewport-relative
|
|
38
|
+
threshold would mix reference boxes against a measurement of the element's own allocation. For a
|
|
39
|
+
genuinely viewport-relative breakpoint set `orientationBreakpointBasis='viewport'` instead.
|
|
40
|
+
- `orientationBreakpointBasis: 'container'|'viewport' = 'container'` (reflected, attribute
|
|
41
|
+
`orientation-breakpoint-basis`) — which box `orientationBreakpoint` is compared against. Unset,
|
|
42
|
+
behavior is identical to before this property existed. `'container'` measures this component's own
|
|
43
|
+
`[part='base']` via `ResizeObserver` and compares strictly `<`. `'viewport'` evaluates
|
|
44
|
+
`matchMedia('(max-width: <breakpoint>)')` and arms no `ResizeObserver` for the orientation feature
|
|
45
|
+
at all, so the shared observer stays armed only for `collapse`; its comparison is inclusive (`<=`),
|
|
46
|
+
because that is what native `max-width` means — deliberate, so the crossing point matches a CSS
|
|
47
|
+
`@media` rule authored with the same length exactly.
|
|
48
|
+
**`rem`/`em` mean different things under the two bases, and this is the reason `'viewport'` exists.**
|
|
49
|
+
Inside a media query, relative units resolve against the browser's *initial* font size and ignore
|
|
50
|
+
any `html { font-size }` override; under `'container'` they resolve against live computed font
|
|
51
|
+
sizes. The two agree unless an app re-points the root font size. So when the breakpoint must stay
|
|
52
|
+
in lockstep with a CSS `@media` rule, `'viewport'` is the exact match — the browser evaluates the
|
|
53
|
+
same query, live, across browser zoom and user font-size preferences, with no px re-derivation.
|
|
54
|
+
- `narrowOrientation: 'horizontal'|'vertical' = 'vertical'` (reflected, attribute `narrow-orientation`)
|
|
55
|
+
- `effectiveOrientation: 'horizontal'|'vertical'` (readonly getter) — the live resize/layout axis
|
|
56
|
+
actually in effect; identical to `orientation` whenever `orientationBreakpoint` is unset or
|
|
57
|
+
doesn't resolve to a length. Also reflected as `data-effective-orientation` (only present while
|
|
58
|
+
`orientationBreakpoint` resolves to a usable length).
|
|
59
|
+
- `storageKey?: string` (attribute `storage-key` — persists sizes to `localStorage` under
|
|
60
|
+
`` `lr-split:${key}:${panelCount}` ``, scoped by panel count so a stale layout for a different
|
|
61
|
+
panel count is ignored)
|
|
62
|
+
- `panelConstraints: (PanelConstraint | null)[] = []` (attribute: false) — `PanelConstraint { minPx?:
|
|
63
|
+
number; maxPx?: number; minPercent?: number; maxPercent?: number }`, index-aligned with `sizes`; a
|
|
64
|
+
`null`/missing entry (or an omitted bound within an entry) leaves that side of that panel purely
|
|
65
|
+
percent-based (the existing `min`-only behavior). Combining a px and a percent bound on the same
|
|
66
|
+
side resolves to the stricter one (larger for min, smaller for max) via a native CSS `max()`/`min()`
|
|
67
|
+
in the rendered `clamp()` flex-basis. `sizes`, the `lr-resize` payload, and localStorage persistence
|
|
68
|
+
stay percent-based regardless — only the effective drag/keyboard clamp bounds (and the rendered
|
|
69
|
+
`flex-basis`, via a native CSS `clamp()` so a constrained panel stays pinned between its bounds
|
|
70
|
+
across container resizes with no extra `ResizeObserver`) change for a constrained panel.
|
|
71
|
+
- `collapse: 'start'|'end'|'none' = 'none'` (reflected) — opt-in responsive collapse for one panel:
|
|
72
|
+
`'start'`/`'end'` is a *logical* position (RTL-aware, matching CSS logical properties — the panel at
|
|
73
|
+
the document's visual leading/trailing edge, not a raw array index). `lr-split` only owns the
|
|
74
|
+
width-collapse mechanics/state signaling below; it renders no icon-only UI itself — the collapsing
|
|
75
|
+
panel's own slotted content is expected to adapt itself (e.g. via its own `@container` query reading
|
|
76
|
+
the panel's clamped width or `data-collapse-state`, see below).
|
|
77
|
+
- `railWidth: string = '3.5rem'` (attribute `rail-width`) — the fixed CSS length the collapsing panel
|
|
78
|
+
clamps to in `'rail'` state.
|
|
79
|
+
- `railBreakpoint: number = 640` (attribute `rail-breakpoint`, px) — below this container width (a
|
|
80
|
+
`ResizeObserver` on `[part='base']`, active only while `collapse !== 'none'`), the collapsing panel
|
|
81
|
+
switches from its normal drag-resizable percent width to the fixed `railWidth`.
|
|
82
|
+
- `floatBreakpoint: number = 400` (attribute `float-breakpoint`, px) — below this narrower container
|
|
83
|
+
width, the collapsing panel instead becomes an absolutely-positioned overlay ("floating card") on
|
|
84
|
+
top of the other pane(s), removed from the normal flex flow; the sibling(s) take the full width.
|
|
85
|
+
- `collapseState: 'wide'|'rail'|'floating'` (reflected, attribute `collapse-state`) — a public
|
|
86
|
+
accessor with force/auto semantics mirroring `<lr-app-rail>`'s `mode`: normally derived
|
|
87
|
+
automatically from the measured container width, but assigning it a concrete value pins it there
|
|
88
|
+
(stopping automatic breakpoint tracking) — useful for a consumer-driven toggle (e.g. a button that
|
|
89
|
+
forces `'floating'` regardless of width). Assigning the write-only `'auto'` sentinel releases the
|
|
90
|
+
pin and immediately re-derives the state from the current measured width; the getter never returns
|
|
91
|
+
`'auto'`.
|
|
92
|
+
- `open: boolean = false` (reflected) — whether the `'floating'` collapse state's drawer is shown.
|
|
93
|
+
While `collapseState` is `'floating'` and `open` is `false` (the default), the collapsing panel
|
|
94
|
+
renders nothing (`hidden`, out of the accessibility tree) instead of the always-visible overlay
|
|
95
|
+
card this state rendered before `open` existed. Setting `open = true` reveals it as a
|
|
96
|
+
focus-trapped floating panel with a `[part="backdrop"]` scrim; Escape or a backdrop click set
|
|
97
|
+
`open` back to `false`. Leaving `'floating'` while `open` is still `true` also closes it, the same
|
|
98
|
+
way `<lr-app-rail>` closes its mobile overlay when leaving `'mobile'` while open.
|
|
99
|
+
|
|
100
|
+
`collapse`'s three resulting states — `'wide'` (default, today's plain layout) / `'rail'` / `'floating'`
|
|
101
|
+
— are exposed as: a `data-collapse-state` attribute on both the host and the collapsing panel element
|
|
102
|
+
itself (absent for `'wide'`/`collapse="none"`); and the `lr-split-collapse-change` event below. The
|
|
103
|
+
divider adjacent to the collapsed panel is drag/keyboard-disabled (`aria-disabled="true"`) while
|
|
104
|
+
collapsed. `collapse="none"` (the default) is byte-for-byte identical to pre-collapse-feature behavior.
|
|
105
|
+
|
|
106
|
+
`dividerLabel?: (index: number, panelCount: number) => string` (attribute: false) customizes the
|
|
107
|
+
localized accessible label generated for each auto-inserted divider.
|
|
108
|
+
|
|
109
|
+
**Events:** `lr-resize` (`detail: { sizes }`, fired on every drag step/release **and** every
|
|
110
|
+
keyboard step), `lr-split-collapse-change` (`detail: { state: 'wide'|'rail'|'floating' }`, fired only
|
|
111
|
+
on a real `collapse`-state transition, never on every resize/render),
|
|
112
|
+
`lr-split-constraints-invalid` (`detail: SplitConstraintIssueDetail`, fired once when the configured
|
|
113
|
+
panel minimums/maximums cannot fit the track; the infeasible set is rejected for interaction and a
|
|
114
|
+
normalized percent minimum is used instead), `lr-split-orientation-change` (`detail: { orientation }`,
|
|
115
|
+
fired only when an enabled `orientationBreakpoint` actually changes `effectiveOrientation`)
|
|
116
|
+
|
|
117
|
+
**Slots:** default (each direct child element is one panel).
|
|
118
|
+
|
|
119
|
+
**CSS parts:** `base` (`position: relative`, so the `'floating'` state can anchor to it), `divider`
|
|
120
|
+
(carries `aria-disabled="true"` and is drag/keyboard-inert while its adjacent panel is collapsed),
|
|
121
|
+
`backdrop` (the `'floating'` drawer's scrim — only rendered while `collapseState === 'floating'` and
|
|
122
|
+
`open`)
|
|
123
|
+
|
|
124
|
+
**Themeable custom properties:** `--lr-split-overlay-color` (default `var(--lr-color-overlay)`) —
|
|
125
|
+
the `'floating'` drawer's `[part='backdrop']` scrim; scoped to `[part='base']`, not the viewport.
|
|
126
|
+
Otherwise shared tokens only.
|
|
127
|
+
|
|
128
|
+
**Optional peer deps:** none.
|
|
129
|
+
|
|
130
|
+
```html
|
|
131
|
+
<lr-split storage-key="dashboard-main" min="15">
|
|
132
|
+
<div>Panel A</div>
|
|
133
|
+
<div>Panel B</div>
|
|
134
|
+
<div>Panel C</div>
|
|
135
|
+
</lr-split>
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
Keyboard: focus a divider (`Tab`), then `ArrowRight`/`ArrowLeft` (horizontal) or
|
|
139
|
+
`ArrowDown`/`ArrowUp` (vertical) to resize by a fixed 2% step — RTL-aware for horizontal layouts
|
|
140
|
+
(under `direction: rtl`, the forward/backward keys and drag-delta sign both swap so they still track
|
|
141
|
+
the visually-adjacent panel).
|
|
142
|
+
|
|
143
|
+
**Known gotchas:**
|
|
144
|
+
- `panelCount` now reacts to `slotchange` (not just the initial `connectedCallback()` read), and
|
|
145
|
+
`ensureSizes()` rebalances existing sizes proportionally when a panel is added or removed after
|
|
146
|
+
mount instead of discarding the whole layout — a conditionally-shown side panel no longer leaves
|
|
147
|
+
`panelCount`/`sizes`/divider count stale.
|
|
148
|
+
- divider `aria-valuemax` is now computed per adjacent pair (`sizes[i] + sizes[i+1] - min`) rather
|
|
149
|
+
than a blanket `100 - min`, so it's accurate for 3+-panel layouts too, not just exactly two panels
|
|
150
|
+
— this formula still only accounts for the plain percent `min`, though: with `panelConstraints`
|
|
151
|
+
set, a panel's real achievable range can be narrower (or expressed in px) than what
|
|
152
|
+
`aria-valuemin`/`aria-valuemax` report. Each divider also now has its own `aria-label` ("Resize
|
|
153
|
+
divider between panel N and panel N+1") distinguishing it from any other divider in a
|
|
154
|
+
multi-divider layout.
|
|
155
|
+
- infeasible aggregate constraints (for example, three panels with `min=40`) are reported through
|
|
156
|
+
`lr-split-constraints-invalid`; interaction rejects that set and uses a normalized percent minimum
|
|
157
|
+
with aggregate slack, so the divider remains operable instead of silently freezing.
|
|
158
|
+
- concurrent drags are tracked per `pointerId` (not a single scalar), so a multi-touch drag on two
|
|
159
|
+
different dividers moves both independently instead of the second pointer clobbering the first's
|
|
160
|
+
drag state; `pointercancel`/`lostpointercapture` (not just `pointerup`) both end a drag.
|
|
161
|
+
- `localStorage.getItem`/`setItem` calls are now both wrapped in their own `try`/`catch` (in addition
|
|
162
|
+
to the `JSON.parse` result already being caught), so a blocked or quota-exceeded store fails
|
|
163
|
+
silently instead of throwing from inside a `pointerup`/`keydown` handler. A persisted layout whose
|
|
164
|
+
panel count no longer matches, or whose sizes are already below the current `min` floor, is
|
|
165
|
+
rejected rather than restored.
|
|
166
|
+
- Pointer-drag lifecycle (pointer capture, window-listener cleanup on both drag-end and
|
|
167
|
+
`disconnectedCallback`) is solid and safe to rely on.
|
|
168
|
+
- `orientationBreakpoint` shares its `[part='base']` `ResizeObserver` with `collapse` (one observer,
|
|
169
|
+
not two) — arming logic covers either feature being opted into independently.
|
|
170
|
+
- **Picking a basis.** `orientationBreakpointBasis='container'` (the default) observes the
|
|
171
|
+
component's own allocated inline size, so it fits a component that is the sole flex/grid item in
|
|
172
|
+
the container being measured. It does **not** fit a component sitting beside a fixed-width sibling
|
|
173
|
+
in a row that stacks via a CSS `@media` rule: while the row is a row, this element's width shrinks
|
|
174
|
+
with the viewport; the instant the row stacks (a pure-CSS event no component can observe) it jumps
|
|
175
|
+
to the *full* row width — wider than it was just before the transition. Because the measured width
|
|
176
|
+
is not monotonic across that transition, no single container threshold both stays wide while the
|
|
177
|
+
row is a row and goes narrow exactly when it stacks. A fixed-width sibling is worse still: its own
|
|
178
|
+
width never changes with the viewport at all, so no container breakpoint on it can react to the
|
|
179
|
+
stacking.
|
|
180
|
+
That layout is what `orientationBreakpointBasis='viewport'` is for. Give every sibling the same
|
|
181
|
+
`orientation-breakpoint` and `orientation-breakpoint-basis='viewport'` and they flip together, in
|
|
182
|
+
lockstep with the CSS rule that stacks the row:
|
|
183
|
+
```html
|
|
184
|
+
<lr-stepper orientation-breakpoint="56.25rem" orientation-breakpoint-basis="viewport"></lr-stepper>
|
|
185
|
+
<lr-split orientation-breakpoint="56.25rem" orientation-breakpoint-basis="viewport"></lr-split>
|
|
186
|
+
<style>@media (max-width: 56.25rem) { .shell { flex-direction: column; } }</style>
|
|
187
|
+
```
|
|
188
|
+
A consumer-side `matchMedia()` controller driving the `orientation` attribute directly is still
|
|
189
|
+
supported and still correct — it is simply no longer required for this case.
|
|
190
|
+
|
|
191
|
+
---
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
<!-- GENERATED by scripts/build-llms.mjs from llms/viewers.md — do not edit this file. -->
|
|
2
|
+
|
|
3
|
+
# `lr-spreadsheet-viewer`
|
|
4
|
+
|
|
5
|
+
- **Import** `import '@aceshooting/lyra-ui/components/viewers/spreadsheet-viewer/spreadsheet-viewer.js';` (registers the tag; side-effect import)
|
|
6
|
+
- **Class** `LyraSpreadsheetViewer`, also available unregistered from `@aceshooting/lyra-ui/components/viewers/spreadsheet-viewer/spreadsheet-viewer.class.js`
|
|
7
|
+
- **Family** `components/viewers/` — see `llms/index.md` for its siblings
|
|
8
|
+
- **Optional peers** `xlsx` — see `llms/peers.md`
|
|
9
|
+
- **Library-wide behavior** (events, form association, `locale`/`strings`, tokens, TS types): `llms/shared.md`
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## `lr-spreadsheet-viewer`
|
|
14
|
+
|
|
15
|
+
Fetches and renders `.xlsx` and `.xls` workbooks with the optional `xlsx` (SheetJS) peer. Multiple
|
|
16
|
+
worksheets render through a `<lr-tabs>` switcher, and body rows use `<lr-virtual-list>`.
|
|
17
|
+
|
|
18
|
+
Adopts `DocumentAnchorTarget`: a `cell-range` anchor addresses one sheet's raw grid, 1-based, with
|
|
19
|
+
its header row included, resolving the target sheet from the anchor's own `sheet` field (falling
|
|
20
|
+
back to a `Sheet!`-prefixed `range`, then the active sheet); `scrollToAnchor()` switches
|
|
21
|
+
`<lr-tabs>`'s active tab first when needed, then scrolls the addressed row/column into view.
|
|
22
|
+
`highlights` paint as a focusable `part="cell-highlight"`.
|
|
23
|
+
|
|
24
|
+
**Properties:** `src` and `name` are strings. `anchorKinds` is a readonly `['cell-range']` (this
|
|
25
|
+
viewer's supported `LyraAnchor.kind` values for the shared anchor-target contract).
|
|
26
|
+
|
|
27
|
+
**Methods:** `search(query)` resolves the match count across every sheet's stringified cell values,
|
|
28
|
+
ordered sheet then row then column, switching tabs as navigation crosses sheets (empty/whitespace
|
|
29
|
+
query behaves like `clearSearch()`); `searchNext()`/`searchPrevious()` advance/step back through
|
|
30
|
+
matches (wrapping, resolving `false` when there are none); `clearSearch()` clears the query,
|
|
31
|
+
matches, and painted marks.
|
|
32
|
+
|
|
33
|
+
**Events:** `lr-render-error` with `detail.error` when fetching or parsing fails.
|
|
34
|
+
`lr-highlight-activate` (`detail: { id }`) — a `highlights` cell was clicked or activated via
|
|
35
|
+
Enter/Space. `lr-anchor-result` (`detail: { found }`) — fired after an `anchor` assignment or a
|
|
36
|
+
`scrollToAnchor()` call. `lr-search-change` (`detail: { query, matchCount, activeIndex }`) — from
|
|
37
|
+
`search()`/`searchNext()`/`searchPrevious()`/`clearSearch()`.
|
|
38
|
+
|
|
39
|
+
**CSS parts:** `base`, `tabs`, `sheet`, `header-row`, `data-row`, `cell`, `cell-highlight` (a cell
|
|
40
|
+
covered by a `highlights` entry), `rows`, `spinner`, and `error`.
|
|
41
|
+
|
|
42
|
+
**Optional peer dependency:** install `xlsx` with `pnpm add https://cdn.sheetjs.com/xlsx-0.20.3/xlsx-0.20.3.tgz`. The official CDN matches the
|
|
43
|
+
`.xlsx` and `.xls` MIME types and filename extensions.
|
|
44
|
+
|
|
45
|
+
Remote resources are capped at 25 MB, and each parsed sheet at 10,000 rows and 1,000 columns;
|
|
46
|
+
exceeding any of these surfaces the localized `documentPreviewResourceTooLarge` message instead of
|
|
47
|
+
the workbook.
|