@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,91 @@
|
|
|
1
|
+
<!-- GENERATED by scripts/build-llms.mjs from llms/forms.md — do not edit this file. -->
|
|
2
|
+
|
|
3
|
+
# `lr-swatch-picker`
|
|
4
|
+
|
|
5
|
+
- **Import** `import '@aceshooting/lyra-ui/components/forms/swatch-picker/swatch-picker.js';` (registers the tag; side-effect import)
|
|
6
|
+
- **Class** `LyraSwatchPicker`, also available unregistered from `@aceshooting/lyra-ui/components/forms/swatch-picker/swatch-picker.class.js`
|
|
7
|
+
- **Family** `components/forms/` — 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-swatch-picker`
|
|
14
|
+
|
|
15
|
+
A single-select picker over a small, fixed set of color swatches with the WAI-ARIA APG
|
|
16
|
+
`radiogroup` contract built in: `role="radiogroup"`/`role="radio"`, roving tabindex, automatic
|
|
17
|
+
activation (click or arrow-key move both select immediately, like a native radio group), cyclic
|
|
18
|
+
Arrow/Home/End navigation. First-party invention (no Web Awesome equivalent). Distinct from
|
|
19
|
+
`lr-color-picker`'s freeform native color input — this picks exactly one of N designer-chosen
|
|
20
|
+
named colors, the shape apps otherwise hand-roll as a row of round accent-color buttons.
|
|
21
|
+
|
|
22
|
+
**Properties:**
|
|
23
|
+
- `options: SwatchOption[] = []` (attribute: false) — `SwatchOption { value: string; color: string;
|
|
24
|
+
label: string; icon?: unknown }`; `color` is any CSS color string used as the swatch fill, `label`
|
|
25
|
+
is each swatch's accessible name and `title`. `icon` is an optional custom shape (e.g. a gem
|
|
26
|
+
glyph) rendered *instead of* the plain filled circle; the swatch sets `color: <option color>` so a
|
|
27
|
+
`currentColor`-based SVG picks the option's color up automatically, matching
|
|
28
|
+
`<lr-segmented>`'s `SegmentedItem.icon`.
|
|
29
|
+
- `value: string | null = null` — the currently selected option's `value` (controlled); `null`
|
|
30
|
+
leaves nothing selected while keeping the first swatch tabbable.
|
|
31
|
+
- `label: string = ''` — accessible name copied to the internal `role="radiogroup"`; when empty, a
|
|
32
|
+
host-level `aria-label` is used as a fallback.
|
|
33
|
+
|
|
34
|
+
**Events:** `lr-change` (`detail: { value }`) — fired only when the selected value actually
|
|
35
|
+
changes via click or keyboard (re-selecting the current swatch is a no-op).
|
|
36
|
+
|
|
37
|
+
**Slots:** none.
|
|
38
|
+
|
|
39
|
+
**CSS parts:** `base` (the `role="radiogroup"` root), `swatch` (a single `role="radio"` color
|
|
40
|
+
swatch's interactive hit target, floored at the shared `--lr-icon-button-size` tap size; the
|
|
41
|
+
selected one is `[part='swatch'][aria-checked='true']`), `swatch-fill` (the compact
|
|
42
|
+
`--lr-size-1-5rem` filled circle inside it, rendered when the option has no `icon`), `swatch-icon`
|
|
43
|
+
(the option's `icon` shape, rendered in its place when it has one). Exactly one of
|
|
44
|
+
`swatch-fill`/`swatch-icon` is mounted per swatch, so the two never coexist.
|
|
45
|
+
|
|
46
|
+
**Themeable custom properties:** `--lr-swatch-picker-selected-color` (ring color around the
|
|
47
|
+
selected swatch, defaults to `--lr-color-brand`, themeable independently of the focus ring),
|
|
48
|
+
`--lr-swatch-picker-selected-blur` (default `0` — a crisp ring; set a real length such as `0.4rem`
|
|
49
|
+
for a soft glow. It is the blur radius of `swatch-fill`'s `box-shadow` ring, and of the equivalent
|
|
50
|
+
`drop-shadow()` used for `swatch-icon`, since `box-shadow` can't follow a slotted icon's real
|
|
51
|
+
shape), `--lr-swatch-picker-shine-duration` (default `0s`, a no-op; set a duration such as `1.6s`
|
|
52
|
+
for a looping brighten-and-settle pulse on the selected swatch. It drives a separate
|
|
53
|
+
`filter: brightness()` keyframe rather than `box-shadow`, so it composes with the blur token and
|
|
54
|
+
works identically for a fill and an icon; disabled outright under `prefers-reduced-motion: reduce`,
|
|
55
|
+
which also drops the hover/selection scale transition); plus
|
|
56
|
+
shared tokens — `--lr-color-border`/`-brand`, `--lr-icon-button-size`, `--lr-space-xs`,
|
|
57
|
+
`--lr-size-1-5rem`, `--lr-border-width-thin`/`-thick`, `--lr-radius`, `--lr-transition-fast`,
|
|
58
|
+
`--lr-focus-ring-*`.
|
|
59
|
+
|
|
60
|
+
**Optional peer deps:** none.
|
|
61
|
+
|
|
62
|
+
```html
|
|
63
|
+
<lr-swatch-picker label="Accent color"></lr-swatch-picker>
|
|
64
|
+
<script type="module">
|
|
65
|
+
const picker = document.querySelector('lr-swatch-picker');
|
|
66
|
+
picker.options = [
|
|
67
|
+
{ value: 'blue', color: '#0969da', label: 'Blue' },
|
|
68
|
+
{ value: 'green', color: '#1a7f37', label: 'Green' },
|
|
69
|
+
{ value: 'purple', color: '#8250df', label: 'Purple' },
|
|
70
|
+
];
|
|
71
|
+
picker.value = 'green';
|
|
72
|
+
picker.addEventListener('lr-change', (e) => console.log(e.detail.value));
|
|
73
|
+
</script>
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
**Known gotchas:**
|
|
77
|
+
- arrow-key navigation cycles (past the last swatch wraps to the first, and vice versa) rather than
|
|
78
|
+
clamping, and self-selects on move — arrow-navigating to a swatch immediately updates `value` and
|
|
79
|
+
fires `lr-change`, there's no separate commit step.
|
|
80
|
+
- under RTL (nearest `dir="rtl"` ancestor) `ArrowLeft`/`ArrowRight` swap which direction they move.
|
|
81
|
+
- each swatch's fill comes from its option's `color`, applied through a per-swatch custom property
|
|
82
|
+
set inline on `[part='swatch']` and read by `[part='swatch-fill']`, so a consumer's
|
|
83
|
+
`::part(swatch-fill)` `background-color` rule can still override it.
|
|
84
|
+
- style the selected state through `--lr-swatch-picker-selected-color`/`-selected-blur`/
|
|
85
|
+
`-shine-duration`, not through `::part(swatch)[aria-checked='true']` from outside: the CSS Shadow
|
|
86
|
+
Parts spec only allows a fixed set of pseudo-classes after `::part()`, not arbitrary attribute
|
|
87
|
+
selectors, so that combinator can silently fail to match depending on the engine.
|
|
88
|
+
- the semantic `radiogroup` lives inside shadow DOM. Set `label` (preferred for reactive code) or a
|
|
89
|
+
host `aria-label`; the component deliberately forwards the resulting name to that internal role.
|
|
90
|
+
|
|
91
|
+
---
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
<!-- GENERATED by scripts/build-llms.mjs from llms/forms.md — do not edit this file. -->
|
|
2
|
+
|
|
3
|
+
# `lr-switch`
|
|
4
|
+
|
|
5
|
+
- **Import** `import '@aceshooting/lyra-ui/components/forms/switch/switch.js';` (registers the tag; side-effect import)
|
|
6
|
+
- **Class** `LyraSwitch`, also available unregistered from `@aceshooting/lyra-ui/components/forms/switch/switch.class.js`
|
|
7
|
+
- **Family** `components/forms/` — 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-switch`
|
|
14
|
+
|
|
15
|
+
A boolean toggle-switch form control. `role="switch"` with `aria-checked` read as an on/off state
|
|
16
|
+
rather than checked/unchecked, and no indeterminate state. Structurally the same idea as
|
|
17
|
+
`<lr-checkbox>` (form-associated via `ElementInternals`, click and Space/Enter both toggle).
|
|
18
|
+
Ships an opt-in `hint`/`errorText` form-control chrome (props + matching named slots + `hint`/`error`
|
|
19
|
+
CSS parts), mirroring `<lr-select>`'s pattern for those two pieces — left unset, neither renders.
|
|
20
|
+
Deliberately no separate top-of-field `label` prop/slot/part: the default slot already is this
|
|
21
|
+
control's visible, clickable label (same as `<lr-checkbox>`).
|
|
22
|
+
|
|
23
|
+
**Properties:**
|
|
24
|
+
- `checked: boolean = false` (reflected)
|
|
25
|
+
- `disabled: boolean = false` (reflected)
|
|
26
|
+
- `required: boolean = false` (reflected — enforced via `internals.setValidity()`)
|
|
27
|
+
- `name: string = ''`
|
|
28
|
+
- `value: string = 'on'` — only contributed to form submission while `checked`
|
|
29
|
+
- `hint: string = ''` — hint text below the switch. Unset: no hint chrome renders.
|
|
30
|
+
- `errorText: string = ''` (attribute `error-text`) — error text below the switch (overridden by
|
|
31
|
+
slotted `error` content). Unset: no error chrome renders.
|
|
32
|
+
|
|
33
|
+
**Events:** `lr-change` (`detail: { checked: boolean }`) — fired on a user toggle (click or
|
|
34
|
+
Space/Enter); not fired for a programmatic `.checked` assignment.
|
|
35
|
+
|
|
36
|
+
**Methods:** `focus(options?)` and `blur()` forward to the internal switch control.
|
|
37
|
+
|
|
38
|
+
**Slots:**
|
|
39
|
+
- default — label text, rendered next to the track. Clicking it toggles the switch, the same as
|
|
40
|
+
clicking a checkbox's associated `<label>`. If left empty, set `aria-label` on the host so the
|
|
41
|
+
control still has an accessible name.
|
|
42
|
+
- `hint` — custom hint content.
|
|
43
|
+
- `error` — custom error content.
|
|
44
|
+
|
|
45
|
+
**CSS parts:** `form-control` (the outer wrapper around the switch, error and hint), `base` (the
|
|
46
|
+
whole interactive control, `role="switch"`), `track` (the pill-shaped background), `thumb` (the
|
|
47
|
+
circular knob that slides across the track), `label` (wrapper around the default slot), `hint` (the
|
|
48
|
+
hint message), `error` (the error message)
|
|
49
|
+
|
|
50
|
+
**Themeable custom properties:** `--lr-switch-track-inline-size` (default `2.25rem`),
|
|
51
|
+
`--lr-switch-track-block-size` (default `1.25rem`), `--lr-switch-thumb-offset` (default
|
|
52
|
+
`2px`) — component-local geometry knobs, set on `:host`, since a fully-rounded pill/thumb needs
|
|
53
|
+
a radius well past the shared `--lr-radius` default — plus shared tokens
|
|
54
|
+
`--lr-space-s`, `--lr-color-border/-brand/-surface/-text`,
|
|
55
|
+
`--lr-transition-fast`, `--lr-focus-ring-width/-color/-offset`, `--lr-opacity-disabled`.
|
|
56
|
+
|
|
57
|
+
**Optional peer deps:** none.
|
|
58
|
+
|
|
59
|
+
```html
|
|
60
|
+
<lr-switch name="notifications" checked>Enable notifications</lr-switch>
|
|
61
|
+
<script type="module">
|
|
62
|
+
document
|
|
63
|
+
.querySelector('lr-switch')
|
|
64
|
+
.addEventListener('lr-change', (e) => console.log(e.detail.checked));
|
|
65
|
+
</script>
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
Form-associated the same way as `<lr-checkbox>`: a directly-attached `ElementInternals` with a
|
|
69
|
+
hand-rolled `updateValidity()`, not the shared `FormAssociated` mixin. The thumb animates the
|
|
70
|
+
logical `inset-inline-start` property (not a physical `transform: translateX()`), so the slide
|
|
71
|
+
direction mirrors correctly under `dir="rtl"`.
|
|
72
|
+
Session-history/autofill restoration uses the same explicit `checked`/`unchecked` state tokens as
|
|
73
|
+
checkbox and does not emit `lr-change`.
|
|
74
|
+
|
|
75
|
+
**Known gotchas:**
|
|
76
|
+
- `formResetCallback()` restores `checked` to the value captured from the declarative `checked`
|
|
77
|
+
attribute at first connect (same one-shot-flag capture as `<lr-checkbox>`) — a later `.checked =
|
|
78
|
+
true` property assignment never redefines what `form.reset()` restores to.
|
|
79
|
+
- The rendered `aria-label` is copied from the host's own `aria-label` attribute at render time; with
|
|
80
|
+
neither that nor slotted label text, the control has no accessible name.
|
|
81
|
+
|
|
82
|
+
---
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
<!-- GENERATED by scripts/build-llms.mjs from llms/data.md — do not edit this file. -->
|
|
2
|
+
|
|
3
|
+
# `lr-table`
|
|
4
|
+
|
|
5
|
+
- **Import** `import '@aceshooting/lyra-ui/components/data/table/table.js';` (registers the tag; side-effect import)
|
|
6
|
+
- **Class** `LyraTable`, also available unregistered from `@aceshooting/lyra-ui/components/data/table/table.class.js`
|
|
7
|
+
- **Family** `components/data/` — see `llms/index.md` for its siblings
|
|
8
|
+
- **Optional peers** none
|
|
9
|
+
- **Library-wide behavior** (events, form association, `locale`/`strings`, tokens, TS types): `llms/shared.md`
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## `lr-table`
|
|
14
|
+
|
|
15
|
+
Sort/select-aware data table. Sorting remains consumer-controlled; optional filtering, pagination,
|
|
16
|
+
and loading chrome are built in while remaining controlled at the public API boundary. A
|
|
17
|
+
`columns[].heatValue`-opted-in heat-tint mode paints a shared, normalized color-mix background across
|
|
18
|
+
every tinted cell (auto-derived domain, or overridden via `heatTintScale`); `rowTotal`/`grandTotal`
|
|
19
|
+
add a trailing totals column mirroring `expandedContent`'s leading one — `rowTotal(row)` renders
|
|
20
|
+
per-row, `grandTotal(rows)` renders at its intersection with the footer row — both sharing `footer`'s
|
|
21
|
+
own "consumer computes/renders" contract rather than assuming addition.
|
|
22
|
+
|
|
23
|
+
**Properties:**
|
|
24
|
+
- `columns: TableColumn<T>[] = []` (attribute: false) — `{ key, label, headerCell?, width?,
|
|
25
|
+
minWidth?, maxWidth?, resizable?, sortable?, align?: 'start'|'end', priority?: 'medium'|'low', sticky?: boolean |
|
|
26
|
+
'start' | 'end', footer?, cellStyle?, heatValue?, cell: (row) => unknown }` —
|
|
27
|
+
`priority` progressively hides that column via a `@container` query as `[part='base']` narrows
|
|
28
|
+
(`'low'` hides first, under a ~900px container width; `'medium'` next, under ~640px; both
|
|
29
|
+
breakpoints are fixed in `table.styles.ts`, not themeable tokens), reversible via
|
|
30
|
+
`[part='reveal-columns-button']`; `sticky` pins that column's header/cells to the logical start
|
|
31
|
+
(`true`/`'start'`) or end edge while the table scrolls horizontally — multiple sticky columns stack
|
|
32
|
+
in logical order (each measures every earlier sticky column's rendered width via
|
|
33
|
+
`--lr-table-sticky-offset`) instead of overlapping at the same edge; `footer` renders a
|
|
34
|
+
sticky-bottom footer cell for that column, computed from every currently-rendered row (post-sort,
|
|
35
|
+
pre-pagination) — e.g. a column total — omit it for a column with no footer value, and a
|
|
36
|
+
`[part='foot']` (`<tfoot>`) only renders at all when at least one column defines `footer`;
|
|
37
|
+
`heatValue(row) => number | null | undefined` opts a column into heat-tint mode: its presence on
|
|
38
|
+
any column is the opt-in signal (no separate boolean), a `null`/`undefined` return excludes that
|
|
39
|
+
cell from both the domain and the tint ("no data", not "zero"), and every `heatValue`-defining
|
|
40
|
+
column shares one normalized `color-mix()` background scale (see `heatTintScale` below) painted
|
|
41
|
+
via the retheme-able `--lr-table-heat-tint-lo`/`-hi` custom properties, matching `lr-heatmap`'s
|
|
42
|
+
own ramp-token convention; `cellStyle` is applied directly to the generated `<td>` via `styleMap` — e.g. a computed heat-tint
|
|
43
|
+
background a `cell()`-returned inner element can't paint into the cell's own padding — omit it for
|
|
44
|
+
no per-cell style override (the default, unchanged output); `editable` enables double-click
|
|
45
|
+
editing, `editValue` supplies the editor value, and `editType` selects `text` or `number`
|
|
46
|
+
`resizable` adds a focusable separator `[part='resize-handle']` and emits `lr-column-resize` with
|
|
47
|
+
the live width in CSS pixels. Drag it, or use logical ArrowLeft/ArrowRight for 10px steps (mirrored
|
|
48
|
+
under RTL), Shift+Arrow for 50px steps, Home for the minimum, and End for an explicit pixel
|
|
49
|
+
`maxWidth`; explicit pixel `minWidth`/`maxWidth` values bound both input paths. The separator
|
|
50
|
+
exposes its current/minimum/bounded-maximum pixel width through ARIA value attributes.
|
|
51
|
+
- `columnsHidden: boolean = false` (attribute `columns-hidden`, reflected) — computed/read-only: true
|
|
52
|
+
when a `priority` column is *actually* hidden right now by the `@container` breakpoints above, or
|
|
53
|
+
`showAllColumns` force-visible mode is currently active. Measured via a `ResizeObserver` on
|
|
54
|
+
`[part='base']` plus a post-render DOM check, so it settles one render cycle after a `columns`/
|
|
55
|
+
`rows`/width change lands — poll for the settled value (e.g. `await el.updateComplete;` twice, or
|
|
56
|
+
`waitUntil()`) rather than assuming a single `updateComplete` covers it. Setting it directly has no
|
|
57
|
+
lasting effect; it's recomputed on the next render or resize. `[part='reveal-columns-button']` now
|
|
58
|
+
renders exactly when `columnsHidden` is true — no longer whenever any column merely *declares* a
|
|
59
|
+
`priority` regardless of whether anything is actually hidden
|
|
60
|
+
- `rows: T[] = []` (attribute: false)
|
|
61
|
+
- `sortKey: string = ''` (attribute `sort-key`)
|
|
62
|
+
- `sortDir: 'asc'|'desc' = 'asc'` (attribute `sort-dir`)
|
|
63
|
+
- `rowKey?: (row: T) => string | number` (attribute: false) — derives each row's stable identity for
|
|
64
|
+
DOM-reconciliation and the delegated row click/keydown lookup; falls back to the row's array index
|
|
65
|
+
when omitted, which is only safe while `rows` never reorders — set it whenever `rows` can be
|
|
66
|
+
sorted/filtered/re-ordered across renders, or selection/click can silently attach to the wrong row
|
|
67
|
+
- `selectedKey: string | number | null = null` (attribute: false) — **single**-selection only
|
|
68
|
+
- `selectionMode: 'none'|'single'|'multiple' = 'none'` (attribute `selection-mode`, reflected) —
|
|
69
|
+
opt-in self-managed row selection; the default remains presentational
|
|
70
|
+
- `selectedKeys: Set<string | number> = new Set()` (attribute: false) — the selected raw row keys
|
|
71
|
+
used by multiple selection
|
|
72
|
+
- `filterable: boolean = false` (attribute `filterable`, reflected) — renders a localized search
|
|
73
|
+
field above the grid
|
|
74
|
+
- `filterText: string = ''` (attribute `filter-text`) — controlled filter text
|
|
75
|
+
- `filter?: (row: T, text: string) => boolean` (attribute: false) — typed predicate used by the
|
|
76
|
+
filter field; when omitted, rows are matched against their JSON representation
|
|
77
|
+
- `filterLabel: string = ''` (attribute `filter-label`) and `filterPlaceholder: string = ''`
|
|
78
|
+
(attribute `filter-placeholder`) — optional localized-label overrides
|
|
79
|
+
- `spellcheck: boolean = true`, `autocapitalize: string = ''`, `autoCorrect: string = ''`
|
|
80
|
+
(attribute `autocorrect`) — forwarded to the filter input and, for a `'text'` (the default)
|
|
81
|
+
`editType`, the inline cell editor; no effect on a `'number'` cell editor. `spellcheck="false"`
|
|
82
|
+
is parsed as `false` via a string-aware converter (Lit's default presence-based boolean
|
|
83
|
+
converter would otherwise treat any attribute value, including the literal string `"false"`, as
|
|
84
|
+
`true`).
|
|
85
|
+
- `loading: boolean = false` (attribute `loading`, reflected) and `loadingLabel: string = ''`
|
|
86
|
+
(attribute `loading-label`) — renders a busy spinner and suppresses the grid while loading
|
|
87
|
+
- `pageSize: number = 0` (attribute `page-size`) — positive values enable controlled pagination;
|
|
88
|
+
zero disables the pagination footer
|
|
89
|
+
- `page: number = 1` (attribute `page`, reflected) — controlled current page
|
|
90
|
+
- `totalItems: number = -1` (attribute `total-items`) — server-side total item count; `-1` derives
|
|
91
|
+
the total from filtered rows
|
|
92
|
+
- `paginationMode: 'client'|'server' = 'client'` (attribute `pagination-mode`, reflected) — client
|
|
93
|
+
mode slices rows; server mode renders the supplied page unchanged
|
|
94
|
+
- Editable columns emit `lr-cell-edit` on commit and never mutate the supplied row object.
|
|
95
|
+
- `groupBy?: (row: T) => string | number` (attribute: false) — inserts a non-focusable full-width
|
|
96
|
+
group row before each group
|
|
97
|
+
- `groupLabel?: (key: string | number, rows: T[]) => unknown` (attribute: false) — custom group
|
|
98
|
+
header content; without it, the group key is rendered as text
|
|
99
|
+
- `expandedContent?: (row: T) => unknown` (attribute: false) — enables a leading expand toggle and
|
|
100
|
+
renders a full-width detail row beneath expanded records
|
|
101
|
+
- `canExpand?: (row: T) => boolean` (attribute: false) — optional per-row gate for expansion
|
|
102
|
+
- `expandedKeys: Set<string | number> = new Set()` (attribute: false) — consumer-controlled expanded
|
|
103
|
+
state; update it in response to `lr-row-expand-toggle`
|
|
104
|
+
- `hasMore: boolean = false` (attribute `has-more`, reflected)
|
|
105
|
+
- `moreLabel: string = 'Load more'` (attribute `more-label`)
|
|
106
|
+
- `emptyHeading: string = 'No data'` (attribute `empty-heading`)
|
|
107
|
+
- `emptyDescription: string = ''` (attribute `empty-description`)
|
|
108
|
+
- `noColumnsHeading: string = 'No columns configured'` (attribute `no-columns-heading`)
|
|
109
|
+
- `noColumnsDescription: string = ''` (attribute `no-columns-description`)
|
|
110
|
+
- `revealColumnsLabel: string = 'Show all columns'` (attribute `reveal-columns-label` — the
|
|
111
|
+
reveal-button's label while `priority`-hidden columns are hidden)
|
|
112
|
+
- `hideColumnsLabel: string = 'Show fewer columns'` (attribute `hide-columns-label` — the same
|
|
113
|
+
button's label once they've been revealed)
|
|
114
|
+
- `showAllColumns: boolean = false` (attribute `show-all-columns`, reflected) — forces responsive
|
|
115
|
+
priority columns visible and is updated by the built-in reveal button
|
|
116
|
+
- `heatTintScale?: { min?: number; max?: number }` (attribute: false) — overrides the auto-derived
|
|
117
|
+
heat-tint domain (min/max of every `heatValue` result across every currently-rendered row —
|
|
118
|
+
post-sort, pre-pagination, the same rows `footer(rows)` already sees). Unset (the default) computes
|
|
119
|
+
the domain automatically from the data, spanning every `heatValue`-defining column together — a
|
|
120
|
+
single shared scale across the whole grid, not one scale per column
|
|
121
|
+
- `rowTotal?: (row: T) => unknown` (attribute: false) — renders a trailing `<td>`
|
|
122
|
+
(`[part='row-total-cell']`) on every body row holding this row's total. Same "consumer
|
|
123
|
+
computes/renders, table only positions" contract as the existing per-column `footer(rows)` — does
|
|
124
|
+
not assume addition, so a non-sum aggregate works identically. Omit for no trailing column at all
|
|
125
|
+
(unchanged output)
|
|
126
|
+
- `grandTotal?: (rows: T[]) => unknown` (attribute: false) — renders the bottom-right cell (row-total
|
|
127
|
+
column × footer row). Only rendered when both `rowTotal` is set **and** at least one column defines
|
|
128
|
+
`footer` — otherwise there is no footer row for it to occupy, and this renders nothing
|
|
129
|
+
|
|
130
|
+
**Events:** `lr-sort` (`detail: { key }`, fired on sortable-header activation), `lr-row-click`
|
|
131
|
+
(`detail: { row }`), `lr-load-more` (fired on the "load more" button), `lr-columns-hidden-change`
|
|
132
|
+
(`detail: { hidden: boolean }`, fired only on a real `columnsHidden` transition),
|
|
133
|
+
`lr-columns-revealed` (`detail: { revealed: boolean }`), and `lr-row-expand-toggle`
|
|
134
|
+
(`detail: { row, key }`; the table does not mutate `expandedKeys`), and
|
|
135
|
+
`lr-selection-change` (`detail: { keys }`) when selection is enabled, `lr-filter-change`
|
|
136
|
+
(`detail: { text }`), and `lr-page-change` (`detail: { page }`) from the controlled
|
|
137
|
+
filter/pagination surfaces, and `lr-cell-edit` (`detail: { row, key, value }`) for editable
|
|
138
|
+
columns, and `lr-column-resize` (`detail: { key, width }`) on every pointer or keyboard resize step.
|
|
139
|
+
The internal filter/cell-editor native inputs' `focus` and `blur` are also re-dispatched from the
|
|
140
|
+
host as bubbling, composed events (the native ones are neither).
|
|
141
|
+
|
|
142
|
+
**Slots:** none — content comes entirely from `columns`/`rows`.
|
|
143
|
+
|
|
144
|
+
**CSS parts:** `base`, `table`, `head`, `header-cell`, `row`, `cell`, `more-button`, `sort-icon` (a
|
|
145
|
+
chevron indicator shown on the active sortable header, rotated per `sortDir`), `reveal-columns-button`
|
|
146
|
+
(shown only when `columnsHidden` is true), `foot` (the `<tfoot>`, only rendered when at least one
|
|
147
|
+
column defines `footer`), `footer-row`, `footer-cell`, `row-total-cell` (each body row's trailing
|
|
148
|
+
`<td>` holding `rowTotal(row)`, rendered only when `rowTotal` is set — the corresponding footer-row
|
|
149
|
+
cell, holding `grandTotal`, is a `footer-cell` instead, matching every other footer cell),
|
|
150
|
+
`expand-toggle-cell`, `row-expand-toggle`,
|
|
151
|
+
`row-expand-icon`, `expanded-row`, `expanded-cell`, `filter-label`, `filter`, `loading`, and
|
|
152
|
+
`pagination`, `cell-editor`, `group-row`, `group-cell`, and `resize-handle` (the focusable column
|
|
153
|
+
separator)
|
|
154
|
+
|
|
155
|
+
**Themeable custom properties:** `--lr-table-max-height` (default `none`; controls the scrollable
|
|
156
|
+
body's `max-block-size`). `--lr-table-heat-tint-lo` (default `var(--lr-color-brand-quiet)`) and
|
|
157
|
+
`--lr-table-heat-tint-hi` (default `var(--lr-color-brand)`) — the `color-mix()` ramp endpoints
|
|
158
|
+
for heat-tint mode's per-cell background, consulted only on columns/rows that define `heatValue`;
|
|
159
|
+
`--lr-table-resize-min-width` (default `var(--lr-size-3rem)`) and
|
|
160
|
+
`--lr-table-resize-handle-opacity` (default `0.12`) control resizable-column behavior.
|
|
161
|
+
|
|
162
|
+
**Optional peer deps:** none.
|
|
163
|
+
|
|
164
|
+
```html
|
|
165
|
+
<lr-table id="t" sort-key="name" sort-dir="asc"></lr-table>
|
|
166
|
+
<script type="module">
|
|
167
|
+
const t = document.getElementById('t');
|
|
168
|
+
t.columns = [
|
|
169
|
+
{ key: 'name', label: 'Name', sortable: true, cell: (r) => r.name },
|
|
170
|
+
{ key: 'value', label: 'Value', align: 'end', cell: (r) => r.value },
|
|
171
|
+
];
|
|
172
|
+
t.rows = [{ name: 'Alpha', value: 1 }, { name: 'Beta', value: 2 }];
|
|
173
|
+
t.rowKey = (r) => r.name;
|
|
174
|
+
t.addEventListener('lr-sort', (e) => console.log('sort by', e.detail.key));
|
|
175
|
+
t.addEventListener('lr-row-click', (e) => console.log('clicked', e.detail.row));
|
|
176
|
+
</script>
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
**Known gotchas:**
|
|
180
|
+
- only single-row selection is modeled (`selectedKey: string | number | null`);
|
|
181
|
+
there's no bulk-select/checkbox-column API — you must hand-roll a checkbox column entirely inside
|
|
182
|
+
a `cell()` callback if you need multi-select.
|
|
183
|
+
- no `caption`/`aria-label` *property* exists, but a plain `aria-label` HTML attribute set on the
|
|
184
|
+
host **is** forwarded into the shadow-DOM `<table role="grid">` (read via
|
|
185
|
+
`this.getAttribute('aria-label')` at render time — a plain global-attribute read, not a reactive
|
|
186
|
+
Lit `@property`): `<lr-table aria-label="Scores">` gives the grid an accessible name; omit it and
|
|
187
|
+
the shadow table simply has none.
|
|
188
|
+
- Full roving-tabindex grid keyboard pattern (one `tabindex="0"` stop among header cells, one among
|
|
189
|
+
body rows) — Left/Right/Home/End move within the header row, Up/Down/Home/End move within the
|
|
190
|
+
body, Down from the header enters the body's roving stop and Up from the body's first row returns
|
|
191
|
+
to the header, Enter/Space still only sort/activate — a genuine strength versus most siblings in
|
|
192
|
+
this family. A `priority`-hidden header/cell is skipped when computing the visible header stops,
|
|
193
|
+
so arrow-key navigation never strands the roving stop on a hidden column.
|
|
194
|
+
- a `cell()` template can render its own interactive content without it being swallowed by
|
|
195
|
+
row/column activation: clicks and Enter/Space landing on (or bubbling through) anything matching
|
|
196
|
+
`button, a[href], input, select, textarea, [role="button"], [role="combobox"], [role="listbox"],
|
|
197
|
+
[role="slider"]`, **or any custom element** (any tag name containing a hyphen — e.g. a
|
|
198
|
+
`<lr-select>`/`<lr-combobox>` rendered inside a `cell()`), are left alone by the table's own
|
|
199
|
+
delegated `click`/`keydown` handlers instead of triggering `lr-sort`/`lr-row-click`.
|
|
200
|
+
|
|
201
|
+
---
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
<!-- GENERATED by scripts/build-llms.mjs from llms/layout.md — do not edit this file. -->
|
|
2
|
+
|
|
3
|
+
# `lr-tabs`
|
|
4
|
+
|
|
5
|
+
- **Import** `import '@aceshooting/lyra-ui/components/layout/tabs/tabs.js';` (registers the tag; side-effect import)
|
|
6
|
+
- **Class** `LyraTabs`, also available unregistered from `@aceshooting/lyra-ui/components/layout/tabs/tabs.class.js`
|
|
7
|
+
- **Family** `components/layout/` — see `llms/index.md` for its siblings
|
|
8
|
+
- **Optional peers** none
|
|
9
|
+
- **Library-wide behavior** (events, form association, `locale`/`strings`, tokens, TS types): `llms/shared.md`
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## `lr-tabs`
|
|
14
|
+
|
|
15
|
+
A tab strip whose panels are direct light-DOM children, each carrying `slot="<id>"` (the panel's
|
|
16
|
+
stable id) and `label="<text>"` (the tab button's text). One named `<slot>` is rendered per distinct
|
|
17
|
+
`slot` name found among the current children — a child with no `label`, or a name with no matching
|
|
18
|
+
child, simply never produces a tab. Implements the WAI-ARIA APG tabs pattern with automatic
|
|
19
|
+
activation: Left/Right (swapped under RTL) move focus *and* selection together, Home/End jump to the
|
|
20
|
+
first/last enabled tab, and a roving `tabindex` follows whichever tab is currently selected.
|
|
21
|
+
|
|
22
|
+
A tab button's *visible* content can carry a leading icon without ever changing its *accessible
|
|
23
|
+
name* (always exactly `label`'s text): give a tab an extra direct-child sibling of `<lr-tabs>`
|
|
24
|
+
carrying `slot="<id>-icon"` (that sibling's own content — inline SVG, emoji span, a custom icon
|
|
25
|
+
element, anything — is entirely up to the consumer). It renders ahead of the label inside that tab's
|
|
26
|
+
button, wrapped in an `aria-hidden="true"` `[part="tab-icon"]` so it's excluded from accessible-name
|
|
27
|
+
computation regardless of content. A tab with no matching `<id>-icon` sibling renders no icon
|
|
28
|
+
wrapper at all, so existing text-only tabs are unaffected.
|
|
29
|
+
|
|
30
|
+
**Properties:**
|
|
31
|
+
- `active: string = ''` (reflected) — the active tab's `slot`/id; falls back to the first enabled
|
|
32
|
+
tab whenever the current value doesn't resolve to one (including on every children/attribute
|
|
33
|
+
change, tracked via a `MutationObserver`)
|
|
34
|
+
- `accessibleLabel: string | null = null` (attribute `aria-label`) — accessible name applied to the
|
|
35
|
+
`role="tablist"` strip; attribute-reflects from a host-level `aria-label`. Unset, the tablist
|
|
36
|
+
renders without an `aria-label` (there is no localized default name).
|
|
37
|
+
|
|
38
|
+
**Events:** `lr-tabs-change` (`detail: { tabId: string }`) — fired when the active tab changes via
|
|
39
|
+
click or keyboard. Not fired when `active` self-corrects to a valid tab (initial default, or a tab
|
|
40
|
+
disappearing/becoming disabled underneath the current selection).
|
|
41
|
+
|
|
42
|
+
**Slots:** default — direct children with `slot="<id>" label="<text>"` (and optionally `disabled`);
|
|
43
|
+
one becomes each tab's panel. `<id>-icon` — optional sibling direct child supplying a tab's leading
|
|
44
|
+
icon content; excluded from the tab button's accessible name.
|
|
45
|
+
|
|
46
|
+
**CSS parts:** `base` (root wrapper around the tablist and panels), `tablist` (the `role="tablist"`
|
|
47
|
+
row of tab buttons), `tab` (a single tab button), `tab-icon` (the optional leading-icon wrapper
|
|
48
|
+
inside a tab button; only rendered when that tab has a matching `<id>-icon` sibling), `panel` (a
|
|
49
|
+
single `role="tabpanel"` wrapper, one per tab, hidden unless active)
|
|
50
|
+
|
|
51
|
+
**Themeable custom properties:** `--lr-scroll-fade-size` (default `2rem`) — width of the static
|
|
52
|
+
mask fade at each horizontal scroll edge of the tablist. Otherwise shared tokens —
|
|
53
|
+
`--lr-space-xs/-s/-m`, `--lr-color-border/-text-quiet/-text/-brand`, `--lr-transition-fast`,
|
|
54
|
+
`--lr-radius`, `--lr-focus-ring-width/-color/-offset`, `--lr-opacity-disabled`.
|
|
55
|
+
|
|
56
|
+
**Optional peer deps:** none.
|
|
57
|
+
|
|
58
|
+
```html
|
|
59
|
+
<lr-tabs active="general">
|
|
60
|
+
<div slot="general" label="General">General settings…</div>
|
|
61
|
+
<div slot="advanced" label="Advanced" disabled>Advanced settings…</div>
|
|
62
|
+
</lr-tabs>
|
|
63
|
+
<script type="module">
|
|
64
|
+
document.querySelector('lr-tabs').addEventListener('lr-tabs-change', (e) => console.log(e.detail.tabId));
|
|
65
|
+
</script>
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
**Known gotchas:**
|
|
69
|
+
- Tabs are rebuilt from direct children via a `MutationObserver` watching `childList` plus
|
|
70
|
+
`attributeFilter: ['slot', 'label', 'disabled']` — not `slotchange` — because a brand-new tab's
|
|
71
|
+
`slot` name has no matching `<slot>` to fire `slotchange` on until this component has already
|
|
72
|
+
rendered one for it, and neither `slotchange` nor any Lit lifecycle hook observes a plain
|
|
73
|
+
attribute edit on a light-DOM child at all.
|
|
74
|
+
- If two children share the same `slot` name, the *first* one wins for the tab button's label
|
|
75
|
+
(matches native slot assignment: both would render into the one panel, but only one label can back
|
|
76
|
+
the button).
|
|
77
|
+
- Left/Right are swapped under RTL (read via `internal/rtl.ts`'s `isRtl()`); Up/Down are not used —
|
|
78
|
+
this is a horizontal strip only.
|
|
79
|
+
|
|
80
|
+
---
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
<!-- GENERATED by scripts/build-llms.mjs from llms/overlays.md — do not edit this file. -->
|
|
2
|
+
|
|
3
|
+
# `lr-tag`
|
|
4
|
+
|
|
5
|
+
- **Import** `import '@aceshooting/lyra-ui/components/overlays/badge/tag.js';` (registers the tag; side-effect import)
|
|
6
|
+
- **Class** `LyraTag`, also available unregistered from `@aceshooting/lyra-ui/components/overlays/badge/tag.class.js`
|
|
7
|
+
- **Family** `components/overlays/` — see `llms/index.md` for its siblings
|
|
8
|
+
- **Optional peers** none
|
|
9
|
+
- **Documented with** `lr-badge` (same section below)
|
|
10
|
+
- **Library-wide behavior** (events, form association, `locale`/`strings`, tokens, TS types): `llms/shared.md`
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## `lr-badge` and `lr-tag`
|
|
15
|
+
|
|
16
|
+
Compact status labels. Both expose `variant: 'neutral' | 'brand' | 'success' | 'warning' | 'danger'`.
|
|
17
|
+
The two tags share the same visual contract; `lr-tag` is a semantic alias for migration-friendly
|
|
18
|
+
markup.
|
|
19
|
+
|
|
20
|
+
**Slots:** default content. **CSS parts:** `base`.
|
|
21
|
+
|
|
22
|
+
**Themeable custom properties:** `--lr-badge-background`, `--lr-badge-color`, `--lr-badge-border`
|
|
23
|
+
— the trio each `:host([variant])` rule rewrites (`neutral` defaults to
|
|
24
|
+
`--lr-color-surface`/`-text`/`-border`; the other four to the matching `*-quiet` fill with the loud
|
|
25
|
+
color for text and border). Set one directly on the element for a tint outside the five variants.
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
<!-- GENERATED by scripts/build-llms.mjs from llms/agent-tools.md — do not edit this file. -->
|
|
2
|
+
|
|
3
|
+
# `lr-task-list`
|
|
4
|
+
|
|
5
|
+
- **Import** `import '@aceshooting/lyra-ui/components/agent-tools/task-list/task-list.js';` (registers the tag; side-effect import)
|
|
6
|
+
- **Class** `LyraTaskList`, also available unregistered from `@aceshooting/lyra-ui/components/agent-tools/task-list/task-list.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-task-list`
|
|
14
|
+
|
|
15
|
+
A live, collapsible tracker for an agent's plan: ordered steps with per-step lifecycle status and one
|
|
16
|
+
level of nested sub-steps, embedded in the transcript. `items` is controlled and never mutated by this
|
|
17
|
+
component. Unlike `<lr-stepper>`'s single-`current` navigation, task-list is a read-only status
|
|
18
|
+
report: several steps may be `running` at once, there is no selection, and status changes are
|
|
19
|
+
announced through an internal `<lr-live-region>`.
|
|
20
|
+
|
|
21
|
+
**Properties:** `items: TaskItem[] = []` (attribute: false) — `TaskItem { id: string; label: string;
|
|
22
|
+
status: TaskStatus; detail?: string; children?: TaskItem[] }` with `TaskStatus = 'pending' |
|
|
23
|
+
'running' | 'success' | 'error'` (both exported here). `detail` is an optional secondary plain-text
|
|
24
|
+
line; `children` is exactly **one** level of sub-steps — a child's own `children` is ignored with a
|
|
25
|
+
`console.warn`. `label: string = 'Tasks'`, `expanded: boolean = true` (reflected), and
|
|
26
|
+
`collapsible: boolean = true`.
|
|
27
|
+
|
|
28
|
+
**Slots:** `detail-<id>` — dynamic, one per item id (e.g. `slot="detail-step-3"`); rich detail under
|
|
29
|
+
that item's label, typically a `<lr-tool-call-chip>` or file `<lr-chip>`.
|
|
30
|
+
|
|
31
|
+
**Events:** `lr-toggle` — the header was activated, expanding or collapsing the panel. `detail: {
|
|
32
|
+
expanded }`.
|
|
33
|
+
|
|
34
|
+
**CSS parts:** `base`, `header` (a `<button>` when `collapsible`, a plain heading otherwise), `label`,
|
|
35
|
+
`summary` (the visible "N of M completed" summary, top-level items only), `toggle` (the chevron
|
|
36
|
+
indicator, only rendered when `collapsible`), `body` (the list of items, `hidden` while collapsed),
|
|
37
|
+
`item` (`role="listitem"`; carries `data-status`/`data-id`/`data-depth`), `status-icon`, `item-label`,
|
|
38
|
+
`item-detail`, and `item-children` (the nested `role="list"` wrapper around a top-level item's
|
|
39
|
+
children).
|
|
40
|
+
|
|
41
|
+
**Themeable custom properties:** `--lr-task-list-spin` (default `1s linear`) — running-status icon
|
|
42
|
+
spin animation duration/timing.
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
<!-- GENERATED by scripts/build-llms.mjs from llms/agent-tools.md — do not edit this file. -->
|
|
2
|
+
|
|
3
|
+
# `lr-terminal`
|
|
4
|
+
|
|
5
|
+
- **Import** `import '@aceshooting/lyra-ui/components/agent-tools/terminal/terminal.js';` (registers the tag; side-effect import)
|
|
6
|
+
- **Class** `LyraTerminal`, also available unregistered from `@aceshooting/lyra-ui/components/agent-tools/terminal/terminal.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-terminal`
|
|
14
|
+
|
|
15
|
+
A read-only ANSI console for streamed agent/tool output. Not a PTY: no stdin/keystroke handling, no
|
|
16
|
+
cursor-addressed full-screen apps.
|
|
17
|
+
|
|
18
|
+
**Properties:** `content: string = ''` — initial/replaceable buffer content, parsed for ANSI/SGR
|
|
19
|
+
codes. `maxScrollback: number = 5000` (attribute `max-scrollback`), `follow: boolean = true`
|
|
20
|
+
(reflected) — stick-to-bottom, `wrap: boolean = true` (reflected), `copyable: boolean = true`
|
|
21
|
+
(reflected) and `downloadable: boolean = false` (reflected) toggle the toolbar buttons, `filename:
|
|
22
|
+
string = 'terminal.log'`, `announceOutput: boolean = false` (attribute `announce-output`),
|
|
23
|
+
`accessibleLabel: string = ''` (attribute `aria-label`), `highlights: LyraHighlight[] = []` (attribute:
|
|
24
|
+
false), and `activeHighlightId: string | null = null` (attribute: false). `anchorKinds` is a readonly
|
|
25
|
+
`['page', 'text-quote', 'region']` for the shared anchor-target contract.
|
|
26
|
+
|
|
27
|
+
**Methods:** `write(text)` appends ANSI-parsed text to the buffer. `clear()` empties the buffer.
|
|
28
|
+
`scrollToBottom()` and `scrollToAnchor(anchor)` control scroll position. `search(query)`,
|
|
29
|
+
`searchNext()`, `searchPrevious()`, and `clearSearch()` drive in-buffer text search. `getPlainText()`
|
|
30
|
+
returns the SGR-stripped plain text of the whole buffer.
|
|
31
|
+
|
|
32
|
+
**Events:** `lr-copy` (`detail: { text }`), `lr-download` (`detail: { filename }`),
|
|
33
|
+
`lr-follow-change` (`detail: { following }`), `lr-search-change` (`detail: { query, matchCount,
|
|
34
|
+
activeIndex }`), `lr-highlight-activate` (`detail: { id }`), and `lr-text-select` (`detail: {
|
|
35
|
+
text, anchor, rects }`).
|
|
36
|
+
|
|
37
|
+
**CSS parts:** `base`, `toolbar` (only rendered when copy/download are enabled), `copy-button`,
|
|
38
|
+
`download-button`, `viewport` (the `role="log"` scrollable region), `line` (one rendered line; carries
|
|
39
|
+
`data-line-number`/`data-match`/`data-highlight-tone`), `jump-to-latest` (shown while `follow` is
|
|
40
|
+
disengaged and new output has arrived), and `announcer` (the visually-hidden `role="status"` region
|
|
41
|
+
used when `announce-output` is set).
|
|
42
|
+
|
|
43
|
+
**Themeable custom properties:** `--lr-terminal-height` (default `var(--lr-size-20rem)`) — the
|
|
44
|
+
viewport's block size.
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
<!-- GENERATED by scripts/build-llms.mjs from llms/agent-tools.md — do not edit this file. -->
|
|
2
|
+
|
|
3
|
+
# `lr-test-results`
|
|
4
|
+
|
|
5
|
+
- **Import** `import '@aceshooting/lyra-ui/components/agent-tools/test-results/test-results.js';` (registers the tag; side-effect import)
|
|
6
|
+
- **Class** `LyraTestResults`, also available unregistered from `@aceshooting/lyra-ui/components/agent-tools/test-results/test-results.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-test-results`
|
|
14
|
+
|
|
15
|
+
A pass/fail suite summary with per-status counts, status filter toggles, and per-test rows whose
|
|
16
|
+
failures auto-expand by default and can host rich slotted detail (e.g. a diff or code block)
|
|
17
|
+
alongside the plain failure message.
|
|
18
|
+
|
|
19
|
+
**Properties:** `suites: TestSuiteResult[] = []` (attribute: false) — `TestSuiteResult { id: string;
|
|
20
|
+
name: string; tests: TestCaseResult[] }` and `TestCaseResult { id: string; name: string; status:
|
|
21
|
+
TestStatus; durationMs?: number; message?: string }`, with `TestStatus = 'passed' | 'failed' |
|
|
22
|
+
'skipped' | 'running'` (all three exported here). `statusFilter: TestStatus[] =
|
|
23
|
+
[]` (attribute: false) — empty shows every status; and `autoExpandFailures: boolean = true`
|
|
24
|
+
(attribute `auto-expand-failures`).
|
|
25
|
+
|
|
26
|
+
**Slots:** `detail-{testId}` — rich failure detail for that test, rendered after its plain `message`
|
|
27
|
+
text once the row is expanded.
|
|
28
|
+
|
|
29
|
+
**Events:** `lr-test-select` (`detail: { suiteId: string; testId: string }`, a test row's name was
|
|
30
|
+
activated), `lr-filter-change` (`detail: { statuses: TestStatus[] }` — the complete next filter set; the
|
|
31
|
+
component updates its own `statusFilter` first, then emits),
|
|
32
|
+
and `lr-toggle` (`detail: { id: string; expanded: boolean }`, a row's failure detail was
|
|
33
|
+
expanded/collapsed).
|
|
34
|
+
|
|
35
|
+
**CSS parts:** `base`, `summary` (the status-count strip), `count` (carries `data-status`), `filter`,
|
|
36
|
+
`filter-toggle` (carries `data-status`/`aria-pressed`), `suite`, `suite-header`, `test` (carries
|
|
37
|
+
`data-status`), `test-status`, `test-name`, `test-duration`, `test-expand-toggle`, `failure`
|
|
38
|
+
(hidden while collapsed), and `failure-message`.
|