@aceshooting/lyra-ui 7.5.0 → 7.7.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 +20 -0
- package/custom-elements.json +6652 -559
- package/dist/components/agent-tools/activity-feed/activity-feed.class.d.ts +2 -0
- package/dist/components/agent-tools/activity-feed/activity-feed.class.d.ts.map +1 -1
- package/dist/components/agent-tools/activity-feed/activity-feed.class.js +28 -2
- package/dist/components/agent-tools/activity-feed/activity-feed.class.js.map +1 -1
- package/dist/components/agent-tools/activity-feed/activity-feed.styles.d.ts.map +1 -1
- package/dist/components/agent-tools/activity-feed/activity-feed.styles.js +7 -2
- package/dist/components/agent-tools/activity-feed/activity-feed.styles.js.map +1 -1
- package/dist/components/agent-tools/agent-run/agent-run.styles.d.ts.map +1 -1
- package/dist/components/agent-tools/agent-run/agent-run.styles.js +18 -3
- package/dist/components/agent-tools/agent-run/agent-run.styles.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 +4 -6
- package/dist/components/agent-tools/agent-trace/agent-trace.class.js.map +1 -1
- package/dist/components/agent-tools/approval-queue/approval-queue.class.d.ts.map +1 -1
- package/dist/components/agent-tools/approval-queue/approval-queue.class.js +11 -10
- package/dist/components/agent-tools/approval-queue/approval-queue.class.js.map +1 -1
- package/dist/components/agent-tools/artifact-panel/artifact-panel.class.d.ts +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 +8 -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 +4 -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 +17 -2
- 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 +9 -3
- package/dist/components/agent-tools/commit-card/commit-card.class.js.map +1 -1
- package/dist/components/agent-tools/commit-card/commit-card.styles.d.ts.map +1 -1
- package/dist/components/agent-tools/commit-card/commit-card.styles.js +19 -0
- package/dist/components/agent-tools/commit-card/commit-card.styles.js.map +1 -1
- package/dist/components/agent-tools/compare-panel/compare-panel.class.d.ts +6 -0
- package/dist/components/agent-tools/compare-panel/compare-panel.class.d.ts.map +1 -1
- package/dist/components/agent-tools/compare-panel/compare-panel.class.js +6 -0
- package/dist/components/agent-tools/compare-panel/compare-panel.class.js.map +1 -1
- package/dist/components/agent-tools/compare-panel/compare-panel.styles.js +4 -4
- package/dist/components/agent-tools/context-inspector/context-inspector.class.d.ts +6 -2
- 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.map +1 -1
- package/dist/components/agent-tools/eval-dataset/eval-dataset.class.d.ts +2 -0
- 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.js +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 +10 -5
- package/dist/components/agent-tools/evaluation-run/evaluation-run.class.js.map +1 -1
- package/dist/components/agent-tools/mcp-app/mcp-app.class.d.ts +1 -0
- package/dist/components/agent-tools/mcp-app/mcp-app.class.d.ts.map +1 -1
- package/dist/components/agent-tools/mcp-app/mcp-app.class.js +17 -12
- package/dist/components/agent-tools/mcp-app/mcp-app.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 +3 -1
- package/dist/components/agent-tools/policy-summary/policy-summary.class.js.map +1 -1
- package/dist/components/agent-tools/prompt-studio/prompt-studio.class.d.ts.map +1 -1
- package/dist/components/agent-tools/prompt-studio/prompt-studio.class.js +8 -6
- package/dist/components/agent-tools/prompt-studio/prompt-studio.class.js.map +1 -1
- package/dist/components/agent-tools/schema-viewer/schema-viewer.class.d.ts +1 -0
- package/dist/components/agent-tools/schema-viewer/schema-viewer.class.d.ts.map +1 -1
- package/dist/components/agent-tools/schema-viewer/schema-viewer.class.js +21 -4
- package/dist/components/agent-tools/schema-viewer/schema-viewer.class.js.map +1 -1
- package/dist/components/agent-tools/span-waterfall/span-waterfall.class.d.ts +6 -0
- 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 +16 -4
- package/dist/components/agent-tools/span-waterfall/span-waterfall.class.js.map +1 -1
- package/dist/components/agent-tools/span-waterfall/span-waterfall.styles.d.ts.map +1 -1
- package/dist/components/agent-tools/span-waterfall/span-waterfall.styles.js +18 -6
- package/dist/components/agent-tools/span-waterfall/span-waterfall.styles.js.map +1 -1
- package/dist/components/agent-tools/stack-trace/stack-trace.class.d.ts +2 -0
- package/dist/components/agent-tools/stack-trace/stack-trace.class.d.ts.map +1 -1
- package/dist/components/agent-tools/stack-trace/stack-trace.class.js +4 -1
- package/dist/components/agent-tools/stack-trace/stack-trace.class.js.map +1 -1
- package/dist/components/agent-tools/stack-trace/stack-trace.styles.js +4 -4
- package/dist/components/agent-tools/subagent-panel/subagent-panel.class.d.ts.map +1 -1
- package/dist/components/agent-tools/subagent-panel/subagent-panel.class.js +24 -2
- package/dist/components/agent-tools/subagent-panel/subagent-panel.class.js.map +1 -1
- package/dist/components/agent-tools/task-list/task-list.class.d.ts +4 -0
- 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 +10 -1
- package/dist/components/agent-tools/task-list/task-list.class.js.map +1 -1
- package/dist/components/agent-tools/task-list/task-list.styles.d.ts.map +1 -1
- package/dist/components/agent-tools/task-list/task-list.styles.js +12 -5
- package/dist/components/agent-tools/task-list/task-list.styles.js.map +1 -1
- package/dist/components/agent-tools/terminal/terminal.class.d.ts +4 -0
- package/dist/components/agent-tools/terminal/terminal.class.d.ts.map +1 -1
- package/dist/components/agent-tools/terminal/terminal.class.js +83 -22
- package/dist/components/agent-tools/terminal/terminal.class.js.map +1 -1
- package/dist/components/agent-tools/test-results/test-results.class.d.ts +28 -8
- 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 +157 -61
- package/dist/components/agent-tools/test-results/test-results.class.js.map +1 -1
- package/dist/components/agent-tools/test-results/test-results.styles.d.ts.map +1 -1
- package/dist/components/agent-tools/test-results/test-results.styles.js +12 -10
- package/dist/components/agent-tools/test-results/test-results.styles.js.map +1 -1
- package/dist/components/agent-tools/thinking-panel/thinking-panel.class.d.ts +1 -0
- package/dist/components/agent-tools/thinking-panel/thinking-panel.class.d.ts.map +1 -1
- package/dist/components/agent-tools/thinking-panel/thinking-panel.class.js +1 -0
- package/dist/components/agent-tools/thinking-panel/thinking-panel.class.js.map +1 -1
- package/dist/components/agent-tools/thinking-panel/thinking-panel.styles.d.ts.map +1 -1
- package/dist/components/agent-tools/thinking-panel/thinking-panel.styles.js +6 -2
- package/dist/components/agent-tools/thinking-panel/thinking-panel.styles.js.map +1 -1
- package/dist/components/agent-tools/tool-approval-dialog/tool-approval-dialog.class.d.ts +2 -0
- package/dist/components/agent-tools/tool-approval-dialog/tool-approval-dialog.class.d.ts.map +1 -1
- package/dist/components/agent-tools/tool-approval-dialog/tool-approval-dialog.class.js +2 -0
- package/dist/components/agent-tools/tool-approval-dialog/tool-approval-dialog.class.js.map +1 -1
- package/dist/components/agent-tools/tool-approval-dialog/tool-approval-dialog.styles.js +1 -1
- package/dist/components/agent-tools/tool-call-chip/tool-call-chip.styles.d.ts.map +1 -1
- package/dist/components/agent-tools/tool-call-chip/tool-call-chip.styles.js +18 -4
- package/dist/components/agent-tools/tool-call-chip/tool-call-chip.styles.js.map +1 -1
- package/dist/components/agent-tools/tool-param-form/tool-param-form.class.d.ts +6 -0
- 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 +68 -21
- package/dist/components/agent-tools/tool-param-form/tool-param-form.class.js.map +1 -1
- package/dist/components/agent-tools/tool-param-form/tool-param-form.styles.d.ts.map +1 -1
- package/dist/components/agent-tools/tool-param-form/tool-param-form.styles.js +18 -0
- package/dist/components/agent-tools/tool-param-form/tool-param-form.styles.js.map +1 -1
- package/dist/components/agent-tools/tool-select-dialog/tool-select-dialog.class.d.ts +4 -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 +14 -10
- 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 +1 -0
- 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 +1 -0
- 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 +10 -6
- package/dist/components/agent-tools/trace-tree/trace-tree.class.js.map +1 -1
- package/dist/components/charts/chart/box-plot.class.d.ts +10 -0
- package/dist/components/charts/chart/box-plot.class.d.ts.map +1 -1
- package/dist/components/charts/chart/box-plot.class.js +72 -15
- package/dist/components/charts/chart/box-plot.class.js.map +1 -1
- package/dist/components/charts/chart/box-plot.styles.d.ts.map +1 -1
- package/dist/components/charts/chart/box-plot.styles.js +62 -3
- package/dist/components/charts/chart/box-plot.styles.js.map +1 -1
- package/dist/components/charts/chart/bubble-chart.class.d.ts +2 -4
- package/dist/components/charts/chart/bubble-chart.class.d.ts.map +1 -1
- package/dist/components/charts/chart/bubble-chart.class.js +2 -4
- package/dist/components/charts/chart/bubble-chart.class.js.map +1 -1
- package/dist/components/charts/chart/chart.class.d.ts +54 -13
- package/dist/components/charts/chart/chart.class.d.ts.map +1 -1
- package/dist/components/charts/chart/chart.class.js +434 -120
- package/dist/components/charts/chart/chart.class.js.map +1 -1
- package/dist/components/charts/chart/chart.styles.d.ts.map +1 -1
- package/dist/components/charts/chart/chart.styles.js +102 -3
- package/dist/components/charts/chart/chart.styles.js.map +1 -1
- package/dist/components/charts/chart/histogram-bin.d.ts.map +1 -1
- package/dist/components/charts/chart/histogram-bin.js +5 -5
- package/dist/components/charts/chart/histogram-bin.js.map +1 -1
- package/dist/components/charts/chart/histogram.class.d.ts +6 -1
- package/dist/components/charts/chart/histogram.class.d.ts.map +1 -1
- package/dist/components/charts/chart/histogram.class.js +13 -5
- package/dist/components/charts/chart/histogram.class.js.map +1 -1
- package/dist/components/charts/chart/lite-chart.class.d.ts +7 -3
- package/dist/components/charts/chart/lite-chart.class.d.ts.map +1 -1
- package/dist/components/charts/chart/lite-chart.class.js +99 -17
- package/dist/components/charts/chart/lite-chart.class.js.map +1 -1
- package/dist/components/charts/chart/lite-chart.styles.js +1 -1
- package/dist/components/conversation/conversation-item/conversation-item.class.d.ts +3 -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 +23 -4
- package/dist/components/conversation/conversation-item/conversation-item.class.js.map +1 -1
- package/dist/components/conversation/message-actions/message-actions.class.d.ts +4 -10
- package/dist/components/conversation/message-actions/message-actions.class.d.ts.map +1 -1
- package/dist/components/conversation/message-actions/message-actions.class.js +23 -14
- package/dist/components/conversation/message-actions/message-actions.class.js.map +1 -1
- package/dist/components/conversation/message-feedback/message-feedback.class.d.ts +4 -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 +36 -6
- package/dist/components/conversation/message-feedback/message-feedback.class.js.map +1 -1
- package/dist/components/conversation/model-select/model-select.class.d.ts +3 -1
- package/dist/components/conversation/model-select/model-select.class.d.ts.map +1 -1
- package/dist/components/conversation/model-select/model-select.class.js +14 -2
- package/dist/components/conversation/model-select/model-select.class.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 +9 -4
- package/dist/components/conversation/model-settings-panel/model-settings-panel.class.js.map +1 -1
- package/dist/components/conversation/prompt-input/prompt-input.class.d.ts +2 -0
- package/dist/components/conversation/prompt-input/prompt-input.class.d.ts.map +1 -1
- package/dist/components/conversation/prompt-input/prompt-input.class.js +15 -1
- package/dist/components/conversation/prompt-input/prompt-input.class.js.map +1 -1
- package/dist/components/conversation/prompt-queue/prompt-queue.class.d.ts.map +1 -1
- package/dist/components/conversation/prompt-queue/prompt-queue.class.js +5 -0
- package/dist/components/conversation/prompt-queue/prompt-queue.class.js.map +1 -1
- package/dist/components/conversation/push-to-talk/push-to-talk.class.d.ts +2 -0
- package/dist/components/conversation/push-to-talk/push-to-talk.class.d.ts.map +1 -1
- package/dist/components/conversation/push-to-talk/push-to-talk.class.js +17 -5
- package/dist/components/conversation/push-to-talk/push-to-talk.class.js.map +1 -1
- package/dist/components/conversation/realtime-session/realtime-session.class.d.ts.map +1 -1
- package/dist/components/conversation/realtime-session/realtime-session.class.js +10 -2
- package/dist/components/conversation/realtime-session/realtime-session.class.js.map +1 -1
- package/dist/components/conversation/selection-toolbar/selection-toolbar.class.d.ts +1 -0
- package/dist/components/conversation/selection-toolbar/selection-toolbar.class.d.ts.map +1 -1
- package/dist/components/conversation/selection-toolbar/selection-toolbar.class.js +30 -24
- package/dist/components/conversation/selection-toolbar/selection-toolbar.class.js.map +1 -1
- package/dist/components/conversation/selection-toolbar/selection-toolbar.styles.d.ts.map +1 -1
- package/dist/components/conversation/selection-toolbar/selection-toolbar.styles.js +10 -0
- package/dist/components/conversation/selection-toolbar/selection-toolbar.styles.js.map +1 -1
- package/dist/components/conversation/thread-list/thread-list.class.d.ts +3 -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 +33 -1
- package/dist/components/conversation/thread-list/thread-list.class.js.map +1 -1
- package/dist/components/conversation/widget-renderer/resolve.d.ts +5 -0
- package/dist/components/conversation/widget-renderer/resolve.d.ts.map +1 -1
- package/dist/components/conversation/widget-renderer/resolve.js +38 -2
- package/dist/components/conversation/widget-renderer/resolve.js.map +1 -1
- package/dist/components/conversation/widget-renderer/widget-renderer.class.d.ts +1 -0
- package/dist/components/conversation/widget-renderer/widget-renderer.class.d.ts.map +1 -1
- package/dist/components/conversation/widget-renderer/widget-renderer.class.js +17 -5
- package/dist/components/conversation/widget-renderer/widget-renderer.class.js.map +1 -1
- package/dist/components/data/calendar/calendar.styles.js +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 +8 -0
- 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 +4 -1
- package/dist/components/data/env-list/env-list.class.js.map +1 -1
- package/dist/components/data/env-list/env-list.styles.d.ts.map +1 -1
- package/dist/components/data/env-list/env-list.styles.js +16 -1
- package/dist/components/data/env-list/env-list.styles.js.map +1 -1
- package/dist/components/data/file-tree/file-tree.class.js +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 +14 -3
- package/dist/components/data/flow-canvas/flow-canvas.class.js.map +1 -1
- package/dist/components/data/flow-controls/flow-controls.class.js +3 -3
- package/dist/components/data/flow-controls/flow-controls.class.js.map +1 -1
- package/dist/components/data/flow-minimap/flow-minimap.class.d.ts +7 -0
- package/dist/components/data/flow-minimap/flow-minimap.class.d.ts.map +1 -1
- package/dist/components/data/flow-minimap/flow-minimap.class.js +7 -0
- package/dist/components/data/flow-minimap/flow-minimap.class.js.map +1 -1
- package/dist/components/data/flow-minimap/flow-minimap.styles.d.ts.map +1 -1
- package/dist/components/data/flow-minimap/flow-minimap.styles.js +8 -5
- package/dist/components/data/flow-minimap/flow-minimap.styles.js.map +1 -1
- package/dist/components/data/flow-node/flow-node.class.d.ts +7 -0
- package/dist/components/data/flow-node/flow-node.class.d.ts.map +1 -1
- package/dist/components/data/flow-node/flow-node.class.js +7 -0
- package/dist/components/data/flow-node/flow-node.class.js.map +1 -1
- package/dist/components/data/flow-node/flow-node.styles.d.ts.map +1 -1
- package/dist/components/data/flow-node/flow-node.styles.js +16 -5
- package/dist/components/data/flow-node/flow-node.styles.js.map +1 -1
- package/dist/components/data/flow-run-overlay/flow-run-overlay.class.d.ts +8 -0
- 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 +8 -0
- package/dist/components/data/flow-run-overlay/flow-run-overlay.class.js.map +1 -1
- package/dist/components/data/flow-run-overlay/flow-run-overlay.styles.d.ts.map +1 -1
- package/dist/components/data/flow-run-overlay/flow-run-overlay.styles.js +33 -5
- package/dist/components/data/flow-run-overlay/flow-run-overlay.styles.js.map +1 -1
- package/dist/components/data/gauge/gauge.class.d.ts.map +1 -1
- package/dist/components/data/gauge/gauge.class.js +71 -12
- package/dist/components/data/gauge/gauge.class.js.map +1 -1
- package/dist/components/data/heatmap/heatmap-scale.d.ts.map +1 -1
- package/dist/components/data/heatmap/heatmap-scale.js +3 -5
- package/dist/components/data/heatmap/heatmap-scale.js.map +1 -1
- package/dist/components/data/heatmap/heatmap.class.d.ts +4 -2
- package/dist/components/data/heatmap/heatmap.class.d.ts.map +1 -1
- package/dist/components/data/heatmap/heatmap.class.js +20 -13
- package/dist/components/data/heatmap/heatmap.class.js.map +1 -1
- package/dist/components/data/heatmap/heatmap.styles.d.ts.map +1 -1
- package/dist/components/data/heatmap/heatmap.styles.js +27 -1
- package/dist/components/data/heatmap/heatmap.styles.js.map +1 -1
- package/dist/components/data/query-builder/query-builder.class.js +2 -2
- package/dist/components/data/query-builder/query-builder.class.js.map +1 -1
- package/dist/components/data/sequence-strip/sequence-strip.class.d.ts +1 -0
- package/dist/components/data/sequence-strip/sequence-strip.class.d.ts.map +1 -1
- package/dist/components/data/sequence-strip/sequence-strip.class.js +8 -4
- 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 +2 -3
- package/dist/components/data/sparkline/sparkline.class.js.map +1 -1
- package/dist/components/data/stat/stat.class.d.ts +6 -0
- package/dist/components/data/stat/stat.class.d.ts.map +1 -1
- package/dist/components/data/stat/stat.class.js +6 -0
- package/dist/components/data/stat/stat.class.js.map +1 -1
- package/dist/components/data/stat/stat.styles.js +3 -3
- package/dist/components/data/table/table.class.d.ts.map +1 -1
- package/dist/components/data/table/table.class.js +41 -9
- 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 +6 -0
- package/dist/components/data/table/table.styles.js.map +1 -1
- package/dist/components/data/timeline/timeline-item.class.d.ts +1 -2
- package/dist/components/data/timeline/timeline-item.class.d.ts.map +1 -1
- package/dist/components/data/timeline/timeline-item.class.js +2 -8
- package/dist/components/data/timeline/timeline-item.class.js.map +1 -1
- package/dist/components/data/timeline/timeline.class.d.ts +1 -0
- package/dist/components/data/timeline/timeline.class.d.ts.map +1 -1
- package/dist/components/data/timeline/timeline.class.js +7 -3
- package/dist/components/data/timeline/timeline.class.js.map +1 -1
- package/dist/components/data/tree/tree-node.class.d.ts +10 -0
- package/dist/components/data/tree/tree-node.class.d.ts.map +1 -1
- package/dist/components/data/tree/tree-node.class.js +20 -4
- package/dist/components/data/tree/tree-node.class.js.map +1 -1
- package/dist/components/data/tree/tree-node.styles.d.ts.map +1 -1
- package/dist/components/data/tree/tree-node.styles.js +13 -10
- package/dist/components/data/tree/tree-node.styles.js.map +1 -1
- package/dist/components/data/tree/tree.class.d.ts +1 -0
- package/dist/components/data/tree/tree.class.d.ts.map +1 -1
- package/dist/components/data/tree/tree.class.js +39 -7
- package/dist/components/data/tree/tree.class.js.map +1 -1
- package/dist/components/data/word-cloud/word-cloud.class.d.ts +5 -2
- package/dist/components/data/word-cloud/word-cloud.class.d.ts.map +1 -1
- package/dist/components/data/word-cloud/word-cloud.class.js +22 -9
- package/dist/components/data/word-cloud/word-cloud.class.js.map +1 -1
- package/dist/components/forms/checkbox/checkbox.class.d.ts +2 -2
- package/dist/components/forms/checkbox/checkbox.class.js +2 -2
- package/dist/components/forms/checkbox-group/checkbox-group.class.d.ts.map +1 -1
- package/dist/components/forms/checkbox-group/checkbox-group.class.js +8 -2
- package/dist/components/forms/checkbox-group/checkbox-group.class.js.map +1 -1
- package/dist/components/forms/checkbox-group/checkbox-group.styles.d.ts.map +1 -1
- package/dist/components/forms/checkbox-group/checkbox-group.styles.js +8 -0
- package/dist/components/forms/checkbox-group/checkbox-group.styles.js.map +1 -1
- package/dist/components/forms/code-editor/code-editor.class.d.ts +3 -0
- package/dist/components/forms/code-editor/code-editor.class.d.ts.map +1 -1
- package/dist/components/forms/code-editor/code-editor.class.js +12 -2
- package/dist/components/forms/code-editor/code-editor.class.js.map +1 -1
- package/dist/components/forms/code-editor/code-editor.styles.d.ts.map +1 -1
- package/dist/components/forms/code-editor/code-editor.styles.js +8 -0
- package/dist/components/forms/code-editor/code-editor.styles.js.map +1 -1
- package/dist/components/forms/color-picker/color-picker.styles.d.ts.map +1 -1
- package/dist/components/forms/color-picker/color-picker.styles.js +8 -0
- package/dist/components/forms/color-picker/color-picker.styles.js.map +1 -1
- package/dist/components/forms/combobox/combobox.class.d.ts.map +1 -1
- package/dist/components/forms/combobox/combobox.class.js +11 -2
- 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 +8 -0
- package/dist/components/forms/combobox/combobox.styles.js.map +1 -1
- package/dist/components/forms/combobox/option.class.d.ts +2 -0
- package/dist/components/forms/combobox/option.class.d.ts.map +1 -1
- package/dist/components/forms/combobox/option.class.js +2 -0
- package/dist/components/forms/combobox/option.class.js.map +1 -1
- package/dist/components/forms/date-picker/date-input.class.d.ts +5 -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 +18 -1
- package/dist/components/forms/date-picker/date-input.class.js.map +1 -1
- package/dist/components/forms/date-picker/date-input.styles.d.ts.map +1 -1
- package/dist/components/forms/date-picker/date-input.styles.js +8 -0
- package/dist/components/forms/date-picker/date-input.styles.js.map +1 -1
- package/dist/components/forms/emoji-picker/emoji-picker.class.d.ts +7 -3
- package/dist/components/forms/emoji-picker/emoji-picker.class.d.ts.map +1 -1
- package/dist/components/forms/emoji-picker/emoji-picker.class.js +18 -7
- 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 +8 -0
- package/dist/components/forms/emoji-picker/emoji-picker.styles.js.map +1 -1
- package/dist/components/forms/input/input.styles.d.ts.map +1 -1
- package/dist/components/forms/input/input.styles.js +8 -0
- package/dist/components/forms/input/input.styles.js.map +1 -1
- package/dist/components/forms/locale-picker/locale-picker.styles.d.ts.map +1 -1
- package/dist/components/forms/locale-picker/locale-picker.styles.js +8 -0
- package/dist/components/forms/locale-picker/locale-picker.styles.js.map +1 -1
- package/dist/components/forms/phone-input/phone-input.styles.d.ts.map +1 -1
- package/dist/components/forms/phone-input/phone-input.styles.js +8 -0
- package/dist/components/forms/phone-input/phone-input.styles.js.map +1 -1
- package/dist/components/forms/radio/radio-group.class.d.ts +3 -0
- package/dist/components/forms/radio/radio-group.class.d.ts.map +1 -1
- package/dist/components/forms/radio/radio-group.class.js +98 -24
- package/dist/components/forms/radio/radio-group.class.js.map +1 -1
- package/dist/components/forms/radio/radio-group.styles.d.ts.map +1 -1
- package/dist/components/forms/radio/radio-group.styles.js +8 -0
- package/dist/components/forms/radio/radio-group.styles.js.map +1 -1
- package/dist/components/forms/radio/radio.class.d.ts +8 -2
- package/dist/components/forms/radio/radio.class.d.ts.map +1 -1
- package/dist/components/forms/radio/radio.class.js +88 -19
- package/dist/components/forms/radio/radio.class.js.map +1 -1
- package/dist/components/forms/rubric-form/rubric-form.class.d.ts +1 -0
- package/dist/components/forms/rubric-form/rubric-form.class.d.ts.map +1 -1
- package/dist/components/forms/rubric-form/rubric-form.class.js +14 -3
- package/dist/components/forms/rubric-form/rubric-form.class.js.map +1 -1
- package/dist/components/forms/rubric-form/rubric-form.styles.d.ts.map +1 -1
- package/dist/components/forms/rubric-form/rubric-form.styles.js +16 -0
- package/dist/components/forms/rubric-form/rubric-form.styles.js.map +1 -1
- package/dist/components/forms/select/select.class.d.ts.map +1 -1
- package/dist/components/forms/select/select.class.js +8 -1
- 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 +28 -2
- package/dist/components/forms/select/select.styles.js.map +1 -1
- package/dist/components/forms/slider/slider.class.d.ts +9 -8
- package/dist/components/forms/slider/slider.class.d.ts.map +1 -1
- package/dist/components/forms/slider/slider.class.js +31 -20
- package/dist/components/forms/slider/slider.class.js.map +1 -1
- package/dist/components/forms/swatch-picker/swatch-picker.class.d.ts +4 -6
- package/dist/components/forms/swatch-picker/swatch-picker.class.d.ts.map +1 -1
- package/dist/components/forms/swatch-picker/swatch-picker.class.js +11 -8
- package/dist/components/forms/swatch-picker/swatch-picker.class.js.map +1 -1
- package/dist/components/forms/switch/switch.styles.d.ts.map +1 -1
- package/dist/components/forms/switch/switch.styles.js +8 -0
- package/dist/components/forms/switch/switch.styles.js.map +1 -1
- package/dist/components/forms/textarea/textarea.class.d.ts +2 -1
- package/dist/components/forms/textarea/textarea.class.d.ts.map +1 -1
- package/dist/components/forms/textarea/textarea.class.js +6 -3
- package/dist/components/forms/textarea/textarea.class.js.map +1 -1
- package/dist/components/forms/textarea/textarea.styles.d.ts.map +1 -1
- package/dist/components/forms/textarea/textarea.styles.js +8 -0
- package/dist/components/forms/textarea/textarea.styles.js.map +1 -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 +4 -8
- package/dist/components/forms/time-range/time-range.class.js.map +1 -1
- package/dist/components/forms/time-range/time-range.styles.d.ts.map +1 -1
- package/dist/components/forms/time-range/time-range.styles.js +8 -0
- package/dist/components/forms/time-range/time-range.styles.js.map +1 -1
- package/dist/components/forms/token-input/token-input.class.d.ts +14 -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 +76 -7
- 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 +7 -0
- 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 +3 -0
- 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 +34 -15
- 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 +2 -0
- package/dist/components/layout/app-rail/app-rail.class.d.ts.map +1 -1
- package/dist/components/layout/app-rail/app-rail.class.js +46 -15
- package/dist/components/layout/app-rail/app-rail.class.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 +3 -3
- package/dist/components/layout/breadcrumb/breadcrumb-item.class.js.map +1 -1
- package/dist/components/layout/breadcrumb/breadcrumb-item.styles.d.ts.map +1 -1
- package/dist/components/layout/breadcrumb/breadcrumb-item.styles.js +6 -0
- package/dist/components/layout/breadcrumb/breadcrumb-item.styles.js.map +1 -1
- package/dist/components/layout/breadcrumb/breadcrumb.styles.d.ts.map +1 -1
- package/dist/components/layout/breadcrumb/breadcrumb.styles.js +7 -0
- package/dist/components/layout/breadcrumb/breadcrumb.styles.js.map +1 -1
- package/dist/components/layout/button-group/button-group.class.js +1 -1
- package/dist/components/layout/button-group/button-group.class.js.map +1 -1
- package/dist/components/layout/card/card.class.d.ts.map +1 -1
- package/dist/components/layout/card/card.class.js +1 -0
- package/dist/components/layout/card/card.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 +14 -4
- 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 +1 -0
- package/dist/components/layout/command-palette/command-palette.class.js.map +1 -1
- package/dist/components/layout/control-group/control-group.class.d.ts +2 -3
- package/dist/components/layout/control-group/control-group.class.d.ts.map +1 -1
- package/dist/components/layout/control-group/control-group.class.js +3 -4
- package/dist/components/layout/control-group/control-group.class.js.map +1 -1
- package/dist/components/layout/dashboard-grid/dashboard-grid.class.d.ts +13 -0
- package/dist/components/layout/dashboard-grid/dashboard-grid.class.d.ts.map +1 -1
- package/dist/components/layout/dashboard-grid/dashboard-grid.class.js +145 -34
- package/dist/components/layout/dashboard-grid/dashboard-grid.class.js.map +1 -1
- package/dist/components/layout/dashboard-grid/dashboard-grid.styles.js +1 -1
- package/dist/components/layout/details/accordion.class.d.ts +3 -1
- package/dist/components/layout/details/accordion.class.d.ts.map +1 -1
- package/dist/components/layout/details/accordion.class.js +19 -0
- package/dist/components/layout/details/accordion.class.js.map +1 -1
- package/dist/components/layout/details/details.styles.js +5 -5
- package/dist/components/layout/dock-panel/dock-panel.class.d.ts +1 -0
- package/dist/components/layout/dock-panel/dock-panel.class.d.ts.map +1 -1
- package/dist/components/layout/dock-panel/dock-panel.class.js +17 -10
- package/dist/components/layout/dock-panel/dock-panel.class.js.map +1 -1
- package/dist/components/layout/filter-bar/filter-bar.class.d.ts +59 -13
- package/dist/components/layout/filter-bar/filter-bar.class.d.ts.map +1 -1
- package/dist/components/layout/filter-bar/filter-bar.class.js +65 -6
- package/dist/components/layout/filter-bar/filter-bar.class.js.map +1 -1
- package/dist/components/layout/menu/menu-item.class.d.ts +2 -0
- package/dist/components/layout/menu/menu-item.class.d.ts.map +1 -1
- package/dist/components/layout/menu/menu-item.class.js +3 -4
- package/dist/components/layout/menu/menu-item.class.js.map +1 -1
- package/dist/components/layout/reorder-list/reorder-item.styles.d.ts.map +1 -1
- package/dist/components/layout/reorder-list/reorder-item.styles.js +6 -0
- package/dist/components/layout/reorder-list/reorder-item.styles.js.map +1 -1
- package/dist/components/layout/reorder-list/reorder-list.class.d.ts +3 -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 +8 -7
- package/dist/components/layout/reorder-list/reorder-list.class.js.map +1 -1
- package/dist/components/layout/reorder-list/reorder-list.styles.d.ts.map +1 -1
- package/dist/components/layout/reorder-list/reorder-list.styles.js +4 -0
- package/dist/components/layout/reorder-list/reorder-list.styles.js.map +1 -1
- package/dist/components/layout/segmented/segmented.class.d.ts +4 -5
- package/dist/components/layout/segmented/segmented.class.d.ts.map +1 -1
- package/dist/components/layout/segmented/segmented.class.js +19 -7
- package/dist/components/layout/segmented/segmented.class.js.map +1 -1
- package/dist/components/layout/segmented/segmented.styles.d.ts.map +1 -1
- package/dist/components/layout/segmented/segmented.styles.js +6 -1
- package/dist/components/layout/segmented/segmented.styles.js.map +1 -1
- package/dist/components/layout/split/split.class.d.ts +5 -1
- package/dist/components/layout/split/split.class.d.ts.map +1 -1
- package/dist/components/layout/split/split.class.js +11 -5
- package/dist/components/layout/split/split.class.js.map +1 -1
- package/dist/components/layout/split/split.styles.d.ts.map +1 -1
- package/dist/components/layout/split/split.styles.js +9 -0
- package/dist/components/layout/split/split.styles.js.map +1 -1
- package/dist/components/layout/stepper/stepper.class.d.ts +1 -0
- package/dist/components/layout/stepper/stepper.class.d.ts.map +1 -1
- package/dist/components/layout/stepper/stepper.class.js +19 -0
- package/dist/components/layout/stepper/stepper.class.js.map +1 -1
- package/dist/components/layout/tabs/tabs.class.d.ts +2 -0
- package/dist/components/layout/tabs/tabs.class.d.ts.map +1 -1
- package/dist/components/layout/tabs/tabs.class.js +14 -0
- package/dist/components/layout/tabs/tabs.class.js.map +1 -1
- package/dist/components/layout/virtual-list/virtual-list.class.d.ts +10 -0
- package/dist/components/layout/virtual-list/virtual-list.class.d.ts.map +1 -1
- package/dist/components/layout/virtual-list/virtual-list.class.js +42 -12
- package/dist/components/layout/virtual-list/virtual-list.class.js.map +1 -1
- package/dist/components/layout/widget/widget.class.d.ts +3 -3
- package/dist/components/layout/widget/widget.class.d.ts.map +1 -1
- package/dist/components/layout/widget/widget.class.js +19 -19
- 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 +4 -0
- package/dist/components/media/animated-image/animated-image.class.js.map +1 -1
- package/dist/components/media/animation/animation.class.js +1 -1
- package/dist/components/media/animation/animation.class.js.map +1 -1
- package/dist/components/media/attachment-trigger/attachment-trigger.class.d.ts +13 -10
- package/dist/components/media/attachment-trigger/attachment-trigger.class.d.ts.map +1 -1
- package/dist/components/media/attachment-trigger/attachment-trigger.class.js +20 -8
- package/dist/components/media/attachment-trigger/attachment-trigger.class.js.map +1 -1
- package/dist/components/media/av-player/av-player.class.d.ts +6 -2
- package/dist/components/media/av-player/av-player.class.d.ts.map +1 -1
- package/dist/components/media/av-player/av-player.class.js +57 -18
- package/dist/components/media/av-player/av-player.class.js.map +1 -1
- package/dist/components/media/av-player/av-player.styles.d.ts.map +1 -1
- package/dist/components/media/av-player/av-player.styles.js +10 -0
- package/dist/components/media/av-player/av-player.styles.js.map +1 -1
- package/dist/components/media/avatar/avatar.class.d.ts +3 -2
- package/dist/components/media/avatar/avatar.class.d.ts.map +1 -1
- package/dist/components/media/avatar/avatar.class.js +13 -3
- package/dist/components/media/avatar/avatar.class.js.map +1 -1
- package/dist/components/media/avatar-group/avatar-group.class.d.ts +1 -0
- package/dist/components/media/avatar-group/avatar-group.class.d.ts.map +1 -1
- package/dist/components/media/avatar-group/avatar-group.class.js +8 -0
- package/dist/components/media/avatar-group/avatar-group.class.js.map +1 -1
- package/dist/components/media/avatar-group/avatar-group.styles.d.ts.map +1 -1
- package/dist/components/media/avatar-group/avatar-group.styles.js +2 -0
- package/dist/components/media/avatar-group/avatar-group.styles.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 +3 -1
- package/dist/components/media/file-icon/file-icon.class.js.map +1 -1
- package/dist/components/media/file-icon/file-icon.styles.d.ts.map +1 -1
- package/dist/components/media/file-icon/file-icon.styles.js +21 -3
- package/dist/components/media/file-icon/file-icon.styles.js.map +1 -1
- package/dist/components/media/file-input/file-input.class.d.ts +3 -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 +36 -15
- 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 +45 -4
- 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 +1 -4
- package/dist/components/media/flag/flag.class.js.map +1 -1
- package/dist/components/media/image-comparer/image-comparer.class.d.ts +2 -0
- package/dist/components/media/image-comparer/image-comparer.class.d.ts.map +1 -1
- package/dist/components/media/image-comparer/image-comparer.class.js +2 -0
- package/dist/components/media/image-comparer/image-comparer.class.js.map +1 -1
- package/dist/components/media/image-viewer/image-viewer.class.d.ts +1 -0
- package/dist/components/media/image-viewer/image-viewer.class.d.ts.map +1 -1
- package/dist/components/media/image-viewer/image-viewer.class.js +18 -3
- package/dist/components/media/image-viewer/image-viewer.class.js.map +1 -1
- package/dist/components/media/image-viewer/image-viewer.styles.d.ts.map +1 -1
- package/dist/components/media/image-viewer/image-viewer.styles.js +5 -1
- package/dist/components/media/image-viewer/image-viewer.styles.js.map +1 -1
- package/dist/components/media/lightbox/lightbox.class.d.ts +3 -2
- package/dist/components/media/lightbox/lightbox.class.d.ts.map +1 -1
- package/dist/components/media/lightbox/lightbox.class.js +4 -3
- package/dist/components/media/lightbox/lightbox.class.js.map +1 -1
- package/dist/components/media/map/map.class.d.ts +18 -5
- package/dist/components/media/map/map.class.d.ts.map +1 -1
- package/dist/components/media/map/map.class.js +139 -30
- package/dist/components/media/map/map.class.js.map +1 -1
- package/dist/components/media/map/map.styles.d.ts.map +1 -1
- package/dist/components/media/map/map.styles.js +8 -0
- package/dist/components/media/map/map.styles.js.map +1 -1
- package/dist/components/media/media-card/media-card.class.d.ts +2 -1
- package/dist/components/media/media-card/media-card.class.d.ts.map +1 -1
- package/dist/components/media/media-card/media-card.class.js +8 -2
- package/dist/components/media/media-card/media-card.class.js.map +1 -1
- package/dist/components/media/qr-code/qr-code.class.d.ts +8 -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 +15 -7
- 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 +4 -1
- package/dist/components/media/zoomable-frame/zoomable-frame.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 +2 -1
- package/dist/components/overlays/badge/badge.styles.js.map +1 -1
- package/dist/components/overlays/callout/callout.class.js +1 -1
- package/dist/components/overlays/callout/callout.class.js.map +1 -1
- package/dist/components/overlays/callout/callout.styles.d.ts.map +1 -1
- package/dist/components/overlays/callout/callout.styles.js +5 -4
- package/dist/components/overlays/callout/callout.styles.js.map +1 -1
- package/dist/components/overlays/chip/chip-group.class.d.ts +11 -0
- package/dist/components/overlays/chip/chip-group.class.d.ts.map +1 -1
- package/dist/components/overlays/chip/chip-group.class.js +88 -4
- package/dist/components/overlays/chip/chip-group.class.js.map +1 -1
- package/dist/components/overlays/chip/chip.class.d.ts +5 -3
- package/dist/components/overlays/chip/chip.class.d.ts.map +1 -1
- package/dist/components/overlays/chip/chip.class.js +19 -10
- 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 +3 -2
- package/dist/components/overlays/chip/chip.styles.js.map +1 -1
- package/dist/components/overlays/dialog/confirm.d.ts +3 -1
- package/dist/components/overlays/dialog/confirm.d.ts.map +1 -1
- package/dist/components/overlays/dialog/confirm.js +16 -5
- package/dist/components/overlays/dialog/confirm.js.map +1 -1
- package/dist/components/overlays/dialog/dialog.class.d.ts +8 -7
- package/dist/components/overlays/dialog/dialog.class.d.ts.map +1 -1
- package/dist/components/overlays/dialog/dialog.class.js +18 -15
- package/dist/components/overlays/dialog/dialog.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 +12 -0
- package/dist/components/overlays/empty/empty.styles.js.map +1 -1
- package/dist/components/overlays/kbd/kbd.class.d.ts +3 -3
- package/dist/components/overlays/kbd/kbd.class.d.ts.map +1 -1
- package/dist/components/overlays/kbd/kbd.class.js +8 -4
- package/dist/components/overlays/kbd/kbd.class.js.map +1 -1
- package/dist/components/overlays/kbd/kbd.styles.d.ts.map +1 -1
- package/dist/components/overlays/kbd/kbd.styles.js +8 -0
- package/dist/components/overlays/kbd/kbd.styles.js.map +1 -1
- package/dist/components/overlays/overlay/popover.class.d.ts +18 -7
- package/dist/components/overlays/overlay/popover.class.d.ts.map +1 -1
- package/dist/components/overlays/overlay/popover.class.js +71 -14
- package/dist/components/overlays/overlay/popover.class.js.map +1 -1
- package/dist/components/overlays/overlay/tooltip.class.d.ts +32 -15
- package/dist/components/overlays/overlay/tooltip.class.d.ts.map +1 -1
- package/dist/components/overlays/overlay/tooltip.class.js +155 -34
- package/dist/components/overlays/overlay/tooltip.class.js.map +1 -1
- package/dist/components/overlays/progress/progress-bar.class.d.ts +6 -1
- package/dist/components/overlays/progress/progress-bar.class.d.ts.map +1 -1
- package/dist/components/overlays/progress/progress-bar.class.js +25 -3
- package/dist/components/overlays/progress/progress-bar.class.js.map +1 -1
- package/dist/components/overlays/progress/progress-ring.class.d.ts +6 -1
- package/dist/components/overlays/progress/progress-ring.class.d.ts.map +1 -1
- package/dist/components/overlays/progress/progress-ring.class.js +25 -3
- package/dist/components/overlays/progress/progress-ring.class.js.map +1 -1
- package/dist/components/overlays/rating/rating.class.d.ts +4 -2
- package/dist/components/overlays/rating/rating.class.d.ts.map +1 -1
- package/dist/components/overlays/rating/rating.class.js +17 -4
- package/dist/components/overlays/rating/rating.class.js.map +1 -1
- package/dist/components/overlays/rating/rating.styles.js +2 -2
- package/dist/components/overlays/spinner/spinner.class.d.ts +8 -3
- package/dist/components/overlays/spinner/spinner.class.d.ts.map +1 -1
- package/dist/components/overlays/spinner/spinner.class.js +26 -5
- package/dist/components/overlays/spinner/spinner.class.js.map +1 -1
- package/dist/components/overlays/spinner/spinner.styles.js +3 -3
- package/dist/components/overlays/toast/toast-item.class.d.ts +11 -1
- package/dist/components/overlays/toast/toast-item.class.d.ts.map +1 -1
- package/dist/components/overlays/toast/toast-item.class.js +81 -17
- package/dist/components/overlays/toast/toast-item.class.js.map +1 -1
- package/dist/components/retrieval/chunk-inspector/chunk-inspector.class.d.ts.map +1 -1
- package/dist/components/retrieval/chunk-inspector/chunk-inspector.class.js +4 -3
- package/dist/components/retrieval/chunk-inspector/chunk-inspector.class.js.map +1 -1
- package/dist/components/retrieval/citation-badge/citation-badge.class.d.ts +2 -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 +11 -6
- package/dist/components/retrieval/citation-badge/citation-badge.class.js.map +1 -1
- package/dist/components/retrieval/embedding-explorer/embedding-explorer.class.d.ts +3 -1
- package/dist/components/retrieval/embedding-explorer/embedding-explorer.class.d.ts.map +1 -1
- package/dist/components/retrieval/embedding-explorer/embedding-explorer.class.js +21 -3
- package/dist/components/retrieval/embedding-explorer/embedding-explorer.class.js.map +1 -1
- package/dist/components/retrieval/embedding-explorer/embedding-explorer.styles.d.ts.map +1 -1
- package/dist/components/retrieval/embedding-explorer/embedding-explorer.styles.js +9 -0
- package/dist/components/retrieval/embedding-explorer/embedding-explorer.styles.js.map +1 -1
- package/dist/components/retrieval/entity-dossier/entity-dossier.class.d.ts +28 -9
- package/dist/components/retrieval/entity-dossier/entity-dossier.class.d.ts.map +1 -1
- package/dist/components/retrieval/entity-dossier/entity-dossier.class.js +18 -5
- package/dist/components/retrieval/entity-dossier/entity-dossier.class.js.map +1 -1
- package/dist/components/retrieval/graph/graph-canvas.d.ts.map +1 -1
- package/dist/components/retrieval/graph/graph-canvas.js +20 -4
- package/dist/components/retrieval/graph/graph-canvas.js.map +1 -1
- package/dist/components/retrieval/graph/graph-loader.d.ts.map +1 -1
- package/dist/components/retrieval/graph/graph-loader.js +23 -1
- package/dist/components/retrieval/graph/graph-loader.js.map +1 -1
- package/dist/components/retrieval/graph/graph.class.d.ts +21 -3
- package/dist/components/retrieval/graph/graph.class.d.ts.map +1 -1
- package/dist/components/retrieval/graph/graph.class.js +154 -68
- package/dist/components/retrieval/graph/graph.class.js.map +1 -1
- package/dist/components/retrieval/graph/graph.styles.d.ts.map +1 -1
- package/dist/components/retrieval/graph/graph.styles.js +18 -0
- package/dist/components/retrieval/graph/graph.styles.js.map +1 -1
- package/dist/components/retrieval/graph-legend/graph-legend.class.d.ts +3 -0
- package/dist/components/retrieval/graph-legend/graph-legend.class.d.ts.map +1 -1
- package/dist/components/retrieval/graph-legend/graph-legend.class.js +8 -2
- package/dist/components/retrieval/graph-legend/graph-legend.class.js.map +1 -1
- package/dist/components/retrieval/graph-legend/graph-legend.styles.d.ts.map +1 -1
- package/dist/components/retrieval/graph-legend/graph-legend.styles.js +11 -1
- package/dist/components/retrieval/graph-legend/graph-legend.styles.js.map +1 -1
- package/dist/components/retrieval/grounding-summary/grounding-summary.class.d.ts +1 -0
- package/dist/components/retrieval/grounding-summary/grounding-summary.class.d.ts.map +1 -1
- package/dist/components/retrieval/grounding-summary/grounding-summary.class.js +1 -0
- package/dist/components/retrieval/grounding-summary/grounding-summary.class.js.map +1 -1
- package/dist/components/retrieval/ingestion-queue/ingestion-queue.class.d.ts +3 -2
- package/dist/components/retrieval/ingestion-queue/ingestion-queue.class.d.ts.map +1 -1
- package/dist/components/retrieval/ingestion-queue/ingestion-queue.class.js +11 -4
- package/dist/components/retrieval/ingestion-queue/ingestion-queue.class.js.map +1 -1
- package/dist/components/retrieval/knowledge-base-admin/knowledge-base-admin.class.d.ts +7 -3
- package/dist/components/retrieval/knowledge-base-admin/knowledge-base-admin.class.d.ts.map +1 -1
- package/dist/components/retrieval/knowledge-base-admin/knowledge-base-admin.class.js +27 -6
- package/dist/components/retrieval/knowledge-base-admin/knowledge-base-admin.class.js.map +1 -1
- package/dist/components/retrieval/knowledge-graph-explorer/knowledge-graph-explorer.class.d.ts +24 -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 +19 -4
- 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 +5 -0
- package/dist/components/retrieval/memory-panel/memory-panel.class.d.ts.map +1 -1
- package/dist/components/retrieval/memory-panel/memory-panel.class.js +62 -3
- package/dist/components/retrieval/memory-panel/memory-panel.class.js.map +1 -1
- package/dist/components/retrieval/node-palette/node-palette.class.d.ts +2 -0
- 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 +2 -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 +3 -2
- package/dist/components/retrieval/path-strip/path-strip.class.js.map +1 -1
- package/dist/components/retrieval/rag-eval-dashboard/rag-eval-dashboard.class.d.ts +6 -2
- package/dist/components/retrieval/rag-eval-dashboard/rag-eval-dashboard.class.d.ts.map +1 -1
- package/dist/components/retrieval/rag-eval-dashboard/rag-eval-dashboard.class.js +20 -2
- package/dist/components/retrieval/rag-eval-dashboard/rag-eval-dashboard.class.js.map +1 -1
- package/dist/components/retrieval/retrieval-results/retrieval-results.class.d.ts +12 -2
- package/dist/components/retrieval/retrieval-results/retrieval-results.class.d.ts.map +1 -1
- package/dist/components/retrieval/retrieval-results/retrieval-results.class.js +117 -5
- package/dist/components/retrieval/retrieval-results/retrieval-results.class.js.map +1 -1
- package/dist/components/retrieval/retrieval-search/retrieval-search.styles.d.ts.map +1 -1
- package/dist/components/retrieval/retrieval-search/retrieval-search.styles.js +19 -0
- package/dist/components/retrieval/retrieval-search/retrieval-search.styles.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 +8 -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 +7 -0
- package/dist/components/retrieval/source-list/source-list.class.d.ts.map +1 -1
- package/dist/components/retrieval/source-list/source-list.class.js +48 -5
- package/dist/components/retrieval/source-list/source-list.class.js.map +1 -1
- package/dist/components/retrieval/source-picker/source-picker.class.d.ts +5 -2
- package/dist/components/retrieval/source-picker/source-picker.class.d.ts.map +1 -1
- package/dist/components/retrieval/source-picker/source-picker.class.js +36 -11
- package/dist/components/retrieval/source-picker/source-picker.class.js.map +1 -1
- package/dist/components/retrieval/source-picker/source-picker.styles.d.ts.map +1 -1
- package/dist/components/retrieval/source-picker/source-picker.styles.js +0 -3
- package/dist/components/retrieval/source-picker/source-picker.styles.js.map +1 -1
- package/dist/components/utility/copy-button/copy-button.class.d.ts +2 -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 +8 -0
- package/dist/components/utility/copy-button/copy-button.class.js.map +1 -1
- package/dist/components/utility/diff-view/diff-view.class.d.ts.map +1 -1
- package/dist/components/utility/diff-view/diff-view.class.js +7 -0
- 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 +9 -2
- package/dist/components/utility/divider/divider.class.js.map +1 -1
- package/dist/components/utility/export-button/csv.d.ts.map +1 -1
- package/dist/components/utility/export-button/csv.js +4 -5
- package/dist/components/utility/export-button/csv.js.map +1 -1
- package/dist/components/utility/export-button/export-button.class.d.ts +1 -0
- package/dist/components/utility/export-button/export-button.class.d.ts.map +1 -1
- package/dist/components/utility/export-button/export-button.class.js +35 -5
- 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 +13 -3
- 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 +10 -2
- 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 +10 -2
- package/dist/components/utility/format/format-number.class.js.map +1 -1
- package/dist/components/utility/icon/icon.class.d.ts +4 -0
- package/dist/components/utility/icon/icon.class.d.ts.map +1 -1
- package/dist/components/utility/icon/icon.class.js +34 -0
- package/dist/components/utility/icon/icon.class.js.map +1 -1
- package/dist/components/utility/json-viewer/json-viewer.class.d.ts +5 -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 +22 -6
- package/dist/components/utility/json-viewer/json-viewer.class.js.map +1 -1
- package/dist/components/utility/json-viewer/json-viewer.styles.js +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 +4 -1
- package/dist/components/utility/known-date/known-date.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 +31 -8
- package/dist/components/utility/mention-popover/mention-popover.class.js.map +1 -1
- package/dist/components/utility/poll-status/poll-status.class.d.ts +7 -0
- package/dist/components/utility/poll-status/poll-status.class.d.ts.map +1 -1
- package/dist/components/utility/poll-status/poll-status.class.js +36 -5
- 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 +22 -3
- package/dist/components/utility/random-content/random-content.class.js.map +1 -1
- package/dist/components/utility/tour/tour.class.d.ts +7 -6
- package/dist/components/utility/tour/tour.class.d.ts.map +1 -1
- package/dist/components/utility/tour/tour.class.js +62 -42
- package/dist/components/utility/tour/tour.class.js.map +1 -1
- package/dist/components/viewers/archive-viewer/archive-loader.d.ts.map +1 -1
- package/dist/components/viewers/archive-viewer/archive-loader.js +5 -1
- package/dist/components/viewers/archive-viewer/archive-loader.js.map +1 -1
- package/dist/components/viewers/archive-viewer/archive-viewer.class.d.ts +45 -4
- package/dist/components/viewers/archive-viewer/archive-viewer.class.d.ts.map +1 -1
- package/dist/components/viewers/archive-viewer/archive-viewer.class.js +257 -10
- package/dist/components/viewers/archive-viewer/archive-viewer.class.js.map +1 -1
- package/dist/components/viewers/archive-viewer/archive-viewer.styles.d.ts +3 -0
- package/dist/components/viewers/archive-viewer/archive-viewer.styles.d.ts.map +1 -1
- package/dist/components/viewers/archive-viewer/archive-viewer.styles.js +45 -0
- package/dist/components/viewers/archive-viewer/archive-viewer.styles.js.map +1 -1
- package/dist/components/viewers/calendar-viewer/calendar-loader.d.ts.map +1 -1
- package/dist/components/viewers/calendar-viewer/calendar-loader.js +6 -1
- package/dist/components/viewers/calendar-viewer/calendar-loader.js.map +1 -1
- package/dist/components/viewers/calendar-viewer/calendar-viewer.class.d.ts +1 -0
- package/dist/components/viewers/calendar-viewer/calendar-viewer.class.d.ts.map +1 -1
- package/dist/components/viewers/calendar-viewer/calendar-viewer.class.js +7 -1
- package/dist/components/viewers/calendar-viewer/calendar-viewer.class.js.map +1 -1
- package/dist/components/viewers/contact-viewer/contact-viewer.class.d.ts +1 -0
- package/dist/components/viewers/contact-viewer/contact-viewer.class.d.ts.map +1 -1
- package/dist/components/viewers/contact-viewer/contact-viewer.class.js +7 -1
- package/dist/components/viewers/contact-viewer/contact-viewer.class.js.map +1 -1
- package/dist/components/viewers/csv-viewer/csv-viewer.class.d.ts +1 -0
- package/dist/components/viewers/csv-viewer/csv-viewer.class.d.ts.map +1 -1
- package/dist/components/viewers/csv-viewer/csv-viewer.class.js +11 -3
- package/dist/components/viewers/csv-viewer/csv-viewer.class.js.map +1 -1
- package/dist/components/viewers/dataset-viewer/dataset-viewer.class.d.ts +1 -0
- package/dist/components/viewers/dataset-viewer/dataset-viewer.class.d.ts.map +1 -1
- package/dist/components/viewers/dataset-viewer/dataset-viewer.class.js +9 -2
- package/dist/components/viewers/dataset-viewer/dataset-viewer.class.js.map +1 -1
- package/dist/components/viewers/document-preview/document-preview.class.d.ts +2 -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 +53 -14
- package/dist/components/viewers/document-preview/document-preview.class.js.map +1 -1
- package/dist/components/viewers/document-viewer/document-viewer.class.d.ts +9 -3
- package/dist/components/viewers/document-viewer/document-viewer.class.d.ts.map +1 -1
- package/dist/components/viewers/document-viewer/document-viewer.class.js +47 -13
- package/dist/components/viewers/document-viewer/document-viewer.class.js.map +1 -1
- package/dist/components/viewers/docx-viewer/docx-loader.d.ts.map +1 -1
- package/dist/components/viewers/docx-viewer/docx-loader.js +7 -2
- package/dist/components/viewers/docx-viewer/docx-loader.js.map +1 -1
- package/dist/components/viewers/docx-viewer/docx-viewer.class.d.ts +23 -3
- package/dist/components/viewers/docx-viewer/docx-viewer.class.d.ts.map +1 -1
- package/dist/components/viewers/docx-viewer/docx-viewer.class.js +100 -9
- package/dist/components/viewers/docx-viewer/docx-viewer.class.js.map +1 -1
- package/dist/components/viewers/docx-viewer/docx-viewer.styles.d.ts.map +1 -1
- package/dist/components/viewers/docx-viewer/docx-viewer.styles.js +28 -0
- package/dist/components/viewers/docx-viewer/docx-viewer.styles.js.map +1 -1
- package/dist/components/viewers/ebook-viewer/ebook-loader.d.ts.map +1 -1
- package/dist/components/viewers/ebook-viewer/ebook-loader.js +2 -1
- package/dist/components/viewers/ebook-viewer/ebook-loader.js.map +1 -1
- package/dist/components/viewers/ebook-viewer/ebook-viewer-register.js +8 -1
- package/dist/components/viewers/ebook-viewer/ebook-viewer-register.js.map +1 -1
- package/dist/components/viewers/ebook-viewer/ebook-viewer.class.d.ts +10 -7
- package/dist/components/viewers/ebook-viewer/ebook-viewer.class.d.ts.map +1 -1
- package/dist/components/viewers/ebook-viewer/ebook-viewer.class.js +115 -32
- package/dist/components/viewers/ebook-viewer/ebook-viewer.class.js.map +1 -1
- package/dist/components/viewers/email-viewer/email-loader.d.ts.map +1 -1
- package/dist/components/viewers/email-viewer/email-loader.js +4 -2
- package/dist/components/viewers/email-viewer/email-loader.js.map +1 -1
- package/dist/components/viewers/email-viewer/email-viewer.class.d.ts +5 -3
- package/dist/components/viewers/email-viewer/email-viewer.class.d.ts.map +1 -1
- package/dist/components/viewers/email-viewer/email-viewer.class.js +50 -5
- package/dist/components/viewers/email-viewer/email-viewer.class.js.map +1 -1
- package/dist/components/viewers/email-viewer/email-viewer.styles.js +1 -1
- package/dist/components/viewers/geojson-view/geojson-view.class.d.ts +13 -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 +67 -8
- package/dist/components/viewers/geojson-view/geojson-view.class.js.map +1 -1
- package/dist/components/viewers/geojson-view/geojson-view.styles.d.ts +2 -0
- package/dist/components/viewers/geojson-view/geojson-view.styles.d.ts.map +1 -0
- package/dist/components/viewers/geojson-view/geojson-view.styles.js +22 -0
- package/dist/components/viewers/geojson-view/geojson-view.styles.js.map +1 -0
- package/dist/components/viewers/highlight-layer/highlight-layer.class.d.ts +3 -2
- package/dist/components/viewers/highlight-layer/highlight-layer.class.d.ts.map +1 -1
- package/dist/components/viewers/highlight-layer/highlight-layer.class.js +32 -13
- package/dist/components/viewers/highlight-layer/highlight-layer.class.js.map +1 -1
- package/dist/components/viewers/html-viewer/dompurify-loader.d.ts.map +1 -1
- package/dist/components/viewers/html-viewer/dompurify-loader.js +3 -1
- package/dist/components/viewers/html-viewer/dompurify-loader.js.map +1 -1
- package/dist/components/viewers/html-viewer/html-viewer.class.d.ts +3 -1
- package/dist/components/viewers/html-viewer/html-viewer.class.d.ts.map +1 -1
- package/dist/components/viewers/html-viewer/html-viewer.class.js +7 -2
- package/dist/components/viewers/html-viewer/html-viewer.class.js.map +1 -1
- package/dist/components/viewers/html-viewer/html-viewer.styles.d.ts.map +1 -1
- package/dist/components/viewers/html-viewer/html-viewer.styles.js +6 -1
- package/dist/components/viewers/html-viewer/html-viewer.styles.js.map +1 -1
- package/dist/components/viewers/include/include.class.d.ts +3 -3
- package/dist/components/viewers/include/include.class.d.ts.map +1 -1
- package/dist/components/viewers/include/include.class.js +13 -8
- package/dist/components/viewers/include/include.class.js.map +1 -1
- package/dist/components/viewers/notebook-viewer/dompurify-loader.d.ts.map +1 -1
- package/dist/components/viewers/notebook-viewer/dompurify-loader.js +5 -1
- package/dist/components/viewers/notebook-viewer/dompurify-loader.js.map +1 -1
- package/dist/components/viewers/notebook-viewer/notebook-viewer.class.d.ts +1 -0
- package/dist/components/viewers/notebook-viewer/notebook-viewer.class.d.ts.map +1 -1
- package/dist/components/viewers/notebook-viewer/notebook-viewer.class.js +17 -4
- package/dist/components/viewers/notebook-viewer/notebook-viewer.class.js.map +1 -1
- package/dist/components/viewers/page-rail/page-rail.class.d.ts +8 -0
- package/dist/components/viewers/page-rail/page-rail.class.d.ts.map +1 -1
- package/dist/components/viewers/page-rail/page-rail.class.js +91 -0
- package/dist/components/viewers/page-rail/page-rail.class.js.map +1 -1
- package/dist/components/viewers/pdf-viewer/pdf-loader.d.ts.map +1 -1
- package/dist/components/viewers/pdf-viewer/pdf-loader.js +13 -1
- package/dist/components/viewers/pdf-viewer/pdf-loader.js.map +1 -1
- package/dist/components/viewers/pdf-viewer/pdf-viewer.class.d.ts +12 -5
- package/dist/components/viewers/pdf-viewer/pdf-viewer.class.d.ts.map +1 -1
- package/dist/components/viewers/pdf-viewer/pdf-viewer.class.js +103 -34
- package/dist/components/viewers/pdf-viewer/pdf-viewer.class.js.map +1 -1
- package/dist/components/viewers/spreadsheet-viewer/spreadsheet-loader.d.ts.map +1 -1
- package/dist/components/viewers/spreadsheet-viewer/spreadsheet-loader.js +9 -1
- package/dist/components/viewers/spreadsheet-viewer/spreadsheet-loader.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 +4 -1
- package/dist/components/viewers/spreadsheet-viewer/spreadsheet-viewer.class.js.map +1 -1
- package/dist/components/viewers/svg-viewer/dompurify-loader.d.ts.map +1 -1
- package/dist/components/viewers/svg-viewer/dompurify-loader.js +5 -1
- package/dist/components/viewers/svg-viewer/dompurify-loader.js.map +1 -1
- package/dist/components/viewers/svg-viewer/svg-viewer.class.d.ts +2 -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 +50 -14
- package/dist/components/viewers/svg-viewer/svg-viewer.class.js.map +1 -1
- package/dist/components/viewers/xml-viewer/xml-viewer.class.d.ts +1 -0
- package/dist/components/viewers/xml-viewer/xml-viewer.class.d.ts.map +1 -1
- package/dist/components/viewers/xml-viewer/xml-viewer.class.js +15 -3
- package/dist/components/viewers/xml-viewer/xml-viewer.class.js.map +1 -1
- package/dist/internal/anchor-target.d.ts.map +1 -1
- package/dist/internal/anchor-target.js +16 -5
- package/dist/internal/anchor-target.js.map +1 -1
- package/dist/internal/localization.d.ts +1 -1
- package/dist/internal/localization.d.ts.map +1 -1
- package/dist/internal/localization.js +19 -0
- package/dist/internal/localization.js.map +1 -1
- package/dist/internal/map-canvas-ready.d.ts +7 -0
- package/dist/internal/map-canvas-ready.d.ts.map +1 -0
- package/dist/internal/map-canvas-ready.js +13 -0
- package/dist/internal/map-canvas-ready.js.map +1 -0
- package/dist/internal/numbers.d.ts +14 -0
- package/dist/internal/numbers.d.ts.map +1 -1
- package/dist/internal/numbers.js +72 -0
- package/dist/internal/numbers.js.map +1 -1
- package/dist/internal/safe-css.d.ts +17 -0
- package/dist/internal/safe-css.d.ts.map +1 -1
- package/dist/internal/safe-css.js +64 -9
- package/dist/internal/safe-css.js.map +1 -1
- package/dist/lyra.d.ts +1 -1
- package/dist/lyra.d.ts.map +1 -1
- package/dist/lyra.js.map +1 -1
- package/llms/components/lr-animated-image.md +2 -0
- package/llms/components/lr-animation.md +1 -1
- package/llms/components/lr-approval-queue.md +2 -0
- package/llms/components/lr-archive-viewer.md +20 -5
- package/llms/components/lr-attachment-trigger.md +8 -6
- package/llms/components/lr-av-player.md +11 -3
- package/llms/components/lr-avatar-group.md +3 -0
- package/llms/components/lr-avatar.md +6 -5
- package/llms/components/lr-bar-chart.md +10 -8
- package/llms/components/lr-box-plot.md +14 -6
- package/llms/components/lr-bubble-chart.md +10 -8
- package/llms/components/lr-calendar-viewer.md +3 -2
- package/llms/components/lr-calendar.md +4 -4
- package/llms/components/lr-carousel.md +2 -0
- package/llms/components/lr-chart.md +57 -23
- package/llms/components/lr-chip-group.md +3 -1
- package/llms/components/lr-chip.md +3 -1
- package/llms/components/lr-citation-badge.md +3 -2
- package/llms/components/lr-code-editor.md +1 -1
- package/llms/components/lr-combobox.md +6 -2
- package/llms/components/lr-compare-panel.md +8 -2
- package/llms/components/lr-contact-viewer.md +3 -2
- package/llms/components/lr-copy-button.md +2 -0
- package/llms/components/lr-csv-viewer.md +3 -3
- package/llms/components/lr-dashboard-grid.md +2 -1
- package/llms/components/lr-dataset-viewer.md +4 -3
- package/llms/components/lr-dialog.md +19 -15
- package/llms/components/lr-diff-view.md +1 -0
- package/llms/components/lr-divider.md +2 -1
- package/llms/components/lr-document-preview.md +4 -2
- package/llms/components/lr-document-viewer.md +8 -2
- package/llms/components/lr-docx-viewer.md +12 -6
- package/llms/components/lr-doughnut-chart.md +10 -8
- package/llms/components/lr-dropdown-item.md +3 -1
- package/llms/components/lr-ebook-viewer.md +16 -6
- package/llms/components/lr-email-viewer.md +3 -2
- package/llms/components/lr-embedding-explorer.md +2 -1
- package/llms/components/lr-env-list.md +2 -1
- package/llms/components/lr-eval-result.md +2 -0
- package/llms/components/lr-export-button.md +5 -1
- package/llms/components/lr-file-icon.md +3 -1
- package/llms/components/lr-file-input.md +8 -4
- package/llms/components/lr-filter-bar.md +45 -0
- package/llms/components/lr-flow-minimap.md +8 -2
- package/llms/components/lr-flow-node.md +8 -2
- package/llms/components/lr-flow-run-overlay.md +10 -3
- package/llms/components/lr-format-bytes.md +2 -1
- package/llms/components/lr-format-number.md +3 -0
- package/llms/components/lr-gauge.md +4 -0
- package/llms/components/lr-geojson-view.md +10 -3
- package/llms/components/lr-graph-legend.md +5 -3
- package/llms/components/lr-graph.md +20 -12
- package/llms/components/lr-grounding-summary.md +2 -1
- package/llms/components/lr-heatmap.md +8 -5
- package/llms/components/lr-highlight-layer.md +2 -1
- package/llms/components/lr-histogram.md +12 -5
- package/llms/components/lr-html-viewer.md +3 -2
- package/llms/components/lr-icon.md +3 -1
- package/llms/components/lr-image-viewer.md +5 -0
- package/llms/components/lr-include.md +4 -3
- package/llms/components/lr-ingestion-queue.md +2 -1
- package/llms/components/lr-json-viewer.md +10 -3
- package/llms/components/lr-kbd.md +3 -2
- package/llms/components/lr-knowledge-base-admin.md +3 -1
- package/llms/components/lr-knowledge-graph-explorer.md +2 -1
- package/llms/components/lr-known-date.md +2 -1
- package/llms/components/lr-lightbox.md +5 -4
- package/llms/components/lr-line-chart.md +10 -8
- package/llms/components/lr-lite-chart.md +46 -32
- package/llms/components/lr-map.md +10 -5
- package/llms/components/lr-mcp-app.md +6 -0
- package/llms/components/lr-media-card.md +3 -1
- package/llms/components/lr-mention-popover.md +5 -2
- package/llms/components/lr-menu-item.md +3 -1
- package/llms/components/lr-menu.md +3 -1
- package/llms/components/lr-message-feedback.md +2 -1
- package/llms/components/lr-message-parts.md +5 -1
- package/llms/components/lr-model-select.md +5 -1
- package/llms/components/lr-notebook-viewer.md +7 -3
- package/llms/components/lr-option.md +6 -2
- package/llms/components/lr-page-rail.md +5 -0
- package/llms/components/lr-pdf-viewer.md +10 -3
- package/llms/components/lr-pie-chart.md +10 -8
- package/llms/components/lr-polar-area-chart.md +10 -8
- package/llms/components/lr-poll-status.md +11 -6
- package/llms/components/lr-popover.md +2 -1
- package/llms/components/lr-progress-bar.md +2 -1
- package/llms/components/lr-progress-ring.md +2 -1
- package/llms/components/lr-prompt-studio.md +4 -0
- package/llms/components/lr-qr-code.md +7 -5
- package/llms/components/lr-radar-chart.md +10 -8
- package/llms/components/lr-radio-group.md +4 -1
- package/llms/components/lr-radio.md +6 -2
- package/llms/components/lr-random-content.md +2 -0
- package/llms/components/lr-rating.md +7 -1
- package/llms/components/lr-retrieval-search.md +2 -0
- package/llms/components/lr-scatter-chart.md +10 -8
- package/llms/components/lr-schema-viewer.md +9 -4
- package/llms/components/lr-segmented.md +2 -0
- package/llms/components/lr-selection-toolbar.md +2 -0
- package/llms/components/lr-sequence-strip.md +10 -8
- package/llms/components/lr-source-card.md +2 -1
- package/llms/components/lr-source-list.md +2 -1
- package/llms/components/lr-source-picker.md +4 -2
- package/llms/components/lr-span-waterfall.md +13 -1
- package/llms/components/lr-spinner.md +3 -1
- package/llms/components/lr-stack-trace.md +6 -2
- package/llms/components/lr-stat.md +7 -5
- package/llms/components/lr-subagent-panel.md +4 -1
- package/llms/components/lr-svg-viewer.md +5 -2
- package/llms/components/lr-swatch-picker.md +6 -4
- package/llms/components/lr-switch.md +2 -1
- package/llms/components/lr-task-list.md +7 -2
- package/llms/components/lr-terminal.md +13 -1
- package/llms/components/lr-test-results.md +25 -7
- package/llms/components/lr-textarea.md +1 -1
- package/llms/components/lr-thinking-panel.md +4 -2
- package/llms/components/lr-timeline-item.md +2 -1
- package/llms/components/lr-timeline.md +2 -1
- package/llms/components/lr-toast-item.md +8 -2
- package/llms/components/lr-toast.md +8 -2
- package/llms/components/lr-token-input.md +7 -5
- package/llms/components/lr-tool-approval-dialog.md +6 -7
- package/llms/components/lr-tool-param-form.md +21 -9
- package/llms/components/lr-tool-select-dialog.md +11 -7
- package/llms/components/lr-tool-timeline.md +6 -1
- package/llms/components/lr-tooltip.md +12 -1
- package/llms/components/lr-tour.md +19 -16
- package/llms/components/lr-trace-tree.md +3 -0
- package/llms/components/lr-tree-node.md +12 -3
- package/llms/components/lr-tree.md +11 -2
- package/llms/components/lr-widget.md +5 -3
- package/llms/components/lr-word-cloud.md +7 -4
- package/llms/components/lr-xml-viewer.md +4 -2
- package/llms/index.md +1 -1
- package/llms/peers.md +1 -1
- package/llms-full.txt +836 -336
- package/package.json +10 -5
- package/vscode-css-data.json +429 -2
- package/vscode-html-data.json +126 -123
- package/web-types.json +379 -137
package/llms-full.txt
CHANGED
|
@@ -727,6 +727,8 @@ number; accessibleLabel?: string; data?: unknown; dotColor?: string; group?: str
|
|
|
727
727
|
boolean }` — the row shape used by the async `source` path. `icon` renders as a decorative leading
|
|
728
728
|
visual, `badge` as trailing metadata, `accessibleLabel` can provide richer spoken text than the
|
|
729
729
|
visible label, and `data` is retained without being rendered for retrieval through `selectedRows`.
|
|
730
|
+
`dotColor` accepts a valid CSS `color`; invalid values, declaration-breaking input, and `url()`
|
|
731
|
+
render a transparent dot.
|
|
730
732
|
The light-DOM `<lr-option>` path normalizes its supported label/sub/dot/group fields to the same
|
|
731
733
|
internal row model.
|
|
732
734
|
|
|
@@ -749,7 +751,6 @@ selection. It is the supported way to read that text; reaching into the shadow r
|
|
|
749
751
|
carrying different strings. It fires for user input only: picking a row, the clear button,
|
|
750
752
|
`form.reset()`, dismissing the listbox, a programmatic `value` write, and `setRangeText()` all blank
|
|
751
753
|
the filter silently, mirroring how `<lr-input>`'s `lr-input` only reports user edits.
|
|
752
|
-
|
|
753
754
|
`lr-show` and `lr-hide` report listbox visibility transitions.
|
|
754
755
|
The internal input's `focus` and `blur` are re-dispatched as bubbling, composed host events.
|
|
755
756
|
|
|
@@ -852,9 +853,12 @@ box visibly (nothing is clipped or made unreachable), so leave it unset there.
|
|
|
852
853
|
visible label)
|
|
853
854
|
- `sub: string = ''` (optional secondary line rendered under the label, e.g. a status/date summary)
|
|
854
855
|
- `dotColor: string = ''` (attribute `dot-color` — optional CSS color for a small leading status
|
|
855
|
-
dot,
|
|
856
|
+
dot; invalid values, declaration-breaking input, and `url()` render the dot transparently)
|
|
856
857
|
- `label` is a **read-only getter**: explicit `label` attribute wins, else trimmed `textContent`.
|
|
857
858
|
|
|
859
|
+
**Events:** `lr-option-change` — bubbles when the option's label or selectable data changes so
|
|
860
|
+
its parent `lr-combobox` or `lr-select` can refresh its normalized option rows.
|
|
861
|
+
|
|
858
862
|
```html
|
|
859
863
|
<lr-combobox id="cb" label="Country" placeholder="Search…" with-clear>
|
|
860
864
|
<lr-option value="fr">France</lr-option>
|
|
@@ -1319,7 +1323,7 @@ submission/validation/reset via `name`/`value`/`disabled`/`required`/`checkValid
|
|
|
1319
1323
|
| --- | --- | --- | --- | --- |
|
|
1320
1324
|
| `value` | `value` | `string` | `''` | The current text value. |
|
|
1321
1325
|
| `rows` | `rows` | `number` | `3` | Visible text rows. |
|
|
1322
|
-
| `resize` | `resize` | `'none' \| 'vertical' \| 'both' \| 'auto'` | `'vertical'` | Native CSS `resize` behavior, plus `'auto'` (`ResizeObserver`-driven grow-to-content, no manual handle). |
|
|
1326
|
+
| `resize` | `resize` | `'none' \| 'vertical' \| 'both' \| 'auto'` | `'vertical'` | Native CSS `resize` behavior, plus `'auto'` (`ResizeObserver`-driven grow-to-content, no manual handle). An invalid runtime value falls back to `'vertical'`; `'auto'` maps native CSS resize to `none`. |
|
|
1323
1327
|
| `placeholder` | `placeholder` | `string` | `''` | Placeholder text. |
|
|
1324
1328
|
| `readonly` | `readonly` | `boolean` | `false` | Native read-only behavior: prevents user edits while preserving focus, selection/copy, form submission, and silent programmatic editing methods. Reflected. |
|
|
1325
1329
|
| `label` | `label` | `string` | `''` | Visible label text. Unset: no label chrome renders. |
|
|
@@ -2217,10 +2221,12 @@ named colors, the shape apps otherwise hand-roll as a row of round accent-color
|
|
|
2217
2221
|
|
|
2218
2222
|
**Properties:**
|
|
2219
2223
|
- `options: SwatchOption[] = []` (attribute: false) — `SwatchOption { value: string; color: string;
|
|
2220
|
-
label: string; icon?: unknown; gemstone?: GemstoneKey }`;
|
|
2221
|
-
|
|
2222
|
-
|
|
2223
|
-
|
|
2224
|
+
label: string; icon?: unknown; gemstone?: GemstoneKey }`; a valid CSS `color` is used as the
|
|
2225
|
+
swatch fill, while invalid values, declaration-breaking input, and `url()` are ignored (and are
|
|
2226
|
+
never interpolated into a gemstone SVG). `label` is each swatch's accessible name and `title`.
|
|
2227
|
+
`icon` is an optional custom shape rendered *instead of* the plain filled circle; `gemstone`
|
|
2228
|
+
selects the canonical faceted glyph when `mode="gemstone"`. An explicit `icon` wins over
|
|
2229
|
+
`gemstone`.
|
|
2224
2230
|
- `value: string | null = null` — the currently selected option's `value` (controlled); `null`
|
|
2225
2231
|
leaves nothing selected while keeping the first swatch tabbable.
|
|
2226
2232
|
- `size: '2xs' | 'xs' | 's' | 'm' | 'l' | 'xl' = 'm'` (reflected — scales the swatch hit-area and
|
|
@@ -2444,7 +2450,8 @@ control's visible, clickable label (same as `<lr-checkbox>`).
|
|
|
2444
2450
|
slotted `error` content). Unset: no error chrome renders.
|
|
2445
2451
|
|
|
2446
2452
|
**Events:** `lr-change` (`detail: { checked: boolean }`) — fired on a user toggle (click or
|
|
2447
|
-
Space/Enter); not fired for a programmatic `.checked` assignment.
|
|
2453
|
+
Space/Enter); not fired for a programmatic `.checked` assignment. The internal control's native
|
|
2454
|
+
`focus` and `blur` are re-dispatched as bubbling, composed host events.
|
|
2448
2455
|
|
|
2449
2456
|
**Methods:** `focus(options?)`, `blur()`, and `click()` forward to the internal switch control.
|
|
2450
2457
|
|
|
@@ -2592,11 +2599,15 @@ A form-associated single-choice control. Use it alone or inside `lr-radio-group`
|
|
|
2592
2599
|
|
|
2593
2600
|
**Properties:** `checked`, `disabled`, `required`, `name`, and `value` (all reflected where
|
|
2594
2601
|
applicable). A selected radio submits its value through `ElementInternals`.
|
|
2602
|
+
An empty `name` is canonicalized to an omitted attribute rather than reappearing as `name=""`.
|
|
2595
2603
|
`effectiveRequired` exposes the required state inherited from a containing radio group. `focus()`,
|
|
2596
2604
|
`blur()`, and `click()` forward to the internal radio control.
|
|
2597
2605
|
|
|
2598
|
-
**Events:** native-style composed `input` and `change
|
|
2599
|
-
`{ checked, value }`.
|
|
2606
|
+
**Events:** native-style composed `input` and `change`. A standalone radio also emits `lr-change`
|
|
2607
|
+
with `{ checked, value }`. An owned radio suppresses that child alias at its source; its group emits
|
|
2608
|
+
the sole aggregate `lr-change` described below, so capture and bubble listeners cannot observe two
|
|
2609
|
+
differently shaped aliases. The internal control's native `focus` and `blur` are re-dispatched as
|
|
2610
|
+
bubbling, composed host events.
|
|
2600
2611
|
|
|
2601
2612
|
**Slots:** default label content.
|
|
2602
2613
|
|
|
@@ -2628,7 +2639,10 @@ focus; arrow navigation selects the next enabled radio.
|
|
|
2628
2639
|
**Properties:** `label`, `hint`, `errorText` (`error-text`), `name`, `required`, `disabled`, and
|
|
2629
2640
|
`aria-label` (through `accessibleLabel`).
|
|
2630
2641
|
|
|
2631
|
-
**Events:** `lr-change` with `{ value, radio }
|
|
2642
|
+
**Events:** exactly one group-owned `lr-change` with `{ value, radio }` per owned selection,
|
|
2643
|
+
including keyboard activation. The selected child does not emit its standalone alias. Ownership is
|
|
2644
|
+
resolved synchronously, so immediate removal restores standalone behavior and immediate reparenting
|
|
2645
|
+
routes the event to the new group without waiting for a mutation-observer turn.
|
|
2632
2646
|
|
|
2633
2647
|
**Slots:** default radios, `label`, `hint`, `error`.
|
|
2634
2648
|
|
|
@@ -2673,11 +2687,13 @@ the last token. `value` is a `string[]` and repeated values are submitted under
|
|
|
2673
2687
|
|
|
2674
2688
|
**Properties:** `value`, `label`, `hint`, `errorText` (`error-text`), `placeholder`, `name`,
|
|
2675
2689
|
`required`, `disabled`, `accessibleLabel` (attribute `aria-label` — forwarded to the internal text
|
|
2676
|
-
input), `
|
|
2677
|
-
`
|
|
2678
|
-
|
|
2679
|
-
`
|
|
2680
|
-
|
|
2690
|
+
input), `spellcheck: boolean = true`, `autocapitalize: string = ''`, and `autoCorrect: string = ''`
|
|
2691
|
+
(attribute `autocorrect`) — all three native text-entry hints are forwarded to both the draft input
|
|
2692
|
+
and the inline token editor — `size: '2xs' | 'xs' | 's' | 'm' | 'l' | 'xl' = 'm'` (reflected —
|
|
2693
|
+
same scale as `lr-input`'s `size`, scaling the input-wrapper's row height and text size across six
|
|
2694
|
+
tiers; the remove button's hit area stays fixed at `40px` across all sizes), `allowDuplicates`
|
|
2695
|
+
(`allow-duplicates`, default `false`), `editable` (reflected, default `false` — see below), and
|
|
2696
|
+
`delimiter: string | null` (default `','` — see below).
|
|
2681
2697
|
**Slots:** `label`, `hint`, `error`.
|
|
2682
2698
|
**Events:** native-style `input` and `change` (`detail: { value: string[] }`), bubbling/composed
|
|
2683
2699
|
`focus` and `blur` re-dispatched from the internal text input, `lr-add` (`detail: { value }`),
|
|
@@ -2753,7 +2769,7 @@ optional line-number gutter. No syntax highlighting: `language` is metadata only
|
|
|
2753
2769
|
`placeholder: string = ''`
|
|
2754
2770
|
- `readonly: boolean = false` (reflected) — also disables Tab indentation
|
|
2755
2771
|
- `resize: 'none' | 'both' | 'horizontal' | 'vertical' = 'both'` — written as the textarea's inline
|
|
2756
|
-
`resize`
|
|
2772
|
+
`resize`; an invalid runtime value falls back to `'both'`
|
|
2757
2773
|
- `wrap: 'off' | 'soft' | 'hard' = 'off'` — native textarea wrapping; `'off'` (the default) makes
|
|
2758
2774
|
the `editor` part the single horizontal scroll viewport
|
|
2759
2775
|
- `spellcheck: boolean = false` — off by default for code, and parsed with a string-aware converter
|
|
@@ -3183,10 +3199,12 @@ transparent)`) — text/background of `[part="trend"]` when its polarity (per `g
|
|
|
3183
3199
|
"good"; `--lr-stat-trend-bad-color` (default `var(--lr-color-danger)`) and `--lr-stat-trend-bad-bg`
|
|
3184
3200
|
(default `color-mix(in srgb, var(--lr-color-danger) 8%, transparent)`) — the "bad"-polarity
|
|
3185
3201
|
counterparts. All four are independent of the headline value's `variant="success"`/`"danger"` tint,
|
|
3186
|
-
|
|
3187
|
-
|
|
3188
|
-
|
|
3189
|
-
|
|
3202
|
+
so retinting the trend pill doesn't also recolor the value, and vice versa.
|
|
3203
|
+
`--lr-stat-value-success-color` (default `var(--lr-color-success)`),
|
|
3204
|
+
`--lr-stat-value-warning-color` (default `var(--lr-color-warning)`), and
|
|
3205
|
+
`--lr-stat-value-danger-color` (default `var(--lr-color-danger)`) independently color the headline
|
|
3206
|
+
value for each non-neutral `variant`. `--lr-color-brand` still drives `emphasis`'s accent edge and
|
|
3207
|
+
value tint.
|
|
3190
3208
|
|
|
3191
3209
|
**Optional peer deps:** none.
|
|
3192
3210
|
|
|
@@ -3718,6 +3736,10 @@ Dependency-free SVG radial, full-circle ring, or linear meter (no charting libra
|
|
|
3718
3736
|
```
|
|
3719
3737
|
|
|
3720
3738
|
**Known gotchas:**
|
|
3739
|
+
- SVG text cannot wrap. When a caller-supplied visible `label` or `valueLabel` exceeds the
|
|
3740
|
+
single-line capacity, the component applies SVG `textLength` fitting so the complete string stays
|
|
3741
|
+
inside the fixed radial/ring viewBox or its half of the linear viewBox; the host's accessible
|
|
3742
|
+
label and `aria-valuetext` retain the original text.
|
|
3721
3743
|
- setting `valueLabel` (e.g. `"72°F"`) now also sets `aria-valuetext` on the host (in addition to
|
|
3722
3744
|
changing the visible SVG text), so a screen reader announces your formatted string instead of the
|
|
3723
3745
|
raw `aria-valuenow` number; the SVG `<text part="value">`/`<text part="label">` elements are
|
|
@@ -3755,8 +3777,9 @@ visually-hidden `[part="live-region"]` (`role="status" aria-live="polite"`) anno
|
|
|
3755
3777
|
- `words: WordCloudWord[] = []` (attribute: false) — `{ text: string, weight: number, color?:
|
|
3756
3778
|
string, group?: string }`; `weight` drives font size (a negative/non-finite `weight` is clamped to
|
|
3757
3779
|
`0` for sizing purposes only — the original value is still echoed verbatim in `lr-word-click`'s
|
|
3758
|
-
`detail`), `color` overrides the palette for that word
|
|
3759
|
-
|
|
3780
|
+
`detail`), a valid CSS `color` overrides the palette for that word (invalid values,
|
|
3781
|
+
declaration-breaking input, and `url()` fall back to the palette), and `group` shares one palette
|
|
3782
|
+
color across every word with the same `group` value
|
|
3760
3783
|
- `minFontSize: number = 12` (attribute `min-font-size`) — px, applied to the lowest-weight word;
|
|
3761
3784
|
layout clamps positive finite values to at most 512px and uses 1px for invalid/non-positive values
|
|
3762
3785
|
- `maxFontSize: number = 48` (attribute `max-font-size`) — px, applied to the highest-weight word;
|
|
@@ -3766,10 +3789,12 @@ visually-hidden `[part="live-region"]` (`role="status" aria-live="polite"`) anno
|
|
|
3766
3789
|
- `orientations: 'horizontal'|'mixed' = 'horizontal'` — `mixed` lets ~25% of words render rotated
|
|
3767
3790
|
90° for denser packing
|
|
3768
3791
|
- `palette?: string[]` (attribute: false) — custom categorical colors, cycled by word index (or by
|
|
3769
|
-
`group`);
|
|
3792
|
+
`group`); invalid CSS colors, declaration-breaking input, and `url()` entries are skipped, and an
|
|
3793
|
+
all-invalid palette defaults to the `--lr-word-cloud-color-1..8` tokens
|
|
3770
3794
|
- `legend: WordCloudLegendItem[] = []` (attribute: false) — optional named `{ label, color }`
|
|
3771
3795
|
entries for explaining explicit `words[].color`/group color overrides; when omitted, the
|
|
3772
|
-
component derives entries from grouped and explicitly colored words
|
|
3796
|
+
component derives entries from grouped and explicitly colored words. An invalid legend color
|
|
3797
|
+
renders a transparent swatch.
|
|
3773
3798
|
- `showLegend: boolean = false` (attribute `show-legend`, reflected) — renders the supplied or
|
|
3774
3799
|
derived legend below the cloud; the color key is an accessible list and does not change word
|
|
3775
3800
|
activation or palette selection
|
|
@@ -3963,16 +3988,17 @@ focus; it continues to emit `lr-cell-click` and leaves selection state consumer-
|
|
|
3963
3988
|
exact ramp steps instead of linearly interpolating between `--lr-heatmap-scale-lo`/`-hi`;
|
|
3964
3989
|
governs both `mode`s and both `scale` values, discretizing whichever scale would otherwise
|
|
3965
3990
|
interpolate continuously into `colorSteps.length` buckets instead. Unset (the default, or fewer
|
|
3966
|
-
than 2 entries) keeps today's 2-endpoint interpolation exactly.
|
|
3991
|
+
than 2 entries) keeps today's 2-endpoint interpolation exactly. Invalid colors use the canvas
|
|
3992
|
+
fallback color and prevent the custom legend gradient from being assigned.
|
|
3967
3993
|
- `legendStops?: HeatmapLegendStop[]` (attribute: false) — `HeatmapLegendStop { value: number;
|
|
3968
3994
|
color?: string; label?: string }`: a discrete legend key rendered **instead of** the
|
|
3969
3995
|
`--lr-heatmap-scale-lo`/`-hi` gradient bar and its `[part="legend-lo"]`/`[part="legend-hi"]`
|
|
3970
3996
|
endpoint labels — one `[part="legend-stop"]` per entry, in array order, each a
|
|
3971
3997
|
`[part="legend-swatch"]` filled with that entry's `color` plus a `[part="legend-stop-label"]`.
|
|
3972
|
-
`color` is optional: omit it
|
|
3973
|
-
its `[part="legend-stop-label"]` alone with no
|
|
3974
|
-
so a leading "0" or trailing "more" caption
|
|
3975
|
-
swatch box in the row.
|
|
3998
|
+
`color` is optional: omit it, pass an empty string, or pass an invalid CSS color for a
|
|
3999
|
+
**caption-only** stop, which renders its `[part="legend-stop-label"]` alone with no
|
|
4000
|
+
`[part="legend-swatch"]` element in the DOM at all — so a leading "0" or trailing "more" caption
|
|
4001
|
+
around a run of colored stops doesn't leave an empty swatch box in the row.
|
|
3976
4002
|
A stop's label defaults to the component's own locale-aware numeric formatting of `value`, so an
|
|
3977
4003
|
explicit `label` is only needed when the number isn't the right caption ("none", "≥ 90%"). Exists
|
|
3978
4004
|
for the consumer who supplies `cellColor`: because that callback overrides a cell's color
|
|
@@ -4059,6 +4085,8 @@ same color as `--lr-heatmap-focus-ring-color`).
|
|
|
4059
4085
|
```
|
|
4060
4086
|
|
|
4061
4087
|
**Known gotchas:**
|
|
4088
|
+
- The legend is a wrapping flex row. Long unbroken stop labels, the trailing `valueLabel`, and
|
|
4089
|
+
annotation labels wrap within the host instead of forcing the heatmap wider than its allocation.
|
|
4062
4090
|
- `legendStops` *replaces* the lo/hi gradient bar rather than adding to it: supplying it removes
|
|
4063
4091
|
`[part="legend-lo"]`, `[part="legend-hi"]` and the bar from the DOM, so a stylesheet targeting
|
|
4064
4092
|
those parts silently stops applying. It is also presentation-only — it never feeds back into the
|
|
@@ -4103,11 +4131,12 @@ is a labeled `role="list"` and each cell a named `role="listitem"` (`aria-label`
|
|
|
4103
4131
|
`aria-setsize`), so the sequence is walkable item by item rather than collapsed into one summary
|
|
4104
4132
|
string. Exactly one cell is tabbable at a time (roving `tabindex`); ArrowLeft/ArrowRight and
|
|
4105
4133
|
Home/End move the stop — direction-aware, so the arrows swap under RTL — and focusing a cell shows
|
|
4106
|
-
the same `[part="tooltip"]` detail that pointer hover does
|
|
4107
|
-
|
|
4108
|
-
|
|
4109
|
-
|
|
4110
|
-
|
|
4134
|
+
the same `[part="tooltip"]` detail that pointer hover does. The tooltip is visual only and is not
|
|
4135
|
+
wired through `aria-describedby`, because the cell's own `aria-label` already exposes the identical
|
|
4136
|
+
text and describing it again would duplicate the announcement. Cells are inspectable, not
|
|
4137
|
+
actionable: there is no per-cell click/activation event, so unlike `<lr-heatmap>` there is nothing
|
|
4138
|
+
to fire on Enter/Space. Setting `showLegend` additionally renders a static `[part="legend"]` key
|
|
4139
|
+
below the strip, so the color-to-category mapping is readable without visiting each cell.
|
|
4111
4140
|
|
|
4112
4141
|
**Properties:**
|
|
4113
4142
|
- `items: SequenceStripItem[] = []` (attribute: false) — `{ id, category, marker?, label? }`;
|
|
@@ -4117,9 +4146,10 @@ visiting each cell.
|
|
|
4117
4146
|
`key`) when unset — it is not read by `[part="base"]`'s auto-generated `aria-label`, which
|
|
4118
4147
|
summarizes by category/count only
|
|
4119
4148
|
- `categories: SequenceStripCategory[] = []` (attribute: false) — `{ key, color, label? }`; `color`
|
|
4120
|
-
is the cell background for every item whose `category` matches `key
|
|
4121
|
-
|
|
4122
|
-
and as the hover-tooltip fallback text, falling
|
|
4149
|
+
is the cell background for every item whose `category` matches `key`; invalid CSS colors,
|
|
4150
|
+
declaration-breaking input, `url()`, and unmatched categories render `transparent`. `label` is
|
|
4151
|
+
used in the auto-generated `aria-label` summary and as the hover-tooltip fallback text, falling
|
|
4152
|
+
back to `key` itself when unset
|
|
4123
4153
|
- `orientation: 'horizontal' = 'horizontal'` (reflected) — only `'horizontal'` is supported today;
|
|
4124
4154
|
vertical is plausible future scope, not built speculatively without a motivating case
|
|
4125
4155
|
- `accessibleLabel?: string` (attribute `accessible-label`) — overrides the auto-generated
|
|
@@ -4234,6 +4264,8 @@ moves focus to its parent. Home/End jump to the first/last visible node. Enter/S
|
|
|
4234
4264
|
node within its own parent's child list instead of navigating. Ctrl/Cmd rather than Alt: Alt+Arrow is
|
|
4235
4265
|
browser back/forward on Windows and Linux. ArrowUp/ArrowDown are not direction-sensitive, so this
|
|
4236
4266
|
binding is deliberately **not** RTL-swapped — "down" always means later in the sibling list.
|
|
4267
|
+
If a same-id data refresh disables an expanded branch, that reused branch collapses immediately;
|
|
4268
|
+
enabled descendants are never left visibly stranded outside this navigation walk.
|
|
4237
4269
|
|
|
4238
4270
|
**Methods:** `expandAll()`, `collapseAll()` (both recursive, properly sequenced around Lit's render
|
|
4239
4271
|
cycle).
|
|
@@ -4299,8 +4331,15 @@ is applied to the legacy singular badge and to every `badges` chip; additive chi
|
|
|
4299
4331
|
groups the primary label and optional wrapping secondary description while preserving one
|
|
4300
4332
|
interactive treeitem per row.
|
|
4301
4333
|
|
|
4302
|
-
**Themeable custom properties:** `--lr-tree-depth` (internal, set inline per row for
|
|
4303
|
-
|
|
4334
|
+
**Themeable custom properties:** `--lr-tree-depth` (internal, set inline per row for indentation);
|
|
4335
|
+
`--lr-tree-selected-color` and `--lr-tree-selected-bg` for the selected row; and paired
|
|
4336
|
+
`--lr-tree-badge-{neutral|brand|success|warning|danger}-color` /
|
|
4337
|
+
`--lr-tree-badge-{neutral|brand|success|warning|danger}-bg` properties for each badge tone. Each
|
|
4338
|
+
badge property falls back to its corresponding shared semantic token. The expanded names are
|
|
4339
|
+
`--lr-tree-badge-neutral-color`, `--lr-tree-badge-neutral-bg`, `--lr-tree-badge-brand-color`,
|
|
4340
|
+
`--lr-tree-badge-brand-bg`, `--lr-tree-badge-success-color`, `--lr-tree-badge-success-bg`,
|
|
4341
|
+
`--lr-tree-badge-warning-color`, `--lr-tree-badge-warning-bg`, `--lr-tree-badge-danger-color`,
|
|
4342
|
+
and `--lr-tree-badge-danger-bg`.
|
|
4304
4343
|
|
|
4305
4344
|
**Optional peer deps:** none.
|
|
4306
4345
|
|
|
@@ -4520,7 +4559,13 @@ hijacking the library-wide `--lr-color-brand` token and repainting everything el
|
|
|
4520
4559
|
`status="running"`, independent of `--lr-flow-node-selected-border` so a consumer can retint just one
|
|
4521
4560
|
of the two states without the other following along — and `--lr-flow-node-running-glow` (default
|
|
4522
4561
|
`var(--lr-color-brand-quiet)`) — the box-shadow color of the running-state ring around the card, and
|
|
4523
|
-
the pulse keyframes' peak color.
|
|
4562
|
+
the pulse keyframes' peak color. The status dot has independent
|
|
4563
|
+
`--lr-flow-node-status-{pending|running|success|error|denied}-color` hooks, defaulting respectively
|
|
4564
|
+
to the shared border-strong, brand, success, danger, and warning tokens;
|
|
4565
|
+
`--lr-flow-node-status-color` controls the no-status fallback. The expanded status names are
|
|
4566
|
+
`--lr-flow-node-status-pending-color`, `--lr-flow-node-status-running-color`,
|
|
4567
|
+
`--lr-flow-node-status-success-color`, `--lr-flow-node-status-error-color`, and
|
|
4568
|
+
`--lr-flow-node-status-denied-color`.
|
|
4524
4569
|
|
|
4525
4570
|
**Optional peer deps:** none.
|
|
4526
4571
|
|
|
@@ -4563,7 +4608,13 @@ disagree.
|
|
|
4563
4608
|
draggable, focusable view rectangle).
|
|
4564
4609
|
|
|
4565
4610
|
**Themeable custom properties:** `--lr-flow-minimap-inline-size` (default `12rem`),
|
|
4566
|
-
`--lr-flow-minimap-block-size` (default `8rem`)
|
|
4611
|
+
`--lr-flow-minimap-block-size` (default `8rem`), `--lr-flow-minimap-node-color` for a node without
|
|
4612
|
+
an execution status, and `--lr-flow-minimap-node-{pending|running|success|error|denied}-color` for
|
|
4613
|
+
each status-specific rectangle. The status hooks default to the shared border-strong, brand,
|
|
4614
|
+
success, danger, and warning colors respectively. Their expanded names are
|
|
4615
|
+
`--lr-flow-minimap-node-pending-color`, `--lr-flow-minimap-node-running-color`,
|
|
4616
|
+
`--lr-flow-minimap-node-success-color`, `--lr-flow-minimap-node-error-color`, and
|
|
4617
|
+
`--lr-flow-minimap-node-denied-color`.
|
|
4567
4618
|
|
|
4568
4619
|
**Optional peer deps:** none.
|
|
4569
4620
|
|
|
@@ -4638,7 +4689,8 @@ hit area, unchanged by `appearance`), `--lr-shadow`, `--lr-color-surface`, `--lr
|
|
|
4638
4689
|
|
|
4639
4690
|
Execution-state presentation for a `lr-flow-canvas`: pushes a `FlowRunDecorations` map into the
|
|
4640
4691
|
resolved canvas (the canvas itself renders the node/edge paint) and renders a compact run-summary
|
|
4641
|
-
strip.
|
|
4692
|
+
strip. Summary/count text and slotted host chrome wrap within narrow allocations. Does not execute,
|
|
4693
|
+
poll, or time anything — pure pushed state; `durationMs` is host-computed.
|
|
4642
4694
|
|
|
4643
4695
|
**Properties:**
|
|
4644
4696
|
- `for: string = ''` — id of the target `lr-flow-canvas`; empty resolves to the nearest ancestor
|
|
@@ -4660,7 +4712,13 @@ badge).
|
|
|
4660
4712
|
**CSS parts:** `base`, `summary` (the "{done} of {total} steps complete" line), `count` (one per
|
|
4661
4713
|
status present, text + tone dot, never color-only), `live-region` (step-transition announcement).
|
|
4662
4714
|
|
|
4663
|
-
**Themeable custom properties:**
|
|
4715
|
+
**Themeable custom properties:** `--lr-flow-run-overlay-status-color` controls a count dot without
|
|
4716
|
+
an execution status. `--lr-flow-run-overlay-status-{pending|running|success|error|denied}-color`
|
|
4717
|
+
independently retints each status count, defaulting respectively to the shared border-strong,
|
|
4718
|
+
brand, success, danger, and warning tokens. Their expanded names are
|
|
4719
|
+
`--lr-flow-run-overlay-status-pending-color`, `--lr-flow-run-overlay-status-running-color`,
|
|
4720
|
+
`--lr-flow-run-overlay-status-success-color`, `--lr-flow-run-overlay-status-error-color`, and
|
|
4721
|
+
`--lr-flow-run-overlay-status-denied-color`.
|
|
4664
4722
|
|
|
4665
4723
|
**Optional peer deps:** none.
|
|
4666
4724
|
|
|
@@ -4812,10 +4870,10 @@ a selected (`data-selected="true"`) day cell. Component-scoped indirection over
|
|
|
4812
4870
|
without also recoloring `[part='nav']:hover`/`[part='agenda-event']:hover`, which read that shared
|
|
4813
4871
|
token directly for a visually distinct purpose (transient hover feedback).
|
|
4814
4872
|
|
|
4815
|
-
|
|
4816
|
-
|
|
4817
|
-
|
|
4818
|
-
|
|
4873
|
+
Month-view `[part='event']` markers are real keyboard-focusable buttons inside a non-interactive
|
|
4874
|
+
`role="gridcell"` day container; Enter/Space activates the same `lr-event-select` path as a pointer.
|
|
4875
|
+
Their target stays at least 24×24 CSS px even in the narrow month layout. Agenda view likewise
|
|
4876
|
+
renders each event as a `<button part="agenda-event">`.
|
|
4819
4877
|
|
|
4820
4878
|
## `lr-timeline` and `lr-timeline-item`
|
|
4821
4879
|
|
|
@@ -4831,7 +4889,8 @@ design (an item's `title`/`description` routinely hold focusable content, so wra
|
|
|
4831
4889
|
opposite default from `lr-stepper`; `horizontal` makes `[part='base']` a horizontally scrollable row.
|
|
4832
4890
|
`accessibleLabel: string = ''` (attribute `aria-label`) overrides the localized `"Timeline"` name
|
|
4833
4891
|
(the `role="list"` element is in the shadow root and never inherits a host attribute). Read-only
|
|
4834
|
-
`itemCount: number` is the live default-slot
|
|
4892
|
+
`itemCount: number` is the live count of direct default-slot `<lr-timeline-item>` children;
|
|
4893
|
+
unrelated slotted elements and text nodes are ignored.
|
|
4835
4894
|
|
|
4836
4895
|
**`lr-timeline-item` properties:** `timestamp?: Date | string | number` (attribute: false — `Date`
|
|
4837
4896
|
isn't attribute-serializable; invalid input normalizes to unset and renders no timestamp UI),
|
|
@@ -4892,7 +4951,8 @@ git-status/diff-count badges, lazy directory loading, and select/open events.
|
|
|
4892
4951
|
|
|
4893
4952
|
A masked key/value list for environment variables and secrets, with per-row reveal and copy.
|
|
4894
4953
|
Masking is presentational, not a security boundary: the real value sits in a DOM property
|
|
4895
|
-
regardless of mask state.
|
|
4954
|
+
regardless of mask state. Names, revealed values, and localized action text wrap within narrow
|
|
4955
|
+
allocations; the name track uses at most 40% of the available inline size.
|
|
4896
4956
|
|
|
4897
4957
|
**Properties:** `entries: EnvEntry[] = []` (attribute: false), `revealable: boolean = true`
|
|
4898
4958
|
(reflected), `copyable: boolean = true` (reflected), and `label: string = ''`.
|
|
@@ -5220,14 +5280,16 @@ position) survives the transition.
|
|
|
5220
5280
|
- `collapsed: boolean = false` (reflected)
|
|
5221
5281
|
- `expandable: boolean = false` (reflected — shows the fullscreen toggle button)
|
|
5222
5282
|
- `fullscreen: boolean = false` (reflected)
|
|
5223
|
-
- `fullscreenInset: string = ''` (attribute `fullscreen-inset`) —
|
|
5283
|
+
- `fullscreenInset: string = ''` (attribute `fullscreen-inset`) — CSS `inset` shorthand applied to
|
|
5224
5284
|
`[part="base"]` and `[part="backdrop"]` while fullscreen instead of the default per-side
|
|
5225
5285
|
`max(var(--lr-space-l), <safe-area inset>)`, e.g. `"0 0 0 240px"` to leave a 240px persistent
|
|
5226
|
-
sidebar/toolbar visible during fullscreen
|
|
5286
|
+
sidebar/toolbar visible during fullscreen. Invalid values, declaration-breaking input, and
|
|
5287
|
+
`url()` are ignored.
|
|
5227
5288
|
- `compact: boolean = false` (reflected) — tighter header/body padding, same convention as
|
|
5228
5289
|
`lr-empty`'s `compact`
|
|
5229
5290
|
- `backdropInset: string = ''` (attribute `backdrop-inset`) — overrides the fullscreen backdrop's
|
|
5230
|
-
CSS `inset` independently from `fullscreenInset`; when empty, it follows
|
|
5291
|
+
CSS `inset` independently from `fullscreenInset`; when empty or invalid, it follows a valid
|
|
5292
|
+
`fullscreenInset`
|
|
5231
5293
|
- `views: WidgetView[] = []` (attribute: false) — named alternate views for the panel body, e.g. a
|
|
5232
5294
|
chart/table toggle inside the same card chrome; `WidgetView { id: string; label?: string; icon?:
|
|
5233
5295
|
TemplateResult; ariaLabel?: string }`. Each entry gets a header toggle button
|
|
@@ -5351,6 +5413,8 @@ navigation.
|
|
|
5351
5413
|
**Methods:** `next()`, `previous()`, and `goTo(index)` update the active index and emit
|
|
5352
5414
|
`lr-slide-change` (`detail: { index }`).
|
|
5353
5415
|
|
|
5416
|
+
**Events:** `lr-slide-change` (`detail: { index }`) — emitted after the active slide changes.
|
|
5417
|
+
|
|
5354
5418
|
**CSS parts:** `base` (the `role="region"` landmark), `viewport` (the keyboard-focusable slide
|
|
5355
5419
|
viewport), `track`, `controls`, `previous-button`, `next-button`, `previous-glyph`/`next-glyph` (the
|
|
5356
5420
|
chevron inside each, mirrored under RTL), `indicators`, `indicator` (one indicator's hit target,
|
|
@@ -5837,6 +5901,8 @@ control. It is **genuinely undeclared by default** — not `auto` — and that i
|
|
|
5837
5901
|
exact-height hatch only works as an undeclared sentinel, because `auto` is itself a valid value that
|
|
5838
5902
|
would always win and would silently turn every tier's `--lr-segmented-track-min-height` floor into
|
|
5839
5903
|
dead code. While it is unset, each tier keeps its own floor and the track grows with its content.
|
|
5904
|
+
The compact `2xs` track has a 24px minimum block size, and every `2xs`/`xs` segment retains at least
|
|
5905
|
+
a 24×24px activation target even when its label is very short.
|
|
5840
5906
|
|
|
5841
5907
|
`--lr-segmented-selected-bg` (default `var(--lr-color-surface)`), `--lr-segmented-selected-color`
|
|
5842
5908
|
(default `var(--lr-color-text)`), `--lr-segmented-selected-font-weight` (default
|
|
@@ -6573,7 +6639,9 @@ called with no second argument, so `event.detail` is `null`, not `undefined`; fi
|
|
|
6573
6639
|
when the parent `<lr-menu>`'s own Enter/Space keydown handling calls `select()` on the currently
|
|
6574
6640
|
roving-focused item), `lr-menu-item-change` (`detail: { value, checked }` — fired when a
|
|
6575
6641
|
`type="checkbox"` item is activated and its `checked` state toggled, in addition to — never instead
|
|
6576
|
-
of — `lr-menu-item-select`; never fired for `type="normal"`)
|
|
6642
|
+
of — `lr-menu-item-select`; never fired for `type="normal"`),
|
|
6643
|
+
`lr-menu-item-state-change` (`detail: { disabled, hidden }` — emitted when either navigability
|
|
6644
|
+
state changes so the parent menu can repair its roving-tabindex state immediately)
|
|
6577
6645
|
|
|
6578
6646
|
**Slots:** default (the item's label content), `icon` (optional leading icon)
|
|
6579
6647
|
|
|
@@ -6994,6 +7062,7 @@ draggable/resizable target; set it to `transparent` to opt out of the hover trea
|
|
|
6994
7062
|
**Additional API surface:**
|
|
6995
7063
|
|
|
6996
7064
|
- `--lr-dashboard-grid-collision-outline-color` — Outline color of a cell whose current drag/resize preview collides with another cell. Default: `var(--lr-color-danger)`.
|
|
7065
|
+
- `--lr-dashboard-grid-interaction-shadow` — Box shadow applied during a cell drag or resize. Default: `var(--lr-shadow)`.
|
|
6997
7066
|
|
|
6998
7067
|
## `lr-drilldown-panel`
|
|
6999
7068
|
|
|
@@ -7056,6 +7125,51 @@ value means no debounce at all: every keystroke commits immediately. A pending d
|
|
|
7056
7125
|
keystroke can never overwrite a reset or fire after teardown. `debounce` is ignored for every other
|
|
7057
7126
|
`type`, whose commits are discrete choices with nothing to debounce.
|
|
7058
7127
|
|
|
7128
|
+
### Custom controls
|
|
7129
|
+
|
|
7130
|
+
Use `type: 'custom'` when an existing Lyra control does not fit the built-in filter types. Provide a
|
|
7131
|
+
`custom` object with a `render(context)` function and an `adapter`. The renderer owns the control's
|
|
7132
|
+
markup and should bind the context's `value`, `disabled`, `required`, and `errorText` as appropriate;
|
|
7133
|
+
`context.onValueChange` (or its `onInput`/`onChange` aliases) reads the event through
|
|
7134
|
+
`adapter.valueFromEvent` and commits it to the filter bar. `context.setValue(value)` is available for
|
|
7135
|
+
controls that expose a value without an event payload, and `context.onFocusout` marks the filter
|
|
7136
|
+
touched for required validation.
|
|
7137
|
+
|
|
7138
|
+
The adapter's optional `emptyValue` is used when the active chip is removed, and its optional
|
|
7139
|
+
`formatValue` controls the chip's display text. Custom values may be strings, string arrays,
|
|
7140
|
+
booleans, or `undefined`, so controls such as `lr-time-range`, `lr-checkbox`, and an async-backed
|
|
7141
|
+
`lr-combobox` can participate in the same controlled `value`, active-chip, reset, disabled, and
|
|
7142
|
+
validation contract:
|
|
7143
|
+
|
|
7144
|
+
```ts
|
|
7145
|
+
const filters: FilterBarFilterDefinition[] = [
|
|
7146
|
+
{
|
|
7147
|
+
id: 'archived',
|
|
7148
|
+
label: 'Include archived',
|
|
7149
|
+
type: 'custom',
|
|
7150
|
+
custom: {
|
|
7151
|
+
adapter: {
|
|
7152
|
+
valueFromEvent: (event) =>
|
|
7153
|
+
(event as CustomEvent<{ checked: boolean }>).detail.checked,
|
|
7154
|
+
emptyValue: false,
|
|
7155
|
+
formatValue: (value) => value === true ? 'Enabled' : 'Disabled',
|
|
7156
|
+
},
|
|
7157
|
+
render: (context) => html`
|
|
7158
|
+
<lr-checkbox
|
|
7159
|
+
?checked=${context.value === true}
|
|
7160
|
+
?disabled=${context.disabled}
|
|
7161
|
+
@lr-change=${context.onValueChange}
|
|
7162
|
+
@focusout=${context.onFocusout}
|
|
7163
|
+
>${context.label}</lr-checkbox>
|
|
7164
|
+
`,
|
|
7165
|
+
},
|
|
7166
|
+
},
|
|
7167
|
+
];
|
|
7168
|
+
```
|
|
7169
|
+
|
|
7170
|
+
The custom renderer returns a Lit `TemplateResult`; the filter bar places it in its
|
|
7171
|
+
`filter-control` part and re-renders it whenever the controlled value or validation state changes.
|
|
7172
|
+
|
|
7059
7173
|
# Overlays, status & feedback (`components/overlays/`)
|
|
7060
7174
|
|
|
7061
7175
|
## `lr-toast` / `lr-toast-item` / `toast()`
|
|
@@ -7156,12 +7270,18 @@ at another, since `placement` is a per-call option rather than a single global r
|
|
|
7156
7270
|
- the close button's accessible name is derived from the toast's own message text (`"Close: <first
|
|
7157
7271
|
40 chars>…"`, falling back to bare `"Close"` only when the toast has no text content) rather than
|
|
7158
7272
|
a bare `"Close"` on every instance — useful when several toasts are stacked and a screen-reader or
|
|
7159
|
-
switch-access user needs to tell their close buttons apart without activating one first.
|
|
7273
|
+
switch-access user needs to tell their close buttons apart without activating one first. Rich
|
|
7274
|
+
non-interactive message markup contributes its text, named-slot/icon and actionable content do
|
|
7275
|
+
not, and live message text mutations update the name.
|
|
7160
7276
|
- pause/resume-on-hover/focus (the component's main accessibility differentiator), including the
|
|
7161
7277
|
independent-hover-vs-focus pause reasons above, now has regression test coverage.
|
|
7162
7278
|
- `hide()` is idempotent (a second call while already hiding is a no-op) and `[part="close-button"]`
|
|
7163
7279
|
gets `aria-disabled="true"` once hiding starts, so a stray extra click/Enter during the hide
|
|
7164
|
-
animation can't re-enter it.
|
|
7280
|
+
animation can't re-enter it. A disconnect during that animation pauses completion; reconnecting
|
|
7281
|
+
the same item resumes it and emits/removes exactly once.
|
|
7282
|
+
- When the focused close/action control's toast finishes hiding, focus moves to an adjacent toast's
|
|
7283
|
+
close control, or back to the connected element that held focus before the toast when no adjacent
|
|
7284
|
+
item remains.
|
|
7165
7285
|
- Prefer the `toast()` helper over manually creating `<lr-toast>`/`<lr-toast-item>` — it already
|
|
7166
7286
|
handles the singleton-region and remount-if-removed logic.
|
|
7167
7287
|
|
|
@@ -7324,8 +7444,9 @@ hand-building that chrome isn't worth it.
|
|
|
7324
7444
|
|
|
7325
7445
|
Also settable as a plain `aria-label` attribute (not a public JS property): overrides the panel's
|
|
7326
7446
|
computed accessible name outright, winning over every other source below (a slotted heading,
|
|
7327
|
-
`heading`, `label`) — matching `<lr-date-input>`'s `accessibleLabel` pattern.
|
|
7328
|
-
|
|
7447
|
+
`heading`, `label`) — matching `<lr-date-input>`'s `accessibleLabel` pattern. It changes naming
|
|
7448
|
+
only: a `heading` property still renders its visible header chrome. Left unset, the existing
|
|
7449
|
+
three-tier fallback below is unchanged.
|
|
7329
7450
|
|
|
7330
7451
|
**Methods:** `close(reason: DialogCloseReason = 'api'): void` — closes the dialog, emits
|
|
7331
7452
|
`lr-dialog-close` with `reason`, and returns focus to whatever had it right before the dialog
|
|
@@ -7337,8 +7458,10 @@ own `close()` (a consumer's own cleanup code, a parent re-render that drops it);
|
|
|
7337
7458
|
whatever a caller passes (e.g. a footer Cancel button calling `dlg.close('cancel')`, or `confirm()`'s
|
|
7338
7459
|
own `'confirm'`/`'cancel'`).
|
|
7339
7460
|
|
|
7340
|
-
**Events:** `lr-dialog-close` (`detail: DialogCloseReason`) — fired on every
|
|
7341
|
-
(Escape, backdrop click, any `close()` call, or an
|
|
7461
|
+
**Events:** `lr-dialog-close` (`detail: DialogCloseReason`) — a cancelable event fired on every
|
|
7462
|
+
dismissal path (Escape, backdrop click, the built-in close button, any `close()` call, or an
|
|
7463
|
+
`'unmount'` removal as above). Calling `preventDefault()` keeps a connected dialog open for every
|
|
7464
|
+
dismissal path; `'unmount'` cannot practically be vetoed because removal already happened.
|
|
7342
7465
|
|
|
7343
7466
|
**Stacking:** participates in the shared per-document overlay stack described above. A dialog can be
|
|
7344
7467
|
stacked with another dialog or any other modal family; only the visually topmost overlay receives
|
|
@@ -7388,19 +7511,20 @@ clipped; the viewport is still a hard limit either way), plus shared tokens `--l
|
|
|
7388
7511
|
|
|
7389
7512
|
Accessible name / visible header, in priority order: (0) if the host element itself has an
|
|
7390
7513
|
`aria-label` attribute set, its value becomes `aria-label` on the panel outright, overriding every
|
|
7391
|
-
source below (including a slotted heading)
|
|
7392
|
-
|
|
7393
|
-
|
|
7394
|
-
set; (1) otherwise, if a heading element (`h1`–`h6` or
|
|
7514
|
+
source below (including a slotted heading) while leaving visible `heading` chrome intact — the
|
|
7515
|
+
standard ARIA convention for a consumer that wants full control over the announced name regardless
|
|
7516
|
+
of whatever `heading`/`label` props are also set; (1) otherwise, if a heading element (`h1`–`h6` or
|
|
7395
7517
|
`[role="heading"]`) is a *direct child* (not inside `slot="footer"`), its text content becomes
|
|
7396
7518
|
`aria-label` on the panel — takes priority over `heading` below so an existing consumer that already
|
|
7397
7519
|
slots its own heading keeps rendering it exactly as before; (2) otherwise, when `heading` is set, a
|
|
7398
7520
|
visible header row (`[part="header"]`) renders containing that text (`[part="heading"]`), which
|
|
7399
7521
|
becomes the `aria-labelledby` target; (3) otherwise, when `label` is set, an invisible (`.sr-only`,
|
|
7400
7522
|
exposed as the `label` part) element carrying that text is rendered inside the panel and
|
|
7401
|
-
`aria-labelledby` points at it instead. Only one of cases 2/3
|
|
7402
|
-
|
|
7403
|
-
|
|
7523
|
+
`aria-labelledby` points at it instead. Only one of cases 2/3 supplies `aria-labelledby` at a time;
|
|
7524
|
+
case 0 can coexist with case 2's visible heading, but its explicit `aria-label` remains the name.
|
|
7525
|
+
`label` itself never renders visible chrome on its own — `::part(label)` can be restyled to make the
|
|
7526
|
+
sr-only text visible, or `heading` can be set instead, for visible chrome without slotting a real
|
|
7527
|
+
heading element.
|
|
7404
7528
|
The slotted-heading case (1) deliberately uses `aria-label` (a copied string) rather than
|
|
7405
7529
|
`aria-labelledby` pointing at the heading's `id`, because the heading is light-DOM content while
|
|
7406
7530
|
`[part="panel"]` lives in shadow DOM and an ID-reference attribute can't resolve across that
|
|
@@ -7410,9 +7534,8 @@ root it labels.
|
|
|
7410
7534
|
**Known gotchas:**
|
|
7411
7535
|
- `role="dialog"`/`aria-modal="true"` are only present on `[part="panel"]` while `open` is `true` —
|
|
7412
7536
|
inspecting closed markup won't show them.
|
|
7413
|
-
- Heading detection
|
|
7414
|
-
heading's
|
|
7415
|
-
`aria-label`; set `label` instead for a title that needs to change live.
|
|
7537
|
+
- Heading detection observes child, subtree, and character-data changes, so mutating an
|
|
7538
|
+
already-slotted direct heading's text updates the copied panel `aria-label` live.
|
|
7416
7539
|
- Only *direct* children are scanned for a heading — one nested several layers deep, or inside a
|
|
7417
7540
|
slotted custom element's own shadow root, is left to the consumer to label explicitly via `label`.
|
|
7418
7541
|
- A reconnect that preserves the same element instance (e.g. a drag-and-drop reparent) resumes its
|
|
@@ -7459,7 +7582,8 @@ used is still a `--lr-*` token reference, never a raw literal.
|
|
|
7459
7582
|
- Every dismissal path (confirm button, cancel button, Escape, backdrop click) funnels through
|
|
7460
7583
|
`<lr-dialog>`'s own `close()`/`lr-dialog-close` event, so there is exactly one place that
|
|
7461
7584
|
resolves the promise and tears the dialog down — a consumer never needs to (and shouldn't) call
|
|
7462
|
-
`.remove()` itself.
|
|
7585
|
+
`.remove()` itself. Because the close event is cancelable, `confirm()` waits through the full
|
|
7586
|
+
dispatch and remains pending/mounted when a listener calls `preventDefault()`.
|
|
7463
7587
|
- The neutral confirm button pairs `--lr-color-on-brand` with `--lr-color-brand`; the danger
|
|
7464
7588
|
tone pairs `--lr-color-on-danger` with `--lr-color-danger`. Each token chains through Web
|
|
7465
7589
|
Awesome's matching `*-on-loud` semantic role and has contrast-tested standalone light/dark
|
|
@@ -7626,7 +7750,9 @@ library-wide `--lr-color-text` token. Left unset, rendering is unchanged. Otherw
|
|
|
7626
7750
|
Since CSS alone can't parameterize `:nth-child` on a runtime prop, `<lr-chip-group>` reaches
|
|
7627
7751
|
directly into the light DOM and sets each excess child's own `hidden` property once `max-visible` is
|
|
7628
7752
|
exceeded — the same approach `<lr-split>` uses to set each panel's inline `flex`/`order`, rather
|
|
7629
|
-
than a stylesheet-only solution.
|
|
7753
|
+
than a stylesheet-only solution. It observes live author changes to each managed child's `hidden`
|
|
7754
|
+
state and restores the latest author-owned value when ownership ends or the group disconnects;
|
|
7755
|
+
reconnecting reapplies the current collapsed state.
|
|
7630
7756
|
|
|
7631
7757
|
**Known gotchas:**
|
|
7632
7758
|
- `<lr-chip>`'s accessible remove-button label ("Remove {text}") is computed only from the default
|
|
@@ -7673,8 +7799,9 @@ resolves a full `keys` string with the same optional localization callback.
|
|
|
7673
7799
|
**Slots:** default — an escape hatch for fully custom key-cap content (e.g. an icon instead of a
|
|
7674
7800
|
text glyph). When it has any real (non-whitespace) content, it replaces the `keys`-driven rendering
|
|
7675
7801
|
entirely and this component stops *computing* its own `aria-label` from `keys`, leaving the slotted
|
|
7676
|
-
content to carry its own accessible name
|
|
7677
|
-
|
|
7802
|
+
content to carry its own accessible name. A host-supplied `aria-label` in custom mode is forwarded
|
|
7803
|
+
to `[part="base"]` together with `role="img"`; without one, the wrapper adds no image role and
|
|
7804
|
+
leaves the slotted content's own semantics exposed.
|
|
7678
7805
|
|
|
7679
7806
|
**CSS parts:** `base` (the chip root), `key` (one per rendered token).
|
|
7680
7807
|
|
|
@@ -7727,7 +7854,8 @@ track ancestor scroll/resize against — pass `rect.contextElement` (a real, sti
|
|
|
7727
7854
|
near the virtual point) when one is available to give it something to observe; otherwise, or when
|
|
7728
7855
|
the anchor point moves on its own (e.g. a graph pan/zoom tick), re-call `showAt()` with fresh
|
|
7729
7856
|
coordinates to re-anchor — the popover stays open across such a call. A popover that never calls
|
|
7730
|
-
`showAt()` behaves exactly as before.
|
|
7857
|
+
`showAt()` behaves exactly as before. Non-finite coordinates or dimensions are a no-op and leave
|
|
7858
|
+
the current open/anchor state unchanged.
|
|
7731
7859
|
`hide(options?: { focusTrigger?: boolean })` programmatically closes the popover; pass
|
|
7732
7860
|
`{ focusTrigger: false }` to opt out of focus restoration. By default, `hide()`, Escape, light
|
|
7733
7861
|
dismiss, and a bare `el.open = false` all return focus to the slotted trigger, or to a virtual
|
|
@@ -7749,7 +7877,8 @@ contextElement? }, options?: { returnFocusTo?: HTMLElement })` — same virtual-
|
|
|
7749
7877
|
Escape returns focus to `options.returnFocusTo` or skips focus-return, re-call with fresh
|
|
7750
7878
|
coordinates to re-anchor a moving point). Opens immediately, bypassing `delay`/`manual` (both are
|
|
7751
7879
|
hover-debounce concerns for a slotted trigger, not a deliberate programmatic call); close it the
|
|
7752
|
-
same way any tooltip closes, by setting `open = false`.
|
|
7880
|
+
same way any tooltip closes, by setting `open = false`. Non-finite coordinates or dimensions are a
|
|
7881
|
+
no-op. **Slots:** `trigger`, default content.
|
|
7753
7882
|
**CSS parts:** `trigger`, `popup`. **Themeable custom properties:** `--lr-tooltip-max-inline-size`
|
|
7754
7883
|
(default `--lr-size-20rem`), `--lr-tooltip-background` (default `--lr-color-neutral`), and
|
|
7755
7884
|
`--lr-tooltip-color` (default `--lr-color-on-neutral`).
|
|
@@ -7762,6 +7891,16 @@ intentionally leaves the internal control's serialized `aria-describedby` value
|
|
|
7762
7891
|
author-provided descriptions are merged while open and restored when the trigger is replaced or
|
|
7763
7892
|
the tooltip disconnects.
|
|
7764
7893
|
|
|
7894
|
+
Plain content keeps `role="tooltip"`. If actionable content appears anywhere in the assigned
|
|
7895
|
+
default-slot subtree — including inside a nested custom element's open shadow root — the popup
|
|
7896
|
+
promotes to a named `role="dialog"` and remains open while pointer or focus is within it. Escape
|
|
7897
|
+
from either the trigger or popup closes it; Escape from popup content returns focus to the trigger.
|
|
7898
|
+
While open, rootless custom-element content receives a bounded initialization grace period for an
|
|
7899
|
+
upgrade or newly attached open shadow root; later observable content mutations start a fresh
|
|
7900
|
+
grace period. This catches normal lazy initialization without scheduling perpetual animation-frame
|
|
7901
|
+
work for a legitimate custom element that intentionally has no shadow root. Use `lr-popover` when
|
|
7902
|
+
click-to-open ownership is desired.
|
|
7903
|
+
|
|
7765
7904
|
**`showAt()` composed with `lr-graph`** — anchoring a popover to a clicked graph node. Note:
|
|
7766
7905
|
`lr-graph.getNodePosition()` and the `lr-node-click` event's `{ x, y }` are in the graph's own
|
|
7767
7906
|
*local drawing space* (pre pan/zoom), not viewport pixels, so they can't be passed to `showAt()`
|
|
@@ -7807,7 +7946,9 @@ names `[part="base"]`'s `role="status"`; unset falls back to the localized "Load
|
|
|
7807
7946
|
**Events:** none.
|
|
7808
7947
|
|
|
7809
7948
|
**Slots:** default — optional label text. `label-placement="after"` renders it inline next to the
|
|
7810
|
-
indicator
|
|
7949
|
+
indicator and its text becomes the status name unless `aria-label` overrides it. `'none'` (the
|
|
7950
|
+
default) applies the native `hidden` state to the label wrapper, removing it from both rendering and
|
|
7951
|
+
the accessibility tree; the status then uses `aria-label` or the localized "Loading…" fallback.
|
|
7811
7952
|
|
|
7812
7953
|
**CSS parts:** `base` (the `role="status"` wrapper), `spinner` (the animated ring; `aria-hidden`),
|
|
7813
7954
|
`label` (the default-slot wrapper).
|
|
@@ -7824,7 +7965,8 @@ A determinate or indeterminate progress bar.
|
|
|
7824
7965
|
**Properties:** `value`, `max`, `indeterminate`, `variant`, `showValue` (`show-value`), and
|
|
7825
7966
|
`accessibleLabel` (`accessible-label`).
|
|
7826
7967
|
The rendered progressbar exposes `aria-valuemin`, `aria-valuemax`, and `aria-valuenow` when
|
|
7827
|
-
determinate.
|
|
7968
|
+
determinate. When `show-value` exposes label-slot text, that visible text names the progressbar
|
|
7969
|
+
unless host `aria-label`/`accessible-label` overrides it; live label mutations stay synchronized.
|
|
7828
7970
|
|
|
7829
7971
|
**Slots:** `label`. **CSS parts:** `base`, `track`, `indicator`, `label`.
|
|
7830
7972
|
**Themeable custom properties:** `--lr-progress-height` (default `var(--lr-size-0-5rem)`) — the
|
|
@@ -7840,7 +7982,8 @@ A circular progress indicator with the same value contract as `lr-progress-bar`.
|
|
|
7840
7982
|
|
|
7841
7983
|
**Properties:** `value: number = 0`, `max: number = 100`, `indeterminate: boolean = false`
|
|
7842
7984
|
(reflected), and `accessibleLabel: string = ''` (attribute `accessible-label`; unset falls back to
|
|
7843
|
-
the localized "Progress"). Non-finite/out-of-range
|
|
7985
|
+
the visible default-slot text when supplied, then the localized "Progress"). Non-finite/out-of-range
|
|
7986
|
+
`value`/`max` are normalized (`max <= 0` falls
|
|
7844
7987
|
back to `100`, `value` clamps to `[0, max]`) rather than producing NaN geometry.
|
|
7845
7988
|
**Slots:** default — replaces the built-in center label, which otherwise renders the rounded
|
|
7846
7989
|
percentage (and nothing at all while `indeterminate`).
|
|
@@ -7910,9 +8053,15 @@ A keyboard-accessible star rating control with slider semantics. **Properties:**
|
|
|
7910
8053
|
`lr-change` with `{ value }`. **CSS parts:** `base`, `star`, `star-fill` (the filled overlay
|
|
7911
8054
|
inside each star, clipped to the fractional `precision` value). **Themeable custom properties:**
|
|
7912
8055
|
`--lr-rating-fill` (default `--lr-color-warning` — filled-star color), `--lr-rating-empty-color`
|
|
7913
|
-
(default `--lr-color-border` — unfilled-star color), and
|
|
8056
|
+
(default `--lr-color-border` — unfilled-star color, also retained during hover preview), and
|
|
8057
|
+
`--lr-rating-size` (default
|
|
7914
8058
|
`--lr-font-size-xl` — star size).
|
|
7915
8059
|
|
|
8060
|
+
Pointer selection resolves the position within the clicked star and snaps upward to `precision`
|
|
8061
|
+
(with the physical fraction mirrored under RTL), so half/quarter-star precision applies to pointer
|
|
8062
|
+
input as well as keyboard/value updates. The semantic slider's base keeps a 40×40px minimum
|
|
8063
|
+
activation area even for the degenerate `max=0`/`max=1` cases; larger ratings naturally grow wider.
|
|
8064
|
+
|
|
7916
8065
|
**Additional API surface:**
|
|
7917
8066
|
|
|
7918
8067
|
- `blur()` — Forwards host blur to the internal rating control.
|
|
@@ -7997,7 +8146,7 @@ Package-level CSV utilities (used internally, also exported for standalone use
|
|
|
7997
8146
|
escapeCsvField, buildCsv, downloadBlob } from
|
|
7998
8147
|
'@aceshooting/lyra-ui/components/utility/export-button/csv.js'`):
|
|
7999
8148
|
```ts
|
|
8000
|
-
escapeCsvField(value: unknown): string // quotes/escapes; neutralizes
|
|
8149
|
+
escapeCsvField(value: unknown): string // quotes/escapes; neutralizes leading ASCII/fullwidth =,+,-,@ and tab/CR/LF formula prefixes with an apostrophe
|
|
8001
8150
|
buildCsv(rows: Record<string, unknown>[], columns: CsvColumn[]): string // CRLF-joined, header row included
|
|
8002
8151
|
downloadBlob(content: string, filename: string, mime: string): void // triggers a browser download
|
|
8003
8152
|
```
|
|
@@ -8009,6 +8158,10 @@ downloadBlob(content: string, filename: string, mime: string): void // trig
|
|
|
8009
8158
|
for that handler, not automatic filename handling.
|
|
8010
8159
|
- CSV formula-injection guarding and the deferred (5s) `URL.revokeObjectURL` (works around Safari
|
|
8011
8160
|
cancelling in-flight downloads on immediate revoke) are genuine, safe-to-rely-on strengths.
|
|
8161
|
+
- `open` is valid only when `formats` contains more than one choice. An invalid open request is
|
|
8162
|
+
normalized closed without a false `lr-show`/`lr-hide` pair; shrinking an open menu to one format,
|
|
8163
|
+
or becoming `disabled`/`loading`, closes it and repairs focus. JSON projection safely preserves
|
|
8164
|
+
an own enumerable column literally named `__proto__`.
|
|
8012
8165
|
- the multi-format menu (`role="menu"`) supports full arrow-key navigation — ArrowUp/ArrowDown move
|
|
8013
8166
|
between items (opening the menu and seeding the right one focused, if it was closed), Home/End
|
|
8014
8167
|
jump to the first/last item once open, Escape closes it and returns focus to the trigger button,
|
|
@@ -8058,6 +8211,8 @@ buttons, this has no code/JSON content model to adopt just to reuse the copy aff
|
|
|
8058
8211
|
- best-effort clipboard write: `navigator.clipboard` is absent in insecure contexts/older browsers,
|
|
8059
8212
|
and some engines throw synchronously rather than rejecting — either way `lr-copy` still fires
|
|
8060
8213
|
with the intended text so a consumer can always show its own confirmation/fallback UI.
|
|
8214
|
+
- Changing `value` clears any in-progress "Copied" feedback immediately, so the confirmation can
|
|
8215
|
+
never describe stale text.
|
|
8061
8216
|
|
|
8062
8217
|
**Additional API surface:**
|
|
8063
8218
|
|
|
@@ -8124,7 +8279,9 @@ stack overflow on cyclic `data`.
|
|
|
8124
8279
|
- `collapsedDepth?: number` (attribute `collapsed-depth`) — nodes at or beyond this nesting depth
|
|
8125
8280
|
(root = `0`) start collapsed; omitted/`undefined` means nothing auto-collapses
|
|
8126
8281
|
- `maxHeight: string = ''` (attribute `max-height`) — a CSS length (e.g. `"20rem"`); once set, the
|
|
8127
|
-
viewer scrolls internally past this height instead of growing the page
|
|
8282
|
+
viewer scrolls internally past this height instead of growing the page. Values that do not parse
|
|
8283
|
+
as CSS `max-height`, contain declaration breaks, or contain `url()` are ignored, leaving
|
|
8284
|
+
`--lr-json-viewer-max-height` in control
|
|
8128
8285
|
- `copyable: boolean = false` (reflected) — shows copy-to-clipboard affordances: one for the whole
|
|
8129
8286
|
value, plus one per node
|
|
8130
8287
|
- `search: string = ''` — case-insensitive substring match against keys/values; matches are
|
|
@@ -8151,7 +8308,8 @@ search query, match count, or active-match cursor changes, from `runSearch()`/`s
|
|
|
8151
8308
|
|
|
8152
8309
|
**CSS parts:** `base` (root scroll container, respects `max-height`), `toolbar` (wrapper around the
|
|
8153
8310
|
top-level copy button, only rendered when `copyable`), `tree` (wrapper around the rendered node
|
|
8154
|
-
tree
|
|
8311
|
+
tree; a host `aria-label` is forwarded here), `row` (every structural opening/value and
|
|
8312
|
+
closing-delimiter row), `key` (an object property key or array index label, `data-match` while it matches `search`,
|
|
8155
8313
|
`data-active` while it is the current `searchNext()`/`searchPrevious()` cursor position),
|
|
8156
8314
|
`value` (a primitive value's text — carries `data-type` of
|
|
8157
8315
|
`string`/`number`/`boolean`/`null`/`undefined`/`circular` for per-type coloring, `data-match`
|
|
@@ -8169,6 +8327,8 @@ until `max-height` is set), `--lr-json-viewer-font` (default `var(--lr-font-mono
|
|
|
8169
8327
|
box-shadow, of a key/value that currently matches `search`. Component-scoped indirection over the
|
|
8170
8328
|
shared `--lr-color-warning-quiet` token, so a consumer can retheme just this search-match highlight
|
|
8171
8329
|
without repainting every other warning-toned surface that reads the same shared token;
|
|
8330
|
+
`--lr-json-viewer-row-hover-bg` (default `var(--lr-color-brand-quiet)`) — structural-row hover
|
|
8331
|
+
background;
|
|
8172
8332
|
`--lr-json-viewer-active-outline` (default `var(--lr-focus-ring-color)`) — outline color for the
|
|
8173
8333
|
current imperative search match; `--lr-json-viewer-string-color` (default
|
|
8174
8334
|
`var(--lr-color-success)`), `--lr-json-viewer-number-color` (default `var(--lr-color-brand)`),
|
|
@@ -8207,6 +8367,8 @@ html`<lr-json-viewer .data=${apiResponse} copyable max-height="24rem" search=${q
|
|
|
8207
8367
|
a different shape.
|
|
8208
8368
|
- Per-node copy buttons call `stopPropagation()` on click so clicking one doesn't also toggle the
|
|
8209
8369
|
row's expand/collapse state.
|
|
8370
|
+
- Whole-value copy always produces text, including for a root `undefined`, `Symbol`, or function
|
|
8371
|
+
that native `JSON.stringify()` would otherwise return as no value.
|
|
8210
8372
|
|
|
8211
8373
|
---
|
|
8212
8374
|
|
|
@@ -8325,6 +8487,9 @@ accessible phase-transition announcements.
|
|
|
8325
8487
|
`paused`), `lr-pause-change` (`detail: boolean` — fired when `paused` changes via the built-in
|
|
8326
8488
|
button).
|
|
8327
8489
|
|
|
8490
|
+
**Methods:** `restart(): void` — restarts the currently configured `nextInMs` delay from now,
|
|
8491
|
+
including after its previous deadline fired. With `nextInMs` unset it simply clears the due state.
|
|
8492
|
+
|
|
8328
8493
|
**Slots:** none.
|
|
8329
8494
|
|
|
8330
8495
|
**CSS parts:** `base`, `indicator` (the pulsing status dot), `countdown` (the `M:SS`, or
|
|
@@ -8351,14 +8516,16 @@ repainting every other component that reuses the same shared success token. Plus
|
|
|
8351
8516
|
|
|
8352
8517
|
Internally, a 1-second ticker re-derives the remaining time from a captured target timestamp (rather
|
|
8353
8518
|
than a naive per-tick decrement), so the countdown stays accurate even if the tab was backgrounded
|
|
8354
|
-
and timers were throttled.
|
|
8355
|
-
value
|
|
8356
|
-
|
|
8357
|
-
|
|
8519
|
+
and timers were throttled. Assigning a *changed* `nextInMs` value starts a fresh deadline; assigning
|
|
8520
|
+
the same value is a normal Lit no-op, so use `restart()` for a new cycle with the same delay.
|
|
8521
|
+
Pausing/resuming, toggling `active`, disconnecting/reconnecting, or toggling either after the due
|
|
8522
|
+
event stops/starts only an unconsumed ticker: a consumed deadline never replays until `nextInMs`
|
|
8523
|
+
changes or `restart()` is called. Phase transitions ("Paused.", "Resumed.", "Refreshing now.") are
|
|
8524
|
+
announced via an internal `<lr-live-region>` in polite mode.
|
|
8358
8525
|
|
|
8359
8526
|
**Known gotchas:**
|
|
8360
|
-
-
|
|
8361
|
-
|
|
8527
|
+
- `restart()` is the explicit reset/extend path when the configured delay value itself has not
|
|
8528
|
+
changed.
|
|
8362
8529
|
- `active="false"` and `paused` both stop the ticker independently, but only `paused` fires
|
|
8363
8530
|
`lr-pause-change` — that event is scoped to the built-in pause button's own toggle, not to
|
|
8364
8531
|
`active`.
|
|
@@ -8513,8 +8680,11 @@ fresh `query` is the proxy for "the caret may have moved").
|
|
|
8513
8680
|
- A caret that moves for a reason other than typing (e.g. a mouse click elsewhere in the text while
|
|
8514
8681
|
the popover happens to still be open) is not separately tracked — force a re-measure by toggling
|
|
8515
8682
|
`open` or reassigning `anchor`.
|
|
8516
|
-
- `activeIndex` resets to `0` whenever `query` or `
|
|
8517
|
-
changes — reassigning `anchor` alone preserves whatever row was last highlighted.
|
|
8683
|
+
- `activeIndex` resets to `0` whenever `query`, `items`, or `filter` changes, but not when only
|
|
8684
|
+
`anchor` changes — reassigning `anchor` alone preserves whatever row was last highlighted. If
|
|
8685
|
+
fallback focus currently lives in the listbox and filtering removes every option, closing,
|
|
8686
|
+
emptying, or disconnecting the popover returns focus to the connected anchor before removing the
|
|
8687
|
+
active option.
|
|
8518
8688
|
- There's no persisted "selection" the way `<lr-combobox>`'s own listbox has one — a mention is
|
|
8519
8689
|
either committed (closing the popover) or dismissed with nothing chosen. `aria-selected="true"`
|
|
8520
8690
|
here marks whichever row is currently *active* (what Enter/Tab would commit right now, per the
|
|
@@ -8598,6 +8768,7 @@ consumer can compute or unit-test the same alignment without instantiating the e
|
|
|
8598
8768
|
explicit performance-risk opt-out.
|
|
8599
8769
|
- the computed `diffOps` state is cached and recomputed only when `oldText`, `newText`, or
|
|
8600
8770
|
`maxLines` changes. Copy-confirmation and other unrelated renders reuse the cached alignment.
|
|
8771
|
+
- Changing either `oldText` or `newText` clears any in-progress "Copied" feedback immediately.
|
|
8601
8772
|
|
|
8602
8773
|
**Additional API surface:**
|
|
8603
8774
|
|
|
@@ -8627,7 +8798,9 @@ Dependency-free SVG path icon: no icon font, no sprite sheet, no network fetch.
|
|
|
8627
8798
|
**Slots:** (default) — custom SVG geometry, rendered only when neither `path` nor a known `name`
|
|
8628
8799
|
resolves. Slotted nodes are cloned into the component-owned `<svg>` (Chromium does not paint SVG
|
|
8629
8800
|
geometry distributed through a slot that sits inside an SVG), so pass plain `<path>`/`<circle>`/
|
|
8630
|
-
`<g>` elements, not a whole `<svg>`.
|
|
8801
|
+
`<g>` elements, not a whole `<svg>`. Attribute and descendant mutations to assigned geometry are
|
|
8802
|
+
mirrored live while connected; observation stops on detach and a reconnect synchronizes the latest
|
|
8803
|
+
source tree.
|
|
8631
8804
|
|
|
8632
8805
|
**CSS parts:** `svg`
|
|
8633
8806
|
|
|
@@ -8637,7 +8810,8 @@ the surrounding text with no configuration.
|
|
|
8637
8810
|
|
|
8638
8811
|
## `lr-divider`
|
|
8639
8812
|
|
|
8640
|
-
A semantic separator: renders `<hr part="base" role="separator" aria-orientation="…">`.
|
|
8813
|
+
A semantic separator: renders `<hr part="base" role="separator" aria-orientation="…">`. A host
|
|
8814
|
+
`aria-label` is forwarded to that inner semantic owner.
|
|
8641
8815
|
|
|
8642
8816
|
**Properties:** `orientation: 'horizontal' | 'vertical' = 'horizontal'` (reflected).
|
|
8643
8817
|
|
|
@@ -8665,6 +8839,9 @@ empty, which means "the runtime's default locale". Every `Intl` instance is pull
|
|
|
8665
8839
|
memoized `internal/intl-cache.ts` (one instance per locale + options pair, LRU-capped), so these are
|
|
8666
8840
|
cheap to use per row in a large table or feed.
|
|
8667
8841
|
|
|
8842
|
+
Malformed runtime options fall back to a safe option set without discarding an otherwise-valid
|
|
8843
|
+
effective locale. Only a malformed locale itself falls back to the runtime default.
|
|
8844
|
+
|
|
8668
8845
|
**Properties:**
|
|
8669
8846
|
- `value: number = 0`
|
|
8670
8847
|
- `currency: string = ''` — an ISO 4217 code (`'EUR'`, `'JPY'`). Non-empty switches the formatter to
|
|
@@ -8719,7 +8896,8 @@ name is localized too. Text-only host — no CSS parts, events, or own tokens; l
|
|
|
8719
8896
|
|
|
8720
8897
|
The unit ladder is fixed at `byte`, `kilobyte`, `megabyte`, `gigabyte`, `terabyte`, `petabyte` and
|
|
8721
8898
|
saturates at the top; the index is `floor(log|value| / log(unitStep))`, and `0` always formats as
|
|
8722
|
-
bytes.
|
|
8899
|
+
bytes. Magnitudes below one byte, including negative values, stay in the `byte` unit rather than
|
|
8900
|
+
forming a negative unit index. `unitStep` is normalized to a finite number `> 1` (a step of exactly `1` would divide by
|
|
8723
8901
|
`log(1) === 0`) falling back to `1024`; `decimals` is clamped to `[0, 10]` — an out-of-range value
|
|
8724
8902
|
would otherwise throw a `RangeError` from `maximumFractionDigits`. Note that `unitStep: 1024` still
|
|
8725
8903
|
prints the SI-named `kB`/`MB` units, not `KiB`/`MiB` — `Intl` has no binary unit names.
|
|
@@ -8778,7 +8956,8 @@ field currently has focus.
|
|
|
8778
8956
|
|
|
8779
8957
|
**Events:** `input` (every keystroke), `change` (a field blur where the composite value newly
|
|
8780
8958
|
transitioned), plus re-dispatched bubbling/composed `focus` and `blur` (`blur` fires once when focus
|
|
8781
|
-
leaves all three fields, not per field-to-field Tab
|
|
8959
|
+
leaves all three fields, not per field-to-field Tab; each entry into the control likewise produces
|
|
8960
|
+
exactly one public `focus`, with the private trusted focus suppressed). `input`/`change` detail is
|
|
8782
8961
|
`{ value, day, month, year, field }` — `value` is the canonical ISO date or `''`, `day`/`month`/`year`
|
|
8783
8962
|
are the live raw typed text, and `field` is `'day' | 'month' | 'year'`, whichever was last edited.
|
|
8784
8963
|
|
|
@@ -8897,6 +9076,8 @@ directional `fade-*` effects).
|
|
|
8897
9076
|
- The host is `display: block`. For an inline text-fragment swap inside a sentence, override
|
|
8898
9077
|
`lr-random-content { display: inline; }` from outside; `display: contents` is deliberately not
|
|
8899
9078
|
used (a11y-tree inconsistencies across engines).
|
|
9079
|
+
- Slot/focus microtasks and autoplay never queue new selection work while detached; reconnecting
|
|
9080
|
+
starts again from current state rather than replaying stale work.
|
|
8900
9081
|
|
|
8901
9082
|
## `lr-tour`
|
|
8902
9083
|
|
|
@@ -8911,8 +9092,8 @@ controls and a step-progress indicator. Controlled component — `steps` is neve
|
|
|
8911
9092
|
`start()`/`end()`
|
|
8912
9093
|
- `steps: TourStep[] = []` (attribute: false) — empty renders nothing
|
|
8913
9094
|
- `activeIndex: number = 0` (attribute `active-index`, reflected) — clamped to
|
|
8914
|
-
`[0, steps.length - 1]
|
|
8915
|
-
`goToStep()`
|
|
9095
|
+
`[0, steps.length - 1]` as a finite integer, including for a direct property/attribute write that
|
|
9096
|
+
bypasses `goToStep()`; fractions floor and non-finite values fall back to `0`
|
|
8916
9097
|
- `placement: Placement = 'bottom'` (reflected) — tour-level Floating UI default, overridable per
|
|
8917
9098
|
step; resolved through `rtlAwarePlacement()`
|
|
8918
9099
|
- `distance: number = 12` — px offset between target and popover. Tour-level only (no per-step
|
|
@@ -8929,9 +9110,11 @@ controls and a step-progress indicator. Controlled component — `steps` is neve
|
|
|
8929
9110
|
**Exported types:** `TourStep { id: string; target: TourTarget; heading: string; content?: string;
|
|
8930
9111
|
placement?: Placement; spotlightPadding?: number; interactiveTarget?: boolean; hidePrevious?: boolean }`;
|
|
8931
9112
|
`TourTarget = string | HTMLElement | (() => HTMLElement | null)` — a string resolves via
|
|
8932
|
-
`ownerDocument.querySelector` (top-level light DOM only)
|
|
8933
|
-
|
|
8934
|
-
|
|
9113
|
+
`ownerDocument.querySelector` (top-level light DOM only). Every form resolves exactly once when the
|
|
9114
|
+
step becomes active and is kept as one connected snapshot for that activation, then resolves again
|
|
9115
|
+
on a later activation/reconnect. Invalid selectors, throwing resolvers, non-`HTMLElement` results,
|
|
9116
|
+
and detached elements use the normal missing-target path instead of throwing. `heading` is required
|
|
9117
|
+
and becomes the panel's accessible name; `content` renders as plain text (no HTML/markdown parsing).
|
|
8935
9118
|
`TourEndReason = 'completed' | 'skip' | 'escape' | 'api' | 'unmount' | (string & {})`.
|
|
8936
9119
|
|
|
8937
9120
|
**Methods:** `start(index = 0)` (clamps, opens, emits `lr-tour-start`), `next()` (on the last step
|
|
@@ -8953,8 +9136,9 @@ step: a consumer needing different rich content per step swaps the slotted child
|
|
|
8953
9136
|
|
|
8954
9137
|
**CSS parts:** `backdrop` (the full-viewport `<svg>` scrim with the cutout, `aria-hidden`),
|
|
8955
9138
|
`spotlight` (the decorative ring around the padded target rect, `pointer-events: none`),
|
|
8956
|
-
`popover` (the step panel, `role="dialog" aria-modal="true"
|
|
8957
|
-
|
|
9139
|
+
`popover` (the step panel, `role="dialog"`, `aria-modal="true"` for default steps and `"false"` for
|
|
9140
|
+
an `interactiveTarget` step, `data-unanchored` when the target didn't resolve), `heading` (the
|
|
9141
|
+
`aria-labelledby` target), `body` (slot or `step.content`),
|
|
8958
9142
|
`progress` (wrapper), `progress-text` (the "Step X of Y" text — an `aria-describedby` target),
|
|
8959
9143
|
`progress-dot` (one decorative dot per step, `data-current` on the active one, `aria-hidden`),
|
|
8960
9144
|
`footer` (the control row), `previous-button`, `skip-button`, `next-button` (the Next control's
|
|
@@ -8979,23 +9163,23 @@ rather than per component.
|
|
|
8979
9163
|
**Known gotchas:**
|
|
8980
9164
|
- By default the spotlighted target is **non-interactive**: it stays visible and announceable (not
|
|
8981
9165
|
`inert`, not `aria-hidden`) but every pointer event over the viewport is captured by the backdrop.
|
|
8982
|
-
|
|
8983
|
-
|
|
8984
|
-
|
|
8985
|
-
|
|
8986
|
-
(including the target, which lives outside this element) `inert`. `role="dialog"` +
|
|
8987
|
-
`aria-modal="true"` are still rendered on the panel so screen readers confine their virtual cursor.
|
|
9166
|
+
A default step uses a modal overlay and traps focus in the panel. Set `step.interactiveTarget` to
|
|
9167
|
+
clip the backdrop around the target, switch the panel to nonmodal semantics, and install an
|
|
9168
|
+
explicit two-way Tab route between the panel and the live target, so both pointer and keyboard
|
|
9169
|
+
interaction remain reachable.
|
|
8988
9170
|
- Each step transition mounts a genuinely new popover node (keyed on `step.id`) so focus reliably
|
|
8989
9171
|
re-enters the panel — don't cache a reference to `[part="popover"]` across steps.
|
|
8990
9172
|
- No `Home`/`End` shortcut and no click-to-jump progress dots (unlike `lr-stepper`): later steps may
|
|
8991
9173
|
depend on an earlier step's side effect having run. `goToStep()` is available for a caller that
|
|
8992
9174
|
knows better. ArrowRight/ArrowLeft do move between steps (swapped under RTL), except while focus
|
|
8993
9175
|
is in an `input`/`textarea`/`contenteditable` inside slotted content.
|
|
8994
|
-
- A direct `HTMLElement` target
|
|
8995
|
-
|
|
8996
|
-
|
|
9176
|
+
- A direct `HTMLElement` target must be connected at activation and is treated as missing after a
|
|
9177
|
+
remount; prefer a selector string or resolver function for targets that can be replaced between
|
|
9178
|
+
activations.
|
|
8997
9179
|
- The active step's target is `scrollIntoView({ block: 'center' })`'d on activation, smoothly unless
|
|
8998
9180
|
`prefers-reduced-motion: reduce`.
|
|
9181
|
+
- Changing `placement`, `distance`, or tour-level `spotlightPadding` while open repositions/repaints
|
|
9182
|
+
the current step live without scrolling again or emitting a duplicate `lr-tour-target-missing`.
|
|
8999
9183
|
|
|
9000
9184
|
# Media, files & maps (`components/media/`)
|
|
9001
9185
|
|
|
@@ -9254,7 +9438,9 @@ and additive plain-GeoJSON `dataLayers`, plus a raw `map` escape hatch for anyth
|
|
|
9254
9438
|
content, sanitize anything derived from user input first; prefer `label` (`Popup.setText()`,
|
|
9255
9439
|
escaped) when the content is plain text. A marker whose `color` changes for a persisting `id`
|
|
9256
9440
|
can't be recolored in place (no `Marker.setColor()`) and is torn down/reconstructed instead — see
|
|
9257
|
-
gotchas.
|
|
9441
|
+
gotchas. Entries with non-finite coordinates or latitude outside `[-90, 90]` are skipped without
|
|
9442
|
+
aborting valid siblings. `color` is used only when the browser accepts it as CSS `color`;
|
|
9443
|
+
declaration breaks and `url()` paint servers fall back to MapLibre's default marker color.
|
|
9258
9444
|
- `dataLayers: GeoJsonDataLayer[] = []` (attribute: false) — `GeoJsonDataLayer { sourceId: string;
|
|
9259
9445
|
geojson: GeoJSON.Feature | GeoJSON.FeatureCollection; tone?: 'accent' | 'success' | 'warning' |
|
|
9260
9446
|
'danger' | 'neutral' }`. Each entry adds one GeoJSON source plus three layers
|
|
@@ -9266,10 +9452,9 @@ and additive plain-GeoJSON `dataLayers`, plus a raw `map` escape hatch for anyth
|
|
|
9266
9452
|
is: an entry whose `sourceId` persists across a `dataLayers` reassignment gets its GeoJSON updated
|
|
9267
9453
|
in place (`setData()`), one that's dropped has its source/layers removed, and a genuinely new
|
|
9268
9454
|
`sourceId` gets a new source/layers — nothing leaks on removal, style change, or disconnect.
|
|
9269
|
-
- `label: string = ''` — accessible
|
|
9270
|
-
`aria-label
|
|
9271
|
-
`
|
|
9272
|
-
falls back to the localized `'map'` message.
|
|
9455
|
+
- `label: string = ''` — accessible-name fallback for MapLibre's actual focusable canvas. A plain
|
|
9456
|
+
host `aria-label` takes precedence over `label`; with neither set, the canvas uses the localized
|
|
9457
|
+
`'map'` message. The non-semantic `[part="base"]` wrapper is not named instead.
|
|
9273
9458
|
|
|
9274
9459
|
**Getters:** `map` → the raw `maplibregl.Map` instance.
|
|
9275
9460
|
|
|
@@ -9328,6 +9513,10 @@ https://maplibre.org/maplibre-gl-js/docs/#esm.
|
|
|
9328
9513
|
layer/source maplibre-gl knows about.
|
|
9329
9514
|
- Point markers now have a declarative API (`markers`, above) with popup support — the `.map` escape
|
|
9330
9515
|
hatch and manual `new maplibregl.Marker()` are no longer the only way to place pins.
|
|
9516
|
+
- A marker uses `label` as its accessible name, falling back to the localized map label. Popup
|
|
9517
|
+
ownership is exposed through `aria-controls`/`aria-expanded`; an open popup is a named
|
|
9518
|
+
`role="dialog"` and its close button is localized. The map canvas, markers, popups, and MapLibre's
|
|
9519
|
+
own control strings all follow the component's effective locale.
|
|
9331
9520
|
- a marker whose `color` changes for a persisting `id` is torn down and reconstructed (maplibre-gl's
|
|
9332
9521
|
`Marker` has no `setColor()`) rather than mutated in place — this also closes any popup the user
|
|
9333
9522
|
currently has open on that marker (a fresh, closed `Popup` is built for the new instance); an
|
|
@@ -9402,10 +9591,14 @@ file can be selected at a time.'`), and — for `'directory'` — the pre-existi
|
|
|
9402
9591
|
itself. The region is cleared (and unrendered) as soon as a subsequent selection rejects nothing.
|
|
9403
9592
|
|
|
9404
9593
|
**Slots:** default slot — custom dropzone content, overrides the `label` attribute text when
|
|
9405
|
-
provided. The accessible name
|
|
9406
|
-
announces correctly.
|
|
9407
|
-
|
|
9408
|
-
|
|
9594
|
+
provided. The semantic button's accessible name comes from `accessibleLabel`/host `aria-label`,
|
|
9595
|
+
then `label`, so icon-only slot content still announces correctly. Slotted content is a sibling of
|
|
9596
|
+
the button rather than nested inside it: links, buttons, inputs, and other interactive slotted
|
|
9597
|
+
controls keep their own activation and do not also open the picker; clicking non-interactive custom
|
|
9598
|
+
content still activates the dropzone.
|
|
9599
|
+
|
|
9600
|
+
**CSS parts:** `base` (the native dropzone button, visually behind but semantically beside the
|
|
9601
|
+
slotted content), `input`, `status` (a visually-hidden `role="status" aria-live="polite"`
|
|
9409
9602
|
element carrying the drag accept/reject announcement and the aggregate accepted/rejected count),
|
|
9410
9603
|
`rejection` (a **visible** `role="alert"` region, rendered only while a rejection exists, listing
|
|
9411
9604
|
each currently-rejected file next to a per-reason message — in addition to, never in place of, the
|
|
@@ -9680,7 +9873,9 @@ type wins; filename extension fallback is used only for an empty or `application
|
|
|
9680
9873
|
MIME type. Unknown values return a generic file result.
|
|
9681
9874
|
|
|
9682
9875
|
**Properties:** `mimeType` (attribute `mime-type`), `name`, `size` (bytes; `0` renders no size),
|
|
9683
|
-
`label`, `decorative`, and `variant: 'icon' | 'label'`.
|
|
9876
|
+
`label`, `decorative`, and `variant: 'icon' | 'label'`. A host `aria-label` wins over the computed
|
|
9877
|
+
localized file-type/size name. `decorative` changes the semantic owner to presentation and renders
|
|
9878
|
+
`aria-hidden="true"` explicitly.
|
|
9684
9879
|
|
|
9685
9880
|
**CSS parts:** `base`, `icon`, `label`, and `size`.
|
|
9686
9881
|
|
|
@@ -9717,7 +9912,9 @@ final.
|
|
|
9717
9912
|
- `maxHeight: string = ''` (attribute `max-height`) — a CSS length (e.g. `"16rem"`); once set,
|
|
9718
9913
|
overrides the `--lr-media-card-max-height` custom property for this instance only (applied
|
|
9719
9914
|
inline on `[part="base"]`, so it reliably wins over a `:host{}`-declared default from outside the
|
|
9720
|
-
shadow root) — same contract as `<lr-document-preview>`'s identically-named prop.
|
|
9915
|
+
shadow root) — same contract as `<lr-document-preview>`'s identically-named prop. Values that do
|
|
9916
|
+
not parse as CSS `max-height`, contain declaration breaks, or contain `url()` are ignored, leaving
|
|
9917
|
+
the stylesheet token in control.
|
|
9721
9918
|
- `appearance: 'card' | 'plain' = 'card'` (reflected) — visual chrome, mirroring
|
|
9722
9919
|
`<lr-source-card>`'s `appearance` vocabulary. `'card'` (the default) keeps the bordered, filled
|
|
9723
9920
|
box. `'plain'` removes `[part="base"]`'s border, background, padding, and corner radius, so a
|
|
@@ -9819,10 +10016,10 @@ capability as a row.
|
|
|
9819
10016
|
attribute.
|
|
9820
10017
|
- `disabled: boolean = false` (reflected)
|
|
9821
10018
|
- `triggerLabel?: string` (attribute `trigger-label`) — overrides the single-capability trigger
|
|
9822
|
-
button's
|
|
9823
|
-
`'Attach files'`); only affects the single-capability button (`[part='trigger']`)
|
|
9824
|
-
multi-capability
|
|
9825
|
-
|
|
10019
|
+
button's accessible-name fallback, which otherwise comes from the localized capability metadata
|
|
10020
|
+
(e.g. `'Attach files'`); only affects the single-capability button (`[part='trigger']`). The
|
|
10021
|
+
multi-capability trigger uses its localized `'Add attachment'` fallback. A host `aria-label`
|
|
10022
|
+
takes precedence on either trigger shape.
|
|
9826
10023
|
- `triggerTitle?: string` (attribute `trigger-title`) — forwards a sighted-user hover tooltip to
|
|
9827
10024
|
both the single-capability and multi-capability trigger buttons
|
|
9828
10025
|
|
|
@@ -9835,8 +10032,8 @@ default) — fired when the `camera` / `audio` capability is activated; this com
|
|
|
9835
10032
|
capture UI of its own, the host owns everything from here (there's no single right answer for
|
|
9836
10033
|
`getUserMedia` vs. `<input capture>` vs. a native wrapper's own camera API; for `audio` the
|
|
9837
10034
|
typical host response is opening `<lr-push-to-talk>` in an overlay, then handing the resulting
|
|
9838
|
-
blob to `<lr-attachment-chip>`).
|
|
9839
|
-
host events.
|
|
10035
|
+
blob to `<lr-attachment-chip>`). `focus`/`blur` from the active single- or multi-capability trigger
|
|
10036
|
+
are re-emitted as bubbling, composed host events; the hidden file input is not the focus owner.
|
|
9840
10037
|
|
|
9841
10038
|
**Slots:** none — capabilities are configured entirely via the `capabilities` prop.
|
|
9842
10039
|
|
|
@@ -9873,6 +10070,8 @@ hidden via CSS by default, exposed as a part only so a consumer can override tha
|
|
|
9873
10070
|
- The `camera`/`audio` capabilities never touch the hidden `<input type="file">` at all — both are
|
|
9874
10071
|
scope-limited by design to firing `lr-camera-request`/`lr-audio-request` and nothing else. The
|
|
9875
10072
|
hidden input is only rendered when `capabilities` contains `files` or `image`.
|
|
10073
|
+
- Setting `disabled` closes an open capability menu, disables its items as well as the trigger, and
|
|
10074
|
+
discards a native file selection that arrives after the component became disabled.
|
|
9876
10075
|
|
|
9877
10076
|
**Additional API surface:**
|
|
9878
10077
|
|
|
@@ -9906,10 +10105,10 @@ it in a `<button>`/`<lr-menu>` trigger for a user-menu affordance.
|
|
|
9906
10105
|
|
|
9907
10106
|
**Events:** none.
|
|
9908
10107
|
|
|
9909
|
-
**Slots:** default slot — icon/glyph content (e.g. an inline SVG
|
|
9910
|
-
initials, e.g. to mark a chat avatar as "AI" vs. "user" with a role
|
|
9911
|
-
`src` and `initials`. The glyph is treated as decorative
|
|
9912
|
-
for an accessible name.
|
|
10108
|
+
**Slots:** default slot — icon/glyph content (e.g. an inline SVG or non-whitespace text/emoji),
|
|
10109
|
+
shown in place of the image and initials, e.g. to mark a chat avatar as "AI" vs. "user" with a role
|
|
10110
|
+
glyph. Takes priority over both `src` and `initials`. The glyph is treated as decorative
|
|
10111
|
+
(`aria-hidden`) — set `alt` alongside it for an accessible name.
|
|
9913
10112
|
|
|
9914
10113
|
**CSS parts:** `base` (the outer circle/square container), `icon` (wrapper around the slotted
|
|
9915
10114
|
icon/glyph, only shown while the slot has assigned content), `image` (the `<img>`, only rendered
|
|
@@ -9938,7 +10137,8 @@ override it on the element for a size the built-in scale doesn't cover. Plus sha
|
|
|
9938
10137
|
|
|
9939
10138
|
**Known gotchas:**
|
|
9940
10139
|
- an image load failure falls back to `initials` automatically. Changing `src` clears the failure
|
|
9941
|
-
state so the replacement URL gets its own load attempt
|
|
10140
|
+
state so the replacement URL gets its own load attempt, including when a later transition returns
|
|
10141
|
+
to a URL that failed previously.
|
|
9942
10142
|
- when `alt` or host `aria-label` supplies a name, the base preserves that name through the
|
|
9943
10143
|
initials fallback while hiding duplicate initials text from assistive technology.
|
|
9944
10144
|
|
|
@@ -9998,6 +10198,8 @@ backgrounded circle around the button; only rendered once loaded and error-free)
|
|
|
9998
10198
|
- both `image` and `canvas` stay mounted at all times (never `display: none`/removed) so the
|
|
9999
10199
|
browser's native decode loop keeps running while visually covered; only opacity and `aria-hidden`
|
|
10000
10200
|
swap.
|
|
10201
|
+
- reduced-motion arbitration is re-evaluated on every reconnect, so a preference change made while
|
|
10202
|
+
the element was detached cannot leave `playing` stale.
|
|
10001
10203
|
|
|
10002
10204
|
**Additional API surface:**
|
|
10003
10205
|
|
|
@@ -10034,7 +10236,7 @@ Declaratively animates one slotted element through the native Web Animations API
|
|
|
10034
10236
|
`threshold: number | number[] = 0` (both attribute: false) plus `rootMargin: string = '0px'`
|
|
10035
10237
|
(attribute `root-margin`) configure that observer.
|
|
10036
10238
|
- `currentTime: number` — the underlying `Animation.currentTime` (`0` when no animation exists);
|
|
10037
|
-
writable, forwarded to the animation when one exists.
|
|
10239
|
+
writable, forwarded to the animation when one exists. Non-finite assignments are ignored.
|
|
10038
10240
|
|
|
10039
10241
|
**Methods:** `start()` (sugar for `play = true` — named `start` because `play` is already a
|
|
10040
10242
|
property), `pause()` (`play = false`), `finish()`, `cancel()`.
|
|
@@ -10107,6 +10309,9 @@ badge label. `size` swaps it per tier (`var(--lr-font-size-xs)` at `sm`, `var(--
|
|
|
10107
10309
|
caps read at the same optical weight; override it alongside `--lr-avatar-font-size` on the avatars
|
|
10108
10310
|
themselves when tuning a custom tier.
|
|
10109
10311
|
|
|
10312
|
+
The overflow badge keeps a 40×40px minimum activation target at `sm`, `md`, and `lg`; this does not
|
|
10313
|
+
change the visible avatar circles themselves.
|
|
10314
|
+
|
|
10110
10315
|
**Optional peer deps:** none.
|
|
10111
10316
|
|
|
10112
10317
|
```html
|
|
@@ -10144,16 +10349,17 @@ trap, Escape/backdrop dismissal, scroll lock, and focus return.
|
|
|
10144
10349
|
event) when `images` shrinks.
|
|
10145
10350
|
- `loop: boolean = false` (reflected) — wraps prev/next past the ends.
|
|
10146
10351
|
- `noLightDismiss: boolean = false` (attribute `no-light-dismiss`) — opts out of backdrop dismissal.
|
|
10147
|
-
- `showCounter: boolean = true` (attribute `show-counter`) — shows `[part="counter"]
|
|
10148
|
-
live-region announcement.
|
|
10352
|
+
- `showCounter: boolean = true` (attribute `show-counter`) — shows the visible `[part="counter"]`.
|
|
10353
|
+
The independent `[part="live-region"]` announcement remains active when the counter is hidden.
|
|
10149
10354
|
- `minZoom: number = 0.5`, `maxZoom: number = 4`, `zoomStep: number = 0.25` (attributes `min-zoom`/
|
|
10150
10355
|
`max-zoom`/`zoom-step`) — pure pass-throughs to the embedded `<lr-zoomable-frame>`, which does the
|
|
10151
10356
|
normalizing.
|
|
10152
10357
|
- `accessibleLabel: string | null = null` (attribute `aria-label`) — the panel's accessible name,
|
|
10153
10358
|
overriding the localized `lightboxLabel`.
|
|
10154
10359
|
|
|
10155
|
-
**Methods:** `next()`, `previous()`, `goTo(index)`, `close(reason?)` — `
|
|
10156
|
-
|
|
10360
|
+
**Methods:** `next()`, `previous()`, `goTo(index)`, `close(reason?)` — `goTo()` ignores a non-finite
|
|
10361
|
+
index without changing state or emitting `lr-index-change`; `reason` defaults to `'api'` and is
|
|
10362
|
+
forwarded as the close event's detail.
|
|
10157
10363
|
|
|
10158
10364
|
**Events:** `lr-lightbox-close` (`detail: LyraLightboxCloseReason = 'escape' | 'backdrop' |
|
|
10159
10365
|
'close-button' | 'api' | 'unmount' | (string & {})`; **cancelable** — `preventDefault()` blocks
|
|
@@ -10198,12 +10404,14 @@ photo content.
|
|
|
10198
10404
|
|
|
10199
10405
|
## `lr-qr-code`
|
|
10200
10406
|
|
|
10201
|
-
Renders `value` as a QR code using the optional `qrcode` peer dependency. **Properties:** `value`,
|
|
10202
|
-
`size`, `radius`, and `errorCorrection` (`error-correction`, `L`/`M`/`Q`/`H`). The canvas
|
|
10203
|
-
its accessible name uses `label`,
|
|
10407
|
+
Renders `value` as a QR code using the optional `qrcode` peer dependency. **Properties:** `value`,
|
|
10408
|
+
`label`, `size`, `radius`, and `errorCorrection` (`error-correction`, `L`/`M`/`Q`/`H`). The canvas
|
|
10409
|
+
owns `role="img"`; its accessible name uses host `aria-label`, then `label`, then `value`. Empty
|
|
10410
|
+
values render an empty state.
|
|
10204
10411
|
**CSS parts:** `base`, `canvas`, `empty`, `loading`, and `error`. **CSS custom properties:**
|
|
10205
|
-
`--lr-qr-code-fill` and `--lr-qr-code-background`.
|
|
10206
|
-
|
|
10412
|
+
`--lr-qr-code-fill` and `--lr-qr-code-background`. Ancestor theme-attribute and color-scheme
|
|
10413
|
+
changes redraw automatically. Call `refreshTheme()` only for consumer-owned token changes that
|
|
10414
|
+
aren't represented by those signals.
|
|
10207
10415
|
|
|
10208
10416
|
## `lr-image-viewer`
|
|
10209
10417
|
|
|
@@ -10234,6 +10442,11 @@ zoom }`), `lr-rotation-change` (`detail: { rotation }`), `lr-fit-change` (`detai
|
|
|
10234
10442
|
embedded `lr-zoomable-frame`), `image-wrapper`, `image`, `highlight-layer`, `highlight` (carries
|
|
10235
10443
|
`data-tone`/`data-active`), `highlight-label`, `annotation-box`, and `error`.
|
|
10236
10444
|
|
|
10445
|
+
While `annotatable`, `image-wrapper` is a named `role="group"` with the localized annotation hint.
|
|
10446
|
+
Only `region` highlights whose `rect` contains finite numeric `x`/`y`/`width`/`height` and
|
|
10447
|
+
nonnegative dimensions are rendered; malformed rectangles are omitted rather than reaching inline
|
|
10448
|
+
styles or anchor hit testing.
|
|
10449
|
+
|
|
10237
10450
|
**Themeable custom properties:** `--lr-image-viewer-annotate-active-bg` (default
|
|
10238
10451
|
`var(--lr-color-brand-quiet)`) and `--lr-image-viewer-annotate-active-border` (default
|
|
10239
10452
|
`var(--lr-color-brand)`) — the background and border of `[part='annotate-toggle']` while annotation
|
|
@@ -10273,9 +10486,17 @@ number[] = []` (attribute: false), and `tracks: LyraAvTrack[] = []` (attribute:
|
|
|
10273
10486
|
`LyraAvCue = { id, start, end?, text, speaker? }`; `LyraAvTrack = { src, kind: 'subtitles' |
|
|
10274
10487
|
'captions' | 'descriptions', srclang, label, default? }`.
|
|
10275
10488
|
|
|
10276
|
-
|
|
10277
|
-
|
|
10278
|
-
|
|
10489
|
+
Runtime numeric input is normalized before it reaches media, canvas, or `Intl`: cue/highlight times
|
|
10490
|
+
and waveform peaks are clamped to their valid ranges; non-finite native duration/current time
|
|
10491
|
+
cannot leak into state or events. `rates` keeps only unique finite values in the supported
|
|
10492
|
+
`0.0625..16` range, while always including the normalized current `playbackRate`.
|
|
10493
|
+
|
|
10494
|
+
**Methods:** `play(): Promise<void>` proxies the native media element and preserves its native
|
|
10495
|
+
promise/rejection (before the media mounts it returns an already-resolved promise). `pause()` and
|
|
10496
|
+
`toggle()` proxy the native element; an internal toggle that cannot start playback renders the
|
|
10497
|
+
error state and emits `lr-render-error`. `seek(seconds)` sets `currentTime` and forces an immediate
|
|
10498
|
+
`lr-time-change`. `search(query)` resolves the match count; `searchNext()`/`searchPrevious()` wrap;
|
|
10499
|
+
`clearSearch()` resets.
|
|
10279
10500
|
|
|
10280
10501
|
**Events:** `lr-play`, `lr-pause`, `lr-load` (`detail: { duration, kind }`), `lr-time-change`
|
|
10281
10502
|
(`detail: { currentTime }`, throttled to at most 4/s while playing plus one extra per `seek()`),
|
|
@@ -10344,9 +10565,12 @@ Chart.js wrapper every other `lr-*-chart` tag subclasses; supports both a simpli
|
|
|
10344
10565
|
unknown runtime attribute/property values fall back to `line` before reaching Chart.js
|
|
10345
10566
|
- `labels: string[] = []` (attribute: false)
|
|
10346
10567
|
- `datasets: Series[] = []` (attribute: false) — `Series { label: string; data?: (number|null)[];
|
|
10347
|
-
points?:
|
|
10568
|
+
points?: ChartPoint[]; color?: string|string[]; fill?: boolean; width?: number; dash?: boolean;
|
|
10348
10569
|
noTooltip?: boolean; axis?: 'y'|'y2'; pointColors?: string[]; pointRadius?: number|number[];
|
|
10349
|
-
segmentColors?: string[]; type?: 'line'|'bar' }
|
|
10570
|
+
segmentColors?: string[]; type?: 'line'|'bar' }`. Both the package root and granular chart entry
|
|
10571
|
+
export `ChartPoint { x: number; y: number; r?: number; label?: string }`: `r` is the bubble
|
|
10572
|
+
radius, and the optional per-point `label` is retained by events, CSV export, keyboard
|
|
10573
|
+
announcements, generated summaries, and the accessible table.
|
|
10350
10574
|
- `pointRadius` takes a single number (applied to every point) **or** an array matching `data`'s
|
|
10351
10575
|
length that sizes each point independently — passed straight through to Chart.js, which
|
|
10352
10576
|
supports both natively. Useful for emphasizing a single outlier or the latest reading without
|
|
@@ -10357,7 +10581,11 @@ Chart.js wrapper every other `lr-*-chart` tag subclasses; supports both a simpli
|
|
|
10357
10581
|
`segment.borderColor` scriptable option, so it is only meaningful for line-type series.
|
|
10358
10582
|
Typical use is threshold/anomaly banding along one line. A series that omits it (or passes an
|
|
10359
10583
|
empty array) emits no `segment` key at all, leaving line rendering exactly as before.
|
|
10360
|
-
- `legend: boolean = false`
|
|
10584
|
+
- `legend: boolean = false` — renders a wrapping DOM legend whose keyboard-operable buttons toggle
|
|
10585
|
+
dataset visibility. The DOM surface preserves long public labels that a canvas legend would clip.
|
|
10586
|
+
Its pressed state honors an effective dataset's declarative `hidden` value before Chart.js is
|
|
10587
|
+
ready and across chart type/plugin rebuilds, while an in-place redraw preserves an explicit
|
|
10588
|
+
legend-button toggle.
|
|
10361
10589
|
- `legendPosition: LyraChartLegendPosition = 'top'` (attribute `legend-position`) — places the
|
|
10362
10590
|
legend at `top`, `right`, `bottom`, or `left`; `auto` chooses right above 480px and bottom below
|
|
10363
10591
|
that allocation width
|
|
@@ -10395,6 +10623,11 @@ Chart.js wrapper every other `lr-*-chart` tag subclasses; supports both a simpli
|
|
|
10395
10623
|
- `config?: Partial<ChartConfiguration>` (attribute: false) — deep-merged over the generated
|
|
10396
10624
|
config; any nested key wins without clobbering sibling generated keys. This is the raw Chart.js
|
|
10397
10625
|
escape hatch, so a caller-supplied `config.type` is passed through rather than normalized.
|
|
10626
|
+
Explicit `config.data.labels` and `config.data.datasets` arrays are authoritative independently:
|
|
10627
|
+
an omitted member still comes from the simplified `labels`/`datasets` properties, while an
|
|
10628
|
+
explicit array replaces that generated member rather than concatenating with it. This effective
|
|
10629
|
+
model drives canvas rendering, `appendData()`, export, the accessible name/summary, keyboard
|
|
10630
|
+
navigation and activation events, the DOM legend, and the generated fallback table.
|
|
10398
10631
|
- `accessibleLabel: string = ''` (attribute `accessible-label`) — canvas name override; a host
|
|
10399
10632
|
`aria-label` has highest precedence
|
|
10400
10633
|
- `accessibleDescription: string = ''` (attribute `accessible-description`) — overrides the
|
|
@@ -10405,15 +10638,23 @@ Chart.js wrapper every other `lr-*-chart` tag subclasses; supports both a simpli
|
|
|
10405
10638
|
canvas-local coordinates (`top`, `left`, `right`, `bottom`, `width`, `height`), when a chart is
|
|
10406
10639
|
drawn
|
|
10407
10640
|
- `appendData(label, values, maxPoints?)` — appends one aligned numeric category and optionally
|
|
10408
|
-
keeps only the newest `maxPoints
|
|
10641
|
+
keeps only the newest `maxPoints`. Each labels/datasets member is written back to the surface
|
|
10642
|
+
that owns it: an explicitly overridden `config.data` member stays in `config`, while an omitted
|
|
10643
|
+
member continues through the simplified property and retains its generated Chart.js styling.
|
|
10644
|
+
Point-based scatter/bubble series are left unchanged because appending their x/y/r coordinates
|
|
10645
|
+
needs a richer caller-defined contract.
|
|
10409
10646
|
|
|
10410
10647
|
**Methods:** `resetZoom()` resets any active zoom/pan to the original view. `refreshTheme()` forces
|
|
10411
10648
|
a redraw so the `--lr-chart-*` tokens below are re-read from the current computed style. A
|
|
10412
10649
|
built-in `ThemeWatcher` now calls this automatically when `prefers-color-scheme` flips or an
|
|
10413
10650
|
ancestor's `class`/`style`/`data-theme`/`data-color-scheme` attribute mutates — the most common
|
|
10414
10651
|
theme-toggle mechanisms — so a consumer rarely needs to call it by hand; it remains public as the
|
|
10415
|
-
escape hatch for theme changes those signals can't observe.
|
|
10416
|
-
|
|
10652
|
+
escape hatch for theme changes those signals can't observe. Canvas redraw remains visibility-gated;
|
|
10653
|
+
when a DOM legend is present its computed swatch colors are refreshed too.
|
|
10654
|
+
`exportData('csv' | 'png')` returns a spreadsheet-safe CSV snapshot or the current PNG data URL
|
|
10655
|
+
when Chart.js is loaded. Numeric datasets retain the compact one-column-per-series CSV shape.
|
|
10656
|
+
Point datasets expand into `<series> x`, `<series> y`, and, when present, `<series> r` and
|
|
10657
|
+
`<series> label` columns so radius and per-point labels are not flattened away.
|
|
10417
10658
|
|
|
10418
10659
|
The instance method `seriesPalette(): string[]` resolves the categorical series ramp
|
|
10419
10660
|
(`--lr-color-chart-1..8`) through `getComputedStyle` and returns the concrete, theme-aware colors —
|
|
@@ -10439,20 +10680,26 @@ const series = [
|
|
|
10439
10680
|
```
|
|
10440
10681
|
|
|
10441
10682
|
**Events:** `lr-zoom` (`detail: { zoomed: boolean }`, fired on zoom-complete and on
|
|
10442
|
-
`resetZoom()`), `lr-point-click` (fired when
|
|
10443
|
-
|
|
10444
|
-
|
|
10683
|
+
`resetZoom()`), `lr-point-click` (fired when pointer input lands on an intersecting data
|
|
10684
|
+
point/segment, when a generated-table value is activated, or when Enter/Space activates the
|
|
10685
|
+
keyboard-current canvas datum; `detail: { datasetIndex: number, index: number, label: string |
|
|
10686
|
+
undefined, value: unknown }`). For scatter/bubble points, `label` prefers the per-point label and
|
|
10687
|
+
`value` is the complete `ChartPoint`, including optional `r` and `label`.
|
|
10445
10688
|
|
|
10446
10689
|
**Slots:** `data-table` — an optional consumer-provided accessible table alternative; `center` —
|
|
10447
10690
|
optional overlay content positioned at the chart area's center, useful for doughnut and pie totals.
|
|
10448
10691
|
|
|
10449
|
-
**CSS parts:** `base`, `
|
|
10450
|
-
|
|
10451
|
-
|
|
10692
|
+
**CSS parts:** `base`, `plot` (the fixed-height canvas/overlay region), `canvas`, `legend` (the
|
|
10693
|
+
wrapping DOM legend), `legend-item` (a dataset-visibility button), `legend-swatch`,
|
|
10694
|
+
`reset-zoom-button`, `description`, `data-table`, `center` (the chart-area-centered wrapper for the
|
|
10695
|
+
`center` slot), `error` (`role="alert"` message rendered in place of `canvas` when the optional
|
|
10696
|
+
`chart.js` peer dependency fails to load)
|
|
10452
10697
|
|
|
10453
10698
|
**Themeable custom properties:** `--lr-chart-height` (set programmatically on the host from the
|
|
10454
|
-
`height` property
|
|
10455
|
-
|
|
10699
|
+
`height` property; sizes the `plot` region and the host's minimum block size, while a visible table
|
|
10700
|
+
or wrapping legend grows the host in normal flow — it must be read from the host, not a shadow-tree
|
|
10701
|
+
descendant, since custom properties only cascade downward);
|
|
10702
|
+
`--lr-chart-grid-color` (default `var(--lr-color-border)`),
|
|
10456
10703
|
`--lr-chart-tick-color` (default `var(--lr-color-text-quiet)`), `--lr-chart-legend-color`
|
|
10457
10704
|
(default `var(--lr-color-text)`), `--lr-chart-tooltip-bg` (default `var(--lr-color-surface)`),
|
|
10458
10705
|
`--lr-chart-tooltip-text` (default `var(--lr-color-text)`) — each resolved fresh via
|
|
@@ -10488,9 +10735,14 @@ subset actually used.
|
|
|
10488
10735
|
property values fall back to `line`. Each typed `lr-*-chart` subclass (e.g.
|
|
10489
10736
|
`llms/components/lr-bar-chart.md`) locks its *own* `type` via a real prototype accessor — a
|
|
10490
10737
|
genuine runtime lock, not just a compile-time default.
|
|
10491
|
-
- a built-in `ThemeWatcher`
|
|
10492
|
-
an ancestor's `class`/`style`/`data-theme`/`data-color-scheme`
|
|
10493
|
-
redraw). `refreshTheme()` stays public for out-of-band theme
|
|
10738
|
+
- a built-in `ThemeWatcher` automatically rethemes an already-drawn chart when
|
|
10739
|
+
`prefers-color-scheme` flips or an ancestor's `class`/`style`/`data-theme`/`data-color-scheme`
|
|
10740
|
+
attribute mutates (coalesced to one redraw). `refreshTheme()` stays public for out-of-band theme
|
|
10741
|
+
changes those signals can't observe.
|
|
10742
|
+
- the focusable canvas is an interactive `application`, not a static image: Arrow keys move through
|
|
10743
|
+
finite data, Home/End jump to the endpoints, and Enter/Space activates the current datum. Its
|
|
10744
|
+
localized `aria-roledescription` identifies the application as a chart; the generated table is
|
|
10745
|
+
the non-canvas alternative.
|
|
10494
10746
|
- generated `scales` are keyed off the *effective* type (`config.type` ?? `type`, see
|
|
10495
10747
|
`effectiveType()`) and are type-appropriate: no scale at all for `type="pie"`/`"doughnut"` (true of
|
|
10496
10748
|
`<lr-chart type="pie">` directly, not just the `lr-pie-chart`/`lr-doughnut-chart` subclasses),
|
|
@@ -10516,11 +10768,14 @@ subset actually used.
|
|
|
10516
10768
|
single redraw fires once it re-enters the viewport). Independently, `updated()` only reaches
|
|
10517
10769
|
Chart.js when at least one of `type`, `labels`, `datasets`, `legend`, `legendPosition`, the
|
|
10518
10770
|
internal resolved auto legend position, `valueFormatter`, `area`, `height`, `xLabel`, `yLabel`,
|
|
10519
|
-
`y2Label`, `beginAtZero`, `horizontal`, `stacked`, `
|
|
10520
|
-
internal loading state actually changed in that update (so an
|
|
10521
|
-
a bare `requestUpdate()`, draws nothing).
|
|
10522
|
-
|
|
10523
|
-
|
|
10771
|
+
`y2Label`, `beginAtZero`, `horizontal`, `stacked`, `dataLabels`, `stackTotals`, `config`, `zoom`,
|
|
10772
|
+
`locale`, `strings`, or the internal loading state actually changed in that update (so an
|
|
10773
|
+
unrelated property/state update, or a bare `requestUpdate()`, draws nothing). Resize callbacks
|
|
10774
|
+
ignore unchanged inline sizes and coalesce into one animation-frame task; a responsive legend
|
|
10775
|
+
position change and its reactive update share that same single redraw. `refreshTheme()`, resize,
|
|
10776
|
+
optional-plugin completion, and histogram data changes all use the same connected/visible gate.
|
|
10777
|
+
A theme refresh may still rerender the cheap DOM legend while off-screen so its computed swatches
|
|
10778
|
+
do not go stale, but it does not repaint the canvas there.
|
|
10524
10779
|
- Chart.js receives `effectiveLocale`; generated summary values use the same locale. Cartesian y/y2
|
|
10525
10780
|
axes swap logical sides under RTL, and host `aria-label` is forwarded to the canvas and data-table
|
|
10526
10781
|
caption.
|
|
@@ -10540,9 +10795,11 @@ passthrough). Not a subclass of `LyraChart`.
|
|
|
10540
10795
|
- `type: LyraLiteChartType = 'bar'` — `'bar' | 'line'`
|
|
10541
10796
|
- `labels: string[] = []` (attribute: false)
|
|
10542
10797
|
- `datasets: LiteSeries[] = []` (attribute: false) — `LiteSeries { label: string; data:
|
|
10543
|
-
(number|null)[]; color?: string }`
|
|
10798
|
+
(number|null)[]; color?: string }`; `color` accepts a valid CSS `color`, while invalid values,
|
|
10799
|
+
declaration-breaking input, and `url()` paint servers fall back to the built-in palette
|
|
10544
10800
|
- `legend: boolean = false`
|
|
10545
|
-
- `height: string = '280px'`
|
|
10801
|
+
- `height: string = '280px'` — accepts a valid CSS `height`; invalid values, declaration-breaking
|
|
10802
|
+
input, and `url()` leave the stylesheet's `--lr-chart-height` default/consumer override in control
|
|
10546
10803
|
- `xLabel: string = ''` (attribute `x-label`)
|
|
10547
10804
|
- `yLabel: string = ''` (attribute `y-label`)
|
|
10548
10805
|
- `beginAtZero: boolean = true` (attribute `begin-at-zero`)
|
|
@@ -10569,16 +10826,19 @@ passthrough). Not a subclass of `LyraChart`.
|
|
|
10569
10826
|
- `maxLabels?: number` (attribute `max-labels`, type Number) — decimates which category axis labels
|
|
10570
10827
|
actually render *text* when `labels.length > maxLabels` (bars themselves are never decimated, only
|
|
10571
10828
|
their axis `<text>` labels): always shows the first and last label, and roughly evenly distributes
|
|
10572
|
-
the rest between them. Works in either `layout` mode. Unset (the default) renders every label
|
|
10573
|
-
|
|
10829
|
+
the rest between them. Works in either `layout` mode. Unset (the default) renders every label.
|
|
10830
|
+
Each rendered category label is allocation-aware: narrow/long text is ellipsized before paint,
|
|
10831
|
+
with the complete caller label retained as its accessible name.
|
|
10574
10832
|
- `barX?: (index: number) => number` (attribute: false, bar type only) — overrides the internal
|
|
10575
10833
|
per-category x-origin formula (`plotX + i * slot`) used by both bars and their axis labels, so a
|
|
10576
10834
|
consumer can pixel-align this chart's bars with a sibling `<lr-heatmap>` calendar's week columns
|
|
10577
10835
|
(see that component's own `columnX`) by supplying the same coordinate function to both. Unset (the
|
|
10578
10836
|
default) is the original formula, unchanged.
|
|
10579
10837
|
- `pointText?: (label: string, value: number, datasetIndex: number) => string` (attribute: false) —
|
|
10580
|
-
overrides the per-bar/per-point `<title
|
|
10581
|
-
|
|
10838
|
+
overrides the per-bar/per-point native SVG `<title>` text (mirrors `lr-heatmap`'s `cellText`).
|
|
10839
|
+
That one `<title>` supplies both the browser tooltip and the mark's accessible name; the component
|
|
10840
|
+
does not duplicate the same string through `aria-label`. Falls back to the built-in raw-value
|
|
10841
|
+
template when unset.
|
|
10582
10842
|
- `legendText?: (label: string, datasetIndex: number) => string` (attribute: false) — appends
|
|
10583
10843
|
formatter-supplied text (e.g. a value or percentage share) after each series' label in the
|
|
10584
10844
|
built-in legend row, mirroring `pointText`/`tickFormat`'s opt-in-hook convention. Falls back to
|
|
@@ -10599,14 +10859,14 @@ passthrough). Not a subclass of `LyraChart`.
|
|
|
10599
10859
|
ignores it entirely.
|
|
10600
10860
|
- `hideAxis: boolean = false` (attribute `hide-axis`) — suppresses gridlines/y-axis tick labels
|
|
10601
10861
|
altogether; x-axis category labels (rendered separately) are unaffected.
|
|
10602
|
-
- `selectedIndex: number[] = []` (attribute: false) —
|
|
10603
|
-
|
|
10604
|
-
|
|
10605
|
-
|
|
10606
|
-
|
|
10607
|
-
|
|
10608
|
-
|
|
10609
|
-
|
|
10862
|
+
- `selectedIndex: number[] = []` (attribute: false) — applies to every interactive data mark for
|
|
10863
|
+
both `type="bar"` and `type="line"`: matching bars and line points receive `data-selected` and
|
|
10864
|
+
explicit `aria-pressed="true"`; all other marks render `aria-pressed="false"`. For a multi-series
|
|
10865
|
+
chart, the category index selects the matching mark in every dataset. Empty is the default.
|
|
10866
|
+
Style the built-in highlight through `--lr-lite-chart-selected-outline-color`. Note
|
|
10867
|
+
`::part(bar)[data-selected]` and `::part(point)[data-selected]` are **invalid CSS** — Shadow Parts
|
|
10868
|
+
forbids an attribute selector after `::part()` — so they silently never match; the outline is
|
|
10869
|
+
painted inside the shadow root and exposed through that token instead.
|
|
10610
10870
|
- `minBarHeight?: number` (attribute `min-bar-height`) — optional minimum visible bar height for
|
|
10611
10871
|
small non-zero values
|
|
10612
10872
|
- `accessibleLabel?: string` (attribute `accessible-label`) — SVG accessible-name override; a host
|
|
@@ -10614,9 +10874,11 @@ passthrough). Not a subclass of `LyraChart`.
|
|
|
10614
10874
|
- `appendData(label, values, maxPoints?)` — appends one aligned category and optionally trims the
|
|
10615
10875
|
oldest categories
|
|
10616
10876
|
|
|
10617
|
-
**Events:** `lr-point-click` — fired
|
|
10618
|
-
focused
|
|
10619
|
-
| null }` — same shape as `lr-chart`'s `lr-point-click`.
|
|
10877
|
+
**Events:** `lr-point-click` — fired for bars and line points on pointer activation or Enter/Space
|
|
10878
|
+
while focused. `detail: { datasetIndex: number, index: number, label: string | undefined, value:
|
|
10879
|
+
number | null }` — same shape as `lr-chart`'s `lr-point-click`. When different series' expanded
|
|
10880
|
+
line-point targets overlap, pointer activation selects the closest rendered point in two-dimensional
|
|
10881
|
+
screen space; an exact distance tie retains the point whose target received the click.
|
|
10620
10882
|
|
|
10621
10883
|
**Methods:** `exportData('csv' | 'svg')` returns a spreadsheet-safe CSV snapshot or the current SVG
|
|
10622
10884
|
markup. The method does not download a file; pair it with `lr-export-button` for download UX.
|
|
@@ -10631,13 +10893,13 @@ fresh, small SVG render is cheaper and more correct than a lossy cache.
|
|
|
10631
10893
|
|
|
10632
10894
|
**Slots:** none.
|
|
10633
10895
|
|
|
10634
|
-
**CSS parts:** `base`, `grid-line`, `axis-label`, `axis-title`, `bar` (each
|
|
10635
|
-
`data-selected` when its category index is in `selectedIndex
|
|
10636
|
-
`legend-item`, `legend-swatch`, `legend-text` (extra per-item text after
|
|
10637
|
-
rendered only when `legendText` is set), `live-region` (the current mark
|
|
10638
|
-
users), `data-list` (a visually hidden list of all plotted data points —
|
|
10639
|
-
`data-table` (a visually hidden category×series data table, rendered instead
|
|
10640
|
-
there is more than one dataset).
|
|
10896
|
+
**CSS parts:** `base`, `grid-line`, `axis-label`, `axis-title`, `bar` and `point` (each carries
|
|
10897
|
+
`data-selected` when its category index is in `selectedIndex`, with explicit pressed state on every
|
|
10898
|
+
mark), `line`, `legend`, `legend-item`, `legend-swatch`, `legend-text` (extra per-item text after
|
|
10899
|
+
the series label, rendered only when `legendText` is set), `live-region` (the current mark
|
|
10900
|
+
announcement for keyboard users), `data-list` (a visually hidden list of all plotted data points —
|
|
10901
|
+
single-series only), `data-table` (a visually hidden category×series data table, rendered instead
|
|
10902
|
+
of `data-list` when there is more than one dataset).
|
|
10641
10903
|
|
|
10642
10904
|
**Screen-reader data alternative:** a single dataset renders the flat `data-list` (one `<li>` per
|
|
10643
10905
|
plotted point, matching the roving-tabindex mark order). More than one dataset instead renders a
|
|
@@ -10654,10 +10916,9 @@ blank instead of reporting a misleading zero.
|
|
|
10654
10916
|
`--lr-chart-grid-color`, `--lr-chart-tick-color`, `--lr-chart-legend-color` — same token
|
|
10655
10917
|
*names* as `lr-chart`, so a host already theming `lr-chart` themes this for free;
|
|
10656
10918
|
`--lr-lite-chart-selected-outline-color` (default `var(--lr-color-brand)`) — the stroke drawn on
|
|
10657
|
-
`[part='bar'][
|
|
10658
|
-
`
|
|
10659
|
-
`
|
|
10660
|
-
plain SVG/DOM and reads these via native CSS `var()` — no JS-side resolution step, and no
|
|
10919
|
+
selected `[part='bar']` and `[part='point']` marks whose category index is in `selectedIndex`.
|
|
10920
|
+
Unlike `lr-chart` (canvas-rendered, needs `getComputedStyle`-based re-theming on every draw), this
|
|
10921
|
+
is plain SVG/DOM and reads these via native CSS `var()` — no JS-side resolution step, and no
|
|
10661
10922
|
`refreshTheme()` method needed (there's nothing to go stale).
|
|
10662
10923
|
|
|
10663
10924
|
**Optional peer deps:** none. This is the point of the component.
|
|
@@ -10679,10 +10940,18 @@ plain SVG/DOM and reads these via native CSS `var()` — no JS-side resolution s
|
|
|
10679
10940
|
always vertical.
|
|
10680
10941
|
- No dual y-axis (`Series.axis: 'y2'`) — every series shares one y-axis/domain.
|
|
10681
10942
|
- Series colors default to a fixed built-in 8-color categorical palette (round-robin by dataset
|
|
10682
|
-
index) when `color` is unset — not configurable beyond passing `color`
|
|
10683
|
-
|
|
10684
|
-
|
|
10685
|
-
|
|
10943
|
+
index) when `color` is unset or invalid — not configurable beyond passing a valid CSS `color`
|
|
10944
|
+
per series.
|
|
10945
|
+
- Bar/point elements are real focusable DOM nodes (`role="button"` with one roving `tabindex="0"`);
|
|
10946
|
+
each native SVG `<title>` is the mark's sole accessible name and tooltip. The `<svg>` itself uses
|
|
10947
|
+
`role="group"`, not `role="img"` — an image role would conflict with genuinely interactive
|
|
10948
|
+
descendants (axe's `nested-interactive` rule).
|
|
10949
|
+
- Dense transparent hit regions expand toward 24px only while remaining inside the neighboring
|
|
10950
|
+
mark's midpoint lane; stacked segments keep their own vertical region. This prevents a
|
|
10951
|
+
later-painted mark from stealing pointer input from an adjacent datum. Cross-series line targets
|
|
10952
|
+
are additionally arbitrated by two-dimensional screen distance.
|
|
10953
|
+
- In narrow allocations, category labels are ellipsized to their available lane and retain the
|
|
10954
|
+
complete label through `aria-label`; SVG overflow is contained within the host.
|
|
10686
10955
|
- Tick values use a standard "nice numbers" (1/2/5 × 10ⁿ) rounding step, not exact data min/max —
|
|
10687
10956
|
intentional (readable axis labels), matches how most charting libraries pick tick steps.
|
|
10688
10957
|
|
|
@@ -10709,16 +10978,18 @@ of every entry in these lists.**
|
|
|
10709
10978
|
(`show-data-table`), `chartArea` (readonly). `type` is the only member that differs: read-only,
|
|
10710
10979
|
locked to this tag's value.
|
|
10711
10980
|
|
|
10712
|
-
**Methods:** `
|
|
10981
|
+
**Methods:** `appendData(label, values, maxPoints?)`, `exportData('csv' | 'png')`, `resetZoom()`,
|
|
10982
|
+
`refreshTheme()`.
|
|
10713
10983
|
|
|
10714
10984
|
**Events:** `lr-zoom` (`detail: { zoomed: boolean }`), `lr-point-click` (`detail: { datasetIndex,
|
|
10715
10985
|
index, label, value }`).
|
|
10716
10986
|
|
|
10717
10987
|
**Slots:** `data-table`, `center`.
|
|
10718
10988
|
|
|
10719
|
-
**CSS parts:** `base`, `
|
|
10720
|
-
`error` (`role="alert"` message
|
|
10721
|
-
dependency fails to load — see
|
|
10989
|
+
**CSS parts:** `base`, `plot`, `canvas`, `legend`, `legend-item`, `legend-swatch`,
|
|
10990
|
+
`reset-zoom-button`, `description`, `data-table`, `center`, `error` (`role="alert"` message
|
|
10991
|
+
rendered in place of `canvas` when the optional `chart.js` peer dependency fails to load — see
|
|
10992
|
+
`llms/components/lr-chart.md`).
|
|
10722
10993
|
|
|
10723
10994
|
**Themeable custom properties:** `--lr-chart-height`, `--lr-chart-grid-color`,
|
|
10724
10995
|
`--lr-chart-tick-color`, `--lr-chart-legend-color`, `--lr-chart-tooltip-bg`,
|
|
@@ -10745,9 +11016,9 @@ same set, so one rule retunes them together.
|
|
|
10745
11016
|
- `type` truly is locked per subclass: `<lr-pie-chart type="bar">` or `el.type = 'bar'` at runtime
|
|
10746
11017
|
is a genuine no-op (the accessor's setter silently ignores the write), not a footgun like a plain
|
|
10747
11018
|
overridden class-field default would be.
|
|
10748
|
-
- `lr-bubble-chart`
|
|
10749
|
-
|
|
10750
|
-
|
|
11019
|
+
- `lr-bubble-chart` consumes the exported `ChartPoint` shape directly. Set `x`/`y`, optional `r`
|
|
11020
|
+
for bubble radius, and optional `label` for the point-level accessible/event/export label; no
|
|
11021
|
+
runtime cast is needed.
|
|
10751
11022
|
|
|
10752
11023
|
---
|
|
10753
11024
|
|
|
@@ -10775,16 +11046,20 @@ Bins `values` into `bins` equal-width buckets and renders as a bar chart (extend
|
|
|
10775
11046
|
(`accessible-label`), `accessibleDescription` (`accessible-description`), `showDataTable`
|
|
10776
11047
|
(`show-data-table`), `chartArea` (readonly).
|
|
10777
11048
|
|
|
10778
|
-
**Methods:** `resetZoom()`, `refreshTheme()` — both inherited
|
|
11049
|
+
**Methods:** `resetZoom()`, `refreshTheme()` — both inherited; plus
|
|
11050
|
+
`appendData(_label, values, maxPoints?)`, which appends finite raw samples to `values` and
|
|
11051
|
+
optionally retains only the newest `maxPoints`. The label argument is ignored because bucket
|
|
11052
|
+
labels are regenerated from the rebinned sample range.
|
|
10779
11053
|
|
|
10780
11054
|
**Events:** `lr-zoom`, `lr-point-click` — inherited; `lr-point-click`'s `index` is the bucket index
|
|
10781
11055
|
and `label` the generated bucket range string (`"lo–hi"`, both bounds at one decimal place).
|
|
10782
11056
|
|
|
10783
11057
|
**Slots:** `data-table`, `center`.
|
|
10784
11058
|
|
|
10785
|
-
**CSS parts:** `base`, `
|
|
10786
|
-
`error` (`role="alert"` message
|
|
10787
|
-
|
|
11059
|
+
**CSS parts:** `base`, `plot`, `canvas`, `legend`, `legend-item`, `legend-swatch`,
|
|
11060
|
+
`reset-zoom-button`, `description`, `data-table`, `center`, `error` (`role="alert"` message
|
|
11061
|
+
rendered in place of `canvas` when the optional `chart.js` peer dependency fails to load —
|
|
11062
|
+
inherited from `LyraChart`, unaffected by the binning logic).
|
|
10788
11063
|
|
|
10789
11064
|
**Themeable custom properties:** `--lr-chart-height`, `--lr-chart-grid-color`,
|
|
10790
11065
|
`--lr-chart-tick-color`, `--lr-chart-legend-color`, `--lr-chart-tooltip-bg`,
|
|
@@ -10810,6 +11085,9 @@ their semantics, defaults, and gotchas.
|
|
|
10810
11085
|
property write from requesting an unbounded bucket array.
|
|
10811
11086
|
- non-finite samples in `values` are dropped before bucketing rather than corrupting bucket-index
|
|
10812
11087
|
math; constant data (every sample equal) lands wholly in the **first** bucket, not the last.
|
|
11088
|
+
- `values`/`bins`/`label` changes join the inherited connected-and-visible redraw path. There is no
|
|
11089
|
+
second post-update refresh, so a same-tick disconnect cannot recreate Chart.js on a detached
|
|
11090
|
+
canvas and off-screen sample updates do not repaint it.
|
|
10813
11091
|
|
|
10814
11092
|
---
|
|
10815
11093
|
|
|
@@ -10822,7 +11100,8 @@ browser). Does **not** extend `LyraChart` — a deliberately bespoke API.
|
|
|
10822
11100
|
- `labels: string[] = []` (attribute: false)
|
|
10823
11101
|
- `boxes: BoxPlotSeries[] = []` (attribute: false) — `BoxPlotSeries { label: string; data:
|
|
10824
11102
|
BoxPlotPoint[]; color?: string }`, `BoxPlotPoint { min, q1, median, q3, max }`
|
|
10825
|
-
- `legend: boolean = false`
|
|
11103
|
+
- `legend: boolean = false` — renders a wrapping DOM legend whose buttons toggle box-series
|
|
11104
|
+
visibility without clipping long labels.
|
|
10826
11105
|
- `height: string = '280px'`
|
|
10827
11106
|
- `yLabel: string = ''` (attribute `y-label`)
|
|
10828
11107
|
- `beginAtZero: boolean = true` (attribute `begin-at-zero`)
|
|
@@ -10832,13 +11111,16 @@ browser). Does **not** extend `LyraChart` — a deliberately bespoke API.
|
|
|
10832
11111
|
localized five-number summary
|
|
10833
11112
|
- `showDataTable: boolean = false` (attribute `show-data-table`) — reveals the accessible data table
|
|
10834
11113
|
|
|
10835
|
-
**Methods:** `refreshTheme()` re-reads canvas theme custom properties after an ancestor theme
|
|
11114
|
+
**Methods:** `refreshTheme()` re-reads canvas theme custom properties after an ancestor theme
|
|
11115
|
+
change. Canvas work remains connected/visible-gated, while a rendered DOM legend also refreshes
|
|
11116
|
+
its computed color swatches.
|
|
10836
11117
|
|
|
10837
11118
|
**Events:** none.
|
|
10838
11119
|
|
|
10839
11120
|
**Slots:** `data-table` — an optional consumer-provided accessible table alternative.
|
|
10840
11121
|
|
|
10841
|
-
**CSS parts:** `base`, `canvas
|
|
11122
|
+
**CSS parts:** `base`, `plot` (the fixed-height canvas region), `canvas`, `legend`,
|
|
11123
|
+
`legend-item`, `legend-swatch`, `description`, `data-table`, `error` (`role="alert"` message shown
|
|
10842
11124
|
instead of `canvas` when the optional box-plot peer fails to load)
|
|
10843
11125
|
|
|
10844
11126
|
**Themeable custom properties:** `--lr-chart-height`, `--lr-chart-grid-color`,
|
|
@@ -10863,8 +11145,12 @@ through the same cached `chart-loader.ts` used by `lr-chart`.
|
|
|
10863
11145
|
- no raw `config` passthrough — limited to the properties above; can't reach the underlying
|
|
10864
11146
|
controller's own options (`itemRadius`, `outlierRadius`, `coef`).
|
|
10865
11147
|
- Chart.js receives `effectiveLocale`; generated numeric summaries use it, the y axis moves to
|
|
10866
|
-
logical start in RTL,
|
|
10867
|
-
|
|
11148
|
+
logical start in RTL, and live ancestor `lang`/`dir` changes redraw the already-mounted canvas
|
|
11149
|
+
without requiring another box property write. Canvas tooltip/axis colors are token-driven, and
|
|
11150
|
+
animation is disabled under reduced motion.
|
|
11151
|
+
- `--lr-chart-height` fixes the `plot` height and the host's minimum height, not the complete host.
|
|
11152
|
+
A visible or slotted table and the wrapping legend remain in normal document flow, grow the
|
|
11153
|
+
component, and cannot overlap following content; oversized tables scroll inside the host.
|
|
10868
11154
|
- If `@sgratzl/chartjs-chart-boxplot` fails to load, the component warns to the console and
|
|
10869
11155
|
fails closed with a localized `role="alert"` error part rather than leaving a blank canvas.
|
|
10870
11156
|
|
|
@@ -10874,10 +11160,13 @@ through the same cached `chart-loader.ts` used by `lr-chart`.
|
|
|
10874
11160
|
|
|
10875
11161
|
`lr-lite-chart` and `lr-chart` expose additive imperative helpers for live dashboards:
|
|
10876
11162
|
`appendData(label, values, maxPoints?)` appends one aligned category and optionally trims the oldest
|
|
10877
|
-
points. `lr-
|
|
10878
|
-
|
|
10879
|
-
|
|
10880
|
-
|
|
11163
|
+
points. `lr-histogram` retains the same method signature but treats `values` as finite raw samples,
|
|
11164
|
+
ignores the category label, rebins the complete retained sample window, and applies `maxPoints` to
|
|
11165
|
+
that raw history. `lr-lite-chart.exportData('csv' | 'svg')` returns a spreadsheet-safe CSV snapshot
|
|
11166
|
+
or the current SVG markup. `lr-chart.exportData('csv' | 'png')` returns a CSV snapshot or Chart.js's
|
|
11167
|
+
current PNG data URL when the optional peer is loaded; point datasets expand x/y and optional
|
|
11168
|
+
radius/point-label columns. These helpers do not download files; compose them with
|
|
11169
|
+
`lr-export-button` so the host owns filenames and download policy.
|
|
10881
11170
|
|
|
10882
11171
|
# Document & file viewers (`components/viewers/`)
|
|
10883
11172
|
|
|
@@ -10935,13 +11224,15 @@ image path — and the generic fallback simply omits `[part="download-link"]` en
|
|
|
10935
11224
|
`status="error"`.
|
|
10936
11225
|
- `maxHeight: string = ''` (attribute `max-height`) — a CSS length (e.g. `"24rem"`); once set,
|
|
10937
11226
|
`[part="body"]` scrolls internally past this height instead of growing the page — same contract as
|
|
10938
|
-
`lr-json-viewer`'s identically-named prop.
|
|
11227
|
+
`lr-json-viewer`'s identically-named prop. Invalid CSS `max-height` values, declaration breaks,
|
|
11228
|
+
and `url()` are ignored, leaving the stylesheet token in control.
|
|
10939
11229
|
- `zoomable: boolean = false` (reflected) — wraps the rendered image (image format only) in an
|
|
10940
11230
|
internal `<lr-zoomable-frame>`. `false` (the default) preserves the exact pre-`zoomable` DOM — an
|
|
10941
11231
|
inline thumbnail (e.g. in a chat stream) must not unexpectedly grow a focusable zoom-chrome
|
|
10942
11232
|
viewport; an inspection surface opts in.
|
|
10943
11233
|
- `highlights: LyraHighlight[] = []` (attribute: false) — display-only `region` highlights painted
|
|
10944
|
-
over the image-format preview; ignored for the `text`/`generic` formats.
|
|
11234
|
+
over the image-format preview; ignored for the `text`/`generic` formats. A rectangle renders only
|
|
11235
|
+
when `x`/`y`/`width`/`height` are finite numbers and both dimensions are nonnegative.
|
|
10945
11236
|
- `activeHighlightId: string | null = null` (attribute `active-highlight-id`) — the `highlights`
|
|
10946
11237
|
entry, if any, currently treated as active (`data-active` on its `region-highlight`).
|
|
10947
11238
|
- `anchorKinds` is a readonly `['region']` (this viewer's supported `LyraAnchor.kind` values for the
|
|
@@ -11078,8 +11369,10 @@ type. First-party invention.
|
|
|
11078
11369
|
- `mimeType: string = ''` (attribute `mime-type`) — MIME type used for exact renderer dispatch.
|
|
11079
11370
|
- `src: string = ''` — source URL passed to the selected renderer or the fallback preview.
|
|
11080
11371
|
- `registry?: DocumentRendererRegistry` (attribute: false) — optional per-instance registry override;
|
|
11081
|
-
the module-level registry is used when unset.
|
|
11082
|
-
|
|
11372
|
+
the module-level registry is used when unset. A throwing consumer matcher or renderer is
|
|
11373
|
+
contained as the localized error state rather than escaping the update.
|
|
11374
|
+
- `alt?: string` — media alt text forwarded to the resolved renderer, for image-like renderers.
|
|
11375
|
+
Unset lets the renderer derive its fallback; an explicit `''` preserves decorative media.
|
|
11083
11376
|
- `anchor: LyraAnchor | string | null = null` (attribute: false) — declarative scroll-to-anchor
|
|
11084
11377
|
target forwarded to the resolved renderer; a string is a highlight id in `highlights`.
|
|
11085
11378
|
`hasChanged: () => true`, so re-assigning the same value (e.g. re-clicking the same citation
|
|
@@ -11102,6 +11395,7 @@ type. First-party invention.
|
|
|
11102
11395
|
(a highlight id) counts as supported by any renderer declaring at least one anchor kind.
|
|
11103
11396
|
|
|
11104
11397
|
**CSS parts:** `body` — wrapper around the active renderer, loading/error state, or fallback preview;
|
|
11398
|
+
it renders explicit `aria-busy="true"|"false"`, and the loading text itself owns `role="status"`;
|
|
11105
11399
|
`download-link` — the native download action, rendered when `src` passes Lyra's safe-link policy.
|
|
11106
11400
|
|
|
11107
11401
|
**Themeable custom properties:** `--lr-document-viewer-max-height` (default `70vh`) — maximum block
|
|
@@ -11140,6 +11434,9 @@ registerDocumentRenderer('application/x-example', {
|
|
|
11140
11434
|
When no renderer matches, the viewer renders `<lr-document-preview>`, which handles text and images
|
|
11141
11435
|
inline and provides a safe generic fallback for other formats.
|
|
11142
11436
|
|
|
11437
|
+
If a consumer matcher/renderer throws while an anchor is pending, the viewer renders a localized
|
|
11438
|
+
`role="alert"` and emits exactly one `lr-anchor-result` with `{ found: false }`.
|
|
11439
|
+
|
|
11143
11440
|
## `lr-docx-viewer`
|
|
11144
11441
|
|
|
11145
11442
|
Fetches a `.docx` Word document as an `ArrayBuffer`, converts it to semantic HTML with the optional
|
|
@@ -11151,10 +11448,13 @@ hatch: if `dompurify` is unavailable, rendering is blocked even when Mammoth con
|
|
|
11151
11448
|
Every rendered heading's slug (the same GitHub-slugger-style algorithm `<lr-markdown>` uses) is
|
|
11152
11449
|
stamped as its `id` and cached into `getHeadingTree()`'s document-ordered outline. Adopts
|
|
11153
11450
|
`DocumentAnchorTarget`: `fragment` anchors resolve against that outline, `text-quote` anchors via
|
|
11154
|
-
the shared quote-scoping helpers; `highlights` re-resolve by quote after every render.
|
|
11451
|
+
the shared quote-scoping helpers; `highlights` re-resolve by quote after every render. Native
|
|
11452
|
+
keyboard actions are exposed only for highlights whose quote resolves in the currently loaded
|
|
11453
|
+
document; unresolved highlights and idle/loading/error states never expose an enabled no-op.
|
|
11155
11454
|
|
|
11156
11455
|
**Properties:** `src`, `name`, and `maxHeight` (attribute `max-height`) are strings. `maxHeight` caps
|
|
11157
|
-
the scrollable document body
|
|
11456
|
+
the scrollable document body; invalid CSS `max-height` values, declaration breaks, and `url()` are
|
|
11457
|
+
ignored. `anchorKinds` is a readonly `['fragment', 'text-quote']` (this
|
|
11158
11458
|
viewer's supported `LyraAnchor.kind` values for the shared anchor-target contract).
|
|
11159
11459
|
|
|
11160
11460
|
**Methods:** `getHeadingTree()` returns the document-ordered outline as `DocxHeadingItem[]` (`{ id,
|
|
@@ -11167,14 +11467,17 @@ painted marks.
|
|
|
11167
11467
|
**Events:** `lr-render-error` with `detail.error` when fetching, conversion, sanitization, or a
|
|
11168
11468
|
non-fatal Mammoth conversion message occurs. `lr-search-change` (`detail: { query, matchCount,
|
|
11169
11469
|
activeIndex }`) — from `search()`/`searchNext()`/`searchPrevious()`/`clearSearch()`.
|
|
11170
|
-
`lr-highlight-activate` (`detail: { id }`) — a painted `text-quote` highlight was clicked
|
|
11470
|
+
`lr-highlight-activate` (`detail: { id }`) — a painted `text-quote` highlight was clicked or its
|
|
11471
|
+
resolved keyboard action was activated.
|
|
11171
11472
|
`lr-text-select` (`detail: { text, anchor, rects }`) — fired on selection end inside the rendered
|
|
11172
11473
|
content. `lr-anchor-result` (`detail: { found }`) — fired after an `anchor` assignment or a
|
|
11173
11474
|
`scrollToAnchor()` call.
|
|
11174
11475
|
|
|
11175
11476
|
**CSS parts:** `base`, `body`, `content`, `spinner`, `error`, `highlight` (a painted `text-quote`
|
|
11176
|
-
highlight), `
|
|
11177
|
-
|
|
11477
|
+
highlight), `highlight-actions` (keyboard-accessible actions for resolved highlights),
|
|
11478
|
+
`highlight-action` (one native highlight activation button), `search-match` (a painted in-document
|
|
11479
|
+
search match), and `search-match-active` (the currently active search match, also carries
|
|
11480
|
+
`search-match`).
|
|
11178
11481
|
|
|
11179
11482
|
**Themeable custom properties:** `--lr-docx-viewer-max-height` (default `none`) — maximum block size
|
|
11180
11483
|
of `[part="body"]`; also settable via the `max-height` property, which writes this token inline.
|
|
@@ -11217,8 +11520,9 @@ downloading, or object-URL'ing them is the host's job (e.g.
|
|
|
11217
11520
|
Remote resources are capped at 25 MB; exceeding it surfaces the localized
|
|
11218
11521
|
`documentPreviewResourceTooLarge` message instead of the message.
|
|
11219
11522
|
|
|
11220
|
-
**Properties:** `src`, `name`, and `maxHeight` (attribute `max-height`) are strings
|
|
11221
|
-
|
|
11523
|
+
**Properties:** `src`, `name`, and `maxHeight` (attribute `max-height`) are strings; invalid CSS
|
|
11524
|
+
`max-height` values, declaration breaks, and `url()` are ignored. `foldQuotes: boolean = false`
|
|
11525
|
+
(attribute `fold-quotes`) — collapses trailing quoted-reply text/HTML behind a
|
|
11222
11526
|
localized show/hide toggle. `false` (the default) preserves the full body rendering. A host
|
|
11223
11527
|
`aria-label` takes precedence over `name`. `highlights`, `activeHighlightId`, `anchor`, and
|
|
11224
11528
|
`anchorKinds` (`['text-quote', 'fragment']`) provide the shared text-viewer contract.
|
|
@@ -11254,8 +11558,9 @@ matching `.eml` filenames in `<lr-document-viewer>`. Fail-closed behavior is exp
|
|
|
11254
11558
|
Fetches and parses `.ics` calendars with the optional `ical.js` peer and renders each VEVENT as
|
|
11255
11559
|
plain text, including its title, start/end time, location, and description. No HTML is injected.
|
|
11256
11560
|
|
|
11257
|
-
**Properties:** `src`, `name`, and `maxHeight` (attribute `max-height`) are strings
|
|
11258
|
-
`
|
|
11561
|
+
**Properties:** `src`, `name`, and `maxHeight` (attribute `max-height`) are strings; invalid CSS
|
|
11562
|
+
`max-height` values, declaration breaks, and `url()` are ignored. A host `aria-label` takes
|
|
11563
|
+
precedence over `name`. `highlights`, `activeHighlightId`, `anchor`, and
|
|
11259
11564
|
`anchorKinds` (`['text-quote', 'fragment']`) provide the shared text-viewer contract.
|
|
11260
11565
|
|
|
11261
11566
|
**Methods:** `search(query)`, `searchNext()`, `searchPrevious()`, `clearSearch()`, and
|
|
@@ -11288,19 +11593,34 @@ fully decompressing only the rare entry missing that header field. The list comp
|
|
|
11288
11593
|
contract: `highlights`, `activeHighlightId`, `anchor`, and `anchorKinds` (`['text-quote', 'fragment']`).
|
|
11289
11594
|
|
|
11290
11595
|
**Methods:** `search(query)`, `searchNext()`, `searchPrevious()`, and `clearSearch()` provide
|
|
11291
|
-
case-insensitive text search over
|
|
11292
|
-
fragment anchors and emits
|
|
11596
|
+
case-insensitive text search over every loaded entry path; next/previous wrap and scroll the active
|
|
11597
|
+
virtualized row into view. `scrollToAnchor()` resolves text-quote and fragment anchors and emits
|
|
11598
|
+
`lr-anchor-result`. A fragment id is the exact ZIP entry path. A text quote resolves within one
|
|
11599
|
+
complete entry path; both forms first mount the absolute virtualized row and only then perform the
|
|
11600
|
+
shared DOM-level anchor resolution.
|
|
11293
11601
|
|
|
11294
|
-
**Events:** `lr-render-error` with `detail.error` when fetching or parsing fails
|
|
11602
|
+
**Events:** `lr-render-error` with `detail.error` when fetching or parsing fails;
|
|
11603
|
+
`lr-search-change` (`detail: { query, matchCount, activeIndex }`) from search, navigation, and
|
|
11604
|
+
clear; `lr-text-select` (`detail: { text, anchor, rects }`) for a selection contained within one
|
|
11605
|
+
entry path; and `lr-anchor-result` (`detail: { found }`) after anchor resolution.
|
|
11295
11606
|
|
|
11296
11607
|
**CSS parts:** `base`, `body`, `entry`, `entry-icon`, `entry-name`, `entry-name-dir`, `entry-size`,
|
|
11297
|
-
`
|
|
11608
|
+
`highlight` (the `<mark>` fallback for a painted entry-path quote), `spinner`, and `error`. A
|
|
11609
|
+
directory row's name element carries both `entry-name` and
|
|
11298
11610
|
`entry-name-dir` (a part list), so `::part(entry-name-dir)` selects only directory names while
|
|
11299
11611
|
`::part(entry-name)` still selects every name. Entry rows are rendered into the embedded
|
|
11300
11612
|
`<lr-virtual-list>`'s own shadow root and forwarded with `exportparts`, so
|
|
11301
11613
|
`lr-archive-viewer::part(entry)` (and every other row part above) reaches them from a consuming
|
|
11302
11614
|
stylesheet.
|
|
11303
11615
|
|
|
11616
|
+
**Themeable custom properties:** `--lr-archive-viewer-highlight-accent-background`,
|
|
11617
|
+
`--lr-archive-viewer-highlight-success-background`,
|
|
11618
|
+
`--lr-archive-viewer-highlight-warning-background`,
|
|
11619
|
+
`--lr-archive-viewer-highlight-danger-background`, and
|
|
11620
|
+
`--lr-archive-viewer-highlight-neutral-background` control tone backgrounds.
|
|
11621
|
+
`--lr-archive-viewer-highlight-active-background` and
|
|
11622
|
+
`--lr-archive-viewer-highlight-active-outline` control the active quote.
|
|
11623
|
+
|
|
11304
11624
|
**Exports:** `ArchiveEntry` — `{ name: string; dir: boolean; size: number }`.
|
|
11305
11625
|
|
|
11306
11626
|
**Optional peer dependency:** install `jszip` with `pnpm add jszip`. The lazy registry registers
|
|
@@ -11326,8 +11646,9 @@ the reading region's accessible name. `location: string = ''` (not reflected —
|
|
|
11326
11646
|
a CFI or spine href identifying the current reading position: set before the book finishes
|
|
11327
11647
|
loading it's recorded and applied once ready, set after it applies immediately, and epub.js's own
|
|
11328
11648
|
`relocated` event keeps it in sync with user navigation without re-triggering its own `display()`
|
|
11329
|
-
call. `
|
|
11330
|
-
|
|
11649
|
+
call. A controlled `location` assignment made synchronously inside `lr-location-change` wins over
|
|
11650
|
+
the peer-reported CFI and is displayed. `anchorKinds` is a readonly `['cfi', 'text-quote']` (this
|
|
11651
|
+
viewer's supported `LyraAnchor.kind` values for the shared anchor-target contract).
|
|
11331
11652
|
|
|
11332
11653
|
**Methods:** `getToc()` resolves the EPUB's own navigation document (`book.navigation.toc`,
|
|
11333
11654
|
populated once `book.ready` resolves) flattened into document-ordered `EbookTocItem[]` (`{ id,
|
|
@@ -11335,16 +11656,20 @@ label, href, level }`, `level` starting at 1 for a top-level entry, `id` falling
|
|
|
11335
11656
|
when a navigation entry has none), `[]` before a book has loaded. `search(query)` resolves the
|
|
11336
11657
|
match count across every spine section, in document order, via epub.js's own `item.load()`/
|
|
11337
11658
|
`item.find()`/`item.unload()` (empty/whitespace query behaves like `clearSearch()`; a newer
|
|
11338
|
-
`search()` call or a `src` change aborts an in-flight scan
|
|
11659
|
+
`search()` call or a `src` change aborts an in-flight scan; peer output is capped at 10,000
|
|
11660
|
+
matches); `searchNext()`/`searchPrevious()`
|
|
11339
11661
|
advance/step back through matches (wrapping, resolving `false` when there are none); `clearSearch()`
|
|
11340
11662
|
clears the query, matches, and painted search annotation.
|
|
11341
11663
|
|
|
11342
11664
|
**Events:** `lr-render-error` with `detail.error` when fetching, opening, or rendering fails;
|
|
11343
11665
|
`lr-location-change` (`detail: { cfi, href }`) fired from epub.js's own `relocated` event;
|
|
11344
11666
|
`lr-search-change` (`detail: { query, matchCount, activeIndex }`) from `search()`/`searchNext()`/
|
|
11345
|
-
`searchPrevious()`/`clearSearch()
|
|
11667
|
+
`searchPrevious()`/`clearSearch()`; `lr-anchor-result` (`detail: { found }`) after an anchor is
|
|
11668
|
+
applied; `lr-highlight-activate` (`detail: { id }`) when a painted CFI highlight is clicked; and
|
|
11669
|
+
`lr-text-select` (`detail: { text, anchor, rects }`) after selection inside a chapter iframe.
|
|
11346
11670
|
|
|
11347
|
-
**CSS parts:** `base
|
|
11671
|
+
**CSS parts:** `base` (explicit `aria-busy="true"|"false"`; loading text owns `role="status"`),
|
|
11672
|
+
`toolbar`, `previous-button`, `next-button`, `previous-icon`, `next-icon`,
|
|
11348
11673
|
`mount`, `error`, and `announcer` (the visually-hidden `role="status"` region search results
|
|
11349
11674
|
announce through).
|
|
11350
11675
|
|
|
@@ -11354,7 +11679,8 @@ unambiguous beside other previous/next controls and are overridable through `.st
|
|
|
11354
11679
|
|
|
11355
11680
|
**Optional peer dependency:** install `epubjs` with `pnpm add epubjs`. The document-viewer registry
|
|
11356
11681
|
matches `application/epub+zip` and `.epub` filenames, declaring `{ anchors: ['cfi', 'text-quote'],
|
|
11357
|
-
search: true, textSelect: true }` capabilities
|
|
11682
|
+
search: true, textSelect: true }` capabilities and forwarding `anchor`/`highlights` to the mounted
|
|
11683
|
+
viewer. The peer loader requires the callable EPUB factory; malformed module shapes fail closed.
|
|
11358
11684
|
|
|
11359
11685
|
Remote resources are capped at 25 MB; exceeding it surfaces the localized
|
|
11360
11686
|
`documentPreviewResourceTooLarge` message instead of the ebook.
|
|
@@ -11368,6 +11694,10 @@ same reason. `highlights` (kind `cfi`) paint via `rendition.annotations.highligh
|
|
|
11368
11694
|
re-applied whenever the rendition is recreated (a `src` change, or a reconnect remount), since
|
|
11369
11695
|
epub.js doesn't persist annotations across a fresh `renderTo()`.
|
|
11370
11696
|
|
|
11697
|
+
Rejected or synchronous failures from display, previous/next navigation, search annotation, or
|
|
11698
|
+
anchor application enter the localized error state and emit `lr-render-error`. Anchor failures
|
|
11699
|
+
emit one `{ found: false }`, and superseded async anchor/search work cannot mutate the current book.
|
|
11700
|
+
|
|
11371
11701
|
## `lr-pptx-viewer`
|
|
11372
11702
|
|
|
11373
11703
|
Best-effort client-side PPTX viewer backed by the optional `@aiden0z/pptx-renderer` peer. A
|
|
@@ -11410,7 +11740,8 @@ here — a sanitized SVG document has neither pages nor extractable text to quot
|
|
|
11410
11740
|
its registry entry declares `capabilities: { anchors: ['region'], search: false, textSelect: false }`.
|
|
11411
11741
|
|
|
11412
11742
|
**Properties:** `src`, `name`, and `maxHeight` (attribute `max-height`) are strings. `maxHeight` caps
|
|
11413
|
-
the scrollable body
|
|
11743
|
+
the scrollable body; invalid CSS `max-height` values, declaration breaks, and `url()` are ignored.
|
|
11744
|
+
`zoomable: boolean = false` (reflected) — wraps the rendered content in an
|
|
11414
11745
|
internal `<lr-zoomable-frame>`. `false` (the default) preserves the exact pre-`zoomable` DOM — an
|
|
11415
11746
|
inline thumbnail (e.g. in a chat stream) must not unexpectedly grow a focusable zoom-chrome viewport;
|
|
11416
11747
|
an inspection surface opts in. `anchor: LyraAnchor | string | null = null` (attribute: false) —
|
|
@@ -11418,7 +11749,9 @@ declaratively jump to an anchor (a `LyraAnchor` object, or a `highlights` entry'
|
|
|
11418
11749
|
calls `scrollToAnchor()` and fires `lr-anchor-result`; re-assigning the same value re-triggers the
|
|
11419
11750
|
scroll, it is not reference-gated. `highlights: LyraHighlight[] = []` (attribute: false) —
|
|
11420
11751
|
display-only `region` highlights painted over the rendered SVG; unchanged behavior, now inherited
|
|
11421
|
-
from `DocumentAnchorTarget` rather than declared locally.
|
|
11752
|
+
from `DocumentAnchorTarget` rather than declared locally. A region rectangle renders/resolves only
|
|
11753
|
+
when `x`/`y`/`width`/`height` are finite numbers and both dimensions are nonnegative.
|
|
11754
|
+
`activeHighlightId: string | null = null`
|
|
11422
11755
|
(attribute `active-highlight-id`) — the `highlights` entry, if any, currently treated as active
|
|
11423
11756
|
(`data-active` on its `region-highlight`). `anchorKinds` is a readonly `['region']` (this viewer's
|
|
11424
11757
|
supported `LyraAnchor.kind` values for the shared anchor-target contract).
|
|
@@ -11470,8 +11803,9 @@ Remote resources are capped at 25 MB; exceeding it surfaces the localized
|
|
|
11470
11803
|
Fetches an HTML document, sanitizes it with the optional `dompurify` peer, and renders the safe markup
|
|
11471
11804
|
inside a bounded, scrollable body.
|
|
11472
11805
|
|
|
11473
|
-
**Properties:** `src`, `name`, and `maxHeight` (attribute `max-height`) are strings
|
|
11474
|
-
`
|
|
11806
|
+
**Properties:** `src`, `name`, and `maxHeight` (attribute `max-height`) are strings; invalid CSS
|
|
11807
|
+
`max-height` values, declaration breaks, and `url()` are ignored. A host `aria-label` takes
|
|
11808
|
+
precedence over `name`. `highlights`, `activeHighlightId`, `anchor`, and
|
|
11475
11809
|
`anchorKinds` (`['text-quote', 'fragment']`) provide the shared text-viewer contract.
|
|
11476
11810
|
|
|
11477
11811
|
**Methods:** `search(query)`, `searchNext()`, `searchPrevious()`, `clearSearch()`, and
|
|
@@ -11505,9 +11839,10 @@ is never part of the virtualized body); `scrollToAnchor()` scrolls the addressed
|
|
|
11505
11839
|
the virtualized list's `active-id`. `highlights` paint as a `part="cell-highlight"` cell wrapping a
|
|
11506
11840
|
focusable `part="cell-highlight-action"` native button, keeping the ARIA table tree intact.
|
|
11507
11841
|
|
|
11508
|
-
**Properties:** `src`, `name`, and `maxHeight` (attribute `max-height`) are strings
|
|
11509
|
-
|
|
11510
|
-
anchor-target
|
|
11842
|
+
**Properties:** `src`, `name`, and `maxHeight` (attribute `max-height`) are strings; invalid CSS
|
|
11843
|
+
`max-height` values, declaration breaks, and `url()` are ignored. `anchorKinds` is a readonly
|
|
11844
|
+
`['cell-range']` (this viewer's supported `LyraAnchor.kind` values for the shared anchor-target
|
|
11845
|
+
contract).
|
|
11511
11846
|
|
|
11512
11847
|
**Methods:** `search(query)` resolves the match count via a case-insensitive substring search over
|
|
11513
11848
|
every body cell's raw string value, ordered row then column (empty/whitespace query behaves like
|
|
@@ -11554,8 +11889,9 @@ label when `FN` is absent).
|
|
|
11554
11889
|
Remote resources are capped at 25 MB; exceeding it surfaces the localized
|
|
11555
11890
|
`documentPreviewResourceTooLarge` message instead of the contacts.
|
|
11556
11891
|
|
|
11557
|
-
**Properties:** `src`, `name`, and `maxHeight` (attribute `max-height`) are strings
|
|
11558
|
-
`
|
|
11892
|
+
**Properties:** `src`, `name`, and `maxHeight` (attribute `max-height`) are strings; invalid CSS
|
|
11893
|
+
`max-height` values, declaration breaks, and `url()` are ignored. A host `aria-label` takes
|
|
11894
|
+
precedence over `name`. `highlights`, `activeHighlightId`, `anchor`, and
|
|
11559
11895
|
`anchorKinds` (`['text-quote', 'fragment']`) provide the shared text-viewer contract.
|
|
11560
11896
|
|
|
11561
11897
|
**Methods:** `search(query)`, `searchNext()`, `searchPrevious()`, `clearSearch()`, and
|
|
@@ -11589,9 +11925,12 @@ to tell that apart from a genuine activation click.
|
|
|
11589
11925
|
**Properties:** `src` and `name` are strings. `page: number = 1` is the one-based current page and
|
|
11590
11926
|
`zoom: number = 1` is clamped to `0.25`–`4`. `maxHeight: string = ''` (attribute `max-height`) is a
|
|
11591
11927
|
CSS length that, once set, overrides `--lr-pdf-viewer-height` — the block size of the virtualized
|
|
11592
|
-
page list — declaratively, writing it inline on `[part="base"]
|
|
11928
|
+
page list — declaratively, writing it inline on `[part="base"]`; invalid CSS `max-height` values,
|
|
11929
|
+
declaration breaks, and `url()` are ignored. `anchorKinds` is a readonly
|
|
11593
11930
|
`['page', 'text-quote', 'region']` (this viewer's supported `LyraAnchor.kind` values for the shared
|
|
11594
|
-
anchor-target contract).
|
|
11931
|
+
anchor-target contract). Page and page-addressed region anchors require an in-range integer page
|
|
11932
|
+
and are rejected rather than clamped; region rectangles also require finite coordinates and
|
|
11933
|
+
nonnegative dimensions.
|
|
11595
11934
|
|
|
11596
11935
|
**Events:**
|
|
11597
11936
|
- `lr-render-error` — `detail: { error }` — fetching, parsing, or rendering (page canvas or text
|
|
@@ -11618,7 +11957,8 @@ of one page (per-page LRU-cached, 64 pages), rejecting on no loaded document or
|
|
|
11618
11957
|
`options.width` CSS px (default 96), devicePixelRatio-aware, resolving `false` when not ready or out
|
|
11619
11958
|
of range. `goToPage(page)` scrolls the virtualized list to `page`, resolving `true` once mounted (or
|
|
11620
11959
|
`false` for an out-of-range value, without changing `page`). `getOutline()` resolves the document's
|
|
11621
|
-
table of contents as `PdfOutlineItem[]` (`{ title, page?, children? }`), `[]` when there is none
|
|
11960
|
+
table of contents as `PdfOutlineItem[]` (`{ title, page?, children? }`), `[]` when there is none;
|
|
11961
|
+
peer output is capped at 10,000 unique items and 100 levels, with cycles ignored.
|
|
11622
11962
|
`search(query)` resolves the match count across all pages (empty/whitespace query behaves like
|
|
11623
11963
|
`clearSearch()`); `searchNext()` and `searchPrevious()` advance/step back through matches (wrapping,
|
|
11624
11964
|
resolving `false` when there are none); `clearSearch()` clears the query, matches, and painted marks.
|
|
@@ -11658,6 +11998,9 @@ rendering without it.
|
|
|
11658
11998
|
Remote resources are capped at 25 MB; exceeding it surfaces the localized
|
|
11659
11999
|
`documentPreviewResourceTooLarge` message instead of the PDF.
|
|
11660
12000
|
|
|
12001
|
+
Anchor navigation is generation-guarded: a newer anchor, document replacement, or disconnect
|
|
12002
|
+
prevents stale page/text/region work from scrolling or reporting success.
|
|
12003
|
+
|
|
11661
12004
|
## `lr-spreadsheet-viewer`
|
|
11662
12005
|
|
|
11663
12006
|
Fetches and renders `.xlsx` and `.xls` workbooks with the optional `xlsx` (SheetJS) peer. Multiple
|
|
@@ -11717,9 +12060,9 @@ row/column into view via the virtualized list's `active-id`. `highlights` paint
|
|
|
11717
12060
|
**Properties:** `src` and `name` are strings. `hasHeaderRow: boolean = true` (attribute
|
|
11718
12061
|
`has-header-row`) controls whether the first parsed row is rendered as a sticky header.
|
|
11719
12062
|
`maxHeight: string = ''` (attribute `max-height`) is a CSS length that caps the scrollable body —
|
|
11720
|
-
setting it writes `--lr-csv-viewer-max-height` inline on `[part="base"]
|
|
11721
|
-
|
|
11722
|
-
anchor-target contract).
|
|
12063
|
+
setting it writes `--lr-csv-viewer-max-height` inline on `[part="base"]`; invalid CSS `max-height`
|
|
12064
|
+
values, declaration breaks, and `url()` are ignored. `anchorKinds` is a readonly `['cell-range']`
|
|
12065
|
+
(this viewer's supported `LyraAnchor.kind` values for the shared anchor-target contract).
|
|
11723
12066
|
|
|
11724
12067
|
**Methods:** `search(query)` resolves the match count via a case-insensitive substring match over
|
|
11725
12068
|
the same stringified cell values `cell()` renders, ordered row then column (empty/whitespace query
|
|
@@ -11769,8 +12112,8 @@ raw injection option is omitted, not shipped as a no-op).
|
|
|
11769
12112
|
|
|
11770
12113
|
A bare primitive: no label/hint/error chrome, no implicit role, no computed accessible name, and no
|
|
11771
12114
|
`aria-live` wrapper (the fragment can carry its own landmarks; wrapping the host would re-announce
|
|
11772
|
-
all of it on every load). `aria-busy="true"
|
|
11773
|
-
|
|
12115
|
+
all of it on every load). The host always carries explicit `aria-busy="true"|"false"`: true only
|
|
12116
|
+
while a fetch is in flight. Build error UI from `lr-include-error`.
|
|
11774
12117
|
|
|
11775
12118
|
**Properties:**
|
|
11776
12119
|
- `src: string = ''` (reflected) — URL of the fragment, validated through the shared `safeFetchUrl()`
|
|
@@ -11785,7 +12128,8 @@ removed once it settles either way. Build error UI from `lr-include-error`.
|
|
|
11785
12128
|
The shared text-viewer contract is also available for the sanitized light-DOM fragment:
|
|
11786
12129
|
`highlights`, `activeHighlightId`, `anchor`, and `anchorKinds` (`['text-quote', 'fragment']`).
|
|
11787
12130
|
`search(query)`, `searchNext()`, `searchPrevious()`, `clearSearch()`, and `scrollToAnchor()`
|
|
11788
|
-
operate on the included text.
|
|
12131
|
+
operate on the included text. A successful replacement explicitly recomputes any active search
|
|
12132
|
+
against the new fragment rather than leaving results from the previous content.
|
|
11789
12133
|
|
|
11790
12134
|
**Events:**
|
|
11791
12135
|
- `lr-load` — `detail: { src }` — the fragment was sanitized and written into the light DOM.
|
|
@@ -11815,7 +12159,8 @@ positioned ancestor.
|
|
|
11815
12159
|
|
|
11816
12160
|
**Properties:** `items: HighlightLayerItem[] = []` (attribute: false), `activeId: string | null =
|
|
11817
12161
|
null` (attribute `active-id`), and `interactive: boolean = true` (reflected) — gates click/keyboard
|
|
11818
|
-
activation.
|
|
12162
|
+
activation. A rectangle is eligible only when `x`/`y`/`width`/`height` are finite numbers and both
|
|
12163
|
+
dimensions are nonnegative; invalid rectangles are omitted from paint, focus, and activation.
|
|
11819
12164
|
|
|
11820
12165
|
**Methods:** `flash(id)` briefly re-triggers the flash styling for an already-rendered rect (e.g. a
|
|
11821
12166
|
re-click of the same source citation).
|
|
@@ -11858,6 +12203,11 @@ truth.
|
|
|
11858
12203
|
**Events:** `lr-page-select` — a page row was activated (click, or Enter/Space on a focused row).
|
|
11859
12204
|
`detail: { page }`. In wired mode the rail also sets `viewer.page` itself.
|
|
11860
12205
|
|
|
12206
|
+
If `pageCount` shrinks past the currently focused row, focus moves to the absolute last remaining
|
|
12207
|
+
page instead of using the rendered window's local index or being lost with the virtualized row.
|
|
12208
|
+
Rapid consecutive shrinks supersede an in-flight repair, so focus lands on the latest count. The
|
|
12209
|
+
numeric type-ahead buffer is cleared on detach.
|
|
12210
|
+
|
|
11861
12211
|
**CSS parts:** `base` (the rail), `pages` (the embedded `<lr-virtual-list>`), `page` (one page
|
|
11862
12212
|
button), `page-current` (the button for the current `page`), `thumbnail` (the thumbnail canvas
|
|
11863
12213
|
wrapper), `page-number` (the visible page number), `heat` (the heat-marker cluster), `heat-dot` (one
|
|
@@ -11899,9 +12249,10 @@ JSON text; wins over `src` and is parsed (and validated) synchronously. `name: s
|
|
|
11899
12249
|
accessible label, and matched against a `fragment` anchor's cell id. `outputCollapseLines: number =
|
|
11900
12250
|
40` (attribute `output-collapse-lines`) — a plain-text output longer than this many lines renders
|
|
11901
12251
|
collapsed behind a toggle; `0` disables collapsing. `maxHeight: string = ''` (attribute
|
|
11902
|
-
`max-height`) — once set, the notebook scrolls internally past this height
|
|
11903
|
-
|
|
11904
|
-
|
|
12252
|
+
`max-height`) — once set, the notebook scrolls internally past this height; invalid CSS
|
|
12253
|
+
`max-height` values, declaration breaks, and `url()` are ignored. `anchorKinds` is a readonly
|
|
12254
|
+
`['node-path', 'fragment']` (this viewer's supported `LyraAnchor.kind` values for the shared
|
|
12255
|
+
anchor-target contract).
|
|
11905
12256
|
|
|
11906
12257
|
**Methods:** `search(query)` resolves the match count over cell sources and text outputs — a
|
|
11907
12258
|
matching cell counts as one match (empty/whitespace query behaves like `clearSearch()`);
|
|
@@ -11953,6 +12304,9 @@ the element or on any ancestor.
|
|
|
11953
12304
|
A notebook major version outside 4.0–4.5, an invalid shape, or more than 2,000 cells renders a
|
|
11954
12305
|
localized error and fires `lr-render-error` instead of the notebook.
|
|
11955
12306
|
|
|
12307
|
+
PNG/JPEG outputs use their `text/plain` representation as alt text, falling back to a localized
|
|
12308
|
+
code-cell name. Sanitized SVG output is wrapped in a named `role="img"` with the same fallback.
|
|
12309
|
+
|
|
11956
12310
|
## `lr-xml-viewer`
|
|
11957
12311
|
|
|
11958
12312
|
Collapsible, copyable, `DOMParser`-based tree view for XML documents, mirroring `lr-json-viewer`'s
|
|
@@ -11971,7 +12325,8 @@ boolean = false` (reflected) — shows copy-to-clipboard affordances, one for th
|
|
|
11971
12325
|
one per element. `maxHeight: string = ''` (attribute `max-height`). `anchorKinds` is a readonly
|
|
11972
12326
|
`['node-path']` (this viewer's supported `LyraAnchor.kind` values for the shared anchor-target
|
|
11973
12327
|
contract) — each numeric path segment is the 0-based index within the parent's *element* children,
|
|
11974
|
-
and an optional trailing string segment `'@attrName'` addresses one
|
|
12328
|
+
and an optional trailing string segment `'@attrName'` addresses one existing, nonempty-named
|
|
12329
|
+
attribute. Invalid CSS `max-height` values, declaration breaks, and `url()` are ignored.
|
|
11975
12330
|
|
|
11976
12331
|
**Methods:** `search(query)` resolves the match count via a case-insensitive substring search over
|
|
11977
12332
|
every element's tag name, attribute names/values, and own text (empty/whitespace query behaves like
|
|
@@ -12023,7 +12378,8 @@ await viewer.search(query);
|
|
|
12023
12378
|
```
|
|
12024
12379
|
|
|
12025
12380
|
Node cap: 50,000 — exceeding it renders the localized `xmlViewerTooManyNodes` error instead of the
|
|
12026
|
-
tree.
|
|
12381
|
+
tree. A collapsed element's child count includes element, text, comment, CDATA, and processing-
|
|
12382
|
+
instruction children rather than only element descendants.
|
|
12027
12383
|
|
|
12028
12384
|
## `lr-document-compare`
|
|
12029
12385
|
|
|
@@ -12083,17 +12439,24 @@ approximation weighting latitude span ~2x, with 40% padding), then hands the par
|
|
|
12083
12439
|
`maplibre-gl` peer isn't installed, it falls back to a status line plus a `<lr-json-viewer
|
|
12084
12440
|
collapsed-depth="2">` of the raw value instead of the map.
|
|
12085
12441
|
|
|
12442
|
+
The root owns the named `region` landmark while loading, in fallback/error/idle states, and while a
|
|
12443
|
+
lazy map initializes. After `lr-map-load`, landmark ownership transfers to the map canvas so there
|
|
12444
|
+
is exactly one named region. Serialized metadata is locally inline-scrollable, preventing long
|
|
12445
|
+
unbroken values from widening a 320px allocation.
|
|
12446
|
+
|
|
12086
12447
|
**Properties:** `src: string = ''` — URL to fetch and parse. `name: string = ''` — accessible label,
|
|
12087
12448
|
used as `<lr-map>`'s `label` and the root's `aria-label` (falling back to the localized
|
|
12088
12449
|
`geojsonViewLabel` when unset). A host `aria-label` takes precedence over `name`. The shared
|
|
12089
12450
|
text-viewer contract adds `highlights`, `activeHighlightId`, `anchor`, and
|
|
12090
12451
|
`anchorKinds` (`['text-quote', 'fragment']`), plus `search()`, `searchNext()`, `searchPrevious()`,
|
|
12091
|
-
`clearSearch()`, and `scrollToAnchor()` for
|
|
12452
|
+
`clearSearch()`, and `scrollToAnchor()` for the ordinary-DOM serialized feature metadata and status
|
|
12453
|
+
text, independent of whether the optional map peer is available.
|
|
12092
12454
|
|
|
12093
12455
|
**Events:** `lr-render-error` — `detail: { error }` — fetch, parse, or shape-validation failure.
|
|
12094
12456
|
|
|
12095
12457
|
**CSS parts:** `base` (the root container), `status` (the feature-count status line, `role="status"`,
|
|
12096
|
-
shown only in the `<lr-map>` path), `
|
|
12458
|
+
shown only in the `<lr-map>` path), `metadata` (selectable/searchable serialized GeoJSON `<pre>`,
|
|
12459
|
+
rendered in both map and fallback paths), `missing-library` (the missing-`maplibre-gl` callout shown
|
|
12097
12460
|
alongside the `lr-json-viewer` fallback), `error` (the error region, `role="alert"`), `spinner`
|
|
12098
12461
|
(the loading status region).
|
|
12099
12462
|
|
|
@@ -13099,7 +13462,9 @@ combination (`catalog` empty/unset, or `allowCustom` true) renders the free-text
|
|
|
13099
13462
|
(`[part="combobox"]`/`[part="combobox-input"]`) with live substring filtering against the catalog (id or
|
|
13100
13463
|
label, case-insensitive). The mode is re-evaluated on every render, so toggling `allowCustom` or clearing
|
|
13101
13464
|
`catalog` at runtime switches modes live, repositioning the shared `[part="listbox"]` popover against
|
|
13102
|
-
whichever element is the active anchor.
|
|
13465
|
+
whichever element is the active anchor. Replacing `catalog` while free-text mode remains open
|
|
13466
|
+
refilters suggestions without erasing the user's current draft; controlled `value` changes and
|
|
13467
|
+
actual mode switches still rebase the input to the committed value.
|
|
13103
13468
|
|
|
13104
13469
|
A `value` that isn't present in `catalog` (e.g. a model id saved from a provider whose live catalog has
|
|
13105
13470
|
since changed) is never silently dropped: it's appended to the rendered option list as a synthetic,
|
|
@@ -13114,6 +13479,8 @@ visually-distinct row (dashed border, italic label, "not in catalog" badge) comp
|
|
|
13114
13479
|
- `change` (`Event`, no detail) — fired alongside `lr-change`, mirroring `<lr-select>`/
|
|
13115
13480
|
`<lr-combobox>`'s native-style value-change pair so native form bindings/framework `v-model`
|
|
13116
13481
|
handlers behave consistently across the picker family.
|
|
13482
|
+
- `input` (`Event`, no detail) — fired immediately before `change` alongside each committed
|
|
13483
|
+
`lr-change`, providing the same native-style value-event pair as `<lr-select>`/`<lr-combobox>`.
|
|
13117
13484
|
- `blur` (no detail) — re-dispatched from the free-text mode's internal `<input>`'s own `blur`,
|
|
13118
13485
|
bubbling and composed unlike the native event. Closed-dropdown mode's trigger `<button>` has no
|
|
13119
13486
|
equivalent re-dispatch, matching `<lr-select>`'s own trigger.
|
|
@@ -13833,7 +14200,8 @@ rating opens the detail panel, and `disabled: boolean = false` (reflected) for a
|
|
|
13833
14200
|
**Events:** `lr-change` — `detail: { value: 'up' | 'down' | null }`, fired when a thumb's rating
|
|
13834
14201
|
changes or clears. `lr-submit` — `detail: { value: 'up' | 'down'; reasonIds: string[]; comment:
|
|
13835
14202
|
string }`, fired by the panel's submit button (`value` is never `null` here — the panel only exists
|
|
13836
|
-
for a set rating).
|
|
14203
|
+
for a set rating). The optional comment `<textarea>`'s native `focus` and `blur` are re-dispatched
|
|
14204
|
+
as bubbling, composed host events.
|
|
13837
14205
|
|
|
13838
14206
|
**CSS parts:** `base` (the root), `thumbs` (wrapper around both thumb buttons), `up-button`,
|
|
13839
14207
|
`down-button`, `panel` (the inline detail disclosure, only rendered when `reasons` is non-empty or
|
|
@@ -14570,7 +14938,11 @@ part to the built-in renderer; `label: string = ''`; `accessibleLabel: string |
|
|
|
14570
14938
|
`MessagePartRenderer = (part: MessagePart, index: number) => unknown`; `MessagePart` and its
|
|
14571
14939
|
discriminated part shapes come from the `@aceshooting/lyra-ui/ai` subpath.
|
|
14572
14940
|
|
|
14573
|
-
**Events:** `lr-citation-select` (`{ citation }`), `lr-part-retry` (`{ part }`).
|
|
14941
|
+
**Events:** `lr-citation-select` (`{ citation }`), `lr-part-retry` (`{ part }`). Composed child
|
|
14942
|
+
events pass through unchanged: `lr-anchor-result`, `lr-citation-open`, `lr-copy`,
|
|
14943
|
+
`lr-highlight-activate`, `lr-link-click`, `lr-preview`, `lr-remove`, `lr-render-error`, `lr-retry`,
|
|
14944
|
+
`lr-search-change`, `lr-text-select`, `lr-toggle`, `lr-tool-call-chip-select`,
|
|
14945
|
+
`lr-tool-chip-select`, `lr-widget-action`, and `lr-widget-state-change`.
|
|
14574
14946
|
|
|
14575
14947
|
**CSS parts:** `base`, `part`, `part-streaming`, `text`, `reasoning`, `tool-call`, `tool-result`,
|
|
14576
14948
|
`citation`, `attachment`, `data`, `audio`, `audio-transcript`, `error`, `retry`.
|
|
@@ -14683,6 +15055,8 @@ Nonmodal, Escape-dismissible text-selection toolbar carrying selected text plus
|
|
|
14683
15055
|
**Events:** `lr-selection-action` (`SelectionActionDetail = { action, text, anchor }`);
|
|
14684
15056
|
`lr-dismiss` (Escape); `lr-copy-error` (`{ error }`). Copy uses the Clipboard API when available;
|
|
14685
15057
|
the action event still reports the user intent if writing fails, alongside `lr-copy-error`.
|
|
15058
|
+
Detaching and later reinserting the same open instance re-establishes positioning and Escape
|
|
15059
|
+
ownership even when the detach lasts past an event-loop turn.
|
|
14686
15060
|
|
|
14687
15061
|
**CSS parts:** `toolbar`, `action`, `action-ask`, `action-quote`, `action-cite`, `action-copy`.
|
|
14688
15062
|
|
|
@@ -15145,11 +15519,12 @@ shared overlay stack. First-party invention (no Web Awesome equivalent).
|
|
|
15145
15519
|
- `ToolSelectDialogTool { id: string; name: string; description?: string; category?: string; icon?:
|
|
15146
15520
|
string; disabled?: boolean; disabledReason?: string }` — one selectable agent tool. `category` groups
|
|
15147
15521
|
the row into a heading; tools with no `category` (or an empty/whitespace-only one) fall into a
|
|
15148
|
-
trailing "Other" bucket.
|
|
15149
|
-
|
|
15150
|
-
|
|
15151
|
-
|
|
15152
|
-
|
|
15522
|
+
trailing localized "Other" bucket. A caller category literally named `"Other"` remains its own
|
|
15523
|
+
ordinary, first-seen category and is not merged into or reordered with that uncategorized bucket.
|
|
15524
|
+
`icon` is a literal glyph (e.g. an emoji) rendered next to `name` — an opaque string, not a registry
|
|
15525
|
+
lookup, the same convention `<lr-tool-call-chip>`'s `icon` uses. `disabled` individually gates a
|
|
15526
|
+
tool regardless of `useDefaults`/`selected` (e.g. a tool requiring admin approval);
|
|
15527
|
+
`disabledReason` is supporting text shown under a disabled row, ignored when `disabled` is falsy.
|
|
15153
15528
|
- `ToolSelectFilter = (tool: ToolSelectDialogTool, query: string) => boolean` — a predicate deciding
|
|
15154
15529
|
whether `tool` matches an already-trimmed, already-lowercased `query`. Assign `filter` to replace the
|
|
15155
15530
|
built-in case-insensitive name/description substring match entirely (mirrors `<lr-combobox>`'s
|
|
@@ -15184,7 +15559,8 @@ shared overlay stack. First-party invention (no Web Awesome equivalent).
|
|
|
15184
15559
|
|
|
15185
15560
|
**Events:** `lr-change` (`detail: ToolSelectionChangeDetail` — the enabled-tool selection or the
|
|
15186
15561
|
`useDefaults` toggle changed), `lr-close` (`detail: ToolSelectDialogCloseReason` — fired exactly once
|
|
15187
|
-
per dismissal, via Escape, a backdrop click, or a `close()` call)
|
|
15562
|
+
per dismissal, via Escape, a backdrop click, or a `close()` call), and no-detail `focus`/`blur`
|
|
15563
|
+
events re-dispatched when the internal search input gains or loses focus.
|
|
15188
15564
|
|
|
15189
15565
|
**Slots:** `footer` — optional action buttons (e.g. a "Done" button), rendered in a bottom row. Changes
|
|
15190
15566
|
already apply live via `lr-change`, so this slot is purely optional; only visually shown once it has
|
|
@@ -15239,7 +15615,9 @@ checkboxes for editing.
|
|
|
15239
15615
|
- `disabledReason` text only renders when both `tool.disabled` and `tool.disabledReason` are set.
|
|
15240
15616
|
- Categories are grouped in first-seen order across `tools`; an empty/whitespace-only `category` folds
|
|
15241
15617
|
into a trailing "Other" bucket that's always rendered last. A category left with zero matches after
|
|
15242
|
-
filtering is dropped entirely, not rendered as an empty heading.
|
|
15618
|
+
filtering is dropped entirely, not rendered as an empty heading. A caller-supplied category
|
|
15619
|
+
literally named `"Other"` is not the internal uncategorized sentinel: it stays in first-seen order
|
|
15620
|
+
and remains separate even when uncategorized tools are also present.
|
|
15243
15621
|
- Reconnecting the element while still `open` (e.g. a drag-and-drop reparent that keeps the same
|
|
15244
15622
|
instance) resumes its shared overlay registration and re-acquires the scroll lock dropped in
|
|
15245
15623
|
`disconnectedCallback`.
|
|
@@ -15279,7 +15657,9 @@ jump-to-latest action of its own.
|
|
|
15279
15657
|
**Themeable custom properties:** `--lr-thinking-panel-max-block-size` (default `16rem` —
|
|
15280
15658
|
consumer-overridable cap on how tall `[part="body"]` grows before it scrolls internally; not
|
|
15281
15659
|
exposed as a component property since it's a pure layout knob, not something a template branches
|
|
15282
|
-
on),
|
|
15660
|
+
on), and `--lr-thinking-panel-pending-color` (default `var(--lr-color-brand)`) — the live-mode
|
|
15661
|
+
pending duration/toggle accent without changing the shared brand token. Plus shared
|
|
15662
|
+
`--lr-color-border`/`-surface`/`-text`/`-text-quiet`/`-brand`/`-brand-quiet`,
|
|
15283
15663
|
`--lr-space-xs`/`-s`/`-m`, `--lr-radius`, `--lr-focus-ring-width`/`-color`/`-offset`,
|
|
15284
15664
|
`--lr-transition-fast`/`-base`.
|
|
15285
15665
|
|
|
@@ -15371,7 +15751,11 @@ toggle for a run of internal frames), `raw` (the verbatim fallback when zero str
|
|
|
15371
15751
|
parsed), `copy-button` (only rendered while `copyable`).
|
|
15372
15752
|
|
|
15373
15753
|
**Themeable custom properties:** `--lr-stack-trace-max-height` (default `none`),
|
|
15374
|
-
`--lr-stack-trace-font` (default `var(--lr-font-mono)`),
|
|
15754
|
+
`--lr-stack-trace-font` (default `var(--lr-font-mono)`),
|
|
15755
|
+
`--lr-stack-trace-internal-frame-color` (default `var(--lr-color-text-quiet)`) — internal-frame
|
|
15756
|
+
foreground, and `--lr-stack-trace-interactive-color` (default `var(--lr-color-brand)`) — frame
|
|
15757
|
+
hover/focus, internal-toggle, and copy-button-hover accent. The scoped color hooks avoid changing
|
|
15758
|
+
the shared quiet/brand tokens used by surrounding UI. Plus shared tokens
|
|
15375
15759
|
`--lr-color-border`/`-surface`/`-text`/`-text-quiet`/`-brand`, `--lr-radius`,
|
|
15376
15760
|
`--lr-border-width-thin`, `--lr-space-xs`/`-s`/`-2xs`, `--lr-font-size-sm`/`-xs`,
|
|
15377
15761
|
`--lr-font-weight-bold`/`-semibold`, `--lr-focus-ring-*`.
|
|
@@ -15459,7 +15843,8 @@ closing; otherwise always followed by `lr-close` with reason `'approve'`), `lr-d
|
|
|
15459
15843
|
default, `event.detail` is `null`, not `undefined`. Cancelable, same `pending` mechanism, setting
|
|
15460
15844
|
`pending` to `'deny'`; otherwise always followed by `lr-close` with reason `'deny'`), `lr-close`
|
|
15461
15845
|
(`detail: ToolApprovalDialogCloseReason` — fired exactly once per dismissal, via Escape, a backdrop
|
|
15462
|
-
click, the Approve/Deny buttons, or a `close()` call)
|
|
15846
|
+
click, the Approve/Deny buttons, or a `close()` call), and no-detail `focus`/`blur` events
|
|
15847
|
+
re-dispatched when the raw-JSON editor gains or loses focus.
|
|
15463
15848
|
|
|
15464
15849
|
**Slots:** `footer` — optional supplementary content (e.g. a "remember this choice" checkbox),
|
|
15465
15850
|
rendered before the built-in Deny/Edit/Approve buttons.
|
|
@@ -15526,12 +15911,10 @@ shared composed-tree focus traversal used by the other modal families.
|
|
|
15526
15911
|
disconnect/reconnect fire back-to-back with no update in between.
|
|
15527
15912
|
- the Approve button's native `disabled` attribute (while the draft is invalid JSON) automatically
|
|
15528
15913
|
excludes it from the shared Tab trap, whose focusable-set computation skips disabled controls.
|
|
15529
|
-
- the raw-JSON `args-editor` textarea
|
|
15530
|
-
and `
|
|
15531
|
-
|
|
15532
|
-
|
|
15533
|
-
`'sentences'`) could auto-capitalize or auto-correct key/value text as the user edits, silently
|
|
15534
|
-
corrupting the JSON.
|
|
15914
|
+
- the raw-JSON `args-editor` textarea defaults to `spellcheck="false"`, `autocapitalize="off"`,
|
|
15915
|
+
`autocorrect="off"`, and `autocomplete="off"` because its content is JSON, never prose. These
|
|
15916
|
+
native editing-assistance values remain configurable through the corresponding properties for
|
|
15917
|
+
integrations that intentionally need different browser behavior.
|
|
15535
15918
|
- `deny-button`/`approve-button` are `<lr-button>` hosts (`variant="neutral"`/`"brand"` — this
|
|
15536
15919
|
component has no `tone` property) — `--lr-button-*` theming reaches them directly. A consumer
|
|
15537
15920
|
previously styling `::part(deny-button)`/`::part(approve-button)` for
|
|
@@ -15597,13 +15980,19 @@ and makes the form invalid instead of being silently accepted.
|
|
|
15597
15980
|
updates `ElementInternals`, and returns validity without revealing inline errors.
|
|
15598
15981
|
- `reportValidity(): boolean` — performs the same resynchronization, reveals all current field/root
|
|
15599
15982
|
errors, focuses the first invalid generated field when one exists, and delegates to native
|
|
15600
|
-
`ElementInternals.reportValidity()`.
|
|
15983
|
+
`ElementInternals.reportValidity()`. If `required` contains an unmet key absent from
|
|
15984
|
+
`properties`, there is no generated control to focus, so a localized, programmatically focusable
|
|
15985
|
+
root error names that dangling key instead.
|
|
15601
15986
|
|
|
15602
15987
|
**Events:** `lr-input` (`detail: { value: Record<string, unknown> }` — the full current value
|
|
15603
15988
|
object, every property with defaults resolved, not just the field that changed), `lr-validity-change`
|
|
15604
15989
|
(`detail: { valid: boolean; errors: Record<string, string> }` — fired whenever overall validity or
|
|
15605
15990
|
the field-error set changes, including once up front at connect time; serialization-only failures
|
|
15606
|
-
set `valid: false` while `formError`, rather than a fabricated field key, carries the root message)
|
|
15991
|
+
set `valid: false` while `formError`, rather than a fabricated field key, carries the root message),
|
|
15992
|
+
and no-detail `focus`/`blur` events for generated native text/number inputs. The composed
|
|
15993
|
+
`<lr-select>`/`<lr-checkbox>` controls already bubble their own focus/blur bridges through the host.
|
|
15994
|
+
Their implementation events (`input`, `change`, `lr-change`, select show/hide, and option mutation)
|
|
15995
|
+
are contained at the form boundary; consumers receive the single form-level `lr-input` contract.
|
|
15607
15996
|
|
|
15608
15997
|
**Slots:** none.
|
|
15609
15998
|
|
|
@@ -15646,13 +16035,16 @@ This component owns no Submit/Cancel/Approve chrome — a consumer composes it i
|
|
|
15646
16035
|
`<lr-option>`s; a plain `'string'` renders a text `<input>`; `'number'`/`'integer'` render a numeric
|
|
15647
16036
|
`<input type="number">` (`step="1"` for integer, `step="any"` for number); `'boolean'` renders a
|
|
15648
16037
|
`<lr-checkbox>` with the field's label projected into its default slot — real slotted content, since
|
|
15649
|
-
that's `<lr-checkbox>`'s documented way to give itself an accessible name
|
|
15650
|
-
|
|
15651
|
-
|
|
15652
|
-
|
|
15653
|
-
|
|
15654
|
-
|
|
15655
|
-
|
|
16038
|
+
that's `<lr-checkbox>`'s documented way to give itself an accessible name. Enum descriptions/errors
|
|
16039
|
+
flow through `<lr-select>`'s `.hint`/`.errorText` control chrome. Boolean descriptions/errors stay
|
|
16040
|
+
adjacent `[part="description"]`/`[part="error"]` nodes whose ids are passed through the checkbox
|
|
16041
|
+
host's `aria-describedby`; `<lr-checkbox>` resolves those ids onto its internal `role="checkbox"`
|
|
16042
|
+
through `ariaDescribedByElements`. Supporting text therefore keeps description semantics instead of
|
|
16043
|
+
being folded into an `aria-label`. The outer component owns JSON Schema validity: `required` means
|
|
16044
|
+
an own property is present, so `''`, `0`, and `false` are valid present values. A plain required
|
|
16045
|
+
boolean consequently does not set `<lr-checkbox>.required`'s must-check semantics. Use
|
|
16046
|
+
`{ type: 'boolean', const: true }` together with `required` for a must-confirm checkbox; that exact
|
|
16047
|
+
combination does set the nested checkbox's matching native/ARIA required state.
|
|
15656
16048
|
|
|
15657
16049
|
Optional native `<form>` participation is implemented via `ElementInternals` attached directly in the
|
|
15658
16050
|
constructor (`static formAssociated = true`) rather than a string-value mixin, since this component's
|
|
@@ -15673,6 +16065,9 @@ a JSON object, falls back to `{}` for malformed/non-object state, and does not e
|
|
|
15673
16065
|
after an explicit `reportValidity()` call — `checkValidity()` alone never reveals them, matching
|
|
15674
16066
|
every other form control in this library (`<lr-select>`/`<lr-combobox>`/`<lr-model-select>`
|
|
15675
16067
|
all avoid flashing red before the user has touched anything).
|
|
16068
|
+
- a key listed in `schema.required` but absent from `schema.properties` still fails closed. Because
|
|
16069
|
+
no field exists for that dangling reference, `reportValidity()` renders and focuses a localized
|
|
16070
|
+
root error naming the key rather than leaving an invisible, unreachable validity failure.
|
|
15676
16071
|
- `effectiveValue` distinguishes "key absent from `value`" (falls back to `default`) from "key present
|
|
15677
16072
|
but `undefined`" (stays cleared and counts as absent for `required`) via `hasOwnProperty`, not an
|
|
15678
16073
|
`=== undefined` fallback check.
|
|
@@ -15799,6 +16194,8 @@ scroll position. `disabled: boolean = false` (reflected) disables every vote but
|
|
|
15799
16194
|
output), and `prompt` (optional shared-input header above both panes).
|
|
15800
16195
|
|
|
15801
16196
|
**Events:** `lr-vote` — `detail: { choice: 'a' | 'b' | 'tie' | 'both-bad'; itemId: string }`.
|
|
16197
|
+
This is a cancelable veto point emitted before `vote` changes; call `preventDefault()` to preserve
|
|
16198
|
+
the prior vote.
|
|
15802
16199
|
|
|
15803
16200
|
**CSS parts:** `base` (the outer wrapper), `prompt` (the optional prompt header, hidden when the
|
|
15804
16201
|
`prompt` slot is empty), `panes` (the row, or under 640px column, wrapping both panes), `pane-a`,
|
|
@@ -15807,7 +16204,11 @@ output), and `prompt` (optional shared-input header above both panes).
|
|
|
15807
16204
|
internal vote-announcement live region).
|
|
15808
16205
|
|
|
15809
16206
|
**Themeable custom properties:** `--lr-compare-panel-max-height` (default `var(--lr-size-24rem)`) —
|
|
15810
|
-
cap on each pane's scroll region before it scrolls internally
|
|
16207
|
+
cap on each pane's scroll region before it scrolls internally;
|
|
16208
|
+
`--lr-compare-panel-selected-background` (default `var(--lr-color-brand-quiet)`),
|
|
16209
|
+
`--lr-compare-panel-selected-border-color` (default `var(--lr-color-brand)`), and
|
|
16210
|
+
`--lr-compare-panel-selected-color` (default `var(--lr-color-brand)`) style the selected vote
|
|
16211
|
+
button without changing shared brand tokens.
|
|
15811
16212
|
|
|
15812
16213
|
## `lr-span-waterfall`
|
|
15813
16214
|
|
|
@@ -15836,10 +16237,22 @@ Space).
|
|
|
15836
16237
|
bar), `meta` (secondary row info, shown inline under 480px), `status-text`, `duration`, `empty` (shown
|
|
15837
16238
|
when `spans` is empty), and `live-region`.
|
|
15838
16239
|
|
|
16240
|
+
The terminal axis tick is end-aligned so its label remains inside the allocated chart width. Roving
|
|
16241
|
+
keyboard focus is computed from the currently rendered/filtered span ids, so a hidden active span
|
|
16242
|
+
cannot leave the component with no `tabindex="0"` stop.
|
|
16243
|
+
|
|
15839
16244
|
**Themeable custom properties:** `--lr-span-waterfall-name-width` (default `8rem`),
|
|
15840
16245
|
`--lr-span-waterfall-stripe-speed` (a `running` span's striped-bar animation duration; defaults to
|
|
15841
16246
|
`--lr-transition-ambient`), and `--lr-span-waterfall-row-active-bg` (default
|
|
15842
16247
|
`var(--lr-color-brand-quiet)`) — the background of the active (`activeSpanId`) row.
|
|
16248
|
+
Status-scoped bar hooks are `--lr-span-waterfall-success-color` (default
|
|
16249
|
+
`var(--lr-color-success)`), `--lr-span-waterfall-error-color` (default
|
|
16250
|
+
`var(--lr-color-danger)`), `--lr-span-waterfall-denied-color` (default
|
|
16251
|
+
`var(--lr-color-warning)`), `--lr-span-waterfall-running-color` (default
|
|
16252
|
+
`var(--lr-color-brand)`) for the running stripe foreground,
|
|
16253
|
+
`--lr-span-waterfall-running-stripe-color` (default `var(--lr-color-brand-quiet)`) for its
|
|
16254
|
+
contrasting background, and `--lr-span-waterfall-pending-border-color` (default
|
|
16255
|
+
`var(--lr-color-border-strong)`) for pending bars.
|
|
15843
16256
|
|
|
15844
16257
|
That last one follows the convention every **state-scoped** custom property in this family uses, and
|
|
15845
16258
|
it is worth reading once: it is an inline `var()` fallback at its point of use and is deliberately
|
|
@@ -15893,7 +16306,12 @@ label/summary/toggle while `compact`, one step tighter than the header's uncompa
|
|
|
15893
16306
|
`--lr-space-xs`, so `compact` tightens the header's *interior* spacing and not just its padding;
|
|
15894
16307
|
`--lr-task-list-compact-gap` (default `var(--lr-space-2xs)`) — gap between `[part="body"]`'s item
|
|
15895
16308
|
rows while `compact`; `--lr-task-list-compact-body-padding` (default `var(--lr-space-2xs)
|
|
15896
|
-
var(--lr-space-s) var(--lr-space-s)`) — `[part="body"]` padding while `compact
|
|
16309
|
+
var(--lr-space-s) var(--lr-space-s)`) — `[part="body"]` padding while `compact`;
|
|
16310
|
+
`--lr-task-list-pending-color` (default `var(--lr-color-text-quiet)`),
|
|
16311
|
+
`--lr-task-list-running-color` (default `var(--lr-color-brand)`),
|
|
16312
|
+
`--lr-task-list-success-color` (default `var(--lr-color-success)`), and
|
|
16313
|
+
`--lr-task-list-error-color` (default `var(--lr-color-danger)`) independently retint the matching
|
|
16314
|
+
status icons without changing shared status tokens.
|
|
15897
16315
|
|
|
15898
16316
|
## `lr-terminal`
|
|
15899
16317
|
|
|
@@ -15920,7 +16338,10 @@ line-granular (a match identifies a whole line, not a character range) and cappe
|
|
|
15920
16338
|
stops climbing on a pathologically repetitive buffer. `getPlainText()` returns the SGR-stripped
|
|
15921
16339
|
plain text of the whole buffer.
|
|
15922
16340
|
|
|
15923
|
-
**Events:** `lr-copy` (`detail: { text }`), `lr-download` (`detail: { filename }
|
|
16341
|
+
**Events:** `lr-copy` (`detail: { text }`), `lr-download` (`detail: { filename }`, cancelable — by
|
|
16342
|
+
default the component creates a plain-text `Blob`/object URL and activates a synthetic
|
|
16343
|
+
`<a download>`; `preventDefault()` suppresses that built-in download so the host can substitute
|
|
16344
|
+
server-side or other handling),
|
|
15924
16345
|
`lr-follow-change` (`detail: { following }`), `lr-search-change` (`detail: { query, matchCount,
|
|
15925
16346
|
activeIndex }`), `lr-highlight-activate` (`detail: { id }`), and `lr-text-select` (`detail: {
|
|
15926
16347
|
text, anchor, rects }`).
|
|
@@ -15951,6 +16372,15 @@ beat it without `!important`.
|
|
|
15951
16372
|
- `--lr-terminal-search-outline-color` — Outline color for a line containing a non-active search match. Default: `var(--lr-color-warning)`.
|
|
15952
16373
|
- `--lr-terminal-search-active-outline-color` — Outline color for the active search match's line. Default: `var(--lr-color-brand)`.
|
|
15953
16374
|
|
|
16375
|
+
While a search query is active, writes, scrollback trimming, `content` replacement, and `clear()`
|
|
16376
|
+
recompute the exact match count and emit `lr-search-change` only when that public search snapshot
|
|
16377
|
+
actually changes. Pending output announcements are canceled by clear/replacement, disabling
|
|
16378
|
+
`announceOutput`, or disconnect, so stale text is never announced after it has been removed.
|
|
16379
|
+
A multi-line highlight paints every retained covered line but exposes exactly one keyboard/click
|
|
16380
|
+
owner at the anchor's start, or at the first surviving covered line after scrollback trims that
|
|
16381
|
+
start. Its accessible name combines the caller label with visible line text (or a localized line
|
|
16382
|
+
number for an empty line), avoiding duplicate tab stops for one logical highlight.
|
|
16383
|
+
|
|
15954
16384
|
## `lr-trace-tree`
|
|
15955
16385
|
|
|
15956
16386
|
A collapsible span hierarchy for one agent/LLM trace (Langfuse/LangSmith run-tree style): kind icon,
|
|
@@ -15964,6 +16394,9 @@ as a root rather than being dropped. `activeSpanId: string | null = null`
|
|
|
15964
16394
|
(attribute `active-span-id`), `label: string = ''`, `showTokens: boolean = false` (attribute
|
|
15965
16395
|
`show-tokens`) — surfaces `tokensIn`/`tokensOut`, `showCost: boolean = false` (attribute
|
|
15966
16396
|
`show-cost`) — surfaces `costText`, and `hideBars: boolean = false` (attribute `hide-bars`).
|
|
16397
|
+
Token counts render only when finite and non-negative; invalid metrics are omitted rather than
|
|
16398
|
+
reaching `Intl.NumberFormat`. A row's accessible name includes its optional `detail` text as well
|
|
16399
|
+
as its name/status/metrics, and updates when the supplied span data changes.
|
|
15967
16400
|
|
|
15968
16401
|
**Methods:** `expandAll()` and `collapseAll()` set every row's expanded state at once.
|
|
15969
16402
|
|
|
@@ -16103,16 +16536,30 @@ name: string; tests: TestCaseResult[] }` and `TestCaseResult { id: string; name:
|
|
|
16103
16536
|
TestStatus; durationMs?: number; message?: string }`, with `TestStatus = 'passed' | 'failed' |
|
|
16104
16537
|
'skipped' | 'running'` (all three exported here). `statusFilter: TestStatus[] =
|
|
16105
16538
|
[]` (attribute: false) — empty shows every status; and `autoExpandFailures: boolean = true`
|
|
16106
|
-
(attribute `auto-expand-failures`).
|
|
16107
|
-
|
|
16108
|
-
|
|
16109
|
-
|
|
16539
|
+
(attribute `auto-expand-failures`). A duration renders only when it is finite and non-negative;
|
|
16540
|
+
invalid/negative values are omitted rather than reaching `Intl.NumberFormat`.
|
|
16541
|
+
|
|
16542
|
+
**Slots:** `detail-{encodedSuiteId}:{encodedTestId}` — collision-free suite-scoped rich detail for
|
|
16543
|
+
a test, where each encoded segment is `encodeURIComponent(id)`. It renders after the plain
|
|
16544
|
+
`message` once expanded (for example, suite `unit` and test `same` use
|
|
16545
|
+
`slot="detail-unit:same"`). This canonical form distinguishes duplicate and delimiter-containing
|
|
16546
|
+
ids and wins when multiple forms are supplied. The prior
|
|
16547
|
+
`detail-{suiteId}-{testId}` form remains an unambiguous compatibility fallback; it is ignored when
|
|
16548
|
+
the same name could address multiple rows or collide with another row's canonical name. The older
|
|
16549
|
+
`detail-{testId}` form remains supported only while that test id is globally unique across all
|
|
16550
|
+
suites. Slot listeners remain mounted while detail is absent, so appending matching slotted
|
|
16551
|
+
content after the component's first render immediately enables the row's disclosure.
|
|
16110
16552
|
|
|
16111
16553
|
**Events:** `lr-test-select` (`detail: { suiteId: string; testId: string }`, a test row's name was
|
|
16112
16554
|
activated), `lr-filter-change` (`detail: { statuses: TestStatus[] }` — the complete next filter set; the
|
|
16113
16555
|
component updates its own `statusFilter` first, then emits),
|
|
16114
|
-
and `lr-toggle` (`detail: { id: string; expanded: boolean }`, a row's failure
|
|
16115
|
-
expanded/collapsed).
|
|
16556
|
+
and `lr-toggle` (`detail: { id: string; suiteId?: string; expanded: boolean }`, a row's failure
|
|
16557
|
+
detail was expanded/collapsed). To preserve the established exact event shape, `suiteId` is omitted
|
|
16558
|
+
for a globally unique test id and included when the id occurs in more than one suite. Manual
|
|
16559
|
+
expansion state is always keyed by the suite+test pair, so toggling one duplicate never toggles its
|
|
16560
|
+
sibling.
|
|
16561
|
+
Each expand/collapse action's localized accessible name includes both suite and test names, so
|
|
16562
|
+
repeated row controls remain distinguishable.
|
|
16116
16563
|
|
|
16117
16564
|
**CSS parts:** `base`, `summary` (the status-count strip), `count` (carries `data-status`), `filter`,
|
|
16118
16565
|
`filter-toggle` (carries `data-status`/`aria-pressed`), `suite`, `suite-header`, `test` (carries
|
|
@@ -16128,7 +16575,11 @@ filter toggle. All three follow the state-scoped-property convention described u
|
|
|
16128
16575
|
the element or on any ancestor. They exist because
|
|
16129
16576
|
`::part(filter-toggle)[aria-pressed='true']` is invalid CSS — Shadow Parts forbids an attribute
|
|
16130
16577
|
selector after `::part()` — so restyling the pressed state otherwise meant overriding the
|
|
16131
|
-
library-wide brand tokens.
|
|
16578
|
+
library-wide brand tokens. Per-result status foregrounds are independently exposed through
|
|
16579
|
+
`--lr-test-results-passed-color` (default `var(--lr-color-success)`),
|
|
16580
|
+
`--lr-test-results-failed-color` (default `var(--lr-color-danger)`),
|
|
16581
|
+
`--lr-test-results-skipped-color` (default `var(--lr-color-text-quiet)`), and
|
|
16582
|
+
`--lr-test-results-running-color` (default `var(--lr-color-brand)`).
|
|
16132
16583
|
|
|
16133
16584
|
## `lr-confirm-bar`
|
|
16134
16585
|
|
|
@@ -16539,6 +16990,8 @@ Rubric scoring and human-review surface for comparing the runs of one evaluation
|
|
|
16539
16990
|
|
|
16540
16991
|
Composes `lr-table` (the comparison table), `lr-rubric-form` (the review surface), and
|
|
16541
16992
|
`lr-diff-view` (baseline↔selected output diff) rather than re-deriving any of their behavior.
|
|
16993
|
+
The table's accessible name is the localized evaluation-runs label by default; a host
|
|
16994
|
+
`aria-label` on `<lr-eval-result>` overrides it.
|
|
16542
16995
|
|
|
16543
16996
|
**Properties:**
|
|
16544
16997
|
- `runs: EvalRunResult[] = []` (attribute: false) — `EvalRunResult { id: string; label: string;
|
|
@@ -16672,12 +17125,17 @@ primitives, with retry counts and sensitive-field redaction.
|
|
|
16672
17125
|
unknown }`, extending the shared detail from `@aceshooting/lyra-ui/ai`). `args` is present only when
|
|
16673
17126
|
`approved` is `true`, and may differ from what the entry originally proposed — the dialog's inline
|
|
16674
17127
|
edit step can hand back different arguments. A listener that only needs `{ invocationId, approved }`
|
|
16675
|
-
can ignore it; one actually executing the tool needs it.
|
|
17128
|
+
can ignore it; one actually executing the tool needs it. This is a cancelable veto point:
|
|
17129
|
+
`preventDefault()` preserves the pending approval dialog and its current inline argument edits
|
|
17130
|
+
instead of closing/resetting them, so asynchronous host validation can finish before resolving the
|
|
17131
|
+
decision.
|
|
16676
17132
|
|
|
16677
17133
|
**CSS parts:** `base`,
|
|
16678
17134
|
`entry`, `entry-marker`, `entry-header`, `entry-timestamp`, `entry-body`, `entry-details`,
|
|
16679
17135
|
`entry-result`, `entry-error`, `entry-retries`, `entry-retries-count`, `entry-retries-label`,
|
|
16680
17136
|
`entry-redacted-indicator`, `entry-approval-status`, `approval-dialog`.
|
|
17137
|
+
Each entry's `lr-details` disclosure has a localized contextual summary naming that tool call, not a
|
|
17138
|
+
repeated bare "Details" label.
|
|
16681
17139
|
|
|
16682
17140
|
**Themeable custom properties:** `--lr-tool-timeline-gap` (default `var(--lr-space-l)`) — vertical
|
|
16683
17141
|
gap between entries; `--lr-tool-timeline-marker-size` (default `var(--lr-size-0-625rem)`) — the
|
|
@@ -16734,6 +17192,8 @@ It never executes tools or persists decisions.
|
|
|
16734
17192
|
|
|
16735
17193
|
**Events:** `lr-approval-select` (`{ invocationId }`), `lr-approval-decision` (`{ invocationId,
|
|
16736
17194
|
approved, args? }`), and `lr-approval-close` (`{ invocationId, reason }`).
|
|
17195
|
+
`lr-approval-decision` is cancelable; calling `preventDefault()` vetoes the nested approve/deny
|
|
17196
|
+
request and keeps the decision dialog pending.
|
|
16737
17197
|
|
|
16738
17198
|
**CSS parts:** `base`, `heading-row`, `heading`, `count`, `list`, `request`, `request-info`,
|
|
16739
17199
|
`tool-name`, `request-id`, `status`, `empty`. The `[part='request']` row matching `selectedId`
|
|
@@ -16778,6 +17238,12 @@ request. Both are no-ops before a frame exists.
|
|
|
16778
17238
|
(`{ level, value }`), and `lr-mcp-resize` (`{ height }`). These are host-authorized requests; the
|
|
16779
17239
|
component does not execute tools, send messages, or navigate itself.
|
|
16780
17240
|
|
|
17241
|
+
Changing `resource` mounts a fresh iframe/window generation; messages from the prior
|
|
17242
|
+
`contentWindow` are ignored even when two opaque-origin inline documents otherwise look alike.
|
|
17243
|
+
Changing only `height`/`maxHeight` updates frame geometry without returning an already-ready frame
|
|
17244
|
+
to its loading state. The initial host context reports `effectiveLocale`, so inherited/document
|
|
17245
|
+
locale and per-element locale overrides follow the same precedence as the rest of Lyra UI.
|
|
17246
|
+
|
|
16781
17247
|
**CSS parts:** `base`, `frame`, `loading`, `error`.
|
|
16782
17248
|
|
|
16783
17249
|
**Slots:** none. **Optional peer deps:** none.
|
|
@@ -16813,6 +17279,10 @@ PromptStudioMessage[]; variables?: PromptStudioVariable[]; createdAt?: string }`
|
|
|
16813
17279
|
`message-content`, `remove-message`, `add-message`, `variables`, `variable`, `versions`, `version`,
|
|
16814
17280
|
`preview`, `save`, `run`.
|
|
16815
17281
|
|
|
17282
|
+
Each message's role select and content editor has a localized contextual accessible name containing
|
|
17283
|
+
its one-based message index and purpose (plus the current role for content), so repeated controls do
|
|
17284
|
+
not collapse to indistinguishable generic names.
|
|
17285
|
+
|
|
16816
17286
|
**Slots:** none. **Optional peer deps:** none.
|
|
16817
17287
|
|
|
16818
17288
|
```ts
|
|
@@ -16845,7 +17315,9 @@ keywords. `SchemaValidationIssue = { path: string; message: string; severity?: '
|
|
|
16845
17315
|
**Events:** `lr-schema-select` (`{ path, schema }`, with an RFC 6901-style JSON Pointer).
|
|
16846
17316
|
|
|
16847
17317
|
**CSS parts:** `base`, `tree`, `node`, `node-selected`, `node-trigger`, `name`, `type`, `required`,
|
|
16848
|
-
`description`, `constraints`, `issue`, `limit`, `empty`.
|
|
17318
|
+
`description`, `constraints`, `issue`, `limit`, `issue-limit`, `empty`. `issue-limit` is the
|
|
17319
|
+
localized resource-ceiling status shown when caller-supplied validation issues exceed the rendered
|
|
17320
|
+
issue cap.
|
|
16849
17321
|
|
|
16850
17322
|
`[part='issue']` carries `data-severity` and each severity has its own styling: `error` reads the
|
|
16851
17323
|
danger tokens, `warning` the warning tokens, and `info` its own pair —
|
|
@@ -16859,8 +17331,10 @@ invalid CSS, so this is the only way to recolor one severity without touching th
|
|
|
16859
17331
|
**Themeable custom properties:** `--lr-schema-viewer-info-border`, `--lr-schema-viewer-info-bg` (see
|
|
16860
17332
|
above); otherwise shared tokens only.
|
|
16861
17333
|
|
|
16862
|
-
Rendering is capped at 500 schema nodes; `limit`
|
|
16863
|
-
|
|
17334
|
+
Rendering is capped independently at 500 schema nodes and 500 validation issues; `limit` and
|
|
17335
|
+
`issue-limit` report their respective truncation. Issues are indexed by path once before recursive
|
|
17336
|
+
rendering instead of rescanning the full input for every node. Cycles stop at the repeated node
|
|
17337
|
+
rather than recursing. **Slots:** none. **Optional peer deps:** none.
|
|
16864
17338
|
|
|
16865
17339
|
```ts
|
|
16866
17340
|
import '@aceshooting/lyra-ui/components/agent-tools/schema-viewer/schema-viewer.js';
|
|
@@ -16869,6 +17343,7 @@ import '@aceshooting/lyra-ui/components/agent-tools/schema-viewer/schema-viewer.
|
|
|
16869
17343
|
**Additional API surface:**
|
|
16870
17344
|
|
|
16871
17345
|
- `part="limit"` — Resource-ceiling status shown when additional nodes are omitted.
|
|
17346
|
+
- `part="issue-limit"` — Resource-ceiling status shown when additional validation issues are omitted.
|
|
16872
17347
|
- `--lr-schema-viewer-selected-border` — Selected node branch. Default: `var(--lr-color-brand)`.
|
|
16873
17348
|
- `--lr-schema-viewer-error-border` — Error issue border. Default: `var(--lr-color-danger)`.
|
|
16874
17349
|
- `--lr-schema-viewer-error-bg` — Error issue background. Default: `var(--lr-color-danger-quiet)`.
|
|
@@ -16893,7 +17368,10 @@ Record<string, unknown> }`.
|
|
|
16893
17368
|
`task`, `model`, `progress`, `actions`, `cancel`, `retry`, `limit`, `empty`.
|
|
16894
17369
|
|
|
16895
17370
|
At most 500 runs render, and visual indentation is capped at 12 levels while ARIA hierarchy keeps
|
|
16896
|
-
the logical depth.
|
|
17371
|
+
the logical depth. The roving treeitem accepts Enter/Space as well as pointer activation for
|
|
17372
|
+
`lr-run-select`; cancel/retry action names include the run label so repeated row actions remain
|
|
17373
|
+
distinguishable to assistive technology. Progress is finite and clamped. **Slots:** none.
|
|
17374
|
+
**Optional peer deps:** none.
|
|
16897
17375
|
|
|
16898
17376
|
```ts
|
|
16899
17377
|
import '@aceshooting/lyra-ui/components/agent-tools/subagent-panel/subagent-panel.js';
|
|
@@ -16935,8 +17413,9 @@ A force-directed node-link diagram with pan/zoom/drag, built on `d3-force`.
|
|
|
16935
17413
|
boolean; color?: string; dash?: number[] }` (source/target are node ids). `directed` adds an
|
|
16936
17414
|
arrowhead; `color` and `dash` style the individual stroke; `label` provides a spoken-name and SVG
|
|
16937
17415
|
tooltip fallback but is not rendered as visible edge text; `accessibleLabel` and `description`
|
|
16938
|
-
can override the spoken name and tooltip independently.
|
|
16939
|
-
to
|
|
17416
|
+
can override the spoken name and tooltip independently. `width` is normalized before reaching
|
|
17417
|
+
SVG, canvas paint, or canvas picking: negative values clamp to `0`, while a non-finite or unset
|
|
17418
|
+
value uses `1.5`. A link whose `source` id doesn't resolve to a real node is still dropped entirely
|
|
16940
17419
|
(there's no position to draw a stub from). A link whose `target` id doesn't resolve instead renders
|
|
16941
17420
|
as a short, dashed, non-interactive stub off `source`'s own position
|
|
16942
17421
|
(`[part='link'][data-dangling]`, `aria-hidden="true"`) rather than being silently dropped — e.g. for
|
|
@@ -16979,7 +17458,9 @@ A force-directed node-link diagram with pan/zoom/drag, built on `d3-force`.
|
|
|
16979
17458
|
`::part(node)`/`::part(link)` styling (pixels, not elements — theme via cssprops instead), no
|
|
16980
17459
|
native SVG `<title>` tooltip (replaced by `part="tooltip"`), and a drawn focus ring instead of a
|
|
16981
17460
|
CSS one. Keyboard roving/announcements are preserved through an offscreen `part="cursor-item"`
|
|
16982
|
-
button per node/link/hull.
|
|
17461
|
+
button per node/link/hull. In both renderers, node, link, and community-hull picking keeps at
|
|
17462
|
+
least 24 CSS px of screen-space geometry as the viewport zoom changes; this enlarges interaction
|
|
17463
|
+
only, not the visible marks.
|
|
16983
17464
|
|
|
16984
17465
|
**Methods:** `focusNode(id, options?: { zoom? })` and `fit(options?: { padding?: number })` control the
|
|
16985
17466
|
camera; `getNodePosition(id)` returns the current `{ x, y }` in graph-local drawing coordinates, or
|
|
@@ -16992,7 +17473,9 @@ id? }`; the optional `id` is the stable `GraphLink.id` supplied by the caller),
|
|
|
16992
17473
|
`lr-link-enter`/`lr-link-leave` (`detail: { source, target, id? }`, same hover contract),
|
|
16993
17474
|
`lr-node-expand` (`detail: { id }`, a node was double-activated — native `dblclick`, or two
|
|
16994
17475
|
Enter/Space activations within 500ms — regardless of `GraphNode.expandable`), `lr-community-click`
|
|
16995
|
-
(`detail: { id }`, a hull was activated)
|
|
17476
|
+
(`detail: { id }`, a hull was activated), `lr-selection-change`
|
|
17477
|
+
(`detail: { nodeIds, linkIds }`, a controlled selection intent), and `lr-viewport-change`
|
|
17478
|
+
(`detail: { k, x, y }`, a frame-coalesced camera/layout signal)
|
|
16996
17479
|
|
|
16997
17480
|
**Slots:** none.
|
|
16998
17481
|
|
|
@@ -17028,8 +17511,10 @@ Under `renderer="canvas"` these five are read from computed style at paint time
|
|
|
17028
17511
|
per-node elements to inherit them), so they must be set on or above the `<lr-graph>` host itself.
|
|
17029
17512
|
|
|
17030
17513
|
**Optional peer deps:** `d3-force`, `d3-drag`, `d3-zoom`, `d3-selection` (all four required
|
|
17031
|
-
together; lazy-`import()`ed once per page
|
|
17032
|
-
|
|
17514
|
+
together; lazy-`import()`ed once per page). Each loaded module is validated for the named callable
|
|
17515
|
+
capabilities the graph uses; a missing package or malformed module fails closed through the
|
|
17516
|
+
localized `part="error"` alert. Install with
|
|
17517
|
+
`pnpm add d3-force d3-drag d3-zoom d3-selection`.
|
|
17033
17518
|
|
|
17034
17519
|
```html
|
|
17035
17520
|
<lr-graph style="display:block;height:500px"></lr-graph>
|
|
@@ -17071,12 +17556,11 @@ install with `pnpm add d3-force d3-drag d3-zoom d3-selection`).
|
|
|
17071
17556
|
`<lr-skeleton>` sized to `width`/`height` with `aria-busy="true"`. If they fail to load (for
|
|
17072
17557
|
example, because they are not installed), the graph fails closed with a localized
|
|
17073
17558
|
`part="error"` / `role="alert"` message instead of leaving an empty SVG.
|
|
17074
|
-
- `GraphNode.color
|
|
17075
|
-
|
|
17076
|
-
|
|
17077
|
-
-
|
|
17078
|
-
|
|
17079
|
-
line rather than partially applying malformed SVG stroke data.
|
|
17559
|
+
- `GraphNode.color`, node-type colors, `GraphLink.color`, and community colors are accepted only
|
|
17560
|
+
when the browser parses them as CSS `color`; declaration breaks and `url()` paint servers are
|
|
17561
|
+
ignored in favor of the normal token/palette fallback. `GraphLink.dash` is used only when every
|
|
17562
|
+
entry is finite and non-negative; an empty or invalid array falls back to a solid line rather
|
|
17563
|
+
than partially applying malformed SVG stroke data.
|
|
17080
17564
|
- a structural `nodes`/`links` change now carries over each already-settled node's position (and any
|
|
17081
17565
|
in-progress drag) by id when rebuilding the simulation, instead of discarding every node's (x, y)
|
|
17082
17566
|
and re-running the whole ~300-tick random-start settle from scratch — only genuinely new ids get a
|
|
@@ -17085,6 +17569,8 @@ install with `pnpm add d3-force d3-drag d3-zoom d3-selection`).
|
|
|
17085
17569
|
- under `prefers-reduced-motion: reduce`, or whenever `seed` is set, the simulation converges
|
|
17086
17570
|
synchronously (ticked in a loop down to `alphaMin` before first paint) instead of animating over
|
|
17087
17571
|
~300 rendered frames; user-initiated motion (dragging a node) is unaffected either way.
|
|
17572
|
+
- in canvas mode, `pointercancel`, lost pointer capture, and disconnect all release a live node's
|
|
17573
|
+
force pin and reset the simulation target; a canceled drag never leaves the node pinned.
|
|
17088
17574
|
- the `<svg part="svg">` now carries `role="group"` and an `aria-label` summarizing the node/link
|
|
17089
17575
|
counts (e.g. "Node-link diagram with 5 nodes and 4 links"), and node `<text part="label">`s are
|
|
17090
17576
|
`aria-hidden="true"` (their content is already covered by each node's own `aria-label`).
|
|
@@ -17192,7 +17678,8 @@ same event-decoupled contract every sibling in this family follows.
|
|
|
17192
17678
|
**Properties:**
|
|
17193
17679
|
- `types: LyraGraphLegendType[] = []` (attribute: false) — `{ id: string; label: string; color?:
|
|
17194
17680
|
string; shape?: 'circle' | 'square' | 'diamond' }`, the exact `lr-graph.nodeTypes` entry shape
|
|
17195
|
-
(declared locally, not imported, so this stays a zero-dependency component)
|
|
17681
|
+
(declared locally, not imported, so this stays a zero-dependency component). A color is used only
|
|
17682
|
+
when valid for CSS `color`; declaration breaks and `url()` fall back to the categorical palette
|
|
17196
17683
|
- `counts?: Record<string, number>` (attribute: false) — optional per-type count shown alongside the
|
|
17197
17684
|
label
|
|
17198
17685
|
- `hiddenTypes: string[] = []` (attribute: false) — controlled; the host assigns this back from
|
|
@@ -17212,7 +17699,8 @@ after each toggle).
|
|
|
17212
17699
|
**Themeable custom properties:** `--lr-graph-legend-hidden-color` (default
|
|
17213
17700
|
`var(--lr-color-text-quiet)`) — text color of a filtered-out (hidden) row's `label`/`count`,
|
|
17214
17701
|
independent of the shared quiet-text token so a host can retint "hidden" rows without repainting
|
|
17215
|
-
every other quiet-text surface
|
|
17702
|
+
every other quiet-text surface; `--lr-graph-legend-hidden-swatch-opacity` (default `0.5`) controls
|
|
17703
|
+
only that row's decorative swatch opacity. Also reads `--lr-graph-cat-1` through `-8`
|
|
17216
17704
|
(the same computed-style fallback palette `lr-graph`/`lr-word-cloud` use) plus shared tokens.
|
|
17217
17705
|
|
|
17218
17706
|
**Optional peer deps:** none.
|
|
@@ -17580,7 +18068,8 @@ stance `lr-tool-select-dialog` already takes.
|
|
|
17580
18068
|
- `sources: LyraSourceEntry[] = []` (attribute: false) — `LyraSourceEntry { id: string; label:
|
|
17581
18069
|
string; mimeType?: string; name?: string; children?: LyraSourceEntry[] }`; flat (no `children`) or
|
|
17582
18070
|
a tree — presence of `children` makes a row a group/folder with tri-state select
|
|
17583
|
-
- `selectedIds: string[] = []` (attribute: false) — controlled;
|
|
18071
|
+
- `selectedIds: string[] = []` (attribute: false) — controlled; duplicates and ids that are not
|
|
18072
|
+
leaves in the current `sources` tree are pruned, and the host assigns updates back from
|
|
17584
18073
|
`lr-sources-change`
|
|
17585
18074
|
- `showSelectAll: boolean = true` (attribute `show-select-all`)
|
|
17586
18075
|
- `searchable: boolean = true`
|
|
@@ -17596,7 +18085,8 @@ fired after every toggle including select-all).
|
|
|
17596
18085
|
|
|
17597
18086
|
**CSS parts:** `base`, `search` (the built-in filter `lr-input`, only when `searchable`),
|
|
17598
18087
|
`select-all` (only when `showSelectAll`), `summary` ("{selected} of {total} selected"), `tree`
|
|
17599
|
-
(`role="tree"`), `item` (`role="treeitem"`), `disclosure` (a folder row's
|
|
18088
|
+
(`role="tree"`), `item` (`role="treeitem"`), `disclosure` (a folder row's pointer-only
|
|
18089
|
+
expand/collapse indicator; the surrounding treeitem owns keyboard expansion),
|
|
17600
18090
|
`checkbox` (tri-state glyph), `icon` (the `lr-file-icon` type badge), `label`, `empty` (`noData`
|
|
17601
18091
|
when `sources` is empty, `noMatches` when a filter empties the tree).
|
|
17602
18092
|
|
|
@@ -17752,8 +18242,9 @@ anything about `<lr-source-card>`, it only carries the id through its event deta
|
|
|
17752
18242
|
echoed back verbatim in both events; never read or validated by this component.
|
|
17753
18243
|
- `href: string = ''` — optional direct link target for the citation's source, carried into
|
|
17754
18244
|
`lr-citation-open`'s detail as-is; this component never navigates.
|
|
17755
|
-
- `label: string = ''` —
|
|
17756
|
-
|
|
18245
|
+
- `label: string = ''` — adds caller-supplied context to the localized citation name while retaining
|
|
18246
|
+
the visible citation number (for example, `"Citation 3, Annual report"`). A host `aria-label`
|
|
18247
|
+
remains the exact highest-precedence override.
|
|
17757
18248
|
|
|
17758
18249
|
**Events:**
|
|
17759
18250
|
- `lr-citation-activate` (`detail: { sourceId: string; index: number }`) — fires on click, or on
|
|
@@ -17856,7 +18347,8 @@ handy for building a `label-plural` string reactively, e.g. `` list.labelPlural
|
|
|
17856
18347
|
collapsing the list.
|
|
17857
18348
|
|
|
17858
18349
|
**Slots:** default — `<lr-source-card>` elements (or any content, though the card pairing is the
|
|
17859
|
-
intended usage).
|
|
18350
|
+
intended usage). While connected, each assigned element receives `role="listitem"`; its author
|
|
18351
|
+
role is retained across live changes and restored when it leaves the list or the list disconnects.
|
|
17860
18352
|
|
|
17861
18353
|
**CSS parts:** `base` (outer container), `header` (the clickable `<button>` toggling `expanded`),
|
|
17862
18354
|
`toggle` (the chevron indicator inside the header), `list` (wrapper around the default slot, `hidden`
|
|
@@ -18054,7 +18546,8 @@ and `lr-citation-badge` for each evidence entry.
|
|
|
18054
18546
|
`@aceshooting/lyra-ui/ai` = `{ citation: Citation }`) — emitted when an evidence badge is activated.
|
|
18055
18547
|
The inner `lr-citation-badge`'s own `lr-citation-activate` (`detail: { sourceId, index }`) still
|
|
18056
18548
|
bubbles through unmodified; this richer event exists because a bare `sourceId`/`index` pair can't
|
|
18057
|
-
tell a host which exact evidence *span* to jump to.
|
|
18549
|
+
tell a host which exact evidence *span* to jump to. The composed `lr-claim-evidence` also surfaces
|
|
18550
|
+
`lr-claim-select` (`detail: { claim }`) unchanged when a claim is activated.
|
|
18058
18551
|
|
|
18059
18552
|
**Slots:** none.
|
|
18060
18553
|
|
|
@@ -18097,7 +18590,8 @@ embedding counts, retry attempts, errors, and retry/cancel requests. Never inges
|
|
|
18097
18590
|
**Events:**
|
|
18098
18591
|
- `lr-retry` (`detail: IngestionRetryEventDetail` = `RetryEventDetail & { itemId: string }` =
|
|
18099
18592
|
`{ attempt: number; messageId?: string; itemId: string }`) — `attempt` is the attempt about to be
|
|
18100
|
-
made
|
|
18593
|
+
made: the displayed nonnegative finite-integer `item.attempts` value plus one (invalid, negative,
|
|
18594
|
+
or fractional inputs are normalized first). Only offered on `'failed'` rows.
|
|
18101
18595
|
- `lr-cancel` (`detail: IngestionCancelEventDetail` = `CancelEventDetail & { itemId: string }` =
|
|
18102
18596
|
`{ reason?: string; itemId: string }`) — this component never supplies `reason` itself. Only
|
|
18103
18597
|
offered on non-terminal rows (`'queued'` plus the five active stages).
|
|
@@ -18208,7 +18702,8 @@ overlay. Composes `lr-graph`, `lr-graph-legend`, `lr-entity-card`, `lr-neighbor-
|
|
|
18208
18702
|
(self-managed but presettable/observable — this component toggles its own copy on interaction, the
|
|
18209
18703
|
same self-toggle-then-emit contract `lr-graph-legend` uses, so every feature works with zero host wiring)
|
|
18210
18704
|
- `hiddenTypes: string[] = []` (attribute: false) — forwarded to both `lr-graph.hiddenTypes` and
|
|
18211
|
-
`lr-graph-legend.hiddenTypes
|
|
18705
|
+
`lr-graph-legend.hiddenTypes`; hidden nodes are also excluded from explorer search results,
|
|
18706
|
+
neighbor rows, and activation
|
|
18212
18707
|
- `selectedNodeId: string | null = null` (attribute `selected-node-id`) — drives the details popover
|
|
18213
18708
|
and `lr-graph.selectedNodeIds`; `null` shows no selection and keeps the popover closed
|
|
18214
18709
|
- `pinnedNodeIds: string[] = []` (attribute: false) — exactly two pinned nodes reveals the "Find
|
|
@@ -18492,6 +18987,8 @@ is non-empty and not `loading`), `empty` (only when `empty` and neither `loading
|
|
|
18492
18987
|
- Submitting while `loading` is already true **supersedes** the in-flight request: `lr-cancel` fires
|
|
18493
18988
|
immediately before the new `lr-search`. Clicking the submit button (rather than pressing Enter)
|
|
18494
18989
|
while `loading` only emits `lr-cancel` and does not resubmit.
|
|
18990
|
+
- Long unbroken filter keys, values, and scope labels are contained within the search allocation;
|
|
18991
|
+
the removable chip label truncates while its remove action remains available.
|
|
18495
18992
|
|
|
18496
18993
|
---
|
|
18497
18994
|
|
|
@@ -18579,7 +19076,8 @@ the component only normalizes them into SVG, colors optional clusters, and emits
|
|
|
18579
19076
|
**Properties:** `points: EmbeddingPoint[] = []` (attribute: false), where each point is `{ id, x,
|
|
18580
19077
|
y, label?, sourceId?, cluster? }`; `selectedId: string = ''`; `height: string = '360px'`;
|
|
18581
19078
|
`accessibleLabel: string | null = null` (attribute `aria-label`). Non-finite coordinates are
|
|
18582
|
-
omitted.
|
|
19079
|
+
omitted. Pointer and programmatic focus synchronize the single roving tab stop, and every point
|
|
19080
|
+
keeps at least a 24×24 CSS px pointer target at narrow allocations without enlarging its marker.
|
|
18583
19081
|
|
|
18584
19082
|
**Events:** `lr-point-select` (`{ point }`), activated by click or Enter/Space.
|
|
18585
19083
|
|
|
@@ -18596,7 +19094,9 @@ permissions, and connector settings go in the `settings` slot.
|
|
|
18596
19094
|
|
|
18597
19095
|
**Properties:** `sources: KnowledgeSource[] = []` (attribute: false); `ingestionItems:
|
|
18598
19096
|
IngestionQueueItem[] = []` (attribute: false); `activeTab: 'sources' | 'ingestion' = 'sources'`;
|
|
18599
|
-
`label: string = ''
|
|
19097
|
+
`label: string = ''` (visible heading and accessible-name fallback; a host `aria-label` wins);
|
|
19098
|
+
`hideIngestion: boolean = false`. If ingestion is active when it becomes hidden, `activeTab`
|
|
19099
|
+
normalizes to `'sources'`, emits `lr-tab-change`, and moves focus to the Sources tab when needed.
|
|
18600
19100
|
|
|
18601
19101
|
**Events:** `lr-tab-change` (`{ tab }`), `lr-source-create`, `lr-source-sync`, `lr-source-pause`,
|
|
18602
19102
|
`lr-source-delete`, `lr-ingestion-retry`, and `lr-ingestion-cancel` (the latter four preserve the
|