@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,109 @@
|
|
|
1
|
+
<!-- GENERATED by scripts/build-llms.mjs from llms/conversation.md — do not edit this file. -->
|
|
2
|
+
|
|
3
|
+
# `lr-agent-workspace`
|
|
4
|
+
|
|
5
|
+
- **Import** `import '@aceshooting/lyra-ui/components/conversation/agent-workspace/agent-workspace.js';` (registers the tag; side-effect import)
|
|
6
|
+
- **Class** `LyraAgentWorkspace`, also available unregistered from `@aceshooting/lyra-ui/components/conversation/agent-workspace/agent-workspace.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-agent-workspace`
|
|
14
|
+
|
|
15
|
+
Responsive, fully controlled shell for an AI conversation and its supporting run, tool, retrieval,
|
|
16
|
+
grounding, and context state: transcript + composer in the main pane, and a details pane composing
|
|
17
|
+
`lr-agent-run`, `lr-tool-timeline`, `lr-retrieval-results`, `lr-grounding-summary`, and
|
|
18
|
+
`lr-context-inspector`. Performs no network requests, model calls, retrieval, or persistence —
|
|
19
|
+
assign new data to the properties as the host receives updates.
|
|
20
|
+
|
|
21
|
+
This is the single component that binds the most of the provider-neutral vocabulary exported from
|
|
22
|
+
`@aceshooting/lyra-ui/ai` (`src/ai/types.ts`) at once; a host that already holds `ChatMessage[]`,
|
|
23
|
+
`AgentRun`, `RetrievalChunk[]`, `Citation[]`, and `GroundingAssessment` can wire this up with no
|
|
24
|
+
adapters.
|
|
25
|
+
|
|
26
|
+
**Properties (transcript):**
|
|
27
|
+
- `messages: ChatMessage[] = []` (attribute: false) — **`ChatMessage` from
|
|
28
|
+
`@aceshooting/lyra-ui/ai`**: `{ id: string; role: ChatMessageRole; status?: ChatMessageStatus;
|
|
29
|
+
timestamp?: Date | string; text?: string; attachments?: DocumentRef[] }`. Each entry renders as an
|
|
30
|
+
`lr-chat-message` whose `role`/`status`/`timestamp` come straight across, with `text` rendered as
|
|
31
|
+
sanitized Markdown through `lr-markdown`. Replace the whole region with the `messages` slot for
|
|
32
|
+
richer bodies. Host owns ordering, updates, and persistence
|
|
33
|
+
- `follow: boolean = true` (reflected) — forwarded to the internal `lr-chat-viewport`
|
|
34
|
+
- `unreadStartIndex: number | null = null` (attribute `unread-start-index`) — forwarded to the viewport
|
|
35
|
+
|
|
36
|
+
**Properties (details pane):**
|
|
37
|
+
- `run: AgentRun | null = null` (attribute: false) — **`AgentRun` from `@aceshooting/lyra-ui/ai`**:
|
|
38
|
+
`{ id: string; status: AgentStatus; startedAt?: number; endedAt?: number; model?: string;
|
|
39
|
+
costEstimate?: number; steps: AgentStep[] }` (epoch-ms timestamps). `null` omits the run section
|
|
40
|
+
- `metrics: AgentRunMetric[] = []` (attribute: false) — `lr-agent-run`'s own
|
|
41
|
+
`AgentRunMetric { id: string; label: string; value: string | number; variant?: BadgeVariant }`,
|
|
42
|
+
e.g. token counts or latency
|
|
43
|
+
- `tools: ToolTimelineEntry[] = []` (attribute: false) — `lr-tool-timeline`'s
|
|
44
|
+
`ToolTimelineEntry extends ToolInvocation` (i.e. `{ id, name, args, status, result?, error? }` from
|
|
45
|
+
`@aceshooting/lyra-ui/ai`) plus `{ startedAt?: number; endedAt?: number; retryCount?: number;
|
|
46
|
+
redactedFields?: string[]; needsApproval?: boolean; approved?: boolean }`
|
|
47
|
+
- `retrievalChunks: RetrievalChunk[] = []` (attribute: false) — **`RetrievalChunk` from
|
|
48
|
+
`@aceshooting/lyra-ui/ai`**: `{ id, text, score, source: DocumentRef, metadata? }`, forwarded to
|
|
49
|
+
`lr-retrieval-results`
|
|
50
|
+
- `selectedRetrievalIds: string[] = []` (attribute: false) — controlled selection forwarded to
|
|
51
|
+
`lr-retrieval-results.selectedIds`
|
|
52
|
+
- `retrievalLoading: boolean = false` (attribute `retrieval-loading`), `retrievalHasMore: boolean =
|
|
53
|
+
false` (attribute `retrieval-has-more`), `retrievalError: string = ''` (attribute
|
|
54
|
+
`retrieval-error`, caller-supplied text) — all forwarded to `lr-retrieval-results`
|
|
55
|
+
- `groundingAssessment: GroundingAssessment | null = null` (attribute: false) — **`GroundingAssessment`
|
|
56
|
+
from `@aceshooting/lyra-ui/ai`**: `{ supportedClaims, unsupportedClaims, coverage, confidence?,
|
|
57
|
+
warnings? }`
|
|
58
|
+
- `citations: Citation[] = []` (attribute: false) — **`Citation` from `@aceshooting/lyra-ui/ai`**,
|
|
59
|
+
shown alongside the grounding summary
|
|
60
|
+
- `contextSegments: ContextInspectorSegment[] = []` (attribute: false) — `lr-context-inspector`'s
|
|
61
|
+
`{ id: string; label: string; text: string; tokens: number; tone?: ContextMeterTone; citation?:
|
|
62
|
+
Citation; truncated?: boolean; omittedTokens?: number; redactions?: ContextInspectorRedaction[] }`
|
|
63
|
+
- `contextTotal: number = 0` (attribute `context-total`) — the overall context-window token budget
|
|
64
|
+
- `showDetails: boolean = true` (attribute `show-details`, reflected) — whether the details pane is
|
|
65
|
+
available at all when data is present
|
|
66
|
+
|
|
67
|
+
**Properties (composer / chrome):**
|
|
68
|
+
- `showComposer: boolean = true` (attribute `show-composer`, reflected) — whether the built-in
|
|
69
|
+
composer renders when no `composer` slot is supplied
|
|
70
|
+
- `composerValue: string = ''` (attribute `composer-value`) — controlled composer value
|
|
71
|
+
- `composerStatus: ChatComposerStatus = 'idle'` (attribute `composer-status`) — `'idle' | 'sending' |
|
|
72
|
+
'streaming'`, `lr-chat-composer`'s own union
|
|
73
|
+
- `composerPlaceholder: string = ''` (attribute `composer-placeholder`)
|
|
74
|
+
- `composerMinRows: number = 1` (attribute `composer-min-rows`), `composerMaxRows: number = 8`
|
|
75
|
+
(attribute `composer-max-rows`)
|
|
76
|
+
- `label: string = ''` — accessible name and visible heading
|
|
77
|
+
- `accessibleLabel: string | null = null` (attribute `aria-label`) — host-level accessible-name
|
|
78
|
+
override for the internal `role="region"` root
|
|
79
|
+
|
|
80
|
+
**Events:**
|
|
81
|
+
- `lr-input` (`detail: { value: string }`) / `lr-submit` (`detail: { value: string }`) / `lr-stop`
|
|
82
|
+
(`detail: undefined`) — forwarded from the built-in composer.
|
|
83
|
+
- `lr-message-retry` (`detail: { messageId: string }`) — a data-driven message's retry action.
|
|
84
|
+
- `lr-follow-change` (`detail: { following: boolean }`) — forwarded from the transcript viewport.
|
|
85
|
+
- `lr-retrieval-select` (`detail: RetrievalResultsSelectDetail` = `{ ids: string[]; chunks:
|
|
86
|
+
RetrievalChunk[] }`) — forwarded from the built-in retrieval results.
|
|
87
|
+
- `lr-citation-select` (`detail: CitationSelectEventDetail` = `{ citation: Citation }`, from
|
|
88
|
+
`@aceshooting/lyra-ui/ai`) — forwarded from the built-in grounding summary.
|
|
89
|
+
- `lr-tool-approval-decide` (`detail: ToolTimelineApprovalDetail` = `ToolApprovalEventDetail &
|
|
90
|
+
{ args?: unknown }` = `{ invocationId: string; approved: boolean; args?: unknown }`) — forwarded
|
|
91
|
+
from the built-in tool timeline; `args` is present only on approval and may differ from what the
|
|
92
|
+
entry originally proposed (the dialog's inline edit step).
|
|
93
|
+
- `lr-cancel` (`detail: undefined`) / `lr-retry` (`detail: RetryEventDetail` = `{ attempt: number;
|
|
94
|
+
messageId?: string }`, from `@aceshooting/lyra-ui/ai`) — forwarded from the built-in agent run.
|
|
95
|
+
|
|
96
|
+
**Slots:** `messages` (replaces the data-driven transcript message list), `details` (replaces the
|
|
97
|
+
built-in run/tool/retrieval/grounding/context details pane while keeping the responsive shell),
|
|
98
|
+
`composer` (replaces the built-in `lr-chat-composer`), `header-actions` (model selection, settings,
|
|
99
|
+
export controls).
|
|
100
|
+
|
|
101
|
+
**CSS parts:** `base`, `header`, `heading`, `header-actions`, `body`, `conversation`, `viewport` (the
|
|
102
|
+
composed `lr-chat-viewport`), `messages`, `messages-empty`, `details`, `details-content`, `section`
|
|
103
|
+
(one run/tools/retrieval/grounding/context section), `section-heading`, `composer`, `composer-input`
|
|
104
|
+
(the composed `lr-chat-composer`).
|
|
105
|
+
|
|
106
|
+
**Themeable custom properties:** shared tokens only.
|
|
107
|
+
|
|
108
|
+
**Optional peer deps:** none of its own; the composed `lr-markdown` keeps its `marked`/`dompurify`
|
|
109
|
+
optional-peer fallback.
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
<!-- GENERATED by scripts/build-llms.mjs from llms/media.md — do not edit this file. -->
|
|
2
|
+
|
|
3
|
+
# `lr-animated-image`
|
|
4
|
+
|
|
5
|
+
- **Import** `import '@aceshooting/lyra-ui/components/media/animated-image/animated-image.js';` (registers the tag; side-effect import)
|
|
6
|
+
- **Class** `LyraAnimatedImage`, also available unregistered from `@aceshooting/lyra-ui/components/media/animated-image/animated-image.class.js`
|
|
7
|
+
- **Family** `components/media/` — 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-animated-image`
|
|
14
|
+
|
|
15
|
+
An animated GIF/APNG/WebP with a play/pause control, frozen to a captured still frame at rest and
|
|
16
|
+
automatically under `prefers-reduced-motion: reduce`.
|
|
17
|
+
|
|
18
|
+
**Properties:**
|
|
19
|
+
- `src: string = ''` — re-validated through `safeMediaSrc()` (same allowlist as `lr-media-card`)
|
|
20
|
+
before reaching the real `<img src>`.
|
|
21
|
+
- `alt: string = ''` — falls back to the localized `animatedImageDefaultAlt` when empty; an explicit
|
|
22
|
+
`alt=""` does **not** mark the image decorative.
|
|
23
|
+
- `play: boolean = false` — the caller's *intent*. Not reflected.
|
|
24
|
+
- `playing: boolean` (readonly getter, reflected as a `playing` host attribute) — the *effective*
|
|
25
|
+
state after reduced-motion arbitration: `play && !(respectReducedMotion && <OS prefers reduce>)`.
|
|
26
|
+
Assigning to it is a silent no-op; drive playback via `play`.
|
|
27
|
+
- `respectReducedMotion: boolean = true` (reflected, attribute `respect-reduced-motion`) — while
|
|
28
|
+
`true` and the OS reports `prefers-reduced-motion: reduce`, playback stays frozen and
|
|
29
|
+
`[part="play-button"]` is `disabled` regardless of `play`.
|
|
30
|
+
- `accessibleLabel: string = ''` (attribute `aria-label`) — overrides `[part="play-button"]`'s
|
|
31
|
+
computed Play/Pause label verbatim in *both* states (it does not itself vary by state). Never
|
|
32
|
+
touches the image's `alt`/the canvas's `aria-label`. For state-sensitive custom wording, override
|
|
33
|
+
the `playWithContext`/`pauseWithContext`/`animatedImageDefaultAlt` strings instead.
|
|
34
|
+
|
|
35
|
+
**Methods:** `focus(options?)` and `blur()` forward to the play/pause button.
|
|
36
|
+
|
|
37
|
+
**Events:** `lr-load` (the live `<img>` loaded; fires again on every successful `src` change),
|
|
38
|
+
`lr-error` (native decode failure, or a non-empty `src` that failed the safe-URL check — never for
|
|
39
|
+
an empty `src`), `lr-play`/`lr-pause` (real transitions of the effective `playing` value only, so a
|
|
40
|
+
`play = true` that reduced motion blocks emits nothing, while a live reduced-motion change that
|
|
41
|
+
forces a freeze does emit `lr-pause`); internal `focus`/`blur` are re-dispatched as bubbling,
|
|
42
|
+
composed host events.
|
|
43
|
+
|
|
44
|
+
**Slots:** `play-icon`, `pause-icon` — custom glyphs on `[part="play-button"]` for the
|
|
45
|
+
frozen/paused and playing states. Both are always rendered and toggled via the native `hidden`
|
|
46
|
+
attribute, so slotted content for both stays mounted.
|
|
47
|
+
|
|
48
|
+
**CSS parts:** `base` (positioning context), `image` (the live `<img>`), `canvas` (the
|
|
49
|
+
frozen-frame `<canvas>`, shown in place of `image` while not playing), `control-box` (the
|
|
50
|
+
backgrounded circle around the button; only rendered once loaded and error-free), `play-button`.
|
|
51
|
+
|
|
52
|
+
**Themeable custom properties:** `--lr-animated-image-control-box-size` (default
|
|
53
|
+
`var(--lr-icon-button-size)`), `--lr-animated-image-icon-size` (default
|
|
54
|
+
`calc(var(--lr-icon-button-size) * 0.35)`), `--lr-animated-image-max-height` (default
|
|
55
|
+
`var(--lr-size-20rem)` — caps the rendered media's block-size, same contract as
|
|
56
|
+
`--lr-media-card-max-height`).
|
|
57
|
+
|
|
58
|
+
**Optional peer deps:** none.
|
|
59
|
+
|
|
60
|
+
**Known gotchas:**
|
|
61
|
+
- the freeze frame is captured once per successful `src` load, in the `<img>`'s own `load` handler
|
|
62
|
+
(a DPR-aware `drawImage()`), not re-captured on each pause — pausing always reverts to that first
|
|
63
|
+
frame, never to the frame that was on screen.
|
|
64
|
+
- both `image` and `canvas` stay mounted at all times (never `display: none`/removed) so the
|
|
65
|
+
browser's native decode loop keeps running while visually covered; only opacity and `aria-hidden`
|
|
66
|
+
swap.
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
<!-- GENERATED by scripts/build-llms.mjs from llms/media.md — do not edit this file. -->
|
|
2
|
+
|
|
3
|
+
# `lr-animation`
|
|
4
|
+
|
|
5
|
+
- **Import** `import '@aceshooting/lyra-ui/components/media/animation/animation.js';` (registers the tag; side-effect import)
|
|
6
|
+
- **Class** `LyraAnimation`, also available unregistered from `@aceshooting/lyra-ui/components/media/animation/animation.class.js`
|
|
7
|
+
- **Family** `components/media/` — 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-animation`
|
|
14
|
+
|
|
15
|
+
Declaratively animates one slotted element through the native Web Animations API.
|
|
16
|
+
|
|
17
|
+
**Properties:**
|
|
18
|
+
- `name: LyraAnimationPreset = 'none'` — `'none' | 'fade-in' | 'fade-out' | 'zoom-in' | 'zoom-out' |
|
|
19
|
+
'slide-in-start' | 'slide-in-end' | 'slide-out-start' | 'slide-out-end' | 'slide-in-up' |
|
|
20
|
+
'slide-in-down' | 'bounce' | 'pulse' | 'spin' | 'shake'`. The four `-start`/`-end` slide presets
|
|
21
|
+
are logical: "start" is physically left under `ltr`, right under `rtl`.
|
|
22
|
+
- `keyframes?: Keyframe[]` (attribute: false) — raw WAAPI keyframes; always wins over `name`.
|
|
23
|
+
- `play: boolean = false` (reflected) — playback intent.
|
|
24
|
+
- `delay: number = 0`, `duration: number = 1000`, `endDelay: number = 0` (attribute `end-delay`),
|
|
25
|
+
`easing: string = 'linear'`, `fill: FillMode = 'auto'`, `direction: PlaybackDirection = 'normal'`,
|
|
26
|
+
`iterations: number = Infinity`, `iterationStart: number = 0` (attribute `iteration-start`),
|
|
27
|
+
`playbackRate: number = 1` (attribute `playback-rate`) — straight WAAPI timing. `direction` is
|
|
28
|
+
the WAAPI `PlaybackDirection`, unrelated to text direction.
|
|
29
|
+
- `timingPreset: LyraAnimationTimingPreset = 'custom'` (attribute `timing-preset`, reflected) —
|
|
30
|
+
`'custom' | 'fast' | 'base' | 'ambient'`. Anything other than `'custom'` derives `duration` and
|
|
31
|
+
`easing` from the matching `--lr-transition-*` token (read off computed style and decomposed into
|
|
32
|
+
the numeric ms + easing string WAAPI needs), ignoring the `duration`/`easing` properties.
|
|
33
|
+
- `respectReducedMotion: boolean = true` (attribute `respect-reduced-motion`, reflected) — under
|
|
34
|
+
`prefers-reduced-motion: reduce`, caps playback at one iteration and calls `finish()` immediately
|
|
35
|
+
instead of playing, so the target snaps to its resolved end state; `lr-start`/`lr-finish` still
|
|
36
|
+
fire in order.
|
|
37
|
+
- `playOnVisible: boolean = false` (attribute `play-on-visible`, reflected) — starts playback via
|
|
38
|
+
`IntersectionObserver` once the target intersects. `playOnVisibleRepeat: boolean = false`
|
|
39
|
+
(attribute `play-on-visible-repeat`, reflected) — re-plays on each re-entry and pauses on exit;
|
|
40
|
+
when unset the observer disconnects after the first trigger. `root: Element | null = null` and
|
|
41
|
+
`threshold: number | number[] = 0` (both attribute: false) plus `rootMargin: string = '0px'`
|
|
42
|
+
(attribute `root-margin`) configure that observer.
|
|
43
|
+
- `currentTime: number` — the underlying `Animation.currentTime` (`0` when no animation exists);
|
|
44
|
+
writable, forwarded to the animation when one exists.
|
|
45
|
+
|
|
46
|
+
**Methods:** `start()` (sugar for `play = true` — named `start` because `play` is already a
|
|
47
|
+
property), `pause()` (`play = false`), `finish()`, `cancel()`.
|
|
48
|
+
|
|
49
|
+
**Events:** `lr-start` (a new animation was created and playback began/restarted), `lr-finish`
|
|
50
|
+
(natural end, including the reduced-motion instant-finish path), `lr-cancel` (the public `cancel()`
|
|
51
|
+
method or external cancellation). `lr-finish`/`lr-cancel` both reset `play` to `false`.
|
|
52
|
+
|
|
53
|
+
**Slots:** default slot — the element to animate. A second slotted element is accepted without
|
|
54
|
+
error but ignored.
|
|
55
|
+
|
|
56
|
+
**CSS parts:** none (`:host { display: contents }`; the animated element is light-DOM content).
|
|
57
|
+
|
|
58
|
+
**Themeable custom properties:** `--lr-animation-slide-distance` (default `100%` — travel distance
|
|
59
|
+
for the slide presets), `--lr-animation-zoom-scale` (default `0.5` — start/end scale for
|
|
60
|
+
`zoom-in`/`zoom-out`), `--lr-animation-bounce-height` (default `25%` — peak lift of `bounce`),
|
|
61
|
+
`--lr-animation-shake-distance` (default `4%` — horizontal travel of `shake`).
|
|
62
|
+
|
|
63
|
+
**Optional peer deps:** none.
|
|
64
|
+
|
|
65
|
+
**Known gotchas:**
|
|
66
|
+
- `iterations` defaults to `Infinity` (mirrors the upstream Web Awesome/Shoelace contract) — a named
|
|
67
|
+
preset plays forever unless you set `iterations="1"`.
|
|
68
|
+
- changing any timing/keyframe property rebuilds the animation from scratch; the rebuild's internal
|
|
69
|
+
`cancel()` is deliberately silent (no `lr-cancel`), only the public `cancel()` emits.
|
|
70
|
+
- the slide presets read the inherited text direction only when the animation is (re)built — an
|
|
71
|
+
animation already mid-flight is not re-mirrored if an ancestor `dir` flips.
|
|
72
|
+
- reduced-motion handling is entirely in JS; the shared shadow-DOM reduced-motion CSS block can't
|
|
73
|
+
reach light-DOM slotted content driven by `Element.animate()`.
|
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
<!-- GENERATED by scripts/build-llms.mjs from llms/layout.md — do not edit this file. -->
|
|
2
|
+
|
|
3
|
+
# `lr-app-rail-item`
|
|
4
|
+
|
|
5
|
+
- **Import** `import '@aceshooting/lyra-ui/components/layout/app-rail/app-rail-item.js';` (registers the tag; side-effect import)
|
|
6
|
+
- **Class** `LyraAppRailItem`, also available unregistered from `@aceshooting/lyra-ui/components/layout/app-rail/app-rail-item.class.js`
|
|
7
|
+
- **Family** `components/layout/` — see `llms/index.md` for its siblings
|
|
8
|
+
- **Optional peers** none
|
|
9
|
+
- **Documented with** `lr-app-rail` (same section below)
|
|
10
|
+
- **Library-wide behavior** (events, form association, `locale`/`strings`, tokens, TS types): `llms/shared.md`
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## `lr-app-rail`
|
|
15
|
+
|
|
16
|
+
A responsive navigation rail that adapts across three presentations as the *viewport* narrows (not
|
|
17
|
+
this element's own inline size): `'full'` (nav items show icon + label, inline), `'icon-only'` (a
|
|
18
|
+
narrower inline rail, icons only), and `'mobile'` (hidden behind a toggle button; opening it shows a
|
|
19
|
+
focus-trapped floating overlay over the page). First-party invention (no Web Awesome equivalent).
|
|
20
|
+
Breakpoints are viewport-width `matchMedia()` queries against `icon-only-breakpoint`/
|
|
21
|
+
`mobile-breakpoint`, not a `ResizeObserver` on this element — presentation tracks the actual device/
|
|
22
|
+
window width the way a native OS shell's navigation does, not however much horizontal space a
|
|
23
|
+
particular layout happens to give it. `[part="base"]` (the inline `'full'`/`'icon-only'`
|
|
24
|
+
presentation) and `[part="panel"]` (the mobile overlay) are the *same* element promoted in place
|
|
25
|
+
across modes (mirrors `<lr-widget>`'s fullscreen mode) — never both at once, and slotted nav
|
|
26
|
+
content is never duplicated.
|
|
27
|
+
|
|
28
|
+
Opting in to `resizable` adds a continuously draggable width for the `'full'` state: a
|
|
29
|
+
`[part="resizer"]` handle (pointer-drag and Left/Right-arrow keyboard stepping, RTL-aware) clamped to
|
|
30
|
+
`[minRailWidthPx, maxRailWidthPx]`, with no built-in persistence — a consumer that wants the chosen
|
|
31
|
+
width to survive a reload listens for `lr-rail-resize` and persists `railWidthPx` itself.
|
|
32
|
+
`preferredMode` separately lets a host manually prefer `'full'`/`'icon-only'` for the non-mobile
|
|
33
|
+
breakpoint axis (e.g. a user's own collapse toggle) while `mobile-breakpoint` continues to be tracked
|
|
34
|
+
automatically regardless — it's only consulted while `mode` isn't force-pinned via the `mode`
|
|
35
|
+
accessor itself, which still takes full priority.
|
|
36
|
+
|
|
37
|
+
**Properties:**
|
|
38
|
+
- `mode: AppRailMode` (custom accessor, reflected) — the getter always returns one of the three real
|
|
39
|
+
modes (`'full'|'icon-only'|'mobile'`), never `'auto'`. The setter accepts
|
|
40
|
+
`AppRailModeInput` (`AppRailMode | 'auto'`): assigning `'full'`/`'icon-only'`/`'mobile'` forces
|
|
41
|
+
that mode and stops the element responding to breakpoint changes; assigning the write-only
|
|
42
|
+
sentinel `'auto'` releases the force and immediately re-syncs to the current viewport width,
|
|
43
|
+
resuming automatic tracking. Settable via the `mode` attribute too (`mode="icon-only"`,
|
|
44
|
+
`mode="auto"`).
|
|
45
|
+
- `iconOnlyBreakpoint: string = '960px'` (attribute `icon-only-breakpoint`) — any valid CSS length,
|
|
46
|
+
used directly in a `(max-width: ...)` media query; below it the rail switches from `'full'` to
|
|
47
|
+
`'icon-only'`.
|
|
48
|
+
- `mobileBreakpoint: string = '600px'` (attribute `mobile-breakpoint`) — same mechanism; below it the
|
|
49
|
+
rail switches from `'icon-only'` to `'mobile'`. Should be smaller than `iconOnlyBreakpoint` to
|
|
50
|
+
produce all three states as the viewport narrows.
|
|
51
|
+
- `open: boolean = false` (reflected) — whether the mobile floating overlay is shown. Only meaningful
|
|
52
|
+
while `mode` is `'mobile'` — the value is preserved (not reset) while another mode is active, but
|
|
53
|
+
no overlay chrome renders until `mode` is `'mobile'` again. Set this directly, or use the built-in
|
|
54
|
+
toggle button — there is no separate `show()`/`hide()` pair.
|
|
55
|
+
- `label: string = 'Navigation'` — accessible name for the rail's navigation landmark, and for its
|
|
56
|
+
dialog role while the mobile overlay is open. A host-level `aria-label` attribute (see below)
|
|
57
|
+
takes precedence over this when both are set.
|
|
58
|
+
- `preferredMode?: 'full' | 'icon-only' | null` (attribute `preferred-mode`) — manually prefers
|
|
59
|
+
`'full'` or `'icon-only'` for the non-mobile breakpoint axis, while `mobile-breakpoint` continues to
|
|
60
|
+
be tracked automatically regardless — e.g. a user's manual collapse toggle that should still yield
|
|
61
|
+
to a genuinely too-narrow-for-any-inline-rail viewport. Only consulted while `mode` isn't
|
|
62
|
+
force-pinned via its own accessor (see above) — that continues to take full priority, unchanged.
|
|
63
|
+
Unset (the default, `null`) reproduces the original breakpoint-only behavior exactly.
|
|
64
|
+
- `hideToggle: boolean = false` (reflected, attribute `hide-toggle`) — suppresses the built-in mobile
|
|
65
|
+
`[part='toggle']` hamburger/close button entirely, for a consumer that already owns an external
|
|
66
|
+
mobile-menu toggle wired to this rail's own `open` property. `false` (the default) reproduces the
|
|
67
|
+
exact existing output; note `open` still has no built-in external trigger of its own once this is
|
|
68
|
+
set, since `lr-toggle` only fires from the toggle button being activated.
|
|
69
|
+
- `resizable: boolean = false` (reflected) — opts a continuously draggable width in for the `'full'`
|
|
70
|
+
state, exposing a `[part='resizer']` handle clamped to `[minRailWidthPx, maxRailWidthPx]`. `false`
|
|
71
|
+
(the default) renders no resizer and leaves the fixed-width `--lr-app-rail-width` CSS token
|
|
72
|
+
exactly as before this property existed.
|
|
73
|
+
- `railWidthPx?: number` (attribute `rail-width-px`) — the rail's current width in px while
|
|
74
|
+
`resizable`; settable/gettable directly. Unset defers to `--lr-app-rail-width`'s own resolved
|
|
75
|
+
width.
|
|
76
|
+
- `minRailWidthPx: number = 190` (attribute `min-rail-width-px`) — minimum `railWidthPx` a
|
|
77
|
+
drag/keyboard resize can reach.
|
|
78
|
+
- `maxRailWidthPx: number = 440` (attribute `max-rail-width-px`) — maximum `railWidthPx` a
|
|
79
|
+
drag/keyboard resize can reach.
|
|
80
|
+
- `dragging: boolean = false` (reflected) — `true` for the duration of an active pointer-driven
|
|
81
|
+
resize drag (not a keyboard step); reflected so a consumer (or this component's own styles) can
|
|
82
|
+
suppress `[part='base']`'s `transition: inline-size` during the drag, which otherwise visibly
|
|
83
|
+
"chases" the pointer instead of tracking it 1:1. Effectively read-only (this component owns the
|
|
84
|
+
transitions), but a plain reflected property like every other boolean here.
|
|
85
|
+
|
|
86
|
+
Also settable as a plain `aria-label` attribute (not a reactive property): overrides the computed
|
|
87
|
+
`label`/localized-default accessible name on both the navigation landmark and the mobile dialog
|
|
88
|
+
role, matching `<lr-date-input>`'s `accessibleLabel`.
|
|
89
|
+
|
|
90
|
+
**Events:** `lr-mode-change` (`detail: AppRailModeChangeDetail` = `{ mode: AppRailMode }`; the
|
|
91
|
+
effective mode changed, whether from a breakpoint crossing or an explicit `mode` assignment — not
|
|
92
|
+
fired for a redundant reassignment to the mode already in effect), `lr-toggle`
|
|
93
|
+
(`detail: AppRailToggleDetail` = `{ open: boolean }`; the mobile overlay opened or closed — via the
|
|
94
|
+
built-in toggle button, Escape, a backdrop click, a nav-item click while open, or a breakpoint/forced
|
|
95
|
+
mode change leaving `'mobile'` while open — not fired when a consumer sets `open` directly),
|
|
96
|
+
`lr-rail-resize` (`detail: AppRailResizeDetail` = `{ widthPx: number }`; the `resizable` rail's
|
|
97
|
+
width changed via drag or keyboard stepping — not fired when a consumer sets `railWidthPx` directly).
|
|
98
|
+
|
|
99
|
+
**Slots:** default (nav items — generic slotted content, e.g. `<a>`/`<button>` elements the consumer
|
|
100
|
+
builds with its own icon+label structure; clicking anywhere in this slot closes the mobile overlay if
|
|
101
|
+
open), `header` (logo/brand content, shown above the nav items in every mode), `footer` (a trailing
|
|
102
|
+
user/settings trigger, shown below the nav items).
|
|
103
|
+
|
|
104
|
+
**CSS parts:** `base`, `header`, `nav`, `footer`, `toggle` (hidden via CSS outside `'mobile'` mode, or
|
|
105
|
+
entirely via `hideToggle`), `backdrop`, `panel` (`base`/`panel` are mutually exclusive on the same
|
|
106
|
+
underlying element — see above), `resizer` (the `resizable` opt-in's drag handle, only rendered while
|
|
107
|
+
`resizable` and `mode` is `'full'`; its hit target is `--lr-icon-button-size`-wide), `resizer-track`
|
|
108
|
+
(the slim 3px visible drag line centered inside that hit target, tinted `--lr-color-brand` on hover).
|
|
109
|
+
|
|
110
|
+
**Themeable custom properties:** `--lr-app-rail-width` (default `15rem` — the inline rail width in
|
|
111
|
+
`'full'` mode), `--lr-app-rail-icon-width` (default `4rem` — the inline rail width in `'icon-only'`
|
|
112
|
+
mode), `--lr-app-rail-mobile-width` (default `18rem`, capped at `85vw` — the mobile overlay panel
|
|
113
|
+
width), `--lr-app-rail-overlay-color` (default `var(--lr-color-overlay)` — the mobile backdrop scrim
|
|
114
|
+
color; component-specific since no shared token exists), plus shared tokens (`--lr-color-border`,
|
|
115
|
+
`--lr-color-surface`, `--lr-color-text`, `--lr-color-brand`, `--lr-color-brand-quiet`,
|
|
116
|
+
`--lr-space-*`, `--lr-radius`, `--lr-shadow`, `--lr-icon-button-size`,
|
|
117
|
+
`--lr-focus-ring-*`, `--lr-transition-base`). `resizable`'s width is driven entirely by
|
|
118
|
+
`railWidthPx`'s inline `inline-size` style rather than a new custom property.
|
|
119
|
+
|
|
120
|
+
**Optional peer deps:** none.
|
|
121
|
+
|
|
122
|
+
```html
|
|
123
|
+
<lr-app-rail label="Main navigation" icon-only-breakpoint="960px" mobile-breakpoint="600px" resizable>
|
|
124
|
+
<span slot="header"><img src="/logo.svg" alt="Acme" /></span>
|
|
125
|
+
<a href="/inbox" aria-label="Inbox"><svg aria-hidden="true">...</svg><span>Inbox</span></a>
|
|
126
|
+
<a href="/settings" aria-label="Settings"><svg aria-hidden="true">...</svg><span>Settings</span></a>
|
|
127
|
+
<span slot="footer"><button>Profile</button></span>
|
|
128
|
+
</lr-app-rail>
|
|
129
|
+
<script type="module">
|
|
130
|
+
const rail = document.querySelector('lr-app-rail');
|
|
131
|
+
rail.addEventListener('lr-rail-resize', (e) => localStorage.setItem('railWidthPx', String(e.detail.widthPx)));
|
|
132
|
+
</script>
|
|
133
|
+
```
|
|
134
|
+
```ts
|
|
135
|
+
rail.mode = 'icon-only'; // force a presentation regardless of viewport width
|
|
136
|
+
rail.mode = 'auto'; // release the force, resume live breakpoint tracking
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
The package root also exports a pure `computeAppRailMode(iconOnlyMatches: boolean, mobileMatches:
|
|
140
|
+
boolean, preferredMode?: 'full' | 'icon-only' | null): AppRailMode` resolver (plus the
|
|
141
|
+
`AppRailMode`/`AppRailModeInput`/`AppRailModeChangeDetail`/`AppRailToggleDetail`/`AppRailResizeDetail`
|
|
142
|
+
types) — the same logic the element's internal `matchMedia` listeners call, exposed standalone so a
|
|
143
|
+
consumer can compute or unit-test the same resolution without a real browser window. `mobileMatches`
|
|
144
|
+
wins over everything else when true (the viewport is narrower than both breakpoints at once);
|
|
145
|
+
otherwise `preferredMode` (when set) wins over `iconOnlyMatches`.
|
|
146
|
+
|
|
147
|
+
The mobile state keeps its own panel template rather than nesting `<lr-dialog>`, while its modal
|
|
148
|
+
behavior participates in the shared overlay stack. It is a plain `<div>` with an explicit
|
|
149
|
+
`role="navigation"` (swapping to `role="dialog"` while the overlay is open) rather than a literal
|
|
150
|
+
`<nav>` tag, since a
|
|
151
|
+
`<nav>`'s implicit role can't be overridden to `role="dialog"` without an `aria-allowed-role`
|
|
152
|
+
violation. In `'icon-only'` mode, slotted nav items lose their visible text label — give each one a
|
|
153
|
+
real accessible name (`aria-label`, visually hidden text, or `title`) regardless, since this
|
|
154
|
+
component only lays out whatever is slotted and can't inspect or fix up a consumer's own markup.
|
|
155
|
+
|
|
156
|
+
**Known gotchas:**
|
|
157
|
+
- `mode`'s setter accepts the wider `AppRailModeInput` (including the `'auto'` sentinel) but the
|
|
158
|
+
getter's return type is the narrower `AppRailMode` — assigning `'auto'` is a one-way instruction,
|
|
159
|
+
not a value read back later; there is no `isForced`-style property to check whether the rail is
|
|
160
|
+
currently locked to a mode or tracking the viewport.
|
|
161
|
+
- reassigning `icon-only-breakpoint`/`mobile-breakpoint` after first render tears down and rebuilds
|
|
162
|
+
the `matchMedia` listeners, but does not itself un-force a previously-forced `mode` — if a consumer
|
|
163
|
+
set `mode = 'icon-only'`, changing the breakpoints won't resume auto-tracking until `mode = 'auto'`
|
|
164
|
+
is set explicitly.
|
|
165
|
+
- leaving `'mobile'` mode while `open` (via a breakpoint crossing or a forced `mode` reassignment)
|
|
166
|
+
auto-closes the overlay through the same path as the toggle button, so `lr-toggle` still fires
|
|
167
|
+
and the scroll lock/focus trap still release normally — a consumer listening only for explicit
|
|
168
|
+
toggle-button clicks would miss this closure.
|
|
169
|
+
- the mobile panel is also given `inert` whenever `mode === 'mobile'` and `open` is `false` — it's
|
|
170
|
+
removed from the accessibility tree and tab order via `inert` at the same time it's hidden visually
|
|
171
|
+
via `transform: translateX(-100%)`, both applied simultaneously rather than one implying the other.
|
|
172
|
+
- the offscreen slide direction for the mobile panel is flipped for RTL via a `:dir(rtl)` CSS
|
|
173
|
+
selector (`translateX(100%)`), not through the shared `internal/rtl.ts` JS helper used for pointer/
|
|
174
|
+
keyboard math elsewhere in this library — a physical `transform` isn't expressible with logical
|
|
175
|
+
properties, so this one case is handled purely in CSS.
|
|
176
|
+
- a reconnect that preserves the same element instance (e.g. a drag-and-drop reparent) resumes its
|
|
177
|
+
shared overlay registration and re-acquires the scroll lock if the overlay was still active
|
|
178
|
+
across the move — `disconnectedCallback`/`connectedCallback` fire back-to-back with no update in
|
|
179
|
+
between, so `willUpdate()` alone wouldn't otherwise notice.
|
|
180
|
+
- `resizable`'s drag handle is pointer-only (`pointerdown`/`pointermove`/`pointerup`/
|
|
181
|
+
`pointercancel`/`lostpointercapture`) plus discrete Left/Right-arrow keyboard stepping (8px per
|
|
182
|
+
press, RTL-aware) — there's no dedicated touch gesture beyond what Pointer Events already unify.
|
|
183
|
+
- reassigning `railWidthPx` while `resizable` is unset has no visible effect on the rendered width —
|
|
184
|
+
the fixed-width `--lr-app-rail-width` token still governs `'full'`-mode width until `resizable`
|
|
185
|
+
is also set.
|
|
186
|
+
- reassigning `icon-only-breakpoint`/`mobile-breakpoint`/`preferredMode` does not itself un-force a
|
|
187
|
+
previously-forced `mode` — same caveat as above, `preferredMode` is only consulted while `mode`
|
|
188
|
+
isn't force-pinned.
|
|
189
|
+
|
|
190
|
+
### `lr-app-rail-item`
|
|
191
|
+
|
|
192
|
+
An explicit navigation item for `<lr-app-rail>`. It renders an accessible link when `href` is
|
|
193
|
+
set and enabled, otherwise a button; the rail can add its `icon-only` presentation state without
|
|
194
|
+
removing the label from the accessibility tree.
|
|
195
|
+
|
|
196
|
+
**Properties:**
|
|
197
|
+
- `href: string = ''` — optional destination. Without it, the item renders as a button.
|
|
198
|
+
- `target: string = ''` — optional link target.
|
|
199
|
+
- `disabled: boolean = false` (reflected) — prevents activation while retaining the item in the rail.
|
|
200
|
+
- `active: boolean = false` (reflected) — marks this as the destination for the current page/view;
|
|
201
|
+
reflects `aria-current="page"` on `[part='base']` and drives the active visual treatment. The rail
|
|
202
|
+
has no built-in routing, so the consumer sets this per item (e.g. by comparing `href` against the
|
|
203
|
+
current location).
|
|
204
|
+
- `tooltip: boolean = false` (reflected) — opt-in hover/focus flyout (`[part='tooltip']`) showing
|
|
205
|
+
this item's label text while the rail's `icon-only` mode (set externally by the parent
|
|
206
|
+
`<lr-app-rail>` as the viewport narrows) hides it from view. No effect outside icon-only mode,
|
|
207
|
+
since the label is already visible there. `false` (the default) reproduces the exact existing
|
|
208
|
+
output.
|
|
209
|
+
|
|
210
|
+
**Slots:** default (the visible label), `icon` (the leading icon, hidden from assistive technology
|
|
211
|
+
when the item has an explicit `aria-label`).
|
|
212
|
+
|
|
213
|
+
**CSS parts:** `base`, `icon`, `label`, `tooltip` (the hover/focus label flyout, only rendered while
|
|
214
|
+
`tooltip` is set, the item is `icon-only`, and it is hovered or focused).
|
|
215
|
+
|
|
216
|
+
**Optional peer deps:** none.
|
|
217
|
+
|
|
218
|
+
---
|