@aceshooting/lyra-ui 6.0.0 → 6.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +185 -0
- package/README.md +11 -6
- package/custom-elements.json +8223 -939
- package/dist/ai/types.contract.js +1 -0
- package/dist/ai/types.contract.js.map +1 -1
- 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.map +1 -1
- package/dist/components/agent-tools/agent-eval-dashboard/agent-eval-dashboard.class.d.ts +67 -0
- package/dist/components/agent-tools/agent-eval-dashboard/agent-eval-dashboard.class.d.ts.map +1 -0
- package/dist/components/agent-tools/agent-eval-dashboard/agent-eval-dashboard.class.js +78 -0
- package/dist/components/agent-tools/agent-eval-dashboard/agent-eval-dashboard.class.js.map +1 -0
- package/dist/components/agent-tools/agent-eval-dashboard/agent-eval-dashboard.d.ts +2 -0
- package/dist/components/agent-tools/agent-eval-dashboard/agent-eval-dashboard.d.ts.map +1 -0
- package/dist/components/agent-tools/agent-eval-dashboard/agent-eval-dashboard.js +5 -0
- package/dist/components/agent-tools/agent-eval-dashboard/agent-eval-dashboard.js.map +1 -0
- package/dist/components/agent-tools/agent-eval-dashboard/agent-eval-dashboard.styles.d.ts +2 -0
- package/dist/components/agent-tools/agent-eval-dashboard/agent-eval-dashboard.styles.d.ts.map +1 -0
- package/dist/components/agent-tools/agent-eval-dashboard/agent-eval-dashboard.styles.js +17 -0
- package/dist/components/agent-tools/agent-eval-dashboard/agent-eval-dashboard.styles.js.map +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.map +1 -1
- package/dist/components/agent-tools/agent-trace/agent-trace.class.d.ts.map +1 -1
- package/dist/components/agent-tools/agent-trace/agent-trace.class.js +1 -1
- package/dist/components/agent-tools/agent-trace/agent-trace.class.js.map +1 -1
- package/dist/components/agent-tools/agent-trace/agent-trace.styles.d.ts.map +1 -1
- package/dist/components/agent-tools/agent-trace/agent-trace.styles.js +2 -0
- package/dist/components/agent-tools/agent-trace/agent-trace.styles.js.map +1 -1
- package/dist/components/agent-tools/approval-queue/approval-queue.class.d.ts +77 -0
- package/dist/components/agent-tools/approval-queue/approval-queue.class.d.ts.map +1 -0
- package/dist/components/agent-tools/approval-queue/approval-queue.class.js +144 -0
- package/dist/components/agent-tools/approval-queue/approval-queue.class.js.map +1 -0
- package/dist/components/agent-tools/approval-queue/approval-queue.d.ts +2 -0
- package/dist/components/agent-tools/approval-queue/approval-queue.d.ts.map +1 -0
- package/dist/components/agent-tools/approval-queue/approval-queue.js +5 -0
- package/dist/components/agent-tools/approval-queue/approval-queue.js.map +1 -0
- package/dist/components/agent-tools/approval-queue/approval-queue.styles.d.ts +2 -0
- package/dist/components/agent-tools/approval-queue/approval-queue.styles.d.ts.map +1 -0
- package/dist/components/agent-tools/approval-queue/approval-queue.styles.js +96 -0
- package/dist/components/agent-tools/approval-queue/approval-queue.styles.js.map +1 -0
- package/dist/components/agent-tools/artifact-panel/artifact-panel.class.d.ts.map +1 -1
- package/dist/components/agent-tools/artifact-panel/artifact-panel.class.js +3 -1
- package/dist/components/agent-tools/artifact-panel/artifact-panel.class.js.map +1 -1
- package/dist/components/agent-tools/browser-frame/browser-frame.class.d.ts.map +1 -1
- package/dist/components/agent-tools/browser-frame/browser-frame.class.js.map +1 -1
- package/dist/components/agent-tools/commit-card/commit-card.class.d.ts.map +1 -1
- package/dist/components/agent-tools/commit-card/commit-card.class.js.map +1 -1
- 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.map +1 -1
- package/dist/components/agent-tools/confirm-bar/confirm-bar.class.d.ts.map +1 -1
- package/dist/components/agent-tools/confirm-bar/confirm-bar.class.js +2 -2
- package/dist/components/agent-tools/confirm-bar/confirm-bar.class.js.map +1 -1
- package/dist/components/agent-tools/context-inspector/context-inspector.class.d.ts +1 -0
- package/dist/components/agent-tools/context-inspector/context-inspector.class.d.ts.map +1 -1
- package/dist/components/agent-tools/context-inspector/context-inspector.class.js +4 -1
- package/dist/components/agent-tools/context-inspector/context-inspector.class.js.map +1 -1
- package/dist/components/agent-tools/eval-dataset/eval-dataset.class.d.ts.map +1 -1
- package/dist/components/agent-tools/eval-dataset/eval-dataset.class.js.map +1 -1
- package/dist/components/agent-tools/eval-result/eval-result.class.d.ts.map +1 -1
- package/dist/components/agent-tools/eval-result/eval-result.class.js.map +1 -1
- package/dist/components/agent-tools/evaluation-run/evaluation-run.class.d.ts.map +1 -1
- package/dist/components/agent-tools/evaluation-run/evaluation-run.class.js +7 -7
- package/dist/components/agent-tools/evaluation-run/evaluation-run.class.js.map +1 -1
- package/dist/components/agent-tools/policy-summary/policy-summary.class.d.ts.map +1 -1
- package/dist/components/agent-tools/policy-summary/policy-summary.class.js.map +1 -1
- package/dist/components/agent-tools/result-card/result-card.class.d.ts.map +1 -1
- package/dist/components/agent-tools/result-card/result-card.class.js.map +1 -1
- package/dist/components/agent-tools/result-card/result-field.class.d.ts.map +1 -1
- package/dist/components/agent-tools/result-card/result-field.class.js.map +1 -1
- package/dist/components/agent-tools/span-waterfall/span-waterfall.class.d.ts.map +1 -1
- package/dist/components/agent-tools/span-waterfall/span-waterfall.class.js +11 -8
- package/dist/components/agent-tools/span-waterfall/span-waterfall.class.js.map +1 -1
- package/dist/components/agent-tools/stack-trace/stack-trace-parse.d.ts.map +1 -1
- package/dist/components/agent-tools/stack-trace/stack-trace-parse.js +1 -0
- package/dist/components/agent-tools/stack-trace/stack-trace-parse.js.map +1 -1
- 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 +1 -1
- package/dist/components/agent-tools/stack-trace/stack-trace.class.js.map +1 -1
- package/dist/components/agent-tools/task-list/task-list.class.d.ts.map +1 -1
- package/dist/components/agent-tools/task-list/task-list.class.js.map +1 -1
- package/dist/components/agent-tools/terminal/terminal.class.d.ts.map +1 -1
- package/dist/components/agent-tools/terminal/terminal.class.js +2 -2
- package/dist/components/agent-tools/terminal/terminal.class.js.map +1 -1
- package/dist/components/agent-tools/test-results/test-results.class.d.ts.map +1 -1
- package/dist/components/agent-tools/test-results/test-results.class.js +1 -1
- package/dist/components/agent-tools/test-results/test-results.class.js.map +1 -1
- 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 +11 -5
- 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.map +1 -1
- 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.map +1 -1
- package/dist/components/agent-tools/tool-call-chip/tool-call-chip.class.js +1 -1
- package/dist/components/agent-tools/tool-call-chip/tool-call-chip.class.js.map +1 -1
- package/dist/components/agent-tools/tool-param-form/tool-param-form.class.d.ts.map +1 -1
- package/dist/components/agent-tools/tool-param-form/tool-param-form.class.js +12 -11
- package/dist/components/agent-tools/tool-param-form/tool-param-form.class.js.map +1 -1
- package/dist/components/agent-tools/tool-result-dialog/tool-result-dialog.class.d.ts.map +1 -1
- package/dist/components/agent-tools/tool-result-dialog/tool-result-dialog.class.js.map +1 -1
- package/dist/components/agent-tools/tool-result-view/registry.d.ts +38 -1
- package/dist/components/agent-tools/tool-result-view/registry.d.ts.map +1 -1
- package/dist/components/agent-tools/tool-result-view/registry.js.map +1 -1
- package/dist/components/agent-tools/tool-result-view/tool-result-view.class.d.ts +16 -1
- 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 +32 -1
- 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.map +1 -1
- 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.map +1 -1
- package/dist/components/agent-tools/tool-timeline/tool-timeline.class.js.map +1 -1
- package/dist/components/agent-tools/trace-tree/trace-tree.class.d.ts.map +1 -1
- package/dist/components/agent-tools/trace-tree/trace-tree.class.js +26 -12
- package/dist/components/agent-tools/trace-tree/trace-tree.class.js.map +1 -1
- package/dist/components/charts/chart/box-plot.class.d.ts +4 -0
- package/dist/components/charts/chart/box-plot.class.d.ts.map +1 -1
- package/dist/components/charts/chart/box-plot.class.js +43 -11
- package/dist/components/charts/chart/box-plot.class.js.map +1 -1
- package/dist/components/charts/chart/chart-loader.d.ts +39 -0
- package/dist/components/charts/chart/chart-loader.d.ts.map +1 -1
- package/dist/components/charts/chart/chart-loader.js +53 -0
- package/dist/components/charts/chart/chart-loader.js.map +1 -1
- package/dist/components/charts/chart/chart.class.d.ts +113 -10
- package/dist/components/charts/chart/chart.class.d.ts.map +1 -1
- package/dist/components/charts/chart/chart.class.js +293 -23
- package/dist/components/charts/chart/chart.class.js.map +1 -1
- package/dist/components/charts/chart/histogram-bin.js +3 -3
- package/dist/components/charts/chart/histogram-bin.js.map +1 -1
- package/dist/components/charts/chart/lite-chart.class.d.ts +17 -5
- package/dist/components/charts/chart/lite-chart.class.d.ts.map +1 -1
- package/dist/components/charts/chart/lite-chart.class.js +72 -16
- package/dist/components/charts/chart/lite-chart.class.js.map +1 -1
- package/dist/components/conversation/agent-workspace/agent-workspace.class.d.ts +4 -0
- package/dist/components/conversation/agent-workspace/agent-workspace.class.d.ts.map +1 -1
- package/dist/components/conversation/agent-workspace/agent-workspace.class.js +22 -4
- package/dist/components/conversation/agent-workspace/agent-workspace.class.js.map +1 -1
- package/dist/components/conversation/audio-visualizer/audio-visualizer.class.d.ts +2 -7
- package/dist/components/conversation/audio-visualizer/audio-visualizer.class.d.ts.map +1 -1
- package/dist/components/conversation/audio-visualizer/audio-visualizer.class.js +29 -58
- package/dist/components/conversation/audio-visualizer/audio-visualizer.class.js.map +1 -1
- package/dist/components/conversation/branch-picker/branch-picker.class.d.ts.map +1 -1
- package/dist/components/conversation/branch-picker/branch-picker.class.js.map +1 -1
- package/dist/components/conversation/chat-composer/chat-composer.class.d.ts.map +1 -1
- package/dist/components/conversation/chat-composer/chat-composer.class.js.map +1 -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.map +1 -1
- package/dist/components/conversation/chat-viewport/chat-viewport.class.d.ts.map +1 -1
- package/dist/components/conversation/chat-viewport/chat-viewport.class.js.map +1 -1
- package/dist/components/conversation/checkpoint/checkpoint.class.d.ts.map +1 -1
- package/dist/components/conversation/checkpoint/checkpoint.class.js.map +1 -1
- package/dist/components/conversation/code-block/code-block-core.class.d.ts +0 -1
- package/dist/components/conversation/code-block/code-block-core.class.d.ts.map +1 -1
- package/dist/components/conversation/code-block/code-block-core.class.js +18 -9
- package/dist/components/conversation/code-block/code-block-core.class.js.map +1 -1
- package/dist/components/conversation/code-block/code-block.class.d.ts.map +1 -1
- package/dist/components/conversation/code-block/code-block.class.js +3 -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 +7 -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 +8 -0
- package/dist/components/conversation/conversation-item/conversation-item.class.js.map +1 -1
- package/dist/components/conversation/conversation-item/conversation-item.styles.d.ts.map +1 -1
- package/dist/components/conversation/conversation-item/conversation-item.styles.js +12 -0
- package/dist/components/conversation/conversation-item/conversation-item.styles.js.map +1 -1
- package/dist/components/conversation/generation-status/generation-status.class.d.ts.map +1 -1
- package/dist/components/conversation/generation-status/generation-status.class.js.map +1 -1
- package/dist/components/conversation/handoff-divider/handoff-divider.class.d.ts.map +1 -1
- package/dist/components/conversation/handoff-divider/handoff-divider.class.js.map +1 -1
- package/dist/components/conversation/markdown/markdown-core.class.d.ts.map +1 -1
- package/dist/components/conversation/markdown/markdown-core.class.js +6 -2
- package/dist/components/conversation/markdown/markdown-core.class.js.map +1 -1
- package/dist/components/conversation/markdown/markdown-shared.d.ts.map +1 -1
- package/dist/components/conversation/markdown/markdown-shared.js +1 -0
- package/dist/components/conversation/markdown/markdown-shared.js.map +1 -1
- package/dist/components/conversation/markdown/markdown.class.d.ts.map +1 -1
- package/dist/components/conversation/markdown/markdown.class.js +3 -5
- package/dist/components/conversation/markdown/markdown.class.js.map +1 -1
- package/dist/components/conversation/message-actions/message-actions.class.d.ts.map +1 -1
- package/dist/components/conversation/message-actions/message-actions.class.js +5 -2
- package/dist/components/conversation/message-actions/message-actions.class.js.map +1 -1
- package/dist/components/conversation/message-feedback/message-feedback.class.d.ts.map +1 -1
- package/dist/components/conversation/message-feedback/message-feedback.class.js.map +1 -1
- package/dist/components/conversation/model-select/model-select.class.d.ts +4 -0
- package/dist/components/conversation/model-select/model-select.class.d.ts.map +1 -1
- package/dist/components/conversation/model-select/model-select.class.js +11 -10
- package/dist/components/conversation/model-select/model-select.class.js.map +1 -1
- package/dist/components/conversation/model-select/model-select.styles.d.ts.map +1 -1
- package/dist/components/conversation/model-select/model-select.styles.js +7 -3
- package/dist/components/conversation/model-select/model-select.styles.js.map +1 -1
- package/dist/components/conversation/model-settings-panel/model-settings-panel.class.d.ts.map +1 -1
- package/dist/components/conversation/model-settings-panel/model-settings-panel.class.js.map +1 -1
- 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.map +1 -1
- package/dist/components/conversation/stream-status/stream-status.class.d.ts.map +1 -1
- package/dist/components/conversation/stream-status/stream-status.class.js.map +1 -1
- package/dist/components/conversation/streaming-text/streaming-text.class.d.ts.map +1 -1
- package/dist/components/conversation/streaming-text/streaming-text.class.js.map +1 -1
- package/dist/components/conversation/suggestion-chips/suggestion-chips.class.d.ts.map +1 -1
- package/dist/components/conversation/suggestion-chips/suggestion-chips.class.js.map +1 -1
- package/dist/components/conversation/thread-list/thread-list.class.d.ts +2 -0
- package/dist/components/conversation/thread-list/thread-list.class.d.ts.map +1 -1
- package/dist/components/conversation/thread-list/thread-list.class.js +18 -6
- package/dist/components/conversation/thread-list/thread-list.class.js.map +1 -1
- package/dist/components/conversation/transcript-feed/transcript-feed.class.d.ts.map +1 -1
- package/dist/components/conversation/transcript-feed/transcript-feed.class.js +2 -1
- package/dist/components/conversation/transcript-feed/transcript-feed.class.js.map +1 -1
- package/dist/components/conversation/typing-indicator/typing-indicator.class.d.ts +4 -2
- package/dist/components/conversation/typing-indicator/typing-indicator.class.d.ts.map +1 -1
- package/dist/components/conversation/typing-indicator/typing-indicator.class.js +4 -2
- package/dist/components/conversation/typing-indicator/typing-indicator.class.js.map +1 -1
- package/dist/components/conversation/typing-indicator/typing-indicator.styles.d.ts.map +1 -1
- package/dist/components/conversation/typing-indicator/typing-indicator.styles.js +35 -21
- package/dist/components/conversation/typing-indicator/typing-indicator.styles.js.map +1 -1
- package/dist/components/conversation/usage-badge/usage-badge.class.d.ts.map +1 -1
- package/dist/components/conversation/usage-badge/usage-badge.class.js.map +1 -1
- package/dist/components/conversation/voice-picker/voice-picker.class.d.ts.map +1 -1
- package/dist/components/conversation/voice-picker/voice-picker.class.js +7 -5
- package/dist/components/conversation/voice-picker/voice-picker.class.js.map +1 -1
- package/dist/components/conversation/widget-renderer/resolve.js +2 -2
- package/dist/components/conversation/widget-renderer/resolve.js.map +1 -1
- package/dist/components/conversation/widget-renderer/widget-renderer.class.d.ts.map +1 -1
- package/dist/components/conversation/widget-renderer/widget-renderer.class.js +3 -3
- package/dist/components/conversation/widget-renderer/widget-renderer.class.js.map +1 -1
- package/dist/components/data/calendar/calendar.class.d.ts.map +1 -1
- package/dist/components/data/calendar/calendar.class.js +1 -0
- package/dist/components/data/calendar/calendar.class.js.map +1 -1
- package/dist/components/data/context-meter/context-meter.class.d.ts.map +1 -1
- package/dist/components/data/context-meter/context-meter.class.js.map +1 -1
- package/dist/components/data/document-library/document-library.class.d.ts.map +1 -1
- package/dist/components/data/document-library/document-library.class.js.map +1 -1
- package/dist/components/data/env-list/env-list.class.d.ts.map +1 -1
- package/dist/components/data/env-list/env-list.class.js.map +1 -1
- package/dist/components/data/file-tree/file-tree.class.d.ts.map +1 -1
- package/dist/components/data/file-tree/file-tree.class.js.map +1 -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 +12 -12
- package/dist/components/data/flow-canvas/flow-canvas.class.js.map +1 -1
- package/dist/components/data/flow-controls/flow-controls.class.d.ts.map +1 -1
- package/dist/components/data/flow-controls/flow-controls.class.js.map +1 -1
- package/dist/components/data/flow-minimap/flow-minimap.class.d.ts.map +1 -1
- package/dist/components/data/flow-minimap/flow-minimap.class.js.map +1 -1
- package/dist/components/data/flow-node/flow-node.class.d.ts.map +1 -1
- package/dist/components/data/flow-node/flow-node.class.js.map +1 -1
- package/dist/components/data/flow-run-overlay/flow-run-overlay.class.d.ts.map +1 -1
- package/dist/components/data/flow-run-overlay/flow-run-overlay.class.js +1 -1
- package/dist/components/data/flow-run-overlay/flow-run-overlay.class.js.map +1 -1
- package/dist/components/data/gauge/gauge.class.d.ts.map +1 -1
- package/dist/components/data/gauge/gauge.class.js.map +1 -1
- package/dist/components/data/graph-query-builder/graph-query-builder.class.d.ts +0 -1
- package/dist/components/data/graph-query-builder/graph-query-builder.class.d.ts.map +1 -1
- package/dist/components/data/graph-query-builder/graph-query-builder.class.js +0 -2
- package/dist/components/data/graph-query-builder/graph-query-builder.class.js.map +1 -1
- package/dist/components/data/graph-query-builder/graph-query-builder.styles.d.ts.map +1 -1
- package/dist/components/data/graph-query-builder/graph-query-builder.styles.js +2 -0
- package/dist/components/data/graph-query-builder/graph-query-builder.styles.js.map +1 -1
- package/dist/components/data/heatmap/calendar-grid.d.ts.map +1 -1
- package/dist/components/data/heatmap/calendar-grid.js +8 -2
- package/dist/components/data/heatmap/calendar-grid.js.map +1 -1
- package/dist/components/data/heatmap/heatmap.class.d.ts +1 -6
- package/dist/components/data/heatmap/heatmap.class.d.ts.map +1 -1
- package/dist/components/data/heatmap/heatmap.class.js +122 -140
- package/dist/components/data/heatmap/heatmap.class.js.map +1 -1
- package/dist/components/data/pagination/pagination.class.d.ts.map +1 -1
- package/dist/components/data/pagination/pagination.class.js.map +1 -1
- package/dist/components/data/query-builder/query-builder.class.d.ts.map +1 -1
- package/dist/components/data/query-builder/query-builder.class.js.map +1 -1
- package/dist/components/data/sequence-strip/sequence-strip.class.d.ts.map +1 -1
- package/dist/components/data/sequence-strip/sequence-strip.class.js.map +1 -1
- package/dist/components/data/sparkline/sparkline.class.d.ts.map +1 -1
- package/dist/components/data/sparkline/sparkline.class.js +4 -2
- package/dist/components/data/sparkline/sparkline.class.js.map +1 -1
- package/dist/components/data/stat/stat.class.d.ts.map +1 -1
- package/dist/components/data/stat/stat.class.js.map +1 -1
- package/dist/components/data/table/table.class.d.ts +27 -0
- package/dist/components/data/table/table.class.d.ts.map +1 -1
- package/dist/components/data/table/table.class.js +102 -35
- package/dist/components/data/table/table.class.js.map +1 -1
- package/dist/components/data/table/table.styles.d.ts.map +1 -1
- package/dist/components/data/table/table.styles.js +17 -2
- package/dist/components/data/table/table.styles.js.map +1 -1
- package/dist/components/data/timeline/timeline-item.class.d.ts.map +1 -1
- package/dist/components/data/timeline/timeline-item.class.js +5 -2
- package/dist/components/data/timeline/timeline-item.class.js.map +1 -1
- package/dist/components/data/timeline/timeline-item.styles.d.ts.map +1 -1
- package/dist/components/data/timeline/timeline-item.styles.js +6 -0
- package/dist/components/data/timeline/timeline-item.styles.js.map +1 -1
- package/dist/components/data/timeline/timeline.class.d.ts.map +1 -1
- package/dist/components/data/timeline/timeline.class.js.map +1 -1
- package/dist/components/data/tree/tree-item.d.ts +24 -0
- package/dist/components/data/tree/tree-item.d.ts.map +1 -0
- package/dist/components/data/tree/tree-item.js +5 -0
- package/dist/components/data/tree/tree-item.js.map +1 -0
- package/dist/components/data/tree/tree-node.class.d.ts +1 -1
- package/dist/components/data/tree/tree-node.class.d.ts.map +1 -1
- package/dist/components/data/tree/tree-node.class.js.map +1 -1
- package/dist/components/data/tree/tree.class.d.ts +17 -23
- package/dist/components/data/tree/tree.class.d.ts.map +1 -1
- package/dist/components/data/tree/tree.class.js +5 -2
- package/dist/components/data/tree/tree.class.js.map +1 -1
- package/dist/components/data/word-cloud/word-cloud.class.d.ts +17 -0
- package/dist/components/data/word-cloud/word-cloud.class.d.ts.map +1 -1
- package/dist/components/data/word-cloud/word-cloud.class.js +43 -0
- package/dist/components/data/word-cloud/word-cloud.class.js.map +1 -1
- package/dist/components/data/word-cloud/word-cloud.styles.d.ts.map +1 -1
- package/dist/components/data/word-cloud/word-cloud.styles.js +18 -15
- package/dist/components/data/word-cloud/word-cloud.styles.js.map +1 -1
- package/dist/components/forms/button/button.class.d.ts +51 -7
- package/dist/components/forms/button/button.class.d.ts.map +1 -1
- package/dist/components/forms/button/button.class.js +102 -15
- package/dist/components/forms/button/button.class.js.map +1 -1
- package/dist/components/forms/button/button.styles.d.ts.map +1 -1
- package/dist/components/forms/button/button.styles.js +12 -4
- package/dist/components/forms/button/button.styles.js.map +1 -1
- package/dist/components/forms/checkbox/checkbox.class.d.ts +3 -0
- package/dist/components/forms/checkbox/checkbox.class.d.ts.map +1 -1
- package/dist/components/forms/checkbox/checkbox.class.js +19 -2
- package/dist/components/forms/checkbox/checkbox.class.js.map +1 -1
- package/dist/components/forms/checkbox-group/checkbox-group.class.d.ts.map +1 -1
- package/dist/components/forms/checkbox-group/checkbox-group.class.js.map +1 -1
- package/dist/components/forms/code-editor/code-editor.class.d.ts.map +1 -1
- package/dist/components/forms/code-editor/code-editor.class.js.map +1 -1
- package/dist/components/forms/color-picker/color-picker.class.d.ts.map +1 -1
- package/dist/components/forms/color-picker/color-picker.class.js.map +1 -1
- package/dist/components/forms/combobox/combobox.class.d.ts +66 -10
- package/dist/components/forms/combobox/combobox.class.d.ts.map +1 -1
- package/dist/components/forms/combobox/combobox.class.js +76 -21
- package/dist/components/forms/combobox/combobox.class.js.map +1 -1
- package/dist/components/forms/combobox/combobox.styles.d.ts.map +1 -1
- package/dist/components/forms/combobox/combobox.styles.js +14 -5
- package/dist/components/forms/combobox/combobox.styles.js.map +1 -1
- package/dist/components/forms/combobox/option.class.d.ts.map +1 -1
- package/dist/components/forms/combobox/option.class.js.map +1 -1
- package/dist/components/forms/date-picker/date-input.class.d.ts.map +1 -1
- package/dist/components/forms/date-picker/date-input.class.js +6 -7
- package/dist/components/forms/date-picker/date-input.class.js.map +1 -1
- package/dist/components/forms/date-picker/date-input.styles.js +1 -1
- package/dist/components/forms/date-picker/date-picker.class.d.ts.map +1 -1
- package/dist/components/forms/date-picker/date-picker.class.js.map +1 -1
- package/dist/components/forms/emoji-picker/emoji-data-loader.d.ts +1 -1
- package/dist/components/forms/emoji-picker/emoji-data-loader.d.ts.map +1 -1
- package/dist/components/forms/emoji-picker/emoji-picker.class.d.ts +2 -14
- package/dist/components/forms/emoji-picker/emoji-picker.class.d.ts.map +1 -1
- package/dist/components/forms/emoji-picker/emoji-picker.class.js +3 -3
- 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 +4 -5
- package/dist/components/forms/emoji-picker/emoji-picker.styles.js.map +1 -1
- package/dist/components/forms/emoji-picker/emoji-types.d.ts +14 -0
- package/dist/components/forms/emoji-picker/emoji-types.d.ts.map +1 -0
- package/dist/components/forms/emoji-picker/emoji-types.js +5 -0
- package/dist/components/forms/emoji-picker/emoji-types.js.map +1 -0
- package/dist/components/forms/icon-button/icon-button.class.d.ts +11 -3
- package/dist/components/forms/icon-button/icon-button.class.d.ts.map +1 -1
- package/dist/components/forms/icon-button/icon-button.class.js +12 -4
- package/dist/components/forms/icon-button/icon-button.class.js.map +1 -1
- package/dist/components/forms/icon-button/icon-button.styles.js +3 -3
- package/dist/components/forms/input/input.class.d.ts +30 -1
- package/dist/components/forms/input/input.class.d.ts.map +1 -1
- package/dist/components/forms/input/input.class.js +56 -4
- package/dist/components/forms/input/input.class.js.map +1 -1
- package/dist/components/forms/input/input.styles.d.ts.map +1 -1
- package/dist/components/forms/input/input.styles.js +7 -2
- package/dist/components/forms/input/input.styles.js.map +1 -1
- package/dist/components/forms/input/number-input.class.d.ts.map +1 -1
- package/dist/components/forms/input/number-input.class.js.map +1 -1
- package/dist/components/forms/input/time-input.class.d.ts.map +1 -1
- package/dist/components/forms/input/time-input.class.js.map +1 -1
- package/dist/components/forms/locale-picker/locale-picker.class.d.ts +11 -3
- package/dist/components/forms/locale-picker/locale-picker.class.d.ts.map +1 -1
- package/dist/components/forms/locale-picker/locale-picker.class.js +14 -11
- package/dist/components/forms/locale-picker/locale-picker.class.js.map +1 -1
- package/dist/components/forms/phone-input/phone-input.class.d.ts.map +1 -1
- package/dist/components/forms/phone-input/phone-input.class.js.map +1 -1
- package/dist/components/forms/radio/radio-group.class.d.ts.map +1 -1
- package/dist/components/forms/radio/radio-group.class.js +1 -0
- package/dist/components/forms/radio/radio-group.class.js.map +1 -1
- package/dist/components/forms/radio/radio.class.d.ts.map +1 -1
- package/dist/components/forms/radio/radio.class.js.map +1 -1
- package/dist/components/forms/rubric-form/rubric-form.class.d.ts +0 -1
- package/dist/components/forms/rubric-form/rubric-form.class.d.ts.map +1 -1
- package/dist/components/forms/rubric-form/rubric-form.class.js +0 -2
- package/dist/components/forms/rubric-form/rubric-form.class.js.map +1 -1
- package/dist/components/forms/select/select.class.d.ts +26 -4
- package/dist/components/forms/select/select.class.d.ts.map +1 -1
- package/dist/components/forms/select/select.class.js +40 -16
- package/dist/components/forms/select/select.class.js.map +1 -1
- package/dist/components/forms/select/select.styles.d.ts.map +1 -1
- package/dist/components/forms/select/select.styles.js +15 -5
- package/dist/components/forms/select/select.styles.js.map +1 -1
- package/dist/components/forms/slider/slider.class.d.ts.map +1 -1
- package/dist/components/forms/slider/slider.class.js.map +1 -1
- package/dist/components/forms/swatch-picker/swatch-picker.class.d.ts +16 -0
- package/dist/components/forms/swatch-picker/swatch-picker.class.d.ts.map +1 -1
- package/dist/components/forms/swatch-picker/swatch-picker.class.js +22 -4
- package/dist/components/forms/swatch-picker/swatch-picker.class.js.map +1 -1
- package/dist/components/forms/swatch-picker/swatch-picker.styles.d.ts.map +1 -1
- package/dist/components/forms/swatch-picker/swatch-picker.styles.js +31 -4
- package/dist/components/forms/swatch-picker/swatch-picker.styles.js.map +1 -1
- package/dist/components/forms/switch/switch.class.d.ts.map +1 -1
- package/dist/components/forms/switch/switch.class.js.map +1 -1
- package/dist/components/forms/textarea/textarea.class.d.ts +30 -0
- package/dist/components/forms/textarea/textarea.class.d.ts.map +1 -1
- package/dist/components/forms/textarea/textarea.class.js +54 -0
- package/dist/components/forms/textarea/textarea.class.js.map +1 -1
- package/dist/components/forms/time-range/time-range.class.d.ts +0 -1
- package/dist/components/forms/time-range/time-range.class.d.ts.map +1 -1
- package/dist/components/forms/time-range/time-range.class.js +1 -1
- package/dist/components/forms/time-range/time-range.class.js.map +1 -1
- package/dist/components/forms/token-input/token-input.class.d.ts +3 -1
- package/dist/components/forms/token-input/token-input.class.d.ts.map +1 -1
- package/dist/components/forms/token-input/token-input.class.js +8 -4
- package/dist/components/forms/token-input/token-input.class.js.map +1 -1
- package/dist/components/forms/token-input/token-input.styles.d.ts.map +1 -1
- package/dist/components/forms/token-input/token-input.styles.js +6 -1
- package/dist/components/forms/token-input/token-input.styles.js.map +1 -1
- package/dist/components/layout/app-rail/app-rail-item.class.d.ts.map +1 -1
- package/dist/components/layout/app-rail/app-rail-item.class.js.map +1 -1
- package/dist/components/layout/app-rail/app-rail.class.d.ts +21 -6
- package/dist/components/layout/app-rail/app-rail.class.d.ts.map +1 -1
- package/dist/components/layout/app-rail/app-rail.class.js +56 -10
- package/dist/components/layout/app-rail/app-rail.class.js.map +1 -1
- package/dist/components/layout/app-rail/app-rail.styles.d.ts.map +1 -1
- package/dist/components/layout/app-rail/app-rail.styles.js +21 -2
- package/dist/components/layout/app-rail/app-rail.styles.js.map +1 -1
- package/dist/components/layout/breadcrumb/breadcrumb-item.class.d.ts.map +1 -1
- package/dist/components/layout/breadcrumb/breadcrumb-item.class.js.map +1 -1
- package/dist/components/layout/breadcrumb/breadcrumb.class.d.ts.map +1 -1
- package/dist/components/layout/breadcrumb/breadcrumb.class.js.map +1 -1
- package/dist/components/layout/button-group/button-group.class.d.ts.map +1 -1
- package/dist/components/layout/button-group/button-group.class.js.map +1 -1
- package/dist/components/layout/card/card.class.d.ts +6 -0
- package/dist/components/layout/card/card.class.d.ts.map +1 -1
- package/dist/components/layout/card/card.class.js +9 -1
- package/dist/components/layout/card/card.class.js.map +1 -1
- package/dist/components/layout/carousel/carousel-item.class.d.ts.map +1 -1
- package/dist/components/layout/carousel/carousel-item.class.js.map +1 -1
- package/dist/components/layout/carousel/carousel.class.d.ts.map +1 -1
- package/dist/components/layout/carousel/carousel.class.js.map +1 -1
- package/dist/components/layout/command-palette/command-palette.class.d.ts.map +1 -1
- package/dist/components/layout/command-palette/command-palette.class.js +6 -3
- package/dist/components/layout/command-palette/command-palette.class.js.map +1 -1
- package/dist/components/layout/control-group/control-group.class.d.ts.map +1 -1
- package/dist/components/layout/control-group/control-group.class.js.map +1 -1
- package/dist/components/layout/dashboard-grid/dashboard-grid.class.d.ts.map +1 -1
- package/dist/components/layout/dashboard-grid/dashboard-grid.class.js +1 -1
- package/dist/components/layout/dashboard-grid/dashboard-grid.class.js.map +1 -1
- package/dist/components/layout/dashboard-grid/dashboard-grid.styles.d.ts.map +1 -1
- package/dist/components/layout/dashboard-grid/dashboard-grid.styles.js +2 -0
- package/dist/components/layout/dashboard-grid/dashboard-grid.styles.js.map +1 -1
- package/dist/components/layout/details/accordion.class.d.ts.map +1 -1
- package/dist/components/layout/details/accordion.class.js.map +1 -1
- package/dist/components/layout/details/details.class.d.ts.map +1 -1
- package/dist/components/layout/details/details.class.js.map +1 -1
- package/dist/components/layout/dock-panel/dock-panel.class.d.ts.map +1 -1
- package/dist/components/layout/dock-panel/dock-panel.class.js +1 -1
- package/dist/components/layout/dock-panel/dock-panel.class.js.map +1 -1
- package/dist/components/layout/drilldown-panel/drilldown-panel.class.d.ts.map +1 -1
- package/dist/components/layout/drilldown-panel/drilldown-panel.class.js +1 -1
- package/dist/components/layout/drilldown-panel/drilldown-panel.class.js.map +1 -1
- package/dist/components/layout/filter-bar/filter-bar.class.d.ts.map +1 -1
- package/dist/components/layout/filter-bar/filter-bar.class.js +1 -1
- package/dist/components/layout/filter-bar/filter-bar.class.js.map +1 -1
- package/dist/components/layout/menu/menu-item.class.d.ts.map +1 -1
- package/dist/components/layout/menu/menu-item.class.js.map +1 -1
- package/dist/components/layout/menu/menu.class.d.ts.map +1 -1
- package/dist/components/layout/menu/menu.class.js +16 -4
- package/dist/components/layout/menu/menu.class.js.map +1 -1
- package/dist/components/layout/reorder-list/reorder-item.class.d.ts +9 -2
- package/dist/components/layout/reorder-list/reorder-item.class.d.ts.map +1 -1
- package/dist/components/layout/reorder-list/reorder-item.class.js +12 -2
- package/dist/components/layout/reorder-list/reorder-item.class.js.map +1 -1
- package/dist/components/layout/reorder-list/reorder-list.class.d.ts +30 -4
- package/dist/components/layout/reorder-list/reorder-list.class.d.ts.map +1 -1
- package/dist/components/layout/reorder-list/reorder-list.class.js +75 -16
- package/dist/components/layout/reorder-list/reorder-list.class.js.map +1 -1
- package/dist/components/layout/responsive-panel/responsive-panel.class.d.ts.map +1 -1
- package/dist/components/layout/responsive-panel/responsive-panel.class.js.map +1 -1
- package/dist/components/layout/scroller/scroller.class.d.ts.map +1 -1
- package/dist/components/layout/scroller/scroller.class.js.map +1 -1
- package/dist/components/layout/segmented/segmented.class.d.ts +10 -1
- package/dist/components/layout/segmented/segmented.class.d.ts.map +1 -1
- package/dist/components/layout/segmented/segmented.class.js +29 -2
- package/dist/components/layout/segmented/segmented.class.js.map +1 -1
- package/dist/components/layout/split/split.class.d.ts +14 -14
- package/dist/components/layout/split/split.class.d.ts.map +1 -1
- package/dist/components/layout/split/split.class.js +90 -60
- package/dist/components/layout/split/split.class.js.map +1 -1
- package/dist/components/layout/stepper/stepper.class.d.ts +0 -7
- package/dist/components/layout/stepper/stepper.class.d.ts.map +1 -1
- package/dist/components/layout/stepper/stepper.class.js +1 -10
- package/dist/components/layout/stepper/stepper.class.js.map +1 -1
- package/dist/components/layout/tabs/tabs.class.d.ts.map +1 -1
- package/dist/components/layout/tabs/tabs.class.js +2 -2
- package/dist/components/layout/tabs/tabs.class.js.map +1 -1
- package/dist/components/layout/virtual-list/virtual-list.class.d.ts.map +1 -1
- package/dist/components/layout/virtual-list/virtual-list.class.js +7 -4
- package/dist/components/layout/virtual-list/virtual-list.class.js.map +1 -1
- package/dist/components/layout/widget/widget.class.d.ts +10 -0
- package/dist/components/layout/widget/widget.class.d.ts.map +1 -1
- package/dist/components/layout/widget/widget.class.js +29 -1
- package/dist/components/layout/widget/widget.class.js.map +1 -1
- package/dist/components/media/animated-image/animated-image.class.d.ts.map +1 -1
- package/dist/components/media/animated-image/animated-image.class.js.map +1 -1
- package/dist/components/media/animation/animation.class.d.ts.map +1 -1
- package/dist/components/media/animation/animation.class.js +4 -1
- package/dist/components/media/animation/animation.class.js.map +1 -1
- package/dist/components/media/attachment-chip/attachment-chip.class.d.ts.map +1 -1
- package/dist/components/media/attachment-chip/attachment-chip.class.js +1 -1
- package/dist/components/media/attachment-chip/attachment-chip.class.js.map +1 -1
- package/dist/components/media/attachment-chip/attachment-chip.styles.d.ts.map +1 -1
- package/dist/components/media/attachment-chip/attachment-chip.styles.js +7 -8
- package/dist/components/media/attachment-chip/attachment-chip.styles.js.map +1 -1
- package/dist/components/media/attachment-trigger/attachment-trigger.class.d.ts.map +1 -1
- package/dist/components/media/attachment-trigger/attachment-trigger.class.js +5 -2
- package/dist/components/media/attachment-trigger/attachment-trigger.class.js.map +1 -1
- package/dist/components/media/av-player/av-player.class.d.ts.map +1 -1
- package/dist/components/media/av-player/av-player.class.js.map +1 -1
- package/dist/components/media/avatar/avatar.class.d.ts.map +1 -1
- package/dist/components/media/avatar/avatar.class.js.map +1 -1
- package/dist/components/media/avatar-group/avatar-group.class.d.ts.map +1 -1
- package/dist/components/media/avatar-group/avatar-group.class.js.map +1 -1
- package/dist/components/media/file-icon/file-icon.class.d.ts.map +1 -1
- package/dist/components/media/file-icon/file-icon.class.js.map +1 -1
- package/dist/components/media/file-icon/file-type-metadata.js +1 -1
- package/dist/components/media/file-icon/file-type-metadata.js.map +1 -1
- package/dist/components/media/file-input/file-input.class.d.ts +16 -1
- package/dist/components/media/file-input/file-input.class.d.ts.map +1 -1
- package/dist/components/media/file-input/file-input.class.js +42 -2
- package/dist/components/media/file-input/file-input.class.js.map +1 -1
- package/dist/components/media/file-input/file-input.styles.d.ts.map +1 -1
- package/dist/components/media/file-input/file-input.styles.js +12 -0
- package/dist/components/media/file-input/file-input.styles.js.map +1 -1
- package/dist/components/media/flag/flag.class.d.ts.map +1 -1
- package/dist/components/media/flag/flag.class.js.map +1 -1
- package/dist/components/media/flag/language-map.js +1 -1
- package/dist/components/media/flag/language-map.js.map +1 -1
- package/dist/components/media/image-comparer/image-comparer.class.d.ts.map +1 -1
- package/dist/components/media/image-comparer/image-comparer.class.js.map +1 -1
- package/dist/components/media/image-viewer/image-viewer.class.d.ts.map +1 -1
- package/dist/components/media/image-viewer/image-viewer.class.js.map +1 -1
- package/dist/components/media/lightbox/lightbox.class.d.ts.map +1 -1
- package/dist/components/media/lightbox/lightbox.class.js.map +1 -1
- package/dist/components/media/map/map.class.d.ts.map +1 -1
- package/dist/components/media/map/map.class.js.map +1 -1
- package/dist/components/media/media-card/media-card.class.d.ts +6 -2
- package/dist/components/media/media-card/media-card.class.d.ts.map +1 -1
- package/dist/components/media/media-card/media-card.class.js +7 -3
- package/dist/components/media/media-card/media-card.class.js.map +1 -1
- package/dist/components/media/playback/playback.class.d.ts.map +1 -1
- package/dist/components/media/playback/playback.class.js.map +1 -1
- package/dist/components/media/qr-code/qr-code.class.d.ts +1 -6
- package/dist/components/media/qr-code/qr-code.class.d.ts.map +1 -1
- package/dist/components/media/qr-code/qr-code.class.js +31 -70
- package/dist/components/media/qr-code/qr-code.class.js.map +1 -1
- package/dist/components/media/zoomable-frame/zoomable-frame.class.d.ts.map +1 -1
- package/dist/components/media/zoomable-frame/zoomable-frame.class.js +1 -1
- package/dist/components/media/zoomable-frame/zoomable-frame.class.js.map +1 -1
- package/dist/components/overlays/badge/badge.class.d.ts +2 -0
- package/dist/components/overlays/badge/badge.class.d.ts.map +1 -1
- package/dist/components/overlays/badge/badge.class.js +2 -0
- package/dist/components/overlays/badge/badge.class.js.map +1 -1
- package/dist/components/overlays/badge/badge.styles.d.ts.map +1 -1
- package/dist/components/overlays/badge/badge.styles.js +4 -1
- package/dist/components/overlays/badge/badge.styles.js.map +1 -1
- package/dist/components/overlays/callout/callout.class.d.ts.map +1 -1
- package/dist/components/overlays/callout/callout.class.js.map +1 -1
- package/dist/components/overlays/chip/chip-group.class.d.ts.map +1 -1
- package/dist/components/overlays/chip/chip-group.class.js.map +1 -1
- package/dist/components/overlays/chip/chip.class.d.ts +2 -0
- package/dist/components/overlays/chip/chip.class.d.ts.map +1 -1
- package/dist/components/overlays/chip/chip.class.js +2 -0
- package/dist/components/overlays/chip/chip.class.js.map +1 -1
- package/dist/components/overlays/chip/chip.styles.d.ts.map +1 -1
- package/dist/components/overlays/chip/chip.styles.js +7 -2
- package/dist/components/overlays/chip/chip.styles.js.map +1 -1
- package/dist/components/overlays/dialog/dialog.class.d.ts.map +1 -1
- package/dist/components/overlays/dialog/dialog.class.js.map +1 -1
- package/dist/components/overlays/drawer/drawer.class.d.ts.map +1 -1
- package/dist/components/overlays/drawer/drawer.class.js.map +1 -1
- package/dist/components/overlays/empty/empty.class.d.ts +3 -0
- package/dist/components/overlays/empty/empty.class.d.ts.map +1 -1
- package/dist/components/overlays/empty/empty.class.js +3 -0
- package/dist/components/overlays/empty/empty.class.js.map +1 -1
- package/dist/components/overlays/empty/empty.styles.d.ts.map +1 -1
- package/dist/components/overlays/empty/empty.styles.js +6 -0
- package/dist/components/overlays/empty/empty.styles.js.map +1 -1
- package/dist/components/overlays/kbd/kbd.class.d.ts.map +1 -1
- package/dist/components/overlays/kbd/kbd.class.js.map +1 -1
- package/dist/components/overlays/overlay/popover.class.d.ts +9 -0
- package/dist/components/overlays/overlay/popover.class.d.ts.map +1 -1
- package/dist/components/overlays/overlay/popover.class.js +13 -0
- package/dist/components/overlays/overlay/popover.class.js.map +1 -1
- package/dist/components/overlays/overlay/tooltip.class.d.ts.map +1 -1
- package/dist/components/overlays/overlay/tooltip.class.js.map +1 -1
- package/dist/components/overlays/progress/progress-bar.class.d.ts.map +1 -1
- package/dist/components/overlays/progress/progress-bar.class.js.map +1 -1
- package/dist/components/overlays/progress/progress-ring.class.d.ts.map +1 -1
- package/dist/components/overlays/progress/progress-ring.class.js.map +1 -1
- package/dist/components/overlays/rating/rating.class.d.ts.map +1 -1
- package/dist/components/overlays/rating/rating.class.js +1 -1
- package/dist/components/overlays/rating/rating.class.js.map +1 -1
- package/dist/components/overlays/skeleton/skeleton.class.d.ts.map +1 -1
- package/dist/components/overlays/skeleton/skeleton.class.js.map +1 -1
- package/dist/components/overlays/spinner/spinner.class.d.ts.map +1 -1
- package/dist/components/overlays/spinner/spinner.class.js.map +1 -1
- package/dist/components/overlays/toast/toast-item.class.d.ts.map +1 -1
- package/dist/components/overlays/toast/toast-item.class.js.map +1 -1
- package/dist/components/overlays/toast/toast.class.d.ts.map +1 -1
- package/dist/components/overlays/toast/toast.class.js.map +1 -1
- package/dist/components/retrieval/chunk-inspector/chunk-inspector.class.d.ts +1 -0
- package/dist/components/retrieval/chunk-inspector/chunk-inspector.class.d.ts.map +1 -1
- package/dist/components/retrieval/chunk-inspector/chunk-inspector.class.js +11 -5
- package/dist/components/retrieval/chunk-inspector/chunk-inspector.class.js.map +1 -1
- package/dist/components/retrieval/citation-badge/citation-badge.class.d.ts.map +1 -1
- package/dist/components/retrieval/citation-badge/citation-badge.class.js.map +1 -1
- package/dist/components/retrieval/community-card/community-card.class.d.ts.map +1 -1
- package/dist/components/retrieval/community-card/community-card.class.js.map +1 -1
- package/dist/components/retrieval/embedding-explorer/embedding-explorer.class.d.ts +54 -0
- package/dist/components/retrieval/embedding-explorer/embedding-explorer.class.d.ts.map +1 -0
- package/dist/components/retrieval/embedding-explorer/embedding-explorer.class.js +147 -0
- package/dist/components/retrieval/embedding-explorer/embedding-explorer.class.js.map +1 -0
- package/dist/components/retrieval/embedding-explorer/embedding-explorer.d.ts +2 -0
- package/dist/components/retrieval/embedding-explorer/embedding-explorer.d.ts.map +1 -0
- package/dist/components/retrieval/embedding-explorer/embedding-explorer.js +5 -0
- package/dist/components/retrieval/embedding-explorer/embedding-explorer.js.map +1 -0
- package/dist/components/retrieval/embedding-explorer/embedding-explorer.styles.d.ts +2 -0
- package/dist/components/retrieval/embedding-explorer/embedding-explorer.styles.d.ts.map +1 -0
- package/dist/components/retrieval/embedding-explorer/embedding-explorer.styles.js +51 -0
- package/dist/components/retrieval/embedding-explorer/embedding-explorer.styles.js.map +1 -0
- package/dist/components/retrieval/entity-card/entity-card.class.d.ts.map +1 -1
- package/dist/components/retrieval/entity-card/entity-card.class.js.map +1 -1
- package/dist/components/retrieval/entity-chip/entity-chip.class.d.ts.map +1 -1
- package/dist/components/retrieval/entity-chip/entity-chip.class.js.map +1 -1
- package/dist/components/retrieval/entity-dossier/entity-dossier.class.d.ts.map +1 -1
- package/dist/components/retrieval/entity-dossier/entity-dossier.class.js.map +1 -1
- package/dist/components/retrieval/graph/graph-loader.d.ts +5 -5
- package/dist/components/retrieval/graph/graph-loader.d.ts.map +1 -1
- package/dist/components/retrieval/graph/graph-loader.js.map +1 -1
- package/dist/components/retrieval/graph/graph.class.d.ts +1 -0
- package/dist/components/retrieval/graph/graph.class.d.ts.map +1 -1
- package/dist/components/retrieval/graph/graph.class.js +30 -9
- package/dist/components/retrieval/graph/graph.class.js.map +1 -1
- package/dist/components/retrieval/graph-legend/graph-legend.class.d.ts.map +1 -1
- package/dist/components/retrieval/graph-legend/graph-legend.class.js.map +1 -1
- package/dist/components/retrieval/grounding-summary/grounding-summary.class.d.ts.map +1 -1
- package/dist/components/retrieval/grounding-summary/grounding-summary.class.js.map +1 -1
- package/dist/components/retrieval/ingestion-queue/ingestion-queue.class.d.ts.map +1 -1
- package/dist/components/retrieval/ingestion-queue/ingestion-queue.class.js.map +1 -1
- package/dist/components/retrieval/knowledge-base/knowledge-base.class.d.ts.map +1 -1
- package/dist/components/retrieval/knowledge-base/knowledge-base.class.js.map +1 -1
- package/dist/components/retrieval/knowledge-base-admin/knowledge-base-admin.class.d.ts +73 -0
- package/dist/components/retrieval/knowledge-base-admin/knowledge-base-admin.class.d.ts.map +1 -0
- package/dist/components/retrieval/knowledge-base-admin/knowledge-base-admin.class.js +109 -0
- package/dist/components/retrieval/knowledge-base-admin/knowledge-base-admin.class.js.map +1 -0
- package/dist/components/retrieval/knowledge-base-admin/knowledge-base-admin.d.ts +2 -0
- package/dist/components/retrieval/knowledge-base-admin/knowledge-base-admin.d.ts.map +1 -0
- package/dist/components/retrieval/knowledge-base-admin/knowledge-base-admin.js +5 -0
- package/dist/components/retrieval/knowledge-base-admin/knowledge-base-admin.js.map +1 -0
- package/dist/components/retrieval/knowledge-base-admin/knowledge-base-admin.styles.d.ts +2 -0
- package/dist/components/retrieval/knowledge-base-admin/knowledge-base-admin.styles.d.ts.map +1 -0
- package/dist/components/retrieval/knowledge-base-admin/knowledge-base-admin.styles.js +56 -0
- package/dist/components/retrieval/knowledge-base-admin/knowledge-base-admin.styles.js.map +1 -0
- package/dist/components/retrieval/knowledge-graph-explorer/knowledge-graph-explorer.class.d.ts +1 -0
- package/dist/components/retrieval/knowledge-graph-explorer/knowledge-graph-explorer.class.d.ts.map +1 -1
- package/dist/components/retrieval/knowledge-graph-explorer/knowledge-graph-explorer.class.js +20 -5
- package/dist/components/retrieval/knowledge-graph-explorer/knowledge-graph-explorer.class.js.map +1 -1
- package/dist/components/retrieval/memory-panel/memory-panel.class.d.ts.map +1 -1
- package/dist/components/retrieval/memory-panel/memory-panel.class.js.map +1 -1
- package/dist/components/retrieval/mind-map/mind-map.class.d.ts.map +1 -1
- package/dist/components/retrieval/mind-map/mind-map.class.js.map +1 -1
- package/dist/components/retrieval/neighbor-list/neighbor-list.class.d.ts.map +1 -1
- package/dist/components/retrieval/neighbor-list/neighbor-list.class.js.map +1 -1
- package/dist/components/retrieval/node-palette/node-palette.class.d.ts.map +1 -1
- package/dist/components/retrieval/node-palette/node-palette.class.js.map +1 -1
- package/dist/components/retrieval/path-strip/path-strip.class.d.ts.map +1 -1
- package/dist/components/retrieval/path-strip/path-strip.class.js.map +1 -1
- package/dist/components/retrieval/provenance-panel/provenance-panel.class.d.ts.map +1 -1
- package/dist/components/retrieval/provenance-panel/provenance-panel.class.js.map +1 -1
- package/dist/components/retrieval/rag-answer/rag-answer.class.d.ts +58 -0
- package/dist/components/retrieval/rag-answer/rag-answer.class.d.ts.map +1 -0
- package/dist/components/retrieval/rag-answer/rag-answer.class.js +110 -0
- package/dist/components/retrieval/rag-answer/rag-answer.class.js.map +1 -0
- package/dist/components/retrieval/rag-answer/rag-answer.d.ts +2 -0
- package/dist/components/retrieval/rag-answer/rag-answer.d.ts.map +1 -0
- package/dist/components/retrieval/rag-answer/rag-answer.js +5 -0
- package/dist/components/retrieval/rag-answer/rag-answer.js.map +1 -0
- package/dist/components/retrieval/rag-answer/rag-answer.styles.d.ts +2 -0
- package/dist/components/retrieval/rag-answer/rag-answer.styles.d.ts.map +1 -0
- package/dist/components/retrieval/rag-answer/rag-answer.styles.js +13 -0
- package/dist/components/retrieval/rag-answer/rag-answer.styles.js.map +1 -0
- package/dist/components/retrieval/retrieval-results/retrieval-results.class.d.ts.map +1 -1
- package/dist/components/retrieval/retrieval-results/retrieval-results.class.js +20 -5
- package/dist/components/retrieval/retrieval-results/retrieval-results.class.js.map +1 -1
- package/dist/components/retrieval/retrieval-search/retrieval-search.class.d.ts.map +1 -1
- package/dist/components/retrieval/retrieval-search/retrieval-search.class.js.map +1 -1
- package/dist/components/retrieval/retrieval-trace/retrieval-trace.class.d.ts.map +1 -1
- package/dist/components/retrieval/retrieval-trace/retrieval-trace.class.js.map +1 -1
- package/dist/components/retrieval/source-card/source-card.class.d.ts.map +1 -1
- package/dist/components/retrieval/source-card/source-card.class.js.map +1 -1
- package/dist/components/retrieval/source-list/source-list.class.d.ts.map +1 -1
- package/dist/components/retrieval/source-list/source-list.class.js.map +1 -1
- package/dist/components/retrieval/source-picker/source-picker.class.d.ts.map +1 -1
- package/dist/components/retrieval/source-picker/source-picker.class.js.map +1 -1
- package/dist/components/utility/copy-button/copy-button.class.d.ts.map +1 -1
- package/dist/components/utility/copy-button/copy-button.class.js.map +1 -1
- package/dist/components/utility/diff-view/diff-view.class.d.ts +4 -2
- package/dist/components/utility/diff-view/diff-view.class.d.ts.map +1 -1
- package/dist/components/utility/diff-view/diff-view.class.js +16 -6
- package/dist/components/utility/diff-view/diff-view.class.js.map +1 -1
- package/dist/components/utility/divider/divider.class.d.ts.map +1 -1
- package/dist/components/utility/divider/divider.class.js.map +1 -1
- package/dist/components/utility/export-button/export-button.class.d.ts.map +1 -1
- package/dist/components/utility/export-button/export-button.class.js.map +1 -1
- package/dist/components/utility/format/format-bytes.class.d.ts.map +1 -1
- package/dist/components/utility/format/format-bytes.class.js.map +1 -1
- package/dist/components/utility/format/format-date.class.d.ts.map +1 -1
- package/dist/components/utility/format/format-date.class.js.map +1 -1
- package/dist/components/utility/format/format-number.class.d.ts.map +1 -1
- package/dist/components/utility/format/format-number.class.js.map +1 -1
- package/dist/components/utility/format/relative-time.class.d.ts.map +1 -1
- package/dist/components/utility/format/relative-time.class.js.map +1 -1
- package/dist/components/utility/icon/icon.class.d.ts.map +1 -1
- package/dist/components/utility/icon/icon.class.js +5 -0
- package/dist/components/utility/icon/icon.class.js.map +1 -1
- package/dist/components/utility/intersection-observer/intersection-observer.class.d.ts.map +1 -1
- package/dist/components/utility/intersection-observer/intersection-observer.class.js.map +1 -1
- package/dist/components/utility/json-viewer/json-viewer.class.d.ts.map +1 -1
- package/dist/components/utility/json-viewer/json-viewer.class.js.map +1 -1
- package/dist/components/utility/known-date/known-date.class.d.ts.map +1 -1
- package/dist/components/utility/known-date/known-date.class.js +2 -2
- package/dist/components/utility/known-date/known-date.class.js.map +1 -1
- package/dist/components/utility/live-region/live-region.class.d.ts.map +1 -1
- package/dist/components/utility/live-region/live-region.class.js.map +1 -1
- package/dist/components/utility/mention-popover/mention-popover.class.d.ts.map +1 -1
- package/dist/components/utility/mention-popover/mention-popover.class.js +2 -2
- package/dist/components/utility/mention-popover/mention-popover.class.js.map +1 -1
- package/dist/components/utility/mutation-observer/mutation-observer.class.d.ts.map +1 -1
- package/dist/components/utility/mutation-observer/mutation-observer.class.js.map +1 -1
- package/dist/components/utility/poll-status/poll-status.class.d.ts.map +1 -1
- package/dist/components/utility/poll-status/poll-status.class.js.map +1 -1
- package/dist/components/utility/random-content/random-content.class.d.ts.map +1 -1
- package/dist/components/utility/random-content/random-content.class.js +3 -2
- package/dist/components/utility/random-content/random-content.class.js.map +1 -1
- package/dist/components/utility/resize-observer/resize-observer.class.d.ts.map +1 -1
- package/dist/components/utility/resize-observer/resize-observer.class.js.map +1 -1
- package/dist/components/utility/tour/tour.class.d.ts.map +1 -1
- package/dist/components/utility/tour/tour.class.js.map +1 -1
- package/dist/components/viewers/archive-viewer/archive-viewer.class.d.ts +16 -2
- package/dist/components/viewers/archive-viewer/archive-viewer.class.d.ts.map +1 -1
- package/dist/components/viewers/archive-viewer/archive-viewer.class.js +14 -4
- package/dist/components/viewers/archive-viewer/archive-viewer.class.js.map +1 -1
- package/dist/components/viewers/calendar-viewer/calendar-viewer.class.d.ts +14 -2
- package/dist/components/viewers/calendar-viewer/calendar-viewer.class.d.ts.map +1 -1
- package/dist/components/viewers/calendar-viewer/calendar-viewer.class.js +10 -2
- package/dist/components/viewers/calendar-viewer/calendar-viewer.class.js.map +1 -1
- package/dist/components/viewers/contact-viewer/contact-viewer.class.d.ts +14 -2
- package/dist/components/viewers/contact-viewer/contact-viewer.class.d.ts.map +1 -1
- package/dist/components/viewers/contact-viewer/contact-viewer.class.js +10 -2
- package/dist/components/viewers/contact-viewer/contact-viewer.class.js.map +1 -1
- package/dist/components/viewers/contact-viewer/vcard.d.ts.map +1 -1
- package/dist/components/viewers/contact-viewer/vcard.js +11 -9
- package/dist/components/viewers/contact-viewer/vcard.js.map +1 -1
- package/dist/components/viewers/csv-viewer/csv-viewer.class.d.ts.map +1 -1
- package/dist/components/viewers/csv-viewer/csv-viewer.class.js.map +1 -1
- package/dist/components/viewers/dataset-viewer/dataset-viewer.class.d.ts.map +1 -1
- package/dist/components/viewers/dataset-viewer/dataset-viewer.class.js.map +1 -1
- package/dist/components/viewers/document-compare/document-compare.class.d.ts.map +1 -1
- package/dist/components/viewers/document-compare/document-compare.class.js.map +1 -1
- package/dist/components/viewers/document-preview/document-preview.class.d.ts.map +1 -1
- package/dist/components/viewers/document-preview/document-preview.class.js +2 -2
- package/dist/components/viewers/document-preview/document-preview.class.js.map +1 -1
- package/dist/components/viewers/document-viewer/document-viewer.class.d.ts.map +1 -1
- package/dist/components/viewers/document-viewer/document-viewer.class.js +2 -2
- package/dist/components/viewers/document-viewer/document-viewer.class.js.map +1 -1
- package/dist/components/viewers/docx-viewer/docx-viewer.class.d.ts.map +1 -1
- package/dist/components/viewers/docx-viewer/docx-viewer.class.js +2 -2
- package/dist/components/viewers/docx-viewer/docx-viewer.class.js.map +1 -1
- package/dist/components/viewers/ebook-viewer/ebook-viewer.class.d.ts.map +1 -1
- package/dist/components/viewers/ebook-viewer/ebook-viewer.class.js.map +1 -1
- package/dist/components/viewers/email-viewer/email-viewer.class.d.ts +14 -2
- package/dist/components/viewers/email-viewer/email-viewer.class.d.ts.map +1 -1
- package/dist/components/viewers/email-viewer/email-viewer.class.js +10 -2
- package/dist/components/viewers/email-viewer/email-viewer.class.js.map +1 -1
- package/dist/components/viewers/geojson-view/geojson-view.class.d.ts +15 -2
- package/dist/components/viewers/geojson-view/geojson-view.class.d.ts.map +1 -1
- package/dist/components/viewers/geojson-view/geojson-view.class.js +13 -2
- package/dist/components/viewers/geojson-view/geojson-view.class.js.map +1 -1
- package/dist/components/viewers/highlight-layer/highlight-layer.class.d.ts.map +1 -1
- package/dist/components/viewers/highlight-layer/highlight-layer.class.js +3 -3
- package/dist/components/viewers/highlight-layer/highlight-layer.class.js.map +1 -1
- package/dist/components/viewers/html-viewer/html-viewer.class.d.ts +14 -2
- package/dist/components/viewers/html-viewer/html-viewer.class.d.ts.map +1 -1
- package/dist/components/viewers/html-viewer/html-viewer.class.js +11 -3
- package/dist/components/viewers/html-viewer/html-viewer.class.js.map +1 -1
- package/dist/components/viewers/include/include.class.d.ts +15 -2
- package/dist/components/viewers/include/include.class.d.ts.map +1 -1
- package/dist/components/viewers/include/include.class.js +13 -2
- package/dist/components/viewers/include/include.class.js.map +1 -1
- package/dist/components/viewers/notebook-viewer/notebook-viewer.class.d.ts.map +1 -1
- package/dist/components/viewers/notebook-viewer/notebook-viewer.class.js +1 -1
- package/dist/components/viewers/notebook-viewer/notebook-viewer.class.js.map +1 -1
- package/dist/components/viewers/page-rail/page-rail.class.d.ts.map +1 -1
- package/dist/components/viewers/page-rail/page-rail.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 +5 -2
- package/dist/components/viewers/pdf-viewer/pdf-viewer.class.js.map +1 -1
- package/dist/components/viewers/pptx-viewer/pptx-viewer.class.d.ts +15 -2
- package/dist/components/viewers/pptx-viewer/pptx-viewer.class.d.ts.map +1 -1
- package/dist/components/viewers/pptx-viewer/pptx-viewer.class.js +14 -3
- package/dist/components/viewers/pptx-viewer/pptx-viewer.class.js.map +1 -1
- package/dist/components/viewers/spreadsheet-viewer/spreadsheet-viewer.class.d.ts.map +1 -1
- package/dist/components/viewers/spreadsheet-viewer/spreadsheet-viewer.class.js.map +1 -1
- package/dist/components/viewers/svg-viewer/svg-viewer.class.d.ts.map +1 -1
- package/dist/components/viewers/svg-viewer/svg-viewer.class.js.map +1 -1
- package/dist/components/viewers/xml-viewer/xml-viewer.class.d.ts.map +1 -1
- package/dist/components/viewers/xml-viewer/xml-viewer.class.js +0 -0
- package/dist/components/viewers/xml-viewer/xml-viewer.class.js.map +1 -1
- package/dist/internal/anchor-target.js.map +1 -1
- package/dist/internal/anchored-validity.js +0 -1
- package/dist/internal/anchored-validity.js.map +1 -1
- package/dist/internal/ansi.d.ts.map +1 -1
- package/dist/internal/ansi.js +14 -7
- package/dist/internal/ansi.js.map +1 -1
- package/dist/internal/cell-range.d.ts.map +1 -1
- package/dist/internal/cell-range.js +1 -0
- package/dist/internal/cell-range.js.map +1 -1
- package/dist/internal/css-length.d.ts.map +1 -1
- package/dist/internal/css-length.js +1 -0
- package/dist/internal/css-length.js.map +1 -1
- package/dist/internal/form-associated.d.ts.map +1 -1
- package/dist/internal/form-associated.js +57 -1
- package/dist/internal/form-associated.js.map +1 -1
- package/dist/internal/length-constraints.d.ts +27 -0
- package/dist/internal/length-constraints.d.ts.map +1 -0
- package/dist/internal/length-constraints.js +42 -0
- package/dist/internal/length-constraints.js.map +1 -0
- package/dist/internal/localization.d.ts +1 -1
- package/dist/internal/localization.d.ts.map +1 -1
- package/dist/internal/localization.js +27 -0
- package/dist/internal/localization.js.map +1 -1
- package/dist/internal/lyra-element.d.ts.map +1 -1
- package/dist/internal/lyra-element.js.map +1 -1
- package/dist/internal/numbers.d.ts.map +1 -1
- package/dist/internal/numbers.js +3 -1
- package/dist/internal/numbers.js.map +1 -1
- package/dist/internal/overlay-manager.d.ts.map +1 -1
- package/dist/internal/overlay-manager.js +13 -8
- package/dist/internal/overlay-manager.js.map +1 -1
- package/dist/internal/persisted-state.d.ts +27 -0
- package/dist/internal/persisted-state.d.ts.map +1 -0
- package/dist/internal/persisted-state.js +57 -0
- package/dist/internal/persisted-state.js.map +1 -0
- package/dist/internal/root-registration-allowlist.d.ts +1 -1
- package/dist/internal/root-registration-allowlist.d.ts.map +1 -1
- package/dist/internal/root-registration-allowlist.js +5 -0
- package/dist/internal/root-registration-allowlist.js.map +1 -1
- package/dist/internal/safe-url.d.ts +13 -2
- package/dist/internal/safe-url.d.ts.map +1 -1
- package/dist/internal/safe-url.js +27 -4
- package/dist/internal/safe-url.js.map +1 -1
- package/dist/internal/strip-host-title.js.map +1 -1
- package/dist/internal/text-quote.d.ts +4 -0
- package/dist/internal/text-quote.d.ts.map +1 -1
- package/dist/internal/text-quote.js +28 -7
- package/dist/internal/text-quote.js.map +1 -1
- package/dist/internal/text-viewer-target.d.ts +27 -0
- package/dist/internal/text-viewer-target.d.ts.map +1 -0
- package/dist/internal/text-viewer-target.js +179 -0
- package/dist/internal/text-viewer-target.js.map +1 -0
- package/dist/internal/theme-watcher.d.ts +32 -0
- package/dist/internal/theme-watcher.d.ts.map +1 -0
- package/dist/internal/theme-watcher.js +67 -0
- package/dist/internal/theme-watcher.js.map +1 -0
- package/dist/lyra.d.ts +17 -5
- package/dist/lyra.d.ts.map +1 -1
- package/dist/lyra.js +11 -0
- package/dist/lyra.js.map +1 -1
- package/dist/theme/gemstones.d.ts +22 -0
- package/dist/theme/gemstones.d.ts.map +1 -0
- package/dist/theme/gemstones.js +44 -0
- package/dist/theme/gemstones.js.map +1 -0
- package/dist/theme/theme.d.ts +60 -0
- package/dist/theme/theme.d.ts.map +1 -0
- package/dist/theme/theme.js +132 -0
- package/dist/theme/theme.js.map +1 -0
- package/llms/components/lr-accordion-item.md +1 -0
- package/llms/components/lr-accordion.md +1 -0
- package/llms/components/lr-activity-feed.md +1 -0
- package/llms/components/lr-agent-eval-dashboard.md +29 -0
- package/llms/components/lr-agent-run.md +1 -0
- package/llms/components/lr-agent-trace.md +1 -0
- package/llms/components/lr-agent-workspace.md +1 -0
- package/llms/components/lr-animated-image.md +1 -0
- package/llms/components/lr-animation.md +1 -0
- package/llms/components/lr-app-rail-item.md +14 -5
- package/llms/components/lr-app-rail.md +14 -5
- package/llms/components/lr-approval-queue.md +27 -0
- package/llms/components/lr-archive-viewer.md +9 -3
- package/llms/components/lr-artifact-panel.md +1 -0
- package/llms/components/lr-attachment-chip.md +1 -0
- package/llms/components/lr-attachment-trigger.md +1 -0
- package/llms/components/lr-audio-visualizer.md +1 -0
- package/llms/components/lr-av-player.md +1 -0
- package/llms/components/lr-avatar-group.md +1 -0
- package/llms/components/lr-avatar.md +1 -0
- package/llms/components/lr-badge.md +4 -0
- package/llms/components/lr-bar-chart.md +5 -3
- package/llms/components/lr-box-plot.md +5 -3
- package/llms/components/lr-branch-picker.md +1 -0
- package/llms/components/lr-breadcrumb-item.md +1 -0
- package/llms/components/lr-breadcrumb.md +1 -0
- package/llms/components/lr-browser-frame.md +1 -0
- package/llms/components/lr-bubble-chart.md +5 -3
- package/llms/components/lr-button-group.md +1 -0
- package/llms/components/lr-button.md +29 -3
- package/llms/components/lr-calendar-viewer.md +7 -1
- package/llms/components/lr-calendar.md +1 -0
- package/llms/components/lr-callout.md +1 -0
- package/llms/components/lr-card.md +6 -0
- package/llms/components/lr-carousel-item.md +1 -0
- package/llms/components/lr-carousel.md +1 -0
- package/llms/components/lr-chart.md +50 -14
- package/llms/components/lr-chat-composer.md +1 -0
- package/llms/components/lr-chat-message.md +6 -0
- package/llms/components/lr-chat-viewport.md +1 -0
- package/llms/components/lr-checkbox-group.md +1 -0
- package/llms/components/lr-checkbox.md +5 -0
- package/llms/components/lr-checkpoint.md +1 -0
- package/llms/components/lr-chip-group.md +4 -0
- package/llms/components/lr-chip.md +4 -0
- package/llms/components/lr-chunk-inspector.md +1 -0
- package/llms/components/lr-citation-badge.md +6 -0
- package/llms/components/lr-code-block-core.md +1 -0
- package/llms/components/lr-code-block.md +1 -0
- package/llms/components/lr-code-editor.md +1 -0
- package/llms/components/lr-color-picker.md +1 -0
- package/llms/components/lr-combobox.md +65 -15
- package/llms/components/lr-command-palette.md +1 -0
- package/llms/components/lr-commit-card.md +1 -0
- package/llms/components/lr-community-card.md +1 -0
- package/llms/components/lr-compare-panel.md +1 -0
- package/llms/components/lr-confirm-bar.md +1 -0
- package/llms/components/lr-contact-viewer.md +7 -1
- package/llms/components/lr-context-inspector.md +1 -0
- package/llms/components/lr-context-meter.md +1 -0
- package/llms/components/lr-control-group.md +1 -0
- package/llms/components/lr-conversation-item.md +10 -2
- package/llms/components/lr-copy-button.md +1 -0
- package/llms/components/lr-csv-viewer.md +1 -0
- package/llms/components/lr-dashboard-grid.md +1 -0
- package/llms/components/lr-dataset-viewer.md +1 -0
- package/llms/components/lr-date-input.md +1 -0
- package/llms/components/lr-date-picker.md +1 -0
- package/llms/components/lr-details.md +1 -0
- package/llms/components/lr-dialog.md +1 -0
- package/llms/components/lr-diff-view.md +1 -0
- package/llms/components/lr-divider.md +1 -0
- package/llms/components/lr-dock-panel.md +1 -0
- package/llms/components/lr-document-compare.md +1 -0
- package/llms/components/lr-document-library.md +1 -0
- package/llms/components/lr-document-preview.md +5 -3
- package/llms/components/lr-document-viewer.md +1 -0
- package/llms/components/lr-docx-viewer.md +1 -0
- package/llms/components/lr-doughnut-chart.md +5 -3
- package/llms/components/lr-drawer.md +1 -0
- package/llms/components/lr-drilldown-panel.md +1 -0
- package/llms/components/lr-dropdown-item.md +1 -0
- package/llms/components/lr-dropdown.md +1 -0
- package/llms/components/lr-ebook-viewer.md +1 -0
- package/llms/components/lr-email-viewer.md +7 -1
- package/llms/components/lr-embedding-explorer.md +26 -0
- package/llms/components/lr-emoji-picker.md +1 -0
- package/llms/components/lr-empty.md +4 -1
- package/llms/components/lr-entity-card.md +1 -0
- package/llms/components/lr-entity-chip.md +1 -0
- package/llms/components/lr-entity-dossier.md +1 -0
- package/llms/components/lr-env-list.md +1 -0
- package/llms/components/lr-eval-dataset.md +1 -0
- package/llms/components/lr-eval-result.md +1 -0
- package/llms/components/lr-evaluation-run.md +1 -0
- package/llms/components/lr-export-button.md +1 -0
- package/llms/components/lr-file-icon.md +1 -0
- package/llms/components/lr-file-input.md +14 -1
- package/llms/components/lr-file-tree.md +1 -0
- package/llms/components/lr-filter-bar.md +1 -0
- package/llms/components/lr-flag.md +1 -0
- package/llms/components/lr-flow-canvas.md +1 -0
- package/llms/components/lr-flow-controls.md +1 -0
- package/llms/components/lr-flow-minimap.md +1 -0
- package/llms/components/lr-flow-node.md +1 -0
- package/llms/components/lr-flow-run-overlay.md +1 -0
- package/llms/components/lr-format-bytes.md +1 -0
- package/llms/components/lr-format-date.md +1 -0
- package/llms/components/lr-format-number.md +1 -0
- package/llms/components/lr-gauge.md +1 -0
- package/llms/components/lr-generation-status.md +1 -0
- package/llms/components/lr-geojson-view.md +5 -1
- package/llms/components/lr-graph-legend.md +1 -0
- package/llms/components/lr-graph-query-builder.md +1 -0
- package/llms/components/lr-graph.md +1 -0
- package/llms/components/lr-grounding-summary.md +1 -0
- package/llms/components/lr-handoff-divider.md +1 -0
- package/llms/components/lr-heatmap.md +1 -0
- package/llms/components/lr-highlight-layer.md +1 -0
- package/llms/components/lr-histogram.md +5 -3
- package/llms/components/lr-html-viewer.md +7 -1
- package/llms/components/lr-icon-button.md +21 -7
- package/llms/components/lr-icon.md +1 -0
- package/llms/components/lr-image-comparer.md +1 -0
- package/llms/components/lr-image-viewer.md +1 -0
- package/llms/components/lr-include.md +6 -0
- package/llms/components/lr-ingestion-queue.md +1 -0
- package/llms/components/lr-input.md +25 -2
- package/llms/components/lr-intersection-observer.md +1 -0
- package/llms/components/lr-json-viewer.md +1 -0
- package/llms/components/lr-kbd.md +1 -0
- package/llms/components/lr-knowledge-base-admin.md +30 -0
- package/llms/components/lr-knowledge-base.md +1 -0
- package/llms/components/lr-knowledge-graph-explorer.md +1 -0
- package/llms/components/lr-known-date.md +1 -0
- package/llms/components/lr-lightbox.md +1 -0
- package/llms/components/lr-line-chart.md +5 -3
- package/llms/components/lr-lite-chart.md +20 -2
- package/llms/components/lr-live-region.md +1 -0
- package/llms/components/lr-locale-picker.md +10 -5
- package/llms/components/lr-map.md +1 -0
- package/llms/components/lr-markdown-core.md +1 -0
- package/llms/components/lr-markdown.md +1 -0
- package/llms/components/lr-media-card.md +1 -0
- package/llms/components/lr-memory-panel.md +1 -0
- package/llms/components/lr-mention-popover.md +1 -0
- package/llms/components/lr-menu-item.md +1 -0
- package/llms/components/lr-menu.md +1 -0
- package/llms/components/lr-message-actions.md +1 -0
- package/llms/components/lr-message-feedback.md +1 -0
- package/llms/components/lr-mind-map.md +1 -0
- package/llms/components/lr-model-select.md +8 -1
- package/llms/components/lr-model-settings-panel.md +1 -0
- package/llms/components/lr-mutation-observer.md +1 -0
- package/llms/components/lr-neighbor-list.md +1 -0
- package/llms/components/lr-node-palette.md +1 -0
- package/llms/components/lr-notebook-viewer.md +1 -0
- package/llms/components/lr-number-input.md +9 -5
- package/llms/components/lr-option.md +65 -15
- package/llms/components/lr-page-rail.md +1 -0
- package/llms/components/lr-pagination.md +1 -0
- package/llms/components/lr-path-strip.md +1 -0
- package/llms/components/lr-pdf-viewer.md +1 -0
- package/llms/components/lr-phone-input.md +1 -0
- package/llms/components/lr-pie-chart.md +5 -3
- package/llms/components/lr-playback.md +1 -0
- package/llms/components/lr-polar-area-chart.md +5 -3
- package/llms/components/lr-policy-summary.md +1 -0
- package/llms/components/lr-poll-status.md +1 -0
- package/llms/components/lr-popover.md +4 -0
- package/llms/components/lr-pptx-viewer.md +7 -2
- package/llms/components/lr-progress-bar.md +1 -0
- package/llms/components/lr-progress-ring.md +1 -0
- package/llms/components/lr-provenance-panel.md +1 -0
- package/llms/components/lr-push-to-talk.md +1 -0
- package/llms/components/lr-qr-code.md +1 -0
- package/llms/components/lr-query-builder.md +1 -0
- package/llms/components/lr-radar-chart.md +5 -3
- package/llms/components/lr-radio-group.md +1 -0
- package/llms/components/lr-radio.md +1 -0
- package/llms/components/lr-rag-answer.md +31 -0
- package/llms/components/lr-random-content.md +1 -0
- package/llms/components/lr-rating.md +1 -0
- package/llms/components/lr-relative-time.md +1 -0
- package/llms/components/lr-reorder-item.md +16 -4
- package/llms/components/lr-reorder-list.md +16 -4
- package/llms/components/lr-resize-observer.md +1 -0
- package/llms/components/lr-responsive-panel.md +1 -0
- package/llms/components/lr-result-card.md +1 -0
- package/llms/components/lr-result-field.md +1 -0
- package/llms/components/lr-retrieval-results.md +1 -0
- package/llms/components/lr-retrieval-search.md +1 -0
- package/llms/components/lr-retrieval-trace.md +1 -0
- package/llms/components/lr-rubric-form.md +1 -0
- package/llms/components/lr-scatter-chart.md +5 -3
- package/llms/components/lr-scroller.md +1 -0
- package/llms/components/lr-segmented.md +8 -0
- package/llms/components/lr-select.md +20 -4
- package/llms/components/lr-sequence-strip.md +1 -0
- package/llms/components/lr-skeleton.md +1 -0
- package/llms/components/lr-slider.md +1 -0
- package/llms/components/lr-source-card.md +1 -0
- package/llms/components/lr-source-list.md +1 -0
- package/llms/components/lr-source-picker.md +1 -0
- package/llms/components/lr-span-waterfall.md +1 -0
- package/llms/components/lr-sparkline.md +1 -0
- package/llms/components/lr-spinner.md +1 -0
- package/llms/components/lr-split.md +11 -3
- package/llms/components/lr-spreadsheet-viewer.md +1 -0
- package/llms/components/lr-stack-trace.md +1 -0
- package/llms/components/lr-stat.md +1 -0
- package/llms/components/lr-stepper.md +1 -0
- package/llms/components/lr-stream-status.md +1 -0
- package/llms/components/lr-streaming-text.md +1 -0
- package/llms/components/lr-suggestion-chips.md +1 -0
- package/llms/components/lr-svg-viewer.md +1 -0
- package/llms/components/lr-swatch-picker.md +29 -6
- package/llms/components/lr-switch.md +1 -0
- package/llms/components/lr-table.md +19 -5
- package/llms/components/lr-tabs.md +1 -0
- package/llms/components/lr-tag.md +4 -0
- package/llms/components/lr-task-list.md +1 -0
- package/llms/components/lr-terminal.md +1 -0
- package/llms/components/lr-test-results.md +1 -0
- package/llms/components/lr-textarea.md +20 -0
- package/llms/components/lr-thinking-panel.md +1 -0
- package/llms/components/lr-thread-list.md +2 -1
- package/llms/components/lr-time-input.md +8 -4
- package/llms/components/lr-time-range.md +1 -0
- package/llms/components/lr-timeline-item.md +1 -0
- package/llms/components/lr-timeline.md +1 -0
- package/llms/components/lr-toast-item.md +3 -2
- package/llms/components/lr-toast.md +3 -2
- package/llms/components/lr-token-input.md +3 -1
- package/llms/components/lr-tool-approval-dialog.md +1 -0
- package/llms/components/lr-tool-call-chip.md +6 -0
- package/llms/components/lr-tool-param-form.md +1 -0
- package/llms/components/lr-tool-result-dialog.md +1 -0
- package/llms/components/lr-tool-result-view.md +53 -4
- package/llms/components/lr-tool-select-dialog.md +1 -0
- package/llms/components/lr-tool-timeline.md +1 -0
- package/llms/components/lr-tooltip.md +1 -0
- package/llms/components/lr-tour.md +1 -0
- package/llms/components/lr-trace-tree.md +1 -0
- package/llms/components/lr-transcript-feed.md +1 -0
- package/llms/components/lr-tree-node.md +1 -0
- package/llms/components/lr-tree.md +1 -0
- package/llms/components/lr-typing-indicator.md +13 -8
- package/llms/components/lr-usage-badge.md +1 -0
- package/llms/components/lr-virtual-list.md +1 -0
- package/llms/components/lr-voice-picker.md +1 -0
- package/llms/components/lr-widget-renderer.md +1 -0
- package/llms/components/lr-widget.md +13 -0
- package/llms/components/lr-word-cloud.md +9 -2
- package/llms/components/lr-xml-viewer.md +1 -0
- package/llms/components/lr-zoomable-frame.md +1 -0
- package/llms/index.md +8 -3
- package/llms/peers.md +2 -1
- package/llms/shared.md +88 -0
- package/llms-full.txt +753 -128
- package/llms.txt +2 -2
- package/package.json +21 -2
- package/vscode-css-data.json +239 -1
- package/vscode-html-data.json +565 -30
- package/web-types.json +730 -34
package/llms-full.txt
CHANGED
|
@@ -40,8 +40,8 @@ family and entry point.
|
|
|
40
40
|
- **Charts** — 12 tags in `components/charts/`
|
|
41
41
|
- **Document & file viewers** — 22 tags in `components/viewers/`
|
|
42
42
|
- **Conversation & chat UI** — 28 tags in `components/conversation/`
|
|
43
|
-
- **Agent tooling, tool calls & evaluation** —
|
|
44
|
-
- **Retrieval, knowledge graph & grounding** —
|
|
43
|
+
- **Agent tooling, tool calls & evaluation** — 31 tags in `components/agent-tools/`
|
|
44
|
+
- **Retrieval, knowledge graph & grounding** — 27 tags in `components/retrieval/`
|
|
45
45
|
- **Reference tables** — design tokens (`llms/tokens.md`), optional peers (`llms/peers.md`), `wa-*`/`sl-*` migration (`llms/migration.md`)
|
|
46
46
|
|
|
47
47
|
---
|
|
@@ -240,6 +240,94 @@ dark palette — that fallback applies only where no real `--lr-theme-*` value i
|
|
|
240
240
|
The token layer also sets `:host([hidden]) { display: none !important; }` and an inherited
|
|
241
241
|
`box-sizing: border-box` reset.
|
|
242
242
|
|
|
243
|
+
### Theme mode/accent runtime (`@aceshooting/lyra-ui/theme.js`)
|
|
244
|
+
|
|
245
|
+
Flipping the mode class/attribute above is something every app ends up hand-rolling — persist a
|
|
246
|
+
choice, apply it on load, avoid the flash of wrong theme before the app boots. `theme.js` is that
|
|
247
|
+
runtime, published as its own subpath: **zero dependencies, no Lit, no component imports, and no
|
|
248
|
+
side effects on import**, so an app can persist and apply a theme without pulling the component
|
|
249
|
+
graph into its first-paint bundle.
|
|
250
|
+
|
|
251
|
+
```ts
|
|
252
|
+
import { setLyraTheme, getLyraTheme } from '@aceshooting/lyra-ui/theme.js';
|
|
253
|
+
|
|
254
|
+
setLyraTheme({ mode: 'dark' }); // unspecified fields keep their current value
|
|
255
|
+
setLyraTheme({ accent: '#7c3aed' }); // mode stays 'dark'
|
|
256
|
+
getLyraTheme(); // → { mode: 'dark', accent: '#7c3aed' }
|
|
257
|
+
setLyraTheme({ mode: 'auto', accent: null }); // clears the override and the accent
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
- **`setLyraTheme({ mode?, accent? })`** persists to `localStorage['lyra-theme']`, applies to
|
|
261
|
+
`document.documentElement`, and dispatches `lr-theme-change` on `window` with
|
|
262
|
+
`detail: { mode, accent }`. Fields you omit keep their current value; pass `null` to clear the
|
|
263
|
+
accent. It **never throws** — when `localStorage` is unavailable (private browsing, quota, a
|
|
264
|
+
sandboxed iframe) it degrades to apply-without-persist, and the "fields you omit keep their
|
|
265
|
+
current value" rule still holds across calls in that state: the merge falls back to the last
|
|
266
|
+
theme applied in this session rather than to the default.
|
|
267
|
+
- **`getLyraTheme()`** returns `{ mode, accent }`, defaulting to `{ mode: 'auto', accent: null }`
|
|
268
|
+
when nothing is stored or the stored value is malformed. Storage is re-read on every call — no
|
|
269
|
+
in-memory cache — so a value written by another tab or a previous session is picked up cold.
|
|
270
|
+
Where storage is unreadable or unwritable it reports the theme last applied, so the return value
|
|
271
|
+
always describes what the document is actually showing and a toggle UI bound to it stays in sync.
|
|
272
|
+
- **`mode`** is `'light' | 'dark' | 'auto'`. `'light'`/`'dark'` set **both `data-lr-theme`** (the
|
|
273
|
+
attribute `theme.css` actually keys its palette blocks on) **and `data-theme`** (the generic
|
|
274
|
+
attribute canvas-rendered components watch, so `lr-chart`/`lr-heatmap`/`lr-qr-code` repaint on
|
|
275
|
+
the switch rather than keeping stale colors — see `llms/components/lr-chart.md`). `'auto'`
|
|
276
|
+
removes both, which means **no override — not "follow the OS"**:
|
|
277
|
+
- **With `theme.css` imported** (the setup this section is nested under), its `:root` block sets
|
|
278
|
+
the full light palette unconditionally and that file ships no `prefers-color-scheme` block, so
|
|
279
|
+
`'auto'` renders **light** whatever the OS is set to.
|
|
280
|
+
- **Without `theme.css`**, no real `--lr-theme-*` value is set, so the token layer's
|
|
281
|
+
`prefers-color-scheme: dark` fallback described above does apply and bare components follow
|
|
282
|
+
the OS.
|
|
283
|
+
|
|
284
|
+
To follow the OS *alongside* `theme.css`, resolve the preference yourself and pass a concrete
|
|
285
|
+
mode — `setLyraTheme` deliberately does no `matchMedia` work of its own:
|
|
286
|
+
```ts
|
|
287
|
+
const os = matchMedia('(prefers-color-scheme: dark)');
|
|
288
|
+
const sync = () => setLyraTheme({ mode: os.matches ? 'dark' : 'light' });
|
|
289
|
+
sync();
|
|
290
|
+
os.addEventListener('change', sync);
|
|
291
|
+
```
|
|
292
|
+
- **`accent`** is written to `--lr-theme-accent` as an inline custom property on the root element.
|
|
293
|
+
This is a **hook for your CSS, not a token the library reads** — no lyra-ui component consumes
|
|
294
|
+
`--lr-theme-accent`. Point the real inputs at it to make it retint anything, **writing one rule
|
|
295
|
+
per mode**:
|
|
296
|
+
```css
|
|
297
|
+
:root { --lr-theme-color-brand-fill-loud: var(--lr-theme-accent, #0969da); }
|
|
298
|
+
.lr-dark,
|
|
299
|
+
[data-lr-theme='dark'] { --lr-theme-color-brand-fill-loud: var(--lr-theme-accent, #4ea0f0); }
|
|
300
|
+
```
|
|
301
|
+
**Each arm's fallback must carry that mode's own value.** A single `:root` rule flattens both
|
|
302
|
+
modes to one color whenever the accent is unset (`accent: null`, the default): `:root` and
|
|
303
|
+
`[data-lr-theme='dark']` have equal specificity and both match `<html>` — the element
|
|
304
|
+
`setLyraTheme` writes `data-lr-theme` onto — so a consumer stylesheet loaded after `theme.css`
|
|
305
|
+
wins the tie on source order and pins the light-mode blue in dark mode. Copy each fallback from
|
|
306
|
+
the matching palette block in `theme.css` (`#0969da` light / `#4ea0f0` dark here).
|
|
307
|
+
|
|
308
|
+
Because that is a `--lr-theme-*` input, it reaches every nested shadow root — see "Where an
|
|
309
|
+
override actually reaches" above for why setting a `--lr-*` token instead would not.
|
|
310
|
+
|
|
311
|
+
**No-flash bootstrap.** `lyraThemeBootstrap` is a self-contained IIFE **string** (not a function),
|
|
312
|
+
meant to be inlined into a `<script>` in `<head>` **before any stylesheet**, so the persisted theme
|
|
313
|
+
is on the root element before first paint. It is a string precisely so this can happen in an
|
|
314
|
+
unbundled `<script>` context without shipping or parsing the module:
|
|
315
|
+
|
|
316
|
+
```html
|
|
317
|
+
<head>
|
|
318
|
+
<script>/* server-inlines lyraThemeBootstrap here */</script>
|
|
319
|
+
<link rel="stylesheet" href="/theme.css" />
|
|
320
|
+
</head>
|
|
321
|
+
```
|
|
322
|
+
|
|
323
|
+
It reads the same storage key, applies the same two attributes and `--lr-theme-accent`, and
|
|
324
|
+
swallows any error — malformed storage or a blocked `localStorage` leaves the document untouched
|
|
325
|
+
rather than throwing before your app loads.
|
|
326
|
+
|
|
327
|
+
**This runtime does no color math.** It stores and applies whatever accent string you give it; it
|
|
328
|
+
does not validate the value, compute a palette from it, or check contrast against any surface.
|
|
329
|
+
Verifying that an accent meets WCAG contrast against the light *and* dark palettes is yours.
|
|
330
|
+
|
|
243
331
|
## Localization: `locale`, `strings`, and the locale runtime
|
|
244
332
|
|
|
245
333
|
Every built-in string — button labels, accessible names, descriptions, validation messages, status
|
|
@@ -545,14 +633,21 @@ shared `FormAssociated` mixin — see gotchas).
|
|
|
545
633
|
shown when `maxRender` caps the row list; `{n}` is replaced with the hidden count)
|
|
546
634
|
- `filter: OptionFilter | null = null` (attribute: false — `(option, query) => boolean`; default
|
|
547
635
|
matches `label`/`searchText` case-insensitively; ignored while `source` is set)
|
|
548
|
-
- `source: ComboboxSource | null = null` (attribute: false — `(query: string
|
|
549
|
-
Promise<ComboboxSourceRow[]>`; when set, replaces the light-DOM `<lr-option>`
|
|
550
|
-
lookup, debounced
|
|
551
|
-
|
|
552
|
-
|
|
636
|
+
- `source: ComboboxSource | null = null` (attribute: false — `(query: string, options: { signal:
|
|
637
|
+
AbortSignal }) => Promise<ComboboxSourceRow[]>`; when set, replaces the light-DOM `<lr-option>`
|
|
638
|
+
list with an async lookup, debounced by `sourceDelay` ms after each keystroke and re-run on
|
|
639
|
+
clear/pick. Forward `options.signal` to `fetch(url, { signal })` to cancel the request when a
|
|
640
|
+
newer query supersedes it or the element disconnects. `loadingText` is shown while a call is in
|
|
641
|
+
flight; a stale in-flight call that resolves after a newer one (or after disconnect) is dropped
|
|
642
|
+
via a monotonic token. The `options` parameter is optional in the type, so a legacy
|
|
643
|
+
`(query) => …` source stays assignable.)
|
|
644
|
+
- `sourceDelay: number = 200` (attribute `source-delay` — debounce in ms between the last keystroke
|
|
645
|
+
and the `source` call; `0` fires on every keystroke. Sanitized to a finite non-negative duration,
|
|
646
|
+
falling back to `200` for a non-finite value)
|
|
553
647
|
- `maxRender: number = 200` (attribute `max-render` — caps how many rows render at once, always
|
|
554
648
|
keeping the current selection visible even if it's outside the cap; the excess renders as one
|
|
555
|
-
`overflowText` row instead of being dropped silently
|
|
649
|
+
`overflowText` row instead of being dropped silently. See "Large option lists" below for how to
|
|
650
|
+
size it, and when `source` is the better answer)
|
|
556
651
|
- `value: string | string[]` — a getter/setter: plain `string` in single mode, `string[]` in
|
|
557
652
|
`multiple` mode
|
|
558
653
|
- `selectedRows: ComboboxSourceRow[]` (read-only getter) — structured rows for the current
|
|
@@ -573,11 +668,16 @@ The light-DOM `<lr-option>` path normalizes its supported label/sub/dot/group fi
|
|
|
573
668
|
internal row model.
|
|
574
669
|
|
|
575
670
|
**Events:** typing in the filter exposes the original bubbling/composed, non-cancelable `InputEvent`
|
|
576
|
-
as exactly one host `input` event and does not fire `change`. An actual user
|
|
577
|
-
pointer or keyboard selection, multiple-value toggle, tag/Backspace removal, or
|
|
578
|
-
one bubbling/composed, non-cancelable
|
|
579
|
-
of `change
|
|
580
|
-
|
|
671
|
+
as exactly one host `input` event (no `value` detail) and does not fire `change`. An actual user
|
|
672
|
+
selection mutation — pointer or keyboard selection, multiple-value toggle, tag/Backspace removal, or
|
|
673
|
+
clear — emits exactly one bubbling/composed, non-cancelable `input` `CustomEvent`, immediately
|
|
674
|
+
followed by the same shape of `change`, then a prefixed `lr-change` alias. All three carry
|
|
675
|
+
`detail: { value }` — the new committed selection (a string in single mode, a `string[]` in
|
|
676
|
+
`multiple` mode). `lr-change` mirrors `<lr-checkbox>`'s namespaced alias; subscribe to it when you
|
|
677
|
+
want a `lr-`-prefixed event, or to the native-style `input`/`change` for parity with a native
|
|
678
|
+
control. Re-picking the current single value and programmatic/default/reset/restore writes are
|
|
679
|
+
silent (including on `lr-change`). The clear button emits one `lr-clear` after its
|
|
680
|
+
`input`/`change`/`lr-change` triple.
|
|
581
681
|
`lr-filter` (`detail: { value: string }`) reports the in-progress filter text on every user-driven
|
|
582
682
|
keystroke — the live as-you-typed search string, deliberately *not* `value`, which is the committed
|
|
583
683
|
selection. It is the supported way to read that text; reaching into the shadow root for
|
|
@@ -594,8 +694,8 @@ The internal input's `focus` and `blur` are re-dispatched as bubbling, composed
|
|
|
594
694
|
committed selection and an in-progress filter query, so the button renders whenever either has
|
|
595
695
|
something to clear, and one press clears both:
|
|
596
696
|
|
|
597
|
-
- Clearing a selection emits `input`, then `change`, then `lr-clear` — and, if the
|
|
598
|
-
non-empty, `lr-filter` with an empty `value`.
|
|
697
|
+
- Clearing a selection emits `input`, then `change`, then `lr-change`, then `lr-clear` — and, if the
|
|
698
|
+
query was also non-empty, `lr-filter` with an empty `value`.
|
|
599
699
|
- A **query-only** clear (nothing selected, just typed text) emits `lr-filter` with an empty
|
|
600
700
|
`value` and deliberately **no** `change` and **no** `lr-clear`. There was no selection
|
|
601
701
|
transition to report, so announcing one would be a lie. Don't listen for `lr-clear` to detect
|
|
@@ -605,6 +705,32 @@ something to clear, and one press clears both:
|
|
|
605
705
|
selected label rather than the query, so a stale query alone never surfaces a button offering to
|
|
606
706
|
clear text the user cannot see.
|
|
607
707
|
|
|
708
|
+
**Large option lists: sizing `maxRender`, and why the listbox is not windowed.** Every row that
|
|
709
|
+
survives the filter and fits under `maxRender` is a real DOM element — the listbox renders its rows
|
|
710
|
+
in full rather than recycling a small window of them across a scroll. That is a deliberate
|
|
711
|
+
accessibility constraint, not an omission: the filter input carries `aria-activedescendant`, which
|
|
712
|
+
is an **IDREF**, and an IDREF only resolves within its own tree scope. Moving the rows into the
|
|
713
|
+
library's windowing primitive (`<lr-virtual-list>`) would place them one shadow root deeper than the
|
|
714
|
+
input that has to point at them, where neither the attribute nor its `ariaActiveDescendantElement`
|
|
715
|
+
element-reflection replacement can reach — element reflection resolves same-root or upward only. So
|
|
716
|
+
`<lr-virtual-list>` stays `role="list"`/`role="listitem"` and is the right tool for feeds and
|
|
717
|
+
viewers, not for a listbox whose active row must stay addressable.
|
|
718
|
+
|
|
719
|
+
What that means in practice:
|
|
720
|
+
|
|
721
|
+
- **Up to a few hundred rows, raise `maxRender` and move on.** A few hundred flex rows is an
|
|
722
|
+
unremarkable amount of DOM; a country, currency, or time-zone list (typically 200–450 entries)
|
|
723
|
+
renders comfortably with `max-render` set to cover it. The cap exists to bound pathological
|
|
724
|
+
cases, not to make lists of that size expensive.
|
|
725
|
+
- **Past roughly a thousand rows, reach for `source` instead of a larger cap.** An async source
|
|
726
|
+
narrows the candidate set before it ever becomes DOM, which is a categorically better trade than
|
|
727
|
+
rendering everything and asking the browser to lay it out. Pair it with `sourceDelay` to debounce.
|
|
728
|
+
- **Leave the overflow row doing its job.** When the cap does bite, the excess collapses into one
|
|
729
|
+
`overflowText` row (default `"+{n} more — refine your search"`) rather than disappearing
|
|
730
|
+
silently, and the current selection is always kept visible even when it falls outside the cap.
|
|
731
|
+
Suppressing that row by setting `maxRender` far above the real list size trades a useful "keep
|
|
732
|
+
typing" affordance for layout work no user asked for.
|
|
733
|
+
|
|
608
734
|
**Slots:** default (`<lr-option>` children), `label`, `hint`, `error` (overrides the `errorText`
|
|
609
735
|
attribute when provided), plus two adornment slots:
|
|
610
736
|
- `start` — content at the inline-start of the trigger row, before the selected-value tags and the
|
|
@@ -624,13 +750,24 @@ indicator from `maxRender`), `error`, `hint`
|
|
|
624
750
|
**Themeable custom properties:** `--lr-combobox-trigger-padding`,
|
|
625
751
|
`--lr-combobox-trigger-min-height`, `--lr-combobox-font-size`, `--lr-combobox-tag-padding`,
|
|
626
752
|
`--lr-combobox-tag-font-size`, and `--lr-combobox-expand-size` (the decorative icon box; each
|
|
627
|
-
standard size supplies an aligned default), plus shared tokens.
|
|
753
|
+
standard size supplies an aligned default), plus shared tokens. `--lr-combobox-gap` (default
|
|
754
|
+
`--lr-space-xs`, the gap inside `[part='combobox']`) and `--lr-combobox-radius` (default
|
|
755
|
+
`--lr-radius`, its corner radius) are both retunable without a `::part(combobox)` rule but, unlike
|
|
756
|
+
the properties above, do not vary by `size` — the same `--lr-button-gap`/`-radius` pattern.
|
|
628
757
|
|
|
629
758
|
`--lr-combobox-option-active-bg` (default `var(--lr-color-brand-quiet)`) recolors the background of
|
|
630
759
|
a hovered or keyboard-active `[part='option']` row — the same per-component indirection
|
|
631
760
|
`lr-select`'s identical `--lr-select-option-active-bg` uses, so a consumer can retheme just this
|
|
632
761
|
row state without hijacking the shared `--lr-color-brand-quiet` token library-wide.
|
|
633
762
|
|
|
763
|
+
The currently-**selected** row (`[part='option'][aria-selected='true']`) has its own matching set:
|
|
764
|
+
`--lr-combobox-option-selected-bg` (default `transparent`), `--lr-combobox-option-selected-border`
|
|
765
|
+
and `--lr-combobox-option-selected-color` (both default `var(--lr-color-brand)`), and
|
|
766
|
+
`--lr-combobox-option-selected-font-weight` (default `var(--lr-font-weight-semibold)`) — the same
|
|
767
|
+
four-token indirection `lr-select`/`lr-model-select` already provide for their own selected row.
|
|
768
|
+
Like the active-bg knob these are inline `var()` fallbacks, not declared on `:host`, so a consumer
|
|
769
|
+
can retheme the selected row without hijacking `--lr-color-brand` library-wide.
|
|
770
|
+
|
|
634
771
|
`--lr-combobox-trigger-height` pins an **exact** input-container height (both floors and caps it),
|
|
635
772
|
for pixel-matching an `<lr-input>` or `<lr-select>` in the same toolbar row. It is **undeclared by
|
|
636
773
|
default**, leaving `--lr-combobox-trigger-min-height` as a floor only and the row free to grow —
|
|
@@ -692,7 +829,7 @@ Session-history/autofill state is stored as a name-independent JSON string array
|
|
|
692
829
|
array restores the selection (single mode keeps its first entry); malformed or wrong-shape state
|
|
693
830
|
restores an empty selection. Restored state wins even when it arrives before the first option
|
|
694
831
|
collection, while `form.reset()` still returns to the declarative selected default. Restoration is
|
|
695
|
-
synchronous and fires no `input`/`change` event.
|
|
832
|
+
synchronous and fires no `input`/`change`/`lr-change` event.
|
|
696
833
|
|
|
697
834
|
**Known gotchas:**
|
|
698
835
|
- `with-clear` remains supported for compatibility, but new code should use the mirrored
|
|
@@ -731,7 +868,8 @@ input: click/Enter/Space/ArrowDown opens it, and there's no typing-to-filter. Op
|
|
|
731
868
|
`<lr-option value>` children — the same element `<lr-combobox>` uses — reconciled the same way
|
|
732
869
|
combobox does, and the popup reuses `internal/positioner.ts` for placement.
|
|
733
870
|
Session-history/autofill restoration assigns the stored string through the same synchronous
|
|
734
|
-
value/form/validity path as a programmatic value write and does not emit `input` or
|
|
871
|
+
value/form/validity path as a programmatic value write and does not emit `input`, `change`, or
|
|
872
|
+
`lr-change`.
|
|
735
873
|
|
|
736
874
|
Single-select only, with no `filter`/`source`/`with-clear`/`max-options-visible`/`empty-text`/
|
|
737
875
|
`max-render`/`multiple` surface — reach for `<lr-combobox>` instead whenever any of those apply.
|
|
@@ -764,8 +902,10 @@ exactly like the multi-option case, until the trigger is actually activated.
|
|
|
764
902
|
- `value: string` — a getter/setter; always a single string (no `multiple` mode)
|
|
765
903
|
|
|
766
904
|
**Events:** `change` (native-style — selection changed), `input` (fired alongside `change` on every
|
|
767
|
-
selection change — a native `<select>` doesn't meaningfully distinguish the two either),
|
|
768
|
-
`lr-
|
|
905
|
+
selection change — a native `<select>` doesn't meaningfully distinguish the two either), and
|
|
906
|
+
`lr-change` (a prefixed compatibility alias fired after both, mirroring `<lr-checkbox>`'s
|
|
907
|
+
`lr-change`). All three carry `detail: { value: string }` (the new selection) and fire only on a
|
|
908
|
+
real change, never on a programmatic `value` write. Plus `lr-show`, `lr-hide`.
|
|
769
909
|
|
|
770
910
|
**Slots:** default (`<lr-option>` children), `label`, `hint`, `error` (overrides the `errorText`
|
|
771
911
|
attribute when provided)
|
|
@@ -791,7 +931,10 @@ presentational `<div>`, not a `role="group"`; options with an empty `group` get
|
|
|
791
931
|
|
|
792
932
|
**Themeable custom properties:** `--lr-select-trigger-padding`, `--lr-select-trigger-min-height`,
|
|
793
933
|
`--lr-select-font-size`, `--lr-select-expand-size` — all four auto-swapped per `size` (`xs`…`xl`), the same pattern
|
|
794
|
-
`lr-toast-item`'s `--lr-toast-padding`/`--lr-toast-font-size` use.
|
|
934
|
+
`lr-toast-item`'s `--lr-toast-padding`/`--lr-toast-font-size` use. `--lr-select-gap` (default
|
|
935
|
+
`--lr-space-xs`, the gap inside `[part='trigger']`) and `--lr-select-radius` (default `--lr-radius`,
|
|
936
|
+
its corner radius) are both retunable without a `::part(trigger)` rule but, unlike the four above,
|
|
937
|
+
do not vary by `size` — the same `--lr-button-gap`/`-radius` pattern.
|
|
795
938
|
|
|
796
939
|
`--lr-select-trigger-min-height` is live at **every** tier, the default `m` included, where it is
|
|
797
940
|
`2.5rem` — byte-identical to `lr-input`'s and `lr-combobox`'s own `m` floor, so the three controls
|
|
@@ -814,6 +957,15 @@ ancestor is never shadowed — retheme just this row state without hijacking the
|
|
|
814
957
|
`--lr-color-brand-quiet` token every other component's own hover/active state also reads. Same
|
|
815
958
|
knob `lr-combobox`'s own `--lr-combobox-option-active-bg` provides.
|
|
816
959
|
|
|
960
|
+
The currently-**selected** row (`[part='option'][aria-selected='true']`) has its own matching set:
|
|
961
|
+
`--lr-select-option-selected-bg` (default `transparent`), `--lr-select-option-selected-border` and
|
|
962
|
+
`--lr-select-option-selected-color` (both default `var(--lr-color-brand)`), and
|
|
963
|
+
`--lr-select-option-selected-font-weight` (default `var(--lr-font-weight-semibold)`). Like the
|
|
964
|
+
active-bg knob these are inline `var()` fallbacks, not declared on `:host`, so a consumer can
|
|
965
|
+
retheme the selected row without hijacking `--lr-color-brand` library-wide. Note the shadow-parts
|
|
966
|
+
spec forbids an attribute selector after `::part()` — `::part(option)[aria-selected='true']` is
|
|
967
|
+
invalid CSS and never matches — which is exactly why these tokens exist.
|
|
968
|
+
|
|
817
969
|
**Optional peer deps:** none.
|
|
818
970
|
|
|
819
971
|
```html
|
|
@@ -1099,10 +1251,29 @@ submission/validation/reset via `name`/`value`/`disabled`/`required`/`checkValid
|
|
|
1099
1251
|
| `autocomplete` | `autocomplete` | `string` | `''` | Forwarded to the native `<textarea>`; empty omits the attribute. |
|
|
1100
1252
|
| `inputMode` | `inputmode` | `string` | `''` | Virtual-keyboard input hint forwarded to the native `<textarea>`. |
|
|
1101
1253
|
| `enterKeyHint` | `enterkeyhint` | `string` | `''` | Virtual-keyboard Enter-key hint forwarded to the native `<textarea>`. |
|
|
1254
|
+
| `minlength` | `minlength` | `number \| undefined` | `undefined` | Minimum text length; forwarded to the native `<textarea>` and reported as `validity.tooShort`. |
|
|
1255
|
+
| `maxlength` | `maxlength` | `number \| undefined` | `undefined` | Maximum text length; forwarded to the native `<textarea>` (which also stops typing past it) and reported as `validity.tooLong`. |
|
|
1102
1256
|
| `name` | `name` | `string` | `''` | Form field name. |
|
|
1103
1257
|
| `disabled` | `disabled` | `boolean` | `false` | Disables the control. |
|
|
1104
1258
|
| `required` | `required` | `boolean` | `false` | Participates in native constraint validation. |
|
|
1105
1259
|
|
|
1260
|
+
### Constraint validation
|
|
1261
|
+
|
|
1262
|
+
`validity` reports `valueMissing` (from `required`), `tooShort` (from `minlength`), and `tooLong`
|
|
1263
|
+
(from `maxlength`) — the complete set a native `<textarea>` can produce. Leaving `minlength` and
|
|
1264
|
+
`maxlength` unset constrains nothing, exactly as before they existed.
|
|
1265
|
+
|
|
1266
|
+
Two behaviors are worth knowing, both inherited from the platform and both shared with `lr-input`:
|
|
1267
|
+
|
|
1268
|
+
- **An empty value is never `tooShort`.** Native `minlength` only applies to a non-empty value, so
|
|
1269
|
+
an optional field left blank stays valid; `required` is what rejects empty.
|
|
1270
|
+
- **A script-assigned value is validated too.** The native `tooShort`/`tooLong` flags are raised
|
|
1271
|
+
only for a value the *user* edited, so the component recomputes both from its own `value` and
|
|
1272
|
+
ORs them in — `el.value = <over-length>` reports `tooLong` rather than silently submitting.
|
|
1273
|
+
Lengths count UTF-16 code units, matching the native control (one emoji counts as two).
|
|
1274
|
+
`validationMessage` is the browser's own localized message when the native control flagged the
|
|
1275
|
+
value, and the localized `valueInvalid` string when only the script-value check did.
|
|
1276
|
+
|
|
1106
1277
|
The visible label, hint, and error live in the same shadow tree as the native control, so their
|
|
1107
1278
|
generated ids safely drive the native `<label>`/`aria-describedby` relationships. Name precedence
|
|
1108
1279
|
is `accessibleLabel`/host `aria-label`, visible `label`, `placeholder`, then the localized
|
|
@@ -1175,7 +1346,27 @@ A generic action-button primitive. Renders an internal native `<button>`; `type=
|
|
|
1175
1346
|
`type="reset"` are handled by the component itself via the host's own `closest('form')`, since a
|
|
1176
1347
|
shadow-internal native button doesn't participate in an ancestor form's submission on its own.
|
|
1177
1348
|
|
|
1349
|
+
Set `href` to a safe link URL and the root renders as a real `<a part="base" href=…>` instead — a
|
|
1350
|
+
link styled as a button (e.g. a CTA). Native navigation is then the activation, so the submit/reset
|
|
1351
|
+
handling and `type` have no effect in that mode. A disabled link button (its own `disabled` or an
|
|
1352
|
+
ancestor `<fieldset disabled>`) renders the anchor with `aria-disabled="true"` and **no `href`**, so
|
|
1353
|
+
it is neither focusable nor navigable; an unsafe/unparseable `href` falls back to the native
|
|
1354
|
+
`<button>`.
|
|
1355
|
+
|
|
1178
1356
|
**Properties:**
|
|
1357
|
+
- `href?: string` — when set to a safe link URL (`http:`/`https:`/`blob:`/`mailto:`/relative; see
|
|
1358
|
+
`safeLinkHref`), the root renders as an `<a href=…>` instead of a `<button>`. Setting `download`
|
|
1359
|
+
narrows the allowlist to `http:`/`https:`/`blob:`/relative — `mailto:` names no retrievable bytes,
|
|
1360
|
+
so a `mailto:` href paired with `download` falls back to the native `<button>`. Unset (the default)
|
|
1361
|
+
renders a plain `<button>`, unchanged. `type` (submit/reset) has no effect while the anchor
|
|
1362
|
+
renders. While the button is disabled the anchor is rendered **without** `href` (keeping
|
|
1363
|
+
`aria-disabled="true"`), so a disabled link button cannot navigate. An unsafe/unparseable value
|
|
1364
|
+
falls back to the native `<button>`
|
|
1365
|
+
- `target?: string` — native anchor `target`, used only while `href` resolves to a link. Setting it
|
|
1366
|
+
(e.g. `'_blank'`) automatically derives `rel="noopener noreferrer"` on the anchor; `rel` is never
|
|
1367
|
+
independently settable (reverse-tabnabbing). Ignored in `<button>` mode
|
|
1368
|
+
- `download?: string` — native anchor `download` attribute, used only while `href` resolves to a
|
|
1369
|
+
link. Ignored in `<button>` mode
|
|
1179
1370
|
- `variant: 'neutral' | 'brand' | 'success' | 'warning' | 'danger' = 'neutral'` (reflected)
|
|
1180
1371
|
- `appearance: 'accent' | 'filled' | 'outlined' | 'plain' | 'quiet' | 'link' = 'filled'` (reflected)
|
|
1181
1372
|
— `'accent'` is a
|
|
@@ -1200,15 +1391,17 @@ shadow-internal native button doesn't participate in an ancestor form's submissi
|
|
|
1200
1391
|
The shared `m` size uses `--lr-font-size-m`. The internal button follows the host's inline size through `--lr-button-width` (default
|
|
1201
1392
|
`100%`), and each size tier's `min-block-size` floor is exposed as its own token (see below).
|
|
1202
1393
|
|
|
1203
|
-
**Getters/methods:** `click()`, `focus(options?)`, and `blur()` — forwarded to the internal
|
|
1204
|
-
`<button
|
|
1394
|
+
**Getters/methods:** `click()`, `focus(options?)`, and `blur()` — forwarded to the internal base
|
|
1395
|
+
element (the `<button>`, or the `<a>` in anchor mode); `click()` also runs the component's
|
|
1396
|
+
submit/reset behavior in `<button>` mode.
|
|
1205
1397
|
|
|
1206
1398
|
**Events:** none (a plain native `click` bubbles and composes through the shadow boundary
|
|
1207
1399
|
unmodified; disabled while `disabled` or `loading`).
|
|
1208
1400
|
|
|
1209
1401
|
**Slots:** default (label content), `start` (leading icon/content), `end` (trailing icon/content).
|
|
1210
1402
|
|
|
1211
|
-
**CSS parts:** `base
|
|
1403
|
+
**CSS parts:** `base` (the internal native `<button>`, or an `<a>` when `href` resolves to a safe
|
|
1404
|
+
link), `label`, `start`, `end`, `spinner` (present only while `loading`).
|
|
1212
1405
|
|
|
1213
1406
|
**Themeable custom properties:** `--lr-button-width`, `--lr-button-accent`, `--lr-button-fill`,
|
|
1214
1407
|
`--lr-button-on-fill`, `--lr-button-border` (each swapped by the active `variant`, default
|
|
@@ -1236,6 +1429,9 @@ and the per-`size`
|
|
|
1236
1429
|
and any slotted content) and `--lr-button-radius` (default `--lr-radius`, the corner radius) are
|
|
1237
1430
|
both retunable without a `::part(base)` rule but — unlike the four size knobs below — do not vary
|
|
1238
1431
|
by `size` tier; `appearance="link"` ignores `--lr-button-radius` (it renders with zero radius).
|
|
1432
|
+
`--lr-button-shadow` is **undeclared by default**, so `box-shadow` falls back to `none` —
|
|
1433
|
+
byte-identical to before this property existed — set it to add a drop shadow (e.g. an
|
|
1434
|
+
elevated/floating action button) without a `::part(base)` rule.
|
|
1239
1435
|
|
|
1240
1436
|
**Retuning one `size` tier's geometry, without a `::part(base)` rule.** Four more properties carry
|
|
1241
1437
|
the active tier's geometry, and every `:host([size='…'])` rule does nothing but re-assign them — no
|
|
@@ -1280,9 +1476,8 @@ box no matter what tier or override is in play.
|
|
|
1280
1476
|
|
|
1281
1477
|
## `lr-icon-button`
|
|
1282
1478
|
|
|
1283
|
-
An accessible icon-only action button — a native `<button>`
|
|
1284
|
-
|
|
1285
|
-
form the way a native button does, but the element itself contributes no form value.
|
|
1479
|
+
An accessible icon-only action button — a form-associated custom element with a native `<button>`
|
|
1480
|
+
inside. Its `type="submit"`/`"reset"` behavior is forwarded to the ancestor form by the component.
|
|
1286
1481
|
|
|
1287
1482
|
**Properties:**
|
|
1288
1483
|
- `icon: string = ''` — an `lr-icon` glyph name (see `llms/components/lr-icon.md`)
|
|
@@ -1312,9 +1507,14 @@ by side; that is a valid composition, not a fallback.
|
|
|
1312
1507
|
`polygon`, `polyline`, `ellipse`, `g`, `use`) with no `icon` set and no enclosing `<svg>` of its
|
|
1313
1508
|
own has no real SVG parent as parsed, and is detected and cloned into an internal
|
|
1314
1509
|
`[part="fallback"]` SVG-namespaced element so it still paints — the same fallback `<lr-icon>`'s own
|
|
1315
|
-
custom-content slot uses.
|
|
1316
|
-
|
|
1317
|
-
|
|
1510
|
+
custom-content slot uses. The `[part="fallback"]` svg carries the same `fill="none"
|
|
1511
|
+
stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"` defaults
|
|
1512
|
+
`<lr-icon>`'s own wrapper svg does, so bare stroke-style geometry (the common lucide/feather/tabler
|
|
1513
|
+
path-data shape, which carries no fill/stroke of its own) renders outlined instead of as a solid
|
|
1514
|
+
shape; an explicit `fill`/`stroke`/etc. already present on the slotted node still wins for that
|
|
1515
|
+
node. This is narrowly scoped to that whitelist: a complete `<svg>`, `<img>`, or custom element
|
|
1516
|
+
(e.g. `<lr-flag>`) is never touched by it and keeps rendering as an untouched sibling at its own
|
|
1517
|
+
natural aspect ratio.
|
|
1318
1518
|
|
|
1319
1519
|
**CSS parts:** `button`, `fallback` (only present in the DOM while at least one top-level slotted
|
|
1320
1520
|
element needs the bare-geometry fallback above)
|
|
@@ -1325,7 +1525,16 @@ than it grows the button and keeps its own aspect ratio; a small glyph pads out
|
|
|
1325
1525
|
library-wide token (declared on `:root` by the token layer, and the shared minimum tappable size
|
|
1326
1526
|
that several other components size their icon-only controls against), so overriding
|
|
1327
1527
|
`--lr-theme-icon-button-size` globally resizes all of them together. Keep the resolved value at or
|
|
1328
|
-
above 24px — see `llms/shared.md`.
|
|
1528
|
+
above 24px — see `llms/shared.md`. `--lr-icon-button-radius` (default `--lr-radius`) is the
|
|
1529
|
+
`[part='button']` corner radius, retunable without a `::part(button)` rule — the same
|
|
1530
|
+
`--lr-button-radius` pattern; `lr-icon-button` has no `size` tiers, so there is no per-tier gap
|
|
1531
|
+
counterpart to it. `--lr-icon-button-background` (default `transparent`) tints the
|
|
1532
|
+
`[part='button']` background, `--lr-icon-button-background-hover` (default `--lr-color-surface`)
|
|
1533
|
+
its hover-state background, and `--lr-icon-button-color` (default `inherit`) its icon/text color —
|
|
1534
|
+
the same per-component indirection `lr-button`'s `--lr-button-fill`/`--lr-button-on-fill` provide,
|
|
1535
|
+
letting you tint a single button without a `::part(button)` rule. Left unset, each falls back to
|
|
1536
|
+
today's value, so rendering is unchanged. There is deliberately no border-color token:
|
|
1537
|
+
`[part='button']` sets `border: 0`, so a border color could never render.
|
|
1329
1538
|
|
|
1330
1539
|
## `lr-input`
|
|
1331
1540
|
|
|
@@ -1359,6 +1568,13 @@ form-associated via the same `FormAssociated` mixin as `lr-textarea`. Ships the
|
|
|
1359
1568
|
non-numeric bound only survives a direct property assignment; the declared type also admits a
|
|
1360
1569
|
string so a subclass can narrow the attribute parsing to its own native type's literal form —
|
|
1361
1570
|
`lr-time-input` does exactly that. Inert for the other types
|
|
1571
|
+
- `minlength?: number` / `maxlength?: number` (attributes `minlength`/`maxlength`) — text-length
|
|
1572
|
+
bounds forwarded to the native input and reported as `validity.tooShort`/`validity.tooLong`.
|
|
1573
|
+
Apply to the text-bearing types (`text`, `search`, `email`, `password`); the platform ignores
|
|
1574
|
+
both on `type="number"`/`type="time"`, and so does this component
|
|
1575
|
+
- `pattern?: string` (attribute `pattern`) — a regular expression the value must match in full,
|
|
1576
|
+
forwarded to the native input and reported as `validity.patternMismatch`. Anchored to the whole
|
|
1577
|
+
value by the platform, so no `^`/`$` is needed; an empty value never violates it
|
|
1362
1578
|
- `passwordVisible: boolean = false` (attribute `password-visible` — `type="password"` only)
|
|
1363
1579
|
- `name`/`disabled`/`required` (from `FormAssociated`)
|
|
1364
1580
|
|
|
@@ -1392,7 +1608,10 @@ input and built-in actions).
|
|
|
1392
1608
|
`--lr-input-control-height` pins an **exact** outer control-row height (both floors and caps it) —
|
|
1393
1609
|
for example to pixel-match an `<lr-select>` or `<lr-combobox>` in the same toolbar row. It is
|
|
1394
1610
|
undeclared by default, leaving `--lr-input-control-min-height` as a floor only and the row free to
|
|
1395
|
-
grow.
|
|
1611
|
+
grow. `--lr-input-gap` (default `--lr-space-xs`, the gap inside `[part='input-wrapper']`) and
|
|
1612
|
+
`--lr-input-radius` (default `--lr-radius`, its corner radius) are both retunable without a
|
|
1613
|
+
`::part(input-wrapper)` rule but, unlike the four properties above, do not vary by `size` — the same
|
|
1614
|
+
`--lr-button-gap`/`-radius` pattern; `lr-number-input`/`lr-time-input` inherit both unchanged.
|
|
1396
1615
|
|
|
1397
1616
|
### Exact-height hatches — the one rule that applies to all of them
|
|
1398
1617
|
|
|
@@ -1430,7 +1649,19 @@ Several controls expose the same pair: a per-`size` `*-min-height` **floor**, an
|
|
|
1430
1649
|
**Known gotchas:**
|
|
1431
1650
|
- `type="email"`/`type="number"` delegate constraint validation to the internal native `<input>`'s
|
|
1432
1651
|
own browser-computed `validity` (format/range/step), bridged into this element's own
|
|
1433
|
-
`ElementInternals` — not a second hand-rolled regex check.
|
|
1652
|
+
`ElementInternals` — not a second hand-rolled regex check. The same bridge carries
|
|
1653
|
+
`minlength`/`maxlength`/`pattern`, so `validity` reports the full native set: `valueMissing`,
|
|
1654
|
+
`typeMismatch`, `rangeUnderflow`, `rangeOverflow`, `stepMismatch`, `tooShort`, `tooLong`,
|
|
1655
|
+
`patternMismatch`, and `badInput`.
|
|
1656
|
+
- **`tooShort`/`tooLong` also fire for a value assigned from script.** The native flags are raised
|
|
1657
|
+
only for a value the *user* edited, so the component recomputes both from its own `value` and ORs
|
|
1658
|
+
them in; `el.value = <over-length>` reports `tooLong` rather than silently submitting. Lengths
|
|
1659
|
+
count UTF-16 code units, matching the native control (one emoji counts as two). `patternMismatch`
|
|
1660
|
+
needs no such handling — the platform applies `pattern` to script-assigned values already.
|
|
1661
|
+
`validationMessage` is the browser's own localized message when the native input flagged the
|
|
1662
|
+
value, and the localized `valueInvalid` string when only the script-value check did.
|
|
1663
|
+
- An empty value is never `tooShort` and never a `patternMismatch` — both native constraints skip
|
|
1664
|
+
the empty string, and `required` is what rejects it.
|
|
1434
1665
|
- `type="password"` always renders the `password-toggle` button; there is no separate opt-out.
|
|
1435
1666
|
|
|
1436
1667
|
## `lr-number-input`
|
|
@@ -1442,8 +1673,8 @@ A migration-friendly numeric alias of `lr-input` — a subclass whose constructo
|
|
|
1442
1673
|
**Properties:** `size` (`2xs`…`xl`), `placeholder`, `readonly`, `label`, `hint`, `errorText`
|
|
1443
1674
|
(`error-text`), `accessibleLabel` (`aria-label`), `autocomplete`, `spellcheck`, `autocapitalize`,
|
|
1444
1675
|
`autoCorrect` (`autocorrect`), `inputMode` (`inputmode`), `enterKeyHint` (`enterkeyhint`), and
|
|
1445
|
-
`min`/`max`/`step` (the native numeric constraint validation). `clearable
|
|
1446
|
-
(`password-visible`) are inherited but inert — see gotchas.
|
|
1676
|
+
`min`/`max`/`step` (the native numeric constraint validation). `clearable`, `passwordVisible`
|
|
1677
|
+
(`password-visible`), and `minlength`/`maxlength`/`pattern` are inherited but inert — see gotchas.
|
|
1447
1678
|
|
|
1448
1679
|
**Events:** `input`/`change` (native-style, composed), `lr-input`/`lr-change`
|
|
1449
1680
|
(`detail: { value }`), `focus`/`blur` (re-dispatched bubbling + composed from the internal native
|
|
@@ -1457,13 +1688,16 @@ alias ever renders.
|
|
|
1457
1688
|
|
|
1458
1689
|
**Themeable custom properties:** inherited from `lr-input`, identical in meaning —
|
|
1459
1690
|
`--lr-input-control-min-height`, `--lr-input-control-height`, `--lr-input-padding-block`,
|
|
1460
|
-
`--lr-input-padding-inline
|
|
1461
|
-
per `size`; that one stays undeclared until you pin an exact
|
|
1691
|
+
`--lr-input-padding-inline`, `--lr-input-font-size`, `--lr-input-gap`, and `--lr-input-radius` (all
|
|
1692
|
+
but `--lr-input-control-height` swap per `size`; that one stays undeclared until you pin an exact
|
|
1693
|
+
row height, and `--lr-input-gap`/`--lr-input-radius` — like `--lr-button-gap`/`-radius` — never
|
|
1694
|
+
vary by `size` at all).
|
|
1462
1695
|
|
|
1463
1696
|
**Known gotchas:**
|
|
1464
1697
|
- `clearable`/`clear-button`/`lr-clear` are inert: the clear action only renders for
|
|
1465
1698
|
`type="text"`/`"search"`. `password-visible`/`password-toggle` are likewise inert, since the
|
|
1466
|
-
toggle only renders for `type="password"`.
|
|
1699
|
+
toggle only renders for `type="password"`. `minlength`/`maxlength`/`pattern` are inert too — the
|
|
1700
|
+
platform ignores all three on `type="number"`; use `min`/`max`/`step` instead.
|
|
1467
1701
|
- `type` is re-forced to `number` on every connect, but a later `el.type = 'text'` on a connected
|
|
1468
1702
|
element is not reverted — use `lr-input` when the type has to change.
|
|
1469
1703
|
|
|
@@ -1476,8 +1710,9 @@ re-typed `min`/`max` pair (below); every other property, event, slot and part is
|
|
|
1476
1710
|
**Properties:** `size` (`2xs`…`xl`), `placeholder`, `readonly`, `label`, `hint`, `errorText`
|
|
1477
1711
|
(`error-text`), `accessibleLabel` (`aria-label`), `autocomplete`, `spellcheck`, `autocapitalize`,
|
|
1478
1712
|
`autoCorrect` (`autocorrect`), `inputMode` (`inputmode`), and `enterKeyHint` (`enterkeyhint`).
|
|
1479
|
-
`clearable
|
|
1480
|
-
`lr-number-input
|
|
1713
|
+
`clearable`, `passwordVisible` (`password-visible`), and `minlength`/`maxlength`/`pattern` are
|
|
1714
|
+
inherited but inert, exactly as on `lr-number-input` — the platform ignores all three length/pattern
|
|
1715
|
+
constraints on `type="time"` as well.
|
|
1481
1716
|
|
|
1482
1717
|
`step` is forwarded verbatim to the native time input, where it means seconds (`step="1"` reveals
|
|
1483
1718
|
the seconds field, `'any'` disables step validation).
|
|
@@ -1501,8 +1736,10 @@ native input's own constraint validation reports `rangeUnderflow`/`rangeOverflow
|
|
|
1501
1736
|
|
|
1502
1737
|
**Themeable custom properties:** inherited from `lr-input`, identical in meaning —
|
|
1503
1738
|
`--lr-input-control-min-height`, `--lr-input-control-height`, `--lr-input-padding-block`,
|
|
1504
|
-
`--lr-input-padding-inline
|
|
1505
|
-
per `size`; that one stays undeclared until you pin an exact
|
|
1739
|
+
`--lr-input-padding-inline`, `--lr-input-font-size`, `--lr-input-gap`, and `--lr-input-radius` (all
|
|
1740
|
+
but `--lr-input-control-height` swap per `size`; that one stays undeclared until you pin an exact
|
|
1741
|
+
row height, and `--lr-input-gap`/`--lr-input-radius` — like `--lr-button-gap`/`-radius` — never
|
|
1742
|
+
vary by `size` at all).
|
|
1506
1743
|
|
|
1507
1744
|
**Known gotchas:** the same two as `lr-number-input` — the inert clear/password surface, and `type`
|
|
1508
1745
|
only being re-forced on connect. The native `type="time"` UI (spinners, AM/PM, picker) is the
|
|
@@ -1817,16 +2054,18 @@ named colors, the shape apps otherwise hand-roll as a row of round accent-color
|
|
|
1817
2054
|
|
|
1818
2055
|
**Properties:**
|
|
1819
2056
|
- `options: SwatchOption[] = []` (attribute: false) — `SwatchOption { value: string; color: string;
|
|
1820
|
-
label: string; icon?: unknown }`; `color` is any CSS color string used as
|
|
1821
|
-
is each swatch's accessible name and `title`. `icon` is an optional
|
|
1822
|
-
|
|
1823
|
-
|
|
1824
|
-
`<lr-segmented>`'s `SegmentedItem.icon`.
|
|
2057
|
+
label: string; icon?: unknown; gemstone?: GemstoneKey }`; `color` is any CSS color string used as
|
|
2058
|
+
the swatch fill, `label` is each swatch's accessible name and `title`. `icon` is an optional
|
|
2059
|
+
custom shape rendered *instead of* the plain filled circle; `gemstone` selects the canonical
|
|
2060
|
+
faceted glyph when `mode="gemstone"`. An explicit `icon` wins over `gemstone`.
|
|
1825
2061
|
- `value: string | null = null` — the currently selected option's `value` (controlled); `null`
|
|
1826
2062
|
leaves nothing selected while keeping the first swatch tabbable.
|
|
1827
2063
|
- `size: '2xs' | 'xs' | 's' | 'm' | 'l' | 'xl' = 'm'` (reflected — scales the swatch hit-area and
|
|
1828
2064
|
fill diameter proportionally, hit-area floored at 24px; not pixel-matched to `lr-input`'s
|
|
1829
2065
|
row-height scale)
|
|
2066
|
+
- `mode: 'swatch' | 'gemstone' = 'swatch'` (reflected) — `swatch` preserves the plain-circle
|
|
2067
|
+
default. `gemstone` renders the shared glyph for options carrying a `gemstone` key and enables
|
|
2068
|
+
the selected glow/shine defaults.
|
|
1830
2069
|
- `label: string = ''` — accessible name copied to the internal `role="radiogroup"`; when empty, a
|
|
1831
2070
|
host-level `aria-label` is used as a fallback.
|
|
1832
2071
|
|
|
@@ -1855,7 +2094,9 @@ for a looping brighten-and-settle pulse on the selected swatch. It drives a sepa
|
|
|
1855
2094
|
works identically for a fill and an icon; disabled outright under `prefers-reduced-motion: reduce`,
|
|
1856
2095
|
which also drops the hover/selection scale transition), `--lr-swatch-picker-hit-size` (hit-area
|
|
1857
2096
|
size, swapped per `size` tier), `--lr-swatch-picker-fill-size` (visible fill/icon diameter, swapped
|
|
1858
|
-
per `size` tier)
|
|
2097
|
+
per `size` tier), `--lr-swatch-picker-gemstone-selected-blur` (default `--lr-size-0-5rem` in
|
|
2098
|
+
gemstone mode), `--lr-swatch-picker-gemstone-shine-duration` (default `1.8s` in gemstone mode);
|
|
2099
|
+
plus shared tokens — `--lr-color-border`/`-brand`, `--lr-space-xs`,
|
|
1859
2100
|
`--lr-border-width-thin`/`-thick`, `--lr-radius`, `--lr-transition-fast`, `--lr-focus-ring-*`,
|
|
1860
2101
|
and the per-tier `--lr-size-*` tokens.
|
|
1861
2102
|
|
|
@@ -1875,6 +2116,24 @@ and the per-tier `--lr-size-*` tokens.
|
|
|
1875
2116
|
</script>
|
|
1876
2117
|
```
|
|
1877
2118
|
|
|
2119
|
+
For the shared gemstone accent mode, import the side-effect-free palette/glyph helper. The
|
|
2120
|
+
consumer still owns localized labels, display order, and the initial value:
|
|
2121
|
+
|
|
2122
|
+
```ts
|
|
2123
|
+
import '@aceshooting/lyra-ui/components/forms/swatch-picker/swatch-picker.js';
|
|
2124
|
+
import { GEMSTONES } from '@aceshooting/lyra-ui/theme/gemstones.js';
|
|
2125
|
+
|
|
2126
|
+
const order = ['emerald', 'ruby', 'sapphire', 'hematite'] as const;
|
|
2127
|
+
picker.mode = 'gemstone';
|
|
2128
|
+
picker.options = order.map((key) => ({
|
|
2129
|
+
value: key,
|
|
2130
|
+
color: GEMSTONES[key].fill,
|
|
2131
|
+
label: translateGemstone(key),
|
|
2132
|
+
gemstone: key,
|
|
2133
|
+
}));
|
|
2134
|
+
picker.value = 'ruby';
|
|
2135
|
+
```
|
|
2136
|
+
|
|
1878
2137
|
**Known gotchas:**
|
|
1879
2138
|
- arrow-key navigation cycles (past the last swatch wraps to the first, and vice versa) rather than
|
|
1880
2139
|
clamping, and self-selects on move — arrow-navigating to a swatch immediately updates `value` and
|
|
@@ -1919,6 +2178,10 @@ silent. Internal `focus`/`blur` are re-dispatched as bubbling, composed host eve
|
|
|
1919
2178
|
same as clicking a native checkbox's associated `<label>`. If left empty, set `aria-label` on the
|
|
1920
2179
|
host so the control still has an accessible name.
|
|
1921
2180
|
|
|
2181
|
+
Host `aria-describedby` is forwarded to the internal `role="checkbox"`, so an externally-owned
|
|
2182
|
+
description can be associated with one checkbox inside a group. The attribute is omitted from the
|
|
2183
|
+
internal role when unset and tracks host attribute changes.
|
|
2184
|
+
|
|
1922
2185
|
**CSS parts:** `base` (the whole interactive control, `role="checkbox"`), `box` (the small square
|
|
1923
2186
|
showing the checkmark/indeterminate dash), `checkmark` (the checkmark or indeterminate-dash glyph),
|
|
1924
2187
|
`label` (wrapper around the default slot)
|
|
@@ -2222,7 +2485,8 @@ hit area stays fixed at `40px` across all sizes), `allowDuplicates` (`allow-dupl
|
|
|
2222
2485
|
`','` — see below).
|
|
2223
2486
|
**Slots:** `label`, `hint`, `error`.
|
|
2224
2487
|
**Events:** `input`, `change`, `lr-add` (`detail: { value }`), `lr-remove`
|
|
2225
|
-
(`detail: { value, index }`)
|
|
2488
|
+
(`detail: { value, index }` — cancelable; `preventDefault()` keeps the token in `value`
|
|
2489
|
+
unchanged), and `lr-token-edit`
|
|
2226
2490
|
(`detail: { value, previousValue, index }` — an existing token was edited in place and committed).
|
|
2227
2491
|
**CSS parts:** `form-control`, `form-control-label`, `input-wrapper`, `token`, `token-label` (the
|
|
2228
2492
|
token's text, doubling as the roving-focus edit trigger — rendered only while `editable`),
|
|
@@ -2471,11 +2735,15 @@ list, no filter/free-text mode.
|
|
|
2471
2735
|
|
|
2472
2736
|
**Properties:**
|
|
2473
2737
|
- `locales: LyraLocaleCatalog = []` (attribute: false) — `LyraLocaleCatalog = string[] |
|
|
2474
|
-
LyraLocaleEntry[]`, `LyraLocaleEntry { tag: string; label?: string }`. Empty
|
|
2475
|
-
auto-discovers the registry; a non-empty array (either form) overrides it
|
|
2476
|
-
subset, custom order, custom labels, or a locale offered before its
|
|
2477
|
-
|
|
2478
|
-
`
|
|
2738
|
+
LyraLocaleEntry[]`, `LyraLocaleEntry { tag: string; label?: string; country?: string }`. Empty
|
|
2739
|
+
(the default) auto-discovers the registry; a non-empty array (either form) overrides it
|
|
2740
|
+
entirely — a curated subset, custom order, custom labels, or a locale offered before its
|
|
2741
|
+
strings are registered. `country` (ISO 3166-1 alpha-2) overrides a row's derived flag — e.g.
|
|
2742
|
+
showing Lebanon's flag for an `'ar'` row instead of the library's default Saudi Arabia mapping;
|
|
2743
|
+
only available on the `{tag,label,country}` object form, not the bare `string[]` form.
|
|
2744
|
+
- `showFlags: boolean = true` — each row's leading `<lr-flag language={tag} variant="compact">`
|
|
2745
|
+
(or `<lr-flag country={country} variant="compact">` when the entry sets `country`); `false`
|
|
2746
|
+
omits the flag element entirely (not just visually).
|
|
2479
2747
|
- `value: string = ''` — the **committed** selection (form value, drives `lr-change`). While `''`
|
|
2480
2748
|
and untouched, the trigger *displays* `effectiveLocale` as a preview label, but
|
|
2481
2749
|
`checkValidity()`/`required` are governed by the real `value`, which stays `''` until a real
|
|
@@ -2845,6 +3113,9 @@ own "consumer computes/renders" contract rather than assuming addition.
|
|
|
2845
3113
|
button's label once they've been revealed)
|
|
2846
3114
|
- `showAllColumns: boolean = false` (attribute `show-all-columns`, reflected) — forces responsive
|
|
2847
3115
|
priority columns visible and is updated by the built-in reveal button
|
|
3116
|
+
- `storageKey?: string` (attribute `storage-key`) — when set, persists `showAllColumns` to
|
|
3117
|
+
`localStorage` (namespaced as `lr-table:${storageKey}`) and restores it on the next mount. Unset
|
|
3118
|
+
(the default) touches storage not at all. Mirrors `lr-app-rail`'s identical `storage-key` pattern
|
|
2848
3119
|
- `heatTintScale?: { min?: number; max?: number }` (attribute: false) — overrides the auto-derived
|
|
2849
3120
|
heat-tint domain (min/max of every `heatValue` result across every currently-rendered row —
|
|
2850
3121
|
post-sort, pre-pagination, the same rows `footer(rows)` already sees). Unset (the default) computes
|
|
@@ -2913,6 +3184,11 @@ element *or on any ancestor* and still reach the rule that reads it. It exists b
|
|
|
2913
3184
|
forbids an attribute selector after `::part()` — `::part(row)[aria-selected='true']` is invalid CSS —
|
|
2914
3185
|
so the only prior lever for restyling the selected row was overriding the library-wide
|
|
2915
3186
|
`--lr-color-brand-quiet` token, which repaints everything else reading it.
|
|
3187
|
+
`--lr-table-header-sorted-bg` (default `transparent`) and `--lr-table-header-sorted-color` (default
|
|
3188
|
+
`inherit`) restyle the **currently-sorted** column's header cell (`[aria-sort]` other than `none`).
|
|
3189
|
+
Same shape and rationale as `--lr-table-row-selected-bg`: inline `var()` fallbacks, not on `:host`,
|
|
3190
|
+
because `::part(header-cell)[aria-sort]` is invalid CSS. The `sort-icon` part styles only the
|
|
3191
|
+
chevron; these tokens style the header cell itself.
|
|
2916
3192
|
`--lr-table-sticky-offset` (default `0`) is measured and written inline per column by the component
|
|
2917
3193
|
so multiple `sticky` columns stack instead of overlapping; it is a read-out, not a knob you set.
|
|
2918
3194
|
`--lr-table-heat-t` is likewise component-written (each `[data-heat]` cell's position on the ramp).
|
|
@@ -2938,11 +3214,16 @@ so multiple `sticky` columns stack instead of overlapping; it is a read-out, not
|
|
|
2938
3214
|
- only single-row selection is modeled (`selectedKey: string | number | null`);
|
|
2939
3215
|
there's no bulk-select/checkbox-column API — you must hand-roll a checkbox column entirely inside
|
|
2940
3216
|
a `cell()` callback if you need multi-select.
|
|
2941
|
-
-
|
|
2942
|
-
|
|
2943
|
-
`this.getAttribute('aria-label')` at render time
|
|
2944
|
-
|
|
2945
|
-
|
|
3217
|
+
- `accessibleLabel: string = ''` (attribute `accessible-label`) — a typed accessible name for the
|
|
3218
|
+
`<table role="grid">`. A plain `aria-label` HTML attribute on the host is also forwarded (read via
|
|
3219
|
+
`this.getAttribute('aria-label')` at render time) and serves as a fallback when `accessibleLabel`
|
|
3220
|
+
is unset. Consumer-supplied text, so neither is run through `this.localize()`.
|
|
3221
|
+
- `caption: string = ''` — an optional visible `<caption>` (exposed as the `caption` CSS part). When
|
|
3222
|
+
no `accessibleLabel`/host `aria-label` is present the caption also names the grid via
|
|
3223
|
+
`aria-labelledby`.
|
|
3224
|
+
- A grid with **none** of `accessibleLabel`, host `aria-label`, or `caption` logs a one-time
|
|
3225
|
+
`console.warn` on first render (dev signal) — an unnamed grid is an accessibility defect that
|
|
3226
|
+
otherwise renders silently.
|
|
2946
3227
|
- Full roving-tabindex grid keyboard pattern (one `tabindex="0"` stop among header cells, one among
|
|
2947
3228
|
body rows) — Left/Right/Home/End move within the header row, Up/Down/Home/End move within the
|
|
2948
3229
|
body, Down from the header enters the body's roving stop and Up from the body's first row returns
|
|
@@ -3153,6 +3434,12 @@ visually-hidden `[part="live-region"]` (`role="status" aria-live="polite"`) anno
|
|
|
3153
3434
|
90° for denser packing
|
|
3154
3435
|
- `palette?: string[]` (attribute: false) — custom categorical colors, cycled by word index (or by
|
|
3155
3436
|
`group`); defaults to the `--lr-word-cloud-color-1..8` tokens
|
|
3437
|
+
- `legend: WordCloudLegendItem[] = []` (attribute: false) — optional named `{ label, color }`
|
|
3438
|
+
entries for explaining explicit `words[].color`/group color overrides; when omitted, the
|
|
3439
|
+
component derives entries from grouped and explicitly colored words
|
|
3440
|
+
- `showLegend: boolean = false` (attribute `show-legend`, reflected) — renders the supplied or
|
|
3441
|
+
derived legend below the cloud; the color key is an accessible list and does not change word
|
|
3442
|
+
activation or palette selection
|
|
3156
3443
|
|
|
3157
3444
|
**Methods:** `refreshTheme(): void` — forces a relayout so the `--lr-font` custom property is
|
|
3158
3445
|
re-read from computed style (font-family affects the canvas text measurement layout depends on);
|
|
@@ -3166,8 +3453,8 @@ the currently-focused word — a no-op if nothing is focused yet)
|
|
|
3166
3453
|
|
|
3167
3454
|
**CSS parts:** `base`, `svg`, `word` (each `<text>`), `focus-ring` (the rect around the roving-focus
|
|
3168
3455
|
cursor's word), `live-region` (visually-hidden `role="status" aria-live="polite"` announcement text),
|
|
3169
|
-
`
|
|
3170
|
-
|
|
3456
|
+
`legend`/`legend-item`/`legend-swatch`/`legend-label` (the optional static color key), and `empty`
|
|
3457
|
+
(the no-data placeholder)
|
|
3171
3458
|
|
|
3172
3459
|
**Themeable custom properties:** `--lr-word-cloud-color-1`, `--lr-word-cloud-color-2`,
|
|
3173
3460
|
`--lr-word-cloud-color-3`, `--lr-word-cloud-color-4`, `--lr-word-cloud-color-5`,
|
|
@@ -4295,9 +4582,16 @@ auto-inserted between each adjacent pair.
|
|
|
4295
4582
|
**Properties:**
|
|
4296
4583
|
- `sizes: number[] = []` (attribute: false — percentages per panel, auto-computed equally if
|
|
4297
4584
|
omitted/mismatched)
|
|
4298
|
-
- `defaultSizes: number[] = []` (attribute: false) — initialization-only fallback: a
|
|
4299
|
-
`storageKey` layout wins first; otherwise a valid `defaultSizes` wins over equal
|
|
4300
|
-
Later reassignment never overwrites live drag/persisted state — set it once, at
|
|
4585
|
+
- `defaultSizes: (number | string)[] = []` (attribute: false) — initialization-only fallback: a
|
|
4586
|
+
valid restored `storageKey` layout wins first; otherwise a valid `defaultSizes` wins over equal
|
|
4587
|
+
distribution. Later reassignment never overwrites live drag/persisted state — set it once, at
|
|
4588
|
+
mount. Each entry is either a plain **number** (percent-of-container, validated unchanged: a
|
|
4589
|
+
pure-number array that does not sum to ~100, e.g. `[30, 60]`, is still rejected and falls through
|
|
4590
|
+
to the equal split) or a CSS **length string** (`'200px'`, `'20%'`, `'3rem'`). When at least one
|
|
4591
|
+
entry is a length string, every entry is resolved against the measured container (numbers as
|
|
4592
|
+
percent-of-container, `%` as-is, `px`/`rem`/`em` via the shared length resolver) and then
|
|
4593
|
+
normalized to percentages before the same validation applies — so `['200px', '300px']` on a 500px
|
|
4594
|
+
container initializes to `[40, 60]`.
|
|
4301
4595
|
- `min: number = 10` (min % per panel)
|
|
4302
4596
|
- `orientation: 'horizontal'|'vertical' = 'horizontal'` (reflected) — the axis used at/above
|
|
4303
4597
|
`orientationBreakpoint` (or always, when that's unset).
|
|
@@ -4541,6 +4835,10 @@ position) survives the transition.
|
|
|
4541
4835
|
view externally; also updated internally when a view toggle is clicked.
|
|
4542
4836
|
- `accessibleLabel: string = ''` (attribute `aria-label`) — overrides the label-derived fullscreen
|
|
4543
4837
|
dialog name.
|
|
4838
|
+
- `storageKey?: string` (attribute `storage-key`) — when set, persists `collapsed` to `localStorage`
|
|
4839
|
+
under `lr-widget:${storageKey}` and restores it on the next mount (mirrors `lr-app-rail`'s/
|
|
4840
|
+
`lr-table`'s identical `storage-key` pattern). Without a `storageKey` there is no persistence and
|
|
4841
|
+
storage is never touched — listen for `lr-collapse-change` and persist the state yourself.
|
|
4544
4842
|
|
|
4545
4843
|
**Events:** `lr-collapse-change` (`detail: { collapsed }`, the new state), `lr-fullscreen-change`
|
|
4546
4844
|
(`detail: { fullscreen }` — also fired when fullscreen is exited via Escape or a backdrop click, not
|
|
@@ -4603,6 +4901,9 @@ space for a persistent sidebar/toolbar that should stay visible instead of being
|
|
|
4603
4901
|
fullscreen panel/backdrop — it overrides the default `var(--lr-space-l)` inset on every side for
|
|
4604
4902
|
both `[part="base"]` and `[part="backdrop"]`. Set `compact` for tighter header/body padding.
|
|
4605
4903
|
|
|
4904
|
+
The collapse-button `aria-label` is localized via its own `widgetCollapse` (default `'Collapse
|
|
4905
|
+
panel'`) and `widgetExpand` (default `'Expand panel'`) keys.
|
|
4906
|
+
|
|
4606
4907
|
**Known gotchas:**
|
|
4607
4908
|
- a reconnect that preserves the same element instance (e.g. a drag-and-drop reparent) resumes its
|
|
4608
4909
|
shared overlay registration and re-acquires the scroll lock if `fullscreen` was still `true`
|
|
@@ -4610,6 +4911,11 @@ both `[part="base"]` and `[part="backdrop"]`. Set `compact` for tighter header/b
|
|
|
4610
4911
|
between, so `willUpdate()` alone wouldn't otherwise notice.
|
|
4611
4912
|
- `collapsed` hides the body via `hidden` rather than an animated height transition — collapsing is
|
|
4612
4913
|
instant, not a slide.
|
|
4914
|
+
- prior to this release the collapse-button `aria-label` was localized through `lr-dock-panel`'s
|
|
4915
|
+
own `dockPanelCollapse`/`dockPanelExpand` keys (a borrowed, differently-named pair). A locale
|
|
4916
|
+
registered against those keys specifically to target `lr-widget`'s collapse button should move
|
|
4917
|
+
to `widgetCollapse`/`widgetExpand`; the default English strings are unchanged, and `lr-dock-panel`
|
|
4918
|
+
itself is unaffected.
|
|
4613
4919
|
|
|
4614
4920
|
---
|
|
4615
4921
|
|
|
@@ -4982,7 +5288,9 @@ Ctrl/Cmd+ArrowUp/ArrowDown from focus anywhere inside a row — the same modifie
|
|
|
4982
5288
|
`<lr-tree>`'s controlled `reorderable` mode, this list physically moves its own slotted
|
|
4983
5289
|
`<lr-reorder-item>` light-DOM nodes itself (there is no `data` array prop to reconcile against),
|
|
4984
5290
|
and emits `lr-reorder` with the full new order so the host can persist it without hand-rolling its
|
|
4985
|
-
own splice/resort logic.
|
|
5291
|
+
own splice/resort logic. `lr-reorder` is cancelable — a listener calling `preventDefault()` holds
|
|
5292
|
+
the move open (mirroring `lr-confirm-bar`'s cancelable approve/deny pattern) until the host calls
|
|
5293
|
+
`finalizePendingMove()`/`revertPendingMove()`.
|
|
4986
5294
|
|
|
4987
5295
|
### `lr-reorder-list`
|
|
4988
5296
|
|
|
@@ -4992,9 +5300,15 @@ own splice/resort logic.
|
|
|
4992
5300
|
- `disabled: boolean = false` (reflected) — disables every item's move buttons and the Ctrl/Cmd+
|
|
4993
5301
|
Arrow shortcut, without mutating any item's own `disabled` attribute.
|
|
4994
5302
|
|
|
4995
|
-
**Events:** `lr-reorder` (`detail: { order: string[], fromIndex: number, toIndex: number }
|
|
4996
|
-
|
|
4997
|
-
fallback) in the
|
|
5303
|
+
**Events:** `lr-reorder` (`detail: { order: string[], fromIndex: number, toIndex: number }`,
|
|
5304
|
+
cancelable — fired before a move is applied; `order` is every item's `value` (or its
|
|
5305
|
+
DOM-position-index fallback) in the order the move WOULD produce. Uncanceled, the move applies
|
|
5306
|
+
synchronously right after. `preventDefault()` holds the move instead: the affected item reflects
|
|
5307
|
+
`pending`, and no other move can start until the host resolves it — see **Methods** below.
|
|
5308
|
+
|
|
5309
|
+
**Methods:** `finalizePendingMove()` — applies a move held via `preventDefault()`.
|
|
5310
|
+
`revertPendingMove()` — discards a held move, restoring the prior order. Both no-op when nothing
|
|
5311
|
+
is pending.
|
|
4998
5312
|
|
|
4999
5313
|
**Slots:** default — `<lr-reorder-item>` elements.
|
|
5000
5314
|
|
|
@@ -5029,6 +5343,9 @@ between rows.
|
|
|
5029
5343
|
- `atStart: boolean = false`, `atEnd: boolean = false`, `listDisabled: boolean = false`
|
|
5030
5344
|
(attribute: false) — pushed down by the parent `<lr-reorder-list>`; normally set internally, not
|
|
5031
5345
|
by consumers.
|
|
5346
|
+
- `pending: boolean = false` (reflected) — set while this item's move is held via the parent's
|
|
5347
|
+
`lr-reorder` `preventDefault()`. Informational only (doesn't itself disable the item's buttons);
|
|
5348
|
+
style via `lr-reorder-item[pending]`. Pushed down by the parent; normally set internally.
|
|
5032
5349
|
|
|
5033
5350
|
**Events:** `lr-move-request` (`detail: { direction: 'up' | 'down' }` — a move button was activated
|
|
5034
5351
|
while not disabled; handled by the parent `<lr-reorder-list>`, which performs the actual move)
|
|
@@ -5065,6 +5382,13 @@ labeled options, rendered as a button row" is ubiquitous settings/filter-panel U
|
|
|
5065
5382
|
**Events:** `lr-change` (`detail: { value }`) — fired when the selected value changes via click or
|
|
5066
5383
|
keyboard.
|
|
5067
5384
|
|
|
5385
|
+
**Methods:**
|
|
5386
|
+
- `scrollToValue(value: string): void` — scroll the segment with the given `value` into view within
|
|
5387
|
+
the (possibly overflowing) track, without changing the selection. Honors
|
|
5388
|
+
`prefers-reduced-motion` (falls back to `behavior: 'auto'`). This runs automatically when `value`
|
|
5389
|
+
is changed programmatically (keyboard navigation already reveals the focused segment on its own),
|
|
5390
|
+
so you only need to call it for the "reveal without selecting" case.
|
|
5391
|
+
|
|
5068
5392
|
**Slots:** none.
|
|
5069
5393
|
|
|
5070
5394
|
**CSS parts:** `base` (the `role="radiogroup"` root), `segment` (a single `role="radio"` button),
|
|
@@ -5371,8 +5695,10 @@ content is never duplicated.
|
|
|
5371
5695
|
|
|
5372
5696
|
Opting in to `resizable` adds a continuously draggable width for the `'full'` state: a
|
|
5373
5697
|
`[part="resizer"]` handle (pointer-drag and Left/Right-arrow keyboard stepping, RTL-aware) clamped to
|
|
5374
|
-
`[minRailWidthPx, maxRailWidthPx]
|
|
5375
|
-
|
|
5698
|
+
`[minRailWidthPx, maxRailWidthPx]`. Set `storageKey` (attribute `storage-key`) to persist `open` and
|
|
5699
|
+
`railWidthPx` to `localStorage` under `lr-app-rail:${storageKey}` and restore them on the next mount
|
|
5700
|
+
(mirrors `lr-split`'s `storage-key`; `mode` is breakpoint-derived and never persisted). Without a
|
|
5701
|
+
`storageKey` there is no persistence — listen for `lr-rail-resize` and persist `widthPx` yourself.
|
|
5376
5702
|
`preferredMode` separately lets a host manually prefer `'full'`/`'icon-only'` for the non-mobile
|
|
5377
5703
|
breakpoint axis (e.g. a user's own collapse toggle) while `mobile-breakpoint` continues to be tracked
|
|
5378
5704
|
automatically regardless — it's only consulted while `mode` isn't force-pinned via the `mode`
|
|
@@ -5417,6 +5743,9 @@ accessor itself, which still takes full priority.
|
|
|
5417
5743
|
- `railWidthPx?: number` (attribute `rail-width-px`) — the rail's current width in px while
|
|
5418
5744
|
`resizable`; settable/gettable directly. Unset defers to `--lr-app-rail-width`'s own resolved
|
|
5419
5745
|
width.
|
|
5746
|
+
- `storageKey?: string` (attribute `storage-key`) — when set, persists `open` and `railWidthPx` to
|
|
5747
|
+
`localStorage` under `lr-app-rail:${storageKey}` and restores them on the next mount. `mode` is
|
|
5748
|
+
breakpoint-derived and never persisted. Unset means no persistence.
|
|
5420
5749
|
- `minRailWidthPx: number = 190` (attribute `min-rail-width-px`) — minimum `railWidthPx` a
|
|
5421
5750
|
drag/keyboard resize can reach.
|
|
5422
5751
|
- `maxRailWidthPx: number = 440` (attribute `max-rail-width-px`) — maximum `railWidthPx` a
|
|
@@ -5434,9 +5763,12 @@ role, matching `<lr-date-input>`'s `accessibleLabel`.
|
|
|
5434
5763
|
**Events:** `lr-mode-change` (`detail: AppRailModeChangeDetail` = `{ mode: AppRailMode }`; the
|
|
5435
5764
|
effective mode changed, whether from a breakpoint crossing or an explicit `mode` assignment — not
|
|
5436
5765
|
fired for a redundant reassignment to the mode already in effect), `lr-toggle`
|
|
5437
|
-
(`detail: AppRailToggleDetail` = `{ open: boolean }`; the mobile overlay
|
|
5438
|
-
built-in toggle button, Escape, a backdrop click, a nav-item click while open, or a
|
|
5439
|
-
mode change leaving `'mobile'` while open — not fired when a consumer sets `open`
|
|
5766
|
+
(`detail: AppRailToggleDetail` = `{ open: boolean }`; the mobile overlay is opening or closing — via
|
|
5767
|
+
the built-in toggle button, Escape, a backdrop click, a nav-item click while open, or a
|
|
5768
|
+
breakpoint/forced mode change leaving `'mobile'` while open — not fired when a consumer sets `open`
|
|
5769
|
+
directly. Cancelable for every trigger except the forced mode-change close, which always applies —
|
|
5770
|
+
vetoing that one would leave `open` stuck `true` in a mode where it's meaningless; call
|
|
5771
|
+
`preventDefault()` to keep the overlay as it is for the other triggers),
|
|
5440
5772
|
`lr-rail-resize` (`detail: AppRailResizeDetail` = `{ widthPx: number }`; the `resizable` rail's
|
|
5441
5773
|
width changed via drag or keyboard stepping — not fired when a consumer sets `railWidthPx` directly).
|
|
5442
5774
|
|
|
@@ -6007,6 +6339,11 @@ to `<wa-card>`'s contract, staying slot-compatible with `lr-result-card` where t
|
|
|
6007
6339
|
reproduces a plain static card: no `tabindex`, no listeners, no events.
|
|
6008
6340
|
- `href?: string` — when set, the card's root renders as a real `<a href=...>` instead of a `<div>`,
|
|
6009
6341
|
for a whole-card link (e.g. a wide CTA tile). Unset (the default) renders a plain `<div>`.
|
|
6342
|
+
- `target?: string` — native anchor target, applied only while `href` resolves to a link. Setting it
|
|
6343
|
+
to `'_blank'` (or any other target) automatically derives `rel="noopener noreferrer"` on the
|
|
6344
|
+
rendered anchor; there is deliberately **no** separately-settable `rel` property, so a consumer
|
|
6345
|
+
can't forget it and leave the opened page holding a `window.opener` back-reference
|
|
6346
|
+
(reverse-tabnabbing). Unset (the default) emits neither `target` nor `rel`.
|
|
6010
6347
|
|
|
6011
6348
|
**Events:** `lr-card-activate` (no detail) — the whole card was activated, by click or by
|
|
6012
6349
|
Enter/Space while `[part='base']` has focus. Only fired while `interactive` is set **without**
|
|
@@ -6298,7 +6635,7 @@ From the `toaster` controller — the ergonomic entry point, no manual `<lr-toas
|
|
|
6298
6635
|
needed:
|
|
6299
6636
|
|
|
6300
6637
|
```ts
|
|
6301
|
-
import { toast } from '@aceshooting/lyra-ui';
|
|
6638
|
+
import { toast } from '@aceshooting/lyra-ui/components/overlays/toast/toaster.js';
|
|
6302
6639
|
|
|
6303
6640
|
toast('Saved');
|
|
6304
6641
|
toast({ message: 'Deleted', variant: 'danger', action: { label: 'Undo', onClick: (item) => {/*...*/} } });
|
|
@@ -6313,7 +6650,7 @@ at another, since `placement` is a per-call option rather than a single global r
|
|
|
6313
6650
|
|
|
6314
6651
|
```html
|
|
6315
6652
|
<script type="module">
|
|
6316
|
-
import { toast } from '@aceshooting/lyra-ui';
|
|
6653
|
+
import { toast } from '@aceshooting/lyra-ui/components/overlays/toast/toaster.js';
|
|
6317
6654
|
document.getElementById('save-btn').addEventListener('click', () => toast('Saved!'));
|
|
6318
6655
|
</script>
|
|
6319
6656
|
```
|
|
@@ -6361,7 +6698,9 @@ the existing `flex-start` cross-axis and `start` text alignment, and `center` ce
|
|
|
6361
6698
|
`--lr-empty-compact-padding` (default `--lr-space-xs` — padding used in compact mode),
|
|
6362
6699
|
`--lr-empty-compact-gap` (default `--lr-space-2xs` — gap between the icon, heading, and description
|
|
6363
6700
|
in compact mode; the non-compact layout's gap stays the plain shared `--lr-space-s` token, not
|
|
6364
|
-
independently themeable),
|
|
6701
|
+
independently themeable), `--lr-empty-compact-font-size` (compact mode only; unset by default with
|
|
6702
|
+
**no fallback value** — the compact heading keeps its ordinary inherited font size until a
|
|
6703
|
+
consumer explicitly sets this token), plus shared tokens (`--lr-space-xs/-s/-l`,
|
|
6365
6704
|
`--lr-color-text-quiet/-border/-text`).
|
|
6366
6705
|
|
|
6367
6706
|
**Optional peer deps:** none.
|
|
@@ -6700,6 +7039,9 @@ back to `--lr-chip-bg`), the density quintet `--lr-chip-font-size`, `--lr-chip-p
|
|
|
6700
7039
|
`:host([size])` rule, so setting one directly on the element overrides that step of the scale; the
|
|
6701
7040
|
`m` defaults are `--lr-font-size-sm` / `--lr-size-0-25rem` / `--lr-space-s` / `--lr-space-xs` /
|
|
6702
7041
|
`--lr-font-size-sm`), the height pair `--lr-chip-min-height` / `--lr-chip-height` (below),
|
|
7042
|
+
`--lr-chip-radius` (default `--lr-radius-pill`, the corner radius of both `[part='base']` and
|
|
7043
|
+
`[part='remove-button']` — retunable without a `::part()` rule, and unlike the density quintet
|
|
7044
|
+
above does not vary by `size`; the same `--lr-button-radius` pattern),
|
|
6703
7045
|
plus shared tokens (`--lr-space-xs`, `--lr-space-s`,
|
|
6704
7046
|
`--lr-color-brand`/`-brand-quiet`, `--lr-color-success`/`-success-quiet`,
|
|
6705
7047
|
`--lr-color-warning`/`-warning-quiet`, `--lr-color-danger`/`-danger-quiet`,
|
|
@@ -6875,6 +7217,9 @@ near the virtual point) when one is available to give it something to observe; o
|
|
|
6875
7217
|
the anchor point moves on its own (e.g. a graph pan/zoom tick), re-call `showAt()` with fresh
|
|
6876
7218
|
coordinates to re-anchor — the popover stays open across such a call. A popover that never calls
|
|
6877
7219
|
`showAt()` behaves exactly as before.
|
|
7220
|
+
`hide(options?: { focusTrigger?: boolean })` programmatically closes the popover; pass
|
|
7221
|
+
`{ focusTrigger: true }` to return focus to the slotted trigger (as Escape does), or omit it to
|
|
7222
|
+
close without moving focus (as a bare `el.open = false` does). No-op when already closed.
|
|
6878
7223
|
**Events:** `lr-show`, `lr-hide`. **Slots:** `trigger`, default content. **CSS parts:** `trigger`,
|
|
6879
7224
|
`popup`, `content`. **Themeable custom properties:** `--lr-overlay-max-inline-size` (default
|
|
6880
7225
|
`--lr-size-20rem` — maximum inline size of the popup).
|
|
@@ -6994,6 +7339,9 @@ color for text and border). Set one directly on the element for a tint outside t
|
|
|
6994
7339
|
`var(--lr-space-s)`), and `--lr-badge-min-height` (default `var(--lr-size-1-25rem)`) — the density
|
|
6995
7340
|
trio each `:host([size])` rule rewrites to that step's font size, inline padding, and minimum block
|
|
6996
7341
|
size; the `m` defaults above exactly reproduce the pre-`size` fixed badge treatment.
|
|
7342
|
+
`--lr-badge-radius` (default `--lr-radius-pill`) is `[part='base']`'s corner radius, retunable
|
|
7343
|
+
without a `::part(base)` rule and, unlike the density trio, does not vary by `size` — the same
|
|
7344
|
+
`--lr-button-radius` pattern; `lr-tag` inherits it unchanged, the same as `size`.
|
|
6997
7345
|
|
|
6998
7346
|
## `lr-callout`
|
|
6999
7347
|
|
|
@@ -8429,12 +8777,24 @@ accepted), `'size'` from `maxFileSize`, or `'directory'` for a dropped folder. `
|
|
|
8429
8777
|
when the semantic dropzone (the actual keyboard-focusable element, not the hidden native `<input>`)
|
|
8430
8778
|
gains/loses focus.
|
|
8431
8779
|
|
|
8780
|
+
Each rejected file also renders as its own line in the visible `[part="rejection"]` alert, naming
|
|
8781
|
+
the file and the reason via one of four locale keys: `fileInputRejectedType` (default
|
|
8782
|
+
`'{filename}: this file type is not accepted.'`), `fileInputRejectedSize` (default
|
|
8783
|
+
`'{filename}: this file is too large.'`), `fileInputRejectedCount` (default `'{filename}: only one
|
|
8784
|
+
file can be selected at a time.'`), and — for `'directory'` — the pre-existing
|
|
8785
|
+
`fileInputFolderRejected` (default `'Folders are not accepted here.'`, reused verbatim, so it has no
|
|
8786
|
+
`{filename}` placeholder). The filename is interpolated as caller-supplied data, never localized
|
|
8787
|
+
itself. The region is cleared (and unrendered) as soon as a subsequent selection rejects nothing.
|
|
8788
|
+
|
|
8432
8789
|
**Slots:** default slot — custom dropzone content, overrides the `label` attribute text when
|
|
8433
8790
|
provided. The accessible name always comes from `label` regardless, so icon-only slot content still
|
|
8434
8791
|
announces correctly.
|
|
8435
8792
|
|
|
8436
8793
|
**CSS parts:** `base`, `input`, `status` (a visually-hidden `role="status" aria-live="polite"`
|
|
8437
|
-
element carrying the drag accept/reject announcement)
|
|
8794
|
+
element carrying the drag accept/reject announcement and the aggregate accepted/rejected count),
|
|
8795
|
+
`rejection` (a **visible** `role="alert"` region, rendered only while a rejection exists, listing
|
|
8796
|
+
each currently-rejected file next to a per-reason message — in addition to, never in place of, the
|
|
8797
|
+
sr-only `status` summary above)
|
|
8438
8798
|
|
|
8439
8799
|
**Themeable custom properties:** `--lr-file-input-compact-padding` (default `var(--lr-space-s)`) —
|
|
8440
8800
|
`[part='base']`'s padding while `compact`; `--lr-file-input-compact-gap` (default
|
|
@@ -9347,15 +9707,27 @@ Chart.js wrapper every other `lr-*-chart` tag subclasses; supports both a simpli
|
|
|
9347
9707
|
- `labels: string[] = []` (attribute: false)
|
|
9348
9708
|
- `datasets: Series[] = []` (attribute: false) — `Series { label: string; data?: (number|null)[];
|
|
9349
9709
|
points?: {x,y,label?}[]; color?: string|string[]; fill?: boolean; width?: number; dash?: boolean;
|
|
9350
|
-
noTooltip?: boolean; axis?: 'y'|'y2'; pointColors?: string[]; pointRadius?: number;
|
|
9351
|
-
'line'|'bar' }`
|
|
9710
|
+
noTooltip?: boolean; axis?: 'y'|'y2'; pointColors?: string[]; pointRadius?: number|number[];
|
|
9711
|
+
segmentColors?: string[]; type?: 'line'|'bar' }`
|
|
9712
|
+
- `pointRadius` takes a single number (applied to every point) **or** an array matching `data`'s
|
|
9713
|
+
length that sizes each point independently — passed straight through to Chart.js, which
|
|
9714
|
+
supports both natively. Useful for emphasizing a single outlier or the latest reading without
|
|
9715
|
+
splitting the series in two.
|
|
9716
|
+
- `segmentColors` colors each *segment* (the line drawn between two consecutive points) by the
|
|
9717
|
+
segment's **starting** point index, so `['red', 'green']` over 3 points paints the first
|
|
9718
|
+
segment red and the second green; a shorter array cycles. Wired to Chart.js's
|
|
9719
|
+
`segment.borderColor` scriptable option, so it is only meaningful for line-type series.
|
|
9720
|
+
Typical use is threshold/anomaly banding along one line. A series that omits it (or passes an
|
|
9721
|
+
empty array) emits no `segment` key at all, leaving line rendering exactly as before.
|
|
9352
9722
|
- `legend: boolean = false`
|
|
9353
9723
|
- `legendPosition: LyraChartLegendPosition = 'top'` (attribute `legend-position`) — places the
|
|
9354
9724
|
legend at `top`, `right`, `bottom`, or `left`; `auto` chooses right above 480px and bottom below
|
|
9355
9725
|
that allocation width
|
|
9356
|
-
- `valueFormatter?: LyraChartValueFormatter` (attribute: false) — formats numeric
|
|
9357
|
-
and legend values; the callback receives the value and `'tick'`, `'tooltip'`, or
|
|
9358
|
-
context
|
|
9726
|
+
- `valueFormatter?: LyraChartValueFormatter` (attribute: false) — formats numeric (value-axis)
|
|
9727
|
+
tick, tooltip, and legend values; the callback receives the value and `'tick'`, `'tooltip'`, or
|
|
9728
|
+
`'legend'` context. Never runs against the categorical x-axis's own labels (line/bar's `labels`
|
|
9729
|
+
strings) — Chart.js's category scale passes the tick index to `ticks.callback`, not the label
|
|
9730
|
+
text
|
|
9359
9731
|
- `area: boolean = false`
|
|
9360
9732
|
- `zoom: boolean = false` — wheel/drag/pinch zoom on the `x` axis only (pan disabled, and the zoom
|
|
9361
9733
|
range is limited to the original data extent); shows the `reset-zoom-button` while zoomed
|
|
@@ -9369,6 +9741,16 @@ Chart.js wrapper every other `lr-*-chart` tag subclasses; supports both a simpli
|
|
|
9369
9741
|
- `stacked: boolean = false` — stacks the `x`/`y`(/`y2`) scale entries `buildScales()` returns; only
|
|
9370
9742
|
meaningful for `bar`/`line` types (scatter/bubble's linear `x` scale and the radial `r` scale used
|
|
9371
9743
|
by radar/polar-area are out of scope)
|
|
9744
|
+
- `dataLabels: boolean = false` (attribute `data-labels`) — draws each point's value on the chart via
|
|
9745
|
+
the optional `chartjs-plugin-datalabels` peer (see `peers.md`). Unset (the default) leaves labels
|
|
9746
|
+
off; because the plugin is registered **per chart instance** (not globally), a `<lr-chart
|
|
9747
|
+
data-labels>` never affects any other chart on the page. If the peer is not installed the chart
|
|
9748
|
+
still renders and the attribute is inert, with one `console.warn`. The screen-reader equivalent is
|
|
9749
|
+
the always-present accessible data table (`show-data-table` makes it visible) — labels are a
|
|
9750
|
+
purely visual, canvas-only addition and add no new a11y surface.
|
|
9751
|
+
- `stackTotals: boolean = false` (attribute `stack-totals`) — with `stacked` (bar/line only), draws
|
|
9752
|
+
the per-category stack total above each stack, via the same `chartjs-plugin-datalabels` peer.
|
|
9753
|
+
Null/undefined points are skipped; a category whose every value is null shows no total (not `0`)
|
|
9372
9754
|
- `config?: Partial<ChartConfiguration>` (attribute: false) — deep-merged over the generated
|
|
9373
9755
|
config; any nested key wins without clobbering sibling generated keys. This is the raw Chart.js
|
|
9374
9756
|
escape hatch, so a caller-supplied `config.type` is passed through rather than normalized.
|
|
@@ -9381,11 +9763,25 @@ Chart.js wrapper every other `lr-*-chart` tag subclasses; supports both a simpli
|
|
|
9381
9763
|
- `chartArea: LyraChartArea | undefined` (readonly) — current Chart.js chart-area geometry in
|
|
9382
9764
|
canvas-local coordinates (`top`, `left`, `right`, `bottom`, `width`, `height`), when a chart is
|
|
9383
9765
|
drawn
|
|
9384
|
-
|
|
9385
|
-
|
|
9386
|
-
|
|
9387
|
-
|
|
9388
|
-
`
|
|
9766
|
+
- `appendData(label, values, maxPoints?)` — appends one aligned numeric category and optionally
|
|
9767
|
+
keeps only the newest `maxPoints`; point-based scatter/bubble series are left unchanged
|
|
9768
|
+
|
|
9769
|
+
**Methods:** `resetZoom()` (reset any active zoom/pan to the original view), `refreshTheme()`, and
|
|
9770
|
+
`exportData('csv' | 'png')` (returns a spreadsheet-safe CSV snapshot or the current PNG data URL
|
|
9771
|
+
when Chart.js is loaded)
|
|
9772
|
+
(forces a redraw so the `--lr-chart-*` tokens below are re-read from the current computed style. A
|
|
9773
|
+
built-in `ThemeWatcher` now calls this automatically when `prefers-color-scheme` flips or an
|
|
9774
|
+
ancestor's `class`/`style`/`data-theme`/`data-color-scheme` attribute mutates — the most common
|
|
9775
|
+
theme-toggle mechanisms — so a consumer rarely needs to call it by hand; it remains public as the
|
|
9776
|
+
escape hatch for theme changes those signals can't observe)
|
|
9777
|
+
|
|
9778
|
+
`seriesPalette(): string[]` resolves the categorical series ramp (`--lr-color-chart-1..8`) through
|
|
9779
|
+
`getComputedStyle` and returns the concrete, theme-aware colors — the exact same values the chart
|
|
9780
|
+
hands any series that sets no `color` of its own. Call it to color chart-adjacent UI (custom
|
|
9781
|
+
legends, KPI tiles, annotations fed through the raw `config` passthrough) from one source of truth
|
|
9782
|
+
instead of hand-resolving `--lr-color-chart-N` and drifting out of sync when the theme flips.
|
|
9783
|
+
Returns a fresh array each call (safe to mutate), and falls back to the light-mode literals only
|
|
9784
|
+
when the custom properties can't be resolved at all (e.g. a detached host).
|
|
9389
9785
|
|
|
9390
9786
|
**Events:** `lr-zoom` (`detail: { zoomed: boolean }`, fired on zoom-complete and on
|
|
9391
9787
|
`resetZoom()`), `lr-point-click` (fired when a click lands on, or nearest to — intersect-only —
|
|
@@ -9431,10 +9827,9 @@ subset actually used.
|
|
|
9431
9827
|
property values fall back to `line`. Each typed `lr-*-chart` subclass (e.g.
|
|
9432
9828
|
`llms/components/lr-bar-chart.md`) locks its *own* `type` via a real prototype accessor — a
|
|
9433
9829
|
genuine runtime lock, not just a compile-time default.
|
|
9434
|
-
-
|
|
9435
|
-
|
|
9436
|
-
|
|
9437
|
-
`--lr-chart-*` tokens above.
|
|
9830
|
+
- a built-in `ThemeWatcher` auto-retheme an already-drawn chart when `prefers-color-scheme` flips or
|
|
9831
|
+
an ancestor's `class`/`style`/`data-theme`/`data-color-scheme` attribute mutates (coalesced to one
|
|
9832
|
+
redraw). `refreshTheme()` stays public for out-of-band theme changes those signals can't observe.
|
|
9438
9833
|
- generated `scales` are keyed off the *effective* type (`config.type` ?? `type`, see
|
|
9439
9834
|
`effectiveType()`) and are type-appropriate: no scale at all for `type="pie"`/`"doughnut"` (true of
|
|
9440
9835
|
`<lr-chart type="pie">` directly, not just the `lr-pie-chart`/`lr-doughnut-chart` subclasses),
|
|
@@ -9539,16 +9934,24 @@ passthrough). Not a subclass of `LyraChart`.
|
|
|
9539
9934
|
every bar/segment at that index, across every dataset — e.g. to highlight a whole selected week's
|
|
9540
9935
|
column in a stacked chart. Empty (the default) reproduces the exact existing output: no bar
|
|
9541
9936
|
carries `data-selected`. This component takes no opinion on what the highlight looks like, only
|
|
9542
|
-
which bars it applies to — style
|
|
9937
|
+
which bars it applies to — style the highlight via the `--lr-lite-chart-selected-outline-color`
|
|
9938
|
+
custom property (documented below). Note `::part(bar)[data-selected]` is **invalid CSS** — Shadow
|
|
9939
|
+
Parts forbids an attribute selector after `::part()` — so it silently never matches; the outline
|
|
9940
|
+
is painted inside the shadow root and exposed through that token instead.
|
|
9543
9941
|
- `minBarHeight?: number` (attribute `min-bar-height`) — optional minimum visible bar height for
|
|
9544
9942
|
small non-zero values
|
|
9545
9943
|
- `accessibleLabel?: string` (attribute `accessible-label`) — SVG accessible-name override; a host
|
|
9546
9944
|
`aria-label` wins
|
|
9945
|
+
- `appendData(label, values, maxPoints?)` — appends one aligned category and optionally trims the
|
|
9946
|
+
oldest categories
|
|
9547
9947
|
|
|
9548
9948
|
**Events:** `lr-point-click` — fired when a bar/point is activated (click, or Enter/Space while
|
|
9549
9949
|
focused). `detail: { datasetIndex: number, index: number, label: string | undefined, value: number
|
|
9550
9950
|
| null }` — same shape as `lr-chart`'s `lr-point-click`.
|
|
9551
9951
|
|
|
9952
|
+
**Methods:** `exportData('csv' | 'svg')` returns a spreadsheet-safe CSV snapshot or the current SVG
|
|
9953
|
+
markup. The method does not download a file; pair it with `lr-export-button` for download UX.
|
|
9954
|
+
|
|
9552
9955
|
The axis gutter/title and y-axis labels mirror to logical start under RTL. Built-in mark summaries
|
|
9553
9956
|
are complete localized templates and format values with `effectiveLocale`.
|
|
9554
9957
|
|
|
@@ -9563,7 +9966,16 @@ fresh, small SVG render is cheaper and more correct than a lossy cache.
|
|
|
9563
9966
|
`data-selected` when its category index is in `selectedIndex`), `line`, `point`, `legend`,
|
|
9564
9967
|
`legend-item`, `legend-swatch`, `legend-text` (extra per-item text after the series label,
|
|
9565
9968
|
rendered only when `legendText` is set), `live-region` (the current mark announcement for keyboard
|
|
9566
|
-
users), `data-list` (a visually hidden list of all plotted data points)
|
|
9969
|
+
users), `data-list` (a visually hidden list of all plotted data points — single-series only),
|
|
9970
|
+
`data-table` (a visually hidden category×series data table, rendered instead of `data-list` when
|
|
9971
|
+
there is more than one dataset).
|
|
9972
|
+
|
|
9973
|
+
**Screen-reader data alternative:** a single dataset renders the flat `data-list` (one `<li>` per
|
|
9974
|
+
plotted point, matching the roving-tabindex mark order). More than one dataset instead renders a
|
|
9975
|
+
`data-table` — a category-labelled `<caption>` (the shared localized `chartData` string), one
|
|
9976
|
+
`<th scope="col">` per series (plus a leading `chartCategory` corner header), and one
|
|
9977
|
+
`<th scope="row">` per category label with its per-series values in the body — so a screen-reader
|
|
9978
|
+
user hears the values grouped by series rather than one flattened N×M sequence.
|
|
9567
9979
|
|
|
9568
9980
|
**Themeable custom properties:** `--lr-chart-height` (same host-level property as `lr-chart`);
|
|
9569
9981
|
`--lr-chart-grid-color`, `--lr-chart-tick-color`, `--lr-chart-legend-color` — same token
|
|
@@ -9618,7 +10030,8 @@ of every entry in these lists.**
|
|
|
9618
10030
|
|
|
9619
10031
|
**Properties:** `labels`, `datasets`, `legend`, `legendPosition` (attribute `legend-position`),
|
|
9620
10032
|
`valueFormatter`, `area`, `zoom`, `height`, `xLabel` (`x-label`), `yLabel` (`y-label`), `y2Label`
|
|
9621
|
-
(`y2-label`), `beginAtZero` (`begin-at-zero`), `horizontal`, `stacked`, `
|
|
10033
|
+
(`y2-label`), `beginAtZero` (`begin-at-zero`), `horizontal`, `stacked`, `dataLabels`
|
|
10034
|
+
(`data-labels`), `stackTotals` (`stack-totals`), `config`, `accessibleLabel`
|
|
9622
10035
|
(`accessible-label`), `accessibleDescription` (`accessible-description`), `showDataTable`
|
|
9623
10036
|
(`show-data-table`), `chartArea` (readonly). `type` is the only member that differs: read-only,
|
|
9624
10037
|
locked to this tag's value.
|
|
@@ -9639,7 +10052,7 @@ dependency fails to load — see `llms/components/lr-chart.md`).
|
|
|
9639
10052
|
`--lr-chart-tooltip-text`.
|
|
9640
10053
|
|
|
9641
10054
|
**Optional peer deps:** same as `lr-chart` — `chart.js`, plus `chartjs-plugin-zoom` only once
|
|
9642
|
-
`zoom` is set.
|
|
10055
|
+
`zoom` is set, and `chartjs-plugin-datalabels` only once `data-labels`/`stack-totals` is set.
|
|
9643
10056
|
|
|
9644
10057
|
```html
|
|
9645
10058
|
<lr-bar-chart legend></lr-bar-chart>
|
|
@@ -9683,8 +10096,9 @@ Bins `values` into `bins` equal-width buckets and renders as a bar chart (extend
|
|
|
9683
10096
|
- All other `LyraChart` properties are inherited and usable: `legend`, `legendPosition` (attribute
|
|
9684
10097
|
`legend-position`), `valueFormatter`, `area`, `zoom`, `config`, `height`, `xLabel` (`x-label`),
|
|
9685
10098
|
`yLabel` (`y-label`), `y2Label` (`y2-label`), `beginAtZero` (`begin-at-zero`), `horizontal`,
|
|
9686
|
-
`stacked`, `
|
|
9687
|
-
(`accessible-
|
|
10099
|
+
`stacked`, `dataLabels` (`data-labels`), `stackTotals` (`stack-totals`), `accessibleLabel`
|
|
10100
|
+
(`accessible-label`), `accessibleDescription` (`accessible-description`), `showDataTable`
|
|
10101
|
+
(`show-data-table`), `chartArea` (readonly).
|
|
9688
10102
|
|
|
9689
10103
|
**Methods:** `resetZoom()`, `refreshTheme()` — both inherited.
|
|
9690
10104
|
|
|
@@ -9748,7 +10162,8 @@ browser). Does **not** extend `LyraChart` — a deliberately bespoke API.
|
|
|
9748
10162
|
|
|
9749
10163
|
**Slots:** `data-table` — an optional consumer-provided accessible table alternative.
|
|
9750
10164
|
|
|
9751
|
-
**CSS parts:** `base`, `canvas`, `description`, `data-table`
|
|
10165
|
+
**CSS parts:** `base`, `canvas`, `description`, `data-table`, `error` (`role="alert"` message shown
|
|
10166
|
+
instead of `canvas` when the optional box-plot peer fails to load)
|
|
9752
10167
|
|
|
9753
10168
|
**Themeable custom properties:** `--lr-chart-height`, `--lr-chart-grid-color`,
|
|
9754
10169
|
`--lr-chart-tick-color`, `--lr-chart-legend-color`, `--lr-chart-tooltip-bg`,
|
|
@@ -9775,10 +10190,19 @@ independently of the base `chart-loader.ts`).
|
|
|
9775
10190
|
logical start in RTL, canvas tooltip/axis colors are token-driven, and animation is disabled
|
|
9776
10191
|
under reduced motion.
|
|
9777
10192
|
- If `@sgratzl/chartjs-chart-boxplot` fails to load, the component warns to the console and
|
|
9778
|
-
|
|
10193
|
+
fails closed with a localized `role="alert"` error part rather than leaving a blank canvas.
|
|
9779
10194
|
|
|
9780
10195
|
---
|
|
9781
10196
|
|
|
10197
|
+
## Chart streaming and export
|
|
10198
|
+
|
|
10199
|
+
`lr-lite-chart` and `lr-chart` expose additive imperative helpers for live dashboards:
|
|
10200
|
+
`appendData(label, values, maxPoints?)` appends one aligned category and optionally trims the oldest
|
|
10201
|
+
points. `lr-lite-chart.exportData('csv' | 'svg')` returns a spreadsheet-safe CSV snapshot or the
|
|
10202
|
+
current SVG markup. `lr-chart.exportData('csv' | 'png')` returns a CSV snapshot or Chart.js's current
|
|
10203
|
+
PNG data URL when the optional peer is loaded. These helpers do not download files; compose them
|
|
10204
|
+
with `lr-export-button` so the host owns filenames and download policy.
|
|
10205
|
+
|
|
9782
10206
|
# Document & file viewers (`components/viewers/`)
|
|
9783
10207
|
|
|
9784
10208
|
## `lr-document-preview`
|
|
@@ -9946,9 +10370,10 @@ available, the region becomes a standard `role="progressbar"` instead, self-desc
|
|
|
9946
10370
|
just via two different mechanisms depending on timing.
|
|
9947
10371
|
- `download-link` (and thus `lr-download`) only renders/fires when `src` is set — a generic-fallback
|
|
9948
10372
|
state with no `src` shows only the file glyph and message, with no download affordance at all.
|
|
9949
|
-
- `download-link` also never renders for a `data:` URL, even though `data:` is accepted
|
|
9950
|
-
sinks
|
|
9951
|
-
in the
|
|
10373
|
+
- `download-link` also never renders for a `data:` or `mailto:` URL, even though `data:` is accepted
|
|
10374
|
+
for text/image sinks and `mailto:` is accepted for navigation anchors elsewhere in the library — a
|
|
10375
|
+
`src="data:..."` document renders/fetches fine but falls back to no download affordance in the
|
|
10376
|
+
generic state, and a `mailto:` names no retrievable bytes so it cannot be a download target at all.
|
|
9952
10377
|
- A `src` that fails its sink's URL-safety check does **not** raise `lr-render-error` — that event is
|
|
9953
10378
|
reserved for a `fetch()` that was actually attempted and failed at the network layer; an unsafe/
|
|
9954
10379
|
malformed `src` is silently treated as unusable instead (a rendered `[part="error"]` message for
|
|
@@ -10098,7 +10523,12 @@ Remote resources are capped at 25 MB; exceeding it surfaces the localized
|
|
|
10098
10523
|
|
|
10099
10524
|
**Properties:** `src`, `name`, and `maxHeight` (attribute `max-height`) are strings. `foldQuotes:
|
|
10100
10525
|
boolean = false` (attribute `fold-quotes`) — collapses trailing quoted-reply text/HTML behind a
|
|
10101
|
-
localized show/hide toggle. `false` (the default) preserves the full body rendering.
|
|
10526
|
+
localized show/hide toggle. `false` (the default) preserves the full body rendering. A host
|
|
10527
|
+
`aria-label` takes precedence over `name`. `highlights`, `activeHighlightId`, `anchor`, and
|
|
10528
|
+
`anchorKinds` (`['text-quote', 'fragment']`) provide the shared text-viewer contract.
|
|
10529
|
+
|
|
10530
|
+
**Methods:** `search(query)`, `searchNext()`, `searchPrevious()`, `clearSearch()`, and
|
|
10531
|
+
`scrollToAnchor()` operate on rendered message text and emit the shared search/anchor events.
|
|
10102
10532
|
|
|
10103
10533
|
**Events:** `lr-render-error` with `detail.error` when fetching or parsing fails.
|
|
10104
10534
|
`lr-attachment-open` — `detail: { attachment: { filename, mimeType, content? } }`, `content` a
|
|
@@ -10128,7 +10558,12 @@ contract: an absent `postal-mime` renders `[part="error"]` with the localized
|
|
|
10128
10558
|
Fetches and parses `.ics` calendars with the optional `ical.js` peer and renders each VEVENT as
|
|
10129
10559
|
plain text, including its title, start/end time, location, and description. No HTML is injected.
|
|
10130
10560
|
|
|
10131
|
-
**Properties:** `src`, `name`, and `maxHeight` (attribute `max-height`) are strings.
|
|
10561
|
+
**Properties:** `src`, `name`, and `maxHeight` (attribute `max-height`) are strings. A host
|
|
10562
|
+
`aria-label` takes precedence over `name`. `highlights`, `activeHighlightId`, `anchor`, and
|
|
10563
|
+
`anchorKinds` (`['text-quote', 'fragment']`) provide the shared text-viewer contract.
|
|
10564
|
+
|
|
10565
|
+
**Methods:** `search(query)`, `searchNext()`, `searchPrevious()`, `clearSearch()`, and
|
|
10566
|
+
`scrollToAnchor()` operate on rendered event text and emit `lr-search-change`/`lr-anchor-result`.
|
|
10132
10567
|
|
|
10133
10568
|
**Events:** `lr-render-error` with `detail.error` when fetching or parsing fails.
|
|
10134
10569
|
|
|
@@ -10152,12 +10587,17 @@ read straight from JSZip's local file header (`uncompressedSize`) when available
|
|
|
10152
10587
|
fully decompressing only the rare entry missing that header field. The list composes
|
|
10153
10588
|
`<lr-virtual-list>` for large archives.
|
|
10154
10589
|
|
|
10155
|
-
**Properties:** `src` and `name` are strings —
|
|
10156
|
-
|
|
10590
|
+
**Properties:** `src` and `name` are strings — a host-level `aria-label` takes precedence over
|
|
10591
|
+
`name` when naming the `role="region"` listing. The viewer also exposes the shared text-viewer
|
|
10592
|
+
contract: `highlights`, `activeHighlightId`, `anchor`, and `anchorKinds` (`['text-quote', 'fragment']`).
|
|
10593
|
+
|
|
10594
|
+
**Methods:** `search(query)`, `searchNext()`, `searchPrevious()`, and `clearSearch()` provide
|
|
10595
|
+
case-insensitive text search over rendered entry names; `scrollToAnchor()` resolves text-quote and
|
|
10596
|
+
fragment anchors and emits `lr-anchor-result`.
|
|
10157
10597
|
|
|
10158
10598
|
**Events:** `lr-render-error` with `detail.error` when fetching or parsing fails.
|
|
10159
10599
|
|
|
10160
|
-
**CSS parts:** `base`, `entry`, `entry-icon`, `entry-name`, `entry-name-dir`, `entry-size`,
|
|
10600
|
+
**CSS parts:** `base`, `body`, `entry`, `entry-icon`, `entry-name`, `entry-name-dir`, `entry-size`,
|
|
10161
10601
|
`spinner`, and `error`. A directory row's name element carries both `entry-name` and
|
|
10162
10602
|
`entry-name-dir` (a part list), so `::part(entry-name-dir)` selects only directory names while
|
|
10163
10603
|
`::part(entry-name)` still selects every name. Entry rows are rendered into the embedded
|
|
@@ -10230,10 +10670,14 @@ Best-effort client-side PPTX viewer backed by the optional `@aiden0z/pptx-render
|
|
|
10230
10670
|
localized fidelity notice is always visible because animations, equations, embedded objects,
|
|
10231
10671
|
speaker notes, and several advanced effects are not rendered.
|
|
10232
10672
|
|
|
10233
|
-
**Properties:** `src`, `name`, and `label` are strings. A host `aria-label`
|
|
10234
|
-
|
|
10673
|
+
**Properties:** `src`, `name`, and `label` are strings. A host `aria-label` takes precedence over
|
|
10674
|
+
`label` and `name`. `highlights`, `activeHighlightId`, `anchor`, and `anchorKinds`
|
|
10675
|
+
(`['text-quote', 'fragment']`) provide the shared text-viewer contract when the renderer exposes
|
|
10676
|
+
DOM text.
|
|
10235
10677
|
|
|
10236
10678
|
**Methods:** `goToSlide(index)` returns a promise and navigates the mounted presentation.
|
|
10679
|
+
`search(query)`, `searchNext()`, `searchPrevious()`, `clearSearch()`, and `scrollToAnchor()` are
|
|
10680
|
+
available for renderer output that exposes DOM text.
|
|
10237
10681
|
|
|
10238
10682
|
**Events:** `lr-load` (`detail: { slideCount }`), `lr-slide-change` (`detail: { index, count }`),
|
|
10239
10683
|
and `lr-render-error` with `detail.error`.
|
|
@@ -10297,7 +10741,12 @@ Remote resources are capped at 25 MB; exceeding it surfaces the localized
|
|
|
10297
10741
|
Fetches an HTML document, sanitizes it with the optional `dompurify` peer, and renders the safe markup
|
|
10298
10742
|
inside a bounded, scrollable body.
|
|
10299
10743
|
|
|
10300
|
-
**Properties:** `src`, `name`, and `maxHeight` (attribute `max-height`) are strings.
|
|
10744
|
+
**Properties:** `src`, `name`, and `maxHeight` (attribute `max-height`) are strings. A host
|
|
10745
|
+
`aria-label` takes precedence over `name`. `highlights`, `activeHighlightId`, `anchor`, and
|
|
10746
|
+
`anchorKinds` (`['text-quote', 'fragment']`) provide the shared text-viewer contract.
|
|
10747
|
+
|
|
10748
|
+
**Methods:** `search(query)`, `searchNext()`, `searchPrevious()`, `clearSearch()`, and
|
|
10749
|
+
`scrollToAnchor()` operate on sanitized HTML text and emit the shared search/anchor events.
|
|
10301
10750
|
|
|
10302
10751
|
**Events:** `lr-render-error` with `detail.error` when fetching or sanitizing fails.
|
|
10303
10752
|
|
|
@@ -10373,7 +10822,12 @@ label when `FN` is absent).
|
|
|
10373
10822
|
Remote resources are capped at 25 MB; exceeding it surfaces the localized
|
|
10374
10823
|
`documentPreviewResourceTooLarge` message instead of the contacts.
|
|
10375
10824
|
|
|
10376
|
-
**Properties:** `src`, `name`, and `maxHeight` (attribute `max-height`) are strings.
|
|
10825
|
+
**Properties:** `src`, `name`, and `maxHeight` (attribute `max-height`) are strings. A host
|
|
10826
|
+
`aria-label` takes precedence over `name`. `highlights`, `activeHighlightId`, `anchor`, and
|
|
10827
|
+
`anchorKinds` (`['text-quote', 'fragment']`) provide the shared text-viewer contract.
|
|
10828
|
+
|
|
10829
|
+
**Methods:** `search(query)`, `searchNext()`, `searchPrevious()`, `clearSearch()`, and
|
|
10830
|
+
`scrollToAnchor()` operate on rendered contact text and emit the shared search/anchor events.
|
|
10377
10831
|
|
|
10378
10832
|
**Events:** `lr-render-error` with `detail.error` when fetching or parsing fails.
|
|
10379
10833
|
|
|
@@ -10589,6 +11043,11 @@ removed once it settles either way. Build error UI from `lr-include-error`.
|
|
|
10589
11043
|
letting `fetch()` throw. `no-cors` is accepted for enum completeness but always yields an opaque
|
|
10590
11044
|
response (`status` `0`, unreadable body) — a Fetch API limitation, not a bug here.
|
|
10591
11045
|
|
|
11046
|
+
The shared text-viewer contract is also available for the sanitized light-DOM fragment:
|
|
11047
|
+
`highlights`, `activeHighlightId`, `anchor`, and `anchorKinds` (`['text-quote', 'fragment']`).
|
|
11048
|
+
`search(query)`, `searchNext()`, `searchPrevious()`, `clearSearch()`, and `scrollToAnchor()`
|
|
11049
|
+
operate on the included text.
|
|
11050
|
+
|
|
10592
11051
|
**Events:**
|
|
10593
11052
|
- `lr-load` — `detail: { src }` — the fragment was sanitized and written into the light DOM.
|
|
10594
11053
|
- `lr-include-error` — `detail: { status, reason, error? }`. `reason` is a `LyraIncludeErrorReason`:
|
|
@@ -10832,7 +11291,10 @@ collapsed-depth="2">` of the raw value instead of the map.
|
|
|
10832
11291
|
|
|
10833
11292
|
**Properties:** `src: string = ''` — URL to fetch and parse. `name: string = ''` — accessible label,
|
|
10834
11293
|
used as `<lr-map>`'s `label` and the root's `aria-label` (falling back to the localized
|
|
10835
|
-
`geojsonViewLabel` when unset).
|
|
11294
|
+
`geojsonViewLabel` when unset). A host `aria-label` takes precedence over `name`. The shared
|
|
11295
|
+
text-viewer contract adds `highlights`, `activeHighlightId`, `anchor`, and
|
|
11296
|
+
`anchorKinds` (`['text-quote', 'fragment']`), plus `search()`, `searchNext()`, `searchPrevious()`,
|
|
11297
|
+
`clearSearch()`, and `scrollToAnchor()` for rendered feature metadata and status text.
|
|
10836
11298
|
|
|
10837
11299
|
**Events:** `lr-render-error` — `detail: { error }` — fetch, parse, or shape-validation failure.
|
|
10838
11300
|
|
|
@@ -11194,6 +11656,11 @@ streaming-indicator pulse animation's cycle, the same shared compound token
|
|
|
11194
11656
|
background already maps to that same token, override `[part=bubble]`'s background explicitly (e.g.
|
|
11195
11657
|
via `::part(bubble)`) so message bubbles stay visually distinct from the surrounding panel.
|
|
11196
11658
|
|
|
11659
|
+
> Retheming a bubble from outside `<lr-chat-message>` (e.g. per-thread or per-role colors)?
|
|
11660
|
+
> Set `--lr-theme-*` on the ancestor wrapper, not `--lr-*` directly — see `llms/shared.md`'s
|
|
11661
|
+
> "Theming and design tokens" section for why a `--lr-*` override on a wrapper only reaches that
|
|
11662
|
+
> wrapper's *direct* children, not a nested `<lr-*>` host's shadow DOM.
|
|
11663
|
+
|
|
11197
11664
|
**Optional peer deps:** none. Internally renders a `<lr-live-region>` (a first-party sibling
|
|
11198
11665
|
component, auto-imported alongside this one, not an npm peer) for the status-transition
|
|
11199
11666
|
announcements described below.
|
|
@@ -11267,10 +11734,13 @@ variant), `cursor` (the blinking bar in the `cursor` variant)
|
|
|
11267
11734
|
`size="sm"`), `--lr-typing-gap` (default `0.25rem`, `0.1875rem` at `size="sm"`),
|
|
11268
11735
|
`--lr-typing-cursor-width` (default `0.125rem`, `0.09375rem` at `size="sm"`),
|
|
11269
11736
|
`--lr-typing-cursor-height` (default `1em`, unaffected by `size`),
|
|
11270
|
-
`--lr-typing-dot-stagger-1` (default `600ms`, second dot),
|
|
11271
|
-
`--lr-typing-
|
|
11272
|
-
|
|
11273
|
-
animation cycle.
|
|
11737
|
+
`--lr-typing-dot-stagger-1` (default `600ms`, second dot), `--lr-typing-dot-stagger-2` (default
|
|
11738
|
+
`1200ms`, third dot), and `--lr-typing-duration` (default `var(--lr-transition-ambient)`, i.e.
|
|
11739
|
+
`1.8s ease-in-out`) — the compound duration/timing-function token every variant uses as its
|
|
11740
|
+
animation cycle. `--lr-typing-duration` is a dedicated alias: it defaults to the library-wide
|
|
11741
|
+
`--lr-transition-ambient` token (shared by every other ambient-looping component), but overriding
|
|
11742
|
+
it retimes only this component, leaving `--lr-transition-ambient` itself — and anything else keyed
|
|
11743
|
+
off it — untouched.
|
|
11274
11744
|
|
|
11275
11745
|
**Optional peer deps:** none.
|
|
11276
11746
|
|
|
@@ -11279,7 +11749,7 @@ animation cycle.
|
|
|
11279
11749
|
<lr-typing-indicator variant="pulse" size="sm"></lr-typing-indicator>
|
|
11280
11750
|
<lr-typing-indicator variant="cursor"></lr-typing-indicator>
|
|
11281
11751
|
<lr-typing-indicator
|
|
11282
|
-
style="--lr-
|
|
11752
|
+
style="--lr-typing-duration: 900ms ease-in-out; --lr-typing-dot-stagger-1: 300ms; --lr-typing-dot-stagger-2: 600ms"
|
|
11283
11753
|
></lr-typing-indicator>
|
|
11284
11754
|
```
|
|
11285
11755
|
|
|
@@ -11298,9 +11768,10 @@ decorative; `label` is the entire accessible content, nothing narrates individua
|
|
|
11298
11768
|
state (`opacity: 1`, no transform, `animation: none !important`) rather than freezing on whatever
|
|
11299
11769
|
frame the animation happened to be on — notably relevant for `cursor`, which would otherwise risk
|
|
11300
11770
|
freezing on its invisible ("off") blink half.
|
|
11301
|
-
- `--lr-
|
|
11302
|
-
with `calc()`. When retiming it,
|
|
11303
|
-
default one-third/two-thirds dot
|
|
11771
|
+
- `--lr-typing-duration` (like the `--lr-transition-ambient` token it aliases by default) is a
|
|
11772
|
+
compound `duration timing-function` value and cannot be divided with `calc()`. When retiming it,
|
|
11773
|
+
override both stagger properties alongside it to preserve the default one-third/two-thirds dot
|
|
11774
|
+
phasing, as shown above.
|
|
11304
11775
|
- `size="sm"` shrinks the dot size, gap, and cursor width, but **not** `--lr-typing-cursor-height`
|
|
11305
11776
|
(still `1em` at any size) — the cursor bar's height is meant to track surrounding text size via
|
|
11306
11777
|
`1em`, not the component's own `size` property.
|
|
@@ -11628,8 +12099,8 @@ in-place rename `<input>`'s own `focus`, for the same reason as `blur`)
|
|
|
11628
12099
|
|
|
11629
12100
|
`leading`/`content`/`excerpt`/`meta` must all stay non-focusable — see the `role="button"` note below.
|
|
11630
12101
|
|
|
11631
|
-
**CSS parts:** `base`, `
|
|
11632
|
-
`timestamp`, `actions`
|
|
12102
|
+
**CSS parts:** `base`, `active-indicator` (decorative, rendered only while `active`), `option`,
|
|
12103
|
+
`content`, `title`, `title-input`, `rename-button`, `excerpt`, `timestamp`, `actions`
|
|
11633
12104
|
|
|
11634
12105
|
**Themeable custom properties:** `--lr-conversation-item-active-bg` (default
|
|
11635
12106
|
`var(--lr-color-brand-quiet)`) — the row's background while `active`. `--lr-conversation-item-active-color`
|
|
@@ -11648,6 +12119,13 @@ the default active background; keep any override at 4.5:1 or better against it.
|
|
|
11648
12119
|
custom active background needs its own title color set alongside them, or the title drops below
|
|
11649
12120
|
contrast while the excerpt stays legible.
|
|
11650
12121
|
|
|
12122
|
+
`--lr-conversation-item-active-indicator-color` (default `var(--lr-color-brand)`) controls the
|
|
12123
|
+
decorative `active-indicator` part's color. `--lr-conversation-item-active-indicator-width`
|
|
12124
|
+
(default `var(--lr-size-2px)`) controls its inline width. `--lr-conversation-item-active-indicator-inset-inline`
|
|
12125
|
+
(default `0 auto`) controls its logical inline insets; set `auto 0` to move the indicator to
|
|
12126
|
+
inline-end. The indicator is `aria-hidden`, occupies the full row block-size, and is absent while
|
|
12127
|
+
the row is inactive.
|
|
12128
|
+
|
|
11651
12129
|
`--lr-conversation-item-compact-padding` (default `var(--lr-space-xs) var(--lr-space-s)`) —
|
|
11652
12130
|
`[part='base']`'s padding while `compact`. `--lr-conversation-item-compact-gap` (default
|
|
11653
12131
|
`var(--lr-space-2xs)`) — `[part='base']`'s gap while `compact`. Like the active-state pair, both are
|
|
@@ -11829,7 +12307,13 @@ decorative box size (clamped against `--lr-icon-button-size` via `min()`). All f
|
|
|
11829
12307
|
uses — so `size` is the primary lever; override the cssprop directly only to retune a single tier or
|
|
11830
12308
|
step outside the scale entirely. `--lr-model-select-option-active-bg` (default
|
|
11831
12309
|
`var(--lr-color-brand-quiet)`) — background of a hovered or keyboard-active `[part="option"]` row;
|
|
11832
|
-
declared as a `var()` fallback at the point of use, not on `:host`, so it isn't tied to `size`.
|
|
12310
|
+
declared as a `var()` fallback at the point of use, not on `:host`, so it isn't tied to `size`. The
|
|
12311
|
+
selected row (`[part="option"][aria-selected="true"]`) has the matching set
|
|
12312
|
+
`--lr-model-select-option-selected-bg` (default `transparent`),
|
|
12313
|
+
`--lr-model-select-option-selected-border` and `--lr-model-select-option-selected-color` (both
|
|
12314
|
+
`var(--lr-color-brand)`), and `--lr-model-select-option-selected-font-weight`
|
|
12315
|
+
(`var(--lr-font-weight-semibold)`), all inline `var()` fallbacks so the selected row is rethemeable
|
|
12316
|
+
without hijacking `--lr-color-brand`. Plus
|
|
11833
12317
|
shared tokens — `--lr-space-xs/-s`, `--lr-color-border/-surface/-brand/-brand-quiet/-text-quiet`,
|
|
11834
12318
|
`--lr-radius`, `--lr-shadow`, `--lr-focus-ring-width/-color/-offset`, `--lr-icon-button-size`,
|
|
11835
12319
|
`--lr-transition-fast`, `--lr-opacity-disabled`.
|
|
@@ -12838,7 +13322,7 @@ reach callback-rendered descendants through these parts). `row-excerpt` wraps `r
|
|
|
12838
13322
|
output, which is slotted into the row item's own `excerpt` slot.
|
|
12839
13323
|
|
|
12840
13324
|
Data mode additionally forwards each row `<lr-conversation-item>`'s own parts under a `row-item-`
|
|
12841
|
-
prefix: `row-item-base`, `row-item-option`, `row-item-leading`, `row-item-content`,
|
|
13325
|
+
prefix: `row-item-base`, `row-item-active-indicator`, `row-item-option`, `row-item-leading`, `row-item-content`,
|
|
12842
13326
|
`row-item-title`, `row-item-title-input`, `row-item-rename-button`, `row-item-excerpt`,
|
|
12843
13327
|
`row-item-meta`, `row-item-timestamp`, `row-item-actions`.
|
|
12844
13328
|
|
|
@@ -13254,6 +13738,11 @@ referenced: `--lr-color-text-quiet`, `--lr-color-surface`, `--lr-color-border`,
|
|
|
13254
13738
|
`--lr-space-xs/-s/-m`, `--lr-radius`, `--lr-shadow`, `--lr-focus-ring-*`,
|
|
13255
13739
|
`--lr-transition-fast`.
|
|
13256
13740
|
|
|
13741
|
+
> Retheming a chip from outside `<lr-tool-call-chip>` (e.g. per-tool or per-status colors)?
|
|
13742
|
+
> Set `--lr-theme-*` on the ancestor wrapper, not `--lr-*` directly — see `llms/shared.md`'s
|
|
13743
|
+
> "Theming and design tokens" section for why a `--lr-*` override on a wrapper only reaches that
|
|
13744
|
+
> wrapper's *direct* children, not a nested `<lr-*>` host's shadow DOM.
|
|
13745
|
+
|
|
13257
13746
|
**Optional peer deps:** none.
|
|
13258
13747
|
|
|
13259
13748
|
```html
|
|
@@ -13320,6 +13809,13 @@ shell around it.
|
|
|
13320
13809
|
- `copyable: boolean = false` (reflected) — shows a copy-to-clipboard affordance alongside the
|
|
13321
13810
|
fallback view, for either `fallback` kind: forwarded to `<lr-json-viewer>`'s own `copyable` for
|
|
13322
13811
|
`"json"`, or a `<lr-copy-button>` rendered next to the text for `"text"`.
|
|
13812
|
+
- `status: 'pending'|'running'|'success'|'error'|'denied' = 'success'` (reflected) — the outcome of
|
|
13813
|
+
the currently-rendered result, as reported by the matched renderer's own `context.reportStatus()`
|
|
13814
|
+
(see below). Reset to `'success'` immediately before every `render()` call, so a renderer that
|
|
13815
|
+
never calls `reportStatus` — including every pre-existing 2-arg renderer written before this
|
|
13816
|
+
property existed — leaves it at that default, and a later renderer that stays quiet doesn't
|
|
13817
|
+
inherit a stale outcome left behind by a previous one. Same status vocabulary as
|
|
13818
|
+
`<lr-tool-result-dialog>`/`<lr-tool-call-chip>`.
|
|
13323
13819
|
|
|
13324
13820
|
**Events:** `lr-render-error` (`detail: { toolName: string; error: unknown }`) — fired immediately
|
|
13325
13821
|
before falling back to `<lr-json-viewer>`, whether because no renderer matched, a candidate
|
|
@@ -13362,10 +13858,16 @@ this same module-level registry unless a given `<lr-tool-result-view>`'s `regist
|
|
|
13362
13858
|
set to a different `Map` instance.
|
|
13363
13859
|
|
|
13364
13860
|
**`ToolRendererDefinition`** — the shape of one registered renderer:
|
|
13365
|
-
- `render?: (result: unknown, args: unknown) => unknown` — renders the
|
|
13366
|
-
produced it) as UI. Typed as `unknown` rather than Lit's
|
|
13367
|
-
value works (a plain string, a DOM node, an array of
|
|
13368
|
-
Lit import and don't need this module to add one
|
|
13861
|
+
- `render?: (result: unknown, args: unknown, context: ToolRenderContext) => unknown` — renders the
|
|
13862
|
+
result (and the args that produced it) as UI. Typed as `unknown` rather than Lit's
|
|
13863
|
+
`TemplateResult` so any lit-html-renderable value works (a plain string, a DOM node, an array of
|
|
13864
|
+
templates) — consumers already own their own Lit import and don't need this module to add one.
|
|
13865
|
+
The 3rd `context` argument is additive: it's the *last* positional parameter, so a pre-existing
|
|
13866
|
+
2-arg `render(result, args)` function stays assignable to this type unchanged — JS/TS function
|
|
13867
|
+
assignability allows an implementation with fewer parameters than its declared type. Use
|
|
13868
|
+
`context.reportStatus(status)` (see `ToolRenderContext` below) to signal a non-throwing outcome
|
|
13869
|
+
— e.g. an application-level failure the renderer still drew real UI for — instead of throwing,
|
|
13870
|
+
which discards that UI for the `<lr-json-viewer>` fallback instead
|
|
13369
13871
|
- `matches?: (payload: unknown) => boolean` — facade/shape-based dispatch predicate, consulted only
|
|
13370
13872
|
when no exact `toolName` key matches (see dispatch order below); only ever consulted *before*
|
|
13371
13873
|
`load` resolves when supplied inline at registration time — a definition that needs shape-based
|
|
@@ -13378,6 +13880,27 @@ set to a different `Map` instance.
|
|
|
13378
13880
|
object, so `load: () => import('./my-renderer.js')` works unmodified when that module's default
|
|
13379
13881
|
export is itself a `ToolRendererDefinition`
|
|
13380
13882
|
|
|
13883
|
+
**`ToolRenderContext`** — the shape of `render()`'s 3rd argument:
|
|
13884
|
+
- `reportStatus: (status: ToolResultStatus) => void` — reports this render's outcome without
|
|
13885
|
+
throwing. `ToolResultStatus` is `'pending' | 'running' | 'success' | 'error' | 'denied'`, the same
|
|
13886
|
+
union `<lr-tool-result-dialog>`/`<lr-tool-call-chip>` use, re-exported from this module. Calling
|
|
13887
|
+
it is entirely optional: a renderer that never calls it leaves `<lr-tool-result-view>`'s `status`
|
|
13888
|
+
property at its default, `'success'`. This threads through the lazy `load()` path exactly the
|
|
13889
|
+
same way — a `render()` resolved via `load()` receives the same 3rd `context` argument as one
|
|
13890
|
+
registered directly.
|
|
13891
|
+
|
|
13892
|
+
```ts
|
|
13893
|
+
registerToolRenderer('run_query', {
|
|
13894
|
+
render: (result, _args, context) => {
|
|
13895
|
+
if ((result as { rows?: unknown[] })?.rows === undefined) {
|
|
13896
|
+
context.reportStatus('error');
|
|
13897
|
+
return html`<p class="query-error">The query returned no result set.</p>`;
|
|
13898
|
+
}
|
|
13899
|
+
return html`<query-result-table .rows=${(result as { rows: unknown[] }).rows}></query-result-table>`;
|
|
13900
|
+
},
|
|
13901
|
+
});
|
|
13902
|
+
```
|
|
13903
|
+
|
|
13381
13904
|
**Exports:**
|
|
13382
13905
|
- `registerToolRenderer(name: string, def: ToolRendererDefinition): void` — registers (or
|
|
13383
13906
|
overwrites) the renderer for `name` in the module-level default registry
|
|
@@ -13437,6 +13960,20 @@ registerToolRenderer('web_search', {
|
|
|
13437
13960
|
- `matches` is a linear scan over every registered definition's `matches` in registration order; it
|
|
13438
13961
|
only runs when the exact-name lookup misses, so tool names with a direct registration never pay
|
|
13439
13962
|
that scan cost
|
|
13963
|
+
- `status` is reset to `'success'` immediately before every `render()` call, not merely at
|
|
13964
|
+
construction — a renderer that reported `'error'` on one result does not leave that status
|
|
13965
|
+
behind once dispatch moves on to a different (quiet) renderer; a `reportStatus()` call that
|
|
13966
|
+
arrives asynchronously after a *newer* resolve has already started (a stale promise the previous
|
|
13967
|
+
render kicked off) is detected via the same generation counter as the `load()` staleness guard
|
|
13968
|
+
and discarded rather than clobbering the newer status
|
|
13969
|
+
- **don't type a custom renderer against a hand-rolled, over-generic function signature** (e.g.
|
|
13970
|
+
`render: (...args: any[]) => unknown`, or a locally-declared narrower alias then cast to
|
|
13971
|
+
`ToolRendererDefinition`) — write the registration as a plain object literal (as in every example
|
|
13972
|
+
above) or annotate it as `ToolRendererDefinition` directly, so TypeScript checks the actual
|
|
13973
|
+
current `render`/`matches`/`load` shape, including the `context: ToolRenderContext` 3rd
|
|
13974
|
+
parameter and the exact `ToolResultStatus` string union `reportStatus` accepts. A loosened/`any`
|
|
13975
|
+
signature type-checks either way but silently gives up the compiler's ability to catch a typo'd
|
|
13976
|
+
status string or a dropped `context` parameter
|
|
13440
13977
|
- `fallback` implements exactly two kinds, `"json"` and `"text"`; any *other* value silently behaves
|
|
13441
13978
|
as `"json"`, as does `"text"` whenever `result` isn't a string. Only `"text"` renders
|
|
13442
13979
|
`[part="fallback-text"]`/`[part="fallback-copy"]`
|
|
@@ -15018,6 +15555,38 @@ retinted independently; `--lr-tool-timeline-pending-approval-border-color` (defa
|
|
|
15018
15555
|
`var(--lr-color-warning)`) — color of the entry body's leading border while that entry's
|
|
15019
15556
|
`data-pending-approval` is `"true"`.
|
|
15020
15557
|
|
|
15558
|
+
## `lr-agent-eval-dashboard`
|
|
15559
|
+
|
|
15560
|
+
Controlled evaluation overview with metric cards, a dependency-free trend chart, and run-status
|
|
15561
|
+
history. It never launches or scores evaluations.
|
|
15562
|
+
|
|
15563
|
+
**Properties:** `metrics: AgentEvaluationMetric[] = []` (attribute: false), where each metric is
|
|
15564
|
+
`{ id, label, value, format?: 'number' | 'percent' | 'milliseconds' | 'currency' }`; `runs:
|
|
15565
|
+
AgentEvaluationDashboardRun[] = []` (attribute: false), where each run is `{ id, label, status,
|
|
15566
|
+
metrics?: Record<string, number> }`; `metricId: string = ''`; `label: string = ''`; `showChart:
|
|
15567
|
+
boolean = true`; `chartHeight: string = '220px'`.
|
|
15568
|
+
|
|
15569
|
+
**Events:** `lr-metric-change` (`{ metricId }`, reserved for host-controlled metric selectors) and
|
|
15570
|
+
`lr-run-select` (`{ runId }`).
|
|
15571
|
+
|
|
15572
|
+
**CSS parts:** `base`, `heading`, `metrics`, `metric`, `chart`, `runs`, `runs-heading`, `run`,
|
|
15573
|
+
`run-label`, `run-meta`, `run-status`, `empty`.
|
|
15574
|
+
|
|
15575
|
+
## `lr-approval-queue`
|
|
15576
|
+
|
|
15577
|
+
Keyboard-accessible queue of pending tool calls backed by one reusable `lr-tool-approval-dialog`.
|
|
15578
|
+
It never executes tools or persists decisions.
|
|
15579
|
+
|
|
15580
|
+
**Properties:** `requests: ToolApprovalRequest[] = []` (attribute: false), where each request is
|
|
15581
|
+
`{ id, toolName, args, status?: 'pending' | 'approved' | 'denied' }`; `selectedId: string = ''`;
|
|
15582
|
+
`open: boolean = false`; `editable: boolean = true`; `label: string = ''`.
|
|
15583
|
+
|
|
15584
|
+
**Events:** `lr-approval-select` (`{ invocationId }`), `lr-approval-decision` (`{ invocationId,
|
|
15585
|
+
approved, args? }`), and `lr-approval-close` (`{ invocationId, reason }`).
|
|
15586
|
+
|
|
15587
|
+
**CSS parts:** `base`, `heading-row`, `heading`, `count`, `list`, `request`, `request-info`,
|
|
15588
|
+
`tool-name`, `request-id`, `status`, `empty`.
|
|
15589
|
+
|
|
15021
15590
|
# Retrieval, knowledge graph & grounding (`components/retrieval/`)
|
|
15022
15591
|
|
|
15023
15592
|
## `lr-graph`
|
|
@@ -15893,6 +16462,11 @@ directly — set instead by the `:host([status=...])` rules), plus shared tokens
|
|
|
15893
16462
|
`--lr-color-surface`, `--lr-color-border`, `--lr-shadow`, `--lr-space-s`/`-m`,
|
|
15894
16463
|
`--lr-transition-fast`, `--lr-focus-ring-*`.
|
|
15895
16464
|
|
|
16465
|
+
> Retheming a badge from outside `<lr-citation-badge>` (e.g. per-source or per-confidence colors)?
|
|
16466
|
+
> Set `--lr-theme-*` on the ancestor wrapper, not `--lr-*` directly — see `llms/shared.md`'s
|
|
16467
|
+
> "Theming and design tokens" section for why a `--lr-*` override on a wrapper only reaches that
|
|
16468
|
+
> wrapper's *direct* children, not a nested `<lr-*>` host's shadow DOM.
|
|
16469
|
+
|
|
15896
16470
|
**Optional peer deps:** none.
|
|
15897
16471
|
|
|
15898
16472
|
```html
|
|
@@ -16641,3 +17215,54 @@ falls back to that token, so rendering is unchanged. Plus shared tokens otherwis
|
|
|
16641
17215
|
**Known gotchas:**
|
|
16642
17216
|
- Every stage starts collapsed; expansion state is internal `@state` keyed by stage id, not a
|
|
16643
17217
|
controlled property.
|
|
17218
|
+
|
|
17219
|
+
## `lr-rag-answer`
|
|
17220
|
+
|
|
17221
|
+
Controlled grounded-answer surface combining sanitized Markdown, citation badges, grounding
|
|
17222
|
+
assessment, and expandable source previews. It performs no model call, retrieval, citation parsing,
|
|
17223
|
+
or source fetching.
|
|
17224
|
+
|
|
17225
|
+
**Properties:** `answer: string = ''`; `citations: Citation[] = []` (attribute: false);
|
|
17226
|
+
`sources: DocumentRef[] = []` (attribute: false); `assessment: GroundingAssessment | null = null`
|
|
17227
|
+
(attribute: false); `loading: boolean = false`; `error: string = ''`; `showSources: boolean = true`;
|
|
17228
|
+
`label: string = ''`; `accessibleLabel: string | null = null` (attribute `aria-label`).
|
|
17229
|
+
|
|
17230
|
+
**Events:** `lr-citation-select` (`{ citation }`) and `lr-retry`.
|
|
17231
|
+
|
|
17232
|
+
**Slots:** `answer` replaces the data-driven Markdown body; `sources` replaces the data-driven
|
|
17233
|
+
source list.
|
|
17234
|
+
|
|
17235
|
+
**CSS parts:** `base`, `answer`, `loading`, `error`, `retry`, `grounding`, `citations`,
|
|
17236
|
+
`citation-list`, `sources`, `source-list`, `section-heading`.
|
|
17237
|
+
|
|
17238
|
+
## `lr-embedding-explorer`
|
|
17239
|
+
|
|
17240
|
+
Dependency-free accessible 2D embedding projection viewer. Coordinates are projected by the host;
|
|
17241
|
+
the component only normalizes them into SVG, colors optional clusters, and emits selection events.
|
|
17242
|
+
|
|
17243
|
+
**Properties:** `points: EmbeddingPoint[] = []` (attribute: false), where each point is `{ id, x,
|
|
17244
|
+
y, label?, sourceId?, cluster? }`; `selectedId: string = ''`; `height: string = '360px'`;
|
|
17245
|
+
`accessibleLabel: string | null = null` (attribute `aria-label`). Non-finite coordinates are
|
|
17246
|
+
omitted.
|
|
17247
|
+
|
|
17248
|
+
**Events:** `lr-point-select` (`{ point }`), activated by click or Enter/Space.
|
|
17249
|
+
|
|
17250
|
+
**CSS parts:** `base`, `plot`, `point`, `empty`.
|
|
17251
|
+
|
|
17252
|
+
## `lr-knowledge-base-admin`
|
|
17253
|
+
|
|
17254
|
+
Tabbed operations shell composing `lr-knowledge-base` and `lr-ingestion-queue`. It forwards source
|
|
17255
|
+
and ingestion actions under namespaced events; host-owned controls such as chunking, embedding,
|
|
17256
|
+
permissions, and connector settings go in the `settings` slot.
|
|
17257
|
+
|
|
17258
|
+
**Properties:** `sources: KnowledgeSource[] = []` (attribute: false); `ingestionItems:
|
|
17259
|
+
IngestionQueueItem[] = []` (attribute: false); `activeTab: 'sources' | 'ingestion' = 'sources'`;
|
|
17260
|
+
`label: string = ''`; `hideIngestion: boolean = false`.
|
|
17261
|
+
|
|
17262
|
+
**Events:** `lr-tab-change` (`{ tab }`), `lr-source-create`, `lr-source-sync`, `lr-source-pause`,
|
|
17263
|
+
`lr-source-delete`, `lr-ingestion-retry`, and `lr-ingestion-cancel` (the latter four preserve the
|
|
17264
|
+
correlated ids/details from their composed primitives).
|
|
17265
|
+
|
|
17266
|
+
**Slots:** `settings` — host-owned KB configuration controls.
|
|
17267
|
+
|
|
17268
|
+
**CSS parts:** `base`, `heading`, `tabs`, `tab`, `panel`, `settings`.
|