@aceshooting/lyra-ui 7.6.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 +14 -0
- package/custom-elements.json +6633 -558
- 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 +3 -2
- package/dist/components/layout/filter-bar/filter-bar.class.d.ts.map +1 -1
- package/dist/components/layout/filter-bar/filter-bar.class.js +8 -3
- 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-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 +791 -336
- package/package.json +10 -5
- package/vscode-css-data.json +429 -2
- package/vscode-html-data.json +125 -122
- package/web-types.json +378 -136
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
|
|
|
@@ -7201,12 +7270,18 @@ at another, since `placement` is a per-call option rather than a single global r
|
|
|
7201
7270
|
- the close button's accessible name is derived from the toast's own message text (`"Close: <first
|
|
7202
7271
|
40 chars>…"`, falling back to bare `"Close"` only when the toast has no text content) rather than
|
|
7203
7272
|
a bare `"Close"` on every instance — useful when several toasts are stacked and a screen-reader or
|
|
7204
|
-
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.
|
|
7205
7276
|
- pause/resume-on-hover/focus (the component's main accessibility differentiator), including the
|
|
7206
7277
|
independent-hover-vs-focus pause reasons above, now has regression test coverage.
|
|
7207
7278
|
- `hide()` is idempotent (a second call while already hiding is a no-op) and `[part="close-button"]`
|
|
7208
7279
|
gets `aria-disabled="true"` once hiding starts, so a stray extra click/Enter during the hide
|
|
7209
|
-
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.
|
|
7210
7285
|
- Prefer the `toast()` helper over manually creating `<lr-toast>`/`<lr-toast-item>` — it already
|
|
7211
7286
|
handles the singleton-region and remount-if-removed logic.
|
|
7212
7287
|
|
|
@@ -7369,8 +7444,9 @@ hand-building that chrome isn't worth it.
|
|
|
7369
7444
|
|
|
7370
7445
|
Also settable as a plain `aria-label` attribute (not a public JS property): overrides the panel's
|
|
7371
7446
|
computed accessible name outright, winning over every other source below (a slotted heading,
|
|
7372
|
-
`heading`, `label`) — matching `<lr-date-input>`'s `accessibleLabel` pattern.
|
|
7373
|
-
|
|
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.
|
|
7374
7450
|
|
|
7375
7451
|
**Methods:** `close(reason: DialogCloseReason = 'api'): void` — closes the dialog, emits
|
|
7376
7452
|
`lr-dialog-close` with `reason`, and returns focus to whatever had it right before the dialog
|
|
@@ -7382,8 +7458,10 @@ own `close()` (a consumer's own cleanup code, a parent re-render that drops it);
|
|
|
7382
7458
|
whatever a caller passes (e.g. a footer Cancel button calling `dlg.close('cancel')`, or `confirm()`'s
|
|
7383
7459
|
own `'confirm'`/`'cancel'`).
|
|
7384
7460
|
|
|
7385
|
-
**Events:** `lr-dialog-close` (`detail: DialogCloseReason`) — fired on every
|
|
7386
|
-
(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.
|
|
7387
7465
|
|
|
7388
7466
|
**Stacking:** participates in the shared per-document overlay stack described above. A dialog can be
|
|
7389
7467
|
stacked with another dialog or any other modal family; only the visually topmost overlay receives
|
|
@@ -7433,19 +7511,20 @@ clipped; the viewport is still a hard limit either way), plus shared tokens `--l
|
|
|
7433
7511
|
|
|
7434
7512
|
Accessible name / visible header, in priority order: (0) if the host element itself has an
|
|
7435
7513
|
`aria-label` attribute set, its value becomes `aria-label` on the panel outright, overriding every
|
|
7436
|
-
source below (including a slotted heading)
|
|
7437
|
-
|
|
7438
|
-
|
|
7439
|
-
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
|
|
7440
7517
|
`[role="heading"]`) is a *direct child* (not inside `slot="footer"`), its text content becomes
|
|
7441
7518
|
`aria-label` on the panel — takes priority over `heading` below so an existing consumer that already
|
|
7442
7519
|
slots its own heading keeps rendering it exactly as before; (2) otherwise, when `heading` is set, a
|
|
7443
7520
|
visible header row (`[part="header"]`) renders containing that text (`[part="heading"]`), which
|
|
7444
7521
|
becomes the `aria-labelledby` target; (3) otherwise, when `label` is set, an invisible (`.sr-only`,
|
|
7445
7522
|
exposed as the `label` part) element carrying that text is rendered inside the panel and
|
|
7446
|
-
`aria-labelledby` points at it instead. Only one of cases 2/3
|
|
7447
|
-
|
|
7448
|
-
|
|
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.
|
|
7449
7528
|
The slotted-heading case (1) deliberately uses `aria-label` (a copied string) rather than
|
|
7450
7529
|
`aria-labelledby` pointing at the heading's `id`, because the heading is light-DOM content while
|
|
7451
7530
|
`[part="panel"]` lives in shadow DOM and an ID-reference attribute can't resolve across that
|
|
@@ -7455,9 +7534,8 @@ root it labels.
|
|
|
7455
7534
|
**Known gotchas:**
|
|
7456
7535
|
- `role="dialog"`/`aria-modal="true"` are only present on `[part="panel"]` while `open` is `true` —
|
|
7457
7536
|
inspecting closed markup won't show them.
|
|
7458
|
-
- Heading detection
|
|
7459
|
-
heading's
|
|
7460
|
-
`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.
|
|
7461
7539
|
- Only *direct* children are scanned for a heading — one nested several layers deep, or inside a
|
|
7462
7540
|
slotted custom element's own shadow root, is left to the consumer to label explicitly via `label`.
|
|
7463
7541
|
- A reconnect that preserves the same element instance (e.g. a drag-and-drop reparent) resumes its
|
|
@@ -7504,7 +7582,8 @@ used is still a `--lr-*` token reference, never a raw literal.
|
|
|
7504
7582
|
- Every dismissal path (confirm button, cancel button, Escape, backdrop click) funnels through
|
|
7505
7583
|
`<lr-dialog>`'s own `close()`/`lr-dialog-close` event, so there is exactly one place that
|
|
7506
7584
|
resolves the promise and tears the dialog down — a consumer never needs to (and shouldn't) call
|
|
7507
|
-
`.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()`.
|
|
7508
7587
|
- The neutral confirm button pairs `--lr-color-on-brand` with `--lr-color-brand`; the danger
|
|
7509
7588
|
tone pairs `--lr-color-on-danger` with `--lr-color-danger`. Each token chains through Web
|
|
7510
7589
|
Awesome's matching `*-on-loud` semantic role and has contrast-tested standalone light/dark
|
|
@@ -7671,7 +7750,9 @@ library-wide `--lr-color-text` token. Left unset, rendering is unchanged. Otherw
|
|
|
7671
7750
|
Since CSS alone can't parameterize `:nth-child` on a runtime prop, `<lr-chip-group>` reaches
|
|
7672
7751
|
directly into the light DOM and sets each excess child's own `hidden` property once `max-visible` is
|
|
7673
7752
|
exceeded — the same approach `<lr-split>` uses to set each panel's inline `flex`/`order`, rather
|
|
7674
|
-
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.
|
|
7675
7756
|
|
|
7676
7757
|
**Known gotchas:**
|
|
7677
7758
|
- `<lr-chip>`'s accessible remove-button label ("Remove {text}") is computed only from the default
|
|
@@ -7718,8 +7799,9 @@ resolves a full `keys` string with the same optional localization callback.
|
|
|
7718
7799
|
**Slots:** default — an escape hatch for fully custom key-cap content (e.g. an icon instead of a
|
|
7719
7800
|
text glyph). When it has any real (non-whitespace) content, it replaces the `keys`-driven rendering
|
|
7720
7801
|
entirely and this component stops *computing* its own `aria-label` from `keys`, leaving the slotted
|
|
7721
|
-
content to carry its own accessible name
|
|
7722
|
-
|
|
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.
|
|
7723
7805
|
|
|
7724
7806
|
**CSS parts:** `base` (the chip root), `key` (one per rendered token).
|
|
7725
7807
|
|
|
@@ -7772,7 +7854,8 @@ track ancestor scroll/resize against — pass `rect.contextElement` (a real, sti
|
|
|
7772
7854
|
near the virtual point) when one is available to give it something to observe; otherwise, or when
|
|
7773
7855
|
the anchor point moves on its own (e.g. a graph pan/zoom tick), re-call `showAt()` with fresh
|
|
7774
7856
|
coordinates to re-anchor — the popover stays open across such a call. A popover that never calls
|
|
7775
|
-
`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.
|
|
7776
7859
|
`hide(options?: { focusTrigger?: boolean })` programmatically closes the popover; pass
|
|
7777
7860
|
`{ focusTrigger: false }` to opt out of focus restoration. By default, `hide()`, Escape, light
|
|
7778
7861
|
dismiss, and a bare `el.open = false` all return focus to the slotted trigger, or to a virtual
|
|
@@ -7794,7 +7877,8 @@ contextElement? }, options?: { returnFocusTo?: HTMLElement })` — same virtual-
|
|
|
7794
7877
|
Escape returns focus to `options.returnFocusTo` or skips focus-return, re-call with fresh
|
|
7795
7878
|
coordinates to re-anchor a moving point). Opens immediately, bypassing `delay`/`manual` (both are
|
|
7796
7879
|
hover-debounce concerns for a slotted trigger, not a deliberate programmatic call); close it the
|
|
7797
|
-
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.
|
|
7798
7882
|
**CSS parts:** `trigger`, `popup`. **Themeable custom properties:** `--lr-tooltip-max-inline-size`
|
|
7799
7883
|
(default `--lr-size-20rem`), `--lr-tooltip-background` (default `--lr-color-neutral`), and
|
|
7800
7884
|
`--lr-tooltip-color` (default `--lr-color-on-neutral`).
|
|
@@ -7807,6 +7891,16 @@ intentionally leaves the internal control's serialized `aria-describedby` value
|
|
|
7807
7891
|
author-provided descriptions are merged while open and restored when the trigger is replaced or
|
|
7808
7892
|
the tooltip disconnects.
|
|
7809
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
|
+
|
|
7810
7904
|
**`showAt()` composed with `lr-graph`** — anchoring a popover to a clicked graph node. Note:
|
|
7811
7905
|
`lr-graph.getNodePosition()` and the `lr-node-click` event's `{ x, y }` are in the graph's own
|
|
7812
7906
|
*local drawing space* (pre pan/zoom), not viewport pixels, so they can't be passed to `showAt()`
|
|
@@ -7852,7 +7946,9 @@ names `[part="base"]`'s `role="status"`; unset falls back to the localized "Load
|
|
|
7852
7946
|
**Events:** none.
|
|
7853
7947
|
|
|
7854
7948
|
**Slots:** default — optional label text. `label-placement="after"` renders it inline next to the
|
|
7855
|
-
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.
|
|
7856
7952
|
|
|
7857
7953
|
**CSS parts:** `base` (the `role="status"` wrapper), `spinner` (the animated ring; `aria-hidden`),
|
|
7858
7954
|
`label` (the default-slot wrapper).
|
|
@@ -7869,7 +7965,8 @@ A determinate or indeterminate progress bar.
|
|
|
7869
7965
|
**Properties:** `value`, `max`, `indeterminate`, `variant`, `showValue` (`show-value`), and
|
|
7870
7966
|
`accessibleLabel` (`accessible-label`).
|
|
7871
7967
|
The rendered progressbar exposes `aria-valuemin`, `aria-valuemax`, and `aria-valuenow` when
|
|
7872
|
-
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.
|
|
7873
7970
|
|
|
7874
7971
|
**Slots:** `label`. **CSS parts:** `base`, `track`, `indicator`, `label`.
|
|
7875
7972
|
**Themeable custom properties:** `--lr-progress-height` (default `var(--lr-size-0-5rem)`) — the
|
|
@@ -7885,7 +7982,8 @@ A circular progress indicator with the same value contract as `lr-progress-bar`.
|
|
|
7885
7982
|
|
|
7886
7983
|
**Properties:** `value: number = 0`, `max: number = 100`, `indeterminate: boolean = false`
|
|
7887
7984
|
(reflected), and `accessibleLabel: string = ''` (attribute `accessible-label`; unset falls back to
|
|
7888
|
-
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
|
|
7889
7987
|
back to `100`, `value` clamps to `[0, max]`) rather than producing NaN geometry.
|
|
7890
7988
|
**Slots:** default — replaces the built-in center label, which otherwise renders the rounded
|
|
7891
7989
|
percentage (and nothing at all while `indeterminate`).
|
|
@@ -7955,9 +8053,15 @@ A keyboard-accessible star rating control with slider semantics. **Properties:**
|
|
|
7955
8053
|
`lr-change` with `{ value }`. **CSS parts:** `base`, `star`, `star-fill` (the filled overlay
|
|
7956
8054
|
inside each star, clipped to the fractional `precision` value). **Themeable custom properties:**
|
|
7957
8055
|
`--lr-rating-fill` (default `--lr-color-warning` — filled-star color), `--lr-rating-empty-color`
|
|
7958
|
-
(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
|
|
7959
8058
|
`--lr-font-size-xl` — star size).
|
|
7960
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
|
+
|
|
7961
8065
|
**Additional API surface:**
|
|
7962
8066
|
|
|
7963
8067
|
- `blur()` — Forwards host blur to the internal rating control.
|
|
@@ -8042,7 +8146,7 @@ Package-level CSV utilities (used internally, also exported for standalone use
|
|
|
8042
8146
|
escapeCsvField, buildCsv, downloadBlob } from
|
|
8043
8147
|
'@aceshooting/lyra-ui/components/utility/export-button/csv.js'`):
|
|
8044
8148
|
```ts
|
|
8045
|
-
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
|
|
8046
8150
|
buildCsv(rows: Record<string, unknown>[], columns: CsvColumn[]): string // CRLF-joined, header row included
|
|
8047
8151
|
downloadBlob(content: string, filename: string, mime: string): void // triggers a browser download
|
|
8048
8152
|
```
|
|
@@ -8054,6 +8158,10 @@ downloadBlob(content: string, filename: string, mime: string): void // trig
|
|
|
8054
8158
|
for that handler, not automatic filename handling.
|
|
8055
8159
|
- CSV formula-injection guarding and the deferred (5s) `URL.revokeObjectURL` (works around Safari
|
|
8056
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__`.
|
|
8057
8165
|
- the multi-format menu (`role="menu"`) supports full arrow-key navigation — ArrowUp/ArrowDown move
|
|
8058
8166
|
between items (opening the menu and seeding the right one focused, if it was closed), Home/End
|
|
8059
8167
|
jump to the first/last item once open, Escape closes it and returns focus to the trigger button,
|
|
@@ -8103,6 +8211,8 @@ buttons, this has no code/JSON content model to adopt just to reuse the copy aff
|
|
|
8103
8211
|
- best-effort clipboard write: `navigator.clipboard` is absent in insecure contexts/older browsers,
|
|
8104
8212
|
and some engines throw synchronously rather than rejecting — either way `lr-copy` still fires
|
|
8105
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.
|
|
8106
8216
|
|
|
8107
8217
|
**Additional API surface:**
|
|
8108
8218
|
|
|
@@ -8169,7 +8279,9 @@ stack overflow on cyclic `data`.
|
|
|
8169
8279
|
- `collapsedDepth?: number` (attribute `collapsed-depth`) — nodes at or beyond this nesting depth
|
|
8170
8280
|
(root = `0`) start collapsed; omitted/`undefined` means nothing auto-collapses
|
|
8171
8281
|
- `maxHeight: string = ''` (attribute `max-height`) — a CSS length (e.g. `"20rem"`); once set, the
|
|
8172
|
-
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
|
|
8173
8285
|
- `copyable: boolean = false` (reflected) — shows copy-to-clipboard affordances: one for the whole
|
|
8174
8286
|
value, plus one per node
|
|
8175
8287
|
- `search: string = ''` — case-insensitive substring match against keys/values; matches are
|
|
@@ -8196,7 +8308,8 @@ search query, match count, or active-match cursor changes, from `runSearch()`/`s
|
|
|
8196
8308
|
|
|
8197
8309
|
**CSS parts:** `base` (root scroll container, respects `max-height`), `toolbar` (wrapper around the
|
|
8198
8310
|
top-level copy button, only rendered when `copyable`), `tree` (wrapper around the rendered node
|
|
8199
|
-
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`,
|
|
8200
8313
|
`data-active` while it is the current `searchNext()`/`searchPrevious()` cursor position),
|
|
8201
8314
|
`value` (a primitive value's text — carries `data-type` of
|
|
8202
8315
|
`string`/`number`/`boolean`/`null`/`undefined`/`circular` for per-type coloring, `data-match`
|
|
@@ -8214,6 +8327,8 @@ until `max-height` is set), `--lr-json-viewer-font` (default `var(--lr-font-mono
|
|
|
8214
8327
|
box-shadow, of a key/value that currently matches `search`. Component-scoped indirection over the
|
|
8215
8328
|
shared `--lr-color-warning-quiet` token, so a consumer can retheme just this search-match highlight
|
|
8216
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;
|
|
8217
8332
|
`--lr-json-viewer-active-outline` (default `var(--lr-focus-ring-color)`) — outline color for the
|
|
8218
8333
|
current imperative search match; `--lr-json-viewer-string-color` (default
|
|
8219
8334
|
`var(--lr-color-success)`), `--lr-json-viewer-number-color` (default `var(--lr-color-brand)`),
|
|
@@ -8252,6 +8367,8 @@ html`<lr-json-viewer .data=${apiResponse} copyable max-height="24rem" search=${q
|
|
|
8252
8367
|
a different shape.
|
|
8253
8368
|
- Per-node copy buttons call `stopPropagation()` on click so clicking one doesn't also toggle the
|
|
8254
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.
|
|
8255
8372
|
|
|
8256
8373
|
---
|
|
8257
8374
|
|
|
@@ -8370,6 +8487,9 @@ accessible phase-transition announcements.
|
|
|
8370
8487
|
`paused`), `lr-pause-change` (`detail: boolean` — fired when `paused` changes via the built-in
|
|
8371
8488
|
button).
|
|
8372
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
|
+
|
|
8373
8493
|
**Slots:** none.
|
|
8374
8494
|
|
|
8375
8495
|
**CSS parts:** `base`, `indicator` (the pulsing status dot), `countdown` (the `M:SS`, or
|
|
@@ -8396,14 +8516,16 @@ repainting every other component that reuses the same shared success token. Plus
|
|
|
8396
8516
|
|
|
8397
8517
|
Internally, a 1-second ticker re-derives the remaining time from a captured target timestamp (rather
|
|
8398
8518
|
than a naive per-tick decrement), so the countdown stays accurate even if the tab was backgrounded
|
|
8399
|
-
and timers were throttled.
|
|
8400
|
-
value
|
|
8401
|
-
|
|
8402
|
-
|
|
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.
|
|
8403
8525
|
|
|
8404
8526
|
**Known gotchas:**
|
|
8405
|
-
-
|
|
8406
|
-
|
|
8527
|
+
- `restart()` is the explicit reset/extend path when the configured delay value itself has not
|
|
8528
|
+
changed.
|
|
8407
8529
|
- `active="false"` and `paused` both stop the ticker independently, but only `paused` fires
|
|
8408
8530
|
`lr-pause-change` — that event is scoped to the built-in pause button's own toggle, not to
|
|
8409
8531
|
`active`.
|
|
@@ -8558,8 +8680,11 @@ fresh `query` is the proxy for "the caret may have moved").
|
|
|
8558
8680
|
- A caret that moves for a reason other than typing (e.g. a mouse click elsewhere in the text while
|
|
8559
8681
|
the popover happens to still be open) is not separately tracked — force a re-measure by toggling
|
|
8560
8682
|
`open` or reassigning `anchor`.
|
|
8561
|
-
- `activeIndex` resets to `0` whenever `query` or `
|
|
8562
|
-
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.
|
|
8563
8688
|
- There's no persisted "selection" the way `<lr-combobox>`'s own listbox has one — a mention is
|
|
8564
8689
|
either committed (closing the popover) or dismissed with nothing chosen. `aria-selected="true"`
|
|
8565
8690
|
here marks whichever row is currently *active* (what Enter/Tab would commit right now, per the
|
|
@@ -8643,6 +8768,7 @@ consumer can compute or unit-test the same alignment without instantiating the e
|
|
|
8643
8768
|
explicit performance-risk opt-out.
|
|
8644
8769
|
- the computed `diffOps` state is cached and recomputed only when `oldText`, `newText`, or
|
|
8645
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.
|
|
8646
8772
|
|
|
8647
8773
|
**Additional API surface:**
|
|
8648
8774
|
|
|
@@ -8672,7 +8798,9 @@ Dependency-free SVG path icon: no icon font, no sprite sheet, no network fetch.
|
|
|
8672
8798
|
**Slots:** (default) — custom SVG geometry, rendered only when neither `path` nor a known `name`
|
|
8673
8799
|
resolves. Slotted nodes are cloned into the component-owned `<svg>` (Chromium does not paint SVG
|
|
8674
8800
|
geometry distributed through a slot that sits inside an SVG), so pass plain `<path>`/`<circle>`/
|
|
8675
|
-
`<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.
|
|
8676
8804
|
|
|
8677
8805
|
**CSS parts:** `svg`
|
|
8678
8806
|
|
|
@@ -8682,7 +8810,8 @@ the surrounding text with no configuration.
|
|
|
8682
8810
|
|
|
8683
8811
|
## `lr-divider`
|
|
8684
8812
|
|
|
8685
|
-
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.
|
|
8686
8815
|
|
|
8687
8816
|
**Properties:** `orientation: 'horizontal' | 'vertical' = 'horizontal'` (reflected).
|
|
8688
8817
|
|
|
@@ -8710,6 +8839,9 @@ empty, which means "the runtime's default locale". Every `Intl` instance is pull
|
|
|
8710
8839
|
memoized `internal/intl-cache.ts` (one instance per locale + options pair, LRU-capped), so these are
|
|
8711
8840
|
cheap to use per row in a large table or feed.
|
|
8712
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
|
+
|
|
8713
8845
|
**Properties:**
|
|
8714
8846
|
- `value: number = 0`
|
|
8715
8847
|
- `currency: string = ''` — an ISO 4217 code (`'EUR'`, `'JPY'`). Non-empty switches the formatter to
|
|
@@ -8764,7 +8896,8 @@ name is localized too. Text-only host — no CSS parts, events, or own tokens; l
|
|
|
8764
8896
|
|
|
8765
8897
|
The unit ladder is fixed at `byte`, `kilobyte`, `megabyte`, `gigabyte`, `terabyte`, `petabyte` and
|
|
8766
8898
|
saturates at the top; the index is `floor(log|value| / log(unitStep))`, and `0` always formats as
|
|
8767
|
-
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
|
|
8768
8901
|
`log(1) === 0`) falling back to `1024`; `decimals` is clamped to `[0, 10]` — an out-of-range value
|
|
8769
8902
|
would otherwise throw a `RangeError` from `maximumFractionDigits`. Note that `unitStep: 1024` still
|
|
8770
8903
|
prints the SI-named `kB`/`MB` units, not `KiB`/`MiB` — `Intl` has no binary unit names.
|
|
@@ -8823,7 +8956,8 @@ field currently has focus.
|
|
|
8823
8956
|
|
|
8824
8957
|
**Events:** `input` (every keystroke), `change` (a field blur where the composite value newly
|
|
8825
8958
|
transitioned), plus re-dispatched bubbling/composed `focus` and `blur` (`blur` fires once when focus
|
|
8826
|
-
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
|
|
8827
8961
|
`{ value, day, month, year, field }` — `value` is the canonical ISO date or `''`, `day`/`month`/`year`
|
|
8828
8962
|
are the live raw typed text, and `field` is `'day' | 'month' | 'year'`, whichever was last edited.
|
|
8829
8963
|
|
|
@@ -8942,6 +9076,8 @@ directional `fade-*` effects).
|
|
|
8942
9076
|
- The host is `display: block`. For an inline text-fragment swap inside a sentence, override
|
|
8943
9077
|
`lr-random-content { display: inline; }` from outside; `display: contents` is deliberately not
|
|
8944
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.
|
|
8945
9081
|
|
|
8946
9082
|
## `lr-tour`
|
|
8947
9083
|
|
|
@@ -8956,8 +9092,8 @@ controls and a step-progress indicator. Controlled component — `steps` is neve
|
|
|
8956
9092
|
`start()`/`end()`
|
|
8957
9093
|
- `steps: TourStep[] = []` (attribute: false) — empty renders nothing
|
|
8958
9094
|
- `activeIndex: number = 0` (attribute `active-index`, reflected) — clamped to
|
|
8959
|
-
`[0, steps.length - 1]
|
|
8960
|
-
`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`
|
|
8961
9097
|
- `placement: Placement = 'bottom'` (reflected) — tour-level Floating UI default, overridable per
|
|
8962
9098
|
step; resolved through `rtlAwarePlacement()`
|
|
8963
9099
|
- `distance: number = 12` — px offset between target and popover. Tour-level only (no per-step
|
|
@@ -8974,9 +9110,11 @@ controls and a step-progress indicator. Controlled component — `steps` is neve
|
|
|
8974
9110
|
**Exported types:** `TourStep { id: string; target: TourTarget; heading: string; content?: string;
|
|
8975
9111
|
placement?: Placement; spotlightPadding?: number; interactiveTarget?: boolean; hidePrevious?: boolean }`;
|
|
8976
9112
|
`TourTarget = string | HTMLElement | (() => HTMLElement | null)` — a string resolves via
|
|
8977
|
-
`ownerDocument.querySelector` (top-level light DOM only)
|
|
8978
|
-
|
|
8979
|
-
|
|
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).
|
|
8980
9118
|
`TourEndReason = 'completed' | 'skip' | 'escape' | 'api' | 'unmount' | (string & {})`.
|
|
8981
9119
|
|
|
8982
9120
|
**Methods:** `start(index = 0)` (clamps, opens, emits `lr-tour-start`), `next()` (on the last step
|
|
@@ -8998,8 +9136,9 @@ step: a consumer needing different rich content per step swaps the slotted child
|
|
|
8998
9136
|
|
|
8999
9137
|
**CSS parts:** `backdrop` (the full-viewport `<svg>` scrim with the cutout, `aria-hidden`),
|
|
9000
9138
|
`spotlight` (the decorative ring around the padded target rect, `pointer-events: none`),
|
|
9001
|
-
`popover` (the step panel, `role="dialog" aria-modal="true"
|
|
9002
|
-
|
|
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`),
|
|
9003
9142
|
`progress` (wrapper), `progress-text` (the "Step X of Y" text — an `aria-describedby` target),
|
|
9004
9143
|
`progress-dot` (one decorative dot per step, `data-current` on the active one, `aria-hidden`),
|
|
9005
9144
|
`footer` (the control row), `previous-button`, `skip-button`, `next-button` (the Next control's
|
|
@@ -9024,23 +9163,23 @@ rather than per component.
|
|
|
9024
9163
|
**Known gotchas:**
|
|
9025
9164
|
- By default the spotlighted target is **non-interactive**: it stays visible and announceable (not
|
|
9026
9165
|
`inert`, not `aria-hidden`) but every pointer event over the viewport is captured by the backdrop.
|
|
9027
|
-
|
|
9028
|
-
|
|
9029
|
-
|
|
9030
|
-
|
|
9031
|
-
(including the target, which lives outside this element) `inert`. `role="dialog"` +
|
|
9032
|
-
`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.
|
|
9033
9170
|
- Each step transition mounts a genuinely new popover node (keyed on `step.id`) so focus reliably
|
|
9034
9171
|
re-enters the panel — don't cache a reference to `[part="popover"]` across steps.
|
|
9035
9172
|
- No `Home`/`End` shortcut and no click-to-jump progress dots (unlike `lr-stepper`): later steps may
|
|
9036
9173
|
depend on an earlier step's side effect having run. `goToStep()` is available for a caller that
|
|
9037
9174
|
knows better. ArrowRight/ArrowLeft do move between steps (swapped under RTL), except while focus
|
|
9038
9175
|
is in an `input`/`textarea`/`contenteditable` inside slotted content.
|
|
9039
|
-
- A direct `HTMLElement` target
|
|
9040
|
-
|
|
9041
|
-
|
|
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.
|
|
9042
9179
|
- The active step's target is `scrollIntoView({ block: 'center' })`'d on activation, smoothly unless
|
|
9043
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`.
|
|
9044
9183
|
|
|
9045
9184
|
# Media, files & maps (`components/media/`)
|
|
9046
9185
|
|
|
@@ -9299,7 +9438,9 @@ and additive plain-GeoJSON `dataLayers`, plus a raw `map` escape hatch for anyth
|
|
|
9299
9438
|
content, sanitize anything derived from user input first; prefer `label` (`Popup.setText()`,
|
|
9300
9439
|
escaped) when the content is plain text. A marker whose `color` changes for a persisting `id`
|
|
9301
9440
|
can't be recolored in place (no `Marker.setColor()`) and is torn down/reconstructed instead — see
|
|
9302
|
-
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.
|
|
9303
9444
|
- `dataLayers: GeoJsonDataLayer[] = []` (attribute: false) — `GeoJsonDataLayer { sourceId: string;
|
|
9304
9445
|
geojson: GeoJSON.Feature | GeoJSON.FeatureCollection; tone?: 'accent' | 'success' | 'warning' |
|
|
9305
9446
|
'danger' | 'neutral' }`. Each entry adds one GeoJSON source plus three layers
|
|
@@ -9311,10 +9452,9 @@ and additive plain-GeoJSON `dataLayers`, plus a raw `map` escape hatch for anyth
|
|
|
9311
9452
|
is: an entry whose `sourceId` persists across a `dataLayers` reassignment gets its GeoJSON updated
|
|
9312
9453
|
in place (`setData()`), one that's dropped has its source/layers removed, and a genuinely new
|
|
9313
9454
|
`sourceId` gets a new source/layers — nothing leaks on removal, style change, or disconnect.
|
|
9314
|
-
- `label: string = ''` — accessible
|
|
9315
|
-
`aria-label
|
|
9316
|
-
`
|
|
9317
|
-
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.
|
|
9318
9458
|
|
|
9319
9459
|
**Getters:** `map` → the raw `maplibregl.Map` instance.
|
|
9320
9460
|
|
|
@@ -9373,6 +9513,10 @@ https://maplibre.org/maplibre-gl-js/docs/#esm.
|
|
|
9373
9513
|
layer/source maplibre-gl knows about.
|
|
9374
9514
|
- Point markers now have a declarative API (`markers`, above) with popup support — the `.map` escape
|
|
9375
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.
|
|
9376
9520
|
- a marker whose `color` changes for a persisting `id` is torn down and reconstructed (maplibre-gl's
|
|
9377
9521
|
`Marker` has no `setColor()`) rather than mutated in place — this also closes any popup the user
|
|
9378
9522
|
currently has open on that marker (a fresh, closed `Popup` is built for the new instance); an
|
|
@@ -9447,10 +9591,14 @@ file can be selected at a time.'`), and — for `'directory'` — the pre-existi
|
|
|
9447
9591
|
itself. The region is cleared (and unrendered) as soon as a subsequent selection rejects nothing.
|
|
9448
9592
|
|
|
9449
9593
|
**Slots:** default slot — custom dropzone content, overrides the `label` attribute text when
|
|
9450
|
-
provided. The accessible name
|
|
9451
|
-
announces correctly.
|
|
9452
|
-
|
|
9453
|
-
|
|
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"`
|
|
9454
9602
|
element carrying the drag accept/reject announcement and the aggregate accepted/rejected count),
|
|
9455
9603
|
`rejection` (a **visible** `role="alert"` region, rendered only while a rejection exists, listing
|
|
9456
9604
|
each currently-rejected file next to a per-reason message — in addition to, never in place of, the
|
|
@@ -9725,7 +9873,9 @@ type wins; filename extension fallback is used only for an empty or `application
|
|
|
9725
9873
|
MIME type. Unknown values return a generic file result.
|
|
9726
9874
|
|
|
9727
9875
|
**Properties:** `mimeType` (attribute `mime-type`), `name`, `size` (bytes; `0` renders no size),
|
|
9728
|
-
`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.
|
|
9729
9879
|
|
|
9730
9880
|
**CSS parts:** `base`, `icon`, `label`, and `size`.
|
|
9731
9881
|
|
|
@@ -9762,7 +9912,9 @@ final.
|
|
|
9762
9912
|
- `maxHeight: string = ''` (attribute `max-height`) — a CSS length (e.g. `"16rem"`); once set,
|
|
9763
9913
|
overrides the `--lr-media-card-max-height` custom property for this instance only (applied
|
|
9764
9914
|
inline on `[part="base"]`, so it reliably wins over a `:host{}`-declared default from outside the
|
|
9765
|
-
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.
|
|
9766
9918
|
- `appearance: 'card' | 'plain' = 'card'` (reflected) — visual chrome, mirroring
|
|
9767
9919
|
`<lr-source-card>`'s `appearance` vocabulary. `'card'` (the default) keeps the bordered, filled
|
|
9768
9920
|
box. `'plain'` removes `[part="base"]`'s border, background, padding, and corner radius, so a
|
|
@@ -9864,10 +10016,10 @@ capability as a row.
|
|
|
9864
10016
|
attribute.
|
|
9865
10017
|
- `disabled: boolean = false` (reflected)
|
|
9866
10018
|
- `triggerLabel?: string` (attribute `trigger-label`) — overrides the single-capability trigger
|
|
9867
|
-
button's
|
|
9868
|
-
`'Attach files'`); only affects the single-capability button (`[part='trigger']`)
|
|
9869
|
-
multi-capability
|
|
9870
|
-
|
|
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.
|
|
9871
10023
|
- `triggerTitle?: string` (attribute `trigger-title`) — forwards a sighted-user hover tooltip to
|
|
9872
10024
|
both the single-capability and multi-capability trigger buttons
|
|
9873
10025
|
|
|
@@ -9880,8 +10032,8 @@ default) — fired when the `camera` / `audio` capability is activated; this com
|
|
|
9880
10032
|
capture UI of its own, the host owns everything from here (there's no single right answer for
|
|
9881
10033
|
`getUserMedia` vs. `<input capture>` vs. a native wrapper's own camera API; for `audio` the
|
|
9882
10034
|
typical host response is opening `<lr-push-to-talk>` in an overlay, then handing the resulting
|
|
9883
|
-
blob to `<lr-attachment-chip>`).
|
|
9884
|
-
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.
|
|
9885
10037
|
|
|
9886
10038
|
**Slots:** none — capabilities are configured entirely via the `capabilities` prop.
|
|
9887
10039
|
|
|
@@ -9918,6 +10070,8 @@ hidden via CSS by default, exposed as a part only so a consumer can override tha
|
|
|
9918
10070
|
- The `camera`/`audio` capabilities never touch the hidden `<input type="file">` at all — both are
|
|
9919
10071
|
scope-limited by design to firing `lr-camera-request`/`lr-audio-request` and nothing else. The
|
|
9920
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.
|
|
9921
10075
|
|
|
9922
10076
|
**Additional API surface:**
|
|
9923
10077
|
|
|
@@ -9951,10 +10105,10 @@ it in a `<button>`/`<lr-menu>` trigger for a user-menu affordance.
|
|
|
9951
10105
|
|
|
9952
10106
|
**Events:** none.
|
|
9953
10107
|
|
|
9954
|
-
**Slots:** default slot — icon/glyph content (e.g. an inline SVG
|
|
9955
|
-
initials, e.g. to mark a chat avatar as "AI" vs. "user" with a role
|
|
9956
|
-
`src` and `initials`. The glyph is treated as decorative
|
|
9957
|
-
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.
|
|
9958
10112
|
|
|
9959
10113
|
**CSS parts:** `base` (the outer circle/square container), `icon` (wrapper around the slotted
|
|
9960
10114
|
icon/glyph, only shown while the slot has assigned content), `image` (the `<img>`, only rendered
|
|
@@ -9983,7 +10137,8 @@ override it on the element for a size the built-in scale doesn't cover. Plus sha
|
|
|
9983
10137
|
|
|
9984
10138
|
**Known gotchas:**
|
|
9985
10139
|
- an image load failure falls back to `initials` automatically. Changing `src` clears the failure
|
|
9986
|
-
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.
|
|
9987
10142
|
- when `alt` or host `aria-label` supplies a name, the base preserves that name through the
|
|
9988
10143
|
initials fallback while hiding duplicate initials text from assistive technology.
|
|
9989
10144
|
|
|
@@ -10043,6 +10198,8 @@ backgrounded circle around the button; only rendered once loaded and error-free)
|
|
|
10043
10198
|
- both `image` and `canvas` stay mounted at all times (never `display: none`/removed) so the
|
|
10044
10199
|
browser's native decode loop keeps running while visually covered; only opacity and `aria-hidden`
|
|
10045
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.
|
|
10046
10203
|
|
|
10047
10204
|
**Additional API surface:**
|
|
10048
10205
|
|
|
@@ -10079,7 +10236,7 @@ Declaratively animates one slotted element through the native Web Animations API
|
|
|
10079
10236
|
`threshold: number | number[] = 0` (both attribute: false) plus `rootMargin: string = '0px'`
|
|
10080
10237
|
(attribute `root-margin`) configure that observer.
|
|
10081
10238
|
- `currentTime: number` — the underlying `Animation.currentTime` (`0` when no animation exists);
|
|
10082
|
-
writable, forwarded to the animation when one exists.
|
|
10239
|
+
writable, forwarded to the animation when one exists. Non-finite assignments are ignored.
|
|
10083
10240
|
|
|
10084
10241
|
**Methods:** `start()` (sugar for `play = true` — named `start` because `play` is already a
|
|
10085
10242
|
property), `pause()` (`play = false`), `finish()`, `cancel()`.
|
|
@@ -10152,6 +10309,9 @@ badge label. `size` swaps it per tier (`var(--lr-font-size-xs)` at `sm`, `var(--
|
|
|
10152
10309
|
caps read at the same optical weight; override it alongside `--lr-avatar-font-size` on the avatars
|
|
10153
10310
|
themselves when tuning a custom tier.
|
|
10154
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
|
+
|
|
10155
10315
|
**Optional peer deps:** none.
|
|
10156
10316
|
|
|
10157
10317
|
```html
|
|
@@ -10189,16 +10349,17 @@ trap, Escape/backdrop dismissal, scroll lock, and focus return.
|
|
|
10189
10349
|
event) when `images` shrinks.
|
|
10190
10350
|
- `loop: boolean = false` (reflected) — wraps prev/next past the ends.
|
|
10191
10351
|
- `noLightDismiss: boolean = false` (attribute `no-light-dismiss`) — opts out of backdrop dismissal.
|
|
10192
|
-
- `showCounter: boolean = true` (attribute `show-counter`) — shows `[part="counter"]
|
|
10193
|
-
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.
|
|
10194
10354
|
- `minZoom: number = 0.5`, `maxZoom: number = 4`, `zoomStep: number = 0.25` (attributes `min-zoom`/
|
|
10195
10355
|
`max-zoom`/`zoom-step`) — pure pass-throughs to the embedded `<lr-zoomable-frame>`, which does the
|
|
10196
10356
|
normalizing.
|
|
10197
10357
|
- `accessibleLabel: string | null = null` (attribute `aria-label`) — the panel's accessible name,
|
|
10198
10358
|
overriding the localized `lightboxLabel`.
|
|
10199
10359
|
|
|
10200
|
-
**Methods:** `next()`, `previous()`, `goTo(index)`, `close(reason?)` — `
|
|
10201
|
-
|
|
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.
|
|
10202
10363
|
|
|
10203
10364
|
**Events:** `lr-lightbox-close` (`detail: LyraLightboxCloseReason = 'escape' | 'backdrop' |
|
|
10204
10365
|
'close-button' | 'api' | 'unmount' | (string & {})`; **cancelable** — `preventDefault()` blocks
|
|
@@ -10243,12 +10404,14 @@ photo content.
|
|
|
10243
10404
|
|
|
10244
10405
|
## `lr-qr-code`
|
|
10245
10406
|
|
|
10246
|
-
Renders `value` as a QR code using the optional `qrcode` peer dependency. **Properties:** `value`,
|
|
10247
|
-
`size`, `radius`, and `errorCorrection` (`error-correction`, `L`/`M`/`Q`/`H`). The canvas
|
|
10248
|
-
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.
|
|
10249
10411
|
**CSS parts:** `base`, `canvas`, `empty`, `loading`, and `error`. **CSS custom properties:**
|
|
10250
|
-
`--lr-qr-code-fill` and `--lr-qr-code-background`.
|
|
10251
|
-
|
|
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.
|
|
10252
10415
|
|
|
10253
10416
|
## `lr-image-viewer`
|
|
10254
10417
|
|
|
@@ -10279,6 +10442,11 @@ zoom }`), `lr-rotation-change` (`detail: { rotation }`), `lr-fit-change` (`detai
|
|
|
10279
10442
|
embedded `lr-zoomable-frame`), `image-wrapper`, `image`, `highlight-layer`, `highlight` (carries
|
|
10280
10443
|
`data-tone`/`data-active`), `highlight-label`, `annotation-box`, and `error`.
|
|
10281
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
|
+
|
|
10282
10450
|
**Themeable custom properties:** `--lr-image-viewer-annotate-active-bg` (default
|
|
10283
10451
|
`var(--lr-color-brand-quiet)`) and `--lr-image-viewer-annotate-active-border` (default
|
|
10284
10452
|
`var(--lr-color-brand)`) — the background and border of `[part='annotate-toggle']` while annotation
|
|
@@ -10318,9 +10486,17 @@ number[] = []` (attribute: false), and `tracks: LyraAvTrack[] = []` (attribute:
|
|
|
10318
10486
|
`LyraAvCue = { id, start, end?, text, speaker? }`; `LyraAvTrack = { src, kind: 'subtitles' |
|
|
10319
10487
|
'captions' | 'descriptions', srclang, label, default? }`.
|
|
10320
10488
|
|
|
10321
|
-
|
|
10322
|
-
|
|
10323
|
-
|
|
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.
|
|
10324
10500
|
|
|
10325
10501
|
**Events:** `lr-play`, `lr-pause`, `lr-load` (`detail: { duration, kind }`), `lr-time-change`
|
|
10326
10502
|
(`detail: { currentTime }`, throttled to at most 4/s while playing plus one extra per `seek()`),
|
|
@@ -10389,9 +10565,12 @@ Chart.js wrapper every other `lr-*-chart` tag subclasses; supports both a simpli
|
|
|
10389
10565
|
unknown runtime attribute/property values fall back to `line` before reaching Chart.js
|
|
10390
10566
|
- `labels: string[] = []` (attribute: false)
|
|
10391
10567
|
- `datasets: Series[] = []` (attribute: false) — `Series { label: string; data?: (number|null)[];
|
|
10392
|
-
points?:
|
|
10568
|
+
points?: ChartPoint[]; color?: string|string[]; fill?: boolean; width?: number; dash?: boolean;
|
|
10393
10569
|
noTooltip?: boolean; axis?: 'y'|'y2'; pointColors?: string[]; pointRadius?: number|number[];
|
|
10394
|
-
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.
|
|
10395
10574
|
- `pointRadius` takes a single number (applied to every point) **or** an array matching `data`'s
|
|
10396
10575
|
length that sizes each point independently — passed straight through to Chart.js, which
|
|
10397
10576
|
supports both natively. Useful for emphasizing a single outlier or the latest reading without
|
|
@@ -10402,7 +10581,11 @@ Chart.js wrapper every other `lr-*-chart` tag subclasses; supports both a simpli
|
|
|
10402
10581
|
`segment.borderColor` scriptable option, so it is only meaningful for line-type series.
|
|
10403
10582
|
Typical use is threshold/anomaly banding along one line. A series that omits it (or passes an
|
|
10404
10583
|
empty array) emits no `segment` key at all, leaving line rendering exactly as before.
|
|
10405
|
-
- `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.
|
|
10406
10589
|
- `legendPosition: LyraChartLegendPosition = 'top'` (attribute `legend-position`) — places the
|
|
10407
10590
|
legend at `top`, `right`, `bottom`, or `left`; `auto` chooses right above 480px and bottom below
|
|
10408
10591
|
that allocation width
|
|
@@ -10440,6 +10623,11 @@ Chart.js wrapper every other `lr-*-chart` tag subclasses; supports both a simpli
|
|
|
10440
10623
|
- `config?: Partial<ChartConfiguration>` (attribute: false) — deep-merged over the generated
|
|
10441
10624
|
config; any nested key wins without clobbering sibling generated keys. This is the raw Chart.js
|
|
10442
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.
|
|
10443
10631
|
- `accessibleLabel: string = ''` (attribute `accessible-label`) — canvas name override; a host
|
|
10444
10632
|
`aria-label` has highest precedence
|
|
10445
10633
|
- `accessibleDescription: string = ''` (attribute `accessible-description`) — overrides the
|
|
@@ -10450,15 +10638,23 @@ Chart.js wrapper every other `lr-*-chart` tag subclasses; supports both a simpli
|
|
|
10450
10638
|
canvas-local coordinates (`top`, `left`, `right`, `bottom`, `width`, `height`), when a chart is
|
|
10451
10639
|
drawn
|
|
10452
10640
|
- `appendData(label, values, maxPoints?)` — appends one aligned numeric category and optionally
|
|
10453
|
-
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.
|
|
10454
10646
|
|
|
10455
10647
|
**Methods:** `resetZoom()` resets any active zoom/pan to the original view. `refreshTheme()` forces
|
|
10456
10648
|
a redraw so the `--lr-chart-*` tokens below are re-read from the current computed style. A
|
|
10457
10649
|
built-in `ThemeWatcher` now calls this automatically when `prefers-color-scheme` flips or an
|
|
10458
10650
|
ancestor's `class`/`style`/`data-theme`/`data-color-scheme` attribute mutates — the most common
|
|
10459
10651
|
theme-toggle mechanisms — so a consumer rarely needs to call it by hand; it remains public as the
|
|
10460
|
-
escape hatch for theme changes those signals can't observe.
|
|
10461
|
-
|
|
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.
|
|
10462
10658
|
|
|
10463
10659
|
The instance method `seriesPalette(): string[]` resolves the categorical series ramp
|
|
10464
10660
|
(`--lr-color-chart-1..8`) through `getComputedStyle` and returns the concrete, theme-aware colors —
|
|
@@ -10484,20 +10680,26 @@ const series = [
|
|
|
10484
10680
|
```
|
|
10485
10681
|
|
|
10486
10682
|
**Events:** `lr-zoom` (`detail: { zoomed: boolean }`, fired on zoom-complete and on
|
|
10487
|
-
`resetZoom()`), `lr-point-click` (fired when
|
|
10488
|
-
|
|
10489
|
-
|
|
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`.
|
|
10490
10688
|
|
|
10491
10689
|
**Slots:** `data-table` — an optional consumer-provided accessible table alternative; `center` —
|
|
10492
10690
|
optional overlay content positioned at the chart area's center, useful for doughnut and pie totals.
|
|
10493
10691
|
|
|
10494
|
-
**CSS parts:** `base`, `
|
|
10495
|
-
|
|
10496
|
-
|
|
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)
|
|
10497
10697
|
|
|
10498
10698
|
**Themeable custom properties:** `--lr-chart-height` (set programmatically on the host from the
|
|
10499
|
-
`height` property
|
|
10500
|
-
|
|
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)`),
|
|
10501
10703
|
`--lr-chart-tick-color` (default `var(--lr-color-text-quiet)`), `--lr-chart-legend-color`
|
|
10502
10704
|
(default `var(--lr-color-text)`), `--lr-chart-tooltip-bg` (default `var(--lr-color-surface)`),
|
|
10503
10705
|
`--lr-chart-tooltip-text` (default `var(--lr-color-text)`) — each resolved fresh via
|
|
@@ -10533,9 +10735,14 @@ subset actually used.
|
|
|
10533
10735
|
property values fall back to `line`. Each typed `lr-*-chart` subclass (e.g.
|
|
10534
10736
|
`llms/components/lr-bar-chart.md`) locks its *own* `type` via a real prototype accessor — a
|
|
10535
10737
|
genuine runtime lock, not just a compile-time default.
|
|
10536
|
-
- a built-in `ThemeWatcher`
|
|
10537
|
-
an ancestor's `class`/`style`/`data-theme`/`data-color-scheme`
|
|
10538
|
-
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.
|
|
10539
10746
|
- generated `scales` are keyed off the *effective* type (`config.type` ?? `type`, see
|
|
10540
10747
|
`effectiveType()`) and are type-appropriate: no scale at all for `type="pie"`/`"doughnut"` (true of
|
|
10541
10748
|
`<lr-chart type="pie">` directly, not just the `lr-pie-chart`/`lr-doughnut-chart` subclasses),
|
|
@@ -10561,11 +10768,14 @@ subset actually used.
|
|
|
10561
10768
|
single redraw fires once it re-enters the viewport). Independently, `updated()` only reaches
|
|
10562
10769
|
Chart.js when at least one of `type`, `labels`, `datasets`, `legend`, `legendPosition`, the
|
|
10563
10770
|
internal resolved auto legend position, `valueFormatter`, `area`, `height`, `xLabel`, `yLabel`,
|
|
10564
|
-
`y2Label`, `beginAtZero`, `horizontal`, `stacked`, `
|
|
10565
|
-
internal loading state actually changed in that update (so an
|
|
10566
|
-
a bare `requestUpdate()`, draws nothing).
|
|
10567
|
-
|
|
10568
|
-
|
|
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.
|
|
10569
10779
|
- Chart.js receives `effectiveLocale`; generated summary values use the same locale. Cartesian y/y2
|
|
10570
10780
|
axes swap logical sides under RTL, and host `aria-label` is forwarded to the canvas and data-table
|
|
10571
10781
|
caption.
|
|
@@ -10585,9 +10795,11 @@ passthrough). Not a subclass of `LyraChart`.
|
|
|
10585
10795
|
- `type: LyraLiteChartType = 'bar'` — `'bar' | 'line'`
|
|
10586
10796
|
- `labels: string[] = []` (attribute: false)
|
|
10587
10797
|
- `datasets: LiteSeries[] = []` (attribute: false) — `LiteSeries { label: string; data:
|
|
10588
|
-
(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
|
|
10589
10800
|
- `legend: boolean = false`
|
|
10590
|
-
- `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
|
|
10591
10803
|
- `xLabel: string = ''` (attribute `x-label`)
|
|
10592
10804
|
- `yLabel: string = ''` (attribute `y-label`)
|
|
10593
10805
|
- `beginAtZero: boolean = true` (attribute `begin-at-zero`)
|
|
@@ -10614,16 +10826,19 @@ passthrough). Not a subclass of `LyraChart`.
|
|
|
10614
10826
|
- `maxLabels?: number` (attribute `max-labels`, type Number) — decimates which category axis labels
|
|
10615
10827
|
actually render *text* when `labels.length > maxLabels` (bars themselves are never decimated, only
|
|
10616
10828
|
their axis `<text>` labels): always shows the first and last label, and roughly evenly distributes
|
|
10617
|
-
the rest between them. Works in either `layout` mode. Unset (the default) renders every label
|
|
10618
|
-
|
|
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.
|
|
10619
10832
|
- `barX?: (index: number) => number` (attribute: false, bar type only) — overrides the internal
|
|
10620
10833
|
per-category x-origin formula (`plotX + i * slot`) used by both bars and their axis labels, so a
|
|
10621
10834
|
consumer can pixel-align this chart's bars with a sibling `<lr-heatmap>` calendar's week columns
|
|
10622
10835
|
(see that component's own `columnX`) by supplying the same coordinate function to both. Unset (the
|
|
10623
10836
|
default) is the original formula, unchanged.
|
|
10624
10837
|
- `pointText?: (label: string, value: number, datasetIndex: number) => string` (attribute: false) —
|
|
10625
|
-
overrides the per-bar/per-point `<title
|
|
10626
|
-
|
|
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.
|
|
10627
10842
|
- `legendText?: (label: string, datasetIndex: number) => string` (attribute: false) — appends
|
|
10628
10843
|
formatter-supplied text (e.g. a value or percentage share) after each series' label in the
|
|
10629
10844
|
built-in legend row, mirroring `pointText`/`tickFormat`'s opt-in-hook convention. Falls back to
|
|
@@ -10644,14 +10859,14 @@ passthrough). Not a subclass of `LyraChart`.
|
|
|
10644
10859
|
ignores it entirely.
|
|
10645
10860
|
- `hideAxis: boolean = false` (attribute `hide-axis`) — suppresses gridlines/y-axis tick labels
|
|
10646
10861
|
altogether; x-axis category labels (rendered separately) are unaffected.
|
|
10647
|
-
- `selectedIndex: number[] = []` (attribute: false) —
|
|
10648
|
-
|
|
10649
|
-
|
|
10650
|
-
|
|
10651
|
-
|
|
10652
|
-
|
|
10653
|
-
|
|
10654
|
-
|
|
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.
|
|
10655
10870
|
- `minBarHeight?: number` (attribute `min-bar-height`) — optional minimum visible bar height for
|
|
10656
10871
|
small non-zero values
|
|
10657
10872
|
- `accessibleLabel?: string` (attribute `accessible-label`) — SVG accessible-name override; a host
|
|
@@ -10659,9 +10874,11 @@ passthrough). Not a subclass of `LyraChart`.
|
|
|
10659
10874
|
- `appendData(label, values, maxPoints?)` — appends one aligned category and optionally trims the
|
|
10660
10875
|
oldest categories
|
|
10661
10876
|
|
|
10662
|
-
**Events:** `lr-point-click` — fired
|
|
10663
|
-
focused
|
|
10664
|
-
| 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.
|
|
10665
10882
|
|
|
10666
10883
|
**Methods:** `exportData('csv' | 'svg')` returns a spreadsheet-safe CSV snapshot or the current SVG
|
|
10667
10884
|
markup. The method does not download a file; pair it with `lr-export-button` for download UX.
|
|
@@ -10676,13 +10893,13 @@ fresh, small SVG render is cheaper and more correct than a lossy cache.
|
|
|
10676
10893
|
|
|
10677
10894
|
**Slots:** none.
|
|
10678
10895
|
|
|
10679
|
-
**CSS parts:** `base`, `grid-line`, `axis-label`, `axis-title`, `bar` (each
|
|
10680
|
-
`data-selected` when its category index is in `selectedIndex
|
|
10681
|
-
`legend-item`, `legend-swatch`, `legend-text` (extra per-item text after
|
|
10682
|
-
rendered only when `legendText` is set), `live-region` (the current mark
|
|
10683
|
-
users), `data-list` (a visually hidden list of all plotted data points —
|
|
10684
|
-
`data-table` (a visually hidden category×series data table, rendered instead
|
|
10685
|
-
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).
|
|
10686
10903
|
|
|
10687
10904
|
**Screen-reader data alternative:** a single dataset renders the flat `data-list` (one `<li>` per
|
|
10688
10905
|
plotted point, matching the roving-tabindex mark order). More than one dataset instead renders a
|
|
@@ -10699,10 +10916,9 @@ blank instead of reporting a misleading zero.
|
|
|
10699
10916
|
`--lr-chart-grid-color`, `--lr-chart-tick-color`, `--lr-chart-legend-color` — same token
|
|
10700
10917
|
*names* as `lr-chart`, so a host already theming `lr-chart` themes this for free;
|
|
10701
10918
|
`--lr-lite-chart-selected-outline-color` (default `var(--lr-color-brand)`) — the stroke drawn on
|
|
10702
|
-
`[part='bar'][
|
|
10703
|
-
`
|
|
10704
|
-
`
|
|
10705
|
-
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
|
|
10706
10922
|
`refreshTheme()` method needed (there's nothing to go stale).
|
|
10707
10923
|
|
|
10708
10924
|
**Optional peer deps:** none. This is the point of the component.
|
|
@@ -10724,10 +10940,18 @@ plain SVG/DOM and reads these via native CSS `var()` — no JS-side resolution s
|
|
|
10724
10940
|
always vertical.
|
|
10725
10941
|
- No dual y-axis (`Series.axis: 'y2'`) — every series shares one y-axis/domain.
|
|
10726
10942
|
- Series colors default to a fixed built-in 8-color categorical palette (round-robin by dataset
|
|
10727
|
-
index) when `color` is unset — not configurable beyond passing `color`
|
|
10728
|
-
|
|
10729
|
-
|
|
10730
|
-
|
|
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.
|
|
10731
10955
|
- Tick values use a standard "nice numbers" (1/2/5 × 10ⁿ) rounding step, not exact data min/max —
|
|
10732
10956
|
intentional (readable axis labels), matches how most charting libraries pick tick steps.
|
|
10733
10957
|
|
|
@@ -10754,16 +10978,18 @@ of every entry in these lists.**
|
|
|
10754
10978
|
(`show-data-table`), `chartArea` (readonly). `type` is the only member that differs: read-only,
|
|
10755
10979
|
locked to this tag's value.
|
|
10756
10980
|
|
|
10757
|
-
**Methods:** `
|
|
10981
|
+
**Methods:** `appendData(label, values, maxPoints?)`, `exportData('csv' | 'png')`, `resetZoom()`,
|
|
10982
|
+
`refreshTheme()`.
|
|
10758
10983
|
|
|
10759
10984
|
**Events:** `lr-zoom` (`detail: { zoomed: boolean }`), `lr-point-click` (`detail: { datasetIndex,
|
|
10760
10985
|
index, label, value }`).
|
|
10761
10986
|
|
|
10762
10987
|
**Slots:** `data-table`, `center`.
|
|
10763
10988
|
|
|
10764
|
-
**CSS parts:** `base`, `
|
|
10765
|
-
`error` (`role="alert"` message
|
|
10766
|
-
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`).
|
|
10767
10993
|
|
|
10768
10994
|
**Themeable custom properties:** `--lr-chart-height`, `--lr-chart-grid-color`,
|
|
10769
10995
|
`--lr-chart-tick-color`, `--lr-chart-legend-color`, `--lr-chart-tooltip-bg`,
|
|
@@ -10790,9 +11016,9 @@ same set, so one rule retunes them together.
|
|
|
10790
11016
|
- `type` truly is locked per subclass: `<lr-pie-chart type="bar">` or `el.type = 'bar'` at runtime
|
|
10791
11017
|
is a genuine no-op (the accessor's setter silently ignores the write), not a footgun like a plain
|
|
10792
11018
|
overridden class-field default would be.
|
|
10793
|
-
- `lr-bubble-chart`
|
|
10794
|
-
|
|
10795
|
-
|
|
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.
|
|
10796
11022
|
|
|
10797
11023
|
---
|
|
10798
11024
|
|
|
@@ -10820,16 +11046,20 @@ Bins `values` into `bins` equal-width buckets and renders as a bar chart (extend
|
|
|
10820
11046
|
(`accessible-label`), `accessibleDescription` (`accessible-description`), `showDataTable`
|
|
10821
11047
|
(`show-data-table`), `chartArea` (readonly).
|
|
10822
11048
|
|
|
10823
|
-
**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.
|
|
10824
11053
|
|
|
10825
11054
|
**Events:** `lr-zoom`, `lr-point-click` — inherited; `lr-point-click`'s `index` is the bucket index
|
|
10826
11055
|
and `label` the generated bucket range string (`"lo–hi"`, both bounds at one decimal place).
|
|
10827
11056
|
|
|
10828
11057
|
**Slots:** `data-table`, `center`.
|
|
10829
11058
|
|
|
10830
|
-
**CSS parts:** `base`, `
|
|
10831
|
-
`error` (`role="alert"` message
|
|
10832
|
-
|
|
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).
|
|
10833
11063
|
|
|
10834
11064
|
**Themeable custom properties:** `--lr-chart-height`, `--lr-chart-grid-color`,
|
|
10835
11065
|
`--lr-chart-tick-color`, `--lr-chart-legend-color`, `--lr-chart-tooltip-bg`,
|
|
@@ -10855,6 +11085,9 @@ their semantics, defaults, and gotchas.
|
|
|
10855
11085
|
property write from requesting an unbounded bucket array.
|
|
10856
11086
|
- non-finite samples in `values` are dropped before bucketing rather than corrupting bucket-index
|
|
10857
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.
|
|
10858
11091
|
|
|
10859
11092
|
---
|
|
10860
11093
|
|
|
@@ -10867,7 +11100,8 @@ browser). Does **not** extend `LyraChart` — a deliberately bespoke API.
|
|
|
10867
11100
|
- `labels: string[] = []` (attribute: false)
|
|
10868
11101
|
- `boxes: BoxPlotSeries[] = []` (attribute: false) — `BoxPlotSeries { label: string; data:
|
|
10869
11102
|
BoxPlotPoint[]; color?: string }`, `BoxPlotPoint { min, q1, median, q3, max }`
|
|
10870
|
-
- `legend: boolean = false`
|
|
11103
|
+
- `legend: boolean = false` — renders a wrapping DOM legend whose buttons toggle box-series
|
|
11104
|
+
visibility without clipping long labels.
|
|
10871
11105
|
- `height: string = '280px'`
|
|
10872
11106
|
- `yLabel: string = ''` (attribute `y-label`)
|
|
10873
11107
|
- `beginAtZero: boolean = true` (attribute `begin-at-zero`)
|
|
@@ -10877,13 +11111,16 @@ browser). Does **not** extend `LyraChart` — a deliberately bespoke API.
|
|
|
10877
11111
|
localized five-number summary
|
|
10878
11112
|
- `showDataTable: boolean = false` (attribute `show-data-table`) — reveals the accessible data table
|
|
10879
11113
|
|
|
10880
|
-
**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.
|
|
10881
11117
|
|
|
10882
11118
|
**Events:** none.
|
|
10883
11119
|
|
|
10884
11120
|
**Slots:** `data-table` — an optional consumer-provided accessible table alternative.
|
|
10885
11121
|
|
|
10886
|
-
**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
|
|
10887
11124
|
instead of `canvas` when the optional box-plot peer fails to load)
|
|
10888
11125
|
|
|
10889
11126
|
**Themeable custom properties:** `--lr-chart-height`, `--lr-chart-grid-color`,
|
|
@@ -10908,8 +11145,12 @@ through the same cached `chart-loader.ts` used by `lr-chart`.
|
|
|
10908
11145
|
- no raw `config` passthrough — limited to the properties above; can't reach the underlying
|
|
10909
11146
|
controller's own options (`itemRadius`, `outlierRadius`, `coef`).
|
|
10910
11147
|
- Chart.js receives `effectiveLocale`; generated numeric summaries use it, the y axis moves to
|
|
10911
|
-
logical start in RTL,
|
|
10912
|
-
|
|
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.
|
|
10913
11154
|
- If `@sgratzl/chartjs-chart-boxplot` fails to load, the component warns to the console and
|
|
10914
11155
|
fails closed with a localized `role="alert"` error part rather than leaving a blank canvas.
|
|
10915
11156
|
|
|
@@ -10919,10 +11160,13 @@ through the same cached `chart-loader.ts` used by `lr-chart`.
|
|
|
10919
11160
|
|
|
10920
11161
|
`lr-lite-chart` and `lr-chart` expose additive imperative helpers for live dashboards:
|
|
10921
11162
|
`appendData(label, values, maxPoints?)` appends one aligned category and optionally trims the oldest
|
|
10922
|
-
points. `lr-
|
|
10923
|
-
|
|
10924
|
-
|
|
10925
|
-
|
|
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.
|
|
10926
11170
|
|
|
10927
11171
|
# Document & file viewers (`components/viewers/`)
|
|
10928
11172
|
|
|
@@ -10980,13 +11224,15 @@ image path — and the generic fallback simply omits `[part="download-link"]` en
|
|
|
10980
11224
|
`status="error"`.
|
|
10981
11225
|
- `maxHeight: string = ''` (attribute `max-height`) — a CSS length (e.g. `"24rem"`); once set,
|
|
10982
11226
|
`[part="body"]` scrolls internally past this height instead of growing the page — same contract as
|
|
10983
|
-
`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.
|
|
10984
11229
|
- `zoomable: boolean = false` (reflected) — wraps the rendered image (image format only) in an
|
|
10985
11230
|
internal `<lr-zoomable-frame>`. `false` (the default) preserves the exact pre-`zoomable` DOM — an
|
|
10986
11231
|
inline thumbnail (e.g. in a chat stream) must not unexpectedly grow a focusable zoom-chrome
|
|
10987
11232
|
viewport; an inspection surface opts in.
|
|
10988
11233
|
- `highlights: LyraHighlight[] = []` (attribute: false) — display-only `region` highlights painted
|
|
10989
|
-
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.
|
|
10990
11236
|
- `activeHighlightId: string | null = null` (attribute `active-highlight-id`) — the `highlights`
|
|
10991
11237
|
entry, if any, currently treated as active (`data-active` on its `region-highlight`).
|
|
10992
11238
|
- `anchorKinds` is a readonly `['region']` (this viewer's supported `LyraAnchor.kind` values for the
|
|
@@ -11123,8 +11369,10 @@ type. First-party invention.
|
|
|
11123
11369
|
- `mimeType: string = ''` (attribute `mime-type`) — MIME type used for exact renderer dispatch.
|
|
11124
11370
|
- `src: string = ''` — source URL passed to the selected renderer or the fallback preview.
|
|
11125
11371
|
- `registry?: DocumentRendererRegistry` (attribute: false) — optional per-instance registry override;
|
|
11126
|
-
the module-level registry is used when unset.
|
|
11127
|
-
|
|
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.
|
|
11128
11376
|
- `anchor: LyraAnchor | string | null = null` (attribute: false) — declarative scroll-to-anchor
|
|
11129
11377
|
target forwarded to the resolved renderer; a string is a highlight id in `highlights`.
|
|
11130
11378
|
`hasChanged: () => true`, so re-assigning the same value (e.g. re-clicking the same citation
|
|
@@ -11147,6 +11395,7 @@ type. First-party invention.
|
|
|
11147
11395
|
(a highlight id) counts as supported by any renderer declaring at least one anchor kind.
|
|
11148
11396
|
|
|
11149
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"`;
|
|
11150
11399
|
`download-link` — the native download action, rendered when `src` passes Lyra's safe-link policy.
|
|
11151
11400
|
|
|
11152
11401
|
**Themeable custom properties:** `--lr-document-viewer-max-height` (default `70vh`) — maximum block
|
|
@@ -11185,6 +11434,9 @@ registerDocumentRenderer('application/x-example', {
|
|
|
11185
11434
|
When no renderer matches, the viewer renders `<lr-document-preview>`, which handles text and images
|
|
11186
11435
|
inline and provides a safe generic fallback for other formats.
|
|
11187
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
|
+
|
|
11188
11440
|
## `lr-docx-viewer`
|
|
11189
11441
|
|
|
11190
11442
|
Fetches a `.docx` Word document as an `ArrayBuffer`, converts it to semantic HTML with the optional
|
|
@@ -11196,10 +11448,13 @@ hatch: if `dompurify` is unavailable, rendering is blocked even when Mammoth con
|
|
|
11196
11448
|
Every rendered heading's slug (the same GitHub-slugger-style algorithm `<lr-markdown>` uses) is
|
|
11197
11449
|
stamped as its `id` and cached into `getHeadingTree()`'s document-ordered outline. Adopts
|
|
11198
11450
|
`DocumentAnchorTarget`: `fragment` anchors resolve against that outline, `text-quote` anchors via
|
|
11199
|
-
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.
|
|
11200
11454
|
|
|
11201
11455
|
**Properties:** `src`, `name`, and `maxHeight` (attribute `max-height`) are strings. `maxHeight` caps
|
|
11202
|
-
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
|
|
11203
11458
|
viewer's supported `LyraAnchor.kind` values for the shared anchor-target contract).
|
|
11204
11459
|
|
|
11205
11460
|
**Methods:** `getHeadingTree()` returns the document-ordered outline as `DocxHeadingItem[]` (`{ id,
|
|
@@ -11212,14 +11467,17 @@ painted marks.
|
|
|
11212
11467
|
**Events:** `lr-render-error` with `detail.error` when fetching, conversion, sanitization, or a
|
|
11213
11468
|
non-fatal Mammoth conversion message occurs. `lr-search-change` (`detail: { query, matchCount,
|
|
11214
11469
|
activeIndex }`) — from `search()`/`searchNext()`/`searchPrevious()`/`clearSearch()`.
|
|
11215
|
-
`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.
|
|
11216
11472
|
`lr-text-select` (`detail: { text, anchor, rects }`) — fired on selection end inside the rendered
|
|
11217
11473
|
content. `lr-anchor-result` (`detail: { found }`) — fired after an `anchor` assignment or a
|
|
11218
11474
|
`scrollToAnchor()` call.
|
|
11219
11475
|
|
|
11220
11476
|
**CSS parts:** `base`, `body`, `content`, `spinner`, `error`, `highlight` (a painted `text-quote`
|
|
11221
|
-
highlight), `
|
|
11222
|
-
|
|
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`).
|
|
11223
11481
|
|
|
11224
11482
|
**Themeable custom properties:** `--lr-docx-viewer-max-height` (default `none`) — maximum block size
|
|
11225
11483
|
of `[part="body"]`; also settable via the `max-height` property, which writes this token inline.
|
|
@@ -11262,8 +11520,9 @@ downloading, or object-URL'ing them is the host's job (e.g.
|
|
|
11262
11520
|
Remote resources are capped at 25 MB; exceeding it surfaces the localized
|
|
11263
11521
|
`documentPreviewResourceTooLarge` message instead of the message.
|
|
11264
11522
|
|
|
11265
|
-
**Properties:** `src`, `name`, and `maxHeight` (attribute `max-height`) are strings
|
|
11266
|
-
|
|
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
|
|
11267
11526
|
localized show/hide toggle. `false` (the default) preserves the full body rendering. A host
|
|
11268
11527
|
`aria-label` takes precedence over `name`. `highlights`, `activeHighlightId`, `anchor`, and
|
|
11269
11528
|
`anchorKinds` (`['text-quote', 'fragment']`) provide the shared text-viewer contract.
|
|
@@ -11299,8 +11558,9 @@ matching `.eml` filenames in `<lr-document-viewer>`. Fail-closed behavior is exp
|
|
|
11299
11558
|
Fetches and parses `.ics` calendars with the optional `ical.js` peer and renders each VEVENT as
|
|
11300
11559
|
plain text, including its title, start/end time, location, and description. No HTML is injected.
|
|
11301
11560
|
|
|
11302
|
-
**Properties:** `src`, `name`, and `maxHeight` (attribute `max-height`) are strings
|
|
11303
|
-
`
|
|
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
|
|
11304
11564
|
`anchorKinds` (`['text-quote', 'fragment']`) provide the shared text-viewer contract.
|
|
11305
11565
|
|
|
11306
11566
|
**Methods:** `search(query)`, `searchNext()`, `searchPrevious()`, `clearSearch()`, and
|
|
@@ -11333,19 +11593,34 @@ fully decompressing only the rare entry missing that header field. The list comp
|
|
|
11333
11593
|
contract: `highlights`, `activeHighlightId`, `anchor`, and `anchorKinds` (`['text-quote', 'fragment']`).
|
|
11334
11594
|
|
|
11335
11595
|
**Methods:** `search(query)`, `searchNext()`, `searchPrevious()`, and `clearSearch()` provide
|
|
11336
|
-
case-insensitive text search over
|
|
11337
|
-
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.
|
|
11338
11601
|
|
|
11339
|
-
**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.
|
|
11340
11606
|
|
|
11341
11607
|
**CSS parts:** `base`, `body`, `entry`, `entry-icon`, `entry-name`, `entry-name-dir`, `entry-size`,
|
|
11342
|
-
`
|
|
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
|
|
11343
11610
|
`entry-name-dir` (a part list), so `::part(entry-name-dir)` selects only directory names while
|
|
11344
11611
|
`::part(entry-name)` still selects every name. Entry rows are rendered into the embedded
|
|
11345
11612
|
`<lr-virtual-list>`'s own shadow root and forwarded with `exportparts`, so
|
|
11346
11613
|
`lr-archive-viewer::part(entry)` (and every other row part above) reaches them from a consuming
|
|
11347
11614
|
stylesheet.
|
|
11348
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
|
+
|
|
11349
11624
|
**Exports:** `ArchiveEntry` — `{ name: string; dir: boolean; size: number }`.
|
|
11350
11625
|
|
|
11351
11626
|
**Optional peer dependency:** install `jszip` with `pnpm add jszip`. The lazy registry registers
|
|
@@ -11371,8 +11646,9 @@ the reading region's accessible name. `location: string = ''` (not reflected —
|
|
|
11371
11646
|
a CFI or spine href identifying the current reading position: set before the book finishes
|
|
11372
11647
|
loading it's recorded and applied once ready, set after it applies immediately, and epub.js's own
|
|
11373
11648
|
`relocated` event keeps it in sync with user navigation without re-triggering its own `display()`
|
|
11374
|
-
call. `
|
|
11375
|
-
|
|
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).
|
|
11376
11652
|
|
|
11377
11653
|
**Methods:** `getToc()` resolves the EPUB's own navigation document (`book.navigation.toc`,
|
|
11378
11654
|
populated once `book.ready` resolves) flattened into document-ordered `EbookTocItem[]` (`{ id,
|
|
@@ -11380,16 +11656,20 @@ label, href, level }`, `level` starting at 1 for a top-level entry, `id` falling
|
|
|
11380
11656
|
when a navigation entry has none), `[]` before a book has loaded. `search(query)` resolves the
|
|
11381
11657
|
match count across every spine section, in document order, via epub.js's own `item.load()`/
|
|
11382
11658
|
`item.find()`/`item.unload()` (empty/whitespace query behaves like `clearSearch()`; a newer
|
|
11383
|
-
`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()`
|
|
11384
11661
|
advance/step back through matches (wrapping, resolving `false` when there are none); `clearSearch()`
|
|
11385
11662
|
clears the query, matches, and painted search annotation.
|
|
11386
11663
|
|
|
11387
11664
|
**Events:** `lr-render-error` with `detail.error` when fetching, opening, or rendering fails;
|
|
11388
11665
|
`lr-location-change` (`detail: { cfi, href }`) fired from epub.js's own `relocated` event;
|
|
11389
11666
|
`lr-search-change` (`detail: { query, matchCount, activeIndex }`) from `search()`/`searchNext()`/
|
|
11390
|
-
`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.
|
|
11391
11670
|
|
|
11392
|
-
**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`,
|
|
11393
11673
|
`mount`, `error`, and `announcer` (the visually-hidden `role="status"` region search results
|
|
11394
11674
|
announce through).
|
|
11395
11675
|
|
|
@@ -11399,7 +11679,8 @@ unambiguous beside other previous/next controls and are overridable through `.st
|
|
|
11399
11679
|
|
|
11400
11680
|
**Optional peer dependency:** install `epubjs` with `pnpm add epubjs`. The document-viewer registry
|
|
11401
11681
|
matches `application/epub+zip` and `.epub` filenames, declaring `{ anchors: ['cfi', 'text-quote'],
|
|
11402
|
-
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.
|
|
11403
11684
|
|
|
11404
11685
|
Remote resources are capped at 25 MB; exceeding it surfaces the localized
|
|
11405
11686
|
`documentPreviewResourceTooLarge` message instead of the ebook.
|
|
@@ -11413,6 +11694,10 @@ same reason. `highlights` (kind `cfi`) paint via `rendition.annotations.highligh
|
|
|
11413
11694
|
re-applied whenever the rendition is recreated (a `src` change, or a reconnect remount), since
|
|
11414
11695
|
epub.js doesn't persist annotations across a fresh `renderTo()`.
|
|
11415
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
|
+
|
|
11416
11701
|
## `lr-pptx-viewer`
|
|
11417
11702
|
|
|
11418
11703
|
Best-effort client-side PPTX viewer backed by the optional `@aiden0z/pptx-renderer` peer. A
|
|
@@ -11455,7 +11740,8 @@ here — a sanitized SVG document has neither pages nor extractable text to quot
|
|
|
11455
11740
|
its registry entry declares `capabilities: { anchors: ['region'], search: false, textSelect: false }`.
|
|
11456
11741
|
|
|
11457
11742
|
**Properties:** `src`, `name`, and `maxHeight` (attribute `max-height`) are strings. `maxHeight` caps
|
|
11458
|
-
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
|
|
11459
11745
|
internal `<lr-zoomable-frame>`. `false` (the default) preserves the exact pre-`zoomable` DOM — an
|
|
11460
11746
|
inline thumbnail (e.g. in a chat stream) must not unexpectedly grow a focusable zoom-chrome viewport;
|
|
11461
11747
|
an inspection surface opts in. `anchor: LyraAnchor | string | null = null` (attribute: false) —
|
|
@@ -11463,7 +11749,9 @@ declaratively jump to an anchor (a `LyraAnchor` object, or a `highlights` entry'
|
|
|
11463
11749
|
calls `scrollToAnchor()` and fires `lr-anchor-result`; re-assigning the same value re-triggers the
|
|
11464
11750
|
scroll, it is not reference-gated. `highlights: LyraHighlight[] = []` (attribute: false) —
|
|
11465
11751
|
display-only `region` highlights painted over the rendered SVG; unchanged behavior, now inherited
|
|
11466
|
-
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`
|
|
11467
11755
|
(attribute `active-highlight-id`) — the `highlights` entry, if any, currently treated as active
|
|
11468
11756
|
(`data-active` on its `region-highlight`). `anchorKinds` is a readonly `['region']` (this viewer's
|
|
11469
11757
|
supported `LyraAnchor.kind` values for the shared anchor-target contract).
|
|
@@ -11515,8 +11803,9 @@ Remote resources are capped at 25 MB; exceeding it surfaces the localized
|
|
|
11515
11803
|
Fetches an HTML document, sanitizes it with the optional `dompurify` peer, and renders the safe markup
|
|
11516
11804
|
inside a bounded, scrollable body.
|
|
11517
11805
|
|
|
11518
|
-
**Properties:** `src`, `name`, and `maxHeight` (attribute `max-height`) are strings
|
|
11519
|
-
`
|
|
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
|
|
11520
11809
|
`anchorKinds` (`['text-quote', 'fragment']`) provide the shared text-viewer contract.
|
|
11521
11810
|
|
|
11522
11811
|
**Methods:** `search(query)`, `searchNext()`, `searchPrevious()`, `clearSearch()`, and
|
|
@@ -11550,9 +11839,10 @@ is never part of the virtualized body); `scrollToAnchor()` scrolls the addressed
|
|
|
11550
11839
|
the virtualized list's `active-id`. `highlights` paint as a `part="cell-highlight"` cell wrapping a
|
|
11551
11840
|
focusable `part="cell-highlight-action"` native button, keeping the ARIA table tree intact.
|
|
11552
11841
|
|
|
11553
|
-
**Properties:** `src`, `name`, and `maxHeight` (attribute `max-height`) are strings
|
|
11554
|
-
|
|
11555
|
-
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).
|
|
11556
11846
|
|
|
11557
11847
|
**Methods:** `search(query)` resolves the match count via a case-insensitive substring search over
|
|
11558
11848
|
every body cell's raw string value, ordered row then column (empty/whitespace query behaves like
|
|
@@ -11599,8 +11889,9 @@ label when `FN` is absent).
|
|
|
11599
11889
|
Remote resources are capped at 25 MB; exceeding it surfaces the localized
|
|
11600
11890
|
`documentPreviewResourceTooLarge` message instead of the contacts.
|
|
11601
11891
|
|
|
11602
|
-
**Properties:** `src`, `name`, and `maxHeight` (attribute `max-height`) are strings
|
|
11603
|
-
`
|
|
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
|
|
11604
11895
|
`anchorKinds` (`['text-quote', 'fragment']`) provide the shared text-viewer contract.
|
|
11605
11896
|
|
|
11606
11897
|
**Methods:** `search(query)`, `searchNext()`, `searchPrevious()`, `clearSearch()`, and
|
|
@@ -11634,9 +11925,12 @@ to tell that apart from a genuine activation click.
|
|
|
11634
11925
|
**Properties:** `src` and `name` are strings. `page: number = 1` is the one-based current page and
|
|
11635
11926
|
`zoom: number = 1` is clamped to `0.25`–`4`. `maxHeight: string = ''` (attribute `max-height`) is a
|
|
11636
11927
|
CSS length that, once set, overrides `--lr-pdf-viewer-height` — the block size of the virtualized
|
|
11637
|
-
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
|
|
11638
11930
|
`['page', 'text-quote', 'region']` (this viewer's supported `LyraAnchor.kind` values for the shared
|
|
11639
|
-
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.
|
|
11640
11934
|
|
|
11641
11935
|
**Events:**
|
|
11642
11936
|
- `lr-render-error` — `detail: { error }` — fetching, parsing, or rendering (page canvas or text
|
|
@@ -11663,7 +11957,8 @@ of one page (per-page LRU-cached, 64 pages), rejecting on no loaded document or
|
|
|
11663
11957
|
`options.width` CSS px (default 96), devicePixelRatio-aware, resolving `false` when not ready or out
|
|
11664
11958
|
of range. `goToPage(page)` scrolls the virtualized list to `page`, resolving `true` once mounted (or
|
|
11665
11959
|
`false` for an out-of-range value, without changing `page`). `getOutline()` resolves the document's
|
|
11666
|
-
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.
|
|
11667
11962
|
`search(query)` resolves the match count across all pages (empty/whitespace query behaves like
|
|
11668
11963
|
`clearSearch()`); `searchNext()` and `searchPrevious()` advance/step back through matches (wrapping,
|
|
11669
11964
|
resolving `false` when there are none); `clearSearch()` clears the query, matches, and painted marks.
|
|
@@ -11703,6 +11998,9 @@ rendering without it.
|
|
|
11703
11998
|
Remote resources are capped at 25 MB; exceeding it surfaces the localized
|
|
11704
11999
|
`documentPreviewResourceTooLarge` message instead of the PDF.
|
|
11705
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
|
+
|
|
11706
12004
|
## `lr-spreadsheet-viewer`
|
|
11707
12005
|
|
|
11708
12006
|
Fetches and renders `.xlsx` and `.xls` workbooks with the optional `xlsx` (SheetJS) peer. Multiple
|
|
@@ -11762,9 +12060,9 @@ row/column into view via the virtualized list's `active-id`. `highlights` paint
|
|
|
11762
12060
|
**Properties:** `src` and `name` are strings. `hasHeaderRow: boolean = true` (attribute
|
|
11763
12061
|
`has-header-row`) controls whether the first parsed row is rendered as a sticky header.
|
|
11764
12062
|
`maxHeight: string = ''` (attribute `max-height`) is a CSS length that caps the scrollable body —
|
|
11765
|
-
setting it writes `--lr-csv-viewer-max-height` inline on `[part="base"]
|
|
11766
|
-
|
|
11767
|
-
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).
|
|
11768
12066
|
|
|
11769
12067
|
**Methods:** `search(query)` resolves the match count via a case-insensitive substring match over
|
|
11770
12068
|
the same stringified cell values `cell()` renders, ordered row then column (empty/whitespace query
|
|
@@ -11814,8 +12112,8 @@ raw injection option is omitted, not shipped as a no-op).
|
|
|
11814
12112
|
|
|
11815
12113
|
A bare primitive: no label/hint/error chrome, no implicit role, no computed accessible name, and no
|
|
11816
12114
|
`aria-live` wrapper (the fragment can carry its own landmarks; wrapping the host would re-announce
|
|
11817
|
-
all of it on every load). `aria-busy="true"
|
|
11818
|
-
|
|
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`.
|
|
11819
12117
|
|
|
11820
12118
|
**Properties:**
|
|
11821
12119
|
- `src: string = ''` (reflected) — URL of the fragment, validated through the shared `safeFetchUrl()`
|
|
@@ -11830,7 +12128,8 @@ removed once it settles either way. Build error UI from `lr-include-error`.
|
|
|
11830
12128
|
The shared text-viewer contract is also available for the sanitized light-DOM fragment:
|
|
11831
12129
|
`highlights`, `activeHighlightId`, `anchor`, and `anchorKinds` (`['text-quote', 'fragment']`).
|
|
11832
12130
|
`search(query)`, `searchNext()`, `searchPrevious()`, `clearSearch()`, and `scrollToAnchor()`
|
|
11833
|
-
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.
|
|
11834
12133
|
|
|
11835
12134
|
**Events:**
|
|
11836
12135
|
- `lr-load` — `detail: { src }` — the fragment was sanitized and written into the light DOM.
|
|
@@ -11860,7 +12159,8 @@ positioned ancestor.
|
|
|
11860
12159
|
|
|
11861
12160
|
**Properties:** `items: HighlightLayerItem[] = []` (attribute: false), `activeId: string | null =
|
|
11862
12161
|
null` (attribute `active-id`), and `interactive: boolean = true` (reflected) — gates click/keyboard
|
|
11863
|
-
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.
|
|
11864
12164
|
|
|
11865
12165
|
**Methods:** `flash(id)` briefly re-triggers the flash styling for an already-rendered rect (e.g. a
|
|
11866
12166
|
re-click of the same source citation).
|
|
@@ -11903,6 +12203,11 @@ truth.
|
|
|
11903
12203
|
**Events:** `lr-page-select` — a page row was activated (click, or Enter/Space on a focused row).
|
|
11904
12204
|
`detail: { page }`. In wired mode the rail also sets `viewer.page` itself.
|
|
11905
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
|
+
|
|
11906
12211
|
**CSS parts:** `base` (the rail), `pages` (the embedded `<lr-virtual-list>`), `page` (one page
|
|
11907
12212
|
button), `page-current` (the button for the current `page`), `thumbnail` (the thumbnail canvas
|
|
11908
12213
|
wrapper), `page-number` (the visible page number), `heat` (the heat-marker cluster), `heat-dot` (one
|
|
@@ -11944,9 +12249,10 @@ JSON text; wins over `src` and is parsed (and validated) synchronously. `name: s
|
|
|
11944
12249
|
accessible label, and matched against a `fragment` anchor's cell id. `outputCollapseLines: number =
|
|
11945
12250
|
40` (attribute `output-collapse-lines`) — a plain-text output longer than this many lines renders
|
|
11946
12251
|
collapsed behind a toggle; `0` disables collapsing. `maxHeight: string = ''` (attribute
|
|
11947
|
-
`max-height`) — once set, the notebook scrolls internally past this height
|
|
11948
|
-
|
|
11949
|
-
|
|
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).
|
|
11950
12256
|
|
|
11951
12257
|
**Methods:** `search(query)` resolves the match count over cell sources and text outputs — a
|
|
11952
12258
|
matching cell counts as one match (empty/whitespace query behaves like `clearSearch()`);
|
|
@@ -11998,6 +12304,9 @@ the element or on any ancestor.
|
|
|
11998
12304
|
A notebook major version outside 4.0–4.5, an invalid shape, or more than 2,000 cells renders a
|
|
11999
12305
|
localized error and fires `lr-render-error` instead of the notebook.
|
|
12000
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
|
+
|
|
12001
12310
|
## `lr-xml-viewer`
|
|
12002
12311
|
|
|
12003
12312
|
Collapsible, copyable, `DOMParser`-based tree view for XML documents, mirroring `lr-json-viewer`'s
|
|
@@ -12016,7 +12325,8 @@ boolean = false` (reflected) — shows copy-to-clipboard affordances, one for th
|
|
|
12016
12325
|
one per element. `maxHeight: string = ''` (attribute `max-height`). `anchorKinds` is a readonly
|
|
12017
12326
|
`['node-path']` (this viewer's supported `LyraAnchor.kind` values for the shared anchor-target
|
|
12018
12327
|
contract) — each numeric path segment is the 0-based index within the parent's *element* children,
|
|
12019
|
-
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.
|
|
12020
12330
|
|
|
12021
12331
|
**Methods:** `search(query)` resolves the match count via a case-insensitive substring search over
|
|
12022
12332
|
every element's tag name, attribute names/values, and own text (empty/whitespace query behaves like
|
|
@@ -12068,7 +12378,8 @@ await viewer.search(query);
|
|
|
12068
12378
|
```
|
|
12069
12379
|
|
|
12070
12380
|
Node cap: 50,000 — exceeding it renders the localized `xmlViewerTooManyNodes` error instead of the
|
|
12071
|
-
tree.
|
|
12381
|
+
tree. A collapsed element's child count includes element, text, comment, CDATA, and processing-
|
|
12382
|
+
instruction children rather than only element descendants.
|
|
12072
12383
|
|
|
12073
12384
|
## `lr-document-compare`
|
|
12074
12385
|
|
|
@@ -12128,17 +12439,24 @@ approximation weighting latitude span ~2x, with 40% padding), then hands the par
|
|
|
12128
12439
|
`maplibre-gl` peer isn't installed, it falls back to a status line plus a `<lr-json-viewer
|
|
12129
12440
|
collapsed-depth="2">` of the raw value instead of the map.
|
|
12130
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
|
+
|
|
12131
12447
|
**Properties:** `src: string = ''` — URL to fetch and parse. `name: string = ''` — accessible label,
|
|
12132
12448
|
used as `<lr-map>`'s `label` and the root's `aria-label` (falling back to the localized
|
|
12133
12449
|
`geojsonViewLabel` when unset). A host `aria-label` takes precedence over `name`. The shared
|
|
12134
12450
|
text-viewer contract adds `highlights`, `activeHighlightId`, `anchor`, and
|
|
12135
12451
|
`anchorKinds` (`['text-quote', 'fragment']`), plus `search()`, `searchNext()`, `searchPrevious()`,
|
|
12136
|
-
`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.
|
|
12137
12454
|
|
|
12138
12455
|
**Events:** `lr-render-error` — `detail: { error }` — fetch, parse, or shape-validation failure.
|
|
12139
12456
|
|
|
12140
12457
|
**CSS parts:** `base` (the root container), `status` (the feature-count status line, `role="status"`,
|
|
12141
|
-
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
|
|
12142
12460
|
alongside the `lr-json-viewer` fallback), `error` (the error region, `role="alert"`), `spinner`
|
|
12143
12461
|
(the loading status region).
|
|
12144
12462
|
|
|
@@ -13144,7 +13462,9 @@ combination (`catalog` empty/unset, or `allowCustom` true) renders the free-text
|
|
|
13144
13462
|
(`[part="combobox"]`/`[part="combobox-input"]`) with live substring filtering against the catalog (id or
|
|
13145
13463
|
label, case-insensitive). The mode is re-evaluated on every render, so toggling `allowCustom` or clearing
|
|
13146
13464
|
`catalog` at runtime switches modes live, repositioning the shared `[part="listbox"]` popover against
|
|
13147
|
-
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.
|
|
13148
13468
|
|
|
13149
13469
|
A `value` that isn't present in `catalog` (e.g. a model id saved from a provider whose live catalog has
|
|
13150
13470
|
since changed) is never silently dropped: it's appended to the rendered option list as a synthetic,
|
|
@@ -13159,6 +13479,8 @@ visually-distinct row (dashed border, italic label, "not in catalog" badge) comp
|
|
|
13159
13479
|
- `change` (`Event`, no detail) — fired alongside `lr-change`, mirroring `<lr-select>`/
|
|
13160
13480
|
`<lr-combobox>`'s native-style value-change pair so native form bindings/framework `v-model`
|
|
13161
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>`.
|
|
13162
13484
|
- `blur` (no detail) — re-dispatched from the free-text mode's internal `<input>`'s own `blur`,
|
|
13163
13485
|
bubbling and composed unlike the native event. Closed-dropdown mode's trigger `<button>` has no
|
|
13164
13486
|
equivalent re-dispatch, matching `<lr-select>`'s own trigger.
|
|
@@ -13878,7 +14200,8 @@ rating opens the detail panel, and `disabled: boolean = false` (reflected) for a
|
|
|
13878
14200
|
**Events:** `lr-change` — `detail: { value: 'up' | 'down' | null }`, fired when a thumb's rating
|
|
13879
14201
|
changes or clears. `lr-submit` — `detail: { value: 'up' | 'down'; reasonIds: string[]; comment:
|
|
13880
14202
|
string }`, fired by the panel's submit button (`value` is never `null` here — the panel only exists
|
|
13881
|
-
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.
|
|
13882
14205
|
|
|
13883
14206
|
**CSS parts:** `base` (the root), `thumbs` (wrapper around both thumb buttons), `up-button`,
|
|
13884
14207
|
`down-button`, `panel` (the inline detail disclosure, only rendered when `reasons` is non-empty or
|
|
@@ -14615,7 +14938,11 @@ part to the built-in renderer; `label: string = ''`; `accessibleLabel: string |
|
|
|
14615
14938
|
`MessagePartRenderer = (part: MessagePart, index: number) => unknown`; `MessagePart` and its
|
|
14616
14939
|
discriminated part shapes come from the `@aceshooting/lyra-ui/ai` subpath.
|
|
14617
14940
|
|
|
14618
|
-
**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`.
|
|
14619
14946
|
|
|
14620
14947
|
**CSS parts:** `base`, `part`, `part-streaming`, `text`, `reasoning`, `tool-call`, `tool-result`,
|
|
14621
14948
|
`citation`, `attachment`, `data`, `audio`, `audio-transcript`, `error`, `retry`.
|
|
@@ -14728,6 +15055,8 @@ Nonmodal, Escape-dismissible text-selection toolbar carrying selected text plus
|
|
|
14728
15055
|
**Events:** `lr-selection-action` (`SelectionActionDetail = { action, text, anchor }`);
|
|
14729
15056
|
`lr-dismiss` (Escape); `lr-copy-error` (`{ error }`). Copy uses the Clipboard API when available;
|
|
14730
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.
|
|
14731
15060
|
|
|
14732
15061
|
**CSS parts:** `toolbar`, `action`, `action-ask`, `action-quote`, `action-cite`, `action-copy`.
|
|
14733
15062
|
|
|
@@ -15190,11 +15519,12 @@ shared overlay stack. First-party invention (no Web Awesome equivalent).
|
|
|
15190
15519
|
- `ToolSelectDialogTool { id: string; name: string; description?: string; category?: string; icon?:
|
|
15191
15520
|
string; disabled?: boolean; disabledReason?: string }` — one selectable agent tool. `category` groups
|
|
15192
15521
|
the row into a heading; tools with no `category` (or an empty/whitespace-only one) fall into a
|
|
15193
|
-
trailing "Other" bucket.
|
|
15194
|
-
|
|
15195
|
-
|
|
15196
|
-
|
|
15197
|
-
|
|
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.
|
|
15198
15528
|
- `ToolSelectFilter = (tool: ToolSelectDialogTool, query: string) => boolean` — a predicate deciding
|
|
15199
15529
|
whether `tool` matches an already-trimmed, already-lowercased `query`. Assign `filter` to replace the
|
|
15200
15530
|
built-in case-insensitive name/description substring match entirely (mirrors `<lr-combobox>`'s
|
|
@@ -15229,7 +15559,8 @@ shared overlay stack. First-party invention (no Web Awesome equivalent).
|
|
|
15229
15559
|
|
|
15230
15560
|
**Events:** `lr-change` (`detail: ToolSelectionChangeDetail` — the enabled-tool selection or the
|
|
15231
15561
|
`useDefaults` toggle changed), `lr-close` (`detail: ToolSelectDialogCloseReason` — fired exactly once
|
|
15232
|
-
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.
|
|
15233
15564
|
|
|
15234
15565
|
**Slots:** `footer` — optional action buttons (e.g. a "Done" button), rendered in a bottom row. Changes
|
|
15235
15566
|
already apply live via `lr-change`, so this slot is purely optional; only visually shown once it has
|
|
@@ -15284,7 +15615,9 @@ checkboxes for editing.
|
|
|
15284
15615
|
- `disabledReason` text only renders when both `tool.disabled` and `tool.disabledReason` are set.
|
|
15285
15616
|
- Categories are grouped in first-seen order across `tools`; an empty/whitespace-only `category` folds
|
|
15286
15617
|
into a trailing "Other" bucket that's always rendered last. A category left with zero matches after
|
|
15287
|
-
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.
|
|
15288
15621
|
- Reconnecting the element while still `open` (e.g. a drag-and-drop reparent that keeps the same
|
|
15289
15622
|
instance) resumes its shared overlay registration and re-acquires the scroll lock dropped in
|
|
15290
15623
|
`disconnectedCallback`.
|
|
@@ -15324,7 +15657,9 @@ jump-to-latest action of its own.
|
|
|
15324
15657
|
**Themeable custom properties:** `--lr-thinking-panel-max-block-size` (default `16rem` —
|
|
15325
15658
|
consumer-overridable cap on how tall `[part="body"]` grows before it scrolls internally; not
|
|
15326
15659
|
exposed as a component property since it's a pure layout knob, not something a template branches
|
|
15327
|
-
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`,
|
|
15328
15663
|
`--lr-space-xs`/`-s`/`-m`, `--lr-radius`, `--lr-focus-ring-width`/`-color`/`-offset`,
|
|
15329
15664
|
`--lr-transition-fast`/`-base`.
|
|
15330
15665
|
|
|
@@ -15416,7 +15751,11 @@ toggle for a run of internal frames), `raw` (the verbatim fallback when zero str
|
|
|
15416
15751
|
parsed), `copy-button` (only rendered while `copyable`).
|
|
15417
15752
|
|
|
15418
15753
|
**Themeable custom properties:** `--lr-stack-trace-max-height` (default `none`),
|
|
15419
|
-
`--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
|
|
15420
15759
|
`--lr-color-border`/`-surface`/`-text`/`-text-quiet`/`-brand`, `--lr-radius`,
|
|
15421
15760
|
`--lr-border-width-thin`, `--lr-space-xs`/`-s`/`-2xs`, `--lr-font-size-sm`/`-xs`,
|
|
15422
15761
|
`--lr-font-weight-bold`/`-semibold`, `--lr-focus-ring-*`.
|
|
@@ -15504,7 +15843,8 @@ closing; otherwise always followed by `lr-close` with reason `'approve'`), `lr-d
|
|
|
15504
15843
|
default, `event.detail` is `null`, not `undefined`. Cancelable, same `pending` mechanism, setting
|
|
15505
15844
|
`pending` to `'deny'`; otherwise always followed by `lr-close` with reason `'deny'`), `lr-close`
|
|
15506
15845
|
(`detail: ToolApprovalDialogCloseReason` — fired exactly once per dismissal, via Escape, a backdrop
|
|
15507
|
-
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.
|
|
15508
15848
|
|
|
15509
15849
|
**Slots:** `footer` — optional supplementary content (e.g. a "remember this choice" checkbox),
|
|
15510
15850
|
rendered before the built-in Deny/Edit/Approve buttons.
|
|
@@ -15571,12 +15911,10 @@ shared composed-tree focus traversal used by the other modal families.
|
|
|
15571
15911
|
disconnect/reconnect fire back-to-back with no update in between.
|
|
15572
15912
|
- the Approve button's native `disabled` attribute (while the draft is invalid JSON) automatically
|
|
15573
15913
|
excludes it from the shared Tab trap, whose focusable-set computation skips disabled controls.
|
|
15574
|
-
- the raw-JSON `args-editor` textarea
|
|
15575
|
-
and `
|
|
15576
|
-
|
|
15577
|
-
|
|
15578
|
-
`'sentences'`) could auto-capitalize or auto-correct key/value text as the user edits, silently
|
|
15579
|
-
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.
|
|
15580
15918
|
- `deny-button`/`approve-button` are `<lr-button>` hosts (`variant="neutral"`/`"brand"` — this
|
|
15581
15919
|
component has no `tone` property) — `--lr-button-*` theming reaches them directly. A consumer
|
|
15582
15920
|
previously styling `::part(deny-button)`/`::part(approve-button)` for
|
|
@@ -15642,13 +15980,19 @@ and makes the form invalid instead of being silently accepted.
|
|
|
15642
15980
|
updates `ElementInternals`, and returns validity without revealing inline errors.
|
|
15643
15981
|
- `reportValidity(): boolean` — performs the same resynchronization, reveals all current field/root
|
|
15644
15982
|
errors, focuses the first invalid generated field when one exists, and delegates to native
|
|
15645
|
-
`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.
|
|
15646
15986
|
|
|
15647
15987
|
**Events:** `lr-input` (`detail: { value: Record<string, unknown> }` — the full current value
|
|
15648
15988
|
object, every property with defaults resolved, not just the field that changed), `lr-validity-change`
|
|
15649
15989
|
(`detail: { valid: boolean; errors: Record<string, string> }` — fired whenever overall validity or
|
|
15650
15990
|
the field-error set changes, including once up front at connect time; serialization-only failures
|
|
15651
|
-
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.
|
|
15652
15996
|
|
|
15653
15997
|
**Slots:** none.
|
|
15654
15998
|
|
|
@@ -15691,13 +16035,16 @@ This component owns no Submit/Cancel/Approve chrome — a consumer composes it i
|
|
|
15691
16035
|
`<lr-option>`s; a plain `'string'` renders a text `<input>`; `'number'`/`'integer'` render a numeric
|
|
15692
16036
|
`<input type="number">` (`step="1"` for integer, `step="any"` for number); `'boolean'` renders a
|
|
15693
16037
|
`<lr-checkbox>` with the field's label projected into its default slot — real slotted content, since
|
|
15694
|
-
that's `<lr-checkbox>`'s documented way to give itself an accessible name
|
|
15695
|
-
|
|
15696
|
-
|
|
15697
|
-
|
|
15698
|
-
|
|
15699
|
-
|
|
15700
|
-
|
|
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.
|
|
15701
16048
|
|
|
15702
16049
|
Optional native `<form>` participation is implemented via `ElementInternals` attached directly in the
|
|
15703
16050
|
constructor (`static formAssociated = true`) rather than a string-value mixin, since this component's
|
|
@@ -15718,6 +16065,9 @@ a JSON object, falls back to `{}` for malformed/non-object state, and does not e
|
|
|
15718
16065
|
after an explicit `reportValidity()` call — `checkValidity()` alone never reveals them, matching
|
|
15719
16066
|
every other form control in this library (`<lr-select>`/`<lr-combobox>`/`<lr-model-select>`
|
|
15720
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.
|
|
15721
16071
|
- `effectiveValue` distinguishes "key absent from `value`" (falls back to `default`) from "key present
|
|
15722
16072
|
but `undefined`" (stays cleared and counts as absent for `required`) via `hasOwnProperty`, not an
|
|
15723
16073
|
`=== undefined` fallback check.
|
|
@@ -15844,6 +16194,8 @@ scroll position. `disabled: boolean = false` (reflected) disables every vote but
|
|
|
15844
16194
|
output), and `prompt` (optional shared-input header above both panes).
|
|
15845
16195
|
|
|
15846
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.
|
|
15847
16199
|
|
|
15848
16200
|
**CSS parts:** `base` (the outer wrapper), `prompt` (the optional prompt header, hidden when the
|
|
15849
16201
|
`prompt` slot is empty), `panes` (the row, or under 640px column, wrapping both panes), `pane-a`,
|
|
@@ -15852,7 +16204,11 @@ output), and `prompt` (optional shared-input header above both panes).
|
|
|
15852
16204
|
internal vote-announcement live region).
|
|
15853
16205
|
|
|
15854
16206
|
**Themeable custom properties:** `--lr-compare-panel-max-height` (default `var(--lr-size-24rem)`) —
|
|
15855
|
-
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.
|
|
15856
16212
|
|
|
15857
16213
|
## `lr-span-waterfall`
|
|
15858
16214
|
|
|
@@ -15881,10 +16237,22 @@ Space).
|
|
|
15881
16237
|
bar), `meta` (secondary row info, shown inline under 480px), `status-text`, `duration`, `empty` (shown
|
|
15882
16238
|
when `spans` is empty), and `live-region`.
|
|
15883
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
|
+
|
|
15884
16244
|
**Themeable custom properties:** `--lr-span-waterfall-name-width` (default `8rem`),
|
|
15885
16245
|
`--lr-span-waterfall-stripe-speed` (a `running` span's striped-bar animation duration; defaults to
|
|
15886
16246
|
`--lr-transition-ambient`), and `--lr-span-waterfall-row-active-bg` (default
|
|
15887
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.
|
|
15888
16256
|
|
|
15889
16257
|
That last one follows the convention every **state-scoped** custom property in this family uses, and
|
|
15890
16258
|
it is worth reading once: it is an inline `var()` fallback at its point of use and is deliberately
|
|
@@ -15938,7 +16306,12 @@ label/summary/toggle while `compact`, one step tighter than the header's uncompa
|
|
|
15938
16306
|
`--lr-space-xs`, so `compact` tightens the header's *interior* spacing and not just its padding;
|
|
15939
16307
|
`--lr-task-list-compact-gap` (default `var(--lr-space-2xs)`) — gap between `[part="body"]`'s item
|
|
15940
16308
|
rows while `compact`; `--lr-task-list-compact-body-padding` (default `var(--lr-space-2xs)
|
|
15941
|
-
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.
|
|
15942
16315
|
|
|
15943
16316
|
## `lr-terminal`
|
|
15944
16317
|
|
|
@@ -15965,7 +16338,10 @@ line-granular (a match identifies a whole line, not a character range) and cappe
|
|
|
15965
16338
|
stops climbing on a pathologically repetitive buffer. `getPlainText()` returns the SGR-stripped
|
|
15966
16339
|
plain text of the whole buffer.
|
|
15967
16340
|
|
|
15968
|
-
**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),
|
|
15969
16345
|
`lr-follow-change` (`detail: { following }`), `lr-search-change` (`detail: { query, matchCount,
|
|
15970
16346
|
activeIndex }`), `lr-highlight-activate` (`detail: { id }`), and `lr-text-select` (`detail: {
|
|
15971
16347
|
text, anchor, rects }`).
|
|
@@ -15996,6 +16372,15 @@ beat it without `!important`.
|
|
|
15996
16372
|
- `--lr-terminal-search-outline-color` — Outline color for a line containing a non-active search match. Default: `var(--lr-color-warning)`.
|
|
15997
16373
|
- `--lr-terminal-search-active-outline-color` — Outline color for the active search match's line. Default: `var(--lr-color-brand)`.
|
|
15998
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
|
+
|
|
15999
16384
|
## `lr-trace-tree`
|
|
16000
16385
|
|
|
16001
16386
|
A collapsible span hierarchy for one agent/LLM trace (Langfuse/LangSmith run-tree style): kind icon,
|
|
@@ -16009,6 +16394,9 @@ as a root rather than being dropped. `activeSpanId: string | null = null`
|
|
|
16009
16394
|
(attribute `active-span-id`), `label: string = ''`, `showTokens: boolean = false` (attribute
|
|
16010
16395
|
`show-tokens`) — surfaces `tokensIn`/`tokensOut`, `showCost: boolean = false` (attribute
|
|
16011
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.
|
|
16012
16400
|
|
|
16013
16401
|
**Methods:** `expandAll()` and `collapseAll()` set every row's expanded state at once.
|
|
16014
16402
|
|
|
@@ -16148,16 +16536,30 @@ name: string; tests: TestCaseResult[] }` and `TestCaseResult { id: string; name:
|
|
|
16148
16536
|
TestStatus; durationMs?: number; message?: string }`, with `TestStatus = 'passed' | 'failed' |
|
|
16149
16537
|
'skipped' | 'running'` (all three exported here). `statusFilter: TestStatus[] =
|
|
16150
16538
|
[]` (attribute: false) — empty shows every status; and `autoExpandFailures: boolean = true`
|
|
16151
|
-
(attribute `auto-expand-failures`).
|
|
16152
|
-
|
|
16153
|
-
|
|
16154
|
-
|
|
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.
|
|
16155
16552
|
|
|
16156
16553
|
**Events:** `lr-test-select` (`detail: { suiteId: string; testId: string }`, a test row's name was
|
|
16157
16554
|
activated), `lr-filter-change` (`detail: { statuses: TestStatus[] }` — the complete next filter set; the
|
|
16158
16555
|
component updates its own `statusFilter` first, then emits),
|
|
16159
|
-
and `lr-toggle` (`detail: { id: string; expanded: boolean }`, a row's failure
|
|
16160
|
-
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.
|
|
16161
16563
|
|
|
16162
16564
|
**CSS parts:** `base`, `summary` (the status-count strip), `count` (carries `data-status`), `filter`,
|
|
16163
16565
|
`filter-toggle` (carries `data-status`/`aria-pressed`), `suite`, `suite-header`, `test` (carries
|
|
@@ -16173,7 +16575,11 @@ filter toggle. All three follow the state-scoped-property convention described u
|
|
|
16173
16575
|
the element or on any ancestor. They exist because
|
|
16174
16576
|
`::part(filter-toggle)[aria-pressed='true']` is invalid CSS — Shadow Parts forbids an attribute
|
|
16175
16577
|
selector after `::part()` — so restyling the pressed state otherwise meant overriding the
|
|
16176
|
-
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)`).
|
|
16177
16583
|
|
|
16178
16584
|
## `lr-confirm-bar`
|
|
16179
16585
|
|
|
@@ -16584,6 +16990,8 @@ Rubric scoring and human-review surface for comparing the runs of one evaluation
|
|
|
16584
16990
|
|
|
16585
16991
|
Composes `lr-table` (the comparison table), `lr-rubric-form` (the review surface), and
|
|
16586
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.
|
|
16587
16995
|
|
|
16588
16996
|
**Properties:**
|
|
16589
16997
|
- `runs: EvalRunResult[] = []` (attribute: false) — `EvalRunResult { id: string; label: string;
|
|
@@ -16717,12 +17125,17 @@ primitives, with retry counts and sensitive-field redaction.
|
|
|
16717
17125
|
unknown }`, extending the shared detail from `@aceshooting/lyra-ui/ai`). `args` is present only when
|
|
16718
17126
|
`approved` is `true`, and may differ from what the entry originally proposed — the dialog's inline
|
|
16719
17127
|
edit step can hand back different arguments. A listener that only needs `{ invocationId, approved }`
|
|
16720
|
-
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.
|
|
16721
17132
|
|
|
16722
17133
|
**CSS parts:** `base`,
|
|
16723
17134
|
`entry`, `entry-marker`, `entry-header`, `entry-timestamp`, `entry-body`, `entry-details`,
|
|
16724
17135
|
`entry-result`, `entry-error`, `entry-retries`, `entry-retries-count`, `entry-retries-label`,
|
|
16725
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.
|
|
16726
17139
|
|
|
16727
17140
|
**Themeable custom properties:** `--lr-tool-timeline-gap` (default `var(--lr-space-l)`) — vertical
|
|
16728
17141
|
gap between entries; `--lr-tool-timeline-marker-size` (default `var(--lr-size-0-625rem)`) — the
|
|
@@ -16779,6 +17192,8 @@ It never executes tools or persists decisions.
|
|
|
16779
17192
|
|
|
16780
17193
|
**Events:** `lr-approval-select` (`{ invocationId }`), `lr-approval-decision` (`{ invocationId,
|
|
16781
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.
|
|
16782
17197
|
|
|
16783
17198
|
**CSS parts:** `base`, `heading-row`, `heading`, `count`, `list`, `request`, `request-info`,
|
|
16784
17199
|
`tool-name`, `request-id`, `status`, `empty`. The `[part='request']` row matching `selectedId`
|
|
@@ -16823,6 +17238,12 @@ request. Both are no-ops before a frame exists.
|
|
|
16823
17238
|
(`{ level, value }`), and `lr-mcp-resize` (`{ height }`). These are host-authorized requests; the
|
|
16824
17239
|
component does not execute tools, send messages, or navigate itself.
|
|
16825
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
|
+
|
|
16826
17247
|
**CSS parts:** `base`, `frame`, `loading`, `error`.
|
|
16827
17248
|
|
|
16828
17249
|
**Slots:** none. **Optional peer deps:** none.
|
|
@@ -16858,6 +17279,10 @@ PromptStudioMessage[]; variables?: PromptStudioVariable[]; createdAt?: string }`
|
|
|
16858
17279
|
`message-content`, `remove-message`, `add-message`, `variables`, `variable`, `versions`, `version`,
|
|
16859
17280
|
`preview`, `save`, `run`.
|
|
16860
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
|
+
|
|
16861
17286
|
**Slots:** none. **Optional peer deps:** none.
|
|
16862
17287
|
|
|
16863
17288
|
```ts
|
|
@@ -16890,7 +17315,9 @@ keywords. `SchemaValidationIssue = { path: string; message: string; severity?: '
|
|
|
16890
17315
|
**Events:** `lr-schema-select` (`{ path, schema }`, with an RFC 6901-style JSON Pointer).
|
|
16891
17316
|
|
|
16892
17317
|
**CSS parts:** `base`, `tree`, `node`, `node-selected`, `node-trigger`, `name`, `type`, `required`,
|
|
16893
|
-
`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.
|
|
16894
17321
|
|
|
16895
17322
|
`[part='issue']` carries `data-severity` and each severity has its own styling: `error` reads the
|
|
16896
17323
|
danger tokens, `warning` the warning tokens, and `info` its own pair —
|
|
@@ -16904,8 +17331,10 @@ invalid CSS, so this is the only way to recolor one severity without touching th
|
|
|
16904
17331
|
**Themeable custom properties:** `--lr-schema-viewer-info-border`, `--lr-schema-viewer-info-bg` (see
|
|
16905
17332
|
above); otherwise shared tokens only.
|
|
16906
17333
|
|
|
16907
|
-
Rendering is capped at 500 schema nodes; `limit`
|
|
16908
|
-
|
|
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.
|
|
16909
17338
|
|
|
16910
17339
|
```ts
|
|
16911
17340
|
import '@aceshooting/lyra-ui/components/agent-tools/schema-viewer/schema-viewer.js';
|
|
@@ -16914,6 +17343,7 @@ import '@aceshooting/lyra-ui/components/agent-tools/schema-viewer/schema-viewer.
|
|
|
16914
17343
|
**Additional API surface:**
|
|
16915
17344
|
|
|
16916
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.
|
|
16917
17347
|
- `--lr-schema-viewer-selected-border` — Selected node branch. Default: `var(--lr-color-brand)`.
|
|
16918
17348
|
- `--lr-schema-viewer-error-border` — Error issue border. Default: `var(--lr-color-danger)`.
|
|
16919
17349
|
- `--lr-schema-viewer-error-bg` — Error issue background. Default: `var(--lr-color-danger-quiet)`.
|
|
@@ -16938,7 +17368,10 @@ Record<string, unknown> }`.
|
|
|
16938
17368
|
`task`, `model`, `progress`, `actions`, `cancel`, `retry`, `limit`, `empty`.
|
|
16939
17369
|
|
|
16940
17370
|
At most 500 runs render, and visual indentation is capped at 12 levels while ARIA hierarchy keeps
|
|
16941
|
-
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.
|
|
16942
17375
|
|
|
16943
17376
|
```ts
|
|
16944
17377
|
import '@aceshooting/lyra-ui/components/agent-tools/subagent-panel/subagent-panel.js';
|
|
@@ -16980,8 +17413,9 @@ A force-directed node-link diagram with pan/zoom/drag, built on `d3-force`.
|
|
|
16980
17413
|
boolean; color?: string; dash?: number[] }` (source/target are node ids). `directed` adds an
|
|
16981
17414
|
arrowhead; `color` and `dash` style the individual stroke; `label` provides a spoken-name and SVG
|
|
16982
17415
|
tooltip fallback but is not rendered as visible edge text; `accessibleLabel` and `description`
|
|
16983
|
-
can override the spoken name and tooltip independently.
|
|
16984
|
-
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
|
|
16985
17419
|
(there's no position to draw a stub from). A link whose `target` id doesn't resolve instead renders
|
|
16986
17420
|
as a short, dashed, non-interactive stub off `source`'s own position
|
|
16987
17421
|
(`[part='link'][data-dangling]`, `aria-hidden="true"`) rather than being silently dropped — e.g. for
|
|
@@ -17024,7 +17458,9 @@ A force-directed node-link diagram with pan/zoom/drag, built on `d3-force`.
|
|
|
17024
17458
|
`::part(node)`/`::part(link)` styling (pixels, not elements — theme via cssprops instead), no
|
|
17025
17459
|
native SVG `<title>` tooltip (replaced by `part="tooltip"`), and a drawn focus ring instead of a
|
|
17026
17460
|
CSS one. Keyboard roving/announcements are preserved through an offscreen `part="cursor-item"`
|
|
17027
|
-
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.
|
|
17028
17464
|
|
|
17029
17465
|
**Methods:** `focusNode(id, options?: { zoom? })` and `fit(options?: { padding?: number })` control the
|
|
17030
17466
|
camera; `getNodePosition(id)` returns the current `{ x, y }` in graph-local drawing coordinates, or
|
|
@@ -17037,7 +17473,9 @@ id? }`; the optional `id` is the stable `GraphLink.id` supplied by the caller),
|
|
|
17037
17473
|
`lr-link-enter`/`lr-link-leave` (`detail: { source, target, id? }`, same hover contract),
|
|
17038
17474
|
`lr-node-expand` (`detail: { id }`, a node was double-activated — native `dblclick`, or two
|
|
17039
17475
|
Enter/Space activations within 500ms — regardless of `GraphNode.expandable`), `lr-community-click`
|
|
17040
|
-
(`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)
|
|
17041
17479
|
|
|
17042
17480
|
**Slots:** none.
|
|
17043
17481
|
|
|
@@ -17073,8 +17511,10 @@ Under `renderer="canvas"` these five are read from computed style at paint time
|
|
|
17073
17511
|
per-node elements to inherit them), so they must be set on or above the `<lr-graph>` host itself.
|
|
17074
17512
|
|
|
17075
17513
|
**Optional peer deps:** `d3-force`, `d3-drag`, `d3-zoom`, `d3-selection` (all four required
|
|
17076
|
-
together; lazy-`import()`ed once per page
|
|
17077
|
-
|
|
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`.
|
|
17078
17518
|
|
|
17079
17519
|
```html
|
|
17080
17520
|
<lr-graph style="display:block;height:500px"></lr-graph>
|
|
@@ -17116,12 +17556,11 @@ install with `pnpm add d3-force d3-drag d3-zoom d3-selection`).
|
|
|
17116
17556
|
`<lr-skeleton>` sized to `width`/`height` with `aria-busy="true"`. If they fail to load (for
|
|
17117
17557
|
example, because they are not installed), the graph fails closed with a localized
|
|
17118
17558
|
`part="error"` / `role="alert"` message instead of leaving an empty SVG.
|
|
17119
|
-
- `GraphNode.color
|
|
17120
|
-
|
|
17121
|
-
|
|
17122
|
-
-
|
|
17123
|
-
|
|
17124
|
-
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.
|
|
17125
17564
|
- a structural `nodes`/`links` change now carries over each already-settled node's position (and any
|
|
17126
17565
|
in-progress drag) by id when rebuilding the simulation, instead of discarding every node's (x, y)
|
|
17127
17566
|
and re-running the whole ~300-tick random-start settle from scratch — only genuinely new ids get a
|
|
@@ -17130,6 +17569,8 @@ install with `pnpm add d3-force d3-drag d3-zoom d3-selection`).
|
|
|
17130
17569
|
- under `prefers-reduced-motion: reduce`, or whenever `seed` is set, the simulation converges
|
|
17131
17570
|
synchronously (ticked in a loop down to `alphaMin` before first paint) instead of animating over
|
|
17132
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.
|
|
17133
17574
|
- the `<svg part="svg">` now carries `role="group"` and an `aria-label` summarizing the node/link
|
|
17134
17575
|
counts (e.g. "Node-link diagram with 5 nodes and 4 links"), and node `<text part="label">`s are
|
|
17135
17576
|
`aria-hidden="true"` (their content is already covered by each node's own `aria-label`).
|
|
@@ -17237,7 +17678,8 @@ same event-decoupled contract every sibling in this family follows.
|
|
|
17237
17678
|
**Properties:**
|
|
17238
17679
|
- `types: LyraGraphLegendType[] = []` (attribute: false) — `{ id: string; label: string; color?:
|
|
17239
17680
|
string; shape?: 'circle' | 'square' | 'diamond' }`, the exact `lr-graph.nodeTypes` entry shape
|
|
17240
|
-
(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
|
|
17241
17683
|
- `counts?: Record<string, number>` (attribute: false) — optional per-type count shown alongside the
|
|
17242
17684
|
label
|
|
17243
17685
|
- `hiddenTypes: string[] = []` (attribute: false) — controlled; the host assigns this back from
|
|
@@ -17257,7 +17699,8 @@ after each toggle).
|
|
|
17257
17699
|
**Themeable custom properties:** `--lr-graph-legend-hidden-color` (default
|
|
17258
17700
|
`var(--lr-color-text-quiet)`) — text color of a filtered-out (hidden) row's `label`/`count`,
|
|
17259
17701
|
independent of the shared quiet-text token so a host can retint "hidden" rows without repainting
|
|
17260
|
-
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`
|
|
17261
17704
|
(the same computed-style fallback palette `lr-graph`/`lr-word-cloud` use) plus shared tokens.
|
|
17262
17705
|
|
|
17263
17706
|
**Optional peer deps:** none.
|
|
@@ -17625,7 +18068,8 @@ stance `lr-tool-select-dialog` already takes.
|
|
|
17625
18068
|
- `sources: LyraSourceEntry[] = []` (attribute: false) — `LyraSourceEntry { id: string; label:
|
|
17626
18069
|
string; mimeType?: string; name?: string; children?: LyraSourceEntry[] }`; flat (no `children`) or
|
|
17627
18070
|
a tree — presence of `children` makes a row a group/folder with tri-state select
|
|
17628
|
-
- `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
|
|
17629
18073
|
`lr-sources-change`
|
|
17630
18074
|
- `showSelectAll: boolean = true` (attribute `show-select-all`)
|
|
17631
18075
|
- `searchable: boolean = true`
|
|
@@ -17641,7 +18085,8 @@ fired after every toggle including select-all).
|
|
|
17641
18085
|
|
|
17642
18086
|
**CSS parts:** `base`, `search` (the built-in filter `lr-input`, only when `searchable`),
|
|
17643
18087
|
`select-all` (only when `showSelectAll`), `summary` ("{selected} of {total} selected"), `tree`
|
|
17644
|
-
(`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),
|
|
17645
18090
|
`checkbox` (tri-state glyph), `icon` (the `lr-file-icon` type badge), `label`, `empty` (`noData`
|
|
17646
18091
|
when `sources` is empty, `noMatches` when a filter empties the tree).
|
|
17647
18092
|
|
|
@@ -17797,8 +18242,9 @@ anything about `<lr-source-card>`, it only carries the id through its event deta
|
|
|
17797
18242
|
echoed back verbatim in both events; never read or validated by this component.
|
|
17798
18243
|
- `href: string = ''` — optional direct link target for the citation's source, carried into
|
|
17799
18244
|
`lr-citation-open`'s detail as-is; this component never navigates.
|
|
17800
|
-
- `label: string = ''` —
|
|
17801
|
-
|
|
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.
|
|
17802
18248
|
|
|
17803
18249
|
**Events:**
|
|
17804
18250
|
- `lr-citation-activate` (`detail: { sourceId: string; index: number }`) — fires on click, or on
|
|
@@ -17901,7 +18347,8 @@ handy for building a `label-plural` string reactively, e.g. `` list.labelPlural
|
|
|
17901
18347
|
collapsing the list.
|
|
17902
18348
|
|
|
17903
18349
|
**Slots:** default — `<lr-source-card>` elements (or any content, though the card pairing is the
|
|
17904
|
-
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.
|
|
17905
18352
|
|
|
17906
18353
|
**CSS parts:** `base` (outer container), `header` (the clickable `<button>` toggling `expanded`),
|
|
17907
18354
|
`toggle` (the chevron indicator inside the header), `list` (wrapper around the default slot, `hidden`
|
|
@@ -18099,7 +18546,8 @@ and `lr-citation-badge` for each evidence entry.
|
|
|
18099
18546
|
`@aceshooting/lyra-ui/ai` = `{ citation: Citation }`) — emitted when an evidence badge is activated.
|
|
18100
18547
|
The inner `lr-citation-badge`'s own `lr-citation-activate` (`detail: { sourceId, index }`) still
|
|
18101
18548
|
bubbles through unmodified; this richer event exists because a bare `sourceId`/`index` pair can't
|
|
18102
|
-
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.
|
|
18103
18551
|
|
|
18104
18552
|
**Slots:** none.
|
|
18105
18553
|
|
|
@@ -18142,7 +18590,8 @@ embedding counts, retry attempts, errors, and retry/cancel requests. Never inges
|
|
|
18142
18590
|
**Events:**
|
|
18143
18591
|
- `lr-retry` (`detail: IngestionRetryEventDetail` = `RetryEventDetail & { itemId: string }` =
|
|
18144
18592
|
`{ attempt: number; messageId?: string; itemId: string }`) — `attempt` is the attempt about to be
|
|
18145
|
-
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.
|
|
18146
18595
|
- `lr-cancel` (`detail: IngestionCancelEventDetail` = `CancelEventDetail & { itemId: string }` =
|
|
18147
18596
|
`{ reason?: string; itemId: string }`) — this component never supplies `reason` itself. Only
|
|
18148
18597
|
offered on non-terminal rows (`'queued'` plus the five active stages).
|
|
@@ -18253,7 +18702,8 @@ overlay. Composes `lr-graph`, `lr-graph-legend`, `lr-entity-card`, `lr-neighbor-
|
|
|
18253
18702
|
(self-managed but presettable/observable — this component toggles its own copy on interaction, the
|
|
18254
18703
|
same self-toggle-then-emit contract `lr-graph-legend` uses, so every feature works with zero host wiring)
|
|
18255
18704
|
- `hiddenTypes: string[] = []` (attribute: false) — forwarded to both `lr-graph.hiddenTypes` and
|
|
18256
|
-
`lr-graph-legend.hiddenTypes
|
|
18705
|
+
`lr-graph-legend.hiddenTypes`; hidden nodes are also excluded from explorer search results,
|
|
18706
|
+
neighbor rows, and activation
|
|
18257
18707
|
- `selectedNodeId: string | null = null` (attribute `selected-node-id`) — drives the details popover
|
|
18258
18708
|
and `lr-graph.selectedNodeIds`; `null` shows no selection and keeps the popover closed
|
|
18259
18709
|
- `pinnedNodeIds: string[] = []` (attribute: false) — exactly two pinned nodes reveals the "Find
|
|
@@ -18537,6 +18987,8 @@ is non-empty and not `loading`), `empty` (only when `empty` and neither `loading
|
|
|
18537
18987
|
- Submitting while `loading` is already true **supersedes** the in-flight request: `lr-cancel` fires
|
|
18538
18988
|
immediately before the new `lr-search`. Clicking the submit button (rather than pressing Enter)
|
|
18539
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.
|
|
18540
18992
|
|
|
18541
18993
|
---
|
|
18542
18994
|
|
|
@@ -18624,7 +19076,8 @@ the component only normalizes them into SVG, colors optional clusters, and emits
|
|
|
18624
19076
|
**Properties:** `points: EmbeddingPoint[] = []` (attribute: false), where each point is `{ id, x,
|
|
18625
19077
|
y, label?, sourceId?, cluster? }`; `selectedId: string = ''`; `height: string = '360px'`;
|
|
18626
19078
|
`accessibleLabel: string | null = null` (attribute `aria-label`). Non-finite coordinates are
|
|
18627
|
-
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.
|
|
18628
19081
|
|
|
18629
19082
|
**Events:** `lr-point-select` (`{ point }`), activated by click or Enter/Space.
|
|
18630
19083
|
|
|
@@ -18641,7 +19094,9 @@ permissions, and connector settings go in the `settings` slot.
|
|
|
18641
19094
|
|
|
18642
19095
|
**Properties:** `sources: KnowledgeSource[] = []` (attribute: false); `ingestionItems:
|
|
18643
19096
|
IngestionQueueItem[] = []` (attribute: false); `activeTab: 'sources' | 'ingestion' = 'sources'`;
|
|
18644
|
-
`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.
|
|
18645
19100
|
|
|
18646
19101
|
**Events:** `lr-tab-change` (`{ tab }`), `lr-source-create`, `lr-source-sync`, `lr-source-pause`,
|
|
18647
19102
|
`lr-source-delete`, `lr-ingestion-retry`, and `lr-ingestion-cancel` (the latter four preserve the
|