@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,100 @@
|
|
|
1
|
+
<!-- GENERATED by scripts/build-llms.mjs from llms/utility.md — do not edit this file. -->
|
|
2
|
+
|
|
3
|
+
# `lr-tour`
|
|
4
|
+
|
|
5
|
+
- **Import** `import '@aceshooting/lyra-ui/components/utility/tour/tour.js';` (registers the tag; side-effect import)
|
|
6
|
+
- **Class** `LyraTour`, also available unregistered from `@aceshooting/lyra-ui/components/utility/tour/tour.class.js`
|
|
7
|
+
- **Family** `components/utility/` — 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-tour`
|
|
14
|
+
|
|
15
|
+
A spotlight-and-step guided walkthrough for first-run onboarding: each step anchors a popover to a
|
|
16
|
+
target element elsewhere in the page via the shared Floating UI positioner, over a dimmed
|
|
17
|
+
full-viewport backdrop with a cutout/ring around the current target, with Next/Previous/Skip
|
|
18
|
+
controls and a step-progress indicator. Controlled component — `steps` is never mutated; only
|
|
19
|
+
`activeIndex` and `open` are self-managed.
|
|
20
|
+
|
|
21
|
+
**Properties:**
|
|
22
|
+
- `open: boolean = false` (reflected) — no separate `show()`/`hide()`; set this or call
|
|
23
|
+
`start()`/`end()`
|
|
24
|
+
- `steps: TourStep[] = []` (attribute: false) — empty renders nothing
|
|
25
|
+
- `activeIndex: number = 0` (attribute `active-index`, reflected) — clamped to
|
|
26
|
+
`[0, steps.length - 1]`, including for a direct property/attribute write that bypasses
|
|
27
|
+
`goToStep()`
|
|
28
|
+
- `placement: Placement = 'bottom'` (reflected) — tour-level Floating UI default, overridable per
|
|
29
|
+
step; resolved through `rtlAwarePlacement()`
|
|
30
|
+
- `distance: number = 12` — px offset between target and popover. Tour-level only (no per-step
|
|
31
|
+
override); may be negative for overlap
|
|
32
|
+
- `spotlightPadding: number = 4` (attribute `spotlight-padding`) — extra px between the target's box
|
|
33
|
+
and the cutout/ring; overridable per step
|
|
34
|
+
- `lightDismiss: boolean = false` (attribute `light-dismiss`) — a deliberate inversion of
|
|
35
|
+
`lr-dialog`'s `noLightDismiss`: a backdrop click does **nothing** by default so a stray click
|
|
36
|
+
can't discard onboarding progress. Set it to make a backdrop click `end('skip')`
|
|
37
|
+
- `showProgress: boolean = true` (attribute `show-progress`) — renders the "Step X of Y" text + dots
|
|
38
|
+
- `aria-label` (a plain host attribute, not a public JS property) — names **every** step's popover,
|
|
39
|
+
overriding each step's own `heading` as the `aria-labelledby` source
|
|
40
|
+
|
|
41
|
+
**Exported types:** `TourStep { id: string; target: TourTarget; heading: string; content?: string;
|
|
42
|
+
placement?: Placement; spotlightPadding?: number; interactiveTarget?: boolean; hidePrevious?: boolean }`;
|
|
43
|
+
`TourTarget = string | HTMLElement | (() => HTMLElement | null)` — a string resolves via
|
|
44
|
+
`ownerDocument.querySelector` (top-level light DOM only), and every form is re-resolved on each step
|
|
45
|
+
activation, never cached, so a target mounted later still resolves. `heading` is required and
|
|
46
|
+
becomes the panel's accessible name; `content` renders as plain text (no HTML/markdown parsing).
|
|
47
|
+
`TourEndReason = 'completed' | 'skip' | 'escape' | 'api' | 'unmount' | (string & {})`.
|
|
48
|
+
|
|
49
|
+
**Methods:** `start(index = 0)` (clamps, opens, emits `lr-tour-start`), `next()` (on the last step
|
|
50
|
+
ends with `'completed'` instead), `back()` (no-op on the first step), `goToStep(index)` (clamped),
|
|
51
|
+
`skip()` (sugar for `end('skip')`), `end(reason: TourEndReason = 'api')`.
|
|
52
|
+
|
|
53
|
+
**Events:** `lr-tour-start` (`detail: { index }`, not cancelable); `lr-tour-step-change`
|
|
54
|
+
(`detail: { index, previousIndex, step, via: 'next'|'back'|'goto' }`, **cancelable** — fires before
|
|
55
|
+
`activeIndex` changes, so `preventDefault()` gates advancement on a real action; a deliberate
|
|
56
|
+
departure from `lr-carousel`'s non-cancelable `lr-slide-change`); `lr-tour-end`
|
|
57
|
+
(`detail: TourEndReason`, cancelable except in practice for `'unmount'`, which is emitted when the
|
|
58
|
+
element is removed while still open by something other than its own `end()`);
|
|
59
|
+
`lr-tour-target-missing` (`detail: { index, step }`, informational — the tour does **not** auto-end,
|
|
60
|
+
it renders that step viewport-centered with no spotlight).
|
|
61
|
+
|
|
62
|
+
**Slots:** default — rich content replacing the active step's plain-text `content`. Not scoped per
|
|
63
|
+
step: a consumer needing different rich content per step swaps the slotted children itself (e.g. on
|
|
64
|
+
`lr-tour-step-change`).
|
|
65
|
+
|
|
66
|
+
**CSS parts:** `backdrop` (the full-viewport `<svg>` scrim with the cutout, `aria-hidden`),
|
|
67
|
+
`spotlight` (the decorative ring around the padded target rect, `pointer-events: none`),
|
|
68
|
+
`popover` (the step panel, `role="dialog" aria-modal="true"`, `data-unanchored` when the target
|
|
69
|
+
didn't resolve), `heading` (the `aria-labelledby` target), `body` (slot or `step.content`),
|
|
70
|
+
`progress` (wrapper), `progress-text` (the "Step X of Y" text — an `aria-describedby` target),
|
|
71
|
+
`progress-dot` (one decorative dot per step, `data-current` on the active one, `aria-hidden`),
|
|
72
|
+
`footer` (the control row), `previous-button`, `skip-button`, `next-button` (the Next control's
|
|
73
|
+
label switches to Done on the last step).
|
|
74
|
+
|
|
75
|
+
**Themeable custom properties:** `--lr-tour-backdrop-color` (default `--lr-color-overlay`),
|
|
76
|
+
`--lr-tour-spotlight-radius` (default `--lr-radius` — shared by the cutout and the ring),
|
|
77
|
+
`--lr-tour-spotlight-ring-color` (default `--lr-color-brand`), `--lr-tour-spotlight-ring-width`
|
|
78
|
+
(default `--lr-border-width-medium`), `--lr-tour-popover-max-width` (default `--lr-size-22rem`,
|
|
79
|
+
further capped by `92vw` and the positioner's available space).
|
|
80
|
+
|
|
81
|
+
**Known gotchas:**
|
|
82
|
+
- By default the spotlighted target is **non-interactive**: it stays visible and announceable (not
|
|
83
|
+
`inert`, not `aria-hidden`) but every pointer event over the viewport is captured by the backdrop.
|
|
84
|
+
Set `step.interactiveTarget` to clip the backdrop around the target so clicks fall through — that
|
|
85
|
+
restores pointer reachability only. The focus trap still confines Tab to the popover regardless,
|
|
86
|
+
so for a keyboard-reachable demonstrated interaction have the app's own listener call `next()`.
|
|
87
|
+
- Uses the overlay manager with `modal: false` deliberately: `modal: true` would mark the whole page
|
|
88
|
+
(including the target, which lives outside this element) `inert`. `role="dialog"` +
|
|
89
|
+
`aria-modal="true"` are still rendered on the panel so screen readers confine their virtual cursor.
|
|
90
|
+
- Each step transition mounts a genuinely new popover node (keyed on `step.id`) so focus reliably
|
|
91
|
+
re-enters the panel — don't cache a reference to `[part="popover"]` across steps.
|
|
92
|
+
- No `Home`/`End` shortcut and no click-to-jump progress dots (unlike `lr-stepper`): later steps may
|
|
93
|
+
depend on an earlier step's side effect having run. `goToStep()` is available for a caller that
|
|
94
|
+
knows better. ArrowRight/ArrowLeft do move between steps (swapped under RTL), except while focus
|
|
95
|
+
is in an `input`/`textarea`/`contenteditable` inside slotted content.
|
|
96
|
+
- A direct `HTMLElement` target is re-checked for `isConnected` on every activation and treated as
|
|
97
|
+
missing if it was remounted — prefer a selector string or resolver function for targets that can
|
|
98
|
+
be replaced mid-tour.
|
|
99
|
+
- The active step's target is `scrollIntoView({ block: 'center' })`'d on activation, smoothly unless
|
|
100
|
+
`prefers-reduced-motion: reduce`.
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
<!-- GENERATED by scripts/build-llms.mjs from llms/agent-tools.md — do not edit this file. -->
|
|
2
|
+
|
|
3
|
+
# `lr-trace-tree`
|
|
4
|
+
|
|
5
|
+
- **Import** `import '@aceshooting/lyra-ui/components/agent-tools/trace-tree/trace-tree.js';` (registers the tag; side-effect import)
|
|
6
|
+
- **Class** `LyraTraceTree`, also available unregistered from `@aceshooting/lyra-ui/components/agent-tools/trace-tree/trace-tree.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-trace-tree`
|
|
14
|
+
|
|
15
|
+
A collapsible span hierarchy for one agent/LLM trace (Langfuse/LangSmith run-tree style): kind icon,
|
|
16
|
+
name, status, an inline duration bar on the shared trace time scale, and optional tokens/cost
|
|
17
|
+
columns. Consumes the same `LyraSpan[]` as `<lr-span-waterfall>`.
|
|
18
|
+
|
|
19
|
+
**Properties:** `spans: LyraSpan[] = []` (attribute: false) — the same `LyraSpan` shape documented
|
|
20
|
+
under `lr-span-waterfall` above (exported from `trace-tree/span.ts`); hierarchy comes from
|
|
21
|
+
`parentId`, and a span whose `parentId` is missing or doesn't resolve within the same array renders
|
|
22
|
+
as a root rather than being dropped. `activeSpanId: string | null = null`
|
|
23
|
+
(attribute `active-span-id`), `label: string = ''`, `showTokens: boolean = false` (attribute
|
|
24
|
+
`show-tokens`) — surfaces `tokensIn`/`tokensOut`, `showCost: boolean = false` (attribute
|
|
25
|
+
`show-cost`) — surfaces `costText`, and `hideBars: boolean = false` (attribute `hide-bars`).
|
|
26
|
+
|
|
27
|
+
**Methods:** `expandAll()` and `collapseAll()` set every row's expanded state at once.
|
|
28
|
+
|
|
29
|
+
**Events:** `lr-span-select` (`detail: { id: string }`, a row was activated) and `lr-span-toggle`
|
|
30
|
+
(`detail: { id: string; expanded: boolean }`, a row was expanded or collapsed).
|
|
31
|
+
|
|
32
|
+
**CSS parts:** `base` (`role="tree"`), `header` (the column-header row, only when
|
|
33
|
+
`showTokens`/`showCost`), `row` (`role="treeitem"`), `toggle`, `icon`, `name`, `detail`, `status-text`,
|
|
34
|
+
`duration`, `tokens-in`, `tokens-out` (when `showTokens`), `cost` (when `showCost`), `bar-track`,
|
|
35
|
+
`bar`, `empty` (shown when `spans` is empty), and `live-region`.
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
<!-- GENERATED by scripts/build-llms.mjs from llms/conversation.md — do not edit this file. -->
|
|
2
|
+
|
|
3
|
+
# `lr-transcript-feed`
|
|
4
|
+
|
|
5
|
+
- **Import** `import '@aceshooting/lyra-ui/components/conversation/transcript-feed/transcript-feed.js';` (registers the tag; side-effect import)
|
|
6
|
+
- **Class** `LyraTranscriptFeed`, also available unregistered from `@aceshooting/lyra-ui/components/conversation/transcript-feed/transcript-feed.class.js`
|
|
7
|
+
- **Family** `components/conversation/` — 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-transcript-feed`
|
|
14
|
+
|
|
15
|
+
Live captions for an in-progress voice session: speaker-grouped entries, interim-vs-final styling
|
|
16
|
+
with in-place upgrades keyed by `id`, and a stick-to-bottom auto-scroll with release, the same
|
|
17
|
+
`follow`/`lr-follow-change` contract `<lr-terminal>` uses. Live captions only — recorded-media
|
|
18
|
+
transcript sync is a separate concern.
|
|
19
|
+
|
|
20
|
+
**Properties:** `entries: LyraTranscriptEntry[] = []` (attribute: false) — `LyraTranscriptEntry { id:
|
|
21
|
+
string; speaker?: string; text: string; interim?: boolean; timestamp?: number }` (exported by this
|
|
22
|
+
module; `timestamp` is epoch **milliseconds**). Reconciled keyed by `id` via Lit's `repeat()`: a
|
|
23
|
+
same-`id` entry with new `text` replaces in place, and a same-`id` entry whose `interim` flips from
|
|
24
|
+
`true` to unset/`false` moves from the interim area into the `role="log"` region and announces
|
|
25
|
+
exactly once. Interim entries render *after* the log container — visible, but structurally outside
|
|
26
|
+
it — so per-token mutations are never spoken by assistive tech. `follow: boolean = true`
|
|
27
|
+
(reflected), `showTimestamps: boolean = false` (attribute `show-timestamps`), `formatTimestamp?:
|
|
28
|
+
(epochMs: number) => string` (attribute: false), `maxRenderedEntries: number = 0` (attribute
|
|
29
|
+
`max-rendered-entries`) — `0` renders every entry; a positive value keeps only the newest N,
|
|
30
|
+
`label: string = ''` — accessible name for the `role="log"` region
|
|
31
|
+
(default: the localized `transcriptFeedLabel`), and `accessibleLabel: string | null = null`
|
|
32
|
+
(attribute `aria-label`) — overrides the log's computed accessible name, winning over `label` and
|
|
33
|
+
the localized default; attribute-reflects from a host-level `aria-label`.
|
|
34
|
+
|
|
35
|
+
**Methods:** `scrollToBottom()` re-engages `follow` and scrolls to the latest entry.
|
|
36
|
+
|
|
37
|
+
**Slots:** `empty` — custom empty state (default: the localized "No transcript yet").
|
|
38
|
+
|
|
39
|
+
**Events:** `lr-follow-change` — `detail: { following }`, fires on every `follow` transition.
|
|
40
|
+
|
|
41
|
+
**CSS parts:** `base` (the scroll container), `log` (the `role="log"` region wrapping final entries
|
|
42
|
+
only), `entry`, `speaker` (omitted for a row repeating the previous row's speaker), `text`
|
|
43
|
+
(`dir="auto"`), `timestamp` (only while `show-timestamps`), `interim` (present alongside `entry` on
|
|
44
|
+
an interim row), `interim-area` (the wrapper holding the interim row, present whether or not an
|
|
45
|
+
interim entry is showing), `jump-button` (shown only while `follow` is `false`), and `empty`.
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
<!-- GENERATED by scripts/build-llms.mjs from llms/data.md — do not edit this file. -->
|
|
2
|
+
|
|
3
|
+
# `lr-tree-node`
|
|
4
|
+
|
|
5
|
+
- **Import** `import '@aceshooting/lyra-ui/components/data/tree/tree-node.js';` (registers the tag; side-effect import)
|
|
6
|
+
- **Class** `LyraTreeNode`, also available unregistered from `@aceshooting/lyra-ui/components/data/tree/tree-node.class.js`
|
|
7
|
+
- **Family** `components/data/` — see `llms/index.md` for its siblings
|
|
8
|
+
- **Optional peers** none
|
|
9
|
+
- **Documented with** `lr-tree` (same section below)
|
|
10
|
+
- **Library-wide behavior** (events, form association, `locale`/`strings`, tokens, TS types): `llms/shared.md`
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## `lr-tree` / `lr-tree-node`
|
|
15
|
+
|
|
16
|
+
An expand/collapse hierarchy (document/graph navigation tree). `lr-tree` owns the data and
|
|
17
|
+
imperatively creates/reconciles light-DOM `<lr-tree-node>` children by `id`; `lr-tree-node`
|
|
18
|
+
recursively renders itself and its own nested children.
|
|
19
|
+
|
|
20
|
+
### `lr-tree`
|
|
21
|
+
|
|
22
|
+
Implements the full WAI-ARIA treeitem keyboard pattern: a single roving `tabindex` (tracked as
|
|
23
|
+
`activeId`, pushed down to every `<lr-tree-node>` including nested ones) and
|
|
24
|
+
ArrowUp/Down/Right/Left/Home/End/Enter/Space handled by one delegated `keydown` listener (native
|
|
25
|
+
`KeyboardEvent`s are `composed: true` and bubble across shadow-DOM boundaries, so a press inside a
|
|
26
|
+
deeply-nested node's own shadow root still reaches it).
|
|
27
|
+
|
|
28
|
+
**Properties:**
|
|
29
|
+
- `data: TreeItem[] = []` (attribute: false) — `TreeItem { id: string; label: string; children?:
|
|
30
|
+
TreeItem[]; badge?: string | number; icon?: unknown; description?: string; accessibleLabel?:
|
|
31
|
+
string }`; `icon` renders as a decorative leading visual, `description` as secondary visible row
|
|
32
|
+
text, and `accessibleLabel` names the `role="treeitem"` host without changing its visible label
|
|
33
|
+
- `label: string = ''` — accessible name for the tree; `role="tree"` lives on an internal
|
|
34
|
+
`[part="base"]` element. The component forwards a host `aria-label` to that semantic element when
|
|
35
|
+
`label` is empty; `label` takes precedence when both are set. External `aria-labelledby` idrefs
|
|
36
|
+
are not forwarded across the shadow boundary.
|
|
37
|
+
|
|
38
|
+
**Keyboard:** ArrowDown/ArrowUp move the roving focus to the next/previous *visible* node.
|
|
39
|
+
ArrowRight expands a collapsed node (focus stays put; a second ArrowRight then steps into the first
|
|
40
|
+
child) or moves into an already-expanded node's first child. ArrowLeft collapses an expanded node, or
|
|
41
|
+
moves focus to its parent. Home/End jump to the first/last visible node. Enter/Space activate
|
|
42
|
+
`select()` on the focused node.
|
|
43
|
+
|
|
44
|
+
**Methods:** `expandAll()`, `collapseAll()` (both recursive, properly sequenced around Lit's render
|
|
45
|
+
cycle).
|
|
46
|
+
|
|
47
|
+
**Events:** none dispatched directly (see `lr-tree-node` below — they bubble up and are also
|
|
48
|
+
observed internally to keep the roving `activeId` in sync with clicks).
|
|
49
|
+
|
|
50
|
+
**Slots:** default (holds the `<lr-tree-node>` elements it manages).
|
|
51
|
+
|
|
52
|
+
**CSS parts:** `base`, `empty` (the empty-state message shown when `data` is empty)
|
|
53
|
+
|
|
54
|
+
**Themeable custom properties:** shared tokens `--lr-space-xs`/`-s`, `--lr-color-brand-quiet`,
|
|
55
|
+
`--lr-color-text-quiet`, `--lr-color-border`, `--lr-color-text`, `--lr-radius`,
|
|
56
|
+
`--lr-focus-ring-*` (row `:focus-visible` ring, driven by `:host(:focus-visible)` since the host
|
|
57
|
+
itself is the focusable `role="treeitem"`).
|
|
58
|
+
|
|
59
|
+
**Optional peer deps:** none.
|
|
60
|
+
|
|
61
|
+
### `lr-tree-node`
|
|
62
|
+
|
|
63
|
+
Normally set internally by `lr-tree`, but a public element. `role="treeitem"` (plus
|
|
64
|
+
`aria-expanded`/`aria-level`/`aria-setsize`/`aria-posinset` and the roving `tabindex`, driven by
|
|
65
|
+
`<lr-tree>`) live on the *host* element itself, not an internal row `<div>` — so this node's own
|
|
66
|
+
nested children (rendered in its own shadow root as further `role="group"` content) are genuine DOM
|
|
67
|
+
descendants of the treeitem, matching the WAI-ARIA treeitem pattern's containment expectation.
|
|
68
|
+
|
|
69
|
+
**Properties:**
|
|
70
|
+
- `item: TreeItem` (required, attribute: false)
|
|
71
|
+
- `depth: number = 0`
|
|
72
|
+
- `expanded: boolean = false` (reflected)
|
|
73
|
+
- `activeId: string | null = null` (attribute: false) — the id of the tree's roving-tabindex-focused
|
|
74
|
+
item, pushed down from `<lr-tree>`; normally set internally, not by consumers
|
|
75
|
+
- `setSize: number = 1`, `posInSet: number = 1` (attribute: false) — this node's `aria-setsize`/
|
|
76
|
+
`aria-posinset` values among its siblings, pushed down from `<lr-tree>`; normally set internally,
|
|
77
|
+
not by consumers
|
|
78
|
+
- `hasChildren: boolean` (read-only getter) — reports whether `item.children` contains at least one
|
|
79
|
+
child; leaf nodes never expose `aria-expanded` and cannot expand or collapse
|
|
80
|
+
|
|
81
|
+
**Methods:** `expand()`, `collapse()` (each a no-op if already in that state, or a leaf), `select()`
|
|
82
|
+
(fires `lr-node-select`).
|
|
83
|
+
|
|
84
|
+
**Events:** `lr-node-toggle` (`detail: { id, expanded }`, fired by `expand()`/`collapse()` — via
|
|
85
|
+
the toggle button or ArrowRight/ArrowLeft), `lr-node-select` (`detail: { id }`, fired by `select()`
|
|
86
|
+
— via clicking anywhere in the row or Enter/Space) — dispatched from `lr-tree-node`,
|
|
87
|
+
bubble/compose up
|
|
88
|
+
through `lr-tree`'s light DOM.
|
|
89
|
+
|
|
90
|
+
**Slots:** none.
|
|
91
|
+
|
|
92
|
+
**CSS parts:** `row`, `toggle`, `icon`, `content`, `label`, `description`, `badge`, `group`. `icon` is
|
|
93
|
+
`aria-hidden="true"`; `content` groups the primary label and optional wrapping secondary
|
|
94
|
+
description while preserving one interactive treeitem per row.
|
|
95
|
+
|
|
96
|
+
**Themeable custom properties:** `--lr-tree-depth` (internal, set inline per row for
|
|
97
|
+
indentation), plus the shared tokens listed above.
|
|
98
|
+
|
|
99
|
+
**Optional peer deps:** none.
|
|
100
|
+
|
|
101
|
+
```html
|
|
102
|
+
<lr-tree></lr-tree>
|
|
103
|
+
<script>
|
|
104
|
+
document.querySelector('lr-tree').data = [
|
|
105
|
+
{
|
|
106
|
+
id: '1',
|
|
107
|
+
label: 'Root',
|
|
108
|
+
description: 'Two child documents',
|
|
109
|
+
accessibleLabel: 'Root, two child documents',
|
|
110
|
+
icon: document.createTextNode('◇'),
|
|
111
|
+
children: [{ id: '1a', label: 'Child A' }, { id: '1b', label: 'Child B', badge: 3 }],
|
|
112
|
+
},
|
|
113
|
+
];
|
|
114
|
+
</script>
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
**Known gotchas:**
|
|
118
|
+
- all four previously-known ARIA gaps in this pair are fixed: the treeitem row is now genuinely
|
|
119
|
+
keyboard-operable with a roving tabindex and full arrow-key navigation (not just the expand/collapse
|
|
120
|
+
button); the expanded-children `role="group"` is now a real DOM descendant of its `role="treeitem"`
|
|
121
|
+
host rather than a shadow-DOM sibling; by-id reconciliation (preserving `expanded` state across
|
|
122
|
+
data reassignment) now applies at every depth via a keyed `repeat()`, not just depth 0; and
|
|
123
|
+
`role="tree"` now has an accessible name via the new `label` property.
|
|
124
|
+
- `lr-tree`'s `getUpdateComplete()` cascades into every currently-known descendant
|
|
125
|
+
`<lr-tree-node>`'s own `updateComplete` (see `update-cascade.ts`) so that code awaiting the
|
|
126
|
+
tree's `updateComplete` (e.g. after `focusNode()`) doesn't run before an arbitrarily-nested node has
|
|
127
|
+
actually finished rendering its pushed-down `activeId`/`tabIndex` — one more pending update per
|
|
128
|
+
depth level, otherwise.
|
|
129
|
+
- row enrichment is intentionally structured rather than an unrestricted renderer: use `icon`,
|
|
130
|
+
`label`, `description`, `badge`, and `accessibleLabel`. This keeps the host as the single
|
|
131
|
+
`role="treeitem"` interaction target and preserves the APG keyboard model.
|
|
132
|
+
|
|
133
|
+
---
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
<!-- GENERATED by scripts/build-llms.mjs from llms/data.md — do not edit this file. -->
|
|
2
|
+
|
|
3
|
+
# `lr-tree`
|
|
4
|
+
|
|
5
|
+
- **Import** `import '@aceshooting/lyra-ui/components/data/tree/tree.js';` (registers the tag; side-effect import)
|
|
6
|
+
- **Class** `LyraTree`, also available unregistered from `@aceshooting/lyra-ui/components/data/tree/tree.class.js`
|
|
7
|
+
- **Family** `components/data/` — see `llms/index.md` for its siblings
|
|
8
|
+
- **Optional peers** none
|
|
9
|
+
- **Documented with** `lr-tree-node` (same section below)
|
|
10
|
+
- **Library-wide behavior** (events, form association, `locale`/`strings`, tokens, TS types): `llms/shared.md`
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## `lr-tree` / `lr-tree-node`
|
|
15
|
+
|
|
16
|
+
An expand/collapse hierarchy (document/graph navigation tree). `lr-tree` owns the data and
|
|
17
|
+
imperatively creates/reconciles light-DOM `<lr-tree-node>` children by `id`; `lr-tree-node`
|
|
18
|
+
recursively renders itself and its own nested children.
|
|
19
|
+
|
|
20
|
+
### `lr-tree`
|
|
21
|
+
|
|
22
|
+
Implements the full WAI-ARIA treeitem keyboard pattern: a single roving `tabindex` (tracked as
|
|
23
|
+
`activeId`, pushed down to every `<lr-tree-node>` including nested ones) and
|
|
24
|
+
ArrowUp/Down/Right/Left/Home/End/Enter/Space handled by one delegated `keydown` listener (native
|
|
25
|
+
`KeyboardEvent`s are `composed: true` and bubble across shadow-DOM boundaries, so a press inside a
|
|
26
|
+
deeply-nested node's own shadow root still reaches it).
|
|
27
|
+
|
|
28
|
+
**Properties:**
|
|
29
|
+
- `data: TreeItem[] = []` (attribute: false) — `TreeItem { id: string; label: string; children?:
|
|
30
|
+
TreeItem[]; badge?: string | number; icon?: unknown; description?: string; accessibleLabel?:
|
|
31
|
+
string }`; `icon` renders as a decorative leading visual, `description` as secondary visible row
|
|
32
|
+
text, and `accessibleLabel` names the `role="treeitem"` host without changing its visible label
|
|
33
|
+
- `label: string = ''` — accessible name for the tree; `role="tree"` lives on an internal
|
|
34
|
+
`[part="base"]` element. The component forwards a host `aria-label` to that semantic element when
|
|
35
|
+
`label` is empty; `label` takes precedence when both are set. External `aria-labelledby` idrefs
|
|
36
|
+
are not forwarded across the shadow boundary.
|
|
37
|
+
|
|
38
|
+
**Keyboard:** ArrowDown/ArrowUp move the roving focus to the next/previous *visible* node.
|
|
39
|
+
ArrowRight expands a collapsed node (focus stays put; a second ArrowRight then steps into the first
|
|
40
|
+
child) or moves into an already-expanded node's first child. ArrowLeft collapses an expanded node, or
|
|
41
|
+
moves focus to its parent. Home/End jump to the first/last visible node. Enter/Space activate
|
|
42
|
+
`select()` on the focused node.
|
|
43
|
+
|
|
44
|
+
**Methods:** `expandAll()`, `collapseAll()` (both recursive, properly sequenced around Lit's render
|
|
45
|
+
cycle).
|
|
46
|
+
|
|
47
|
+
**Events:** none dispatched directly (see `lr-tree-node` below — they bubble up and are also
|
|
48
|
+
observed internally to keep the roving `activeId` in sync with clicks).
|
|
49
|
+
|
|
50
|
+
**Slots:** default (holds the `<lr-tree-node>` elements it manages).
|
|
51
|
+
|
|
52
|
+
**CSS parts:** `base`, `empty` (the empty-state message shown when `data` is empty)
|
|
53
|
+
|
|
54
|
+
**Themeable custom properties:** shared tokens `--lr-space-xs`/`-s`, `--lr-color-brand-quiet`,
|
|
55
|
+
`--lr-color-text-quiet`, `--lr-color-border`, `--lr-color-text`, `--lr-radius`,
|
|
56
|
+
`--lr-focus-ring-*` (row `:focus-visible` ring, driven by `:host(:focus-visible)` since the host
|
|
57
|
+
itself is the focusable `role="treeitem"`).
|
|
58
|
+
|
|
59
|
+
**Optional peer deps:** none.
|
|
60
|
+
|
|
61
|
+
### `lr-tree-node`
|
|
62
|
+
|
|
63
|
+
Normally set internally by `lr-tree`, but a public element. `role="treeitem"` (plus
|
|
64
|
+
`aria-expanded`/`aria-level`/`aria-setsize`/`aria-posinset` and the roving `tabindex`, driven by
|
|
65
|
+
`<lr-tree>`) live on the *host* element itself, not an internal row `<div>` — so this node's own
|
|
66
|
+
nested children (rendered in its own shadow root as further `role="group"` content) are genuine DOM
|
|
67
|
+
descendants of the treeitem, matching the WAI-ARIA treeitem pattern's containment expectation.
|
|
68
|
+
|
|
69
|
+
**Properties:**
|
|
70
|
+
- `item: TreeItem` (required, attribute: false)
|
|
71
|
+
- `depth: number = 0`
|
|
72
|
+
- `expanded: boolean = false` (reflected)
|
|
73
|
+
- `activeId: string | null = null` (attribute: false) — the id of the tree's roving-tabindex-focused
|
|
74
|
+
item, pushed down from `<lr-tree>`; normally set internally, not by consumers
|
|
75
|
+
- `setSize: number = 1`, `posInSet: number = 1` (attribute: false) — this node's `aria-setsize`/
|
|
76
|
+
`aria-posinset` values among its siblings, pushed down from `<lr-tree>`; normally set internally,
|
|
77
|
+
not by consumers
|
|
78
|
+
- `hasChildren: boolean` (read-only getter) — reports whether `item.children` contains at least one
|
|
79
|
+
child; leaf nodes never expose `aria-expanded` and cannot expand or collapse
|
|
80
|
+
|
|
81
|
+
**Methods:** `expand()`, `collapse()` (each a no-op if already in that state, or a leaf), `select()`
|
|
82
|
+
(fires `lr-node-select`).
|
|
83
|
+
|
|
84
|
+
**Events:** `lr-node-toggle` (`detail: { id, expanded }`, fired by `expand()`/`collapse()` — via
|
|
85
|
+
the toggle button or ArrowRight/ArrowLeft), `lr-node-select` (`detail: { id }`, fired by `select()`
|
|
86
|
+
— via clicking anywhere in the row or Enter/Space) — dispatched from `lr-tree-node`,
|
|
87
|
+
bubble/compose up
|
|
88
|
+
through `lr-tree`'s light DOM.
|
|
89
|
+
|
|
90
|
+
**Slots:** none.
|
|
91
|
+
|
|
92
|
+
**CSS parts:** `row`, `toggle`, `icon`, `content`, `label`, `description`, `badge`, `group`. `icon` is
|
|
93
|
+
`aria-hidden="true"`; `content` groups the primary label and optional wrapping secondary
|
|
94
|
+
description while preserving one interactive treeitem per row.
|
|
95
|
+
|
|
96
|
+
**Themeable custom properties:** `--lr-tree-depth` (internal, set inline per row for
|
|
97
|
+
indentation), plus the shared tokens listed above.
|
|
98
|
+
|
|
99
|
+
**Optional peer deps:** none.
|
|
100
|
+
|
|
101
|
+
```html
|
|
102
|
+
<lr-tree></lr-tree>
|
|
103
|
+
<script>
|
|
104
|
+
document.querySelector('lr-tree').data = [
|
|
105
|
+
{
|
|
106
|
+
id: '1',
|
|
107
|
+
label: 'Root',
|
|
108
|
+
description: 'Two child documents',
|
|
109
|
+
accessibleLabel: 'Root, two child documents',
|
|
110
|
+
icon: document.createTextNode('◇'),
|
|
111
|
+
children: [{ id: '1a', label: 'Child A' }, { id: '1b', label: 'Child B', badge: 3 }],
|
|
112
|
+
},
|
|
113
|
+
];
|
|
114
|
+
</script>
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
**Known gotchas:**
|
|
118
|
+
- all four previously-known ARIA gaps in this pair are fixed: the treeitem row is now genuinely
|
|
119
|
+
keyboard-operable with a roving tabindex and full arrow-key navigation (not just the expand/collapse
|
|
120
|
+
button); the expanded-children `role="group"` is now a real DOM descendant of its `role="treeitem"`
|
|
121
|
+
host rather than a shadow-DOM sibling; by-id reconciliation (preserving `expanded` state across
|
|
122
|
+
data reassignment) now applies at every depth via a keyed `repeat()`, not just depth 0; and
|
|
123
|
+
`role="tree"` now has an accessible name via the new `label` property.
|
|
124
|
+
- `lr-tree`'s `getUpdateComplete()` cascades into every currently-known descendant
|
|
125
|
+
`<lr-tree-node>`'s own `updateComplete` (see `update-cascade.ts`) so that code awaiting the
|
|
126
|
+
tree's `updateComplete` (e.g. after `focusNode()`) doesn't run before an arbitrarily-nested node has
|
|
127
|
+
actually finished rendering its pushed-down `activeId`/`tabIndex` — one more pending update per
|
|
128
|
+
depth level, otherwise.
|
|
129
|
+
- row enrichment is intentionally structured rather than an unrestricted renderer: use `icon`,
|
|
130
|
+
`label`, `description`, `badge`, and `accessibleLabel`. This keeps the host as the single
|
|
131
|
+
`role="treeitem"` interaction target and preserves the APG keyboard model.
|
|
132
|
+
|
|
133
|
+
---
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
<!-- GENERATED by scripts/build-llms.mjs from llms/conversation.md — do not edit this file. -->
|
|
2
|
+
|
|
3
|
+
# `lr-typing-indicator`
|
|
4
|
+
|
|
5
|
+
- **Import** `import '@aceshooting/lyra-ui/components/conversation/typing-indicator/typing-indicator.js';` (registers the tag; side-effect import)
|
|
6
|
+
- **Class** `LyraTypingIndicator`, also available unregistered from `@aceshooting/lyra-ui/components/conversation/typing-indicator/typing-indicator.class.js`
|
|
7
|
+
- **Family** `components/conversation/` — 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-typing-indicator`
|
|
14
|
+
|
|
15
|
+
A purely presentational "assistant is responding" presence cue — no events, no interactivity. A
|
|
16
|
+
consumer mounts it while a response is being generated and removes (or hides) it once real content
|
|
17
|
+
arrives. Three visual variants share one component rather than three separate tags, since callers
|
|
18
|
+
pick between them along a single axis (how the surrounding surface wants the cue to read) and
|
|
19
|
+
nothing else about the component differs: `dots` (default, three dots with a staggered bounce — the
|
|
20
|
+
classic "typing…" affordance for a standalone status line), `pulse` (a single breathing dot, a
|
|
21
|
+
quieter cue for a tight space, e.g. next to an avatar), `cursor` (a blinking vertical bar, meant to
|
|
22
|
+
sit inline at the tail end of streamed text still being appended to).
|
|
23
|
+
|
|
24
|
+
**Properties:**
|
|
25
|
+
- `variant: TypingIndicatorVariant = 'dots'` (`'dots' | 'pulse' | 'cursor'`, reflected)
|
|
26
|
+
- `label: string = 'Thinking…'` — the accessible name, exposed via `role="status"`; not re-announced
|
|
27
|
+
on every animation frame, only on mount and on any later change to this property
|
|
28
|
+
- `size: TypingIndicatorSize = 'md'` (`'sm' | 'md'`, reflected) — compact sizing for dense layouts
|
|
29
|
+
|
|
30
|
+
**Events:** none — purely presentational.
|
|
31
|
+
|
|
32
|
+
**Slots:** none.
|
|
33
|
+
|
|
34
|
+
**CSS parts:** `base` (the decorative, `aria-hidden`, wrapper around the animated shape), `dot`
|
|
35
|
+
(each of the three dots in the `dots` variant), `pulse` (the single pulsing dot in the `pulse`
|
|
36
|
+
variant), `cursor` (the blinking bar in the `cursor` variant)
|
|
37
|
+
|
|
38
|
+
**Themeable custom properties:** `--lr-typing-dot-size` (default `0.5rem`, `0.375rem` at
|
|
39
|
+
`size="sm"`), `--lr-typing-gap` (default `0.25rem`, `0.1875rem` at `size="sm"`),
|
|
40
|
+
`--lr-typing-cursor-width` (default `0.125rem`, `0.09375rem` at `size="sm"`),
|
|
41
|
+
`--lr-typing-cursor-height` (default `1em`, unaffected by `size`),
|
|
42
|
+
`--lr-typing-dot-stagger-1` (default `600ms`, second dot), and
|
|
43
|
+
`--lr-typing-dot-stagger-2` (default `1200ms`, third dot). Every variant uses the shared
|
|
44
|
+
`--lr-transition-ambient` compound duration/timing token (default `1.8s ease-in-out`) as its
|
|
45
|
+
animation cycle.
|
|
46
|
+
|
|
47
|
+
**Optional peer deps:** none.
|
|
48
|
+
|
|
49
|
+
```html
|
|
50
|
+
<lr-typing-indicator label="Assistant is responding…"></lr-typing-indicator>
|
|
51
|
+
<lr-typing-indicator variant="pulse" size="sm"></lr-typing-indicator>
|
|
52
|
+
<lr-typing-indicator variant="cursor"></lr-typing-indicator>
|
|
53
|
+
<lr-typing-indicator
|
|
54
|
+
style="--lr-transition-ambient: 900ms ease-in-out; --lr-typing-dot-stagger-1: 300ms; --lr-typing-dot-stagger-2: 600ms"
|
|
55
|
+
></lr-typing-indicator>
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
Accessibility: since this indicator typically mounts and unmounts around a real generation lifecycle
|
|
59
|
+
(appears when a response starts, disappears once one arrives) rather than emitting a stream of
|
|
60
|
+
updates of its own, it does **not** route through `<lr-live-region>`/the internal `Announcer` —
|
|
61
|
+
that machinery exists to coalesce many rapidly-changing announcements into one, and there is only
|
|
62
|
+
ever a single announcement here: the mount itself. `role="status"` plus an accessible name derived
|
|
63
|
+
from `label` is set both as `aria-label` on the host *and* as a visually-hidden text node
|
|
64
|
+
(`.sr-only`) in the shadow tree, so the name survives even if only one of the two is picked up by a
|
|
65
|
+
given assistive-tech/browser pairing. The animated shape itself is `aria-hidden="true"` — it's
|
|
66
|
+
decorative; `label` is the entire accessible content, nothing narrates individual animation frames.
|
|
67
|
+
|
|
68
|
+
**Known gotchas:**
|
|
69
|
+
- under `prefers-reduced-motion: reduce`, every variant collapses to its plain, fully-visible resting
|
|
70
|
+
state (`opacity: 1`, no transform, `animation: none !important`) rather than freezing on whatever
|
|
71
|
+
frame the animation happened to be on — notably relevant for `cursor`, which would otherwise risk
|
|
72
|
+
freezing on its invisible ("off") blink half.
|
|
73
|
+
- `--lr-transition-ambient` is a compound `duration timing-function` value and cannot be divided
|
|
74
|
+
with `calc()`. When retiming it, override both stagger properties alongside it to preserve the
|
|
75
|
+
default one-third/two-thirds dot phasing, as shown above.
|
|
76
|
+
- `size="sm"` shrinks the dot size, gap, and cursor width, but **not** `--lr-typing-cursor-height`
|
|
77
|
+
(still `1em` at any size) — the cursor bar's height is meant to track surrounding text size via
|
|
78
|
+
`1em`, not the component's own `size` property.
|
|
79
|
+
|
|
80
|
+
---
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
<!-- GENERATED by scripts/build-llms.mjs from llms/conversation.md — do not edit this file. -->
|
|
2
|
+
|
|
3
|
+
# `lr-usage-badge`
|
|
4
|
+
|
|
5
|
+
- **Import** `import '@aceshooting/lyra-ui/components/conversation/usage-badge/usage-badge.js';` (registers the tag; side-effect import)
|
|
6
|
+
- **Class** `LyraUsageBadge`, also available unregistered from `@aceshooting/lyra-ui/components/conversation/usage-badge/usage-badge.class.js`
|
|
7
|
+
- **Family** `components/conversation/` — 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-usage-badge`
|
|
14
|
+
|
|
15
|
+
Compact, static resource strip for one message or run — tokens in/out, cost, latency — with a
|
|
16
|
+
hover/focus tooltip breakdown. Purely formatting: computes no counts, rates, or prices; every segment
|
|
17
|
+
is independently optional, and with nothing set, nothing renders at all (not even a focusable shell).
|
|
18
|
+
The tooltip reuses `lr-tool-call-chip`'s hover/focus/Escape/`aria-describedby` contract wholesale.
|
|
19
|
+
Not `lr-context-meter` (occupancy of a fixed capacity); not `lr-generation-status` (live, with a
|
|
20
|
+
Stop button) — this is static after the fact.
|
|
21
|
+
|
|
22
|
+
**Properties:** `tokensIn?: number` (attribute `tokens-in`) — input tokens, normalized to a
|
|
23
|
+
non-negative integer, locale-formatted; segment omitted while unset/non-finite. `tokensOut?: number`
|
|
24
|
+
(attribute `tokens-out`) — same rules. `costText: string = ''` (attribute `cost-text`) —
|
|
25
|
+
pre-formatted cost (e.g. `"$0.012"`), rendered verbatim. `latencyMs?: number` (attribute
|
|
26
|
+
`latency-ms`) — formatted with the shared duration algorithm (`820 -> "820ms"`, `1500 -> "1.5s"`), or
|
|
27
|
+
`formatLatency` when set. `formatLatency?: (ms: number) => string` — overrides the built-in duration
|
|
28
|
+
algorithm (which has no minutes/hours tier) in both the visible strip and the tooltip row; mirrors
|
|
29
|
+
`lr-activity-feed`'s `formatTimestamp` convention. `compact: boolean = false` — token counts render
|
|
30
|
+
via `Intl.NumberFormat` `notation: 'compact'`; the tooltip always shows full grouped figures.
|
|
31
|
+
|
|
32
|
+
**Slots:** default — extra rows appended below the built-in tooltip breakdown (e.g. cache-read
|
|
33
|
+
tokens); the visible strip itself is prop-driven only.
|
|
34
|
+
|
|
35
|
+
**CSS parts:** `base` (a focusable non-button `role="group"`, only rendered while at least one
|
|
36
|
+
segment or the default slot has content), `tokens-in`, `tokens-out`, `cost`, `latency`, `tooltip`.
|
|
37
|
+
|
|
38
|
+
```html
|
|
39
|
+
<lr-chat-message role="assistant" status="sent">
|
|
40
|
+
<lr-usage-badge slot="badges" tokens-in="1204" tokens-out="386"
|
|
41
|
+
cost-text="$0.012" latency-ms="2350"></lr-usage-badge>
|
|
42
|
+
<lr-markdown .content=${answer}></lr-markdown>
|
|
43
|
+
</lr-chat-message>
|
|
44
|
+
```
|