@aceshooting/lyra-ui 6.1.0 → 7.0.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 +206 -0
- package/README.md +38 -5
- package/custom-elements.json +96590 -65700
- package/dist/ai/adapters/a2ui.d.ts +26 -0
- package/dist/ai/adapters/a2ui.d.ts.map +1 -0
- package/dist/ai/adapters/a2ui.js +46 -0
- package/dist/ai/adapters/a2ui.js.map +1 -0
- package/dist/ai/adapters/ag-ui.d.ts +28 -0
- package/dist/ai/adapters/ag-ui.d.ts.map +1 -0
- package/dist/ai/adapters/ag-ui.js +174 -0
- package/dist/ai/adapters/ag-ui.js.map +1 -0
- package/dist/ai/adapters/ai-sdk.d.ts +10 -0
- package/dist/ai/adapters/ai-sdk.d.ts.map +1 -0
- package/dist/ai/adapters/ai-sdk.js +128 -0
- package/dist/ai/adapters/ai-sdk.js.map +1 -0
- package/dist/ai/adapters/index.d.ts +4 -0
- package/dist/ai/adapters/index.d.ts.map +1 -0
- package/dist/ai/adapters/index.js +4 -0
- package/dist/ai/adapters/index.js.map +1 -0
- package/dist/ai/index.d.ts +2 -0
- package/dist/ai/index.d.ts.map +1 -1
- package/dist/ai/index.js +2 -0
- package/dist/ai/index.js.map +1 -1
- package/dist/ai/runtime.d.ts +77 -0
- package/dist/ai/runtime.d.ts.map +1 -0
- package/dist/ai/runtime.js +226 -0
- package/dist/ai/runtime.js.map +1 -0
- package/dist/ai/types.contract.js +26 -0
- package/dist/ai/types.contract.js.map +1 -1
- package/dist/ai/types.d.ts +100 -1
- package/dist/ai/types.d.ts.map +1 -1
- package/dist/components/agent-tools/activity-feed/activity-feed.class.d.ts +0 -2
- 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 +1 -19
- package/dist/components/agent-tools/activity-feed/activity-feed.class.js.map +1 -1
- package/dist/components/agent-tools/activity-feed/activity-feed.d.ts +2 -0
- package/dist/components/agent-tools/activity-feed/activity-feed.d.ts.map +1 -1
- package/dist/components/agent-tools/activity-feed/activity-feed.js +2 -0
- package/dist/components/agent-tools/activity-feed/activity-feed.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 +2 -0
- package/dist/components/agent-tools/activity-feed/activity-feed.styles.js.map +1 -1
- package/dist/components/agent-tools/agent-eval-dashboard/agent-eval-dashboard.class.d.ts +68 -0
- package/dist/components/agent-tools/agent-eval-dashboard/agent-eval-dashboard.class.d.ts.map +1 -0
- package/dist/components/agent-tools/agent-eval-dashboard/agent-eval-dashboard.class.js +139 -0
- package/dist/components/agent-tools/agent-eval-dashboard/agent-eval-dashboard.class.js.map +1 -0
- package/dist/components/agent-tools/agent-eval-dashboard/agent-eval-dashboard.d.ts +5 -0
- package/dist/components/agent-tools/agent-eval-dashboard/agent-eval-dashboard.d.ts.map +1 -0
- package/dist/components/agent-tools/agent-eval-dashboard/agent-eval-dashboard.js +8 -0
- package/dist/components/agent-tools/agent-eval-dashboard/agent-eval-dashboard.js.map +1 -0
- package/dist/components/agent-tools/agent-eval-dashboard/agent-eval-dashboard.styles.d.ts +2 -0
- package/dist/components/agent-tools/agent-eval-dashboard/agent-eval-dashboard.styles.d.ts.map +1 -0
- package/dist/components/agent-tools/agent-eval-dashboard/agent-eval-dashboard.styles.js +34 -0
- package/dist/components/agent-tools/agent-eval-dashboard/agent-eval-dashboard.styles.js.map +1 -0
- package/dist/components/agent-tools/agent-run/agent-run.class.d.ts +4 -7
- package/dist/components/agent-tools/agent-run/agent-run.class.d.ts.map +1 -1
- package/dist/components/agent-tools/agent-run/agent-run.class.js +24 -39
- package/dist/components/agent-tools/agent-run/agent-run.class.js.map +1 -1
- package/dist/components/agent-tools/agent-run/agent-run.d.ts +6 -0
- package/dist/components/agent-tools/agent-run/agent-run.d.ts.map +1 -1
- package/dist/components/agent-tools/agent-run/agent-run.js +6 -0
- package/dist/components/agent-tools/agent-run/agent-run.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 +13 -4
- 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 +0 -3
- package/dist/components/agent-tools/agent-trace/agent-trace.class.d.ts.map +1 -1
- package/dist/components/agent-tools/agent-trace/agent-trace.class.js +1 -9
- package/dist/components/agent-tools/agent-trace/agent-trace.class.js.map +1 -1
- package/dist/components/agent-tools/agent-trace/agent-trace.d.ts.map +1 -1
- package/dist/components/agent-tools/agent-trace/agent-trace.js +2 -2
- package/dist/components/agent-tools/agent-trace/agent-trace.js.map +1 -1
- package/dist/components/agent-tools/agent-trace/agent-trace.styles.d.ts.map +1 -1
- package/dist/components/agent-tools/agent-trace/agent-trace.styles.js +2 -0
- package/dist/components/agent-tools/agent-trace/agent-trace.styles.js.map +1 -1
- package/dist/components/agent-tools/approval-queue/approval-queue.class.d.ts +76 -0
- package/dist/components/agent-tools/approval-queue/approval-queue.class.d.ts.map +1 -0
- package/dist/components/agent-tools/approval-queue/approval-queue.class.js +149 -0
- package/dist/components/agent-tools/approval-queue/approval-queue.class.js.map +1 -0
- package/dist/components/agent-tools/approval-queue/approval-queue.d.ts +4 -0
- package/dist/components/agent-tools/approval-queue/approval-queue.d.ts.map +1 -0
- package/dist/components/agent-tools/approval-queue/approval-queue.js +7 -0
- package/dist/components/agent-tools/approval-queue/approval-queue.js.map +1 -0
- package/dist/components/agent-tools/approval-queue/approval-queue.styles.d.ts +2 -0
- package/dist/components/agent-tools/approval-queue/approval-queue.styles.d.ts.map +1 -0
- package/dist/components/agent-tools/approval-queue/approval-queue.styles.js +96 -0
- package/dist/components/agent-tools/approval-queue/approval-queue.styles.js.map +1 -0
- package/dist/components/agent-tools/artifact-panel/artifact-panel.class.d.ts +1 -2
- package/dist/components/agent-tools/artifact-panel/artifact-panel.class.d.ts.map +1 -1
- package/dist/components/agent-tools/artifact-panel/artifact-panel.class.js +3 -6
- package/dist/components/agent-tools/artifact-panel/artifact-panel.class.js.map +1 -1
- package/dist/components/agent-tools/artifact-panel/artifact-panel.d.ts +1 -0
- package/dist/components/agent-tools/artifact-panel/artifact-panel.d.ts.map +1 -1
- package/dist/components/agent-tools/artifact-panel/artifact-panel.js +1 -0
- package/dist/components/agent-tools/artifact-panel/artifact-panel.js.map +1 -1
- package/dist/components/agent-tools/browser-frame/browser-frame.class.d.ts +16 -0
- 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 +12 -14
- package/dist/components/agent-tools/browser-frame/browser-frame.class.js.map +1 -1
- package/dist/components/agent-tools/browser-frame/browser-frame.styles.d.ts.map +1 -1
- package/dist/components/agent-tools/browser-frame/browser-frame.styles.js +17 -6
- package/dist/components/agent-tools/browser-frame/browser-frame.styles.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 +1 -15
- package/dist/components/agent-tools/commit-card/commit-card.class.js.map +1 -1
- package/dist/components/agent-tools/compare-panel/compare-panel.class.d.ts +1 -2
- 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 -4
- package/dist/components/agent-tools/compare-panel/compare-panel.class.js.map +1 -1
- package/dist/components/agent-tools/compare-panel/compare-panel.d.ts.map +1 -1
- package/dist/components/agent-tools/compare-panel/compare-panel.js +1 -1
- package/dist/components/agent-tools/compare-panel/compare-panel.js.map +1 -1
- package/dist/components/agent-tools/confirm-bar/confirm-bar.class.d.ts.map +1 -1
- package/dist/components/agent-tools/confirm-bar/confirm-bar.class.js +15 -5
- package/dist/components/agent-tools/confirm-bar/confirm-bar.class.js.map +1 -1
- package/dist/components/agent-tools/confirm-bar/confirm-bar.styles.js +3 -3
- package/dist/components/agent-tools/context-inspector/context-inspector.class.d.ts +1 -0
- package/dist/components/agent-tools/context-inspector/context-inspector.class.d.ts.map +1 -1
- package/dist/components/agent-tools/context-inspector/context-inspector.class.js +4 -1
- package/dist/components/agent-tools/context-inspector/context-inspector.class.js.map +1 -1
- package/dist/components/agent-tools/eval-dataset/eval-dataset.class.d.ts +0 -5
- 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 +23 -8
- package/dist/components/agent-tools/eval-dataset/eval-dataset.class.js.map +1 -1
- package/dist/components/agent-tools/eval-dataset/eval-dataset.d.ts.map +1 -1
- package/dist/components/agent-tools/eval-dataset/eval-dataset.js +2 -2
- package/dist/components/agent-tools/eval-dataset/eval-dataset.js.map +1 -1
- package/dist/components/agent-tools/eval-dataset/eval-dataset.styles.d.ts.map +1 -1
- package/dist/components/agent-tools/eval-dataset/eval-dataset.styles.js +7 -0
- package/dist/components/agent-tools/eval-dataset/eval-dataset.styles.js.map +1 -1
- package/dist/components/agent-tools/eval-result/eval-result.class.d.ts.map +1 -1
- package/dist/components/agent-tools/eval-result/eval-result.class.js +20 -5
- package/dist/components/agent-tools/eval-result/eval-result.class.js.map +1 -1
- package/dist/components/agent-tools/eval-result/eval-result.styles.d.ts.map +1 -1
- package/dist/components/agent-tools/eval-result/eval-result.styles.js +7 -0
- package/dist/components/agent-tools/eval-result/eval-result.styles.js.map +1 -1
- package/dist/components/agent-tools/evaluation-run/evaluation-run.class.d.ts +0 -9
- 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 +21 -21
- package/dist/components/agent-tools/evaluation-run/evaluation-run.class.js.map +1 -1
- package/dist/components/agent-tools/evaluation-run/evaluation-run.d.ts +9 -0
- package/dist/components/agent-tools/evaluation-run/evaluation-run.d.ts.map +1 -1
- package/dist/components/agent-tools/evaluation-run/evaluation-run.js +9 -0
- package/dist/components/agent-tools/evaluation-run/evaluation-run.js.map +1 -1
- package/dist/components/agent-tools/evaluation-run/evaluation-run.styles.d.ts.map +1 -1
- package/dist/components/agent-tools/evaluation-run/evaluation-run.styles.js +6 -2
- package/dist/components/agent-tools/evaluation-run/evaluation-run.styles.js.map +1 -1
- package/dist/components/agent-tools/index.d.ts +36 -0
- package/dist/components/agent-tools/index.d.ts.map +1 -0
- package/dist/components/agent-tools/index.js +36 -0
- package/dist/components/agent-tools/index.js.map +1 -0
- package/dist/components/agent-tools/mcp-app/mcp-app.class.d.ts +93 -0
- package/dist/components/agent-tools/mcp-app/mcp-app.class.d.ts.map +1 -0
- package/dist/components/agent-tools/mcp-app/mcp-app.class.js +238 -0
- package/dist/components/agent-tools/mcp-app/mcp-app.class.js.map +1 -0
- package/dist/components/agent-tools/mcp-app/mcp-app.d.ts +2 -0
- package/dist/components/agent-tools/mcp-app/mcp-app.d.ts.map +1 -0
- package/dist/components/agent-tools/mcp-app/mcp-app.js +5 -0
- package/dist/components/agent-tools/mcp-app/mcp-app.js.map +1 -0
- package/dist/components/agent-tools/mcp-app/mcp-app.styles.d.ts +2 -0
- package/dist/components/agent-tools/mcp-app/mcp-app.styles.d.ts.map +1 -0
- package/dist/components/agent-tools/mcp-app/mcp-app.styles.js +45 -0
- package/dist/components/agent-tools/mcp-app/mcp-app.styles.js.map +1 -0
- package/dist/components/agent-tools/policy-summary/policy-summary.class.d.ts +4 -7
- 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 +5 -8
- package/dist/components/agent-tools/policy-summary/policy-summary.class.js.map +1 -1
- package/dist/components/agent-tools/policy-summary/policy-summary.styles.d.ts.map +1 -1
- package/dist/components/agent-tools/policy-summary/policy-summary.styles.js +4 -1
- package/dist/components/agent-tools/policy-summary/policy-summary.styles.js.map +1 -1
- package/dist/components/agent-tools/prompt-studio/prompt-studio.class.d.ts +91 -0
- package/dist/components/agent-tools/prompt-studio/prompt-studio.class.d.ts.map +1 -0
- package/dist/components/agent-tools/prompt-studio/prompt-studio.class.js +236 -0
- package/dist/components/agent-tools/prompt-studio/prompt-studio.class.js.map +1 -0
- package/dist/components/agent-tools/prompt-studio/prompt-studio.d.ts +2 -0
- package/dist/components/agent-tools/prompt-studio/prompt-studio.d.ts.map +1 -0
- package/dist/components/agent-tools/prompt-studio/prompt-studio.js +5 -0
- package/dist/components/agent-tools/prompt-studio/prompt-studio.js.map +1 -0
- package/dist/components/agent-tools/prompt-studio/prompt-studio.styles.d.ts +2 -0
- package/dist/components/agent-tools/prompt-studio/prompt-studio.styles.d.ts.map +1 -0
- package/dist/components/agent-tools/prompt-studio/prompt-studio.styles.js +60 -0
- package/dist/components/agent-tools/prompt-studio/prompt-studio.styles.js.map +1 -0
- package/dist/components/agent-tools/result-card/result-card.styles.d.ts.map +1 -1
- package/dist/components/agent-tools/result-card/result-card.styles.js +3 -1
- package/dist/components/agent-tools/result-card/result-card.styles.js.map +1 -1
- package/dist/components/agent-tools/result-card/result-field.class.d.ts.map +1 -1
- package/dist/components/agent-tools/result-card/result-field.class.js +3 -1
- package/dist/components/agent-tools/result-card/result-field.class.js.map +1 -1
- package/dist/components/agent-tools/result-card/result-field.styles.d.ts.map +1 -1
- package/dist/components/agent-tools/result-card/result-field.styles.js +3 -1
- package/dist/components/agent-tools/result-card/result-field.styles.js.map +1 -1
- package/dist/components/agent-tools/schema-viewer/schema-viewer.class.d.ts +77 -0
- package/dist/components/agent-tools/schema-viewer/schema-viewer.class.d.ts.map +1 -0
- package/dist/components/agent-tools/schema-viewer/schema-viewer.class.js +196 -0
- package/dist/components/agent-tools/schema-viewer/schema-viewer.class.js.map +1 -0
- package/dist/components/agent-tools/schema-viewer/schema-viewer.d.ts +4 -0
- package/dist/components/agent-tools/schema-viewer/schema-viewer.d.ts.map +1 -0
- package/dist/components/agent-tools/schema-viewer/schema-viewer.js +7 -0
- package/dist/components/agent-tools/schema-viewer/schema-viewer.js.map +1 -0
- package/dist/components/agent-tools/schema-viewer/schema-viewer.styles.d.ts +2 -0
- package/dist/components/agent-tools/schema-viewer/schema-viewer.styles.d.ts.map +1 -0
- package/dist/components/agent-tools/schema-viewer/schema-viewer.styles.js +32 -0
- package/dist/components/agent-tools/schema-viewer/schema-viewer.styles.js.map +1 -0
- package/dist/components/agent-tools/span-waterfall/span-waterfall.class.d.ts +2 -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 +51 -22
- 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 +1 -0
- package/dist/components/agent-tools/span-waterfall/span-waterfall.styles.js.map +1 -1
- package/dist/components/agent-tools/stack-trace/stack-trace-parse.d.ts.map +1 -1
- package/dist/components/agent-tools/stack-trace/stack-trace-parse.js +10 -1
- package/dist/components/agent-tools/stack-trace/stack-trace-parse.js.map +1 -1
- package/dist/components/agent-tools/stack-trace/stack-trace.class.d.ts +2 -2
- 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 +16 -27
- package/dist/components/agent-tools/stack-trace/stack-trace.class.js.map +1 -1
- package/dist/components/agent-tools/subagent-panel/subagent-panel.class.d.ts +72 -0
- package/dist/components/agent-tools/subagent-panel/subagent-panel.class.d.ts.map +1 -0
- package/dist/components/agent-tools/subagent-panel/subagent-panel.class.js +213 -0
- package/dist/components/agent-tools/subagent-panel/subagent-panel.class.js.map +1 -0
- package/dist/components/agent-tools/subagent-panel/subagent-panel.d.ts +4 -0
- package/dist/components/agent-tools/subagent-panel/subagent-panel.d.ts.map +1 -0
- package/dist/components/agent-tools/subagent-panel/subagent-panel.js +7 -0
- package/dist/components/agent-tools/subagent-panel/subagent-panel.js.map +1 -0
- package/dist/components/agent-tools/subagent-panel/subagent-panel.styles.d.ts +2 -0
- package/dist/components/agent-tools/subagent-panel/subagent-panel.styles.d.ts.map +1 -0
- package/dist/components/agent-tools/subagent-panel/subagent-panel.styles.js +38 -0
- package/dist/components/agent-tools/subagent-panel/subagent-panel.styles.js.map +1 -0
- package/dist/components/agent-tools/task-list/task-list.class.d.ts +11 -2
- 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 +3 -10
- package/dist/components/agent-tools/task-list/task-list.class.js.map +1 -1
- package/dist/components/agent-tools/task-list/task-list.d.ts +1 -0
- package/dist/components/agent-tools/task-list/task-list.d.ts.map +1 -1
- package/dist/components/agent-tools/task-list/task-list.js +1 -0
- package/dist/components/agent-tools/task-list/task-list.js.map +1 -1
- package/dist/components/agent-tools/task-list/task-list.styles.js +1 -1
- package/dist/components/agent-tools/terminal/terminal.class.d.ts +5 -1
- package/dist/components/agent-tools/terminal/terminal.class.d.ts.map +1 -1
- package/dist/components/agent-tools/terminal/terminal.class.js +46 -25
- package/dist/components/agent-tools/terminal/terminal.class.js.map +1 -1
- package/dist/components/agent-tools/terminal/terminal.d.ts +1 -0
- package/dist/components/agent-tools/terminal/terminal.d.ts.map +1 -1
- package/dist/components/agent-tools/terminal/terminal.js +1 -0
- package/dist/components/agent-tools/terminal/terminal.js.map +1 -1
- package/dist/components/agent-tools/terminal/terminal.styles.d.ts.map +1 -1
- package/dist/components/agent-tools/terminal/terminal.styles.js +3 -0
- package/dist/components/agent-tools/terminal/terminal.styles.js.map +1 -1
- package/dist/components/agent-tools/test-results/test-results.class.d.ts +1 -3
- 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 +22 -37
- package/dist/components/agent-tools/test-results/test-results.class.js.map +1 -1
- package/dist/components/agent-tools/test-results/test-results.d.ts +3 -0
- package/dist/components/agent-tools/test-results/test-results.d.ts.map +1 -1
- package/dist/components/agent-tools/test-results/test-results.js +3 -0
- package/dist/components/agent-tools/test-results/test-results.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 +2 -0
- 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.map +1 -1
- package/dist/components/agent-tools/thinking-panel/thinking-panel.class.js +15 -5
- 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.map +1 -1
- package/dist/components/agent-tools/tool-approval-dialog/tool-approval-dialog.class.js +18 -29
- 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.d.ts.map +1 -1
- package/dist/components/agent-tools/tool-approval-dialog/tool-approval-dialog.styles.js +5 -0
- package/dist/components/agent-tools/tool-approval-dialog/tool-approval-dialog.styles.js.map +1 -1
- package/dist/components/agent-tools/tool-call-chip/tool-call-chip.class.d.ts +2 -1
- package/dist/components/agent-tools/tool-call-chip/tool-call-chip.class.d.ts.map +1 -1
- package/dist/components/agent-tools/tool-call-chip/tool-call-chip.class.js +11 -5
- package/dist/components/agent-tools/tool-call-chip/tool-call-chip.class.js.map +1 -1
- package/dist/components/agent-tools/tool-call-chip/tool-call-chip.styles.js +1 -1
- package/dist/components/agent-tools/tool-param-form/tool-param-form.class.d.ts +7 -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 +24 -16
- 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 +3 -0
- package/dist/components/agent-tools/tool-param-form/tool-param-form.styles.js.map +1 -1
- package/dist/components/agent-tools/tool-result-dialog/tool-result-dialog.class.d.ts +10 -1
- package/dist/components/agent-tools/tool-result-dialog/tool-result-dialog.class.d.ts.map +1 -1
- package/dist/components/agent-tools/tool-result-dialog/tool-result-dialog.class.js +18 -4
- package/dist/components/agent-tools/tool-result-dialog/tool-result-dialog.class.js.map +1 -1
- package/dist/components/agent-tools/tool-result-dialog/tool-result-dialog.styles.d.ts.map +1 -1
- package/dist/components/agent-tools/tool-result-dialog/tool-result-dialog.styles.js +17 -9
- package/dist/components/agent-tools/tool-result-dialog/tool-result-dialog.styles.js.map +1 -1
- package/dist/components/agent-tools/tool-result-view/registry.d.ts +38 -1
- package/dist/components/agent-tools/tool-result-view/registry.d.ts.map +1 -1
- package/dist/components/agent-tools/tool-result-view/registry.js.map +1 -1
- package/dist/components/agent-tools/tool-result-view/tool-result-view.class.d.ts +16 -1
- package/dist/components/agent-tools/tool-result-view/tool-result-view.class.d.ts.map +1 -1
- package/dist/components/agent-tools/tool-result-view/tool-result-view.class.js +33 -1
- package/dist/components/agent-tools/tool-result-view/tool-result-view.class.js.map +1 -1
- package/dist/components/agent-tools/tool-select-dialog/tool-select-dialog.class.d.ts +3 -0
- package/dist/components/agent-tools/tool-select-dialog/tool-select-dialog.class.d.ts.map +1 -1
- package/dist/components/agent-tools/tool-select-dialog/tool-select-dialog.class.js +29 -24
- package/dist/components/agent-tools/tool-select-dialog/tool-select-dialog.class.js.map +1 -1
- package/dist/components/agent-tools/tool-select-dialog/tool-select-dialog.styles.d.ts.map +1 -1
- package/dist/components/agent-tools/tool-select-dialog/tool-select-dialog.styles.js +6 -3
- package/dist/components/agent-tools/tool-select-dialog/tool-select-dialog.styles.js.map +1 -1
- package/dist/components/agent-tools/tool-timeline/tool-timeline.class.d.ts +12 -5
- 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 +60 -37
- package/dist/components/agent-tools/tool-timeline/tool-timeline.class.js.map +1 -1
- package/dist/components/agent-tools/tool-timeline/tool-timeline.d.ts +4 -0
- package/dist/components/agent-tools/tool-timeline/tool-timeline.d.ts.map +1 -1
- package/dist/components/agent-tools/tool-timeline/tool-timeline.js +4 -0
- package/dist/components/agent-tools/tool-timeline/tool-timeline.js.map +1 -1
- package/dist/components/agent-tools/tool-timeline/tool-timeline.styles.d.ts.map +1 -1
- package/dist/components/agent-tools/tool-timeline/tool-timeline.styles.js +12 -8
- package/dist/components/agent-tools/tool-timeline/tool-timeline.styles.js.map +1 -1
- package/dist/components/agent-tools/trace-tree/trace-tree.class.d.ts +14 -1
- package/dist/components/agent-tools/trace-tree/trace-tree.class.d.ts.map +1 -1
- package/dist/components/agent-tools/trace-tree/trace-tree.class.js +177 -53
- package/dist/components/agent-tools/trace-tree/trace-tree.class.js.map +1 -1
- package/dist/components/agent-tools/trace-tree/trace-tree.styles.d.ts.map +1 -1
- package/dist/components/agent-tools/trace-tree/trace-tree.styles.js +111 -24
- package/dist/components/agent-tools/trace-tree/trace-tree.styles.js.map +1 -1
- package/dist/components/charts/chart/box-plot.class.d.ts +7 -0
- package/dist/components/charts/chart/box-plot.class.d.ts.map +1 -1
- package/dist/components/charts/chart/box-plot.class.js +92 -35
- 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 +7 -0
- package/dist/components/charts/chart/box-plot.styles.js.map +1 -1
- package/dist/components/charts/chart/chart-colors.d.ts +17 -0
- package/dist/components/charts/chart/chart-colors.d.ts.map +1 -0
- package/dist/components/charts/chart/chart-colors.js +77 -0
- package/dist/components/charts/chart/chart-colors.js.map +1 -0
- package/dist/components/charts/chart/chart-loader.d.ts +39 -0
- package/dist/components/charts/chart/chart-loader.d.ts.map +1 -1
- package/dist/components/charts/chart/chart-loader.js +53 -0
- package/dist/components/charts/chart/chart-loader.js.map +1 -1
- package/dist/components/charts/chart/chart.class.d.ts +128 -13
- package/dist/components/charts/chart/chart.class.d.ts.map +1 -1
- package/dist/components/charts/chart/chart.class.js +469 -80
- 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 +28 -0
- package/dist/components/charts/chart/chart.styles.js.map +1 -1
- package/dist/components/charts/chart/histogram-bin.d.ts +3 -2
- package/dist/components/charts/chart/histogram-bin.d.ts.map +1 -1
- package/dist/components/charts/chart/histogram-bin.js +17 -3
- package/dist/components/charts/chart/histogram-bin.js.map +1 -1
- package/dist/components/charts/chart/histogram.class.d.ts.map +1 -1
- package/dist/components/charts/chart/histogram.class.js +7 -3
- package/dist/components/charts/chart/histogram.class.js.map +1 -1
- package/dist/components/charts/chart/lite-chart.class.d.ts +31 -16
- package/dist/components/charts/chart/lite-chart.class.d.ts.map +1 -1
- package/dist/components/charts/chart/lite-chart.class.js +290 -96
- package/dist/components/charts/chart/lite-chart.class.js.map +1 -1
- package/dist/components/charts/chart/lite-chart.styles.d.ts.map +1 -1
- package/dist/components/charts/chart/lite-chart.styles.js +17 -1
- package/dist/components/charts/chart/lite-chart.styles.js.map +1 -1
- package/dist/components/conversation/agent-workspace/agent-workspace.class.d.ts +12 -13
- package/dist/components/conversation/agent-workspace/agent-workspace.class.d.ts.map +1 -1
- package/dist/components/conversation/agent-workspace/agent-workspace.class.js +60 -47
- package/dist/components/conversation/agent-workspace/agent-workspace.class.js.map +1 -1
- package/dist/components/conversation/agent-workspace/agent-workspace.d.ts +11 -0
- package/dist/components/conversation/agent-workspace/agent-workspace.d.ts.map +1 -1
- package/dist/components/conversation/agent-workspace/agent-workspace.js +11 -0
- package/dist/components/conversation/agent-workspace/agent-workspace.js.map +1 -1
- package/dist/components/conversation/agent-workspace/agent-workspace.styles.d.ts.map +1 -1
- package/dist/components/conversation/agent-workspace/agent-workspace.styles.js +4 -1
- package/dist/components/conversation/agent-workspace/agent-workspace.styles.js.map +1 -1
- package/dist/components/conversation/audio-visualizer/audio-visualizer.class.d.ts +2 -7
- package/dist/components/conversation/audio-visualizer/audio-visualizer.class.d.ts.map +1 -1
- package/dist/components/conversation/audio-visualizer/audio-visualizer.class.js +36 -63
- package/dist/components/conversation/audio-visualizer/audio-visualizer.class.js.map +1 -1
- package/dist/components/conversation/branch-picker/branch-picker.class.d.ts +3 -0
- package/dist/components/conversation/branch-picker/branch-picker.class.d.ts.map +1 -1
- package/dist/components/conversation/branch-picker/branch-picker.class.js +14 -2
- package/dist/components/conversation/branch-picker/branch-picker.class.js.map +1 -1
- package/dist/components/conversation/branch-picker/branch-picker.styles.d.ts.map +1 -1
- package/dist/components/conversation/branch-picker/branch-picker.styles.js +2 -0
- package/dist/components/conversation/branch-picker/branch-picker.styles.js.map +1 -1
- package/dist/components/conversation/chat-composer/chat-composer.class.d.ts +2 -16
- package/dist/components/conversation/chat-composer/chat-composer.class.d.ts.map +1 -1
- package/dist/components/conversation/chat-composer/chat-composer.class.js +6 -38
- package/dist/components/conversation/chat-composer/chat-composer.class.js.map +1 -1
- package/dist/components/conversation/chat-message/chat-message.class.d.ts +11 -0
- package/dist/components/conversation/chat-message/chat-message.class.d.ts.map +1 -1
- package/dist/components/conversation/chat-message/chat-message.class.js +16 -4
- package/dist/components/conversation/chat-message/chat-message.class.js.map +1 -1
- package/dist/components/conversation/chat-message/chat-message.styles.d.ts.map +1 -1
- package/dist/components/conversation/chat-message/chat-message.styles.js +22 -11
- package/dist/components/conversation/chat-message/chat-message.styles.js.map +1 -1
- package/dist/components/conversation/chat-viewport/chat-viewport.class.d.ts +3 -7
- package/dist/components/conversation/chat-viewport/chat-viewport.class.d.ts.map +1 -1
- package/dist/components/conversation/chat-viewport/chat-viewport.class.js +9 -28
- package/dist/components/conversation/chat-viewport/chat-viewport.class.js.map +1 -1
- package/dist/components/conversation/checkpoint/checkpoint.class.d.ts +7 -2
- package/dist/components/conversation/checkpoint/checkpoint.class.d.ts.map +1 -1
- package/dist/components/conversation/checkpoint/checkpoint.class.js +4 -11
- package/dist/components/conversation/checkpoint/checkpoint.class.js.map +1 -1
- package/dist/components/conversation/checkpoint/checkpoint.styles.js +1 -1
- package/dist/components/conversation/code-block/code-block-core.class.d.ts +5 -6
- package/dist/components/conversation/code-block/code-block-core.class.d.ts.map +1 -1
- package/dist/components/conversation/code-block/code-block-core.class.js +55 -13
- package/dist/components/conversation/code-block/code-block-core.class.js.map +1 -1
- package/dist/components/conversation/code-block/code-block-shared.d.ts +5 -1
- package/dist/components/conversation/code-block/code-block-shared.d.ts.map +1 -1
- package/dist/components/conversation/code-block/code-block-shared.js +22 -6
- package/dist/components/conversation/code-block/code-block-shared.js.map +1 -1
- package/dist/components/conversation/code-block/code-block.class.d.ts +7 -6
- package/dist/components/conversation/code-block/code-block.class.d.ts.map +1 -1
- package/dist/components/conversation/code-block/code-block.class.js +68 -29
- package/dist/components/conversation/code-block/code-block.class.js.map +1 -1
- package/dist/components/conversation/code-block/code-block.styles.d.ts.map +1 -1
- package/dist/components/conversation/code-block/code-block.styles.js +12 -4
- package/dist/components/conversation/code-block/code-block.styles.js.map +1 -1
- package/dist/components/conversation/conversation-item/conversation-item.class.d.ts +10 -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 +52 -46
- package/dist/components/conversation/conversation-item/conversation-item.class.js.map +1 -1
- package/dist/components/conversation/conversation-item/conversation-item.styles.d.ts.map +1 -1
- package/dist/components/conversation/conversation-item/conversation-item.styles.js +12 -0
- package/dist/components/conversation/conversation-item/conversation-item.styles.js.map +1 -1
- package/dist/components/conversation/generation-status/generation-status.class.d.ts.map +1 -1
- package/dist/components/conversation/generation-status/generation-status.class.js +8 -0
- package/dist/components/conversation/generation-status/generation-status.class.js.map +1 -1
- package/dist/components/conversation/generation-status/generation-status.styles.d.ts.map +1 -1
- package/dist/components/conversation/generation-status/generation-status.styles.js +4 -1
- package/dist/components/conversation/generation-status/generation-status.styles.js.map +1 -1
- package/dist/components/conversation/handoff-divider/handoff-divider.class.d.ts +0 -1
- package/dist/components/conversation/handoff-divider/handoff-divider.class.d.ts.map +1 -1
- package/dist/components/conversation/handoff-divider/handoff-divider.class.js +1 -2
- package/dist/components/conversation/handoff-divider/handoff-divider.class.js.map +1 -1
- package/dist/components/conversation/handoff-divider/handoff-divider.d.ts +1 -0
- package/dist/components/conversation/handoff-divider/handoff-divider.d.ts.map +1 -1
- package/dist/components/conversation/handoff-divider/handoff-divider.js +1 -0
- package/dist/components/conversation/handoff-divider/handoff-divider.js.map +1 -1
- package/dist/components/conversation/index.d.ts +36 -0
- package/dist/components/conversation/index.d.ts.map +1 -0
- package/dist/components/conversation/index.js +34 -0
- package/dist/components/conversation/index.js.map +1 -0
- package/dist/components/conversation/markdown/markdown-core.class.d.ts +13 -0
- package/dist/components/conversation/markdown/markdown-core.class.d.ts.map +1 -1
- package/dist/components/conversation/markdown/markdown-core.class.js +32 -18
- package/dist/components/conversation/markdown/markdown-core.class.js.map +1 -1
- package/dist/components/conversation/markdown/markdown-shared.js +1 -1
- package/dist/components/conversation/markdown/markdown-shared.js.map +1 -1
- package/dist/components/conversation/markdown/markdown.class.d.ts +13 -0
- package/dist/components/conversation/markdown/markdown.class.d.ts.map +1 -1
- package/dist/components/conversation/markdown/markdown.class.js +37 -15
- package/dist/components/conversation/markdown/markdown.class.js.map +1 -1
- package/dist/components/conversation/markdown/markdown.styles.d.ts.map +1 -1
- package/dist/components/conversation/markdown/markdown.styles.js +20 -13
- package/dist/components/conversation/markdown/markdown.styles.js.map +1 -1
- package/dist/components/conversation/message-actions/message-actions.class.d.ts +2 -0
- package/dist/components/conversation/message-actions/message-actions.class.d.ts.map +1 -1
- package/dist/components/conversation/message-actions/message-actions.class.js +37 -6
- package/dist/components/conversation/message-actions/message-actions.class.js.map +1 -1
- package/dist/components/conversation/message-actions/message-actions.styles.d.ts.map +1 -1
- package/dist/components/conversation/message-actions/message-actions.styles.js +0 -9
- package/dist/components/conversation/message-actions/message-actions.styles.js.map +1 -1
- package/dist/components/conversation/message-feedback/message-feedback.class.d.ts +2 -2
- package/dist/components/conversation/message-feedback/message-feedback.class.d.ts.map +1 -1
- package/dist/components/conversation/message-feedback/message-feedback.class.js +17 -3
- package/dist/components/conversation/message-feedback/message-feedback.class.js.map +1 -1
- package/dist/components/conversation/message-feedback/message-feedback.d.ts +2 -0
- package/dist/components/conversation/message-feedback/message-feedback.d.ts.map +1 -1
- package/dist/components/conversation/message-feedback/message-feedback.js +2 -0
- package/dist/components/conversation/message-feedback/message-feedback.js.map +1 -1
- package/dist/components/conversation/message-feedback/message-feedback.styles.d.ts.map +1 -1
- package/dist/components/conversation/message-feedback/message-feedback.styles.js +16 -5
- package/dist/components/conversation/message-feedback/message-feedback.styles.js.map +1 -1
- package/dist/components/conversation/message-parts/message-parts.class.d.ts +91 -0
- package/dist/components/conversation/message-parts/message-parts.class.d.ts.map +1 -0
- package/dist/components/conversation/message-parts/message-parts.class.js +230 -0
- package/dist/components/conversation/message-parts/message-parts.class.js.map +1 -0
- package/dist/components/conversation/message-parts/message-parts.d.ts +11 -0
- package/dist/components/conversation/message-parts/message-parts.d.ts.map +1 -0
- package/dist/components/conversation/message-parts/message-parts.js +14 -0
- package/dist/components/conversation/message-parts/message-parts.js.map +1 -0
- package/dist/components/conversation/message-parts/message-parts.styles.d.ts +2 -0
- package/dist/components/conversation/message-parts/message-parts.styles.d.ts.map +1 -0
- package/dist/components/conversation/message-parts/message-parts.styles.js +67 -0
- package/dist/components/conversation/message-parts/message-parts.styles.js.map +1 -0
- package/dist/components/conversation/model-select/model-select.class.d.ts +5 -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 +17 -34
- package/dist/components/conversation/model-select/model-select.class.js.map +1 -1
- package/dist/components/conversation/model-select/model-select.styles.d.ts.map +1 -1
- package/dist/components/conversation/model-select/model-select.styles.js +8 -3
- package/dist/components/conversation/model-select/model-select.styles.js.map +1 -1
- package/dist/components/conversation/model-settings-panel/model-settings-panel.class.d.ts.map +1 -1
- package/dist/components/conversation/model-settings-panel/model-settings-panel.class.js +7 -2
- package/dist/components/conversation/model-settings-panel/model-settings-panel.class.js.map +1 -1
- package/dist/components/conversation/model-settings-panel/model-settings-panel.styles.js +2 -2
- package/dist/components/conversation/prompt-input/prompt-input.class.d.ts +148 -0
- package/dist/components/conversation/prompt-input/prompt-input.class.d.ts.map +1 -0
- package/dist/components/conversation/prompt-input/prompt-input.class.js +375 -0
- package/dist/components/conversation/prompt-input/prompt-input.class.js.map +1 -0
- package/dist/components/conversation/prompt-input/prompt-input.d.ts +10 -0
- package/dist/components/conversation/prompt-input/prompt-input.d.ts.map +1 -0
- package/dist/components/conversation/prompt-input/prompt-input.js +13 -0
- package/dist/components/conversation/prompt-input/prompt-input.js.map +1 -0
- package/dist/components/conversation/prompt-input/prompt-input.styles.d.ts +2 -0
- package/dist/components/conversation/prompt-input/prompt-input.styles.d.ts.map +1 -0
- package/dist/components/conversation/prompt-input/prompt-input.styles.js +74 -0
- package/dist/components/conversation/prompt-input/prompt-input.styles.js.map +1 -0
- package/dist/components/conversation/prompt-queue/prompt-queue.class.d.ts +59 -0
- package/dist/components/conversation/prompt-queue/prompt-queue.class.d.ts.map +1 -0
- package/dist/components/conversation/prompt-queue/prompt-queue.class.js +145 -0
- package/dist/components/conversation/prompt-queue/prompt-queue.class.js.map +1 -0
- package/dist/components/conversation/prompt-queue/prompt-queue.d.ts +4 -0
- package/dist/components/conversation/prompt-queue/prompt-queue.d.ts.map +1 -0
- package/dist/components/conversation/prompt-queue/prompt-queue.js +7 -0
- package/dist/components/conversation/prompt-queue/prompt-queue.js.map +1 -0
- package/dist/components/conversation/prompt-queue/prompt-queue.styles.d.ts +2 -0
- package/dist/components/conversation/prompt-queue/prompt-queue.styles.d.ts.map +1 -0
- package/dist/components/conversation/prompt-queue/prompt-queue.styles.js +74 -0
- package/dist/components/conversation/prompt-queue/prompt-queue.styles.js.map +1 -0
- package/dist/components/conversation/push-to-talk/push-to-talk.class.d.ts +7 -1
- package/dist/components/conversation/push-to-talk/push-to-talk.class.d.ts.map +1 -1
- package/dist/components/conversation/push-to-talk/push-to-talk.class.js +40 -14
- package/dist/components/conversation/push-to-talk/push-to-talk.class.js.map +1 -1
- package/dist/components/conversation/push-to-talk/push-to-talk.styles.d.ts.map +1 -1
- package/dist/components/conversation/push-to-talk/push-to-talk.styles.js +4 -0
- package/dist/components/conversation/push-to-talk/push-to-talk.styles.js.map +1 -1
- package/dist/components/conversation/realtime-session/realtime-session.class.d.ts +66 -0
- package/dist/components/conversation/realtime-session/realtime-session.class.d.ts.map +1 -0
- package/dist/components/conversation/realtime-session/realtime-session.class.js +159 -0
- package/dist/components/conversation/realtime-session/realtime-session.class.js.map +1 -0
- package/dist/components/conversation/realtime-session/realtime-session.d.ts +6 -0
- package/dist/components/conversation/realtime-session/realtime-session.d.ts.map +1 -0
- package/dist/components/conversation/realtime-session/realtime-session.js +9 -0
- package/dist/components/conversation/realtime-session/realtime-session.js.map +1 -0
- package/dist/components/conversation/realtime-session/realtime-session.styles.d.ts +2 -0
- package/dist/components/conversation/realtime-session/realtime-session.styles.d.ts.map +1 -0
- package/dist/components/conversation/realtime-session/realtime-session.styles.js +20 -0
- package/dist/components/conversation/realtime-session/realtime-session.styles.js.map +1 -0
- package/dist/components/conversation/selection-toolbar/selection-toolbar.class.d.ts +69 -0
- package/dist/components/conversation/selection-toolbar/selection-toolbar.class.d.ts.map +1 -0
- package/dist/components/conversation/selection-toolbar/selection-toolbar.class.js +268 -0
- package/dist/components/conversation/selection-toolbar/selection-toolbar.class.js.map +1 -0
- package/dist/components/conversation/selection-toolbar/selection-toolbar.d.ts +3 -0
- package/dist/components/conversation/selection-toolbar/selection-toolbar.d.ts.map +1 -0
- package/dist/components/conversation/selection-toolbar/selection-toolbar.js +6 -0
- package/dist/components/conversation/selection-toolbar/selection-toolbar.js.map +1 -0
- package/dist/components/conversation/selection-toolbar/selection-toolbar.styles.d.ts +2 -0
- package/dist/components/conversation/selection-toolbar/selection-toolbar.styles.d.ts.map +1 -0
- package/dist/components/conversation/selection-toolbar/selection-toolbar.styles.js +62 -0
- package/dist/components/conversation/selection-toolbar/selection-toolbar.styles.js.map +1 -0
- package/dist/components/conversation/stream-status/stream-status.styles.d.ts.map +1 -1
- package/dist/components/conversation/stream-status/stream-status.styles.js +10 -0
- package/dist/components/conversation/stream-status/stream-status.styles.js.map +1 -1
- package/dist/components/conversation/streaming-text/streaming-text.class.d.ts +1 -0
- package/dist/components/conversation/streaming-text/streaming-text.class.d.ts.map +1 -1
- package/dist/components/conversation/streaming-text/streaming-text.class.js +6 -0
- package/dist/components/conversation/streaming-text/streaming-text.class.js.map +1 -1
- package/dist/components/conversation/suggestion-chips/suggestion-chips.class.d.ts +2 -0
- package/dist/components/conversation/suggestion-chips/suggestion-chips.class.d.ts.map +1 -1
- package/dist/components/conversation/suggestion-chips/suggestion-chips.class.js +16 -1
- package/dist/components/conversation/suggestion-chips/suggestion-chips.class.js.map +1 -1
- package/dist/components/conversation/thread-list/thread-list.class.d.ts +7 -3
- package/dist/components/conversation/thread-list/thread-list.class.d.ts.map +1 -1
- package/dist/components/conversation/thread-list/thread-list.class.js +72 -42
- package/dist/components/conversation/thread-list/thread-list.class.js.map +1 -1
- package/dist/components/conversation/thread-list/thread-list.d.ts.map +1 -1
- package/dist/components/conversation/thread-list/thread-list.js +2 -2
- package/dist/components/conversation/thread-list/thread-list.js.map +1 -1
- package/dist/components/conversation/thread-list/thread-list.styles.d.ts.map +1 -1
- package/dist/components/conversation/thread-list/thread-list.styles.js +3 -0
- package/dist/components/conversation/thread-list/thread-list.styles.js.map +1 -1
- package/dist/components/conversation/transcript-feed/transcript-feed.class.d.ts.map +1 -1
- package/dist/components/conversation/transcript-feed/transcript-feed.class.js +14 -21
- package/dist/components/conversation/transcript-feed/transcript-feed.class.js.map +1 -1
- package/dist/components/conversation/transcript-feed/transcript-feed.styles.d.ts.map +1 -1
- package/dist/components/conversation/transcript-feed/transcript-feed.styles.js +16 -1
- package/dist/components/conversation/transcript-feed/transcript-feed.styles.js.map +1 -1
- package/dist/components/conversation/typing-indicator/typing-indicator.class.d.ts +4 -2
- package/dist/components/conversation/typing-indicator/typing-indicator.class.d.ts.map +1 -1
- package/dist/components/conversation/typing-indicator/typing-indicator.class.js +4 -2
- package/dist/components/conversation/typing-indicator/typing-indicator.class.js.map +1 -1
- package/dist/components/conversation/typing-indicator/typing-indicator.styles.d.ts.map +1 -1
- package/dist/components/conversation/typing-indicator/typing-indicator.styles.js +35 -21
- package/dist/components/conversation/typing-indicator/typing-indicator.styles.js.map +1 -1
- package/dist/components/conversation/usage-badge/usage-badge.class.d.ts +2 -1
- package/dist/components/conversation/usage-badge/usage-badge.class.d.ts.map +1 -1
- package/dist/components/conversation/usage-badge/usage-badge.class.js +30 -7
- package/dist/components/conversation/usage-badge/usage-badge.class.js.map +1 -1
- package/dist/components/conversation/usage-badge/usage-badge.styles.d.ts.map +1 -1
- package/dist/components/conversation/usage-badge/usage-badge.styles.js +21 -1
- package/dist/components/conversation/usage-badge/usage-badge.styles.js.map +1 -1
- package/dist/components/conversation/voice-picker/voice-picker.class.d.ts +24 -2
- package/dist/components/conversation/voice-picker/voice-picker.class.d.ts.map +1 -1
- package/dist/components/conversation/voice-picker/voice-picker.class.js +97 -64
- package/dist/components/conversation/voice-picker/voice-picker.class.js.map +1 -1
- package/dist/components/conversation/voice-picker/voice-picker.styles.d.ts.map +1 -1
- package/dist/components/conversation/voice-picker/voice-picker.styles.js +22 -7
- package/dist/components/conversation/voice-picker/voice-picker.styles.js.map +1 -1
- package/dist/components/conversation/widget-renderer/registry.d.ts +6 -0
- package/dist/components/conversation/widget-renderer/registry.d.ts.map +1 -1
- package/dist/components/conversation/widget-renderer/registry.js.map +1 -1
- package/dist/components/conversation/widget-renderer/resolve.d.ts +18 -0
- package/dist/components/conversation/widget-renderer/resolve.d.ts.map +1 -1
- package/dist/components/conversation/widget-renderer/resolve.js +66 -4
- package/dist/components/conversation/widget-renderer/resolve.js.map +1 -1
- package/dist/components/conversation/widget-renderer/widget-renderer.class.d.ts +16 -1
- package/dist/components/conversation/widget-renderer/widget-renderer.class.d.ts.map +1 -1
- package/dist/components/conversation/widget-renderer/widget-renderer.class.js +70 -7
- package/dist/components/conversation/widget-renderer/widget-renderer.class.js.map +1 -1
- package/dist/components/conversation/widget-renderer/widget-renderer.styles.d.ts.map +1 -1
- package/dist/components/conversation/widget-renderer/widget-renderer.styles.js +6 -0
- package/dist/components/conversation/widget-renderer/widget-renderer.styles.js.map +1 -1
- package/dist/components/data/calendar/calendar.class.d.ts +3 -8
- package/dist/components/data/calendar/calendar.class.d.ts.map +1 -1
- package/dist/components/data/calendar/calendar.class.js +10 -11
- package/dist/components/data/calendar/calendar.class.js.map +1 -1
- package/dist/components/data/calendar/calendar.styles.d.ts.map +1 -1
- package/dist/components/data/calendar/calendar.styles.js +6 -1
- package/dist/components/data/calendar/calendar.styles.js.map +1 -1
- package/dist/components/data/context-meter/context-meter.class.d.ts +4 -3
- package/dist/components/data/context-meter/context-meter.class.d.ts.map +1 -1
- package/dist/components/data/context-meter/context-meter.class.js +34 -30
- package/dist/components/data/context-meter/context-meter.class.js.map +1 -1
- package/dist/components/data/document-library/document-library.class.d.ts +0 -7
- package/dist/components/data/document-library/document-library.class.d.ts.map +1 -1
- package/dist/components/data/document-library/document-library.class.js +15 -15
- package/dist/components/data/document-library/document-library.class.js.map +1 -1
- package/dist/components/data/env-list/env-list.class.d.ts +8 -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 +13 -20
- package/dist/components/data/env-list/env-list.class.js.map +1 -1
- package/dist/components/data/env-list/env-list.d.ts +1 -0
- package/dist/components/data/env-list/env-list.d.ts.map +1 -1
- package/dist/components/data/env-list/env-list.js +1 -0
- package/dist/components/data/env-list/env-list.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 +3 -0
- package/dist/components/data/env-list/env-list.styles.js.map +1 -1
- package/dist/components/data/file-tree/file-tree.class.d.ts +0 -2
- package/dist/components/data/file-tree/file-tree.class.d.ts.map +1 -1
- package/dist/components/data/file-tree/file-tree.class.js +8 -8
- package/dist/components/data/file-tree/file-tree.class.js.map +1 -1
- package/dist/components/data/file-tree/file-tree.d.ts +2 -0
- package/dist/components/data/file-tree/file-tree.d.ts.map +1 -1
- package/dist/components/data/file-tree/file-tree.js +2 -0
- package/dist/components/data/file-tree/file-tree.js.map +1 -1
- package/dist/components/data/flow-canvas/flow-canvas.class.d.ts +13 -7
- package/dist/components/data/flow-canvas/flow-canvas.class.d.ts.map +1 -1
- package/dist/components/data/flow-canvas/flow-canvas.class.js +106 -28
- package/dist/components/data/flow-canvas/flow-canvas.class.js.map +1 -1
- package/dist/components/data/flow-canvas/flow-canvas.styles.d.ts.map +1 -1
- package/dist/components/data/flow-canvas/flow-canvas.styles.js +22 -3
- package/dist/components/data/flow-canvas/flow-canvas.styles.js.map +1 -1
- package/dist/components/data/flow-controls/flow-controls.class.d.ts +1 -3
- package/dist/components/data/flow-controls/flow-controls.class.d.ts.map +1 -1
- package/dist/components/data/flow-controls/flow-controls.class.js +16 -16
- package/dist/components/data/flow-controls/flow-controls.class.js.map +1 -1
- package/dist/components/data/flow-minimap/flow-minimap.class.d.ts +6 -3
- package/dist/components/data/flow-minimap/flow-minimap.class.d.ts.map +1 -1
- package/dist/components/data/flow-minimap/flow-minimap.class.js +49 -15
- package/dist/components/data/flow-minimap/flow-minimap.class.js.map +1 -1
- package/dist/components/data/flow-node/flow-node.class.d.ts.map +1 -1
- package/dist/components/data/flow-node/flow-node.class.js +15 -4
- package/dist/components/data/flow-node/flow-node.class.js.map +1 -1
- package/dist/components/data/flow-run-overlay/flow-run-overlay.class.d.ts +3 -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 +40 -13
- package/dist/components/data/flow-run-overlay/flow-run-overlay.class.js.map +1 -1
- package/dist/components/data/gauge/gauge.class.d.ts.map +1 -1
- package/dist/components/data/gauge/gauge.class.js +19 -16
- package/dist/components/data/gauge/gauge.class.js.map +1 -1
- package/dist/components/data/graph-query-builder/graph-query-builder.class.d.ts +16 -0
- package/dist/components/data/graph-query-builder/graph-query-builder.class.d.ts.map +1 -1
- package/dist/components/data/graph-query-builder/graph-query-builder.class.js +119 -17
- package/dist/components/data/graph-query-builder/graph-query-builder.class.js.map +1 -1
- package/dist/components/data/graph-query-builder/graph-query-builder.styles.d.ts.map +1 -1
- package/dist/components/data/graph-query-builder/graph-query-builder.styles.js +20 -0
- package/dist/components/data/graph-query-builder/graph-query-builder.styles.js.map +1 -1
- package/dist/components/data/heatmap/heatmap.class.d.ts +8 -19
- package/dist/components/data/heatmap/heatmap.class.d.ts.map +1 -1
- package/dist/components/data/heatmap/heatmap.class.js +240 -195
- 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 +2 -0
- package/dist/components/data/heatmap/heatmap.styles.js.map +1 -1
- package/dist/components/data/pagination/pagination.class.d.ts +4 -0
- package/dist/components/data/pagination/pagination.class.d.ts.map +1 -1
- package/dist/components/data/pagination/pagination.class.js +7 -0
- package/dist/components/data/pagination/pagination.class.js.map +1 -1
- package/dist/components/data/pagination/pagination.styles.d.ts.map +1 -1
- package/dist/components/data/pagination/pagination.styles.js +8 -6
- package/dist/components/data/pagination/pagination.styles.js.map +1 -1
- package/dist/components/data/query-builder/query-builder.class.d.ts +1 -0
- package/dist/components/data/query-builder/query-builder.class.d.ts.map +1 -1
- package/dist/components/data/query-builder/query-builder.class.js +15 -11
- package/dist/components/data/query-builder/query-builder.class.js.map +1 -1
- package/dist/components/data/sequence-strip/sequence-strip.class.d.ts +18 -14
- package/dist/components/data/sequence-strip/sequence-strip.class.d.ts.map +1 -1
- package/dist/components/data/sequence-strip/sequence-strip.class.js +66 -13
- package/dist/components/data/sequence-strip/sequence-strip.class.js.map +1 -1
- package/dist/components/data/sequence-strip/sequence-strip.styles.d.ts.map +1 -1
- package/dist/components/data/sequence-strip/sequence-strip.styles.js +5 -0
- package/dist/components/data/sequence-strip/sequence-strip.styles.js.map +1 -1
- package/dist/components/data/sparkline/sparkline.class.d.ts.map +1 -1
- package/dist/components/data/sparkline/sparkline.class.js +6 -2
- package/dist/components/data/sparkline/sparkline.class.js.map +1 -1
- package/dist/components/data/stat/stat.class.d.ts.map +1 -1
- package/dist/components/data/stat/stat.class.js +10 -2
- package/dist/components/data/stat/stat.class.js.map +1 -1
- package/dist/components/data/stat/stat.styles.d.ts.map +1 -1
- package/dist/components/data/stat/stat.styles.js +24 -0
- package/dist/components/data/stat/stat.styles.js.map +1 -1
- package/dist/components/data/table/table.class.d.ts +129 -10
- package/dist/components/data/table/table.class.d.ts.map +1 -1
- package/dist/components/data/table/table.class.js +331 -46
- package/dist/components/data/table/table.class.js.map +1 -1
- package/dist/components/data/table/table.d.ts +3 -0
- package/dist/components/data/table/table.d.ts.map +1 -1
- package/dist/components/data/table/table.js +3 -0
- package/dist/components/data/table/table.js.map +1 -1
- package/dist/components/data/table/table.styles.d.ts.map +1 -1
- package/dist/components/data/table/table.styles.js +20 -2
- package/dist/components/data/table/table.styles.js.map +1 -1
- package/dist/components/data/timeline/timeline-item.class.d.ts.map +1 -1
- package/dist/components/data/timeline/timeline-item.class.js +9 -1
- package/dist/components/data/timeline/timeline-item.class.js.map +1 -1
- package/dist/components/data/timeline/timeline-item.styles.d.ts.map +1 -1
- package/dist/components/data/timeline/timeline-item.styles.js +4 -0
- package/dist/components/data/timeline/timeline-item.styles.js.map +1 -1
- package/dist/components/data/timeline/timeline.class.d.ts.map +1 -1
- package/dist/components/data/timeline/timeline.class.js +1 -1
- package/dist/components/data/timeline/timeline.class.js.map +1 -1
- package/dist/components/data/timeline/timeline.styles.d.ts.map +1 -1
- package/dist/components/data/timeline/timeline.styles.js +2 -0
- package/dist/components/data/timeline/timeline.styles.js.map +1 -1
- package/dist/components/data/tree/tree-item.d.ts +5 -0
- package/dist/components/data/tree/tree-item.d.ts.map +1 -1
- package/dist/components/data/tree/tree-node.class.d.ts +2 -0
- package/dist/components/data/tree/tree-node.class.d.ts.map +1 -1
- package/dist/components/data/tree/tree-node.class.js +25 -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 +11 -0
- package/dist/components/data/tree/tree-node.styles.js.map +1 -1
- package/dist/components/data/tree/tree.class.d.ts +17 -3
- package/dist/components/data/tree/tree.class.d.ts.map +1 -1
- package/dist/components/data/tree/tree.class.js +59 -19
- package/dist/components/data/tree/tree.class.js.map +1 -1
- package/dist/components/data/tree/tree.d.ts +2 -0
- package/dist/components/data/tree/tree.d.ts.map +1 -1
- package/dist/components/data/tree/tree.js +2 -0
- package/dist/components/data/tree/tree.js.map +1 -1
- package/dist/components/data/word-cloud/word-cloud.class.d.ts +22 -13
- package/dist/components/data/word-cloud/word-cloud.class.d.ts.map +1 -1
- package/dist/components/data/word-cloud/word-cloud.class.js +75 -28
- package/dist/components/data/word-cloud/word-cloud.class.js.map +1 -1
- package/dist/components/data/word-cloud/word-cloud.styles.d.ts.map +1 -1
- package/dist/components/data/word-cloud/word-cloud.styles.js +27 -15
- package/dist/components/data/word-cloud/word-cloud.styles.js.map +1 -1
- package/dist/components/forms/button/button.class.d.ts +66 -8
- package/dist/components/forms/button/button.class.d.ts.map +1 -1
- package/dist/components/forms/button/button.class.js +144 -18
- package/dist/components/forms/button/button.class.js.map +1 -1
- package/dist/components/forms/button/button.styles.d.ts.map +1 -1
- package/dist/components/forms/button/button.styles.js +13 -5
- package/dist/components/forms/button/button.styles.js.map +1 -1
- package/dist/components/forms/checkbox/checkbox.class.d.ts +3 -0
- package/dist/components/forms/checkbox/checkbox.class.d.ts.map +1 -1
- package/dist/components/forms/checkbox/checkbox.class.js +9 -1
- package/dist/components/forms/checkbox/checkbox.class.js.map +1 -1
- package/dist/components/forms/checkbox-group/checkbox-group.class.d.ts +9 -1
- package/dist/components/forms/checkbox-group/checkbox-group.class.d.ts.map +1 -1
- package/dist/components/forms/checkbox-group/checkbox-group.class.js +91 -8
- package/dist/components/forms/checkbox-group/checkbox-group.class.js.map +1 -1
- package/dist/components/forms/code-editor/code-editor.class.d.ts +13 -1
- package/dist/components/forms/code-editor/code-editor.class.d.ts.map +1 -1
- package/dist/components/forms/code-editor/code-editor.class.js +22 -11
- package/dist/components/forms/code-editor/code-editor.class.js.map +1 -1
- package/dist/components/forms/code-editor/code-editor.styles.js +2 -2
- package/dist/components/forms/color-picker/color-picker.class.d.ts +8 -0
- package/dist/components/forms/color-picker/color-picker.class.d.ts.map +1 -1
- package/dist/components/forms/color-picker/color-picker.class.js +26 -0
- package/dist/components/forms/color-picker/color-picker.class.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 +7 -3
- package/dist/components/forms/color-picker/color-picker.styles.js.map +1 -1
- package/dist/components/forms/combobox/combobox.class.d.ts +65 -10
- package/dist/components/forms/combobox/combobox.class.d.ts.map +1 -1
- package/dist/components/forms/combobox/combobox.class.js +134 -34
- 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 +24 -3
- package/dist/components/forms/combobox/combobox.styles.js.map +1 -1
- package/dist/components/forms/date-picker/date-input.class.d.ts +6 -0
- package/dist/components/forms/date-picker/date-input.class.d.ts.map +1 -1
- package/dist/components/forms/date-picker/date-input.class.js +10 -17
- 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 +9 -4
- package/dist/components/forms/date-picker/date-input.styles.js.map +1 -1
- package/dist/components/forms/date-picker/date-picker.class.d.ts +3 -0
- package/dist/components/forms/date-picker/date-picker.class.d.ts.map +1 -1
- package/dist/components/forms/date-picker/date-picker.class.js +3 -0
- package/dist/components/forms/date-picker/date-picker.class.js.map +1 -1
- package/dist/components/forms/date-picker/date-picker.styles.d.ts.map +1 -1
- package/dist/components/forms/date-picker/date-picker.styles.js +8 -5
- package/dist/components/forms/date-picker/date-picker.styles.js.map +1 -1
- package/dist/components/forms/emoji-picker/emoji-picker.class.d.ts +7 -1
- package/dist/components/forms/emoji-picker/emoji-picker.class.d.ts.map +1 -1
- package/dist/components/forms/emoji-picker/emoji-picker.class.js +19 -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 +16 -11
- package/dist/components/forms/emoji-picker/emoji-picker.styles.js.map +1 -1
- package/dist/components/forms/icon-button/icon-button.class.d.ts +19 -0
- package/dist/components/forms/icon-button/icon-button.class.d.ts.map +1 -1
- package/dist/components/forms/icon-button/icon-button.class.js +57 -2
- package/dist/components/forms/icon-button/icon-button.class.js.map +1 -1
- package/dist/components/forms/icon-button/icon-button.styles.js +2 -2
- package/dist/components/forms/input/input.class.d.ts +26 -1
- package/dist/components/forms/input/input.class.d.ts.map +1 -1
- package/dist/components/forms/input/input.class.js +56 -8
- package/dist/components/forms/input/input.class.js.map +1 -1
- package/dist/components/forms/locale-picker/locale-picker.class.d.ts +6 -0
- package/dist/components/forms/locale-picker/locale-picker.class.d.ts.map +1 -1
- package/dist/components/forms/locale-picker/locale-picker.class.js +7 -5
- package/dist/components/forms/locale-picker/locale-picker.class.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 +11 -9
- package/dist/components/forms/locale-picker/locale-picker.styles.js.map +1 -1
- package/dist/components/forms/phone-input/phone-input.class.d.ts +11 -0
- package/dist/components/forms/phone-input/phone-input.class.d.ts.map +1 -1
- package/dist/components/forms/phone-input/phone-input.class.js +37 -20
- package/dist/components/forms/phone-input/phone-input.class.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 +23 -9
- package/dist/components/forms/phone-input/phone-input.styles.js.map +1 -1
- package/dist/components/forms/radio/radio-group.class.d.ts +5 -0
- package/dist/components/forms/radio/radio-group.class.d.ts.map +1 -1
- package/dist/components/forms/radio/radio-group.class.js +44 -5
- package/dist/components/forms/radio/radio-group.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 +91 -20
- 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 +7 -1
- package/dist/components/forms/rubric-form/rubric-form.styles.js.map +1 -1
- package/dist/components/forms/select/select.class.d.ts +26 -4
- package/dist/components/forms/select/select.class.d.ts.map +1 -1
- package/dist/components/forms/select/select.class.js +65 -28
- 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 +8 -3
- package/dist/components/forms/select/select.styles.js.map +1 -1
- package/dist/components/forms/slider/slider.class.d.ts +8 -6
- package/dist/components/forms/slider/slider.class.d.ts.map +1 -1
- package/dist/components/forms/slider/slider.class.js +21 -28
- package/dist/components/forms/slider/slider.class.js.map +1 -1
- package/dist/components/forms/swatch-picker/swatch-picker.class.d.ts +20 -0
- package/dist/components/forms/swatch-picker/swatch-picker.class.d.ts.map +1 -1
- package/dist/components/forms/swatch-picker/swatch-picker.class.js +61 -14
- package/dist/components/forms/swatch-picker/swatch-picker.class.js.map +1 -1
- package/dist/components/forms/swatch-picker/swatch-picker.styles.d.ts.map +1 -1
- package/dist/components/forms/swatch-picker/swatch-picker.styles.js +38 -6
- package/dist/components/forms/swatch-picker/swatch-picker.styles.js.map +1 -1
- package/dist/components/forms/textarea/textarea.class.d.ts +35 -0
- package/dist/components/forms/textarea/textarea.class.d.ts.map +1 -1
- package/dist/components/forms/textarea/textarea.class.js +59 -8
- package/dist/components/forms/textarea/textarea.class.js.map +1 -1
- package/dist/components/forms/time-range/time-range.class.d.ts +19 -0
- package/dist/components/forms/time-range/time-range.class.d.ts.map +1 -1
- package/dist/components/forms/time-range/time-range.class.js +80 -23
- 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 +60 -12
- 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 -0
- package/dist/components/forms/token-input/token-input.class.d.ts.map +1 -1
- package/dist/components/forms/token-input/token-input.class.js +27 -4
- package/dist/components/forms/token-input/token-input.class.js.map +1 -1
- package/dist/components/forms/token-input/token-input.styles.d.ts.map +1 -1
- package/dist/components/forms/token-input/token-input.styles.js +35 -9
- 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 -3
- 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 +33 -24
- package/dist/components/layout/app-rail/app-rail-item.class.js.map +1 -1
- package/dist/components/layout/app-rail/app-rail-item.styles.d.ts.map +1 -1
- package/dist/components/layout/app-rail/app-rail-item.styles.js +18 -12
- package/dist/components/layout/app-rail/app-rail-item.styles.js.map +1 -1
- package/dist/components/layout/app-rail/app-rail.class.d.ts +25 -4
- package/dist/components/layout/app-rail/app-rail.class.d.ts.map +1 -1
- package/dist/components/layout/app-rail/app-rail.class.js +84 -4
- package/dist/components/layout/app-rail/app-rail.class.js.map +1 -1
- package/dist/components/layout/app-rail/app-rail.styles.d.ts.map +1 -1
- package/dist/components/layout/app-rail/app-rail.styles.js +21 -2
- package/dist/components/layout/app-rail/app-rail.styles.js.map +1 -1
- package/dist/components/layout/breadcrumb/breadcrumb-item.class.d.ts +4 -3
- package/dist/components/layout/breadcrumb/breadcrumb-item.class.d.ts.map +1 -1
- package/dist/components/layout/breadcrumb/breadcrumb-item.class.js +14 -9
- 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 +16 -5
- 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 +15 -8
- package/dist/components/layout/breadcrumb/breadcrumb.styles.js.map +1 -1
- package/dist/components/layout/card/card.class.d.ts +22 -8
- package/dist/components/layout/card/card.class.d.ts.map +1 -1
- package/dist/components/layout/card/card.class.js +91 -40
- package/dist/components/layout/card/card.class.js.map +1 -1
- package/dist/components/layout/card/card.styles.d.ts.map +1 -1
- package/dist/components/layout/card/card.styles.js +33 -20
- package/dist/components/layout/card/card.styles.js.map +1 -1
- package/dist/components/layout/carousel/carousel.class.d.ts +8 -4
- package/dist/components/layout/carousel/carousel.class.d.ts.map +1 -1
- package/dist/components/layout/carousel/carousel.class.js +133 -65
- package/dist/components/layout/carousel/carousel.class.js.map +1 -1
- package/dist/components/layout/carousel/carousel.styles.d.ts.map +1 -1
- package/dist/components/layout/carousel/carousel.styles.js +38 -28
- package/dist/components/layout/carousel/carousel.styles.js.map +1 -1
- package/dist/components/layout/command-palette/command-palette.class.d.ts +31 -6
- package/dist/components/layout/command-palette/command-palette.class.d.ts.map +1 -1
- package/dist/components/layout/command-palette/command-palette.class.js +369 -66
- package/dist/components/layout/command-palette/command-palette.class.js.map +1 -1
- package/dist/components/layout/command-palette/command-palette.styles.d.ts.map +1 -1
- package/dist/components/layout/command-palette/command-palette.styles.js +164 -18
- package/dist/components/layout/command-palette/command-palette.styles.js.map +1 -1
- package/dist/components/layout/dashboard-grid/dashboard-grid.class.d.ts +12 -8
- package/dist/components/layout/dashboard-grid/dashboard-grid.class.d.ts.map +1 -1
- package/dist/components/layout/dashboard-grid/dashboard-grid.class.js +199 -111
- package/dist/components/layout/dashboard-grid/dashboard-grid.class.js.map +1 -1
- package/dist/components/layout/dashboard-grid/dashboard-grid.styles.d.ts.map +1 -1
- package/dist/components/layout/dashboard-grid/dashboard-grid.styles.js +27 -18
- package/dist/components/layout/dashboard-grid/dashboard-grid.styles.js.map +1 -1
- package/dist/components/layout/details/accordion.class.d.ts +6 -3
- package/dist/components/layout/details/accordion.class.d.ts.map +1 -1
- package/dist/components/layout/details/accordion.class.js +47 -14
- package/dist/components/layout/details/accordion.class.js.map +1 -1
- package/dist/components/layout/dock-panel/dock-panel.class.d.ts +6 -6
- package/dist/components/layout/dock-panel/dock-panel.class.d.ts.map +1 -1
- package/dist/components/layout/dock-panel/dock-panel.class.js +76 -74
- package/dist/components/layout/dock-panel/dock-panel.class.js.map +1 -1
- package/dist/components/layout/dock-panel/dock-panel.styles.d.ts.map +1 -1
- package/dist/components/layout/dock-panel/dock-panel.styles.js +39 -36
- package/dist/components/layout/dock-panel/dock-panel.styles.js.map +1 -1
- package/dist/components/layout/drilldown-panel/drilldown-panel.class.d.ts.map +1 -1
- package/dist/components/layout/drilldown-panel/drilldown-panel.class.js +1 -14
- package/dist/components/layout/drilldown-panel/drilldown-panel.class.js.map +1 -1
- package/dist/components/layout/filter-bar/filter-bar.class.d.ts +17 -16
- package/dist/components/layout/filter-bar/filter-bar.class.d.ts.map +1 -1
- package/dist/components/layout/filter-bar/filter-bar.class.js +126 -60
- package/dist/components/layout/filter-bar/filter-bar.class.js.map +1 -1
- package/dist/components/layout/menu/menu.class.d.ts +24 -19
- package/dist/components/layout/menu/menu.class.d.ts.map +1 -1
- package/dist/components/layout/menu/menu.class.js +108 -76
- package/dist/components/layout/menu/menu.class.js.map +1 -1
- package/dist/components/layout/menu/menu.styles.d.ts.map +1 -1
- package/dist/components/layout/menu/menu.styles.js +28 -19
- package/dist/components/layout/menu/menu.styles.js.map +1 -1
- package/dist/components/layout/reorder-list/reorder-list.class.d.ts +5 -6
- package/dist/components/layout/reorder-list/reorder-list.class.d.ts.map +1 -1
- package/dist/components/layout/reorder-list/reorder-list.class.js +52 -32
- package/dist/components/layout/reorder-list/reorder-list.class.js.map +1 -1
- package/dist/components/layout/reorder-list/reorder-list.d.ts +2 -1
- package/dist/components/layout/reorder-list/reorder-list.d.ts.map +1 -1
- package/dist/components/layout/reorder-list/reorder-list.js +5 -4
- package/dist/components/layout/reorder-list/reorder-list.js.map +1 -1
- package/dist/components/layout/responsive-panel/responsive-panel.class.d.ts +11 -9
- package/dist/components/layout/responsive-panel/responsive-panel.class.d.ts.map +1 -1
- package/dist/components/layout/responsive-panel/responsive-panel.class.js +87 -45
- package/dist/components/layout/responsive-panel/responsive-panel.class.js.map +1 -1
- package/dist/components/layout/scroller/scroller.class.d.ts +6 -5
- package/dist/components/layout/scroller/scroller.class.d.ts.map +1 -1
- package/dist/components/layout/scroller/scroller.class.js +89 -37
- package/dist/components/layout/scroller/scroller.class.js.map +1 -1
- package/dist/components/layout/scroller/scroller.styles.d.ts.map +1 -1
- package/dist/components/layout/scroller/scroller.styles.js +27 -22
- package/dist/components/layout/scroller/scroller.styles.js.map +1 -1
- package/dist/components/layout/segmented/segmented.class.d.ts +19 -5
- package/dist/components/layout/segmented/segmented.class.d.ts.map +1 -1
- package/dist/components/layout/segmented/segmented.class.js +112 -34
- 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 +26 -18
- package/dist/components/layout/segmented/segmented.styles.js.map +1 -1
- package/dist/components/layout/split/split.class.d.ts +34 -16
- package/dist/components/layout/split/split.class.d.ts.map +1 -1
- package/dist/components/layout/split/split.class.js +340 -190
- package/dist/components/layout/split/split.class.js.map +1 -1
- package/dist/components/layout/stepper/stepper.class.d.ts +14 -14
- package/dist/components/layout/stepper/stepper.class.d.ts.map +1 -1
- package/dist/components/layout/stepper/stepper.class.js +106 -74
- package/dist/components/layout/stepper/stepper.class.js.map +1 -1
- package/dist/components/layout/stepper/stepper.styles.d.ts.map +1 -1
- package/dist/components/layout/stepper/stepper.styles.js +24 -18
- package/dist/components/layout/stepper/stepper.styles.js.map +1 -1
- package/dist/components/layout/tabs/tabs.styles.d.ts.map +1 -1
- package/dist/components/layout/tabs/tabs.styles.js +22 -15
- package/dist/components/layout/tabs/tabs.styles.js.map +1 -1
- package/dist/components/layout/virtual-list/virtual-list.class.d.ts +23 -19
- package/dist/components/layout/virtual-list/virtual-list.class.d.ts.map +1 -1
- package/dist/components/layout/virtual-list/virtual-list.class.js +171 -100
- package/dist/components/layout/virtual-list/virtual-list.class.js.map +1 -1
- package/dist/components/layout/widget/widget.class.d.ts +23 -6
- package/dist/components/layout/widget/widget.class.d.ts.map +1 -1
- package/dist/components/layout/widget/widget.class.js +188 -59
- package/dist/components/layout/widget/widget.class.js.map +1 -1
- package/dist/components/layout/widget/widget.styles.d.ts.map +1 -1
- package/dist/components/layout/widget/widget.styles.js +65 -40
- package/dist/components/layout/widget/widget.styles.js.map +1 -1
- package/dist/components/media/animated-image/animated-image.class.d.ts +2 -0
- package/dist/components/media/animated-image/animated-image.class.d.ts.map +1 -1
- package/dist/components/media/animated-image/animated-image.class.js +17 -17
- package/dist/components/media/animated-image/animated-image.class.js.map +1 -1
- package/dist/components/media/animation/animation.class.d.ts +3 -0
- package/dist/components/media/animation/animation.class.d.ts.map +1 -1
- package/dist/components/media/animation/animation.class.js +35 -21
- package/dist/components/media/animation/animation.class.js.map +1 -1
- package/dist/components/media/attachment-chip/attachment-chip.class.d.ts +4 -17
- package/dist/components/media/attachment-chip/attachment-chip.class.d.ts.map +1 -1
- package/dist/components/media/attachment-chip/attachment-chip.class.js +20 -50
- package/dist/components/media/attachment-chip/attachment-chip.class.js.map +1 -1
- package/dist/components/media/attachment-chip/attachment-chip.styles.d.ts.map +1 -1
- package/dist/components/media/attachment-chip/attachment-chip.styles.js +9 -10
- package/dist/components/media/attachment-chip/attachment-chip.styles.js.map +1 -1
- package/dist/components/media/attachment-chip/file-size.d.ts +11 -0
- package/dist/components/media/attachment-chip/file-size.d.ts.map +1 -0
- package/dist/components/media/attachment-chip/file-size.js +28 -0
- package/dist/components/media/attachment-chip/file-size.js.map +1 -0
- package/dist/components/media/attachment-trigger/attachment-trigger.class.d.ts +7 -2
- package/dist/components/media/attachment-trigger/attachment-trigger.class.d.ts.map +1 -1
- package/dist/components/media/attachment-trigger/attachment-trigger.class.js +36 -19
- package/dist/components/media/attachment-trigger/attachment-trigger.class.js.map +1 -1
- package/dist/components/media/av-player/av-player.class.d.ts +5 -1
- package/dist/components/media/av-player/av-player.class.d.ts.map +1 -1
- package/dist/components/media/av-player/av-player.class.js +115 -38
- package/dist/components/media/av-player/av-player.class.js.map +1 -1
- package/dist/components/media/av-player/av-player.d.ts +1 -0
- package/dist/components/media/av-player/av-player.d.ts.map +1 -1
- package/dist/components/media/av-player/av-player.js +1 -0
- package/dist/components/media/av-player/av-player.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 +2 -0
- package/dist/components/media/av-player/av-player.styles.js.map +1 -1
- package/dist/components/media/avatar-group/avatar-group.class.d.ts +3 -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 +34 -6
- package/dist/components/media/avatar-group/avatar-group.class.js.map +1 -1
- package/dist/components/media/file-icon/file-icon.class.d.ts.map +1 -1
- package/dist/components/media/file-icon/file-icon.class.js +5 -2
- package/dist/components/media/file-icon/file-icon.class.js.map +1 -1
- package/dist/components/media/file-input/file-input.class.d.ts +24 -10
- package/dist/components/media/file-input/file-input.class.d.ts.map +1 -1
- package/dist/components/media/file-input/file-input.class.js +69 -31
- package/dist/components/media/file-input/file-input.class.js.map +1 -1
- package/dist/components/media/file-input/file-input.styles.d.ts.map +1 -1
- package/dist/components/media/file-input/file-input.styles.js +12 -0
- package/dist/components/media/file-input/file-input.styles.js.map +1 -1
- package/dist/components/media/flag/flag.class.d.ts +7 -3
- package/dist/components/media/flag/flag.class.d.ts.map +1 -1
- package/dist/components/media/flag/flag.class.js +29 -5
- package/dist/components/media/flag/flag.class.js.map +1 -1
- package/dist/components/media/flag/flag.styles.d.ts.map +1 -1
- package/dist/components/media/flag/flag.styles.js +6 -0
- package/dist/components/media/flag/flag.styles.js.map +1 -1
- package/dist/components/media/image-comparer/image-comparer.class.d.ts +7 -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 +17 -1
- package/dist/components/media/image-comparer/image-comparer.class.js.map +1 -1
- package/dist/components/media/image-viewer/image-viewer.class.d.ts +12 -2
- package/dist/components/media/image-viewer/image-viewer.class.d.ts.map +1 -1
- package/dist/components/media/image-viewer/image-viewer.class.js +60 -15
- 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 +21 -7
- package/dist/components/media/image-viewer/image-viewer.styles.js.map +1 -1
- package/dist/components/media/lightbox/lightbox.class.d.ts.map +1 -1
- package/dist/components/media/lightbox/lightbox.class.js +45 -3
- package/dist/components/media/lightbox/lightbox.class.js.map +1 -1
- package/dist/components/media/map/map-loader.d.ts +2 -1
- package/dist/components/media/map/map-loader.d.ts.map +1 -1
- package/dist/components/media/map/map-loader.js +2 -1
- package/dist/components/media/map/map-loader.js.map +1 -1
- package/dist/components/media/map/map.class.d.ts +10 -1
- package/dist/components/media/map/map.class.d.ts.map +1 -1
- package/dist/components/media/map/map.class.js +47 -8
- package/dist/components/media/map/map.class.js.map +1 -1
- package/dist/components/media/media-card/media-card.class.d.ts +22 -2
- package/dist/components/media/media-card/media-card.class.d.ts.map +1 -1
- package/dist/components/media/media-card/media-card.class.js +31 -3
- package/dist/components/media/media-card/media-card.class.js.map +1 -1
- package/dist/components/media/playback/playback.class.d.ts +4 -6
- package/dist/components/media/playback/playback.class.d.ts.map +1 -1
- package/dist/components/media/playback/playback.class.js +7 -22
- package/dist/components/media/playback/playback.class.js.map +1 -1
- package/dist/components/media/qr-code/qr-code.class.d.ts +1 -6
- package/dist/components/media/qr-code/qr-code.class.d.ts.map +1 -1
- package/dist/components/media/qr-code/qr-code.class.js +31 -67
- 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 +15 -1
- package/dist/components/media/zoomable-frame/zoomable-frame.class.js.map +1 -1
- package/dist/components/media/zoomable-frame/zoomable-frame.styles.d.ts.map +1 -1
- package/dist/components/media/zoomable-frame/zoomable-frame.styles.js +3 -0
- package/dist/components/media/zoomable-frame/zoomable-frame.styles.js.map +1 -1
- package/dist/components/overlays/callout/callout.class.d.ts +8 -5
- package/dist/components/overlays/callout/callout.class.d.ts.map +1 -1
- package/dist/components/overlays/callout/callout.class.js +26 -21
- package/dist/components/overlays/callout/callout.class.js.map +1 -1
- package/dist/components/overlays/chip/chip-group.class.d.ts +3 -0
- package/dist/components/overlays/chip/chip-group.class.d.ts.map +1 -1
- package/dist/components/overlays/chip/chip-group.class.js +22 -1
- package/dist/components/overlays/chip/chip-group.class.js.map +1 -1
- package/dist/components/overlays/chip/chip.class.d.ts +26 -15
- package/dist/components/overlays/chip/chip.class.d.ts.map +1 -1
- package/dist/components/overlays/chip/chip.class.js +58 -32
- 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 +28 -19
- package/dist/components/overlays/chip/chip.styles.js.map +1 -1
- package/dist/components/overlays/dialog/dialog.class.d.ts +1 -0
- package/dist/components/overlays/dialog/dialog.class.d.ts.map +1 -1
- package/dist/components/overlays/dialog/dialog.class.js +6 -5
- package/dist/components/overlays/dialog/dialog.class.js.map +1 -1
- package/dist/components/overlays/empty/empty.class.d.ts +11 -2
- package/dist/components/overlays/empty/empty.class.d.ts.map +1 -1
- package/dist/components/overlays/empty/empty.class.js +25 -2
- package/dist/components/overlays/empty/empty.class.js.map +1 -1
- package/dist/components/overlays/empty/empty.styles.d.ts.map +1 -1
- package/dist/components/overlays/empty/empty.styles.js +6 -0
- package/dist/components/overlays/empty/empty.styles.js.map +1 -1
- package/dist/components/overlays/kbd/kbd.class.js +1 -1
- package/dist/components/overlays/kbd/kbd.class.js.map +1 -1
- package/dist/components/overlays/overlay/overlay.styles.d.ts.map +1 -1
- package/dist/components/overlays/overlay/overlay.styles.js +1 -2
- package/dist/components/overlays/overlay/overlay.styles.js.map +1 -1
- package/dist/components/overlays/overlay/popover.class.d.ts +33 -18
- package/dist/components/overlays/overlay/popover.class.d.ts.map +1 -1
- package/dist/components/overlays/overlay/popover.class.js +166 -56
- package/dist/components/overlays/overlay/popover.class.js.map +1 -1
- package/dist/components/overlays/overlay/tooltip.class.d.ts +20 -1
- package/dist/components/overlays/overlay/tooltip.class.d.ts.map +1 -1
- package/dist/components/overlays/overlay/tooltip.class.js +169 -17
- package/dist/components/overlays/overlay/tooltip.class.js.map +1 -1
- package/dist/components/overlays/progress/progress-bar.class.d.ts +3 -0
- package/dist/components/overlays/progress/progress-bar.class.d.ts.map +1 -1
- package/dist/components/overlays/progress/progress-bar.class.js +13 -4
- package/dist/components/overlays/progress/progress-bar.class.js.map +1 -1
- package/dist/components/overlays/progress/progress-ring.class.d.ts +2 -0
- package/dist/components/overlays/progress/progress-ring.class.d.ts.map +1 -1
- package/dist/components/overlays/progress/progress-ring.class.js +13 -4
- package/dist/components/overlays/progress/progress-ring.class.js.map +1 -1
- package/dist/components/overlays/progress/progress.styles.js +3 -3
- package/dist/components/overlays/rating/rating.class.d.ts +7 -0
- package/dist/components/overlays/rating/rating.class.d.ts.map +1 -1
- package/dist/components/overlays/rating/rating.class.js +17 -0
- package/dist/components/overlays/rating/rating.class.js.map +1 -1
- package/dist/components/overlays/skeleton/skeleton.class.d.ts.map +1 -1
- package/dist/components/overlays/skeleton/skeleton.class.js +1 -14
- package/dist/components/overlays/skeleton/skeleton.class.js.map +1 -1
- package/dist/components/overlays/spinner/spinner.class.d.ts +2 -1
- package/dist/components/overlays/spinner/spinner.class.d.ts.map +1 -1
- package/dist/components/overlays/spinner/spinner.class.js +2 -1
- package/dist/components/overlays/spinner/spinner.class.js.map +1 -1
- package/dist/components/overlays/spinner/spinner.styles.js +1 -1
- package/dist/components/overlays/toast/toast-item.class.d.ts +2 -0
- package/dist/components/overlays/toast/toast-item.class.d.ts.map +1 -1
- package/dist/components/overlays/toast/toast-item.class.js +19 -1
- package/dist/components/overlays/toast/toast-item.class.js.map +1 -1
- package/dist/components/overlays/toast/toast-item.styles.d.ts.map +1 -1
- package/dist/components/overlays/toast/toast-item.styles.js +9 -1
- package/dist/components/overlays/toast/toast-item.styles.js.map +1 -1
- package/dist/components/retrieval/chunk-inspector/chunk-inspector.class.d.ts +1 -0
- package/dist/components/retrieval/chunk-inspector/chunk-inspector.class.d.ts.map +1 -1
- package/dist/components/retrieval/chunk-inspector/chunk-inspector.class.js +17 -7
- package/dist/components/retrieval/chunk-inspector/chunk-inspector.class.js.map +1 -1
- package/dist/components/retrieval/chunk-inspector/chunk-inspector.styles.d.ts.map +1 -1
- package/dist/components/retrieval/chunk-inspector/chunk-inspector.styles.js +6 -0
- package/dist/components/retrieval/chunk-inspector/chunk-inspector.styles.js.map +1 -1
- package/dist/components/retrieval/citation-badge/citation-badge.class.js +1 -1
- package/dist/components/retrieval/citation-badge/citation-badge.class.js.map +1 -1
- package/dist/components/retrieval/citation-badge/citation-badge.styles.d.ts.map +1 -1
- package/dist/components/retrieval/citation-badge/citation-badge.styles.js +2 -0
- package/dist/components/retrieval/citation-badge/citation-badge.styles.js.map +1 -1
- package/dist/components/retrieval/claim-evidence/claim-evidence.class.d.ts +50 -0
- package/dist/components/retrieval/claim-evidence/claim-evidence.class.d.ts.map +1 -0
- package/dist/components/retrieval/claim-evidence/claim-evidence.class.js +133 -0
- package/dist/components/retrieval/claim-evidence/claim-evidence.class.js.map +1 -0
- package/dist/components/retrieval/claim-evidence/claim-evidence.d.ts +5 -0
- package/dist/components/retrieval/claim-evidence/claim-evidence.d.ts.map +1 -0
- package/dist/components/retrieval/claim-evidence/claim-evidence.js +8 -0
- package/dist/components/retrieval/claim-evidence/claim-evidence.js.map +1 -0
- package/dist/components/retrieval/claim-evidence/claim-evidence.styles.d.ts +2 -0
- package/dist/components/retrieval/claim-evidence/claim-evidence.styles.d.ts.map +1 -0
- package/dist/components/retrieval/claim-evidence/claim-evidence.styles.js +84 -0
- package/dist/components/retrieval/claim-evidence/claim-evidence.styles.js.map +1 -0
- package/dist/components/retrieval/community-card/community-card.class.d.ts.map +1 -1
- package/dist/components/retrieval/community-card/community-card.class.js +9 -3
- package/dist/components/retrieval/community-card/community-card.class.js.map +1 -1
- package/dist/components/retrieval/community-card/community-card.styles.d.ts.map +1 -1
- package/dist/components/retrieval/community-card/community-card.styles.js +6 -0
- package/dist/components/retrieval/community-card/community-card.styles.js.map +1 -1
- package/dist/components/retrieval/embedding-explorer/embedding-explorer.class.d.ts +57 -0
- package/dist/components/retrieval/embedding-explorer/embedding-explorer.class.d.ts.map +1 -0
- package/dist/components/retrieval/embedding-explorer/embedding-explorer.class.js +175 -0
- package/dist/components/retrieval/embedding-explorer/embedding-explorer.class.js.map +1 -0
- package/dist/components/retrieval/embedding-explorer/embedding-explorer.d.ts +2 -0
- package/dist/components/retrieval/embedding-explorer/embedding-explorer.d.ts.map +1 -0
- package/dist/components/retrieval/embedding-explorer/embedding-explorer.js +5 -0
- package/dist/components/retrieval/embedding-explorer/embedding-explorer.js.map +1 -0
- package/dist/components/retrieval/embedding-explorer/embedding-explorer.styles.d.ts +2 -0
- package/dist/components/retrieval/embedding-explorer/embedding-explorer.styles.d.ts.map +1 -0
- package/dist/components/retrieval/embedding-explorer/embedding-explorer.styles.js +56 -0
- package/dist/components/retrieval/embedding-explorer/embedding-explorer.styles.js.map +1 -0
- package/dist/components/retrieval/entity-card/entity-card.class.d.ts.map +1 -1
- package/dist/components/retrieval/entity-card/entity-card.class.js +11 -16
- package/dist/components/retrieval/entity-card/entity-card.class.js.map +1 -1
- package/dist/components/retrieval/entity-chip/entity-chip.class.d.ts.map +1 -1
- package/dist/components/retrieval/entity-chip/entity-chip.class.js +3 -1
- package/dist/components/retrieval/entity-chip/entity-chip.class.js.map +1 -1
- package/dist/components/retrieval/entity-chip/entity-chip.styles.d.ts.map +1 -1
- package/dist/components/retrieval/entity-chip/entity-chip.styles.js +4 -1
- package/dist/components/retrieval/entity-chip/entity-chip.styles.js.map +1 -1
- package/dist/components/retrieval/entity-dossier/entity-dossier.class.d.ts.map +1 -1
- package/dist/components/retrieval/entity-dossier/entity-dossier.class.js +1 -14
- 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 +4 -1
- package/dist/components/retrieval/graph/graph-canvas.js.map +1 -1
- package/dist/components/retrieval/graph/graph.class.d.ts +7 -0
- package/dist/components/retrieval/graph/graph.class.d.ts.map +1 -1
- package/dist/components/retrieval/graph/graph.class.js +124 -38
- 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 +6 -1
- package/dist/components/retrieval/graph/graph.styles.js.map +1 -1
- package/dist/components/retrieval/graph-legend/graph-legend.class.d.ts.map +1 -1
- package/dist/components/retrieval/graph-legend/graph-legend.class.js +1 -14
- 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 +3 -0
- package/dist/components/retrieval/graph-legend/graph-legend.styles.js.map +1 -1
- package/dist/components/retrieval/grounding-summary/grounding-summary.class.d.ts +8 -1
- package/dist/components/retrieval/grounding-summary/grounding-summary.class.d.ts.map +1 -1
- package/dist/components/retrieval/grounding-summary/grounding-summary.class.js +19 -2
- package/dist/components/retrieval/grounding-summary/grounding-summary.class.js.map +1 -1
- package/dist/components/retrieval/grounding-summary/grounding-summary.d.ts +1 -0
- package/dist/components/retrieval/grounding-summary/grounding-summary.d.ts.map +1 -1
- package/dist/components/retrieval/grounding-summary/grounding-summary.js +1 -0
- package/dist/components/retrieval/grounding-summary/grounding-summary.js.map +1 -1
- package/dist/components/retrieval/index.d.ts +31 -0
- package/dist/components/retrieval/index.d.ts.map +1 -0
- package/dist/components/retrieval/index.js +31 -0
- package/dist/components/retrieval/index.js.map +1 -0
- package/dist/components/retrieval/ingestion-queue/ingestion-queue.class.d.ts +8 -5
- package/dist/components/retrieval/ingestion-queue/ingestion-queue.class.d.ts.map +1 -1
- package/dist/components/retrieval/ingestion-queue/ingestion-queue.class.js +53 -16
- package/dist/components/retrieval/ingestion-queue/ingestion-queue.class.js.map +1 -1
- package/dist/components/retrieval/ingestion-queue/ingestion-queue.d.ts +4 -0
- package/dist/components/retrieval/ingestion-queue/ingestion-queue.d.ts.map +1 -1
- package/dist/components/retrieval/ingestion-queue/ingestion-queue.js +4 -0
- package/dist/components/retrieval/ingestion-queue/ingestion-queue.js.map +1 -1
- package/dist/components/retrieval/ingestion-queue/ingestion-queue.styles.d.ts.map +1 -1
- package/dist/components/retrieval/ingestion-queue/ingestion-queue.styles.js +5 -0
- package/dist/components/retrieval/ingestion-queue/ingestion-queue.styles.js.map +1 -1
- package/dist/components/retrieval/knowledge-base/knowledge-base.class.d.ts +0 -5
- package/dist/components/retrieval/knowledge-base/knowledge-base.class.d.ts.map +1 -1
- package/dist/components/retrieval/knowledge-base/knowledge-base.class.js +12 -12
- package/dist/components/retrieval/knowledge-base/knowledge-base.class.js.map +1 -1
- package/dist/components/retrieval/knowledge-base-admin/knowledge-base-admin.class.d.ts +75 -0
- package/dist/components/retrieval/knowledge-base-admin/knowledge-base-admin.class.d.ts.map +1 -0
- package/dist/components/retrieval/knowledge-base-admin/knowledge-base-admin.class.js +179 -0
- package/dist/components/retrieval/knowledge-base-admin/knowledge-base-admin.class.js.map +1 -0
- package/dist/components/retrieval/knowledge-base-admin/knowledge-base-admin.d.ts +4 -0
- package/dist/components/retrieval/knowledge-base-admin/knowledge-base-admin.d.ts.map +1 -0
- package/dist/components/retrieval/knowledge-base-admin/knowledge-base-admin.js +7 -0
- package/dist/components/retrieval/knowledge-base-admin/knowledge-base-admin.js.map +1 -0
- package/dist/components/retrieval/knowledge-base-admin/knowledge-base-admin.styles.d.ts +2 -0
- package/dist/components/retrieval/knowledge-base-admin/knowledge-base-admin.styles.d.ts.map +1 -0
- package/dist/components/retrieval/knowledge-base-admin/knowledge-base-admin.styles.js +59 -0
- package/dist/components/retrieval/knowledge-base-admin/knowledge-base-admin.styles.js.map +1 -0
- package/dist/components/retrieval/knowledge-graph-explorer/knowledge-graph-explorer.class.d.ts +13 -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 +114 -24
- package/dist/components/retrieval/knowledge-graph-explorer/knowledge-graph-explorer.class.js.map +1 -1
- package/dist/components/retrieval/knowledge-graph-explorer/knowledge-graph-explorer.styles.d.ts.map +1 -1
- package/dist/components/retrieval/knowledge-graph-explorer/knowledge-graph-explorer.styles.js +5 -0
- package/dist/components/retrieval/knowledge-graph-explorer/knowledge-graph-explorer.styles.js.map +1 -1
- package/dist/components/retrieval/memory-panel/memory-panel.class.d.ts +6 -2
- package/dist/components/retrieval/memory-panel/memory-panel.class.d.ts.map +1 -1
- package/dist/components/retrieval/memory-panel/memory-panel.class.js +71 -17
- package/dist/components/retrieval/memory-panel/memory-panel.class.js.map +1 -1
- package/dist/components/retrieval/memory-panel/memory-panel.styles.d.ts.map +1 -1
- package/dist/components/retrieval/memory-panel/memory-panel.styles.js +6 -0
- package/dist/components/retrieval/memory-panel/memory-panel.styles.js.map +1 -1
- package/dist/components/retrieval/mind-map/mind-map.class.d.ts +10 -0
- package/dist/components/retrieval/mind-map/mind-map.class.d.ts.map +1 -1
- package/dist/components/retrieval/mind-map/mind-map.class.js +96 -3
- package/dist/components/retrieval/mind-map/mind-map.class.js.map +1 -1
- package/dist/components/retrieval/neighbor-list/neighbor-list.class.d.ts.map +1 -1
- package/dist/components/retrieval/neighbor-list/neighbor-list.class.js +23 -7
- package/dist/components/retrieval/neighbor-list/neighbor-list.class.js.map +1 -1
- package/dist/components/retrieval/neighbor-list/neighbor-list.styles.d.ts.map +1 -1
- package/dist/components/retrieval/neighbor-list/neighbor-list.styles.js +3 -1
- package/dist/components/retrieval/neighbor-list/neighbor-list.styles.js.map +1 -1
- package/dist/components/retrieval/node-palette/node-palette.class.d.ts +8 -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 +107 -15
- package/dist/components/retrieval/node-palette/node-palette.class.js.map +1 -1
- package/dist/components/retrieval/node-palette/node-palette.styles.d.ts.map +1 -1
- package/dist/components/retrieval/node-palette/node-palette.styles.js +9 -1
- package/dist/components/retrieval/node-palette/node-palette.styles.js.map +1 -1
- package/dist/components/retrieval/path-strip/path-strip.class.d.ts +4 -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 +28 -1
- package/dist/components/retrieval/path-strip/path-strip.class.js.map +1 -1
- package/dist/components/retrieval/provenance-panel/provenance-panel.class.d.ts.map +1 -1
- package/dist/components/retrieval/provenance-panel/provenance-panel.class.js +2 -1
- package/dist/components/retrieval/provenance-panel/provenance-panel.class.js.map +1 -1
- package/dist/components/retrieval/provenance-panel/provenance-panel.styles.d.ts.map +1 -1
- package/dist/components/retrieval/provenance-panel/provenance-panel.styles.js +3 -0
- package/dist/components/retrieval/provenance-panel/provenance-panel.styles.js.map +1 -1
- package/dist/components/retrieval/rag-answer/rag-answer.class.d.ts +56 -0
- package/dist/components/retrieval/rag-answer/rag-answer.class.d.ts.map +1 -0
- package/dist/components/retrieval/rag-answer/rag-answer.class.js +105 -0
- package/dist/components/retrieval/rag-answer/rag-answer.class.js.map +1 -0
- package/dist/components/retrieval/rag-answer/rag-answer.d.ts +9 -0
- package/dist/components/retrieval/rag-answer/rag-answer.d.ts.map +1 -0
- package/dist/components/retrieval/rag-answer/rag-answer.js +12 -0
- package/dist/components/retrieval/rag-answer/rag-answer.js.map +1 -0
- package/dist/components/retrieval/rag-answer/rag-answer.styles.d.ts +2 -0
- package/dist/components/retrieval/rag-answer/rag-answer.styles.d.ts.map +1 -0
- package/dist/components/retrieval/rag-answer/rag-answer.styles.js +13 -0
- package/dist/components/retrieval/rag-answer/rag-answer.styles.js.map +1 -0
- package/dist/components/retrieval/rag-eval-dashboard/rag-eval-dashboard.class.d.ts +78 -0
- package/dist/components/retrieval/rag-eval-dashboard/rag-eval-dashboard.class.d.ts.map +1 -0
- package/dist/components/retrieval/rag-eval-dashboard/rag-eval-dashboard.class.js +186 -0
- package/dist/components/retrieval/rag-eval-dashboard/rag-eval-dashboard.class.js.map +1 -0
- package/dist/components/retrieval/rag-eval-dashboard/rag-eval-dashboard.d.ts +5 -0
- package/dist/components/retrieval/rag-eval-dashboard/rag-eval-dashboard.d.ts.map +1 -0
- package/dist/components/retrieval/rag-eval-dashboard/rag-eval-dashboard.js +8 -0
- package/dist/components/retrieval/rag-eval-dashboard/rag-eval-dashboard.js.map +1 -0
- package/dist/components/retrieval/rag-eval-dashboard/rag-eval-dashboard.styles.d.ts +2 -0
- package/dist/components/retrieval/rag-eval-dashboard/rag-eval-dashboard.styles.d.ts.map +1 -0
- package/dist/components/retrieval/rag-eval-dashboard/rag-eval-dashboard.styles.js +95 -0
- package/dist/components/retrieval/rag-eval-dashboard/rag-eval-dashboard.styles.js.map +1 -0
- package/dist/components/retrieval/retrieval-compare/retrieval-compare.class.d.ts +58 -0
- package/dist/components/retrieval/retrieval-compare/retrieval-compare.class.d.ts.map +1 -0
- package/dist/components/retrieval/retrieval-compare/retrieval-compare.class.js +157 -0
- package/dist/components/retrieval/retrieval-compare/retrieval-compare.class.js.map +1 -0
- package/dist/components/retrieval/retrieval-compare/retrieval-compare.d.ts +3 -0
- package/dist/components/retrieval/retrieval-compare/retrieval-compare.d.ts.map +1 -0
- package/dist/components/retrieval/retrieval-compare/retrieval-compare.js +6 -0
- package/dist/components/retrieval/retrieval-compare/retrieval-compare.js.map +1 -0
- package/dist/components/retrieval/retrieval-compare/retrieval-compare.styles.d.ts +2 -0
- package/dist/components/retrieval/retrieval-compare/retrieval-compare.styles.d.ts.map +1 -0
- package/dist/components/retrieval/retrieval-compare/retrieval-compare.styles.js +103 -0
- package/dist/components/retrieval/retrieval-compare/retrieval-compare.styles.js.map +1 -0
- package/dist/components/retrieval/retrieval-results/retrieval-results.class.d.ts +3 -6
- package/dist/components/retrieval/retrieval-results/retrieval-results.class.d.ts.map +1 -1
- package/dist/components/retrieval/retrieval-results/retrieval-results.class.js +37 -46
- package/dist/components/retrieval/retrieval-results/retrieval-results.class.js.map +1 -1
- package/dist/components/retrieval/retrieval-results/retrieval-results.styles.d.ts.map +1 -1
- package/dist/components/retrieval/retrieval-results/retrieval-results.styles.js +3 -4
- package/dist/components/retrieval/retrieval-results/retrieval-results.styles.js.map +1 -1
- package/dist/components/retrieval/retrieval-search/retrieval-search.class.d.ts.map +1 -1
- package/dist/components/retrieval/retrieval-search/retrieval-search.class.js +20 -6
- package/dist/components/retrieval/retrieval-search/retrieval-search.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 +1 -0
- package/dist/components/retrieval/retrieval-search/retrieval-search.styles.js.map +1 -1
- package/dist/components/retrieval/retrieval-trace/retrieval-trace.class.d.ts +4 -2
- package/dist/components/retrieval/retrieval-trace/retrieval-trace.class.d.ts.map +1 -1
- package/dist/components/retrieval/retrieval-trace/retrieval-trace.class.js +31 -23
- package/dist/components/retrieval/retrieval-trace/retrieval-trace.class.js.map +1 -1
- package/dist/components/retrieval/retrieval-trace/retrieval-trace.styles.d.ts.map +1 -1
- package/dist/components/retrieval/retrieval-trace/retrieval-trace.styles.js +3 -0
- package/dist/components/retrieval/retrieval-trace/retrieval-trace.styles.js.map +1 -1
- package/dist/components/retrieval/source-card/source-card.styles.d.ts.map +1 -1
- package/dist/components/retrieval/source-card/source-card.styles.js +13 -0
- package/dist/components/retrieval/source-card/source-card.styles.js.map +1 -1
- package/dist/components/retrieval/source-list/source-list.class.d.ts +3 -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 +30 -3
- package/dist/components/retrieval/source-list/source-list.class.js.map +1 -1
- package/dist/components/retrieval/source-list/source-list.styles.d.ts.map +1 -1
- package/dist/components/retrieval/source-list/source-list.styles.js +6 -0
- package/dist/components/retrieval/source-list/source-list.styles.js.map +1 -1
- package/dist/components/retrieval/source-picker/source-picker.class.d.ts +5 -1
- package/dist/components/retrieval/source-picker/source-picker.class.d.ts.map +1 -1
- package/dist/components/retrieval/source-picker/source-picker.class.js +68 -21
- 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 +25 -1
- 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 -0
- package/dist/components/utility/copy-button/copy-button.class.d.ts.map +1 -1
- package/dist/components/utility/copy-button/copy-button.class.js +6 -0
- package/dist/components/utility/copy-button/copy-button.class.js.map +1 -1
- package/dist/components/utility/diff-view/diff-line-diff.d.ts +3 -4
- package/dist/components/utility/diff-view/diff-line-diff.d.ts.map +1 -1
- package/dist/components/utility/diff-view/diff-line-diff.js +85 -35
- package/dist/components/utility/diff-view/diff-line-diff.js.map +1 -1
- package/dist/components/utility/diff-view/diff-view.class.d.ts +15 -2
- package/dist/components/utility/diff-view/diff-view.class.d.ts.map +1 -1
- package/dist/components/utility/diff-view/diff-view.class.js +78 -17
- package/dist/components/utility/diff-view/diff-view.class.js.map +1 -1
- package/dist/components/utility/diff-view/diff-view.styles.d.ts.map +1 -1
- package/dist/components/utility/diff-view/diff-view.styles.js +19 -6
- package/dist/components/utility/diff-view/diff-view.styles.js.map +1 -1
- package/dist/components/utility/export-button/export-button.class.d.ts +9 -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 +45 -8
- package/dist/components/utility/export-button/export-button.class.js.map +1 -1
- package/dist/components/utility/export-button/export-button.styles.d.ts.map +1 -1
- package/dist/components/utility/export-button/export-button.styles.js +4 -0
- package/dist/components/utility/export-button/export-button.styles.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 +11 -4
- 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 +18 -4
- package/dist/components/utility/format/format-number.class.js.map +1 -1
- package/dist/components/utility/format/relative-time.class.d.ts.map +1 -1
- package/dist/components/utility/format/relative-time.class.js +11 -2
- package/dist/components/utility/format/relative-time.class.js.map +1 -1
- package/dist/components/utility/icon/icon.class.d.ts.map +1 -1
- package/dist/components/utility/icon/icon.class.js +9 -2
- package/dist/components/utility/icon/icon.class.js.map +1 -1
- package/dist/components/utility/intersection-observer/intersection-observer.class.d.ts.map +1 -1
- package/dist/components/utility/intersection-observer/intersection-observer.class.js +23 -9
- package/dist/components/utility/intersection-observer/intersection-observer.class.js.map +1 -1
- package/dist/components/utility/intersection-observer/intersection-observer.styles.d.ts +1 -1
- package/dist/components/utility/intersection-observer/intersection-observer.styles.d.ts.map +1 -1
- package/dist/components/utility/intersection-observer/intersection-observer.styles.js +1 -7
- package/dist/components/utility/intersection-observer/intersection-observer.styles.js.map +1 -1
- package/dist/components/utility/json-viewer/json-viewer.class.d.ts +15 -2
- package/dist/components/utility/json-viewer/json-viewer.class.d.ts.map +1 -1
- package/dist/components/utility/json-viewer/json-viewer.class.js +182 -44
- package/dist/components/utility/json-viewer/json-viewer.class.js.map +1 -1
- package/dist/components/utility/json-viewer/json-viewer.styles.d.ts.map +1 -1
- package/dist/components/utility/json-viewer/json-viewer.styles.js +14 -4
- package/dist/components/utility/json-viewer/json-viewer.styles.js.map +1 -1
- package/dist/components/utility/known-date/known-date.class.d.ts +6 -3
- package/dist/components/utility/known-date/known-date.class.d.ts.map +1 -1
- package/dist/components/utility/known-date/known-date.class.js +35 -5
- package/dist/components/utility/known-date/known-date.class.js.map +1 -1
- package/dist/components/utility/known-date/known-date.styles.d.ts.map +1 -1
- package/dist/components/utility/known-date/known-date.styles.js +5 -0
- package/dist/components/utility/known-date/known-date.styles.js.map +1 -1
- package/dist/components/utility/mention-popover/mention-popover.class.d.ts +51 -27
- package/dist/components/utility/mention-popover/mention-popover.class.d.ts.map +1 -1
- package/dist/components/utility/mention-popover/mention-popover.class.js +130 -35
- package/dist/components/utility/mention-popover/mention-popover.class.js.map +1 -1
- package/dist/components/utility/mention-popover/mention-popover.styles.d.ts.map +1 -1
- package/dist/components/utility/mention-popover/mention-popover.styles.js +5 -1
- package/dist/components/utility/mention-popover/mention-popover.styles.js.map +1 -1
- package/dist/components/utility/mutation-observer/mutation-observer.class.d.ts.map +1 -1
- package/dist/components/utility/mutation-observer/mutation-observer.class.js +8 -22
- package/dist/components/utility/mutation-observer/mutation-observer.class.js.map +1 -1
- package/dist/components/utility/mutation-observer/mutation-observer.styles.d.ts +1 -1
- package/dist/components/utility/mutation-observer/mutation-observer.styles.d.ts.map +1 -1
- package/dist/components/utility/mutation-observer/mutation-observer.styles.js +1 -7
- package/dist/components/utility/mutation-observer/mutation-observer.styles.js.map +1 -1
- package/dist/components/utility/poll-status/poll-status.class.d.ts +6 -4
- package/dist/components/utility/poll-status/poll-status.class.d.ts.map +1 -1
- package/dist/components/utility/poll-status/poll-status.class.js +23 -21
- package/dist/components/utility/poll-status/poll-status.class.js.map +1 -1
- package/dist/components/utility/poll-status/poll-status.styles.d.ts.map +1 -1
- package/dist/components/utility/poll-status/poll-status.styles.js +9 -1
- package/dist/components/utility/poll-status/poll-status.styles.js.map +1 -1
- package/dist/components/utility/random-content/random-content.class.d.ts +30 -9
- package/dist/components/utility/random-content/random-content.class.d.ts.map +1 -1
- package/dist/components/utility/random-content/random-content.class.js +196 -24
- package/dist/components/utility/random-content/random-content.class.js.map +1 -1
- package/dist/components/utility/random-content/random-content.styles.d.ts.map +1 -1
- package/dist/components/utility/random-content/random-content.styles.js +22 -0
- package/dist/components/utility/random-content/random-content.styles.js.map +1 -1
- package/dist/components/utility/resize-observer/resize-observer.class.d.ts.map +1 -1
- package/dist/components/utility/resize-observer/resize-observer.class.js +3 -4
- package/dist/components/utility/resize-observer/resize-observer.class.js.map +1 -1
- package/dist/components/utility/resize-observer/resize-observer.styles.d.ts +1 -1
- package/dist/components/utility/resize-observer/resize-observer.styles.d.ts.map +1 -1
- package/dist/components/utility/resize-observer/resize-observer.styles.js +1 -10
- package/dist/components/utility/resize-observer/resize-observer.styles.js.map +1 -1
- package/dist/components/utility/tour/tour.class.d.ts +14 -19
- package/dist/components/utility/tour/tour.class.d.ts.map +1 -1
- package/dist/components/utility/tour/tour.class.js +116 -51
- package/dist/components/utility/tour/tour.class.js.map +1 -1
- package/dist/components/utility/tour/tour.styles.d.ts.map +1 -1
- package/dist/components/utility/tour/tour.styles.js +7 -0
- package/dist/components/utility/tour/tour.styles.js.map +1 -1
- package/dist/components/viewers/archive-viewer/archive-viewer.class.d.ts +21 -5
- package/dist/components/viewers/archive-viewer/archive-viewer.class.d.ts.map +1 -1
- package/dist/components/viewers/archive-viewer/archive-viewer.class.js +105 -18
- package/dist/components/viewers/archive-viewer/archive-viewer.class.js.map +1 -1
- package/dist/components/viewers/archive-viewer/zip-resource-guard.d.ts +36 -0
- package/dist/components/viewers/archive-viewer/zip-resource-guard.d.ts.map +1 -0
- package/dist/components/viewers/archive-viewer/zip-resource-guard.js +261 -0
- package/dist/components/viewers/archive-viewer/zip-resource-guard.js.map +1 -0
- package/dist/components/viewers/calendar-viewer/calendar-viewer.class.d.ts +18 -3
- package/dist/components/viewers/calendar-viewer/calendar-viewer.class.d.ts.map +1 -1
- package/dist/components/viewers/calendar-viewer/calendar-viewer.class.js +53 -12
- package/dist/components/viewers/calendar-viewer/calendar-viewer.class.js.map +1 -1
- package/dist/components/viewers/calendar-viewer/calendar-viewer.js +13 -2
- package/dist/components/viewers/calendar-viewer/calendar-viewer.js.map +1 -1
- package/dist/components/viewers/contact-viewer/contact-viewer.class.d.ts +21 -3
- package/dist/components/viewers/contact-viewer/contact-viewer.class.d.ts.map +1 -1
- package/dist/components/viewers/contact-viewer/contact-viewer.class.js +76 -10
- package/dist/components/viewers/contact-viewer/contact-viewer.class.js.map +1 -1
- package/dist/components/viewers/contact-viewer/contact-viewer.js +7 -0
- package/dist/components/viewers/contact-viewer/contact-viewer.js.map +1 -1
- package/dist/components/viewers/contact-viewer/contact-viewer.styles.d.ts.map +1 -1
- package/dist/components/viewers/contact-viewer/contact-viewer.styles.js +2 -0
- package/dist/components/viewers/contact-viewer/contact-viewer.styles.js.map +1 -1
- package/dist/components/viewers/contact-viewer/vcard.d.ts +1 -1
- package/dist/components/viewers/contact-viewer/vcard.d.ts.map +1 -1
- package/dist/components/viewers/contact-viewer/vcard.js +9 -2
- package/dist/components/viewers/contact-viewer/vcard.js.map +1 -1
- package/dist/components/viewers/csv-viewer/csv-viewer.class.d.ts +17 -10
- package/dist/components/viewers/csv-viewer/csv-viewer.class.d.ts.map +1 -1
- package/dist/components/viewers/csv-viewer/csv-viewer.class.js +102 -54
- package/dist/components/viewers/csv-viewer/csv-viewer.class.js.map +1 -1
- package/dist/components/viewers/csv-viewer/csv-viewer.d.ts +1 -0
- package/dist/components/viewers/csv-viewer/csv-viewer.d.ts.map +1 -1
- package/dist/components/viewers/csv-viewer/csv-viewer.js +1 -0
- package/dist/components/viewers/csv-viewer/csv-viewer.js.map +1 -1
- package/dist/components/viewers/csv-viewer/csv-viewer.styles.js +6 -6
- package/dist/components/viewers/dataset-viewer/dataset-viewer.class.d.ts +17 -15
- package/dist/components/viewers/dataset-viewer/dataset-viewer.class.d.ts.map +1 -1
- package/dist/components/viewers/dataset-viewer/dataset-viewer.class.js +127 -53
- package/dist/components/viewers/dataset-viewer/dataset-viewer.class.js.map +1 -1
- package/dist/components/viewers/dataset-viewer/dataset-viewer.d.ts +1 -0
- package/dist/components/viewers/dataset-viewer/dataset-viewer.d.ts.map +1 -1
- package/dist/components/viewers/dataset-viewer/dataset-viewer.js +1 -0
- package/dist/components/viewers/dataset-viewer/dataset-viewer.js.map +1 -1
- package/dist/components/viewers/dataset-viewer/dataset-viewer.styles.js +4 -4
- package/dist/components/viewers/document-compare/document-compare.class.d.ts +5 -2
- package/dist/components/viewers/document-compare/document-compare.class.d.ts.map +1 -1
- package/dist/components/viewers/document-compare/document-compare.class.js +4 -16
- package/dist/components/viewers/document-compare/document-compare.class.js.map +1 -1
- package/dist/components/viewers/document-compare/document-compare.d.ts +2 -0
- package/dist/components/viewers/document-compare/document-compare.d.ts.map +1 -1
- package/dist/components/viewers/document-compare/document-compare.js +2 -0
- package/dist/components/viewers/document-compare/document-compare.js.map +1 -1
- package/dist/components/viewers/document-compare/document-compare.styles.d.ts.map +1 -1
- package/dist/components/viewers/document-compare/document-compare.styles.js +4 -0
- package/dist/components/viewers/document-compare/document-compare.styles.js.map +1 -1
- package/dist/components/viewers/document-preview/document-preview.class.d.ts +20 -2
- package/dist/components/viewers/document-preview/document-preview.class.d.ts.map +1 -1
- package/dist/components/viewers/document-preview/document-preview.class.js +130 -39
- package/dist/components/viewers/document-preview/document-preview.class.js.map +1 -1
- package/dist/components/viewers/document-preview/document-preview.d.ts +1 -0
- package/dist/components/viewers/document-preview/document-preview.d.ts.map +1 -1
- package/dist/components/viewers/document-preview/document-preview.js +1 -0
- package/dist/components/viewers/document-preview/document-preview.js.map +1 -1
- package/dist/components/viewers/document-preview/document-preview.styles.d.ts.map +1 -1
- package/dist/components/viewers/document-preview/document-preview.styles.js +70 -12
- package/dist/components/viewers/document-preview/document-preview.styles.js.map +1 -1
- package/dist/components/viewers/document-viewer/document-viewer.class.d.ts +11 -10
- package/dist/components/viewers/document-viewer/document-viewer.class.d.ts.map +1 -1
- package/dist/components/viewers/document-viewer/document-viewer.class.js +40 -14
- package/dist/components/viewers/document-viewer/document-viewer.class.js.map +1 -1
- package/dist/components/viewers/document-viewer/document-viewer.d.ts +1 -0
- package/dist/components/viewers/document-viewer/document-viewer.d.ts.map +1 -1
- package/dist/components/viewers/document-viewer/document-viewer.js +1 -0
- package/dist/components/viewers/document-viewer/document-viewer.js.map +1 -1
- package/dist/components/viewers/docx-viewer/docx-resource-guard.d.ts +10 -0
- package/dist/components/viewers/docx-viewer/docx-resource-guard.d.ts.map +1 -0
- package/dist/components/viewers/docx-viewer/docx-resource-guard.js +18 -0
- package/dist/components/viewers/docx-viewer/docx-resource-guard.js.map +1 -0
- package/dist/components/viewers/docx-viewer/docx-viewer.class.d.ts +13 -0
- package/dist/components/viewers/docx-viewer/docx-viewer.class.d.ts.map +1 -1
- package/dist/components/viewers/docx-viewer/docx-viewer.class.js +62 -7
- package/dist/components/viewers/docx-viewer/docx-viewer.class.js.map +1 -1
- package/dist/components/viewers/docx-viewer/docx-viewer.styles.js +15 -15
- package/dist/components/viewers/ebook-viewer/ebook-viewer.class.d.ts +1 -0
- package/dist/components/viewers/ebook-viewer/ebook-viewer.class.d.ts.map +1 -1
- package/dist/components/viewers/ebook-viewer/ebook-viewer.class.js +93 -34
- package/dist/components/viewers/ebook-viewer/ebook-viewer.class.js.map +1 -1
- package/dist/components/viewers/ebook-viewer/epub-resource-guard.d.ts +10 -0
- package/dist/components/viewers/ebook-viewer/epub-resource-guard.d.ts.map +1 -0
- package/dist/components/viewers/ebook-viewer/epub-resource-guard.js +18 -0
- package/dist/components/viewers/ebook-viewer/epub-resource-guard.js.map +1 -0
- package/dist/components/viewers/email-viewer/email-viewer.class.d.ts +24 -2
- package/dist/components/viewers/email-viewer/email-viewer.class.d.ts.map +1 -1
- package/dist/components/viewers/email-viewer/email-viewer.class.js +125 -48
- package/dist/components/viewers/email-viewer/email-viewer.class.js.map +1 -1
- package/dist/components/viewers/email-viewer/email-viewer.js +13 -3
- package/dist/components/viewers/email-viewer/email-viewer.js.map +1 -1
- package/dist/components/viewers/geojson-view/geojson-view.class.d.ts +21 -10
- package/dist/components/viewers/geojson-view/geojson-view.class.d.ts.map +1 -1
- package/dist/components/viewers/geojson-view/geojson-view.class.js +251 -68
- package/dist/components/viewers/geojson-view/geojson-view.class.js.map +1 -1
- package/dist/components/viewers/geojson-view/geojson-view.js +7 -0
- package/dist/components/viewers/geojson-view/geojson-view.js.map +1 -1
- package/dist/components/viewers/highlight-layer/highlight-layer-timing.d.ts +2 -0
- package/dist/components/viewers/highlight-layer/highlight-layer-timing.d.ts.map +1 -0
- package/dist/components/viewers/highlight-layer/highlight-layer-timing.js +31 -0
- package/dist/components/viewers/highlight-layer/highlight-layer-timing.js.map +1 -0
- package/dist/components/viewers/highlight-layer/highlight-layer.class.d.ts +28 -5
- package/dist/components/viewers/highlight-layer/highlight-layer.class.d.ts.map +1 -1
- package/dist/components/viewers/highlight-layer/highlight-layer.class.js +206 -62
- package/dist/components/viewers/highlight-layer/highlight-layer.class.js.map +1 -1
- package/dist/components/viewers/highlight-layer/highlight-layer.styles.d.ts.map +1 -1
- package/dist/components/viewers/highlight-layer/highlight-layer.styles.js +84 -21
- package/dist/components/viewers/highlight-layer/highlight-layer.styles.js.map +1 -1
- package/dist/components/viewers/html-viewer/html-viewer.class.d.ts +16 -2
- package/dist/components/viewers/html-viewer/html-viewer.class.d.ts.map +1 -1
- package/dist/components/viewers/html-viewer/html-viewer.class.js +34 -6
- package/dist/components/viewers/html-viewer/html-viewer.class.js.map +1 -1
- package/dist/components/viewers/include/include.class.d.ts +17 -2
- package/dist/components/viewers/include/include.class.d.ts.map +1 -1
- package/dist/components/viewers/include/include.class.js +32 -3
- package/dist/components/viewers/include/include.class.js.map +1 -1
- package/dist/components/viewers/notebook-viewer/dompurify-loader.js.map +1 -1
- package/dist/components/viewers/notebook-viewer/notebook-viewer.class.d.ts +15 -13
- package/dist/components/viewers/notebook-viewer/notebook-viewer.class.d.ts.map +1 -1
- package/dist/components/viewers/notebook-viewer/notebook-viewer.class.js +255 -41
- package/dist/components/viewers/notebook-viewer/notebook-viewer.class.js.map +1 -1
- package/dist/components/viewers/notebook-viewer/notebook-viewer.styles.d.ts.map +1 -1
- package/dist/components/viewers/notebook-viewer/notebook-viewer.styles.js +17 -0
- package/dist/components/viewers/notebook-viewer/notebook-viewer.styles.js.map +1 -1
- package/dist/components/viewers/page-rail/page-rail.class.d.ts +8 -3
- package/dist/components/viewers/page-rail/page-rail.class.d.ts.map +1 -1
- package/dist/components/viewers/page-rail/page-rail.class.js +96 -26
- package/dist/components/viewers/page-rail/page-rail.class.js.map +1 -1
- package/dist/components/viewers/page-rail/page-rail.d.ts +3 -0
- package/dist/components/viewers/page-rail/page-rail.d.ts.map +1 -1
- package/dist/components/viewers/page-rail/page-rail.js +3 -0
- package/dist/components/viewers/page-rail/page-rail.js.map +1 -1
- package/dist/components/viewers/pdf-viewer/pdf-viewer.class.d.ts +3 -3
- package/dist/components/viewers/pdf-viewer/pdf-viewer.class.d.ts.map +1 -1
- package/dist/components/viewers/pdf-viewer/pdf-viewer.class.js +198 -46
- package/dist/components/viewers/pdf-viewer/pdf-viewer.class.js.map +1 -1
- package/dist/components/viewers/pdf-viewer/pdf-viewer.d.ts +3 -0
- package/dist/components/viewers/pdf-viewer/pdf-viewer.d.ts.map +1 -1
- package/dist/components/viewers/pdf-viewer/pdf-viewer.js +3 -0
- package/dist/components/viewers/pdf-viewer/pdf-viewer.js.map +1 -1
- package/dist/components/viewers/pdf-viewer/pdf-viewer.styles.d.ts.map +1 -1
- package/dist/components/viewers/pdf-viewer/pdf-viewer.styles.js +11 -1
- package/dist/components/viewers/pdf-viewer/pdf-viewer.styles.js.map +1 -1
- package/dist/components/viewers/pptx-viewer/pptx-loader.d.ts.map +1 -1
- package/dist/components/viewers/pptx-viewer/pptx-loader.js +13 -1
- package/dist/components/viewers/pptx-viewer/pptx-loader.js.map +1 -1
- package/dist/components/viewers/pptx-viewer/pptx-viewer.class.d.ts +15 -3
- package/dist/components/viewers/pptx-viewer/pptx-viewer.class.d.ts.map +1 -1
- package/dist/components/viewers/pptx-viewer/pptx-viewer.class.js +27 -9
- package/dist/components/viewers/pptx-viewer/pptx-viewer.class.js.map +1 -1
- package/dist/components/viewers/pptx-viewer/pptx-viewer.d.ts +1 -0
- package/dist/components/viewers/pptx-viewer/pptx-viewer.d.ts.map +1 -1
- package/dist/components/viewers/pptx-viewer/pptx-viewer.js +1 -0
- package/dist/components/viewers/pptx-viewer/pptx-viewer.js.map +1 -1
- package/dist/components/viewers/spreadsheet-viewer/spreadsheet-viewer.class.d.ts +12 -7
- package/dist/components/viewers/spreadsheet-viewer/spreadsheet-viewer.class.d.ts.map +1 -1
- package/dist/components/viewers/spreadsheet-viewer/spreadsheet-viewer.class.js +144 -44
- package/dist/components/viewers/spreadsheet-viewer/spreadsheet-viewer.class.js.map +1 -1
- package/dist/components/viewers/spreadsheet-viewer/spreadsheet-viewer.d.ts +2 -0
- package/dist/components/viewers/spreadsheet-viewer/spreadsheet-viewer.d.ts.map +1 -1
- package/dist/components/viewers/spreadsheet-viewer/spreadsheet-viewer.js +2 -0
- package/dist/components/viewers/spreadsheet-viewer/spreadsheet-viewer.js.map +1 -1
- package/dist/components/viewers/spreadsheet-viewer/spreadsheet-viewer.styles.d.ts.map +1 -1
- package/dist/components/viewers/spreadsheet-viewer/spreadsheet-viewer.styles.js +7 -11
- package/dist/components/viewers/spreadsheet-viewer/spreadsheet-viewer.styles.js.map +1 -1
- package/dist/components/viewers/spreadsheet-viewer/xlsx-resource-guard.d.ts +17 -0
- package/dist/components/viewers/spreadsheet-viewer/xlsx-resource-guard.d.ts.map +1 -0
- package/dist/components/viewers/spreadsheet-viewer/xlsx-resource-guard.js +26 -0
- package/dist/components/viewers/spreadsheet-viewer/xlsx-resource-guard.js.map +1 -0
- package/dist/components/viewers/svg-viewer/svg-viewer.class.d.ts +14 -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 +101 -34
- package/dist/components/viewers/svg-viewer/svg-viewer.class.js.map +1 -1
- package/dist/components/viewers/svg-viewer/svg-viewer.d.ts +1 -0
- package/dist/components/viewers/svg-viewer/svg-viewer.d.ts.map +1 -1
- package/dist/components/viewers/svg-viewer/svg-viewer.js +1 -0
- package/dist/components/viewers/svg-viewer/svg-viewer.js.map +1 -1
- package/dist/components/viewers/svg-viewer/svg-viewer.styles.d.ts.map +1 -1
- package/dist/components/viewers/svg-viewer/svg-viewer.styles.js +66 -6
- package/dist/components/viewers/svg-viewer/svg-viewer.styles.js.map +1 -1
- package/dist/components/viewers/xml-viewer/xml-viewer.class.d.ts +4 -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 +0 -0
- 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 +7 -3
- package/dist/internal/anchor-target.js.map +1 -1
- package/dist/internal/anchored-popover-controller.d.ts +10 -0
- package/dist/internal/anchored-popover-controller.d.ts.map +1 -0
- package/dist/internal/anchored-popover-controller.js +17 -0
- package/dist/internal/anchored-popover-controller.js.map +1 -0
- package/dist/internal/aria-controls.d.ts +12 -0
- package/dist/internal/aria-controls.d.ts.map +1 -0
- package/dist/internal/aria-controls.js +33 -0
- package/dist/internal/aria-controls.js.map +1 -0
- package/dist/internal/catalog-picker.d.ts +12 -0
- package/dist/internal/catalog-picker.d.ts.map +1 -0
- package/dist/internal/catalog-picker.js +17 -0
- package/dist/internal/catalog-picker.js.map +1 -0
- package/dist/internal/converters.d.ts +22 -0
- package/dist/internal/converters.d.ts.map +1 -0
- package/dist/internal/converters.js +38 -0
- package/dist/internal/converters.js.map +1 -0
- package/dist/internal/delimited-data.d.ts +17 -0
- package/dist/internal/delimited-data.d.ts.map +1 -0
- package/dist/internal/delimited-data.js +24 -0
- package/dist/internal/delimited-data.js.map +1 -0
- package/dist/internal/form-associated.d.ts.map +1 -1
- package/dist/internal/form-associated.js +57 -1
- package/dist/internal/form-associated.js.map +1 -1
- package/dist/internal/intl-cache.d.ts +8 -2
- package/dist/internal/intl-cache.d.ts.map +1 -1
- package/dist/internal/intl-cache.js +0 -0
- package/dist/internal/intl-cache.js.map +1 -1
- package/dist/internal/latest-task.d.ts +11 -0
- package/dist/internal/latest-task.d.ts.map +1 -0
- package/dist/internal/latest-task.js +17 -0
- package/dist/internal/latest-task.js.map +1 -0
- package/dist/internal/length-constraints.d.ts +27 -0
- package/dist/internal/length-constraints.d.ts.map +1 -0
- package/dist/internal/length-constraints.js +42 -0
- package/dist/internal/length-constraints.js.map +1 -0
- package/dist/internal/localization.d.ts +8 -1
- package/dist/internal/localization.d.ts.map +1 -1
- package/dist/internal/localization.js +168 -2
- package/dist/internal/localization.js.map +1 -1
- package/dist/internal/lyra-element.d.ts +9 -0
- package/dist/internal/lyra-element.d.ts.map +1 -1
- package/dist/internal/lyra-element.js +41 -0
- package/dist/internal/lyra-element.js.map +1 -1
- package/dist/internal/observer-wrapper.styles.d.ts +3 -0
- package/dist/internal/observer-wrapper.styles.d.ts.map +1 -0
- package/dist/internal/observer-wrapper.styles.js +9 -0
- package/dist/internal/observer-wrapper.styles.js.map +1 -0
- package/dist/internal/overlay-manager.d.ts +2 -0
- package/dist/internal/overlay-manager.d.ts.map +1 -1
- package/dist/internal/overlay-manager.js +4 -0
- package/dist/internal/overlay-manager.js.map +1 -1
- package/dist/internal/persisted-state.d.ts +27 -0
- package/dist/internal/persisted-state.d.ts.map +1 -0
- package/dist/internal/persisted-state.js +57 -0
- package/dist/internal/persisted-state.js.map +1 -0
- package/dist/internal/root-registration-allowlist.d.ts +1 -1
- package/dist/internal/root-registration-allowlist.d.ts.map +1 -1
- package/dist/internal/root-registration-allowlist.js +17 -0
- package/dist/internal/root-registration-allowlist.js.map +1 -1
- package/dist/internal/safe-url.d.ts +13 -2
- package/dist/internal/safe-url.d.ts.map +1 -1
- package/dist/internal/safe-url.js +27 -4
- package/dist/internal/safe-url.js.map +1 -1
- package/dist/internal/slotted-observer.d.ts +8 -0
- package/dist/internal/slotted-observer.d.ts.map +1 -0
- package/dist/internal/slotted-observer.js +11 -0
- package/dist/internal/slotted-observer.js.map +1 -0
- package/dist/internal/text-quote.d.ts +5 -1
- package/dist/internal/text-quote.d.ts.map +1 -1
- package/dist/internal/text-quote.js +187 -18
- package/dist/internal/text-quote.js.map +1 -1
- package/dist/internal/text-viewer-target.d.ts +27 -0
- package/dist/internal/text-viewer-target.d.ts.map +1 -0
- package/dist/internal/text-viewer-target.js +266 -0
- package/dist/internal/text-viewer-target.js.map +1 -0
- package/dist/internal/theme-watcher.d.ts +32 -0
- package/dist/internal/theme-watcher.d.ts.map +1 -0
- package/dist/internal/theme-watcher.js +67 -0
- package/dist/internal/theme-watcher.js.map +1 -0
- package/dist/lyra.d.ts +60 -8
- package/dist/lyra.d.ts.map +1 -1
- package/dist/lyra.js +51 -0
- package/dist/lyra.js.map +1 -1
- package/dist/theme/gemstones-data.d.ts +16 -0
- package/dist/theme/gemstones-data.d.ts.map +1 -0
- package/dist/theme/gemstones-data.js +28 -0
- package/dist/theme/gemstones-data.js.map +1 -0
- package/dist/theme/gemstones.d.ts +9 -0
- package/dist/theme/gemstones.d.ts.map +1 -0
- package/dist/theme/gemstones.js +18 -0
- package/dist/theme/gemstones.js.map +1 -0
- package/dist/theme/theme.d.ts +72 -0
- package/dist/theme/theme.d.ts.map +1 -0
- package/dist/theme/theme.js +143 -0
- package/dist/theme/theme.js.map +1 -0
- package/llms/components/lr-accordion-item.md +1 -0
- package/llms/components/lr-accordion.md +1 -0
- package/llms/components/lr-activity-feed.md +1 -0
- package/llms/components/lr-agent-eval-dashboard.md +36 -0
- package/llms/components/lr-agent-run.md +7 -0
- package/llms/components/lr-agent-trace.md +1 -0
- package/llms/components/lr-agent-workspace.md +1 -0
- package/llms/components/lr-animated-image.md +5 -0
- package/llms/components/lr-animation.md +1 -0
- package/llms/components/lr-app-rail-item.md +16 -2
- package/llms/components/lr-app-rail.md +16 -2
- package/llms/components/lr-approval-queue.md +31 -0
- package/llms/components/lr-archive-viewer.md +9 -3
- package/llms/components/lr-artifact-panel.md +1 -0
- package/llms/components/lr-attachment-chip.md +1 -0
- package/llms/components/lr-attachment-trigger.md +5 -0
- package/llms/components/lr-audio-visualizer.md +1 -0
- package/llms/components/lr-av-player.md +3 -2
- package/llms/components/lr-avatar-group.md +1 -0
- package/llms/components/lr-avatar.md +1 -0
- package/llms/components/lr-badge.md +1 -0
- package/llms/components/lr-bar-chart.md +5 -3
- package/llms/components/lr-box-plot.md +7 -5
- package/llms/components/lr-branch-picker.md +5 -0
- package/llms/components/lr-breadcrumb-item.md +5 -0
- package/llms/components/lr-breadcrumb.md +5 -0
- package/llms/components/lr-browser-frame.md +10 -0
- package/llms/components/lr-bubble-chart.md +5 -3
- package/llms/components/lr-button-group.md +1 -0
- package/llms/components/lr-button.md +40 -6
- package/llms/components/lr-calendar-viewer.md +7 -1
- package/llms/components/lr-calendar.md +1 -0
- package/llms/components/lr-callout.md +1 -0
- package/llms/components/lr-card.md +11 -0
- package/llms/components/lr-carousel-item.md +1 -0
- package/llms/components/lr-carousel.md +1 -0
- package/llms/components/lr-chart.md +64 -14
- package/llms/components/lr-chat-composer.md +1 -0
- package/llms/components/lr-chat-message.md +22 -1
- package/llms/components/lr-chat-viewport.md +1 -0
- package/llms/components/lr-checkbox-group.md +12 -6
- package/llms/components/lr-checkbox.md +6 -1
- package/llms/components/lr-checkpoint.md +1 -0
- package/llms/components/lr-chip-group.md +20 -17
- package/llms/components/lr-chip.md +20 -17
- package/llms/components/lr-chunk-inspector.md +1 -0
- package/llms/components/lr-citation-badge.md +6 -0
- package/llms/components/lr-claim-evidence.md +37 -0
- package/llms/components/lr-code-block-core.md +2 -3
- package/llms/components/lr-code-block.md +7 -6
- package/llms/components/lr-code-editor.md +6 -0
- package/llms/components/lr-color-picker.md +8 -0
- package/llms/components/lr-combobox.md +67 -14
- package/llms/components/lr-command-palette.md +8 -0
- package/llms/components/lr-commit-card.md +1 -0
- package/llms/components/lr-community-card.md +1 -0
- package/llms/components/lr-compare-panel.md +3 -1
- package/llms/components/lr-confirm-bar.md +1 -0
- package/llms/components/lr-contact-viewer.md +7 -1
- package/llms/components/lr-context-inspector.md +1 -0
- package/llms/components/lr-context-meter.md +15 -6
- package/llms/components/lr-control-group.md +1 -0
- package/llms/components/lr-conversation-item.md +10 -2
- package/llms/components/lr-copy-button.md +5 -0
- package/llms/components/lr-csv-viewer.md +6 -3
- package/llms/components/lr-dashboard-grid.md +5 -0
- package/llms/components/lr-dataset-viewer.md +1 -0
- package/llms/components/lr-date-input.md +16 -3
- package/llms/components/lr-date-picker.md +16 -3
- package/llms/components/lr-details.md +1 -0
- package/llms/components/lr-dialog.md +1 -0
- package/llms/components/lr-diff-view.md +22 -8
- package/llms/components/lr-divider.md +1 -0
- package/llms/components/lr-dock-panel.md +5 -2
- package/llms/components/lr-document-compare.md +36 -4
- package/llms/components/lr-document-library.md +1 -0
- package/llms/components/lr-document-preview.md +16 -6
- package/llms/components/lr-document-viewer.md +6 -4
- package/llms/components/lr-docx-viewer.md +12 -0
- package/llms/components/lr-doughnut-chart.md +5 -3
- package/llms/components/lr-drawer.md +1 -0
- package/llms/components/lr-drilldown-panel.md +1 -0
- package/llms/components/lr-dropdown-item.md +7 -2
- package/llms/components/lr-dropdown.md +1 -0
- package/llms/components/lr-ebook-viewer.md +5 -0
- package/llms/components/lr-email-viewer.md +9 -3
- package/llms/components/lr-embedding-explorer.md +29 -0
- package/llms/components/lr-emoji-picker.md +12 -2
- package/llms/components/lr-empty.md +4 -1
- package/llms/components/lr-entity-card.md +1 -0
- package/llms/components/lr-entity-chip.md +1 -0
- package/llms/components/lr-entity-dossier.md +1 -0
- package/llms/components/lr-env-list.md +1 -0
- package/llms/components/lr-eval-dataset.md +1 -0
- package/llms/components/lr-eval-result.md +1 -0
- package/llms/components/lr-evaluation-run.md +1 -0
- package/llms/components/lr-export-button.md +5 -2
- package/llms/components/lr-file-icon.md +1 -0
- package/llms/components/lr-file-input.md +20 -7
- package/llms/components/lr-file-tree.md +1 -0
- package/llms/components/lr-filter-bar.md +20 -4
- package/llms/components/lr-flag.md +5 -0
- package/llms/components/lr-flow-canvas.md +15 -5
- package/llms/components/lr-flow-controls.md +1 -0
- package/llms/components/lr-flow-minimap.md +8 -2
- package/llms/components/lr-flow-node.md +1 -0
- package/llms/components/lr-flow-run-overlay.md +1 -0
- package/llms/components/lr-format-bytes.md +1 -0
- package/llms/components/lr-format-date.md +1 -0
- package/llms/components/lr-format-number.md +1 -0
- package/llms/components/lr-gauge.md +1 -0
- package/llms/components/lr-generation-status.md +1 -0
- package/llms/components/lr-geojson-view.md +8 -2
- package/llms/components/lr-graph-legend.md +1 -0
- package/llms/components/lr-graph-query-builder.md +10 -0
- package/llms/components/lr-graph.md +4 -3
- package/llms/components/lr-grounding-summary.md +10 -5
- package/llms/components/lr-handoff-divider.md +1 -0
- package/llms/components/lr-heatmap.md +1 -0
- package/llms/components/lr-highlight-layer.md +17 -2
- package/llms/components/lr-histogram.md +5 -3
- package/llms/components/lr-html-viewer.md +7 -1
- package/llms/components/lr-icon-button.md +18 -4
- package/llms/components/lr-icon.md +1 -0
- package/llms/components/lr-image-comparer.md +3 -0
- package/llms/components/lr-image-viewer.md +13 -6
- package/llms/components/lr-include.md +11 -4
- package/llms/components/lr-ingestion-queue.md +5 -2
- package/llms/components/lr-input.md +28 -3
- package/llms/components/lr-intersection-observer.md +1 -0
- package/llms/components/lr-json-viewer.md +17 -6
- package/llms/components/lr-kbd.md +8 -5
- package/llms/components/lr-knowledge-base-admin.md +30 -0
- package/llms/components/lr-knowledge-base.md +1 -0
- package/llms/components/lr-knowledge-graph-explorer.md +1 -0
- package/llms/components/lr-known-date.md +5 -0
- package/llms/components/lr-lightbox.md +1 -0
- package/llms/components/lr-line-chart.md +5 -3
- package/llms/components/lr-lite-chart.md +20 -2
- package/llms/components/lr-live-region.md +1 -0
- package/llms/components/lr-locale-picker.md +10 -0
- package/llms/components/lr-map.md +14 -3
- package/llms/components/lr-markdown-core.md +11 -0
- package/llms/components/lr-markdown.md +11 -0
- package/llms/components/lr-mcp-app.md +51 -0
- package/llms/components/lr-media-card.md +4 -0
- package/llms/components/lr-memory-panel.md +1 -0
- package/llms/components/lr-mention-popover.md +42 -22
- package/llms/components/lr-menu-item.md +7 -2
- package/llms/components/lr-menu.md +7 -2
- package/llms/components/lr-message-actions.md +1 -0
- package/llms/components/lr-message-feedback.md +1 -0
- package/llms/components/lr-message-parts.md +59 -0
- package/llms/components/lr-mind-map.md +1 -0
- package/llms/components/lr-model-select.md +8 -1
- package/llms/components/lr-model-settings-panel.md +1 -0
- package/llms/components/lr-mutation-observer.md +1 -0
- package/llms/components/lr-neighbor-list.md +1 -0
- package/llms/components/lr-node-palette.md +1 -0
- package/llms/components/lr-notebook-viewer.md +16 -10
- package/llms/components/lr-number-input.md +5 -3
- package/llms/components/lr-option.md +67 -14
- package/llms/components/lr-page-rail.md +1 -0
- package/llms/components/lr-pagination.md +6 -0
- package/llms/components/lr-path-strip.md +1 -0
- package/llms/components/lr-pdf-viewer.md +2 -1
- package/llms/components/lr-phone-input.md +15 -3
- package/llms/components/lr-pie-chart.md +5 -3
- package/llms/components/lr-playback.md +3 -2
- package/llms/components/lr-polar-area-chart.md +5 -3
- package/llms/components/lr-policy-summary.md +1 -0
- package/llms/components/lr-poll-status.md +1 -0
- package/llms/components/lr-popover.md +6 -0
- package/llms/components/lr-pptx-viewer.md +7 -2
- package/llms/components/lr-progress-bar.md +7 -0
- package/llms/components/lr-progress-ring.md +1 -0
- package/llms/components/lr-prompt-input.md +56 -0
- package/llms/components/lr-prompt-queue.md +35 -0
- package/llms/components/lr-prompt-studio.md +53 -0
- package/llms/components/lr-provenance-panel.md +1 -0
- package/llms/components/lr-push-to-talk.md +6 -0
- package/llms/components/lr-qr-code.md +1 -0
- package/llms/components/lr-query-builder.md +9 -2
- package/llms/components/lr-radar-chart.md +5 -3
- package/llms/components/lr-radio-group.md +1 -0
- package/llms/components/lr-radio.md +1 -0
- package/llms/components/lr-rag-answer.md +32 -0
- package/llms/components/lr-rag-eval-dashboard.md +46 -0
- package/llms/components/lr-random-content.md +7 -3
- package/llms/components/lr-rating.md +7 -0
- package/llms/components/lr-realtime-session.md +41 -0
- package/llms/components/lr-relative-time.md +1 -0
- package/llms/components/lr-reorder-item.md +1 -0
- package/llms/components/lr-reorder-list.md +1 -0
- package/llms/components/lr-resize-observer.md +1 -0
- package/llms/components/lr-responsive-panel.md +1 -0
- package/llms/components/lr-result-card.md +1 -0
- package/llms/components/lr-result-field.md +1 -0
- package/llms/components/lr-retrieval-compare.md +37 -0
- package/llms/components/lr-retrieval-results.md +1 -0
- package/llms/components/lr-retrieval-search.md +1 -0
- package/llms/components/lr-retrieval-trace.md +4 -2
- package/llms/components/lr-rubric-form.md +5 -1
- package/llms/components/lr-scatter-chart.md +5 -3
- package/llms/components/lr-schema-viewer.md +48 -0
- package/llms/components/lr-scroller.md +1 -0
- package/llms/components/lr-segmented.md +14 -0
- package/llms/components/lr-select.md +27 -16
- package/llms/components/lr-selection-toolbar.md +44 -0
- package/llms/components/lr-sequence-strip.md +1 -0
- package/llms/components/lr-skeleton.md +1 -0
- package/llms/components/lr-slider.md +10 -2
- package/llms/components/lr-source-card.md +5 -5
- package/llms/components/lr-source-list.md +5 -5
- package/llms/components/lr-source-picker.md +4 -3
- package/llms/components/lr-span-waterfall.md +1 -0
- package/llms/components/lr-sparkline.md +1 -0
- package/llms/components/lr-spinner.md +1 -0
- package/llms/components/lr-split.md +13 -3
- package/llms/components/lr-spreadsheet-viewer.md +6 -3
- package/llms/components/lr-stack-trace.md +1 -0
- package/llms/components/lr-stat.md +3 -1
- package/llms/components/lr-stepper.md +13 -12
- package/llms/components/lr-stream-status.md +5 -4
- package/llms/components/lr-streaming-text.md +2 -1
- package/llms/components/lr-subagent-panel.md +43 -0
- package/llms/components/lr-suggestion-chips.md +1 -0
- package/llms/components/lr-svg-viewer.md +9 -1
- package/llms/components/lr-swatch-picker.md +37 -7
- package/llms/components/lr-switch.md +2 -1
- package/llms/components/lr-table.md +77 -11
- package/llms/components/lr-tabs.md +1 -0
- package/llms/components/lr-tag.md +1 -0
- package/llms/components/lr-task-list.md +1 -0
- package/llms/components/lr-terminal.md +6 -0
- package/llms/components/lr-test-results.md +1 -0
- package/llms/components/lr-textarea.md +28 -2
- package/llms/components/lr-thinking-panel.md +1 -0
- package/llms/components/lr-thread-list.md +2 -1
- package/llms/components/lr-time-input.md +4 -2
- package/llms/components/lr-time-range.md +30 -9
- package/llms/components/lr-timeline-item.md +1 -0
- package/llms/components/lr-timeline.md +1 -0
- package/llms/components/lr-toast-item.md +7 -8
- package/llms/components/lr-toast.md +7 -8
- package/llms/components/lr-token-input.md +17 -2
- package/llms/components/lr-tool-approval-dialog.md +1 -0
- package/llms/components/lr-tool-call-chip.md +6 -0
- package/llms/components/lr-tool-param-form.md +1 -0
- package/llms/components/lr-tool-result-dialog.md +12 -0
- package/llms/components/lr-tool-result-view.md +53 -4
- package/llms/components/lr-tool-select-dialog.md +1 -0
- package/llms/components/lr-tool-timeline.md +12 -0
- package/llms/components/lr-tooltip.md +1 -0
- package/llms/components/lr-tour.md +1 -0
- package/llms/components/lr-trace-tree.md +12 -0
- package/llms/components/lr-transcript-feed.md +1 -0
- package/llms/components/lr-tree-node.md +19 -6
- package/llms/components/lr-tree.md +19 -6
- package/llms/components/lr-typing-indicator.md +13 -8
- package/llms/components/lr-usage-badge.md +1 -0
- package/llms/components/lr-virtual-list.md +2 -1
- package/llms/components/lr-voice-picker.md +13 -0
- package/llms/components/lr-widget-renderer.md +3 -1
- package/llms/components/lr-widget.md +25 -6
- package/llms/components/lr-word-cloud.md +9 -2
- package/llms/components/lr-xml-viewer.md +7 -4
- package/llms/components/lr-zoomable-frame.md +1 -0
- package/llms/index.md +22 -5
- package/llms/peers.md +17 -9
- package/llms/shared.md +155 -13
- package/llms-full.txt +2081 -394
- package/llms.txt +6 -5
- package/package.json +66 -14
- package/vscode-css-data.json +1686 -167
- package/vscode-html-data.json +1395 -184
- package/web-types.json +2380 -235
package/vscode-html-data.json
CHANGED
|
@@ -119,11 +119,62 @@
|
|
|
119
119
|
}
|
|
120
120
|
]
|
|
121
121
|
},
|
|
122
|
+
{
|
|
123
|
+
"name": "lr-agent-eval-dashboard",
|
|
124
|
+
"description": {
|
|
125
|
+
"kind": "markdown",
|
|
126
|
+
"value": "`<lr-agent-eval-dashboard>` — a controlled evaluation overview with metric cards, a trend chart,\nand run-status history. It never launches or scores evaluations.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The root dashboard wrapper. |\n| `chart` | The trend chart. |\n| `empty` | The empty history message. |\n| `heading` | The visible heading. |\n| `metric` | One metric card. |\n| `metrics` | The metric-card grid. |\n| `run` | One run row. |\n| `run-label` | A run label. |\n| `run-meta` | Status and metric value. |\n| `run-status` | A run status badge. |\n| `runs` | The run history. |\n| `runs-heading` | The run history heading. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-agent-eval-dashboard-active-border` (default: `var(--lr-color-brand)`) — Active metric border.\n- `--lr-agent-eval-dashboard-active-background` (default: `var(--lr-color-brand-quiet)`) — Active metric background."
|
|
127
|
+
},
|
|
128
|
+
"attributes": [
|
|
129
|
+
{
|
|
130
|
+
"name": "chart-height",
|
|
131
|
+
"description": {
|
|
132
|
+
"kind": "markdown",
|
|
133
|
+
"value": "Type: `string` \nDefault: `'220px'`"
|
|
134
|
+
}
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
"name": "currency",
|
|
138
|
+
"description": {
|
|
139
|
+
"kind": "markdown",
|
|
140
|
+
"value": "ISO 4217 currency code used by metrics whose format is `currency`. Invalid codes use USD.\n\nType: `string` \nDefault: `'USD'`"
|
|
141
|
+
}
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
"name": "label",
|
|
145
|
+
"description": {
|
|
146
|
+
"kind": "markdown",
|
|
147
|
+
"value": "Type: `string` \nDefault: `''`"
|
|
148
|
+
}
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
"name": "locale",
|
|
152
|
+
"description": {
|
|
153
|
+
"kind": "markdown",
|
|
154
|
+
"value": "Optional locale override. Otherwise the nearest `locale`/`lang` ancestor is used.\n\nType: `string` \nDefault: `''`"
|
|
155
|
+
}
|
|
156
|
+
},
|
|
157
|
+
{
|
|
158
|
+
"name": "metric-id",
|
|
159
|
+
"description": {
|
|
160
|
+
"kind": "markdown",
|
|
161
|
+
"value": "Type: `string` \nDefault: `''`"
|
|
162
|
+
}
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
"name": "show-chart",
|
|
166
|
+
"description": {
|
|
167
|
+
"kind": "markdown",
|
|
168
|
+
"value": "Type: `boolean` \nDefault: `true`"
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
]
|
|
172
|
+
},
|
|
122
173
|
{
|
|
123
174
|
"name": "lr-agent-run",
|
|
124
175
|
"description": {
|
|
125
176
|
"kind": "markdown",
|
|
126
|
-
"value": "`<lr-agent-run>` — the top-level shell for one `AgentRun`: lifecycle-status badge, elapsed\ntime, current step, model/cost summary, and built-in Cancel/Retry controls in a header, plus\nfour named composition slots (`tasks`/`tools`/`reasoning`/`output`) for the run's actual\ncontent. This is deliberately a SHELL, not a new step-rendering surface — every piece of\nper-step or per-invocation rendering routes through an existing primitive:\n\n- **Elapsed time**: composes `<lr-generation-status>` (`active`/`started-at`, its own built-in\n Stop button hidden via `show-stop=\"false\"` since this component renders its own Cancel/Retry\n pair instead) for the *live, ticking* readout while the run is genuinely in progress\n (`running`/`collecting`/`waiting-input`/`waiting-approval`). `<lr-stream-status>` doesn't fit:\n its `phase` vocabulary\n (`idle`/`connecting`/`streaming`/`stalled`) models transport/connection health, not an agent\n run's nine built-in lifecycle statuses (plus application-defined extensions), and it exposes no elapsed-time readout at all — exactly the\n distinction `<lr-generation-status>`'s own class doc already draws between the two. Once the\n run reaches a terminal state (`done`/`error`/`cancelled`) with both a `startedAt` and an\n `endedAt`, this component instead renders a small locally-formatted static duration\n (`endedAt - startedAt`): `<lr-generation-status>`'s freeze-on-`active=false` semantics only\n ever freeze at whatever it last computed *live*, so mounting it directly against a completed\n run loaded from history (e.g. `startedAt` yesterday, `endedAt` five minutes later, loaded\n today) would either show a stale zero or the wrong multi-hour span — it has no way to render a\n fixed historical span on demand. That static fallback reuses the same small `formatDuration()`\n algorithm `<lr-usage-badge>` and `<lr-tool-call-chip>` already duplicate locally for the same\n reason (see this file's own copy).\n- **Model + cost summary**: composes `<lr-usage-badge>`, fed `run.costEstimate` (formatted via\n `formatCost`, or a plain `Intl.NumberFormat` by default — this library never assumes a\n currency, see `<lr-format-number>`'s own explicit `currency` prop) as its `cost-text`.\n `run.model` (a plain string with no analogous `<lr-usage-badge>` property) renders alongside\n as plain text.\n- **Current step**: a single-line summary of whichever `run.steps` entry currently has\n `status.kind === 'running'` (the last such entry, if more than one) — a plain text line, not a\n list, so it doesn't duplicate `<lr-task-list>`'s own per-item rendering.\n- **Tasks slot default content**: when the host doesn't slot anything into `tasks` and\n `run.steps` is non-empty, this component's own `<slot>` fallback renders a `<lr-task-list>`\n populated by mapping every `AgentStep` to a `TaskItem` (see `toTaskItem()`) — a plain data\n adapter between the two existing shapes, not new rendering.\n- **Status badge**: composes `<lr-badge>`. **Empty state**: composes `<lr-empty>` when `run` is\n `null`.\n\n`tools`/`reasoning`/`output` are plain named slots with no default content — entirely the\nhost's own composition (typically `<lr-tool-call-chip>`/`<lr-tool-result-view>` rows,\nreasoning/streaming text, and final output respectively). An `actions` slot adds extra header\ncontrols alongside the built-in Cancel/Retry pair. The `header` and `summary` slots replace the\nbuilt-in lifecycle header and model/usage/metrics summary respectively. `statusLabels` and\n`statusVariants` make application-defined lifecycle kinds first-class, while `metrics` renders\narbitrary labeled values such as prompt and completion token counts.\n\nThe built-in Cancel button renders while `showCancel` is true and the run's status is one of\n`TICKING_KINDS` (still genuinely in progress); Retry renders while `showRetry` is true and the\nstatus is `error` or `cancelled`. Clicking either fires `lr-cancel`/`lr-retry` with\n`CancelEventDetail`/`RetryEventDetail` from `src/ai/types.ts` — this component never cancels or\nretries anything itself, it only requests. `RetryEventDetail.attempt` is a 1-based counter\nlocal to this component, incremented on every `lr-retry` click and reset to `0` whenever\n`run.id` changes (a genuinely new run replacing the old one, as opposed to the same run's status\nmerely updating in place).\n\nLifecycle transitions into an attention-needing or terminal state (`waiting-input`,\n`waiting-approval`, `done`, `error`, `cancelled`) are announced through an internal\n`<lr-live-region>`, mirroring `<lr-stream-status>`'s own stall/recover announcements —\n`running`/`idle` transitions are frequent and not independently actionable, so they stay\nsilent, and whatever status a freshly-assigned `run` (a new `run.id`) happens to already carry\nis never itself treated as an eventful transition, only a later in-place change is.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| `actions` | Extra header actions alongside the built-in Cancel/Retry buttons. |\n| `header` | Replaces the built-in lifecycle header and its built-in actions. |\n| `output` | The run's final output content. No default content. |\n| `reasoning` | Reasoning/thinking content. No default content. |\n| `summary` | Replaces the built-in model, usage, and metrics summary. |\n| `tasks` | Task/plan content. Falls back to a `<lr-task-list>` built from `run.steps` when nothing is slotted and `run.steps` is non-empty. |\n| `tools` | Tool-call content (e.g. `<lr-tool-call-chip>`/`<lr-tool-result-view>` rows). No default content. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `actions` | Wrapper around the `actions` slot and the built-in Cancel/Retry buttons. |\n| `base` | The root container. |\n| `body` | Wrapper around the four composition slots. |\n| `cancel-button` | The built-in Cancel button. Only rendered while cancelable (see the class doc). |\n| `current-step` | Wrapper around the current-step icon and label. Only rendered while a step has `status.kind === 'running'`. |\n| `current-step-icon` | The spinning current-step icon. |\n| `current-step-label` | The current step's `label` text. |\n| `elapsed` | The composed `<lr-generation-status>`, only rendered while the run is actively ticking (see the class doc). |\n| `elapsed-static` | The static formatted duration for a terminal run with both `startedAt` and `endedAt`. |\n| `empty` | The `<lr-empty>` shown when `run` is `null`. |\n| `header` | The header row wrapping status, elapsed time, current step, summary, and actions. |\n| `metric` | One arbitrary metric in the built-in summary. |\n| `metric-label` | The metric's label. |\n| `metric-value` | The metric's value. |\n| `model` | `run.model`, when set. |\n| `output` | The `output` slot. |\n| `reasoning` | The `reasoning` slot. |\n| `retry-button` | The built-in Retry button. Only rendered while retryable. |\n| `status` | Wrapper around the status badge and optional status message. |\n| `status-badge` | The resolved `<lr-badge>` lifecycle-status pill. |\n| `status-message` | `run.status.message`, when set. |\n| `summary` | Wrapper around the model text and the composed `<lr-usage-badge>`. Only rendered while `run.model` or a valid `run.costEstimate` is present. |\n| `tasks` | The `tasks` slot. |\n| `tools` | The `tools` slot. |\n| `usage` | The composed `<lr-usage-badge>`. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-agent-run-spin` (default: `
|
|
177
|
+
"value": "`<lr-agent-run>` — the top-level shell for one `AgentRun`: lifecycle-status badge, elapsed\ntime, current step, model/cost summary, and built-in Cancel/Retry controls in a header, plus\nfour named composition slots (`tasks`/`tools`/`reasoning`/`output`) for the run's actual\ncontent. This is deliberately a SHELL, not a new step-rendering surface — every piece of\nper-step or per-invocation rendering routes through an existing primitive:\n\n- **Elapsed time**: composes `<lr-generation-status>` (`active`/`started-at`, its own built-in\n Stop button hidden via `show-stop=\"false\"` since this component renders its own Cancel/Retry\n pair instead) for the *live, ticking* readout while the run is genuinely in progress\n (`running`/`collecting`/`waiting-input`/`waiting-approval`). `<lr-stream-status>` doesn't fit:\n its `phase` vocabulary\n (`idle`/`connecting`/`streaming`/`stalled`) models transport/connection health, not an agent\n run's nine built-in lifecycle statuses (plus application-defined extensions), and it exposes no elapsed-time readout at all — exactly the\n distinction `<lr-generation-status>`'s own class doc already draws between the two. Once the\n run reaches a terminal state (`done`/`error`/`cancelled`) with both a `startedAt` and an\n `endedAt`, this component instead renders a small locally-formatted static duration\n (`endedAt - startedAt`): `<lr-generation-status>`'s freeze-on-`active=false` semantics only\n ever freeze at whatever it last computed *live*, so mounting it directly against a completed\n run loaded from history (e.g. `startedAt` yesterday, `endedAt` five minutes later, loaded\n today) would either show a stale zero or the wrong multi-hour span — it has no way to render a\n fixed historical span on demand. That static fallback reuses the same small `formatDuration()`\n algorithm `<lr-usage-badge>` and `<lr-tool-call-chip>` already duplicate locally for the same\n reason (see this file's own copy).\n- **Model + cost summary**: composes `<lr-usage-badge>`, fed `run.costEstimate` (formatted via\n `formatCost`, or a plain `Intl.NumberFormat` by default — this library never assumes a\n currency, see `<lr-format-number>`'s own explicit `currency` prop) as its `cost-text`.\n `run.model` (a plain string with no analogous `<lr-usage-badge>` property) renders alongside\n as plain text.\n- **Current step**: a single-line summary of whichever `run.steps` entry currently has\n `status.kind === 'running'` (the last such entry, if more than one) — a plain text line, not a\n list, so it doesn't duplicate `<lr-task-list>`'s own per-item rendering.\n- **Tasks slot default content**: when the host doesn't slot anything into `tasks` and\n `run.steps` is non-empty, this component's own `<slot>` fallback renders a `<lr-task-list>`\n populated by mapping every `AgentStep` to a `TaskItem` (see `toTaskItem()`) — a plain data\n adapter between the two existing shapes, not new rendering.\n- **Status badge**: composes `<lr-badge>`. **Empty state**: composes `<lr-empty>` when `run` is\n `null`.\n\n`tools`/`reasoning`/`output` are plain named slots with no default content — entirely the\nhost's own composition (typically `<lr-tool-call-chip>`/`<lr-tool-result-view>` rows,\nreasoning/streaming text, and final output respectively). An `actions` slot adds extra header\ncontrols alongside the built-in Cancel/Retry pair. The `header` and `summary` slots replace the\nbuilt-in lifecycle header and model/usage/metrics summary respectively. `statusLabels` and\n`statusVariants` make application-defined lifecycle kinds first-class, while `metrics` renders\narbitrary labeled values such as prompt and completion token counts.\n\nThe built-in Cancel button renders while `showCancel` is true and the run's status is one of\n`TICKING_KINDS` (still genuinely in progress); Retry renders while `showRetry` is true and the\nstatus is `error` or `cancelled`. Clicking either fires `lr-cancel`/`lr-retry` with\n`CancelEventDetail`/`RetryEventDetail` from `src/ai/types.ts` — this component never cancels or\nretries anything itself, it only requests. `RetryEventDetail.attempt` is a 1-based counter\nlocal to this component, incremented on every `lr-retry` click and reset to `0` whenever\n`run.id` changes (a genuinely new run replacing the old one, as opposed to the same run's status\nmerely updating in place).\n\nLifecycle transitions into an attention-needing or terminal state (`waiting-input`,\n`waiting-approval`, `done`, `error`, `cancelled`) are announced through an internal\n`<lr-live-region>`, mirroring `<lr-stream-status>`'s own stall/recover announcements —\n`running`/`idle` transitions are frequent and not independently actionable, so they stay\nsilent, and whatever status a freshly-assigned `run` (a new `run.id`) happens to already carry\nis never itself treated as an eventful transition, only a later in-place change is.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| `actions` | Extra header actions alongside the built-in Cancel/Retry buttons. |\n| `header` | Replaces the built-in lifecycle header and its built-in actions. |\n| `output` | The run's final output content. No default content. |\n| `reasoning` | Reasoning/thinking content. No default content. |\n| `summary` | Replaces the built-in model, usage, and metrics summary. |\n| `tasks` | Task/plan content. Falls back to a `<lr-task-list>` built from `run.steps` when nothing is slotted and `run.steps` is non-empty. |\n| `tools` | Tool-call content (e.g. `<lr-tool-call-chip>`/`<lr-tool-result-view>` rows). No default content. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `actions` | Wrapper around the `actions` slot and the built-in Cancel/Retry buttons. |\n| `base` | The root container. |\n| `body` | Wrapper around the four composition slots. |\n| `cancel-button` | The built-in Cancel button. Only rendered while cancelable (see the class doc). |\n| `current-step` | Wrapper around the current-step icon and label. Only rendered while a step has `status.kind === 'running'`. |\n| `current-step-icon` | The spinning current-step icon. |\n| `current-step-label` | The current step's `label` text. |\n| `elapsed` | The composed `<lr-generation-status>`, only rendered while the run is actively ticking (see the class doc). |\n| `elapsed-static` | The static formatted duration for a terminal run with both `startedAt` and `endedAt`. |\n| `empty` | The `<lr-empty>` shown when `run` is `null`. |\n| `header` | The header row wrapping status, elapsed time, current step, summary, and actions. |\n| `metric` | One arbitrary metric in the built-in summary. |\n| `metric-label` | The metric's label. |\n| `metric-value` | The metric's value. |\n| `model` | `run.model`, when set. |\n| `output` | The `output` slot. |\n| `reasoning` | The `reasoning` slot. |\n| `retry-button` | The built-in Retry button. Only rendered while retryable. |\n| `status` | Wrapper around the status badge and optional status message. |\n| `status-badge` | The resolved `<lr-badge>` lifecycle-status pill. |\n| `status-message` | `run.status.message`, when set. |\n| `summary` | Wrapper around the model text and the composed `<lr-usage-badge>`. Only rendered while `run.model` or a valid `run.costEstimate` is present. |\n| `tasks` | The `tasks` slot. |\n| `tools` | The `tools` slot. |\n| `usage` | The composed `<lr-usage-badge>`. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-agent-run-spin` (default: `var(--lr-transition-ambient)`) — Current-step icon spin animation.\n- `--lr-agent-run-metric-danger-color` (default: `var(--lr-color-danger)`) — Danger metric value.\n- `--lr-agent-run-metric-success-color` (default: `var(--lr-color-success)`) — Success metric value.\n- `--lr-agent-run-metric-warning-color` (default: `var(--lr-color-warning)`) — Warning metric value.\n- `--lr-agent-run-compact-padding` (default: `var(--lr-space-s)`) — `[part=\"base\"]` padding while `compact`.\n- `--lr-agent-run-compact-gap` (default: `var(--lr-space-s)`) — Gap between `[part=\"base\"]`'s header and body while `compact`."
|
|
127
178
|
},
|
|
128
179
|
"attributes": [
|
|
129
180
|
{
|
|
@@ -218,7 +269,7 @@
|
|
|
218
269
|
"name": "lr-agent-workspace",
|
|
219
270
|
"description": {
|
|
220
271
|
"kind": "markdown",
|
|
221
|
-
"value": "`<lr-agent-workspace>` — a responsive, controlled shell for an AI conversation and its\nsupporting agent state. It renders the transcript and composer in the main pane, and composes\nexisting run, tool, retrieval, grounding, and context primitives in an optional details pane.\n\nThe component performs no network requests, model calls, retrieval, or persistence. Assign new\ndata to the public properties as the host application receives updates. The `messages` fallback\nrenders sanitized
|
|
272
|
+
"value": "`<lr-agent-workspace>` — a responsive, controlled shell for an AI conversation and its\nsupporting agent state. It renders the transcript and composer in the main pane, and composes\nexisting run, tool, retrieval, grounding, and context primitives in an optional details pane.\n\nThe component performs no network requests, model calls, retrieval, or persistence. Assign new\ndata to the public properties as the host application receives updates. The `messages` fallback\nrenders ordered `message.parts` through `<lr-message-parts>` when supplied, otherwise sanitized\nMarkdown from the legacy `message.text`; applications can replace the entire region with the\n`messages` slot. The `details` slot similarly replaces the built-in details pane while keeping\nthe responsive shell. To keep the data-driven fallback bounded, at most the latest 500 messages\nare materialized; applications needing a larger retained transcript can supply a virtualized\n`messages` slot.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| `composer` | Replaces the built-in `<lr-chat-composer>`. |\n| `details` | Replaces the built-in run/tool/retrieval/grounding/context details pane. |\n| `header-actions` | Header actions such as model selection, settings, or export controls. |\n| `messages` | Replaces the data-driven transcript message list. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The root workspace wrapper. |\n| `body` | The main conversation/details layout. |\n| `composer` | The composer region. |\n| `composer-input` | The built-in `<lr-chat-composer>`. |\n| `conversation` | The main transcript pane. |\n| `details` | The responsive details pane. |\n| `details-content` | The built-in details content wrapper. |\n| `header` | The workspace heading and header-actions slot. |\n| `header-actions` | The header-actions slot wrapper. |\n| `heading` | The visible workspace heading. |\n| `messages` | The transcript message wrapper. |\n| `messages-empty` | The empty transcript state. |\n| `section` | A built-in run, tools, retrieval, grounding, or context section. |\n| `section-heading` | A built-in details section heading. |\n| `viewport` | The composed `<lr-chat-viewport>`. |"
|
|
222
273
|
},
|
|
223
274
|
"attributes": [
|
|
224
275
|
{
|
|
@@ -598,6 +649,13 @@
|
|
|
598
649
|
"value": "Whether the mobile floating overlay is shown. Only meaningful while\n`mode` is `'mobile'` — the value is preserved (not reset) while another\nmode is active, but no overlay chrome renders until `mode` is\n`'mobile'` again. Set this directly, or use the built-in toggle button\n— there is no separate `show()`/`hide()` pair.\n\nType: `boolean` \nDefault: `false`"
|
|
599
650
|
}
|
|
600
651
|
},
|
|
652
|
+
{
|
|
653
|
+
"name": "persist",
|
|
654
|
+
"description": {
|
|
655
|
+
"kind": "markdown",
|
|
656
|
+
"value": "Whitespace-separated persistence allowlist. `open width` is the backward-compatible default;\nuse `width preferred-mode` to retain layout preference without restoring the transient mobile\noverlay. Valid tokens are `open`, `width`, and `preferred-mode`.\n\nType: `string` \nDefault: `'open width'`"
|
|
657
|
+
}
|
|
658
|
+
},
|
|
601
659
|
{
|
|
602
660
|
"name": "preferred-mode",
|
|
603
661
|
"description": {
|
|
@@ -616,7 +674,14 @@
|
|
|
616
674
|
"name": "resizable",
|
|
617
675
|
"description": {
|
|
618
676
|
"kind": "markdown",
|
|
619
|
-
"value": "Opts a continuously draggable width in for the `'full'` state — exposes a `[part=\"resizer\"]`\nhandle (pointer-drag and `ArrowLeft`/`ArrowRight` keyboard stepping, RTL-aware) clamped to\n`[minRailWidthPx, maxRailWidthPx]`.
|
|
677
|
+
"value": "Opts a continuously draggable width in for the `'full'` state — exposes a `[part=\"resizer\"]`\nhandle (pointer-drag and `ArrowLeft`/`ArrowRight` keyboard stepping, RTL-aware) clamped to\n`[minRailWidthPx, maxRailWidthPx]`. Set `storageKey` to persist the fields selected by\n`persist`; otherwise listen for `lr-rail-resize` and persist `widthPx` yourself. `false` (the\ndefault) renders no resizer and leaves the fixed-width `--lr-app-rail-width` CSS token exactly\nas before this property existed.\n\nType: `boolean` \nDefault: `false`"
|
|
678
|
+
}
|
|
679
|
+
},
|
|
680
|
+
{
|
|
681
|
+
"name": "storage-key",
|
|
682
|
+
"description": {
|
|
683
|
+
"kind": "markdown",
|
|
684
|
+
"value": "When set, persists the fields selected by `persist` to `localStorage` under\n`lr-app-rail:${storageKey}`, restoring them on the next mount — mirrors `lr-split`'s\n`storage-key`. Effective `mode` is breakpoint-derived and is never persisted. Unset (the\ndefault) means no persistence, exactly as before.\n\nType: `string | undefined`"
|
|
620
685
|
}
|
|
621
686
|
}
|
|
622
687
|
]
|
|
@@ -646,7 +711,7 @@
|
|
|
646
711
|
"name": "href",
|
|
647
712
|
"description": {
|
|
648
713
|
"kind": "markdown",
|
|
649
|
-
"value": "Optional destination. Without `href`, the item renders as a button.\n\nType: `string` \nDefault: `
|
|
714
|
+
"value": "Optional destination. Without `href`, the item renders as a button.\n\nType: `string` \nDefault: `\"\"`"
|
|
650
715
|
}
|
|
651
716
|
},
|
|
652
717
|
{
|
|
@@ -660,7 +725,7 @@
|
|
|
660
725
|
"name": "target",
|
|
661
726
|
"description": {
|
|
662
727
|
"kind": "markdown",
|
|
663
|
-
"value": "Optional link target.\n\nType: `string` \nDefault: `
|
|
728
|
+
"value": "Optional link target.\n\nType: `string` \nDefault: `\"\"`"
|
|
664
729
|
}
|
|
665
730
|
},
|
|
666
731
|
{
|
|
@@ -672,11 +737,55 @@
|
|
|
672
737
|
}
|
|
673
738
|
]
|
|
674
739
|
},
|
|
740
|
+
{
|
|
741
|
+
"name": "lr-approval-queue",
|
|
742
|
+
"description": {
|
|
743
|
+
"kind": "markdown",
|
|
744
|
+
"value": "`<lr-approval-queue>` — a controlled queue of tool calls that need human approval, with a\nkeyboard-accessible request list and a single reused `<lr-tool-approval-dialog>`. It never\nexecutes tools, applies permissions, or persists decisions; the host owns those operations.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The root queue wrapper. |\n| `count` | The pending-count text. |\n| `empty` | The empty state. |\n| `heading` | The visible queue heading. |\n| `heading-row` | The heading and pending-count row. |\n| `list` | The request list. |\n| `request` | One selectable request row. |\n| `request-id` | The stable request id. |\n| `request-info` | Request name and id wrapper. |\n| `status` | The request status badge. |\n| `tool-name` | The proposed tool name. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-approval-queue-selected-border` (default: `var(--lr-color-brand)`) — Selected request border."
|
|
745
|
+
},
|
|
746
|
+
"attributes": [
|
|
747
|
+
{
|
|
748
|
+
"name": "editable",
|
|
749
|
+
"description": {
|
|
750
|
+
"kind": "markdown",
|
|
751
|
+
"value": "Allows argument editing in the nested approval dialog.\n\nType: `boolean` \nDefault: `true`"
|
|
752
|
+
}
|
|
753
|
+
},
|
|
754
|
+
{
|
|
755
|
+
"name": "label",
|
|
756
|
+
"description": {
|
|
757
|
+
"kind": "markdown",
|
|
758
|
+
"value": "Accessible name and visible heading.\n\nType: `string` \nDefault: `''`"
|
|
759
|
+
}
|
|
760
|
+
},
|
|
761
|
+
{
|
|
762
|
+
"name": "locale",
|
|
763
|
+
"description": {
|
|
764
|
+
"kind": "markdown",
|
|
765
|
+
"value": "Optional locale override. Otherwise the nearest `locale`/`lang` ancestor is used.\n\nType: `string` \nDefault: `''`"
|
|
766
|
+
}
|
|
767
|
+
},
|
|
768
|
+
{
|
|
769
|
+
"name": "open",
|
|
770
|
+
"description": {
|
|
771
|
+
"kind": "markdown",
|
|
772
|
+
"value": "Whether the decision dialog is open.\n\nType: `boolean` \nDefault: `false`"
|
|
773
|
+
}
|
|
774
|
+
},
|
|
775
|
+
{
|
|
776
|
+
"name": "selected-id",
|
|
777
|
+
"description": {
|
|
778
|
+
"kind": "markdown",
|
|
779
|
+
"value": "The request currently shown in the dialog.\n\nType: `string` \nDefault: `''`"
|
|
780
|
+
}
|
|
781
|
+
}
|
|
782
|
+
]
|
|
783
|
+
},
|
|
675
784
|
{
|
|
676
785
|
"name": "lr-archive-viewer",
|
|
677
786
|
"description": {
|
|
678
787
|
"kind": "markdown",
|
|
679
|
-
"value": "Lists names and uncompressed sizes in a ZIP archive without rendering entry contents.
|
|
788
|
+
"value": "Lists names and uncompressed sizes in a ZIP archive without rendering entry contents. Sizes use\narchive metadata when available; file entries without size metadata are inflated sequentially\nonce for measurement. The combined declared and measured uncompressed size is capped at 100 MB.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The root container. |\n| `body` | The archive listing body. |\n| `entry` | An archive entry row. |\n| `entry-icon` | The decorative folder or file icon. |\n| `entry-name` | The entry path. |\n| `entry-name-dir` | The entry path of a directory row (also carries `entry-name`). |\n| `entry-size` | The human-readable file size. |\n| `error` | The error region. |\n| `spinner` | The loading region. |"
|
|
680
789
|
},
|
|
681
790
|
"attributes": [
|
|
682
791
|
{
|
|
@@ -734,7 +843,7 @@
|
|
|
734
843
|
"name": "download-src",
|
|
735
844
|
"description": {
|
|
736
845
|
"kind": "markdown",
|
|
737
|
-
"value": "The download URL, sanitized through `
|
|
846
|
+
"value": "The download URL, sanitized through `safeDownloadHref()` before use. Empty hides the button.\n\nType: `string` \nDefault: `''`"
|
|
738
847
|
}
|
|
739
848
|
},
|
|
740
849
|
{
|
|
@@ -1275,6 +1384,13 @@
|
|
|
1275
1384
|
"value": "Type: `boolean` \nDefault: `true`"
|
|
1276
1385
|
}
|
|
1277
1386
|
},
|
|
1387
|
+
{
|
|
1388
|
+
"name": "data-labels",
|
|
1389
|
+
"description": {
|
|
1390
|
+
"kind": "markdown",
|
|
1391
|
+
"value": "Draws each data point's value on the chart via the optional\n`chartjs-plugin-datalabels` peer. Unset (the default) leaves labels off for\nthis chart; the peer is attached only to instances that opt in, and\n`buildConfig()` keeps its per-chart options disabled until this is set. The\nscreen-reader equivalent is the always-present data table (see\n`show-data-table`); labels are a purely visual, canvas-only addition.\n\nType: `boolean` \nDefault: `false`"
|
|
1392
|
+
}
|
|
1393
|
+
},
|
|
1278
1394
|
{
|
|
1279
1395
|
"name": "height",
|
|
1280
1396
|
"description": {
|
|
@@ -1317,6 +1433,13 @@
|
|
|
1317
1433
|
"value": "Makes the generated data table visible; it remains screen-reader available when false.\n\nType: `boolean` \nDefault: `false`"
|
|
1318
1434
|
}
|
|
1319
1435
|
},
|
|
1436
|
+
{
|
|
1437
|
+
"name": "stack-totals",
|
|
1438
|
+
"description": {
|
|
1439
|
+
"kind": "markdown",
|
|
1440
|
+
"value": "When the chart is `stacked` (bar/line only), draws the per-category stack\ntotal above each stack, via the same optional `chartjs-plugin-datalabels`\npeer as `data-labels`. Null/undefined points are skipped; a category whose\nevery value is null shows no total. Unset (the default) draws nothing.\n\nType: `boolean` \nDefault: `false`"
|
|
1441
|
+
}
|
|
1442
|
+
},
|
|
1320
1443
|
{
|
|
1321
1444
|
"name": "stacked",
|
|
1322
1445
|
"description": {
|
|
@@ -1365,7 +1488,7 @@
|
|
|
1365
1488
|
"name": "lr-box-plot",
|
|
1366
1489
|
"description": {
|
|
1367
1490
|
"kind": "markdown",
|
|
1368
|
-
"value": "`<lr-box-plot>` — a box-and-whisker chart from precomputed five-number\nsummaries (no raw sample data is shipped to the browser). Beyond Web\nAwesome's chart set — useful for summarizing distributions.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| `data-table` | An optional consumer-provided accessible table alternative. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The chart wrapper. |\n| `canvas` | The box-plot canvas. |\n| `data-table` | The optional generated or slotted data table. |\n| `description` | The accessible box-plot summary. |"
|
|
1491
|
+
"value": "`<lr-box-plot>` — a box-and-whisker chart from precomputed five-number\nsummaries (no raw sample data is shipped to the browser). Beyond Web\nAwesome's chart set — useful for summarizing distributions.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| `data-table` | An optional consumer-provided accessible table alternative. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The chart wrapper. |\n| `canvas` | The box-plot canvas. |\n| `data-table` | The optional generated or slotted data table. |\n| `description` | The accessible box-plot summary. |\n| `error` | `role=\"alert\"` message shown instead of the canvas when the optional box-plot peer dependency fails to load. |"
|
|
1369
1492
|
},
|
|
1370
1493
|
"attributes": [
|
|
1371
1494
|
{
|
|
@@ -1490,7 +1613,7 @@
|
|
|
1490
1613
|
"name": "lr-breadcrumb-item",
|
|
1491
1614
|
"description": {
|
|
1492
1615
|
"kind": "markdown",
|
|
1493
|
-
"value": "`<lr-breadcrumb-item>` — one link or current-page label in a breadcrumb.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| (default) | Item label. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The link or current-page label. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-breadcrumb-current-color` (default: `var(--lr-color-text-quiet)`) — Text color of the current-page item (`current`/`aria-current=\"page\"`). Declared as an inline `var()` fallback (never on `:host`), so setting it on the element or an ancestor recolors only the current item without hijacking the library-wide `--lr-color-text-quiet` token."
|
|
1616
|
+
"value": "`<lr-breadcrumb-item>` — one link or current-page label in a breadcrumb.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| (default) | Item label. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The link or current-page label. |\n| `separator` | Decorative separator shown before non-first items. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-breadcrumb-current-color` (default: `var(--lr-color-text-quiet)`) — Text color of the current-page item (`current`/`aria-current=\"page\"`). Declared as an inline `var()` fallback (never on `:host`), so setting it on the element or an ancestor recolors only the current item without hijacking the library-wide `--lr-color-text-quiet` token."
|
|
1494
1617
|
},
|
|
1495
1618
|
"attributes": [
|
|
1496
1619
|
{
|
|
@@ -1504,7 +1627,7 @@
|
|
|
1504
1627
|
"name": "href",
|
|
1505
1628
|
"description": {
|
|
1506
1629
|
"kind": "markdown",
|
|
1507
|
-
"value": "Type: `string` \nDefault: `
|
|
1630
|
+
"value": "Type: `string` \nDefault: `\"\"`"
|
|
1508
1631
|
}
|
|
1509
1632
|
},
|
|
1510
1633
|
{
|
|
@@ -1520,7 +1643,7 @@
|
|
|
1520
1643
|
"name": "lr-browser-frame",
|
|
1521
1644
|
"description": {
|
|
1522
1645
|
"kind": "markdown",
|
|
1523
|
-
"value": "`<lr-browser-frame>` — presentational \"agent computer\" viewport: a screenshot/frame stream (or\nslotted live media), read-only URL display, action-ping overlays, and take-over/stop affordances.\nNo automation transport, no input relay — take-over is an event; the host swaps in its own\ninteractive element.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| (default) | Host-owned live element (e.g. `<video>` or an interactive `<iframe>`), replacing the `frame-src` image. |\n| `actions` | Extra toolbar controls. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `actions` | The `actions` slot wrapper. |\n| `base` | The root wrapper (`role=\"group\"`). |\n| `controller-badge` | The current controller indicator. |\n| `frame` | The `frame-src` `<img>` (absent once the default slot is populated). |\n| `ping` | One action-ping marker; carries `data-kind`. |\n| `status` | The visible status text (`role=\"status\"`). |\n| `stop-button` | The stop button. |\n| `take-over-button` | The take-over/hand-back button. |\n| `toolbar` | The header row. |\n| `url` | The read-only address text. |\n| `viewport` | The frame/media container. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-browser-frame-aspect-ratio` (default: `16 / 9`) — The viewport's aspect ratio."
|
|
1646
|
+
"value": "`<lr-browser-frame>` — presentational \"agent computer\" viewport: a screenshot/frame stream (or\nslotted live media), read-only URL display, action-ping overlays, and take-over/stop affordances.\nNo automation transport, no input relay — take-over is an event; the host swaps in its own\ninteractive element.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| (default) | Host-owned live element (e.g. `<video>` or an interactive `<iframe>`), replacing the `frame-src` image. |\n| `actions` | Extra toolbar controls. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `actions` | The `actions` slot wrapper. |\n| `base` | The root wrapper (`role=\"group\"`). |\n| `controller-badge` | The current controller indicator. |\n| `frame` | The `frame-src` `<img>` (absent once the default slot is populated). |\n| `ping` | One action-ping marker; carries `data-kind`. |\n| `status` | The visible status text (`role=\"status\"`). |\n| `stop-button` | The stop button. |\n| `take-over-button` | The take-over/hand-back button. |\n| `toolbar` | The header row. |\n| `url` | The read-only address text. |\n| `viewport` | The frame/media container. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-browser-frame-aspect-ratio` (default: `16 / 9`) — The viewport's aspect ratio.\n- `--lr-browser-frame-controller-background` (default: `var(--lr-color-brand-quiet)`) — Controller badge background.\n- `--lr-browser-frame-controller-color` (default: `var(--lr-color-brand)`) — Controller badge text color.\n- `--lr-browser-frame-ping-click-color` (default: `var(--lr-color-brand)`) — Click-ping border color.\n- `--lr-browser-frame-ping-type-color` (default: `var(--lr-color-success)`) — Type-ping border color.\n- `--lr-browser-frame-ping-scroll-color` (default: `var(--lr-color-warning)`) — Scroll-ping border color.\n- `--lr-browser-frame-ping-move-color` (default: `var(--lr-color-text-quiet)`) — Move-ping border color."
|
|
1524
1647
|
},
|
|
1525
1648
|
"attributes": [
|
|
1526
1649
|
{
|
|
@@ -1602,6 +1725,13 @@
|
|
|
1602
1725
|
"value": "Type: `boolean` \nDefault: `true`"
|
|
1603
1726
|
}
|
|
1604
1727
|
},
|
|
1728
|
+
{
|
|
1729
|
+
"name": "data-labels",
|
|
1730
|
+
"description": {
|
|
1731
|
+
"kind": "markdown",
|
|
1732
|
+
"value": "Draws each data point's value on the chart via the optional\n`chartjs-plugin-datalabels` peer. Unset (the default) leaves labels off for\nthis chart; the peer is attached only to instances that opt in, and\n`buildConfig()` keeps its per-chart options disabled until this is set. The\nscreen-reader equivalent is the always-present data table (see\n`show-data-table`); labels are a purely visual, canvas-only addition.\n\nType: `boolean` \nDefault: `false`"
|
|
1733
|
+
}
|
|
1734
|
+
},
|
|
1605
1735
|
{
|
|
1606
1736
|
"name": "height",
|
|
1607
1737
|
"description": {
|
|
@@ -1644,6 +1774,13 @@
|
|
|
1644
1774
|
"value": "Makes the generated data table visible; it remains screen-reader available when false.\n\nType: `boolean` \nDefault: `false`"
|
|
1645
1775
|
}
|
|
1646
1776
|
},
|
|
1777
|
+
{
|
|
1778
|
+
"name": "stack-totals",
|
|
1779
|
+
"description": {
|
|
1780
|
+
"kind": "markdown",
|
|
1781
|
+
"value": "When the chart is `stacked` (bar/line only), draws the per-category stack\ntotal above each stack, via the same optional `chartjs-plugin-datalabels`\npeer as `data-labels`. Null/undefined points are skipped; a category whose\nevery value is null shows no total. Unset (the default) draws nothing.\n\nType: `boolean` \nDefault: `false`"
|
|
1782
|
+
}
|
|
1783
|
+
},
|
|
1647
1784
|
{
|
|
1648
1785
|
"name": "stacked",
|
|
1649
1786
|
"description": {
|
|
@@ -1692,7 +1829,7 @@
|
|
|
1692
1829
|
"name": "lr-button",
|
|
1693
1830
|
"description": {
|
|
1694
1831
|
"kind": "markdown",
|
|
1695
|
-
"value": "`<lr-button>` — a generic action-button primitive. Renders an internal native\n`<button part=\"base\">`. `type=\"submit\"`/`type=\"reset\"`\nare handled by this component itself via the host's own `closest('form')` — a shadow-internal\nnative `<button type=\"submit\">` does not participate in an ancestor light-DOM form's submission\non its own, since form-submitter semantics don't cross the shadow boundary.\n\
|
|
1832
|
+
"value": "`<lr-button>` — a generic action-button primitive. Renders an internal native\n`<button part=\"base\">`. `type=\"submit\"`/`type=\"reset\"`\nare handled by this component itself via the host's own `closest('form')` — a shadow-internal\nnative `<button type=\"submit\">` does not participate in an ancestor light-DOM form's submission\non its own, since form-submitter semantics don't cross the shadow boundary.\n\nWhen `href` is set to a safe link URL (`http:`/`https:`/`blob:`/`mailto:`/relative — see\n`safeLinkHref`, or `safeDownloadHref` which drops `mailto:` when `download` is set) the root\nrenders as a real `<a part=\"base\" href=…>` instead — for a link styled\nas a button (e.g. a CTA). Native navigation is then the anchor's own activation, so the\nsubmit/reset click handler and `type` (submit/reset) have no effect in that mode. When the\nbutton is disabled (its own `disabled` or an ancestor `<fieldset disabled>`) the anchor renders\nwith `aria-disabled=\"true\"` and **no `href`** — an href-less anchor is not focusable or\nnavigable, so a disabled link button genuinely cannot be activated (unlike a bare\n`aria-disabled` on a still-navigable link). An unsafe/unparseable `href` falls back to the\nnative `<button>`.\n\n`accessibleLabel` (attribute `aria-label`) is forwarded reactively to the internal button/anchor\nas a literal string (for an icon-only button with no visible label); external\n`aria-labelledby`/`aria-describedby` idrefs are not copied across the shadow boundary.\nHost `aria-haspopup` and `aria-expanded` values are likewise forwarded to the internal semantic\ncontrol. When host `aria-controls` names elements in the host's own root, the controls\nrelationship is resolved onto the internal control through the reflected element-reference API\nso it remains valid across this component's shadow boundary; browsers without that API retain\nthe forwarded string attribute as a best-effort fallback.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| (default) | Default slot: the button's label content. |\n| `end` | Trailing icon/content, rendered after the label. |\n| `start` | Leading icon/content, rendered before the label. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The internal native `<button>` (or an `<a>` when `href` resolves to a safe link). |\n| `end` | The `end` slot wrapper. |\n| `label` | The default-slot label wrapper. |\n| `spinner` | The loading spinner, present only while `loading` is `true`. |\n| `start` | The `start` slot wrapper. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-button-width` (default: `100%`) — Inline size of the internal button. The host defaults it to `100%` so the native button follows the host's own width; override to `auto` (or any other value) for a compact inline composition.\n- `--lr-button-hover-brightness` (default: `1.08`) — `filter: brightness()` multiplier applied while hovering a non-disabled button.\n- `--lr-button-active-scale` (default: `0.9875`) — `transform: scale()` factor applied while a non-disabled button is pressed.\n- `--lr-button-spinner-duration` (default: `var(--lr-transition-ambient)`) — Timing of the `loading` spinner.\n- `--lr-button-accent` (default: `var(--lr-color-text)`) — Text/glyph color for the chrome-less appearances (`outlined`, `plain`, `link`). Swapped per `variant` to that variant's semantic color.\n- `--lr-button-fill` (default: `var(--lr-color-surface)`) — Background of `appearance=\"filled\"`. Swapped per `variant` to that variant's semantic color.\n- `--lr-button-on-fill` (default: `var(--lr-color-text)`) — Text color on top of `--lr-button-fill`. Swapped per `variant` to that variant's `on-*` color.\n- `--lr-button-accent-fill` (default: `var(--lr-color-neutral)`) — Background of `appearance=\"accent\"` (and its border color). Swapped per `variant` to that variant's semantic color.\n- `--lr-button-accent-on-fill` (default: `var(--lr-color-on-neutral)`) — Text color on top of `--lr-button-accent-fill`. Swapped per `variant` to that variant's `on-*` color.\n- `--lr-button-border` (default: `var(--lr-color-border)`) — Border color of the internal button. Swapped per `variant` to that variant's semantic color.\n- `--lr-button-outlined-border` (default: `var(--lr-color-border-strong)`) — Border color of `appearance=\"outlined\"`, which overrides `--lr-button-border`.\n- `--lr-button-outlined-fill` (default: `transparent`) — Background of `appearance=\"outlined\"`. Transparent by default; set it to tint the button (e.g. a faint surface wash behind the outline) without a `::part(base)` rule. Like `--lr-button-quiet-*`, it is deliberately *not* swapped per `variant`. Note that the `:hover` `filter: brightness()` applies to whatever fill is set, so a tinted outlined button now visibly brightens on hover where a transparent one did not.\n- `--lr-button-quiet-border` (default: `var(--lr-color-border)`) — Border color of `appearance=\"quiet\"`.\n- `--lr-button-quiet-text` (default: `var(--lr-color-text-quiet)`) — Text color of `appearance=\"quiet\"`.\n- `--lr-button-size-2xs` (default: `var(--lr-size-1-25rem)`) — `min-block-size` at `size=\"2xs\"`.\n- `--lr-button-size-xs` (default: `var(--lr-size-1-5rem)`) — `min-block-size` at `size=\"xs\"`.\n- `--lr-button-size-s` (default: `var(--lr-size-1-875rem)`) — `min-block-size` at `size=\"s\"`. Matches `lr-input`/`lr-select`/`lr-combobox`'s own `size=\"s\"` control height.\n- `--lr-button-size-m` (default: `var(--lr-size-2-5rem)`) — `min-block-size` at `size=\"m\"`. Matches `lr-input`/`lr-select`/`lr-combobox`'s own default control height, so a default-size button sitting next to a default-size input/select/combobox in the same row lines up.\n- `--lr-button-size-l` (default: `var(--lr-size-3rem)`) — `min-block-size` at `size=\"l\"`. Matches `lr-input`/`lr-select`/`lr-combobox`'s own `size=\"l\"` control height.\n- `--lr-button-size-xl` (default: `var(--lr-size-3-5rem)`) — `min-block-size` at `size=\"xl\"`. Matches `lr-input`/`lr-select`/`lr-combobox`'s own `size=\"xl\"` control height.\n- `--lr-button-padding-block` (default: `var(--lr-space-xs)`) — Block padding of the internal button, re-assigned per `size` tier (the default is the `m` tier's value). Override it to retune a tier without a `::part(base)` rule; `appearance=\"link\"` ignores it (it renders with zero padding).\n- `--lr-button-padding-inline` (default: `var(--lr-space-m)`) — Inline padding of the internal button, re-assigned per `size` tier (the default is the `m` tier's value). `appearance=\"link\"` ignores it.\n- `--lr-button-font-size` (default: `var(--lr-font-size-m)`) — Font size of the internal button, re-assigned per `size` tier (the default is the `m` tier's value). `appearance=\"link\"` ignores it and inherits the ambient font instead.\n- `--lr-button-min-height` (default: `var(--lr-button-size-m)`) — The active tier's `min-block-size` floor. Re-assigned per `size` tier to that tier's own `--lr-button-size-*` token, and used as the fallback when `--lr-button-height` is unset.\n- `--lr-button-height` — Exact height of the internal button. **Undeclared by default** — so the button keeps the active tier's `min-block-size` floor and an `auto` height, exactly as before. Set it (e.g. to pin the button to a fixed toolbar row) to both floor *and* cap the height. Never declare it as `auto`: a declared value wins over the `var()` fallback arm and would make every tier's floor dead code. `appearance=\"link\"` ignores it.\n- `--lr-button-gap` (default: `var(--lr-space-2xs)`) — Gap between the icon/label and any slotted content in the internal button. Unlike the size knobs above it does not vary by `size` tier. Override it to retune without a `::part(base)` rule.\n- `--lr-button-radius` (default: `var(--lr-radius)`) — Corner radius of the internal button. Does not vary by `size` tier. `appearance=\"link\"` ignores it (it renders with zero radius).\n- `--lr-button-shadow` — Box shadow of the internal button. **Undeclared by default**, so `box-shadow` falls back to `none` — byte-identical to before this property existed. Set it (e.g. an elevated/floating action button) without a `::part(base)` rule."
|
|
1696
1833
|
},
|
|
1697
1834
|
"attributes": [
|
|
1698
1835
|
{
|
|
@@ -1702,6 +1839,34 @@
|
|
|
1702
1839
|
"value": "`'filled'` (the default) reads `--lr-button-fill`, which for `variant=\"neutral\"` is the\nambient `--lr-color-surface` -- matching this component's own container, by design, for a\nlow-emphasis default. `'accent'` is the loud tier: a solid, high-contrast fill for every\nvariant, including `neutral`. `'link'` is zero-chrome inline text — no padding, border, or\nmin-height, underlined, colored from `--lr-button-accent` (the same token `'plain'` uses)\nand inheriting the surrounding font — for a text link that flows inline in a sentence rather\nthan a button-shaped control. `'quiet'` is a bordered, transparent-until-hover tier for a\ntoolbar-style icon+label action — its border/text read fixed `--lr-color-border`/`--lr-color-text-quiet`\ntokens regardless of `variant`, unlike `'outlined'`'s variant-tinted text, so it stays\nvisually muted at rest.\n\nType: `ButtonAppearance` \nDefault: `'filled'`"
|
|
1703
1840
|
}
|
|
1704
1841
|
},
|
|
1842
|
+
{
|
|
1843
|
+
"name": "aria-controls",
|
|
1844
|
+
"description": {
|
|
1845
|
+
"kind": "markdown",
|
|
1846
|
+
"value": "Type: `string | null` \nDefault: `null`"
|
|
1847
|
+
}
|
|
1848
|
+
},
|
|
1849
|
+
{
|
|
1850
|
+
"name": "aria-expanded",
|
|
1851
|
+
"description": {
|
|
1852
|
+
"kind": "markdown",
|
|
1853
|
+
"value": "Type: `string | null` \nDefault: `null`"
|
|
1854
|
+
}
|
|
1855
|
+
},
|
|
1856
|
+
{
|
|
1857
|
+
"name": "aria-haspopup",
|
|
1858
|
+
"description": {
|
|
1859
|
+
"kind": "markdown",
|
|
1860
|
+
"value": "Type: `string | null` \nDefault: `null`"
|
|
1861
|
+
}
|
|
1862
|
+
},
|
|
1863
|
+
{
|
|
1864
|
+
"name": "aria-label",
|
|
1865
|
+
"description": {
|
|
1866
|
+
"kind": "markdown",
|
|
1867
|
+
"value": "Accessible name forwarded to the internal native button or anchor. Bound to the host's\n`aria-label` content attribute so changing or removing that attribute after mount keeps the\nactual focused control synchronized.\n\nType: `string | null` \nDefault: `null`"
|
|
1868
|
+
}
|
|
1869
|
+
},
|
|
1705
1870
|
{
|
|
1706
1871
|
"name": "disabled",
|
|
1707
1872
|
"description": {
|
|
@@ -1709,6 +1874,20 @@
|
|
|
1709
1874
|
"value": "Type: `boolean`"
|
|
1710
1875
|
}
|
|
1711
1876
|
},
|
|
1877
|
+
{
|
|
1878
|
+
"name": "download",
|
|
1879
|
+
"description": {
|
|
1880
|
+
"kind": "markdown",
|
|
1881
|
+
"value": "Native anchor `download` attribute, used only while `href` resolves to a link. Ignored in\n`<button>` mode.\n\nType: `string | undefined`"
|
|
1882
|
+
}
|
|
1883
|
+
},
|
|
1884
|
+
{
|
|
1885
|
+
"name": "href",
|
|
1886
|
+
"description": {
|
|
1887
|
+
"kind": "markdown",
|
|
1888
|
+
"value": "When set to a safe link URL, the button's root renders as a real `<a href=…>` instead of a\n`<button>` — for a link styled as a button (e.g. a CTA). Unset (the default) renders a plain\n`<button>`, byte-for-byte as before. Only `http:`/`https:`/`blob:`/`mailto:`/relative URLs are\nhonored (see `safeLinkHref`); an unsafe/unparseable value falls back to the native `<button>`.\nSetting `download` narrows the allowlist to `safeDownloadHref`'s, which drops `mailto:` — a\nmail handoff names no retrievable bytes, so it cannot be a download target.\n`type` (submit/reset) has no effect while the anchor renders — an anchor has no submit/reset\nconcept, and native navigation is its own activation. While the button is disabled the anchor\nrenders with no `href` (see the class doc comment), so a disabled link button cannot navigate.\n\nType: `string | undefined`"
|
|
1889
|
+
}
|
|
1890
|
+
},
|
|
1712
1891
|
{
|
|
1713
1892
|
"name": "loading",
|
|
1714
1893
|
"description": {
|
|
@@ -1730,6 +1909,13 @@
|
|
|
1730
1909
|
"value": "Visual size, `'2xs'`–`'xl'`. `'2xs'` is the tightest tier — a sub-`xs` size for dense,\ntoolbar-embedded controls (e.g. beside a native `<input type=\"search\">` in a compact dialog\nheader). `'m'` (the default) is the standard size.\n\nType: `ButtonSize` \nDefault: `'m'`"
|
|
1731
1910
|
}
|
|
1732
1911
|
},
|
|
1912
|
+
{
|
|
1913
|
+
"name": "target",
|
|
1914
|
+
"description": {
|
|
1915
|
+
"kind": "markdown",
|
|
1916
|
+
"value": "Native anchor `target`, used only while `href` resolves to a link. Setting this to `'_blank'`\n(or any other target) automatically derives `rel=\"noopener noreferrer\"` on the rendered anchor\n— matching `lr-card`'s/`lr-stat`'s identical pattern; `rel` is never independently settable, to\nclose the reverse-tabnabbing vector. Ignored in `<button>` mode.\n\nType: `string | undefined`"
|
|
1917
|
+
}
|
|
1918
|
+
},
|
|
1733
1919
|
{
|
|
1734
1920
|
"name": "type",
|
|
1735
1921
|
"description": {
|
|
@@ -1780,7 +1966,7 @@
|
|
|
1780
1966
|
"name": "lr-calendar",
|
|
1781
1967
|
"description": {
|
|
1782
1968
|
"kind": "markdown",
|
|
1783
|
-
"value": "`<lr-calendar>` — responsive month calendar with event markers and agenda mode.\n\nMonth-view event markers are
|
|
1969
|
+
"value": "`<lr-calendar>` — responsive month calendar with event markers and agenda mode.\n\nMonth-view event markers are real buttons inside each focusable gridcell, so\nkeyboard users can activate individual events without switching views.\nAgenda view renders the same events as full-width buttons.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `agenda` | Agenda list. |\n| `agenda-event` | One focusable event button in agenda view (`view=\"agenda\"` only). |\n| `date` | The day-of-month number inside a day cell. |\n| `day` | Day cell. |\n| `event` | Event marker. |\n| `grid` | Month grid. |\n| `header` | Calendar header. |\n| `nav` | A previous/next navigation control in the header (the previous button, and the wrapper around the next button). |\n| `nav-glyph` | The previous/next chevron glyph, mirrored under RTL. |\n| `title` | The header's month/year title. |\n| `week` | One week row within the month grid. |\n| `weekday` | One weekday header cell. |\n| `weekdays` | Weekday header row. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-calendar-day-min-block-size` (default: `var(--lr-size-6rem)`) — Minimum block size of a day cell.\n- `--lr-calendar-day-min-block-size-narrow` (default: `var(--lr-size-4rem)`) — Minimum block size of a day cell once the host is narrower than 28rem.\n- `--lr-calendar-day-selected-bg` (default: `var(--lr-color-brand-quiet)`) — Background of a selected day cell, decoupled from the shared token also driving the nav-button/agenda-event hover background."
|
|
1784
1970
|
},
|
|
1785
1971
|
"attributes": [
|
|
1786
1972
|
{
|
|
@@ -1848,7 +2034,7 @@
|
|
|
1848
2034
|
"name": "name",
|
|
1849
2035
|
"description": {
|
|
1850
2036
|
"kind": "markdown",
|
|
1851
|
-
"value": "Display name associated with the calendar. Used as the accessible name of `[part='base']
|
|
2037
|
+
"value": "Display name associated with the calendar. Used as the accessible name of `[part='base']` after an explicit host `aria-label`, and before the localized `calendarViewerLabel` default.\n\nType: `string` \nDefault: `''`"
|
|
1852
2038
|
}
|
|
1853
2039
|
},
|
|
1854
2040
|
{
|
|
@@ -1864,7 +2050,7 @@
|
|
|
1864
2050
|
"name": "lr-callout",
|
|
1865
2051
|
"description": {
|
|
1866
2052
|
"kind": "markdown",
|
|
1867
|
-
"value": "`<lr-callout>` — an inline message surface for status, warning, and error content.\nSet `inline` for lightweight reactive status/error text: it removes the panel chrome while\npreserving the semantic role, optional leading icon, and close action.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| (default) | Message content. |\n| `heading` | Optional heading. |\n| `icon` | Optional icon. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The callout surface. |\n| `close-button` | The close button's interactive hit target, sized to the shared minimum tappable size (`--lr-icon-button-size`) in both the default panel and the compact `inline` variant. |\n| `close-icon` | The close button's visible \"×\" glyph, independent of `close-button`'s hit target size -- shrinks in the `inline` variant while the hit target stays full-size. |\n| `content` | The message content. |\n| `heading` | The heading wrapper. |\n| `icon` | The icon wrapper. |\n| `message` | The message content wrapper. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-callout-background` (default: `var(--lr-color-surface)`) — The callout surface's background. Each non-neutral `variant` sets it to that variant's `-quiet` tint.\n- `--lr-callout-border` (default: `var(--lr-color-border)`) — The callout surface's border color. Each non-neutral `variant` sets it to that variant's loud color.\n- `--lr-callout-color` (default: `var(--lr-color-text)`) — The callout's text color. Each non-neutral `variant` sets it to that variant's loud color.\n- `--lr-callout-close-hover-bg` (default: `var(--lr-color-brand-quiet)`) — The close button's hover background, decoupled from `--lr-callout-background` so a consumer can retint one without affecting the other (e.g. keeping the hover fill visibly distinct from a `variant=\"brand\"` panel, which shares the same default token)."
|
|
2053
|
+
"value": "`<lr-callout>` — an inline message surface for status, warning, and error content.\nSet `inline` for lightweight reactive status/error text: it removes the panel chrome while\npreserving the semantic role, optional leading icon, and close action.\nInitial content is not announced as a new live update. Later message, heading, or variant\nchanges activate polite announcements, or assertive announcements for `variant=\"danger\"`.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| (default) | Message content. |\n| `heading` | Optional heading. |\n| `icon` | Optional icon. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The callout surface. |\n| `close-button` | The close button's interactive hit target, sized to the shared minimum tappable size (`--lr-icon-button-size`) in both the default panel and the compact `inline` variant. |\n| `close-icon` | The close button's visible \"×\" glyph, independent of `close-button`'s hit target size -- shrinks in the `inline` variant while the hit target stays full-size. |\n| `content` | The message content. |\n| `heading` | The heading wrapper. |\n| `icon` | The icon wrapper. |\n| `message` | The message content wrapper. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-callout-background` (default: `var(--lr-color-surface)`) — The callout surface's background. Each non-neutral `variant` sets it to that variant's `-quiet` tint.\n- `--lr-callout-border` (default: `var(--lr-color-border)`) — The callout surface's border color. Each non-neutral `variant` sets it to that variant's loud color.\n- `--lr-callout-color` (default: `var(--lr-color-text)`) — The callout's text color. Each non-neutral `variant` sets it to that variant's loud color.\n- `--lr-callout-close-hover-bg` (default: `var(--lr-color-brand-quiet)`) — The close button's hover background, decoupled from `--lr-callout-background` so a consumer can retint one without affecting the other (e.g. keeping the hover fill visibly distinct from a `variant=\"brand\"` panel, which shares the same default token)."
|
|
1868
2054
|
},
|
|
1869
2055
|
"attributes": [
|
|
1870
2056
|
{
|
|
@@ -1906,7 +2092,7 @@
|
|
|
1906
2092
|
"name": "open",
|
|
1907
2093
|
"description": {
|
|
1908
2094
|
"kind": "markdown",
|
|
1909
|
-
"value": "
|
|
2095
|
+
"value": "Type: `boolean` \nDefault: `true`"
|
|
1910
2096
|
}
|
|
1911
2097
|
},
|
|
1912
2098
|
{
|
|
@@ -1922,14 +2108,21 @@
|
|
|
1922
2108
|
"name": "lr-card",
|
|
1923
2109
|
"description": {
|
|
1924
2110
|
"kind": "markdown",
|
|
1925
|
-
"value": "`<lr-card>` — a generic, styled bordered content container: the \"small bordered surface with\npadding\" idiom common to hero highlights, clickable grid tiles, and management-list items. A\ndirect `<lr-*>` counterpart to `<wa-card>`'s contract, staying slot-compatible with\n`lr-result-card` where they overlap.\n\nThe header is allocation-responsive: long or translated header content can shrink and wrap,\nand the actions group moves onto another line when both no longer fit side by side.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| (default) | The card body. |\n| `actions` | Small header controls, rendered alongside the header content. |\n| `footer` | Footer content, rendered below the body. |\n| `header` | Header row content, rendered above the body. |\n| `media` | Media content (e.g. an image), rendered above the header. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `actions` | Wrapper around the `actions` slot. Hidden entirely when empty. |\n| `base` | The outer container (a `<div>`, or an `<a>` when `href` is set). |\n| `body` | Wrapper around the default slot. |\n| `footer` | Wrapper around the `footer` slot. Hidden entirely when empty. |\n| `header` | Wrapper around the `header` slot and `actions`. Hidden entirely when both are empty. |\n| `media` | Wrapper around the `media` slot. Hidden entirely when empty. |"
|
|
2111
|
+
"value": "`<lr-card>` — a generic, styled bordered content container: the \"small bordered surface with\npadding\" idiom common to hero highlights, clickable grid tiles, and management-list items. A\ndirect `<lr-*>` counterpart to `<wa-card>`'s contract, staying slot-compatible with\n`lr-result-card` where they overlap.\n\nThe header is allocation-responsive: long or translated header content can shrink and wrap,\nand the actions group moves onto another line when both no longer fit side by side.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| (default) | The card body. |\n| `actions` | Small header controls, rendered alongside the header content. |\n| `footer` | Footer content, rendered below the body. |\n| `header` | Header row content, rendered above the body. |\n| `media` | Media content (e.g. an image), rendered above the header. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `actions` | Wrapper around the `actions` slot. Hidden entirely when empty. |\n| `activation-button` | The native whole-card action, rendered while `interactive` without `href`. It is a sibling of slotted controls, so actionable descendants are never nested inside another actionable role. |\n| `base` | The outer container (a `<div>`, or an `<a>` when `href` is set). |\n| `body` | Wrapper around the default slot. |\n| `footer` | Wrapper around the `footer` slot. Hidden entirely when empty. |\n| `header` | Wrapper around the `header` slot and `actions`. Hidden entirely when both are empty. |\n| `media` | Wrapper around the `media` slot. Hidden entirely when empty. |"
|
|
1926
2112
|
},
|
|
1927
2113
|
"attributes": [
|
|
1928
2114
|
{
|
|
1929
2115
|
"name": "appearance",
|
|
1930
2116
|
"description": {
|
|
1931
2117
|
"kind": "markdown",
|
|
1932
|
-
"value": "Visual treatment, mirroring `wa-card`'s `appearance` vocabulary. `'outlined'` (the default)\nis a bordered surface -- the common \"small bordered surface with padding\" idiom.\n\nType: `CardAppearance` \nDefault:
|
|
2118
|
+
"value": "Visual treatment, mirroring `wa-card`'s `appearance` vocabulary. `'outlined'` (the default)\nis a bordered surface -- the common \"small bordered surface with padding\" idiom.\n\nType: `CardAppearance` \nDefault: `\"outlined\"`"
|
|
2119
|
+
}
|
|
2120
|
+
},
|
|
2121
|
+
{
|
|
2122
|
+
"name": "aria-label",
|
|
2123
|
+
"description": {
|
|
2124
|
+
"kind": "markdown",
|
|
2125
|
+
"value": "Host `aria-label` forwarded to the native no-href activation button.\n\nType: `string | null` \nDefault: `null`"
|
|
1933
2126
|
}
|
|
1934
2127
|
},
|
|
1935
2128
|
{
|
|
@@ -1952,6 +2145,13 @@
|
|
|
1952
2145
|
"kind": "markdown",
|
|
1953
2146
|
"value": "Optional locale override. Otherwise the nearest `locale`/`lang` ancestor is used.\n\nType: `string` \nDefault: `''`"
|
|
1954
2147
|
}
|
|
2148
|
+
},
|
|
2149
|
+
{
|
|
2150
|
+
"name": "target",
|
|
2151
|
+
"description": {
|
|
2152
|
+
"kind": "markdown",
|
|
2153
|
+
"value": "Native anchor target, used only while `href` resolves to a link. Setting this to `'_blank'`\n(or any other target) automatically derives `rel=\"noopener noreferrer\"` on the rendered\nanchor -- there is no separately-settable `rel` property, so a consumer can't forget it and\nleave the opened page holding a `window.opener` back-reference (reverse-tabnabbing). Matches\n`lr-stat`'s/`lr-app-rail-item`'s identical pattern.\n\nType: `string | undefined`"
|
|
2154
|
+
}
|
|
1955
2155
|
}
|
|
1956
2156
|
]
|
|
1957
2157
|
},
|
|
@@ -1966,14 +2166,14 @@
|
|
|
1966
2166
|
"name": "accessible-label",
|
|
1967
2167
|
"description": {
|
|
1968
2168
|
"kind": "markdown",
|
|
1969
|
-
"value": "Type: `string` \nDefault: `
|
|
2169
|
+
"value": "Type: `string` \nDefault: `\"\"`"
|
|
1970
2170
|
}
|
|
1971
2171
|
},
|
|
1972
2172
|
{
|
|
1973
2173
|
"name": "aria-label",
|
|
1974
2174
|
"description": {
|
|
1975
2175
|
"kind": "markdown",
|
|
1976
|
-
"value": "Type:
|
|
2176
|
+
"value": "Type: `| string\n | null` \nDefault: `null`"
|
|
1977
2177
|
}
|
|
1978
2178
|
},
|
|
1979
2179
|
{
|
|
@@ -2040,7 +2240,7 @@
|
|
|
2040
2240
|
"name": "lr-chart",
|
|
2041
2241
|
"description": {
|
|
2042
2242
|
"kind": "markdown",
|
|
2043
|
-
"value": "`<lr-chart>` — the core Chart.js wrapper every other `lr-*-chart` tag\nsubclasses. Requires the optional peer
|
|
2243
|
+
"value": "`<lr-chart>` — the core Chart.js wrapper every other `lr-*-chart` tag\nsubclasses. Requires the optional peer dep `chart.js`; `chartjs-plugin-zoom`\n(for `zoom`) and `chartjs-plugin-datalabels` (for `data-labels`/`stack-totals`)\nare further optional peers loaded only on demand.\n\n**API mirror note:** the real `wa-chart` docs page\n(https://webawesome.com/docs/components/chart/) documents a `config:\nChartJS['config']` property alongside its simplified attributes — \"a\nflexible wrapper around Chart.js\" supporting *both* simplified attributes\nand full Chart.js configuration passthrough, not a `data`/`options` prop\npair. `lr-chart` mirrors that dual surface: the `Series`-based\n`datasets`/`labels`/`type`/`legend`/`xLabel`/`yLabel`/`zoom` attributes\nbelow are the simplified surface (compatible with WA's `type`, `xLabel`,\n`yLabel`, `withoutLegend`-equivalent `legend`, etc.), and the additional\n`config` property is the raw-passthrough escape hatch — a\n`Partial<ChartConfiguration>` deep-merged over the generated config in\n`buildConfig()`, mirroring WA's `config` property without discarding the\n`Series` shape the rest of this component family (subclasses, box-plot,\nhistogram) is built on.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| `center` | Optional overlay content positioned at the chart area's center. Useful for doughnut and pie totals. |\n| `data-table` | An optional consumer-provided accessible table alternative. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The chart wrapper. |\n| `canvas` | The Chart.js canvas. |\n| `center` | The chart-area-centered overlay wrapper for the `center` slot. |\n| `data-table` | The optional generated or slotted data table. |\n| `description` | The accessible chart summary. |\n| `error` | `role=\"alert\"` message shown instead of `canvas` when the optional `chart.js` peer dependency is not installed. |\n| `reset-zoom-button` | The reset-zoom control when zoom is active. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-chart-height` (default: `var(--lr-size-280px)`) — The host's `block-size`. Set on the host element from the `height` property on every change (custom properties only cascade downward, so it cannot be set from inside the shadow root); a host-level override is overwritten the next time `height` changes.\n- `--lr-chart-grid-color` (default: `var(--lr-color-border)`) — Grid-line color. Resolved via `getComputedStyle` on every draw (Chart.js paints to canvas and cannot consume `var()`).\n- `--lr-chart-tick-color` (default: `var(--lr-color-text-quiet)`) — Axis tick-label color; also used for the `xLabel`/`yLabel`/`y2Label` axis-title text (there is no separate title-color token). Resolved via `getComputedStyle` on every draw.\n- `--lr-chart-legend-color` (default: `var(--lr-color-text)`) — Legend label color. Resolved via `getComputedStyle` on every draw.\n- `--lr-chart-tooltip-bg` (default: `var(--lr-color-surface)`) — Tooltip background color. Resolved via `getComputedStyle` on every draw.\n- `--lr-chart-tooltip-text` (default: `var(--lr-color-text)`) — Tooltip text color. Resolved via `getComputedStyle` on every draw."
|
|
2044
2244
|
},
|
|
2045
2245
|
"attributes": [
|
|
2046
2246
|
{
|
|
@@ -2071,6 +2271,13 @@
|
|
|
2071
2271
|
"value": "Type: `boolean` \nDefault: `true`"
|
|
2072
2272
|
}
|
|
2073
2273
|
},
|
|
2274
|
+
{
|
|
2275
|
+
"name": "data-labels",
|
|
2276
|
+
"description": {
|
|
2277
|
+
"kind": "markdown",
|
|
2278
|
+
"value": "Draws each data point's value on the chart via the optional\n`chartjs-plugin-datalabels` peer. Unset (the default) leaves labels off for\nthis chart; the peer is attached only to instances that opt in, and\n`buildConfig()` keeps its per-chart options disabled until this is set. The\nscreen-reader equivalent is the always-present data table (see\n`show-data-table`); labels are a purely visual, canvas-only addition.\n\nType: `boolean` \nDefault: `false`"
|
|
2279
|
+
}
|
|
2280
|
+
},
|
|
2074
2281
|
{
|
|
2075
2282
|
"name": "height",
|
|
2076
2283
|
"description": {
|
|
@@ -2113,6 +2320,13 @@
|
|
|
2113
2320
|
"value": "Makes the generated data table visible; it remains screen-reader available when false.\n\nType: `boolean` \nDefault: `false`"
|
|
2114
2321
|
}
|
|
2115
2322
|
},
|
|
2323
|
+
{
|
|
2324
|
+
"name": "stack-totals",
|
|
2325
|
+
"description": {
|
|
2326
|
+
"kind": "markdown",
|
|
2327
|
+
"value": "When the chart is `stacked` (bar/line only), draws the per-category stack\ntotal above each stack, via the same optional `chartjs-plugin-datalabels`\npeer as `data-labels`. Null/undefined points are skipped; a category whose\nevery value is null shows no total. Unset (the default) draws nothing.\n\nType: `boolean` \nDefault: `false`"
|
|
2328
|
+
}
|
|
2329
|
+
},
|
|
2116
2330
|
{
|
|
2117
2331
|
"name": "stacked",
|
|
2118
2332
|
"description": {
|
|
@@ -2266,7 +2480,7 @@
|
|
|
2266
2480
|
"name": "spellcheck",
|
|
2267
2481
|
"description": {
|
|
2268
2482
|
"kind": "markdown",
|
|
2269
|
-
"value": "
|
|
2483
|
+
"value": "Type: `boolean` \nDefault: `true`"
|
|
2270
2484
|
}
|
|
2271
2485
|
},
|
|
2272
2486
|
{
|
|
@@ -2280,7 +2494,7 @@
|
|
|
2280
2494
|
"name": "stoppable",
|
|
2281
2495
|
"description": {
|
|
2282
2496
|
"kind": "markdown",
|
|
2283
|
-
"value": "
|
|
2497
|
+
"value": "Type: `boolean` \nDefault: `true`"
|
|
2284
2498
|
}
|
|
2285
2499
|
},
|
|
2286
2500
|
{
|
|
@@ -2294,7 +2508,7 @@
|
|
|
2294
2508
|
"name": "submit-on-enter",
|
|
2295
2509
|
"description": {
|
|
2296
2510
|
"kind": "markdown",
|
|
2297
|
-
"value": "
|
|
2511
|
+
"value": "Type: `boolean` \nDefault: `true`"
|
|
2298
2512
|
}
|
|
2299
2513
|
},
|
|
2300
2514
|
{
|
|
@@ -2310,7 +2524,7 @@
|
|
|
2310
2524
|
"name": "lr-chat-message",
|
|
2311
2525
|
"description": {
|
|
2312
2526
|
"kind": "markdown",
|
|
2313
|
-
"value": "`<lr-chat-message>` — a role-based message bubble *shell* for a chat/\nagent conversation surface. It renders none of the message content itself:\nthe default slot carries whatever a consumer wants to display (plain\ntext, a `<lr-markdown>`, a custom template, anything at all) and this\ncomponent only supplies the surrounding chrome — alignment/coloring by\n`role`, an avatar/badges header row, an optional collapse toggle, an\nattachments strip, and a status-aware footer (a live-updating status dot +\ntext, the formatted `timestamp`, a built-in retry affordance for\n`status=\"failed\"`, and an `actions` slot for everything else).\n\nNo built-in copy button is rendered. Deciding what \"the copyable text\" of\nan arbitrary slotted message even means (plain text? the rendered\nmarkdown source? something else?) is exactly the kind of content\ninterpretation this shell deliberately stays out of — slot a copy control\ninto `actions` instead. Firing `lr-copy` (`detail: { text }`) from that\ncontrol keeps the event name consistent with `<lr-json-viewer>`'s own\ncopy affordance, for anything listening at the conversation-surface level.\n\nAccessibility of `status`: the current status is always available as\nplain visible text (`[part=\"status-text\"]`), never color alone. A\ntransition *to* `\"failed\"`, or *from* `\"streaming\"` to `\"sent\"` (a stream\nfinishing), is additionally announced through an internal\n`<lr-live-region>` (see that component's header for the throttled-\nannouncement wiring this composes) so a screen-reader user who isn't\ncurrently focused on this message still learns about it — *unless* the\n`failure` slot has content, in which case this internal announcement is\nskipped: the host's own `role=\"alert\"` failure content is expected to\nannounce itself, and firing both would double-announce the same failure\nwith two different (and differently specific) messages. This differs\nfrom `<lr-typing-indicator>`'s deliberately simpler `role=\"status\"`\napproach — that component only ever has one thing to announce (its own\nmount); this one has a `status` that can flip between several values\nacross a single element's lifetime, which is exactly the coalescing job\n`<lr-live-region>` exists for.\n\n`role` is a message-author role (`user`/`assistant`/`system`, matching\nthe vocabulary of every chat/completion API), *not* a WAI-ARIA role, so\nit reflects to a `data-role` attribute rather than the bare `role`\nattribute — `role=\"user\"` would collide with `Element`'s own ARIA `role`\naccessor and is not a valid ARIA role token to begin with.\n\n`actionsOutsideBubble` allows the `actions` slot to render as a sibling\nimmediately after the message bubble instead of nested inside the footer —\nuseful for consumers whose action row (e.g., a hover-reveal copy button)\nmust sit visually outside the bubble's chrome.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| (default) | The message body. |\n| `actions` | Action controls (e.g. copy, retry), rendered at the end of the footer. |\n| `attachments` | File/image attachment chips, rendered below the message body by default; see `attachments-position`. |\n| `avatar` | An avatar/icon for the message author. |\n| `badges` | Small status/metric chips (e.g. token count, latency, model name) — entirely app-supplied; this component computes none of that itself. |\n| `failure` | Only ever rendered while `status=\"failed\"`. Empty (the default), the footer keeps its built-in `[part=\"status-text\"]`/`[part=\"retry-button\"]` exactly as before. The moment this slot has assigned content, that built-in status text and retry button are suppressed — the host is now fully responsible for presenting its own failure UI, and the built-in `chatFailedAnnounce` live-region announcement is suppressed too (see `@event lr-retry` below for the effect on that event, and the \"Accessibility of `status`\" paragraph above for the built-in announcement this replaces). Content assigned here should carry `role=\"alert\"` itself when it represents an actionable send failure — this component does not add that role on the host's behalf, since it has no way to know what markup the host puts in this slot. This mirrors `lr-flow-node`'s `header` slot, which replaces that component's own built-in heading row the same way. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `actions` | The wrapper around the `actions` slot. Rendered inside the footer by default; a sibling immediately after `bubble` when `actionsOutsideBubble` is set. |\n| `attachments` | The wrapper around the `attachments` slot. |\n| `avatar` | The wrapper around the `avatar` slot. |\n| `badges` | The wrapper around the `badges` slot. |\n| `body` | The wrapper around the default slot (the message content). Hidden while `collapsed`. |\n| `bubble` | The message bubble root. Programmatically focusable (`tabindex=\"-1\"`) so focus has a stable place to land when the built-in retry button is removed (e.g. a `lr-retry` listener flipping `status` away from `\"failed\"`). Its fill/text derive from `--lr-chat-message-bubble-bg`/`--lr-chat-message-bubble-color` for every role except `user`, which derives from `--lr-chat-message-user-bubble-bg`/`--lr-chat-message-user-bubble-color` instead — override those cssprops rather than the shared `--lr-color-*` tokens they default to. Its geometry comes from `--lr-chat-message-bubble-padding`/`--lr-chat-message-bubble-radius` for the same reason — a `::part(bubble)` override from the consumer's tree outranks the per-`status` rules in this shadow tree and silently erases the `failed`/`streaming` treatments. |\n| `collapse-button` | The built-in collapse/expand toggle (only rendered when `collapsible`). |\n| `failure` | The `failure` slot itself (`display: contents` — it contributes no box of its own, so the host's own content lays out exactly as if it were a direct child of `bubble`, with no `::part(failure)` override needed to get there). Only present in the DOM while `status=\"failed\"`. |\n| `footer` | The row below the message body — status, timestamp, retry, and actions. Hidden entirely when none of those have anything to show. |\n| `header` | The row above the message body — avatar, badges, and the collapse toggle. Hidden entirely when none of those have anything to show. |\n| `retry-button` | The built-in retry button (only rendered when `status=\"failed\"`). |\n| `status-indicator` | A small decorative (`aria-hidden`) dot reflecting `status`; absent while `status=\"sent\"`. |\n| `status-text` | The visible text twin of `status-indicator` — carries the state in text, not just color. |\n| `timestamp` | The formatted `timestamp`, rendered in a `<time>` element. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-chat-message-max-width` (default: `80%`) — Maximum inline size of the message bubble.\n- `--lr-chat-message-bubble-bg` (default: `var(--lr-color-surface)`) — Bubble fill for every role except `user`.\n- `--lr-chat-message-bubble-color` (default: `var(--lr-color-text)`) — Bubble text color for every role except `user`.\n- `--lr-chat-message-user-bubble-bg` (default: `var(--lr-color-brand-quiet)`) — Bubble fill for `data-role=\"user\"`.\n- `--lr-chat-message-user-bubble-color` (default: `var(--lr-color-text)`) — Bubble text color for `data-role=\"user\"`.\n- `--lr-chat-message-bubble-padding` (default: `var(--lr-space-m)`) — Bubble padding. Prefer this over a `::part(bubble)` padding override: an outer-tree `::part` declaration outranks every rule in this shadow tree, which silently suppresses the per-`status` and per-role bubble styling below it.\n- `--lr-chat-message-bubble-radius` (default: `var(--lr-radius)`) — Bubble corner radius. Bubble-only by design — `collapse-button` and `retry-button` keep reading the shared `--lr-radius`, so a rounder bubble never desyncs the controls from the rest of the library.\n- `--lr-transition-ambient` (default: `1.8s ease-in-out`) — Streaming-indicator animation duration and timing function."
|
|
2527
|
+
"value": "`<lr-chat-message>` — a role-based message bubble *shell* for a chat/\nagent conversation surface. It renders none of the message content itself:\nthe default slot carries whatever a consumer wants to display (plain\ntext, a `<lr-markdown>`, a custom template, anything at all) and this\ncomponent only supplies the surrounding chrome — alignment/coloring by\n`role`, an avatar/badges header row, an optional collapse toggle, an\nattachments strip, and a status-aware footer (a live-updating status dot +\ntext, the formatted `timestamp`, a built-in retry affordance for\n`status=\"failed\"`, and an `actions` slot for everything else).\n\nNo built-in copy button is rendered. Deciding what \"the copyable text\" of\nan arbitrary slotted message even means (plain text? the rendered\nmarkdown source? something else?) is exactly the kind of content\ninterpretation this shell deliberately stays out of — slot a copy control\ninto `actions` instead. Firing `lr-copy` (`detail: { text }`) from that\ncontrol keeps the event name consistent with `<lr-json-viewer>`'s own\ncopy affordance, for anything listening at the conversation-surface level.\n\nAccessibility of `status`: the current status is always available as\nplain visible text (`[part=\"status-text\"]`), never color alone. A\ntransition *to* `\"failed\"`, or *from* `\"streaming\"` to `\"sent\"` (a stream\nfinishing), is additionally announced through an internal\n`<lr-live-region>` (see that component's header for the throttled-\nannouncement wiring this composes) so a screen-reader user who isn't\ncurrently focused on this message still learns about it — *unless* the\n`failure` slot has content, in which case this internal announcement is\nskipped: the host's own `role=\"alert\"` failure content is expected to\nannounce itself, and firing both would double-announce the same failure\nwith two different (and differently specific) messages. This differs\nfrom `<lr-typing-indicator>`'s deliberately simpler `role=\"status\"`\napproach — that component only ever has one thing to announce (its own\nmount); this one has a `status` that can flip between several values\nacross a single element's lifetime, which is exactly the coalescing job\n`<lr-live-region>` exists for.\n\n`role` is a message-author role (`user`/`assistant`/`system`, matching\nthe vocabulary of every chat/completion API), *not* a WAI-ARIA role, so\nit reflects to a `data-role` attribute rather than the bare `role`\nattribute — `role=\"user\"` would collide with `Element`'s own ARIA `role`\naccessor and is not a valid ARIA role token to begin with.\n\n`actionsOutsideBubble` allows the `actions` slot to render as a sibling\nimmediately after the message bubble instead of nested inside the footer —\nuseful for consumers whose action row (e.g., a hover-reveal copy button)\nmust sit visually outside the bubble's chrome.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| (default) | The message body. |\n| `actions` | Action controls (e.g. copy, retry), rendered at the end of the footer. |\n| `attachments` | File/image attachment chips, rendered below the message body by default; see `attachments-position`. |\n| `avatar` | An avatar/icon for the message author. |\n| `badges` | Small status/metric chips (e.g. token count, latency, model name) — entirely app-supplied; this component computes none of that itself. |\n| `failure` | Only ever rendered while `status=\"failed\"`. Empty (the default), the footer keeps its built-in `[part=\"status-text\"]`/`[part=\"retry-button\"]` exactly as before. The moment this slot has assigned content, that built-in status text and retry button are suppressed — the host is now fully responsible for presenting its own failure UI, and the built-in `chatFailedAnnounce` live-region announcement is suppressed too (see `@event lr-retry` below for the effect on that event, and the \"Accessibility of `status`\" paragraph above for the built-in announcement this replaces). Content assigned here should carry `role=\"alert\"` itself when it represents an actionable send failure — this component does not add that role on the host's behalf, since it has no way to know what markup the host puts in this slot. This mirrors `lr-flow-node`'s `header` slot, which replaces that component's own built-in heading row the same way. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `actions` | The wrapper around the `actions` slot. Rendered inside the footer by default; a sibling immediately after `bubble` when `actionsOutsideBubble` is set. |\n| `attachments` | The wrapper around the `attachments` slot. |\n| `avatar` | The wrapper around the `avatar` slot. |\n| `badges` | The wrapper around the `badges` slot. |\n| `body` | The wrapper around the default slot (the message content). Hidden while `collapsed`. |\n| `bubble` | The message bubble root. Programmatically focusable (`tabindex=\"-1\"`) so focus has a stable place to land when the built-in retry button is removed (e.g. a `lr-retry` listener flipping `status` away from `\"failed\"`). Its fill/text derive from `--lr-chat-message-bubble-bg`/`--lr-chat-message-bubble-color` for every role except `user`, which derives from `--lr-chat-message-user-bubble-bg`/`--lr-chat-message-user-bubble-color` instead — override those cssprops rather than the shared `--lr-color-*` tokens they default to. Its geometry comes from `--lr-chat-message-bubble-padding`/`--lr-chat-message-bubble-radius` for the same reason — a `::part(bubble)` override from the consumer's tree outranks the per-`status` rules in this shadow tree and silently erases the `failed`/`streaming` treatments. |\n| `collapse-button` | The built-in collapse/expand toggle (only rendered when `collapsible`). |\n| `failure` | The `failure` slot itself (`display: contents` — it contributes no box of its own, so the host's own content lays out exactly as if it were a direct child of `bubble`, with no `::part(failure)` override needed to get there). Only present in the DOM while `status=\"failed\"`. |\n| `footer` | The row below the message body — status, timestamp, retry, and actions. Hidden entirely when none of those have anything to show. |\n| `header` | The row above the message body — avatar, badges, and the collapse toggle. Hidden entirely when none of those have anything to show. |\n| `retry-button` | The built-in retry button (only rendered when `status=\"failed\"`). |\n| `status-indicator` | A small decorative (`aria-hidden`) dot reflecting `status`; absent while `status=\"sent\"`. |\n| `status-text` | The visible text twin of `status-indicator` — carries the state in text, not just color. |\n| `timestamp` | The formatted `timestamp`, rendered in a `<time>` element. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-chat-message-max-width` (default: `80%`) — Maximum inline size of the message bubble.\n- `--lr-chat-message-bubble-bg` (default: `var(--lr-color-surface)`) — Bubble fill for every role except `user`.\n- `--lr-chat-message-bubble-color` (default: `var(--lr-color-text)`) — Bubble text color for every role except `user`.\n- `--lr-chat-message-user-bubble-bg` (default: `var(--lr-color-brand-quiet)`) — Bubble fill for `data-role=\"user\"`.\n- `--lr-chat-message-user-bubble-color` (default: `var(--lr-color-text)`) — Bubble text color for `data-role=\"user\"`.\n- `--lr-chat-message-system-color` (default: `var(--lr-color-text-quiet)`) — System-message text color.\n- `--lr-chat-message-streaming-border-color` (default: `var(--lr-color-brand)`) — Streaming bubble border.\n- `--lr-chat-message-failed-border-color` (default: `var(--lr-color-danger)`) — Failed bubble border.\n- `--lr-chat-message-failed-bg` (default: `var(--lr-color-danger-quiet)`) — Failed bubble fill.\n- `--lr-chat-message-footer-color` (default: `var(--lr-color-text-quiet)`) — Default footer text.\n- `--lr-chat-message-user-footer-color` (default: `var(--lr-color-text)`) — User-message footer text.\n- `--lr-chat-message-failed-footer-color` (default: `var(--lr-color-danger)`) — Failed-message footer text.\n- `--lr-chat-message-indicator-color` (default: `var(--lr-color-text-quiet)`) — Default status indicator.\n- `--lr-chat-message-streaming-indicator-color` (default: `var(--lr-color-brand)`) — Streaming indicator.\n- `--lr-chat-message-failed-indicator-color` (default: `var(--lr-color-danger)`) — Failed indicator.\n- `--lr-chat-message-failed-status-color` (default: `var(--lr-color-danger)`) — Failed status text.\n- `--lr-chat-message-bubble-padding` (default: `var(--lr-space-m)`) — Bubble padding. Prefer this over a `::part(bubble)` padding override: an outer-tree `::part` declaration outranks every rule in this shadow tree, which silently suppresses the per-`status` and per-role bubble styling below it.\n- `--lr-chat-message-bubble-radius` (default: `var(--lr-radius)`) — Bubble corner radius. Bubble-only by design — `collapse-button` and `retry-button` keep reading the shared `--lr-radius`, so a rounder bubble never desyncs the controls from the rest of the library.\n- `--lr-transition-ambient` (default: `1.8s ease-in-out`) — Streaming-indicator animation duration and timing function."
|
|
2314
2528
|
},
|
|
2315
2529
|
"attributes": [
|
|
2316
2530
|
{
|
|
@@ -2383,7 +2597,7 @@
|
|
|
2383
2597
|
"name": "lr-chat-viewport",
|
|
2384
2598
|
"description": {
|
|
2385
2599
|
"kind": "markdown",
|
|
2386
|
-
"value": "`<lr-chat-viewport>` — the transcript scroll container: owns stick-to-bottom behavior while an\nanswer streams, the \"jump to latest\" pill, and the unread divider.\n\n**Two supported content shapes, auto-detected:** ordinary element children (typically\n`<lr-chat-message>`s -- *slotted mode*), or exactly one `<lr-virtual-list>` (*virtual mode*,\ndetected via `instanceof` against the imported class so custom prefixes keep working). In virtual\nmode this component defers all scrolling to the slotted list's own `scrollToIndex()`, and sizes\nthat list to its own height -- without which the list would scroll inside `lr-virtual-list`'s\n24rem `--lr-virtual-list-height` default no matter how tall this viewport is. That sizing is a\npercentage, so virtual mode needs a height-bounded parent, the same requirement slotted mode's\nown scroll container already has; a consumer's own rule or inline style setting\n`--lr-virtual-list-height` on the list still wins.\n\n**Follow/release state machine.** While `follow` is engaged, content growth re-scrolls to the end.\nRelease happens only on a *user-intent* gesture (wheel, touchmove, scrollbar-drag, or\nPageUp/ArrowUp/Home while the log region has focus) that leaves the view more than\n`bottomThreshold` from the end -- a scroll caused by this component's own programmatic scrolling,\nor by a layout shift, never releases it. Reaching the bottom again by any means re-engages `follow`.\nThe internal log defaults to `live=\"off\"`, which avoids announcing every streaming token. Consumers\nthat append complete messages at an announcement-safe cadence can opt into `polite` or `assertive`.\n\n**`scrollToUnread()` in virtual mode.** The target row is scrolled with `align: 'start'` so the\ndivider boundary lands at the top of the view with the unread content visible below it -- the\nonly alignment that matches what \"scroll to the divider\" means here. The underlying virtual list\nonly issues a corrective re-scroll for an initially-unmeasured target when that target's *own*\nheight is what was uncertain (`align: 'end'`/a downward `align: 'auto'`); a `'start'`-aligned\ntarget's position is a function of the rows *before* it, so it has no such self-correction. In\npractice the rows leading up to an unread boundary are usually ones the reader already scrolled\npast (and so already measured), which keeps this accurate in the common case; a still-unmeasured\nlong-distance jump can land approximately rather than pixel-exact. Fixing that fully would mean\nchanging how the underlying list resolves offsets, which is out of scope here -- `align: 'end'`\nwas considered and rejected because it changes the visible outcome (it would put the *bottom* of\nthe boundary row at the viewport's bottom edge, hiding the unread content the jump is meant to\nreveal, not just changing how precisely it lands).\n\nRenders no messages and computes no unread state itself -- the host supplies `unreadStartIndex`;\nno virtualization of its own (`<lr-virtual-list>`); not a generic overflow surface\n(`<lr-scroller>`); no message semantics (`<lr-chat-message>`).\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| (default) | The transcript: ordinary element children, or exactly one `<lr-virtual-list>`. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The positioning root. |\n| `content` | The slotted-content wrapper the growth observers watch. |\n| `jump-pill` | The built-in jump-to-latest button, absent while `follow` is engaged. |\n| `scroll` | The scroll container (`role=\"log\"
|
|
2600
|
+
"value": "`<lr-chat-viewport>` — the transcript scroll container: owns stick-to-bottom behavior while an\nanswer streams, the \"jump to latest\" pill, and the unread divider.\n\n**Two supported content shapes, auto-detected:** ordinary element children (typically\n`<lr-chat-message>`s -- *slotted mode*), or exactly one `<lr-virtual-list>` (*virtual mode*,\ndetected via `instanceof` against the imported class so custom prefixes keep working). In virtual\nmode this component defers all scrolling to the slotted list's own `scrollToIndex()`, and sizes\nthat list to its own height -- without which the list would scroll inside `lr-virtual-list`'s\n24rem `--lr-virtual-list-height` default no matter how tall this viewport is. That sizing is a\npercentage, so virtual mode needs a height-bounded parent, the same requirement slotted mode's\nown scroll container already has; a consumer's own rule or inline style setting\n`--lr-virtual-list-height` on the list still wins.\n\n**Follow/release state machine.** While `follow` is engaged, content growth re-scrolls to the end.\nRelease happens only on a *user-intent* gesture (wheel, touchmove, scrollbar-drag, or\nPageUp/ArrowUp/Home while the log region has focus) that leaves the view more than\n`bottomThreshold` from the end -- a scroll caused by this component's own programmatic scrolling,\nor by a layout shift, never releases it. Reaching the bottom again by any means re-engages `follow`.\nThe internal log defaults to `live=\"off\"`, which avoids announcing every streaming token. Consumers\nthat append complete messages at an announcement-safe cadence can opt into `polite` or `assertive`.\n\n**`scrollToUnread()` in virtual mode.** The target row is scrolled with `align: 'start'` so the\ndivider boundary lands at the top of the view with the unread content visible below it -- the\nonly alignment that matches what \"scroll to the divider\" means here. The underlying virtual list\nonly issues a corrective re-scroll for an initially-unmeasured target when that target's *own*\nheight is what was uncertain (`align: 'end'`/a downward `align: 'auto'`); a `'start'`-aligned\ntarget's position is a function of the rows *before* it, so it has no such self-correction. In\npractice the rows leading up to an unread boundary are usually ones the reader already scrolled\npast (and so already measured), which keeps this accurate in the common case; a still-unmeasured\nlong-distance jump can land approximately rather than pixel-exact. Fixing that fully would mean\nchanging how the underlying list resolves offsets, which is out of scope here -- `align: 'end'`\nwas considered and rejected because it changes the visible outcome (it would put the *bottom* of\nthe boundary row at the viewport's bottom edge, hiding the unread content the jump is meant to\nreveal, not just changing how precisely it lands).\n\nRenders no messages and computes no unread state itself -- the host supplies `unreadStartIndex`;\nno virtualization of its own (`<lr-virtual-list>`); not a generic overflow surface\n(`<lr-scroller>`); no message semantics (`<lr-chat-message>`).\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| (default) | The transcript: ordinary element children, or exactly one `<lr-virtual-list>`. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The positioning root. |\n| `content` | The slotted-content wrapper the growth observers watch. |\n| `jump-pill` | The built-in jump-to-latest button, absent while `follow` is engaged. |\n| `scroll` | The scroll container (`role=\"log\"` and, in slotted mode, `tabindex=\"0\"`). In virtual mode it stops scrolling itself and drops its tab stop because the slotted list owns both scrolling and keyboard focus. |\n| `unread-divider` | The \"New messages\" separator (slotted mode only). |"
|
|
2387
2601
|
},
|
|
2388
2602
|
"attributes": [
|
|
2389
2603
|
{
|
|
@@ -2404,7 +2618,7 @@
|
|
|
2404
2618
|
"name": "follow",
|
|
2405
2619
|
"description": {
|
|
2406
2620
|
"kind": "markdown",
|
|
2407
|
-
"value": "
|
|
2621
|
+
"value": "Type: `boolean` \nDefault: `true`"
|
|
2408
2622
|
}
|
|
2409
2623
|
},
|
|
2410
2624
|
{
|
|
@@ -2441,7 +2655,7 @@
|
|
|
2441
2655
|
"name": "lr-checkbox",
|
|
2442
2656
|
"description": {
|
|
2443
2657
|
"kind": "markdown",
|
|
2444
|
-
"value": "`<lr-checkbox>` — a boolean form control. Structurally the same idea as\n`<lr-switch>` (form-associated via `ElementInternals`, click and\nSpace both toggle) but with checkbox semantics: `role=\"checkbox\"` +\nan `aria-checked` that can also be `\"mixed\"`, and a visual box/checkmark\ninstead of a track/thumb.\n\n`checked` is not a plain string, so this attaches `ElementInternals`\ndirectly and implements its own `updateValidity()` rather than using the\n`FormAssociated` mixin — see `<lr-combobox>` for the same\ndirect-`ElementInternals` shape with a non-string value.\n\nDeliberately no hint/error chrome of its own -- the default slot already carries real, visible\nlabel text (see `@slot` below), so a labeled-field frame built around `label`/`hint`/`errorText`\nprops has nothing to add here. A consumer needing hint/error messaging composes it in their own\nwrapper (e.g. `<lr-tool-param-form>` folds a boolean field's validation error into adjacent\ndescription text / `aria-label` rather than a `<lr-checkbox>`-owned slot), the same way a\nnative `<input type=\"checkbox\">` plus `<label>` pairs with an externally-owned error node.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| (default) | Label text, rendered next to the box. Clicking it toggles the checkbox, the same as clicking a native checkbox's associated `<label>`. If left empty, set `aria-label` on the host so the control still has an accessible name. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The whole interactive control (`role=\"checkbox\"`); wraps the box and label. |\n| `box` | The small square that shows the checkmark/indeterminate dash. |\n| `checkmark` | The checkmark (or indeterminate dash) glyph inside the box. |\n| `label` | The wrapper around the default slot. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-checkbox-label-indent` (default: `calc(min(var(--lr-icon-button-size), 1.75rem) + var(--lr-space-s))`) — The inline distance from the control's start edge to the start of the label text, i.e. the box's own floor plus the gap next to it. Published so a consumer composing per-option hint text under the label can align it without re-deriving that formula from the shadow styles, and used as the source of the real gap so the two cannot drift. Setting it on the element (or on `lr-checkbox` in your own stylesheet) moves the label; because custom properties inherit down and not sideways, it is *not* readable from a sibling node in your tree — align a sibling by computing the same formula from `--lr-theme-icon-button-size` and `--lr-theme-space-s`, which you control.\n- `--lr-checkbox-checked-bg` (default: `var(--lr-color-brand)`) — Background of `[part='box']` while `checked` or `indeterminate`. Retint just this control's checked fill without touching the shared `--lr-color-brand` token every other component also reads.\n- `--lr-checkbox-checked-border` (default: `var(--lr-color-brand)`) — Border color of `[part='box']` while `checked` or `indeterminate`."
|
|
2658
|
+
"value": "`<lr-checkbox>` — a boolean form control. Structurally the same idea as\n`<lr-switch>` (form-associated via `ElementInternals`, click and\nSpace both toggle) but with checkbox semantics: `role=\"checkbox\"` +\nan `aria-checked` that can also be `\"mixed\"`, and a visual box/checkmark\ninstead of a track/thumb.\n\n`checked` is not a plain string, so this attaches `ElementInternals`\ndirectly and implements its own `updateValidity()` rather than using the\n`FormAssociated` mixin — see `<lr-combobox>` for the same\ndirect-`ElementInternals` shape with a non-string value.\n\nDeliberately no hint/error chrome of its own -- the default slot already carries real, visible\nlabel text (see `@slot` below), so a labeled-field frame built around `label`/`hint`/`errorText`\nprops has nothing to add here. A consumer needing hint/error messaging composes it in their own\nwrapper (e.g. `<lr-tool-param-form>` folds a boolean field's validation error into adjacent\ndescription text / `aria-label` rather than a `<lr-checkbox>`-owned slot), the same way a\nnative `<input type=\"checkbox\">` plus `<label>` pairs with an externally-owned error node.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| (default) | Label text, rendered next to the box. Clicking it toggles the checkbox, the same as clicking a native checkbox's associated `<label>`. If left empty, set `aria-label` on the host so the control still has an accessible name. A host `aria-describedby` attribute is forwarded to the internal `role=\"checkbox\"` so externally-owned descriptions can be associated with this individual control. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The whole interactive control (`role=\"checkbox\"`); wraps the box and label. |\n| `box` | The small square that shows the checkmark/indeterminate dash. |\n| `checkmark` | The checkmark (or indeterminate dash) glyph inside the box. |\n| `label` | The wrapper around the default slot. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-checkbox-label-indent` (default: `calc(min(var(--lr-icon-button-size), 1.75rem) + var(--lr-space-s))`) — The inline distance from the control's start edge to the start of the label text, i.e. the box's own floor plus the gap next to it. Published so a consumer composing per-option hint text under the label can align it without re-deriving that formula from the shadow styles, and used as the source of the real gap so the two cannot drift. Setting it on the element (or on `lr-checkbox` in your own stylesheet) moves the label; because custom properties inherit down and not sideways, it is *not* readable from a sibling node in your tree — align a sibling by computing the same formula from `--lr-theme-icon-button-size` and `--lr-theme-space-s`, which you control.\n- `--lr-checkbox-checked-bg` (default: `var(--lr-color-brand)`) — Background of `[part='box']` while `checked` or `indeterminate`. Retint just this control's checked fill without touching the shared `--lr-color-brand` token every other component also reads.\n- `--lr-checkbox-checked-border` (default: `var(--lr-color-brand)`) — Border color of `[part='box']` while `checked` or `indeterminate`."
|
|
2445
2659
|
},
|
|
2446
2660
|
"attributes": [
|
|
2447
2661
|
{
|
|
@@ -2564,7 +2778,7 @@
|
|
|
2564
2778
|
"name": "lr-checkpoint",
|
|
2565
2779
|
"description": {
|
|
2566
2780
|
"kind": "markdown",
|
|
2567
|
-
"value": "`<lr-checkpoint>` — an inline conversation restore point: a labeled marker between messages\nwhose Restore affordance confirms inline, then hands the host a `lr-restore` event. This\ncomponent persists and restores nothing itself — host state in, events out.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| (default) | Optional supplemental content under the marker row (e.g. what changed since this point). |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The marker root (`role=\"group\"`). |\n| `cancel-button` | Cancels, reverting to `restore-button`. |\n| `confirm-button` | Confirms the restore, firing `lr-restore`. |\n| `confirm-group` | The inline confirm prompt, swapped in for `restore-button` while confirming. |\n| `confirm-prompt` | The confirm prompt text. |\n| `icon` | The bookmark glyph. |\n| `label` | The computed label text. |\n| `line` | Each of the two flanking rules. |\n| `restore-button` | The Restore button. Only rendered while `restorable`. |\n| `timestamp` | The formatted `timestamp`, when set. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-checkpoint-spin-duration` (default: `
|
|
2781
|
+
"value": "`<lr-checkpoint>` — an inline conversation restore point: a labeled marker between messages\nwhose Restore affordance confirms inline, then hands the host a `lr-restore` event. This\ncomponent persists and restores nothing itself — host state in, events out.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| (default) | Optional supplemental content under the marker row (e.g. what changed since this point). |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The marker root (`role=\"group\"`). |\n| `cancel-button` | Cancels, reverting to `restore-button`. |\n| `confirm-button` | Confirms the restore, firing `lr-restore`. |\n| `confirm-group` | The inline confirm prompt, swapped in for `restore-button` while confirming. |\n| `confirm-prompt` | The confirm prompt text. |\n| `icon` | The bookmark glyph. |\n| `label` | The computed label text. |\n| `line` | Each of the two flanking rules. |\n| `restore-button` | The Restore button. Only rendered while `restorable`. |\n| `timestamp` | The formatted `timestamp`, when set. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-checkpoint-spin-duration` (default: `var(--lr-transition-ambient)`) — Restoring-spinner timing, inheriting the shared ambient-motion token by default (stopped under reduced motion)."
|
|
2568
2782
|
},
|
|
2569
2783
|
"attributes": [
|
|
2570
2784
|
{
|
|
@@ -2615,7 +2829,7 @@
|
|
|
2615
2829
|
"name": "lr-chip",
|
|
2616
2830
|
"description": {
|
|
2617
2831
|
"kind": "markdown",
|
|
2618
|
-
"value": "`<lr-chip>` — a small, content-agnostic pill for a short label: a tag, an\nactive-filter/scope indicator, etc. Distinct from `<lr-attachment-chip>`\n(specifically file-shaped, with a thumbnail/size/upload-progress) — this\none carries no domain assumptions at all, just a label and an optional\nleading icon/dot.\n\n`tone` tints the whole pill using the same loud-color-on-quiet-tint\nconvention `<lr-tool-call-chip>`/`<lr-citation-badge>` already\nestablish for status coloring: background is the tone's `-quiet` tint,\ntext/icon is the tone's loud color. `neutral` (the default) has no\ndedicated token pair of its own, so it falls back to a plain\nbordered-surface look — the same \"no signal\" treatment\n`<lr-citation-badge>`'s `default` status and `<lr-tool-call-chip>`'s\n`pending` status already use.\n\nThis is a controlled component: clicking the remove (×) button only fires\n`lr-remove` — the chip never removes itself from the DOM on its own\ninteraction, the same contract `<lr-attachment-chip>`/\n`<lr-conversation-item>` already follow. A consumer owns the underlying\nlist and decides whether/how the click actually removes anything.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| (default) | The chip's label content. |\n| `icon` | Optional leading icon or status dot. Nothing is reserved for it (no extra gap) when left empty. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The pill's root container. |\n| `icon` | Wrapper around the `icon` slot. Hidden entirely while empty. |\n| `label` | Wrapper around the default slot. |\n| `remove-button` | The remove (×) affordance, only rendered while `removable`. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-chip-accent` (default: `var(--lr-color-text)`) — Text/icon color of the pill. Each `tone` sets it to that tone's loud color.\n- `--lr-chip-bg` (default: `var(--lr-color-surface)`) — Background of the pill. Each `tone` sets it to that tone's `-quiet` tint.\n- `--lr-chip-border` (default: `var(--lr-color-border)`) — Border color of the pill. Every non-neutral `tone` sets it to `transparent`.\n- `--lr-chip-font-size` (default: `var(--lr-font-size-sm)`) — Label font size. Each `size` sets it to that step's font size.\n- `--lr-chip-gap` (default: `var(--lr-space-xs)`) — Gap between the icon, label, and remove button. Each `size` sets it to that step's gap.\n- `--lr-chip-radius` (default: `var(--lr-radius-pill)`) — Corner radius of the pill and of the remove button, kept in sync so retuning one retunes both. Does not vary by `size` tier.\n- `--lr-chip-icon-size` (default: `var(--lr-font-size-sm)`) — Font size of the `icon` slot wrapper. Each `size` sets it to that step's icon size.\n- `--lr-chip-padding-block` (default: `var(--lr-size-0-25rem)`) — Block padding of the pill. Each `size` sets it to that step's block padding.\n- `--lr-chip-padding-inline` (default: `var(--lr-space-s)`) — Inline padding of the pill. Each `size` sets it to that step's inline padding.\n- `--lr-chip-min-height` (default: `var(--lr-size-1-5rem)`) —
|
|
2832
|
+
"value": "`<lr-chip>` — a small, content-agnostic pill for a short label: a tag, an\nactive-filter/scope indicator, etc. Distinct from `<lr-attachment-chip>`\n(specifically file-shaped, with a thumbnail/size/upload-progress) — this\none carries no domain assumptions at all, just a label and an optional\nleading icon/dot.\n\n`tone` tints the whole pill using the same loud-color-on-quiet-tint\nconvention `<lr-tool-call-chip>`/`<lr-citation-badge>` already\nestablish for status coloring: background is the tone's `-quiet` tint,\ntext/icon is the tone's loud color. `neutral` (the default) has no\ndedicated token pair of its own, so it falls back to a plain\nbordered-surface look — the same \"no signal\" treatment\n`<lr-citation-badge>`'s `default` status and `<lr-tool-call-chip>`'s\n`pending` status already use.\n\nThis is a controlled component: clicking the remove (×) button only fires\n`lr-remove` — the chip never removes itself from the DOM on its own\ninteraction, the same contract `<lr-attachment-chip>`/\n`<lr-conversation-item>` already follow. A consumer owns the underlying\nlist and decides whether/how the click actually removes anything.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| (default) | The chip's label content. |\n| `icon` | Optional leading icon or status dot. Nothing is reserved for it (no extra gap) when left empty. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The pill's root container. |\n| `icon` | Wrapper around the `icon` slot. Hidden entirely while empty. |\n| `label` | Wrapper around the default slot. |\n| `remove-button` | The remove (×) affordance, only rendered while `removable`. |\n| `toggle-button` | The real toggle control, rendered over the non-interactive label when toggle mode is active. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-chip-accent` (default: `var(--lr-color-text)`) — Text/icon color of the pill. Each `tone` sets it to that tone's loud color.\n- `--lr-chip-bg` (default: `var(--lr-color-surface)`) — Background of the pill. Each `tone` sets it to that tone's `-quiet` tint.\n- `--lr-chip-border` (default: `var(--lr-color-border)`) — Border color of the pill. Every non-neutral `tone` sets it to `transparent`.\n- `--lr-chip-font-size` (default: `var(--lr-font-size-sm)`) — Label font size. Each `size` sets it to that step's font size.\n- `--lr-chip-gap` (default: `var(--lr-space-xs)`) — Gap between the icon, label, and remove button. Each `size` sets it to that step's gap.\n- `--lr-chip-radius` (default: `var(--lr-radius-pill)`) — Corner radius of the pill and of the remove button, kept in sync so retuning one retunes both. Does not vary by `size` tier.\n- `--lr-chip-icon-size` (default: `var(--lr-font-size-sm)`) — Font size of the `icon` slot wrapper. Each `size` sets it to that step's icon size.\n- `--lr-chip-padding-block` (default: `var(--lr-size-0-25rem)`) — Block padding of the pill. Each `size` sets it to that step's block padding.\n- `--lr-chip-padding-inline` (default: `var(--lr-space-s)`) — Inline padding of the pill. Each `size` sets it to that step's inline padding.\n- `--lr-chip-min-height` (default: `var(--lr-size-1-5rem)`) — Component density floor for an interactive chip. The real toggle/remove controls also enforce the shared `--lr-icon-button-size` target floor.\n- `--lr-chip-height` — Exact block size of the chip. Undeclared by default, so the chip grows to fit its content (floored by `--lr-chip-min-height` when interactive). Set it to pin a fixed height. A value below the shared interactive target is for non-interactive chips only.\n- `--lr-chip-pressed-bg` (default: `var(--lr-chip-bg)`) — Background while a toggleable chip is selected, independently themeable from its resting background.\n- `--lr-chip-pressed-border` (default: `var(--lr-chip-accent)`) — Border color while a toggleable chip is selected, independently themeable from the label/icon color."
|
|
2619
2833
|
},
|
|
2620
2834
|
"attributes": [
|
|
2621
2835
|
{
|
|
@@ -2636,7 +2850,7 @@
|
|
|
2636
2850
|
"name": "selected",
|
|
2637
2851
|
"description": {
|
|
2638
2852
|
"kind": "markdown",
|
|
2639
|
-
"value": "Opt-in toggle/pressed mode -- the current pressed value. Setting `selected` (to `true`, the\ncommon way to start a chip already pressed) opts the chip into toggle mode automatically, so\n`<lr-chip selected>` alone is enough: `[part='
|
|
2853
|
+
"value": "Opt-in toggle/pressed mode -- the current pressed value. Setting `selected` (to `true`, the\ncommon way to start a chip already pressed) opts the chip into toggle mode automatically, so\n`<lr-chip selected>` alone is enough: `[part='toggle-button']` renders as a native,\nkeyboard-activatable button and reflects\n`aria-pressed`, and toggles on click/activation, emitting `lr-chip-select`. That opt-in\n(tracked by `toggleable`, see below) persists once made, so toggling `selected` back to\n`false` never strips the chip's interactivity -- a chip a user has clicked \"off\" must stay\nclickable to turn it back \"on\". Has no effect when combined with `removable`, since that\nmode already owns the chip's one native action. The label slot is inert in toggle mode, so\nunrestricted slotted descendants can never nest inside or double-activate the real button.\nThis component's two real use cases (a chart-series visibility\ntoggle, a category filter chip) never need both at once. `false` (the default, with\n`toggleable` also left at its default) reproduces today's exact passive-label-pill output.\n\nType: `boolean` \nDefault: `false`"
|
|
2640
2854
|
}
|
|
2641
2855
|
},
|
|
2642
2856
|
{
|
|
@@ -2802,6 +3016,36 @@
|
|
|
2802
3016
|
}
|
|
2803
3017
|
]
|
|
2804
3018
|
},
|
|
3019
|
+
{
|
|
3020
|
+
"name": "lr-claim-evidence",
|
|
3021
|
+
"description": {
|
|
3022
|
+
"kind": "markdown",
|
|
3023
|
+
"value": "`<lr-claim-evidence>` — a controlled claim-by-claim grounding audit. It relates generated\nclaims to complete citation records, exposes assessment status/confidence, and tolerates\nmissing citation ids without fabricating evidence.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The named claim-evidence region. |\n| `claim` | One claim. |\n| `claim-selected` | The selected claim. |\n| `claim-text` | The claim text. |\n| `claim-trigger` | A claim's selection button. |\n| `confidence` | The optional localized confidence. |\n| `empty` | The empty state. |\n| `evidence` | Resolved evidence citations for one claim. |\n| `explanation` | Caller-supplied assessment explanation. |\n| `list` | The claim list. |\n| `status` | The support-status badge. |"
|
|
3024
|
+
},
|
|
3025
|
+
"attributes": [
|
|
3026
|
+
{
|
|
3027
|
+
"name": "label",
|
|
3028
|
+
"description": {
|
|
3029
|
+
"kind": "markdown",
|
|
3030
|
+
"value": "Type: `string` \nDefault: `''`"
|
|
3031
|
+
}
|
|
3032
|
+
},
|
|
3033
|
+
{
|
|
3034
|
+
"name": "locale",
|
|
3035
|
+
"description": {
|
|
3036
|
+
"kind": "markdown",
|
|
3037
|
+
"value": "Optional locale override. Otherwise the nearest `locale`/`lang` ancestor is used.\n\nType: `string` \nDefault: `''`"
|
|
3038
|
+
}
|
|
3039
|
+
},
|
|
3040
|
+
{
|
|
3041
|
+
"name": "selected-claim-id",
|
|
3042
|
+
"description": {
|
|
3043
|
+
"kind": "markdown",
|
|
3044
|
+
"value": "Type: `string` \nDefault: `''`"
|
|
3045
|
+
}
|
|
3046
|
+
}
|
|
3047
|
+
]
|
|
3048
|
+
},
|
|
2805
3049
|
{
|
|
2806
3050
|
"name": "lr-code-block",
|
|
2807
3051
|
"description": {
|
|
@@ -3013,7 +3257,7 @@
|
|
|
3013
3257
|
"name": "lr-code-editor",
|
|
3014
3258
|
"description": {
|
|
3015
3259
|
"kind": "markdown",
|
|
3016
|
-
"value": "`<lr-code-editor>` — dependency-free multiline code editing surface with optional line numbers.\n\nKeyboard contract (no keyboard trap, WCAG 2.1.2): Tab inserts one indent unit of spaces at the\ncaret. Shift+Tab is never captured, so it always performs native reverse focus traversal.\nPressing Escape releases the next Tab for native forward traversal instead of indenting; typing\nany other key, or focus leaving the editor, re-arms Tab indentation.\n\nTab-width precedence, highest first: an explicitly assigned `tabSize` (property or `tab-size`\nattribute) wins over everything; otherwise a host-level `--lr-code-editor-tab-size` override\nwins; otherwise the stylesheet's `:host` default of `2` applies. The property therefore stays the\nprimary knob, but it no longer silently shadows the token while it sits at its default -- see\n`indentWidth` for how the same order drives the Tab key, not just the rendered tab stops.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| `error` | Validation message. |\n| `hint` | Supporting text. |\n| `label` | Visible label content. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `editor` | Editor frame. |\n| `error` | Validation message. |\n| `form-control` | Outer wrapper. |\n| `gutter` | Line-number gutter. |\n| `hint` | Supporting text. |\n| `label` |
|
|
3260
|
+
"value": "`<lr-code-editor>` — dependency-free multiline code editing surface with optional line numbers.\n\nKeyboard contract (no keyboard trap, WCAG 2.1.2): Tab inserts one indent unit of spaces at the\ncaret. Shift+Tab is never captured, so it always performs native reverse focus traversal.\nPressing Escape releases the next Tab for native forward traversal instead of indenting; typing\nany other key, or focus leaving the editor, re-arms Tab indentation.\n\nTab-width precedence, highest first: an explicitly assigned `tabSize` (property or `tab-size`\nattribute) wins over everything; otherwise a host-level `--lr-code-editor-tab-size` override\nwins; otherwise the stylesheet's `:host` default of `2` applies. The property therefore stays the\nprimary knob, but it no longer silently shadows the token while it sits at its default -- see\n`indentWidth` for how the same order drives the Tab key, not just the rendered tab stops.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| `error` | Validation message. |\n| `hint` | Supporting text. |\n| `label` | Visible label content. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `editor` | Editor frame. |\n| `error` | Validation message. |\n| `form-control` | Outer wrapper. |\n| `form-control-label` | Label. Also carries the `label` part token for compatibility. |\n| `gutter` | Line-number gutter. |\n| `hint` | Supporting text. |\n| `label` | Alias of `form-control-label`. |\n| `textarea` | Native textarea. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-code-editor-min-block-size` (default: `var(--lr-size-8rem)`) — Minimum block size of the editor frame and its textarea.\n- `--lr-code-editor-line-height` (default: `1.5`) — Line height shared by the gutter and the textarea, so line numbers stay aligned with their lines.\n- `--lr-code-editor-tab-size` (default: `2`) — The textarea's `tab-size`. The single channel for tab width — the class writes this token rather than setting `tab-size` directly."
|
|
3017
3261
|
},
|
|
3018
3262
|
"attributes": [
|
|
3019
3263
|
{
|
|
@@ -3173,7 +3417,7 @@
|
|
|
3173
3417
|
"name": "lr-color-picker",
|
|
3174
3418
|
"description": {
|
|
3175
3419
|
"kind": "markdown",
|
|
3176
|
-
"value": "`<lr-color-picker>` — a form-associated native color picker with label, hint and error chrome.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| `error` | Custom validation-error content. |\n| `hint` | Supporting text. |\n| `label` | Custom label content. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `error` | The validation message. |\n| `form-control` | The field wrapper. |\n| `form-control-label` | The label. Also carries the `label` part token for back-compat. |\n| `hint` | Supporting text. |\n| `input` | The native color input. |\n| `label` | Alias of `form-control-label`, kept for back-compat. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-color-picker-swatch-size` — The swatch's inline and block size, scaled by `size
|
|
3420
|
+
"value": "`<lr-color-picker>` — a form-associated native color picker with label, hint and error chrome.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| `error` | Custom validation-error content. |\n| `hint` | Supporting text. |\n| `label` | Custom label content. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `error` | The validation message. |\n| `form-control` | The field wrapper. |\n| `form-control-label` | The label. Also carries the `label` part token for back-compat. |\n| `hint` | Supporting text. |\n| `input` | The native color input. |\n| `label` | Alias of `form-control-label`, kept for back-compat. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-color-picker-swatch-size` — The swatch's inline and block size, scaled by `size`.\n- `--lr-color-picker-gap` (default: `var(--lr-space-xs)`) — Gap between field chrome.\n- `--lr-color-picker-radius` (default: `var(--lr-radius)`) — Swatch corner radius.\n- `--lr-color-picker-hover-border-color` (default: `var(--lr-color-brand)`) — Hover border color."
|
|
3177
3421
|
},
|
|
3178
3422
|
"attributes": [
|
|
3179
3423
|
{
|
|
@@ -3245,7 +3489,7 @@
|
|
|
3245
3489
|
"name": "lr-combobox",
|
|
3246
3490
|
"description": {
|
|
3247
3491
|
"kind": "markdown",
|
|
3248
|
-
"value": "`<lr-combobox>` — a filterable single/multi select that combines a text\ninput with a listbox. Mirrors the core `<wa-combobox>` API under `lr-`.\n\nOptions are `<lr-option value>` children. Emits native-style `change`/`input`\n(like Web Awesome) plus `lr-show`/`lr-hide`/`lr-clear`.\nStandard size tiers share their outer control height with sibling Lyra controls; the decorative\nexpand icon scales inside that allocation without creating an independent action target.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| (default) | `<lr-option>` elements. |\n| `end` | Adornment after the filter input and the built-in clear action, and before the expand icon — so consumer content never sits outboard of the dropdown chevron. |\n| `error` | Custom error content. |\n| `hint` | Custom hint content. |\n| `label` | Custom label content. |\n| `start` | Adornment at the inline-start of the trigger row, before the selected-value tags and the filter input. Slotted content is decorative chrome, not an option: `collectOptions()` only ever collects `<lr-option>` elements from the default slot. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `clear-button` | The clear button. |\n| `combobox` | The input container (positioning anchor). |\n| `combobox-input` | The text input. |\n| `end` | Wrapper around the `end` adornment slot; `hidden` while nothing is slotted. |\n| `error` | The error message. |\n| `expand-icon` | The dropdown indicator. |\n| `form-control` | The outer wrapper around label, combobox, listbox, error and hint. |\n| `form-control-label` | The `<label>` element. |\n| `hint` | The hint message. |\n| `listbox` | The options popover. |\n| `option` | An option row. |\n| `option-badge` | An async option row's optional trailing metadata badge. |\n| `option-dot` | An option row's leading status dot (when `dot-color` is set). |\n| `option-icon` | An async option row's optional decorative leading visual. |\n| `option-label` | An option row's label/sub wrapper. |\n| `option-overflow` | The \"+N more\" indicator shown when rows are capped by `maxRender`. |\n| `option-sub` | An option row's secondary line (when `sub` is set). |\n| `start` | Wrapper around the `start` adornment slot; `hidden` while nothing is slotted. |\n| `tag` | An individual selected tag. |\n| `tag__remove-button` | A tag's remove button. |\n| `tags` | The multi-select tag container. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-combobox-trigger-padding` — Padding inside the input container.\n- `--lr-combobox-trigger-min-height` — Minimum input-container block size, scaled by `size`.\n- `--lr-combobox-trigger-height` — Exact input-container height. Unset by default, which leaves `--lr-combobox-trigger-min-height` as a floor only; set it to a length to both floor and cap the row (e.g. to pixel-match `<lr-input>`/`<lr-select>` in the same toolbar). Because it is never declared by the component itself, it can be set from an ancestor or an outer-tree rule as well as inline on the element. Intended for a single-row combobox: in `multiple` mode a tag row long enough to wrap overflows the pinned box visibly (nothing is clipped or made unreachable), so leave it unset there.\n- `--lr-combobox-font-size` — Input text size.\n- `--lr-combobox-tag-padding` — Selected-tag padding.\n- `--lr-combobox-tag-font-size` — Selected-tag text size.\n- `--lr-combobox-expand-size` — Decorative expand-icon box size, scaled by `size`.\n- `--lr-combobox-gap` (default: `var(--lr-space-xs)`) — Gap between the start/end adornments, tags, and filter input inside the trigger row. Unlike the size knobs above it does not vary by `size` tier. Override it to retune without a `::part(combobox)` rule.\n- `--lr-combobox-radius` (default: `var(--lr-radius)`) — Corner radius of the trigger row (`[part='combobox']`). Does not vary by `size` tier.\n- `--lr-combobox-option-active-bg` (default: `var(--lr-color-brand-quiet)`) — Background of a hovered or keyboard-active option row."
|
|
3492
|
+
"value": "`<lr-combobox>` — a filterable single/multi select that combines a text\ninput with a listbox. Mirrors the core `<wa-combobox>` API under `lr-`.\n\nOptions are `<lr-option value>` children. Emits native-style `change`/`input`\n(like Web Awesome) plus `lr-show`/`lr-hide`/`lr-clear`.\nStandard size tiers share their outer control height with sibling Lyra controls; the decorative\nexpand icon scales inside that allocation without creating an independent action target.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| (default) | `<lr-option>` elements. |\n| `end` | Adornment after the filter input and the built-in clear action, and before the expand icon — so consumer content never sits outboard of the dropdown chevron. |\n| `error` | Custom error content. |\n| `hint` | Custom hint content. |\n| `label` | Custom label content. |\n| `start` | Adornment at the inline-start of the trigger row, before the selected-value tags and the filter input. Slotted content is decorative chrome, not an option: `collectOptions()` only ever collects `<lr-option>` elements from the default slot. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `clear-button` | The clear button. |\n| `combobox` | The input container (positioning anchor). |\n| `combobox-input` | The text input. |\n| `end` | Wrapper around the `end` adornment slot; `hidden` while nothing is slotted. |\n| `error` | The error message. |\n| `expand-icon` | The dropdown indicator. |\n| `form-control` | The outer wrapper around label, combobox, listbox, error and hint. |\n| `form-control-label` | The `<label>` element. |\n| `hint` | The hint message. |\n| `listbox` | The options popover. |\n| `option` | An option row. |\n| `option-badge` | An async option row's optional trailing metadata badge. |\n| `option-dot` | An option row's leading status dot (when `dot-color` is set). |\n| `option-icon` | An async option row's optional decorative leading visual. |\n| `option-label` | An option row's label/sub wrapper. |\n| `option-overflow` | The \"+N more\" indicator shown when rows are capped by `maxRender`. |\n| `option-sub` | An option row's secondary line (when `sub` is set). |\n| `start` | Wrapper around the `start` adornment slot; `hidden` while nothing is slotted. |\n| `tag` | An individual selected tag. |\n| `tag-label` | The wrapping/ellipsis-safe selected-tag label. |\n| `tag__remove-button` | A tag's remove button. |\n| `tags` | The multi-select tag container. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-combobox-trigger-padding` — Padding inside the input container.\n- `--lr-combobox-trigger-min-height` — Minimum input-container block size, scaled by `size`.\n- `--lr-combobox-trigger-height` — Exact input-container height. Unset by default, which leaves `--lr-combobox-trigger-min-height` as a floor only; set it to a length to both floor and cap the row (e.g. to pixel-match `<lr-input>`/`<lr-select>` in the same toolbar). Because it is never declared by the component itself, it can be set from an ancestor or an outer-tree rule as well as inline on the element. Intended for a single-row combobox: in `multiple` mode a tag row long enough to wrap overflows the pinned box visibly (nothing is clipped or made unreachable), so leave it unset there.\n- `--lr-combobox-font-size` — Input text size.\n- `--lr-combobox-tag-padding` — Selected-tag padding.\n- `--lr-combobox-tag-font-size` — Selected-tag text size.\n- `--lr-combobox-expand-size` — Decorative expand-icon box size, scaled by `size`.\n- `--lr-combobox-gap` (default: `var(--lr-space-xs)`) — Gap between the start/end adornments, tags, and filter input inside the trigger row. Unlike the size knobs above it does not vary by `size` tier. Override it to retune without a `::part(combobox)` rule.\n- `--lr-combobox-radius` (default: `var(--lr-radius)`) — Corner radius of the trigger row (`[part='combobox']`). Does not vary by `size` tier.\n- `--lr-combobox-option-active-bg` (default: `var(--lr-color-brand-quiet)`) — Background of a hovered or keyboard-active option row.\n- `--lr-combobox-option-selected-bg` (default: `transparent`) — Background of the currently-selected option row. Not declared on `:host`; retheme without hijacking `--lr-color-brand`.\n- `--lr-combobox-option-selected-border` (default: `var(--lr-color-brand)`) — Border color of the selected option row.\n- `--lr-combobox-option-selected-color` (default: `var(--lr-color-brand)`) — Text color of the selected option row.\n- `--lr-combobox-option-selected-font-weight` (default: `var(--lr-font-weight-semibold)`) — Font weight of the selected option row."
|
|
3249
3493
|
},
|
|
3250
3494
|
"attributes": [
|
|
3251
3495
|
{
|
|
@@ -3350,7 +3594,7 @@
|
|
|
3350
3594
|
"name": "max-render",
|
|
3351
3595
|
"description": {
|
|
3352
3596
|
"kind": "markdown",
|
|
3353
|
-
"value": "Maximum number of rows rendered before the rest collapse behind the overflow indicator\n(the current selection is always kept visible regardless). Sanitized to a finite,\nnon-negative integer.\n\nType: `number`"
|
|
3597
|
+
"value": "Maximum number of rows rendered before the rest collapse behind the overflow indicator\n(the current selection is always kept visible regardless). Sanitized to a finite,\nnon-negative integer.\n\nRows render in full rather than as a recycled scroll window, because the filter input's\n`aria-activedescendant` is an IDREF and can only resolve within its own tree scope — rows\nhosted inside a nested windowing element would sit one shadow root deeper than the input\nthat must point at them. Raising this to cover a few-hundred-entry list (countries,\ncurrencies, time zones) is the intended use; past roughly a thousand rows, `source` narrows\nthe set before it becomes DOM and is the better tool.\n\nType: `number`"
|
|
3354
3598
|
}
|
|
3355
3599
|
},
|
|
3356
3600
|
{
|
|
@@ -3402,6 +3646,13 @@
|
|
|
3402
3646
|
"value": "Visual size — same `2xs`–`xl` scale as `lr-select`'s `size`.\n\nType: `LyraComboboxSize` \nDefault: `'m'`"
|
|
3403
3647
|
}
|
|
3404
3648
|
},
|
|
3649
|
+
{
|
|
3650
|
+
"name": "source-delay",
|
|
3651
|
+
"description": {
|
|
3652
|
+
"kind": "markdown",
|
|
3653
|
+
"value": "Debounce (ms) between the last keystroke and the `source` call. Sanitized to a finite\nduration clamped to `[0, browser-timer-ceiling]`; `0` fires on every keystroke, a\nnon-finite value falls back to the `200` default.\n\nType: `number`"
|
|
3654
|
+
}
|
|
3655
|
+
},
|
|
3405
3656
|
{
|
|
3406
3657
|
"name": "spellcheck",
|
|
3407
3658
|
"description": {
|
|
@@ -3429,14 +3680,14 @@
|
|
|
3429
3680
|
"name": "lr-command-palette",
|
|
3430
3681
|
"description": {
|
|
3431
3682
|
"kind": "markdown",
|
|
3432
|
-
"value": "`<lr-command-palette>` — searchable application command menu with keyboard navigation.\nShared overlay infrastructure (the same one `<lr-dialog>` uses) coordinates focus-trapping\nTab, Escape dismissal, and document scroll-locking for as long as the palette is open.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `backdrop` | Modal backdrop. |\n| `command` | A command button. |\n| `description` | A command's secondary description text. Rendered for every command; empty when the command has no `description`. |\n| `dialog` | Palette dialog. |\n| `empty` | The \"no results\" message. Only rendered when the filter matches no command. |\n| `group` | A group heading, rendered before the first command of each `group`. |\n| `icon` | A command's leading icon glyph. Only rendered when the command has an `icon`. |\n| `input` | Search input. |\n| `list` | Command list. |\n| `search` | The search row wrapping the leading icon and the `input`. |\n| `shortcut` | A command's trailing shortcut hint. Only rendered when the command has a `shortcut`. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-command-palette-z-index` (default: `var(--lr-overlay-stack-index, var(--lr-layer-modal))`) — Stacking index of the backdrop.\n- `--lr-command-palette-max-inline-size` (default: `var(--lr-size-48rem)`) — Maximum dialog width.\n- `--lr-command-palette-max-block-size` (default: `70vh`) — Maximum dialog height.\n- `--lr-command-palette-list-max-block-size` (default: `50vh`) — Maximum height of the scrolling command list.\n- `--lr-command-palette-offset-block-start` (default: `12vh`) — Gap between the viewport top and the dialog.\n- `--lr-command-palette-active-bg` (default: `var(--lr-color-brand-quiet)`) — Background of the active (keyboard-highlighted, `data-active=\"true\"`) command row. Declared as an inline `var()` fallback (never on `:host`), so setting it on the element or an ancestor recolors only the active row without hijacking the library-wide `--lr-color-brand-quiet` token."
|
|
3683
|
+
"value": "`<lr-command-palette>` — searchable application command menu with keyboard navigation.\nShared overlay infrastructure (the same one `<lr-dialog>` uses) coordinates focus-trapping\nTab, Escape dismissal, and document scroll-locking for as long as the palette is open.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `backdrop` | Modal backdrop. |\n| `command` | A command button. |\n| `command-group` | A labeled ARIA group containing visible command options. |\n| `description` | A command's secondary description text. Rendered for every command; empty when the command has no `description`. |\n| `dialog` | Palette dialog. |\n| `empty` | The \"no results\" message. Only rendered when the filter matches no command. |\n| `group` | A group heading, rendered before the first command of each `group`. |\n| `icon` | A command's leading icon glyph. Only rendered when the command has an `icon`. |\n| `input` | Search input. |\n| `label` | A command's visible label. |\n| `list` | Command list. |\n| `list-spacer` | Virtual result extent inside the scrolling list. |\n| `search` | The search row wrapping the leading icon and the `input`. |\n| `shortcut` | A command's trailing shortcut hint. Only rendered when the command has a `shortcut`. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-command-palette-z-index` (default: `var(--lr-overlay-stack-index, var(--lr-layer-modal))`) — Stacking index of the backdrop.\n- `--lr-command-palette-max-inline-size` (default: `var(--lr-size-48rem)`) — Maximum dialog width.\n- `--lr-command-palette-max-block-size` (default: `70vh`) — Maximum dialog height.\n- `--lr-command-palette-list-max-block-size` (default: `50vh`) — Maximum height of the scrolling command list.\n- `--lr-command-palette-offset-block-start` (default: `12vh`) — Gap between the viewport top and the dialog.\n- `--lr-command-palette-row-height` (default: `var(--lr-size-3rem)`) — Virtual command-row height.\n- `--lr-command-palette-group-height` (default: `var(--lr-size-2rem)`) — Virtual group-heading height.\n- `--lr-command-palette-active-bg` (default: `var(--lr-color-brand-quiet)`) — Background of the active (keyboard-highlighted, `data-active=\"true\"`) command row. Declared as an inline `var()` fallback (never on `:host`), so setting it on the element or an ancestor recolors only the active row without hijacking the library-wide `--lr-color-brand-quiet` token."
|
|
3433
3684
|
},
|
|
3434
3685
|
"attributes": [
|
|
3435
3686
|
{
|
|
3436
3687
|
"name": "aria-label",
|
|
3437
3688
|
"description": {
|
|
3438
3689
|
"kind": "markdown",
|
|
3439
|
-
"value": "Type: `string` \nDefault: `
|
|
3690
|
+
"value": "Type: `string` \nDefault: `\"\"`"
|
|
3440
3691
|
}
|
|
3441
3692
|
},
|
|
3442
3693
|
{
|
|
@@ -3457,7 +3708,7 @@
|
|
|
3457
3708
|
"name": "shortcut",
|
|
3458
3709
|
"description": {
|
|
3459
3710
|
"kind": "markdown",
|
|
3460
|
-
"value": "Type: `string` \nDefault:
|
|
3711
|
+
"value": "Type: `string` \nDefault: `\"mod+k\"`"
|
|
3461
3712
|
}
|
|
3462
3713
|
}
|
|
3463
3714
|
]
|
|
@@ -3719,7 +3970,7 @@
|
|
|
3719
3970
|
"name": "name",
|
|
3720
3971
|
"description": {
|
|
3721
3972
|
"kind": "markdown",
|
|
3722
|
-
"value": "Optional display name for the source document. Used as the accessible\nname of `[part='base']
|
|
3973
|
+
"value": "Optional display name for the source document. Used as the accessible\nname of `[part='base']` after a host `aria-label`, and before\nthe localized `contactViewerLabel` default, matching the\n`csvViewerLabel`-style sibling document viewers.\n\nType: `string` \nDefault: `''`"
|
|
3723
3974
|
}
|
|
3724
3975
|
},
|
|
3725
3976
|
{
|
|
@@ -3772,7 +4023,7 @@
|
|
|
3772
4023
|
"name": "lr-context-meter",
|
|
3773
4024
|
"description": {
|
|
3774
4025
|
"kind": "markdown",
|
|
3775
|
-
"value": "`<lr-context-meter>` — a segmented occupancy meter (bar or ring) for\nshowing how a fixed capacity (a model's context window, a token budget,\nany consumable quota) is divided across labeled categories. First-party\ninvention; no equivalent exists in Web Awesome.\n\nPure data visualization: it renders `segments`/`total` as given and never\ncomputes token counts, costs, or any other domain-specific estimate\nitself — the one exception is the plain arithmetic sum of the segment\nvalues used to build the accessible \"X of Y used\" summary below.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The component's root wrapper (a `<div>` for `bar`, an `<svg>` for `ring`). |\n| `label` | The visible caption, when `label` is set. |\n| `segment` | One occupied segment. Carries `data-tone` for styling and `--lr-context-meter-segment-color` when `color` is set. |\n| `track` | The unfilled/empty capacity track. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-context-meter-segment-color` — Per-segment color. Set inline on `[part=\"segment\"]` by the component itself whenever that segment supplies a `color`; unset (and the token unread) otherwise, leaving the `data-tone` palette in charge."
|
|
4026
|
+
"value": "`<lr-context-meter>` — a segmented occupancy meter (bar or ring) for\nshowing how a fixed capacity (a model's context window, a token budget,\nany consumable quota) is divided across labeled categories. First-party\ninvention; no equivalent exists in Web Awesome.\n\nPure data visualization: it renders `segments`/`total` as given and never\ncomputes token counts, costs, or any other domain-specific estimate\nitself — the one exception is the plain arithmetic sum of the segment\nvalues used to build the accessible \"X of Y used\" summary below.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The component's root wrapper (a `<div>` for `bar`, an `<svg>` for `ring`). |\n| `label` | The visible caption, when `label` is set. |\n| `segment` | One occupied segment. Carries `data-tone` for styling and `--lr-context-meter-segment-color` when `color` is set. |\n| `segment-item` | One visually-hidden segment label/count pair. |\n| `segment-list` | The visually-hidden list exposing the segment breakdown. |\n| `semantic` | The visually-hidden meter/group carrying aggregate range semantics. |\n| `track` | The unfilled/empty capacity track. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-context-meter-segment-color` — Per-segment color. Set inline on `[part=\"segment\"]` by the component itself whenever that segment supplies a `color`; unset (and the token unread) otherwise, leaving the `data-tone` palette in charge."
|
|
3776
4027
|
},
|
|
3777
4028
|
"attributes": [
|
|
3778
4029
|
{
|
|
@@ -3839,7 +4090,7 @@
|
|
|
3839
4090
|
"name": "lr-conversation-item",
|
|
3840
4091
|
"description": {
|
|
3841
4092
|
"kind": "markdown",
|
|
3842
|
-
"value": "`<lr-conversation-item>` — a selectable row representing one chat\nsession in a history sidebar list. Usable standalone or as the\n`renderItem()` payload of a sibling virtualized-list component; this\nmodule has no dependency on that (or any) other component.\n\nTakes `title`/`excerpt`/`timestamp` as individual primitive props rather\nthan one opaque bound object, deliberately consistent with how\n`<lr-chat-message>` takes individual props instead of a single\n`.message` blob -- every other component in this family follows that\nshape, so this one does too even though a single bound `.session` object\nwould also have been a reasonable design.\n\nIdentifying *which* session a `lr-select` click/keypress was about: this\nreuses the platform's own `id` attribute (every element already has one)\nrather than inventing a second, differently-named id-carrying prop --\nconsumers already have the event's `target`/`currentTarget` (and thus\n`.id`), the same reasoning `<lr-attachment-chip>` documents for its own\nidentically-shaped choice. `lr-select` therefore carries no detail\npayload at all.\n\n`role=\"button\"` on `[part=\"option\"]` so the item has valid semantics both\nstandalone and when placed in a larger history-list layout. A conversation\nrow activates one current session; it is not itself a listbox option and\ntherefore does not require a particular owner role.\n\n`role=\"button\"` forbids focusable\ndescendants -- verified against axe-core's `nested-interactive` rule,\nwhich flags it. That's why the rename button and the `actions` slot are\nrendered as DOM *siblings* of `[part=\"option\"]` (both inside\n`[part=\"base\"]`) rather than nested inside it: `[part=\"option\"]` only ever\ncontains plain text/`<time>` content. The in-place rename `<input>` is the\nsame problem one level deeper -- it replaces the title *inside*\n`[part=\"option\"]` while renaming -- so `[part=\"option\"]` sheds its\n`role`/`tabindex`/`aria-current`/`aria-label` entirely for the duration\nof an edit. A row mid-edit is a text field, so suspending the button\nsemantics is also the more accurate\ndescription of what's on screen.\n\nInline rename is a dedicated pencil/edit icon button (not a double-click\non the title) -- double-click has no keyboard/screen-reader equivalent\nand would silently swallow the row's own single-click `lr-select`,\nwhereas a button is independently focusable, has its own accessible name,\nand composes cleanly with click-to-select.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| `actions` | Overflow/icon-button controls (for example a pin/delete button or a `lr-menu` trigger) rendered at the trailing edge of the row. |\n| `content` | Replaces the built-in title, excerpt, and meta content area with host-supplied non-interactive row content. |\n| `excerpt` | Full override of the excerpt presentation (e.g. a search-hit snippet with `<mark>` highlighting). Wins over the `excerpt` property whenever it has assigned content, even if `excerpt` is also set. Only non-focusable content should be slotted here — see the `excerpt` property's own doc for why. |\n| `leading` | Non-interactive leading content such as an avatar, purpose icon, or status indicator. It is rendered inside the selectable region before the title/excerpt content. |\n| `meta` | Small, non-focusable structured fields for the row (e.g. a day label, cost, request count) rendered below the title/excerpt. Entirely app-supplied; this component computes none of it. Only non-focusable content should be slotted here, for the same `nested-interactive` reason as `excerpt`. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `actions` | The wrapper around the `actions` slot. |\n| `base` | The outer row wrapper (plain, no ARIA role) laying out `[part=\"option\"]`, the rename button, and `actions`. |\n| `content` | Wrapper around the title and excerpt. |\n| `excerpt` | The last-message preview snippet. Only rendered when `excerpt` is non-empty. |\n| `leading` | The wrapper around the `leading` slot, inside `option`. Always rendered, but `hidden` while that slot is empty. |\n| `meta` | The wrapper around the `meta` slot. Only rendered in the built-in content path (not when the `content` slot is used), and `hidden` while the `meta` slot is empty. |\n| `option` | The selectable region (`role=\"button\"`, removed while renaming -- see the class doc). Wraps `content` and `timestamp`. |\n| `rename-button` | The pencil/edit affordance that starts a rename (only rendered while `editable` and not already renaming). |\n| `timestamp` | The formatted `timestamp`, rendered in a `<time>` element. Only rendered when `timestamp` is set and valid. |\n| `title` | The title text, shown while not renaming. |\n| `title-input` | The in-place rename `<input>`, shown only while renaming. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-conversation-item-active-bg` (default: `var(--lr-color-brand-quiet)`) — Background of the row while `active`. **Contrast-sensitive:** it is one half of a documented WCAG-AA pair — the active row's text is sized/toned for this background, so an override has to keep at least a 4.5:1 ratio against `--lr-conversation-item-active-color` (excerpt/timestamp) and against `--lr-color-text` (the title, which is not restyled by the pair).\n- `--lr-conversation-item-active-color` (default: `var(--lr-color-text)`) — Text color of `[part=\"excerpt\"]` and `[part=\"timestamp\"]` while `active`. **Contrast-sensitive:** it exists precisely because `--lr-color-text-quiet` only reaches ~4.25:1 against the active background; override it together with `--lr-conversation-item-active-bg`, never alone.\n- `--lr-conversation-item-compact-padding` (default: `var(--lr-space-xs) var(--lr-space-s)`) — `[part=\"base\"]` padding while `compact`.\n- `--lr-conversation-item-compact-gap` (default: `var(--lr-space-2xs)`) — Gap between `[part=\"base\"]`'s columns while `compact`."
|
|
4093
|
+
"value": "`<lr-conversation-item>` — a selectable row representing one chat\nsession in a history sidebar list. Usable standalone or as the\n`renderItem()` payload of a sibling virtualized-list component; this\nmodule has no dependency on that (or any) other component.\n\nTakes `title`/`excerpt`/`timestamp` as individual primitive props rather\nthan one opaque bound object, deliberately consistent with how\n`<lr-chat-message>` takes individual props instead of a single\n`.message` blob -- every other component in this family follows that\nshape, so this one does too even though a single bound `.session` object\nwould also have been a reasonable design.\n\nIdentifying *which* session a `lr-select` click/keypress was about: this\nreuses the platform's own `id` attribute (every element already has one)\nrather than inventing a second, differently-named id-carrying prop --\nconsumers already have the event's `target`/`currentTarget` (and thus\n`.id`), the same reasoning `<lr-attachment-chip>` documents for its own\nidentically-shaped choice. `lr-select` therefore carries no detail\npayload at all.\n\n`role=\"button\"` on `[part=\"option\"]` so the item has valid semantics both\nstandalone and when placed in a larger history-list layout. A conversation\nrow activates one current session; it is not itself a listbox option and\ntherefore does not require a particular owner role.\n\n`role=\"button\"` forbids focusable\ndescendants -- verified against axe-core's `nested-interactive` rule,\nwhich flags it. That's why the rename button and the `actions` slot are\nrendered as DOM *siblings* of `[part=\"option\"]` (both inside\n`[part=\"base\"]`) rather than nested inside it: `[part=\"option\"]` only ever\ncontains plain text/`<time>` content. The in-place rename `<input>` is the\nsame problem one level deeper -- it replaces the title *inside*\n`[part=\"option\"]` while renaming -- so `[part=\"option\"]` sheds its\n`role`/`tabindex`/`aria-current`/`aria-label` entirely for the duration\nof an edit. A row mid-edit is a text field, so suspending the button\nsemantics is also the more accurate\ndescription of what's on screen.\n\nInline rename is a dedicated pencil/edit icon button (not a double-click\non the title) -- double-click has no keyboard/screen-reader equivalent\nand would silently swallow the row's own single-click `lr-select`,\nwhereas a button is independently focusable, has its own accessible name,\nand composes cleanly with click-to-select.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| `actions` | Overflow/icon-button controls (for example a pin/delete button or a `lr-menu` trigger) rendered at the trailing edge of the row. |\n| `content` | Replaces the built-in title, excerpt, and meta content area with host-supplied non-interactive row content. |\n| `excerpt` | Full override of the excerpt presentation (e.g. a search-hit snippet with `<mark>` highlighting). Wins over the `excerpt` property whenever it has assigned content, even if `excerpt` is also set. Only non-focusable content should be slotted here — see the `excerpt` property's own doc for why. |\n| `leading` | Non-interactive leading content such as an avatar, purpose icon, or status indicator. It is rendered inside the selectable region before the title/excerpt content. |\n| `meta` | Small, non-focusable structured fields for the row (e.g. a day label, cost, request count) rendered below the title/excerpt. Entirely app-supplied; this component computes none of it. Only non-focusable content should be slotted here, for the same `nested-interactive` reason as `excerpt`. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `actions` | The wrapper around the `actions` slot. |\n| `active-indicator` | A decorative inline indicator rendered only while the row is active. |\n| `base` | The outer row wrapper (plain, no ARIA role) laying out `[part=\"option\"]`, the rename button, and `actions`. |\n| `content` | Wrapper around the title and excerpt. |\n| `excerpt` | The last-message preview snippet. Only rendered when `excerpt` is non-empty. |\n| `leading` | The wrapper around the `leading` slot, inside `option`. Always rendered, but `hidden` while that slot is empty. |\n| `meta` | The wrapper around the `meta` slot. Only rendered in the built-in content path (not when the `content` slot is used), and `hidden` while the `meta` slot is empty. |\n| `option` | The selectable region (`role=\"button\"`, removed while renaming -- see the class doc). Wraps `content` and `timestamp`. |\n| `rename-button` | The pencil/edit affordance that starts a rename (only rendered while `editable` and not already renaming). |\n| `timestamp` | The formatted `timestamp`, rendered in a `<time>` element. Only rendered when `timestamp` is set and valid. |\n| `title` | The title text, shown while not renaming. |\n| `title-input` | The in-place rename `<input>`, shown only while renaming. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-conversation-item-active-bg` (default: `var(--lr-color-brand-quiet)`) — Background of the row while `active`. **Contrast-sensitive:** it is one half of a documented WCAG-AA pair — the active row's text is sized/toned for this background, so an override has to keep at least a 4.5:1 ratio against `--lr-conversation-item-active-color` (excerpt/timestamp) and against `--lr-color-text` (the title, which is not restyled by the pair).\n- `--lr-conversation-item-active-color` (default: `var(--lr-color-text)`) — Text color of `[part=\"excerpt\"]` and `[part=\"timestamp\"]` while `active`. **Contrast-sensitive:** it exists precisely because `--lr-color-text-quiet` only reaches ~4.25:1 against the active background; override it together with `--lr-conversation-item-active-bg`, never alone.\n- `--lr-conversation-item-active-indicator-color` (default: `var(--lr-color-brand)`) — Color of the decorative `[part=\"active-indicator\"]` while `active`.\n- `--lr-conversation-item-active-indicator-width` (default: `var(--lr-size-2px)`) — Inline size of `[part=\"active-indicator\"]` while `active`.\n- `--lr-conversation-item-active-indicator-inset-inline` (default: `0 auto`) — Logical inline-start and inline-end insets for `[part=\"active-indicator\"]`; set `auto 0` to place it at inline-end.\n- `--lr-conversation-item-compact-padding` (default: `var(--lr-space-xs) var(--lr-space-s)`) — `[part=\"base\"]` padding while `compact`.\n- `--lr-conversation-item-compact-gap` (default: `var(--lr-space-2xs)`) — Gap between `[part=\"base\"]`'s columns while `compact`."
|
|
3843
4094
|
},
|
|
3844
4095
|
"attributes": [
|
|
3845
4096
|
{
|
|
@@ -3955,7 +4206,7 @@
|
|
|
3955
4206
|
"name": "lr-csv-viewer",
|
|
3956
4207
|
"description": {
|
|
3957
4208
|
"kind": "markdown",
|
|
3958
|
-
"value": "Fetches CSV text, parses quoted fields with PapaParse, and virtualizes its rows.\n\nAdopts `DocumentAnchorTarget`: a `cell-range` anchor addresses the raw file grid, 1-based, with\nthe header row included whenever `has-header-row` is set (matching how a spreadsheet app itself\nlabels `A1`) -- `scrollToAnchor()` scrolls the addressed row into view via the virtualized list's\n`active-id`, then scrolls the first addressed column horizontally into view. A `sheet`-qualified\nanchor never resolves here -- this viewer has no sheets. `highlights` paint as a
|
|
4209
|
+
"value": "Fetches CSV text, parses quoted fields with PapaParse, and virtualizes its rows.\n\nAdopts `DocumentAnchorTarget`: a `cell-range` anchor addresses the raw file grid, 1-based, with\nthe header row included whenever `has-header-row` is set (matching how a spreadsheet app itself\nlabels `A1`) -- `scrollToAnchor()` scrolls the addressed row into view via the virtualized list's\n`active-id`, then scrolls the first addressed column horizontally into view. A `sheet`-qualified\nanchor never resolves here -- this viewer has no sheets. `highlights` paint as a\n`part=\"cell-highlight\"` structural cell wrapping a native `part=\"cell-highlight-action\"` button\non membership, recomputed per row inside `renderRow()` so a row scrolled out and back in\nreconstructs its highlight for free, with no persistent DOM to keep in sync.\n`search()` is a locale-aware case-insensitive substring match over the same stringified cell\nvalues `cell()` already renders, ordered row then column.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The root wrapper. |\n| `body` | The scrollable wrapper around the fetched-state content, capped by `max-height`. |\n| `cell` | One rendered cell. |\n| `cell-highlight` | A structural cell covered by a `highlights` entry. |\n| `cell-highlight-action` | The native button filling a highlighted cell; emits `lr-highlight-activate` when activated. |\n| `data-row` | One virtualized data row. |\n| `error` | The error message region. |\n| `header-row` | The sticky header row, rendered while `has-header-row` is set. |\n| `rows` | The virtualized row list. |\n| `sheet` | The wrapper around the header row and virtualized body. |\n| `spinner` | The loading status region. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-csv-viewer-highlight-color` (default: `var(--lr-color-brand)`) — Outline color of a highlighted cell. The active highlight sets it inline to `var(--lr-color-warning, var(--lr-color-brand))`.\n- `--lr-csv-viewer-max-height` (default: `none`) — Maximum block size of `[part=\"body\"]` before it scrolls internally. The `maxHeight` property sets this token inline on `[part=\"base\"]`."
|
|
3959
4210
|
},
|
|
3960
4211
|
"attributes": [
|
|
3961
4212
|
{
|
|
@@ -3999,7 +4250,7 @@
|
|
|
3999
4250
|
"name": "lr-dashboard-grid",
|
|
4000
4251
|
"description": {
|
|
4001
4252
|
"kind": "markdown",
|
|
4002
|
-
"value": "`<lr-dashboard-grid>` — a responsive, keyboard-accessible widget grid: positions `layout`\nentries (`DashboardCell`: `x`/`y`/`w`/`h` grid units + a widget descriptor) on a CSS Grid,\ncomposing `<lr-widget>` + `<lr-widget-renderer>` for each cell's default content, and owns all\ndrag/resize/collision interaction as controlled events -- it never mutates `layout` itself, nor\never touches `localStorage`/network; the host applies (or ignores) every emitted event and owns\npersistence entirely, mirroring `lr-flow-canvas`/`lr-table`'s own controlled-component\nconvention. Readonly (viewer) by default; opt into editor gestures individually via\n`cells-draggable`/`cells-resizable`, or lock the whole grid via `locked`.\n\nCell content: a `layout` entry with no matching light-DOM child (matched by `cell-id`) gets a\ndefault `<lr-widget label=\"...\">` wrapping an `<lr-widget-renderer .tree=${cell.widget}>`\nauto-created and adopted into `slot=\"cell-{id}\"` -- this component's own job is the grid\nlayout/drag/resize/collision/persistence-event mechanics *around* that content, not widget\nrendering itself (see `lr-widget-renderer`'s own doc for its declarative-tree contract). A\nconsumer wanting full control over one cell's markup can instead author\n`<div cell-id=\"...\">...</div>` as a direct child; it is adopted in place of the default cell.\n\nKeyboard: cells share one roving tabindex, in row-major (`sortSpatial`) order. Arrow\nkeys/Home/End move the roving focus (RTL-aware: physical Left/Right always match what the\ncursor visually does, matching `lr-flow-canvas`'s own convention). While a cell has focus,\nCtrl/Cmd+Arrow moves it by one grid unit and Ctrl/Cmd+Shift+Arrow resizes it by one grid unit\n(Right/Down grow, Left/Up shrink) -- the full keyboard-operable equivalent of the pointer\ndrag/resize gestures below, per this library's accessibility bar (no pointer-only interaction).\n\nCollision: every move/resize request -- pointer or keyboard -- is resolved through `collision`\n(`'reject'` the default, `'push'`, or `'overlap'`; see `resolvePlacement()` in `layout.ts` for\nthe exact rule). A rejected request leaves `layout` untouched and only announces; an accepted\none emits `lr-cell-move`/`lr-cell-resize` plus a `lr-layout-change` snapshot of the full\nproposed layout (including any `'push'` cascade) -- the host's one persistence hook: listen for\nit and persist `event.detail.layout` however it likes (`localStorage`, a network call, neither).\n\nResponsive: below a ~40rem container allocation (`@container`, not the viewport -- a dashboard\ngrid is commonly embedded in a panel of varying width), cells stack into a single flowing\ncolumn in the same row-major order the grid itself renders them in, instead of overflowing or\nshrinking columns unreadably.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| `cell-{id}` | A `layout` entry's cell content; auto-populated by a default composed `<lr-widget>`/`<lr-widget-renderer>` pair unless a light-DOM `[cell-id=\"{id}\"]` child is authored instead. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The grid root. |\n| `cell` | A single cell's positioned wrapper. |\n| `empty` | The `lr-empty` shown when `layout` is empty. |\n| `live-region` | The current move/resize/collision announcement. |\n| `resize-handle` | The pointer resize grip in a cell's trailing/bottom corner (only rendered while `cells-resizable`); the Ctrl/Cmd+Shift+Arrow keyboard path is the resize handle's full accessible equivalent, so the handle itself is `aria-hidden`. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-dashboard-grid-columns` (default: `12`) — Column count of the underlying CSS Grid. Written inline on `[part=\"base\"]` from the `columns` property on every render, so the fallback only applies to a `[part=\"base\"]` this component has not rendered yet.\n- `--lr-dashboard-grid-row-height` (default: `var(--lr-size-5rem)`) — Row track height. Written inline on `[part=\"base\"]` from the `rowHeight` property (in px) on every render.\n- `--lr-dashboard-grid-gap` (default: `var(--lr-space-m)`) — Gap between cells on both axes. Written inline on `[part=\"base\"]` from the `gap` property (in px) on every render.\n- `--lr-dashboard-grid-cell-hover-outline-color` (default: `var(--lr-color-border-strong)`) — Outline color of a cell's mouse-hover preview of its own `:focus-visible` ring (shown because every cell is a real focusable, draggable/resizable target). Set to `transparent` to opt out."
|
|
4253
|
+
"value": "`<lr-dashboard-grid>` — a responsive, keyboard-accessible widget grid: positions `layout`\nentries (`DashboardCell`: `x`/`y`/`w`/`h` grid units + a widget descriptor) on a CSS Grid,\ncomposing `<lr-widget>` + `<lr-widget-renderer>` for each cell's default content, and owns all\ndrag/resize/collision interaction as controlled events -- it never mutates `layout` itself, nor\never touches `localStorage`/network; the host applies (or ignores) every emitted event and owns\npersistence entirely, mirroring `lr-flow-canvas`/`lr-table`'s own controlled-component\nconvention. Readonly (viewer) by default; opt into editor gestures individually via\n`cells-draggable`/`cells-resizable`, or lock the whole grid via `locked`.\n\nCell content: a `layout` entry with no matching light-DOM child (matched by `cell-id`) gets a\ndefault `<lr-widget label=\"...\">` wrapping an `<lr-widget-renderer .tree=${cell.widget}>`\nauto-created and adopted into `slot=\"cell-{id}\"` -- this component's own job is the grid\nlayout/drag/resize/collision/persistence-event mechanics *around* that content, not widget\nrendering itself (see `lr-widget-renderer`'s own doc for its declarative-tree contract). A\nconsumer wanting full control over one cell's markup can instead author\n`<div cell-id=\"...\">...</div>` as a direct child; it is adopted in place of the default cell.\n\nKeyboard: cells share one roving tabindex, in row-major (`sortSpatial`) order. Arrow\nkeys/Home/End move the roving focus (RTL-aware: physical Left/Right always match what the\ncursor visually does, matching `lr-flow-canvas`'s own convention). While a cell has focus,\nCtrl/Cmd+Arrow moves it by one grid unit and Ctrl/Cmd+Shift+Arrow resizes it by one grid unit\n(Right/Down grow, Left/Up shrink) -- the full keyboard-operable equivalent of the pointer\ndrag/resize gestures below, per this library's accessibility bar (no pointer-only interaction).\n\nCollision: every move/resize request -- pointer or keyboard -- is resolved through `collision`\n(`'reject'` the default, `'push'`, or `'overlap'`; see `resolvePlacement()` in `layout.ts` for\nthe exact rule). A rejected request leaves `layout` untouched and only announces; an accepted\none emits `lr-cell-move`/`lr-cell-resize` plus a `lr-layout-change` snapshot of the full\nproposed layout (including any `'push'` cascade) -- the host's one persistence hook: listen for\nit and persist `event.detail.layout` however it likes (`localStorage`, a network call, neither).\n\nResponsive: below a ~40rem container allocation (`@container`, not the viewport -- a dashboard\ngrid is commonly embedded in a panel of varying width), cells stack into a single flowing\ncolumn in the same row-major order the grid itself renders them in, instead of overflowing or\nshrinking columns unreadably.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| `cell-{id}` | A `layout` entry's cell content; auto-populated by a default composed `<lr-widget>`/`<lr-widget-renderer>` pair unless a light-DOM `[cell-id=\"{id}\"]` child is authored instead. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The grid root. |\n| `cell` | A single cell's positioned wrapper. |\n| `empty` | The `lr-empty` shown when `layout` is empty. |\n| `live-region` | The current move/resize/collision announcement. |\n| `resize-handle` | The pointer resize grip in a cell's trailing/bottom corner (only rendered while `cells-resizable`); the Ctrl/Cmd+Shift+Arrow keyboard path is the resize handle's full accessible equivalent, so the handle itself is `aria-hidden`. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-dashboard-grid-columns` (default: `12`) — Column count of the underlying CSS Grid. Written inline on `[part=\"base\"]` from the `columns` property on every render, so the fallback only applies to a `[part=\"base\"]` this component has not rendered yet.\n- `--lr-dashboard-grid-row-height` (default: `var(--lr-size-5rem)`) — Row track height. Written inline on `[part=\"base\"]` from the `rowHeight` property (in px) on every render.\n- `--lr-dashboard-grid-gap` (default: `var(--lr-space-m)`) — Gap between cells on both axes. Written inline on `[part=\"base\"]` from the `gap` property (in px) on every render.\n- `--lr-dashboard-grid-cell-hover-outline-color` (default: `var(--lr-color-border-strong)`) — Outline color of a cell's mouse-hover preview of its own `:focus-visible` ring (shown because every cell is a real focusable, draggable/resizable target). Set to `transparent` to opt out.\n- `--lr-dashboard-grid-collision-outline-color` (default: `var(--lr-color-danger)`) — Outline color of a cell whose current drag/resize preview collides with another cell."
|
|
4003
4254
|
},
|
|
4004
4255
|
"attributes": [
|
|
4005
4256
|
{
|
|
@@ -4027,7 +4278,7 @@
|
|
|
4027
4278
|
"name": "collision",
|
|
4028
4279
|
"description": {
|
|
4029
4280
|
"kind": "markdown",
|
|
4030
|
-
"value": "How a move/resize that would overlap another cell is resolved -- see the class doc.\n\nType: `DashboardCollisionPolicy` \nDefault:
|
|
4281
|
+
"value": "How a move/resize that would overlap another cell is resolved -- see the class doc.\n\nType: `DashboardCollisionPolicy` \nDefault: `\"reject\"`"
|
|
4031
4282
|
}
|
|
4032
4283
|
},
|
|
4033
4284
|
{
|
|
@@ -4071,7 +4322,7 @@
|
|
|
4071
4322
|
"name": "lr-dataset-viewer",
|
|
4072
4323
|
"description": {
|
|
4073
4324
|
"kind": "markdown",
|
|
4074
|
-
"value": "Fetches delimited text and renders a virtualized, accessible data table: a `role=\"table\"`\ncontainer with a sticky `role=\"row\"` header, composed with `<lr-virtual-list item-role=\"row\">`\nfor the body so files far larger than a real synchronous `<table>` can render without locking the\nmain thread.\n\nAdopts `DocumentAnchorTarget`: a `cell-range` anchor addresses the raw file grid, 1-based, with\nthe header row always occupying row 1 (this component always parses with PapaParse's `header:\ntrue`, so the first row is never part of the virtualized body) -- `scrollToAnchor()` scrolls the\naddressed row into view via the virtualized list's `active-id`. A `sheet`-qualified anchor never\nresolves here -- this viewer has no sheets. `highlights` paint as a `part=\"cell-highlight\"` cell\nwrapping a focusable `part=\"cell-highlight-action\"` native button (keeping the ARIA table tree\nintact) on membership, recomputed per row inside `renderRow()` so a row scrolled out and back\nin reconstructs its highlight for free, with no persistent DOM to keep in sync. `search()` is a\
|
|
4325
|
+
"value": "Fetches delimited text and renders a virtualized, accessible data table: a `role=\"table\"`\ncontainer with a sticky `role=\"row\"` header, composed with `<lr-virtual-list item-role=\"row\">`\nfor the body so files far larger than a real synchronous `<table>` can render without locking the\nmain thread.\n\nAdopts `DocumentAnchorTarget`: a `cell-range` anchor addresses the raw file grid, 1-based, with\nthe header row always occupying row 1 (this component always parses with PapaParse's `header:\ntrue`, so the first row is never part of the virtualized body) -- `scrollToAnchor()` scrolls the\naddressed row into view via the virtualized list's `active-id`. A `sheet`-qualified anchor never\nresolves here -- this viewer has no sheets. `highlights` paint as a `part=\"cell-highlight\"` cell\nwrapping a focusable `part=\"cell-highlight-action\"` native button (keeping the ARIA table tree\nintact) on membership, recomputed per row inside `renderRow()` so a row scrolled out and back\nin reconstructs its highlight for free, with no persistent DOM to keep in sync. `search()` is a\nlocale-aware case-insensitive substring match over the header followed by every body cell's raw\nstring value, ordered row then column.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The root wrapper. |\n| `body` | The scrollable body wrapper. |\n| `cell` | One rendered cell (`role=\"cell\"`). |\n| `cell-highlight` | A cell (`role=\"cell\"`) covered by a `highlights` entry; wraps the `cell-highlight-action` button. |\n| `cell-highlight-action` | The native button filling a highlighted cell -- focusable, emits `lr-highlight-activate` on click or Enter/Space. |\n| `data-row` | One virtualized data row. |\n| `error` | The error message region. |\n| `header-cell` | A header cell (`role=\"columnheader\"`). |\n| `header-row` | The sticky header row (`role=\"row\"`). |\n| `spinner` | The loading status region. |\n| `table` | The `role=\"table\"` container. Its accessible name is a host `aria-label` when set, otherwise `name`, otherwise a localized row-count caption. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-dataset-viewer-max-height` (default: `none`) — Maximum block size of `[part=\"body\"]` before it scrolls internally. The `maxHeight` property sets this token inline on `[part=\"base\"]`.\n- `--lr-dataset-viewer-highlight-color` (default: `var(--lr-color-brand)`) — Outline color of a highlighted cell. The active highlight sets it inline to `var(--lr-color-warning, var(--lr-color-brand))`."
|
|
4075
4326
|
},
|
|
4076
4327
|
"attributes": [
|
|
4077
4328
|
{
|
|
@@ -4092,7 +4343,7 @@
|
|
|
4092
4343
|
"name": "name",
|
|
4093
4344
|
"description": {
|
|
4094
4345
|
"kind": "markdown",
|
|
4095
|
-
"value": "Display name used for the table's accessible name
|
|
4346
|
+
"value": "Display name used for the table's accessible name after an explicit host `aria-label`.\n\nType: `string` \nDefault: `''`"
|
|
4096
4347
|
}
|
|
4097
4348
|
},
|
|
4098
4349
|
{
|
|
@@ -4108,7 +4359,7 @@
|
|
|
4108
4359
|
"name": "lr-date-input",
|
|
4109
4360
|
"description": {
|
|
4110
4361
|
"kind": "markdown",
|
|
4111
|
-
"value": "`<lr-date-input>` — a date field with an attached calendar popover.\nMirrors the core `<wa-date-input>` API under `lr-`. Value is ISO 8601\n(`YYYY-MM-DD`, or `YYYY-MM-DD/YYYY-MM-DD` in range mode). Form-associated.\n\nThis component uses a single text field; typing accepts ISO or a\nlocale-parseable date.\n\n`size` uses the same `2xs`–`xl` scale as `lr-input`/`lr-select`/`lr-combobox`'s own `size`,\ndefault `m`. The calendar-toggle and clear buttons keep a constant touch-target size at every\ntier (mirroring `lr-input`'s own password-toggle button), so only the field's density scales.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| `end` | Adornment after the text field and the built-in clear action, and before the calendar toggle — so consumer content never sits outboard of the calendar button. |\n| `error` | Custom error content. |\n| `hint` | Custom hint content. |\n| `label` | Custom label content. |\n| `start` | Adornment at the inline-start of the input row, before the text field. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `clear-button` | The clear control. |\n| `date-picker` | The nested date picker. |\n| `end` | Wrapper around the `end` adornment slot; `hidden` while nothing is slotted. |\n| `error` | The validation message. |\n| `expand-button` | The calendar popup toggle. |\n| `expand-icon` | The calendar icon. |\n| `form-control` | The outer form-control wrapper. |\n| `form-control-label` | The label wrapper. |\n| `hint` | The hint message. |\n| `input` | The text input. |\n| `input-wrapper` | The input and button wrapper. |\n| `popup` | The positioned calendar popup. |\n| `start` | Wrapper around the `start` adornment slot; `hidden` while nothing is slotted. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-date-input-padding-block` (default: `var(--lr-space-xs)`) — Block padding of the input row, scaled by `size`.\n- `--lr-date-input-padding-inline` (default: `var(--lr-space-s)`) — Inline padding of the input row, scaled by `size`.\n- `--lr-date-input-font-size` (default: `inherit`) — Font size of the text input, scaled by `size`.\n- `--lr-date-input-control-min-height` (default: `var(--lr-size-2-5rem)`) — Minimum block size of the input row, scaled by `size` to mirror `lr-input`'s own min-height scale. Each default sits below the row's transitively-pinned height, so it is dead until a consumer raises it -- the unset render is unchanged.\n- `--lr-date-input-control-height` — Exact block size of the input row. Undeclared by default, so the row grows to fit its content (floored by `--lr-date-input-control-min-height`). Set it to pin a fixed height; the calendar toggle keeps its own 24x24 touch target even when this pins a shorter row."
|
|
4362
|
+
"value": "`<lr-date-input>` — a date field with an attached calendar popover.\nMirrors the core `<wa-date-input>` API under `lr-`. Value is ISO 8601\n(`YYYY-MM-DD`, or `YYYY-MM-DD/YYYY-MM-DD` in range mode). Form-associated.\n\nThis component uses a single text field; typing accepts ISO or a\nlocale-parseable date.\n\n`size` uses the same `2xs`–`xl` scale as `lr-input`/`lr-select`/`lr-combobox`'s own `size`,\ndefault `m`. The calendar-toggle and clear buttons keep a constant touch-target size at every\ntier (mirroring `lr-input`'s own password-toggle button), so only the field's density scales.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| `end` | Adornment after the text field and the built-in clear action, and before the calendar toggle — so consumer content never sits outboard of the calendar button. |\n| `error` | Custom error content. |\n| `hint` | Custom hint content. |\n| `label` | Custom label content. |\n| `start` | Adornment at the inline-start of the input row, before the text field. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `clear-button` | The clear control. |\n| `date-picker` | The nested date picker. |\n| `end` | Wrapper around the `end` adornment slot; `hidden` while nothing is slotted. |\n| `error` | The validation message. |\n| `expand-button` | The calendar popup toggle. |\n| `expand-icon` | The calendar icon. |\n| `form-control` | The outer form-control wrapper. |\n| `form-control-label` | The label wrapper. |\n| `hint` | The hint message. |\n| `input` | The text input. |\n| `input-wrapper` | The input and button wrapper. |\n| `popup` | The positioned calendar popup. |\n| `start` | Wrapper around the `start` adornment slot; `hidden` while nothing is slotted. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-date-input-padding-block` (default: `var(--lr-space-xs)`) — Block padding of the input row, scaled by `size`.\n- `--lr-date-input-padding-inline` (default: `var(--lr-space-s)`) — Inline padding of the input row, scaled by `size`.\n- `--lr-date-input-font-size` (default: `inherit`) — Font size of the text input, scaled by `size`.\n- `--lr-date-input-placeholder-color` (default: `var(--lr-color-text-quiet)`) — Placeholder text color.\n- `--lr-date-input-gap` (default: `var(--lr-space-xs)`) — Gap between input-row children.\n- `--lr-date-input-radius` (default: `var(--lr-radius)`) — Input-row corner radius.\n- `--lr-date-input-focus-border-color` (default: `var(--lr-color-brand)`) — Focused row border color.\n- `--lr-date-input-control-min-height` (default: `var(--lr-size-2-5rem)`) — Minimum block size of the input row, scaled by `size` to mirror `lr-input`'s own min-height scale. Each default sits below the row's transitively-pinned height, so it is dead until a consumer raises it -- the unset render is unchanged.\n- `--lr-date-input-control-height` — Exact block size of the input row. Undeclared by default, so the row grows to fit its content (floored by `--lr-date-input-control-min-height`). Set it to pin a fixed height; the calendar toggle keeps its own 24x24 touch target even when this pins a shorter row."
|
|
4112
4363
|
},
|
|
4113
4364
|
"attributes": [
|
|
4114
4365
|
{
|
|
@@ -4350,7 +4601,7 @@
|
|
|
4350
4601
|
"name": "lr-date-picker",
|
|
4351
4602
|
"description": {
|
|
4352
4603
|
"kind": "markdown",
|
|
4353
|
-
"value": "`<lr-date-picker>` — an inline month-grid calendar for picking a single date\nor a date range. Mirrors the core `<wa-date-picker>` API under `lr-`.\n\nValue is ISO 8601: `YYYY-MM-DD` (single) or `YYYY-MM-DD/YYYY-MM-DD` (range).\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The date-picker wrapper. |\n| `day` | A calendar day button. |\n| `day-outside` | A day outside the active month. |\n| `day-placeholder` | A non-day grid placeholder. |\n| `day-range-end` | The end of a selected range. |\n| `day-range-inner` | An interior day in a selected range. |\n| `day-range-start` | The start of a selected range. |\n| `day-selected` | A selected day. |\n| `day-today` | A day representing today. |\n| `grid` | A month date grid. |\n| `header` | The month header. |\n| `month` | A visible month wrapper. |\n| `next` | The next-month button. |\n| `previous` | The previous-month button. |\n| `title` | The month title. |\n| `week` | A calendar week row. |\n| `weekday` | A weekday label. |\n| `weekdays` | The weekday header row.
|
|
4604
|
+
"value": "`<lr-date-picker>` — an inline month-grid calendar for picking a single date\nor a date range. Mirrors the core `<wa-date-picker>` API under `lr-`.\n\nValue is ISO 8601: `YYYY-MM-DD` (single) or `YYYY-MM-DD/YYYY-MM-DD` (range).\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The date-picker wrapper. |\n| `day` | A calendar day button. |\n| `day-outside` | A day outside the active month. |\n| `day-placeholder` | A non-day grid placeholder. |\n| `day-range-end` | The end of a selected range. |\n| `day-range-inner` | An interior day in a selected range. |\n| `day-range-start` | The start of a selected range. |\n| `day-selected` | A selected day. |\n| `day-today` | A day representing today. |\n| `grid` | A month date grid. |\n| `header` | The month header. |\n| `month` | A visible month wrapper. |\n| `next` | The next-month button. |\n| `previous` | The previous-month button. |\n| `title` | The month title. |\n| `week` | A calendar week row. |\n| `weekday` | A weekday label. |\n| `weekdays` | The weekday header row. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-date-picker-month-gap` (default: `var(--lr-space-l)`) — Gap between visible months.\n- `--lr-date-picker-header-gap` (default: `var(--lr-space-s)`) — Month-header child gap.\n- `--lr-date-picker-radius` (default: `var(--lr-radius)`) — Calendar and control corner radius."
|
|
4354
4605
|
},
|
|
4355
4606
|
"attributes": [
|
|
4356
4607
|
{
|
|
@@ -4574,7 +4825,7 @@
|
|
|
4574
4825
|
"name": "lr-diff-view",
|
|
4575
4826
|
"description": {
|
|
4576
4827
|
"kind": "markdown",
|
|
4577
|
-
"value": "`<lr-diff-view>` — a real two-string line diff (Myers/LCS-style alignment), rendered as\ninterleaved unified-diff output -- not diff-flavored syntax highlighting over an\nalready-formatted string (`lr-code-block`'s `language=\"diff\"` only lexically colors a string\nthe consumer already unified-diffed; it has no two-string-compare entry point). First-party\ninvention (no Web Awesome equivalent).\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The root wrapper. |\n| `copy-button` | The copy affordance, only rendered while `copyable`. |\n| `line` | A single line. Carries `data-type=\"equal\"\\|\"add\"\\|\"remove\"\\|\"empty\"\\|\"fold\"` (`\"empty\"` is an unbalanced-replace placeholder cell in `layout=\"split\"` and never carries a `+`/`-` prefix; `\"fold\"` is the collapsed-unchanged-lines marker `contextLines` produces). |\n| `side` | One column in `layout=\"split\"` (`data-side=\"old\"\\|\"new\"`). |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-diff-view-font` (default: `var(--lr-font-mono)`) — Font family used for the diff lines."
|
|
4828
|
+
"value": "`<lr-diff-view>` — a real two-string line diff (Myers/LCS-style alignment), rendered as\ninterleaved unified-diff output -- not diff-flavored syntax highlighting over an\nalready-formatted string (`lr-code-block`'s `language=\"diff\"` only lexically colors a string\nthe consumer already unified-diffed; it has no two-string-compare entry point). First-party\ninvention (no Web Awesome equivalent).\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The root wrapper. |\n| `copy-button` | The copy affordance, only rendered while `copyable`. |\n| `limit` | The localized fallback rendered when either input exceeds `maxLines`. |\n| `line` | A single line. Carries `data-type=\"equal\"\\|\"add\"\\|\"remove\"\\|\"empty\"\\|\"fold\"` (`\"empty\"` is an unbalanced-replace placeholder cell in `layout=\"split\"` and never carries a `+`/`-` prefix; `\"fold\"` is the collapsed-unchanged-lines marker `contextLines` produces). |\n| `side` | One column in `layout=\"split\"` (`data-side=\"old\"\\|\"new\"`). |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-diff-view-font` (default: `var(--lr-font-mono)`) — Font family used for the diff lines.\n- `--lr-diff-view-add-background` (default: `var(--lr-color-success-quiet)`) — Added-line background.\n- `--lr-diff-view-add-color` (default: `var(--lr-color-success)`) — Added-line text color.\n- `--lr-diff-view-remove-background` (default: `var(--lr-color-danger-quiet)`) — Removed-line background.\n- `--lr-diff-view-remove-color` (default: `var(--lr-color-danger)`) — Removed-line text color.\n- `--lr-diff-view-fold-background` (default: `var(--lr-color-surface-raised)`) — Fold-marker background.\n- `--lr-diff-view-fold-color` (default: `var(--lr-color-text-quiet)`) — Fold-marker text color."
|
|
4578
4829
|
},
|
|
4579
4830
|
"attributes": [
|
|
4580
4831
|
{
|
|
@@ -4611,6 +4862,13 @@
|
|
|
4611
4862
|
"kind": "markdown",
|
|
4612
4863
|
"value": "Optional locale override. Otherwise the nearest `locale`/`lang` ancestor is used.\n\nType: `string` \nDefault: `''`"
|
|
4613
4864
|
}
|
|
4865
|
+
},
|
|
4866
|
+
{
|
|
4867
|
+
"name": "max-lines",
|
|
4868
|
+
"description": {
|
|
4869
|
+
"kind": "markdown",
|
|
4870
|
+
"value": "Maximum lines accepted on either input side before rendering a bounded fallback. Defaults\nto `5000`. Set to `Infinity` explicitly to opt back into unbounded diffing.\n\nType: `number` \nDefault: `5000`"
|
|
4871
|
+
}
|
|
4614
4872
|
}
|
|
4615
4873
|
]
|
|
4616
4874
|
},
|
|
@@ -4662,7 +4920,7 @@
|
|
|
4662
4920
|
"name": "edge",
|
|
4663
4921
|
"description": {
|
|
4664
4922
|
"kind": "markdown",
|
|
4665
|
-
"value": "Type: `DockPanelEdge` \nDefault:
|
|
4923
|
+
"value": "Type: `DockPanelEdge` \nDefault: `\"end\"`"
|
|
4666
4924
|
}
|
|
4667
4925
|
},
|
|
4668
4926
|
{
|
|
@@ -4676,14 +4934,14 @@
|
|
|
4676
4934
|
"name": "max-size",
|
|
4677
4935
|
"description": {
|
|
4678
4936
|
"kind": "markdown",
|
|
4679
|
-
"value": "Maximum resize bound, as a CSS length. Empty means \"no explicit cap\" -- the live extent of\nthe containing element is used instead, so the panel still can't be dragged wider/taller than\nits container.\n\nType: `string` \nDefault: `
|
|
4937
|
+
"value": "Maximum resize bound, as a CSS length. Empty means \"no explicit cap\" -- the live extent of\nthe containing element is used instead, so the panel still can't be dragged wider/taller than\nits container.\n\nType: `string` \nDefault: `\"\"`"
|
|
4680
4938
|
}
|
|
4681
4939
|
},
|
|
4682
4940
|
{
|
|
4683
4941
|
"name": "min-size",
|
|
4684
4942
|
"description": {
|
|
4685
4943
|
"kind": "markdown",
|
|
4686
|
-
"value": "Minimum resize bound, as a CSS length.\n\nType: `string` \nDefault:
|
|
4944
|
+
"value": "Minimum resize bound, as a CSS length.\n\nType: `string` \nDefault: `\"160px\"`"
|
|
4687
4945
|
}
|
|
4688
4946
|
},
|
|
4689
4947
|
{
|
|
@@ -4697,7 +4955,7 @@
|
|
|
4697
4955
|
"name": "size",
|
|
4698
4956
|
"description": {
|
|
4699
4957
|
"kind": "markdown",
|
|
4700
|
-
"value": "The current docked size along the resize axis, as a CSS length (e.g. `\"320px\"`).\n\nType: `string` \nDefault:
|
|
4958
|
+
"value": "The current docked size along the resize axis, as a CSS length (e.g. `\"320px\"`).\n\nType: `string` \nDefault: `\"280px\"`"
|
|
4701
4959
|
}
|
|
4702
4960
|
}
|
|
4703
4961
|
]
|
|
@@ -4801,7 +5059,7 @@
|
|
|
4801
5059
|
"name": "lr-document-preview",
|
|
4802
5060
|
"description": {
|
|
4803
5061
|
"kind": "markdown",
|
|
4804
|
-
"value": "`<lr-document-preview>` — a format-dispatching viewer for one document/\nattachment, plus the visual state machine for an async server-side\nconversion a host app runs in front of it.\n\nFormat dispatch is intentionally minimal (see this family's scope\nguidance): only `text/*`/`application/json` (plain, scrollable `<pre>` —\nno syntax highlighting; compose `<lr-code-block>` yourself via the\n`unsupported` slot for that) and `image/*` (a contained `<img>`) render\ninline. Everything else — PDF, office documents, video, audio, or any\nunrecognized MIME type — falls back to a generic \"can't preview this\"\nstate: a file glyph, a short message, and (when `src` is set) a native\n`<a download>` link. This is a deliberate ceiling, not a gap: this\ncomponent ships a dispatch *shell*, not a format registry. The\n`unsupported` slot is the escape hatch for every format left out of the\nbuilt-in three — plug in a PDF.js viewer, an office-doc renderer, a\n`<lr-code-block>`, or anything else keyed off `mime-type` yourself.\n\n`status=\"converting\"` is a second, independent axis from format dispatch.\nThis component does not know your backend's conversion API shape and\ntherefore owns none of the actual polling/fetch — a host that's converting\na non-natively-previewable format server-side (e.g. .docx → .pdf) polls\nits own backend and updates `status`/`progress`/`src` here as that\nproceeds. This component only *visualizes* that state: an indeterminate\nspinner, or a determinate one once `progress` is supplied. Once the host\nflips `status` to `\"ready\"` (typically alongside a new `src`/`mime-type`\npointing at the converted artifact), normal format dispatch resumes.\n\nThe one piece of async work this component *does* own is fetching a\n`text/*`/`application/json` `src` itself (there's no other way to get a\n`<pre>`'s text content from a URL) — gated behind the same generation-\ncounter guard `<lr-tool-result-view>`'s `resolve()` uses, plus an\n`AbortController`, so a `src` reassigned mid-fetch cancels the obsolete\nrequest and can't have a stale response clobber a newer one. A\nfailure here (network error, non-2xx response) renders inline via\n`[part=\"error\"]` and fires `lr-render-error`, independently of the\nhost-owned `status` prop — mirrors `<lr-markdown>`'s identical stance\nthat a *rendering* failure and a host's own state machine are different\nconcerns.\n\nEvery `src` is validated for the DOM/API sink that consumes it. Text\nfetches and image sources allow relative URLs plus `http:`, `https:`,\n`blob:`, and `data:`. Download links deliberately exclude `data:` because\nfollowing a `data:text/html` URL can create an active document. Unsafe or\nmalformed URLs never reach `fetch()`, an image `src`, or an anchor `href`;\nthey render a non-interactive fallback/error instead.\n\nAccessibility: the `\"converting\"` state (no numeric `progress`) is a\n`role=\"status\"` region wrapping a visually-hidden \"Converting document…\"\nstring. This is a *plain* static region, not routed through\n`<lr-live-region>`/`Announcer` — like `<lr-typing-indicator>`'s\nidentical judgement call (see that component's class doc), this only ever\nhas one thing to announce (entering the state), not a rapidly-repeating\nstream of updates, so the coalescing machinery a high-frequency component\nneeds would be pure overhead here. Once real `progress` is available, the\nregion becomes a standard `role=\"progressbar\"` instead, which is\nself-describing via `aria-valuenow` with no extra live-region wiring\nneeded. `status=\"error\"` renders `[part=\"error\"]` as `role=\"alert\"` — an\nassertive, one-shot failure notice, the same native-role shortcut\n`<lr-live-region>`'s own `mode=\"assertive\"` maps to, without requiring\nthe announcer machinery here either.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| `unsupported` | Escape hatch: when populated, its content renders *instead of* the generic download fallback for any `mime-type` this component doesn't natively support (i.e. whenever format dispatch would otherwise fall through to \"generic\"). Ignored while `mime-type` resolves to `text`/`image` dispatch, or while `status` is `\"converting\"`/`\"error\"`. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The root container. |\n| `body` | The wrapper around whichever content is currently showing (text/image preview, the generic fallback, the spinner, or the error message). |\n| `download-link` | The `<a download>` affordance in the generic fallback. Only rendered when `src` is set and safe for link navigation. |\n| `error` | The error message region (`role=\"alert\"`) — used both for `status=\"error\"` and for a failed text fetch. |\n| `filename` | The filename text. |\n| `frame-content` | Forwarded from the internal `<lr-zoomable-frame>` when `zoomable` (image format only). |\n| `frame-controls` | Forwarded from the internal `<lr-zoomable-frame>` when `zoomable` (image format only). |\n| `frame-reset` | Forwarded from the internal `<lr-zoomable-frame>` when `zoomable` (image format only). |\n| `frame-viewport` | Forwarded from the internal `<lr-zoomable-frame>` when `zoomable` (image format only). |\n| `frame-zoom-in` | Forwarded from the internal `<lr-zoomable-frame>` when `zoomable` (image format only). |\n| `frame-zoom-out` | Forwarded from the internal `<lr-zoomable-frame>` when `zoomable` (image format only). |\n| `header` | The row above the body, holding `filename`. Hidden entirely when `filename` is unset. |\n| `highlight-layer` | The wrapper around every rendered region highlight (image format only). |\n| `region-highlight` | One region highlight (`data-tone`, `data-active`) (image format only). |\n| `spinner` | The converting/loading indicator — indeterminate (`role=\"status\"`) or, once numeric progress is known, a determinate `role=\"progressbar\"`. Used both for `status=\"converting\"` and for this component's own in-flight text fetch. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-document-preview-max-height` (default: `none`) — Maximum body block size before the preview scrolls internally.\n- `--lr-document-preview-font` (default: `var(--lr-font-mono)`) — Font used for plain-text previews.\n- `--lr-document-preview-spin-duration` (default: `
|
|
5062
|
+
"value": "`<lr-document-preview>` — a format-dispatching viewer for one document/\nattachment, plus the visual state machine for an async server-side\nconversion a host app runs in front of it.\n\nFormat dispatch is intentionally minimal (see this family's scope\nguidance): only `text/*`/`application/json` (plain, scrollable `<pre>` —\nno syntax highlighting; compose `<lr-code-block>` yourself via the\n`unsupported` slot for that) and `image/*` (a contained `<img>`) render\ninline. Everything else — PDF, office documents, video, audio, or any\nunrecognized MIME type — falls back to a generic \"can't preview this\"\nstate: a file glyph, a short message, and (when `src` is set) a native\n`<a download>` link. This is a deliberate ceiling, not a gap: this\ncomponent ships a dispatch *shell*, not a format registry. The\n`unsupported` slot is the escape hatch for every format left out of the\nbuilt-in three — plug in a PDF.js viewer, an office-doc renderer, a\n`<lr-code-block>`, or anything else keyed off `mime-type` yourself.\n\n`status=\"converting\"` is a second, independent axis from format dispatch.\nThis component does not know your backend's conversion API shape and\ntherefore owns none of the actual polling/fetch — a host that's converting\na non-natively-previewable format server-side (e.g. .docx → .pdf) polls\nits own backend and updates `status`/`progress`/`src` here as that\nproceeds. This component only *visualizes* that state: an indeterminate\nspinner, or a determinate one once `progress` is supplied. Once the host\nflips `status` to `\"ready\"` (typically alongside a new `src`/`mime-type`\npointing at the converted artifact), normal format dispatch resumes.\n\nThe one piece of async work this component *does* own is fetching a\n`text/*`/`application/json` `src` itself (there's no other way to get a\n`<pre>`'s text content from a URL) — gated behind the same generation-\ncounter guard `<lr-tool-result-view>`'s `resolve()` uses, plus an\n`AbortController`, so a `src` reassigned mid-fetch cancels the obsolete\nrequest and can't have a stale response clobber a newer one. A\nfailure here (network error, non-2xx response) renders inline via\n`[part=\"error\"]` and fires `lr-render-error`, independently of the\nhost-owned `status` prop — mirrors `<lr-markdown>`'s identical stance\nthat a *rendering* failure and a host's own state machine are different\nconcerns.\n\nEvery `src` is validated for the DOM/API sink that consumes it. Text\nfetches and image sources allow relative URLs plus `http:`, `https:`,\n`blob:`, and `data:`. Download links deliberately exclude `data:` because\nfollowing a `data:text/html` URL can create an active document. Unsafe or\nmalformed URLs never reach `fetch()`, an image `src`, or an anchor `href`;\nthey render a non-interactive fallback/error instead.\n\nAccessibility: the `\"converting\"` state (no numeric `progress`) is a\n`role=\"status\"` region wrapping a visually-hidden \"Converting document…\"\nstring. This is a *plain* static region, not routed through\n`<lr-live-region>`/`Announcer` — like `<lr-typing-indicator>`'s\nidentical judgement call (see that component's class doc), this only ever\nhas one thing to announce (entering the state), not a rapidly-repeating\nstream of updates, so the coalescing machinery a high-frequency component\nneeds would be pure overhead here. Once real `progress` is available, the\nregion becomes a standard `role=\"progressbar\"` instead, which is\nself-describing via `aria-valuenow` with no extra live-region wiring\nneeded. `status=\"error\"` renders `[part=\"error\"]` as `role=\"alert\"` — an\nassertive, one-shot failure notice, the same native-role shortcut\n`<lr-live-region>`'s own `mode=\"assertive\"` maps to, without requiring\nthe announcer machinery here either.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| `unsupported` | Escape hatch: when populated, its content renders *instead of* the generic download fallback for any `mime-type` this component doesn't natively support (i.e. whenever format dispatch would otherwise fall through to \"generic\"). Ignored while `mime-type` resolves to `text`/`image` dispatch, or while `status` is `\"converting\"`/`\"error\"`. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The root container. |\n| `body` | The wrapper around whichever content is currently showing (text/image preview, the generic fallback, the spinner, or the error message). |\n| `download-link` | The `<a download>` affordance in the generic fallback. Only rendered when `src` is set and safe for link navigation. |\n| `error` | The error message region (`role=\"alert\"`) — used both for `status=\"error\"` and for a failed text fetch. |\n| `filename` | The filename text. |\n| `frame-content` | Forwarded from the internal `<lr-zoomable-frame>` when `zoomable` (image format only). |\n| `frame-controls` | Forwarded from the internal `<lr-zoomable-frame>` when `zoomable` (image format only). |\n| `frame-reset` | Forwarded from the internal `<lr-zoomable-frame>` when `zoomable` (image format only). |\n| `frame-viewport` | Forwarded from the internal `<lr-zoomable-frame>` when `zoomable` (image format only). |\n| `frame-zoom-in` | Forwarded from the internal `<lr-zoomable-frame>` when `zoomable` (image format only). |\n| `frame-zoom-out` | Forwarded from the internal `<lr-zoomable-frame>` when `zoomable` (image format only). |\n| `header` | The row above the body, holding `filename`. Hidden entirely when `filename` is unset. |\n| `highlight-actions` | Non-overlapping actions used when multiple region highlights would otherwise create overlapping minimum hit areas (image format only). |\n| `highlight-layer` | The wrapper around every rendered region highlight (image format only). |\n| `region-highlight` | One region highlight (`data-tone`, `data-active`) (image format only). |\n| `region-highlight-action` | One action in the non-overlapping highlight action list. |\n| `region-highlight-target` | Transparent activation geometry around a region highlight, with a minimum pointer/focus area independent of the visual rectangle (image format only). |\n| `spinner` | The converting/loading indicator — indeterminate (`role=\"status\"`) or, once numeric progress is known, a determinate `role=\"progressbar\"`. Used both for `status=\"converting\"` and for this component's own in-flight text fetch. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-document-preview-max-height` (default: `none`) — Maximum body block size before the preview scrolls internally.\n- `--lr-document-preview-font` (default: `var(--lr-font-mono)`) — Font used for plain-text previews.\n- `--lr-document-preview-spin-duration` (default: `var(--lr-transition-ambient)`) — Timing of one indeterminate loading-indicator rotation.\n- `--lr-document-preview-progress` (default: `0`) — Unitless 0-100 completion of the determinate loading ring (multiplied by `1%` in its conic gradient). Written inline by the component from the clamped `progress` value, so it is a read-out rather than a consumer knob.\n- `--lr-document-preview-active-border` (default: `var(--lr-color-warning, var(--lr-color-brand))`) — Border color of the `[part=\"region-highlight\"]` matching `activeHighlightId` (image format only). Distinct from the resting highlight border.\n- `--lr-document-preview-highlight-accent-color` (default: `var(--lr-color-brand)`) — Accent highlight border and hover tint.\n- `--lr-document-preview-highlight-success-color` (default: `var(--lr-color-success)`) — Success highlight border and hover tint.\n- `--lr-document-preview-highlight-warning-color` (default: `var(--lr-color-warning)`) — Warning highlight border and hover tint.\n- `--lr-document-preview-highlight-danger-color` (default: `var(--lr-color-danger)`) — Danger highlight border and hover tint.\n- `--lr-document-preview-highlight-neutral-color` (default: `var(--lr-color-neutral)`) — Neutral highlight border and hover tint."
|
|
4805
5063
|
},
|
|
4806
5064
|
"attributes": [
|
|
4807
5065
|
{
|
|
@@ -4938,7 +5196,7 @@
|
|
|
4938
5196
|
"name": "lr-docx-viewer",
|
|
4939
5197
|
"description": {
|
|
4940
5198
|
"kind": "markdown",
|
|
4941
|
-
"value": "Renders a DOCX document as sanitized semantic HTML using the optional\n`mammoth` converter and `dompurify` sanitizer peers. DOCX content is always\nsanitized; there is no unsanitized rendering mode for uploaded documents.\n\nEvery rendered heading's slug (computed via the shared GitHub-slugger-style `Slugger` -- the same\nalgorithm and shared class `<lr-markdown>` uses, so identical heading text slugs identically\nacross both viewers) is stamped as its `id` and cached into `getHeadingTree()`'s document-ordered\noutline -- unconditional, unlike `<lr-markdown>`'s opt-in `heading-anchors`, since this\ncomponent's rendered HTML is always internal (mammoth's own conversion output), never a raw string\na consumer might serialize verbatim. Adopts `DocumentAnchorTarget`: `fragment` anchors resolve\nagainst that outline, `text-quote` anchors via `internal/text-quote.ts`'s shared scope/resolve\nhelpers; `highlights` re-resolve by quote after every render (never by node identity), so a\nhighlight painted before its quote is in the rendered markup yet simply paints once a later load\ncontains it. Highlight painting uses `internal/text-highlights.ts`'s `acquireHighlightHandle()` --\nthe CSS Custom Highlight API where the browser supports it (no DOM mutation at all), a `<mark>`-wrap\nfallback otherwise. `search()`/`searchNext()`/`searchPrevious()`/`clearSearch()` do a\ncase-insensitive substring search over the rendered content's text and paint every match as a\n`<mark part=\"search-match\">` (the active one also carrying `search-match-active`) -- a separate,\nalways-real-DOM-element mechanism from the tone-based highlight painting above, since search needs\nmany simultaneously-visible matches rather than one set of themed spans.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The root container. |\n| `body` | The scrollable document body. |\n| `content` | The semantic document content. |\n| `error` | The error message region. |\n| `highlight` | A painted `text-quote` highlight (`<mark>`, `<mark>`-wrap fallback path only). |\n| `search-match` | A painted in-document search match. |\n| `search-match-active` | The currently active search match (also carries `search-match`). |\n| `spinner` | The loading status region. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-docx-viewer-max-height` (default: `none`) — Maximum block size of the scrollable document body before it scrolls internally. Also settable via the `max-height` property."
|
|
5199
|
+
"value": "Renders a DOCX document as sanitized semantic HTML using the optional\n`mammoth` converter and `dompurify` sanitizer peers. DOCX content is always\nsanitized; there is no unsanitized rendering mode for uploaded documents.\n\nEvery rendered heading's slug (computed via the shared GitHub-slugger-style `Slugger` -- the same\nalgorithm and shared class `<lr-markdown>` uses, so identical heading text slugs identically\nacross both viewers) is stamped as its `id` and cached into `getHeadingTree()`'s document-ordered\noutline -- unconditional, unlike `<lr-markdown>`'s opt-in `heading-anchors`, since this\ncomponent's rendered HTML is always internal (mammoth's own conversion output), never a raw string\na consumer might serialize verbatim. Adopts `DocumentAnchorTarget`: `fragment` anchors resolve\nagainst that outline, `text-quote` anchors via `internal/text-quote.ts`'s shared scope/resolve\nhelpers; `highlights` re-resolve by quote after every render (never by node identity), so a\nhighlight painted before its quote is in the rendered markup yet simply paints once a later load\ncontains it. Highlight painting uses `internal/text-highlights.ts`'s `acquireHighlightHandle()` --\nthe CSS Custom Highlight API where the browser supports it (no DOM mutation at all), a `<mark>`-wrap\nfallback otherwise. `search()`/`searchNext()`/`searchPrevious()`/`clearSearch()` do a\ncase-insensitive substring search over the rendered content's text and paint every match as a\n`<mark part=\"search-match\">` (the active one also carrying `search-match-active`) -- a separate,\nalways-real-DOM-element mechanism from the tone-based highlight painting above, since search needs\nmany simultaneously-visible matches rather than one set of themed spans.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The root container. |\n| `body` | The scrollable document body. |\n| `content` | The semantic document content. |\n| `error` | The error message region. |\n| `highlight` | A painted `text-quote` highlight (`<mark>`, `<mark>`-wrap fallback path only). |\n| `search-match` | A painted in-document search match. |\n| `search-match-active` | The currently active search match (also carries `search-match`). |\n| `spinner` | The loading status region. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-docx-viewer-max-height` (default: `none`) — Maximum block size of the scrollable document body before it scrolls internally. Also settable via the `max-height` property.\n- `--lr-docx-viewer-highlight-accent-background` — Accent highlight background.\n- `--lr-docx-viewer-highlight-success-background` — Success highlight background.\n- `--lr-docx-viewer-highlight-warning-background` — Warning highlight background.\n- `--lr-docx-viewer-highlight-danger-background` — Danger highlight background.\n- `--lr-docx-viewer-highlight-neutral-background` — Neutral highlight background.\n- `--lr-docx-viewer-highlight-active-background` — Active highlight background.\n- `--lr-docx-viewer-highlight-active-outline` — Active fallback-highlight outline.\n- `--lr-docx-viewer-search-match-background` — Search-match background.\n- `--lr-docx-viewer-search-match-active-background` — Active search-match background.\n- `--lr-docx-viewer-search-match-active-foreground` — Active search-match foreground."
|
|
4942
5200
|
},
|
|
4943
5201
|
"attributes": [
|
|
4944
5202
|
{
|
|
@@ -5006,6 +5264,13 @@
|
|
|
5006
5264
|
"value": "Type: `boolean` \nDefault: `true`"
|
|
5007
5265
|
}
|
|
5008
5266
|
},
|
|
5267
|
+
{
|
|
5268
|
+
"name": "data-labels",
|
|
5269
|
+
"description": {
|
|
5270
|
+
"kind": "markdown",
|
|
5271
|
+
"value": "Draws each data point's value on the chart via the optional\n`chartjs-plugin-datalabels` peer. Unset (the default) leaves labels off for\nthis chart; the peer is attached only to instances that opt in, and\n`buildConfig()` keeps its per-chart options disabled until this is set. The\nscreen-reader equivalent is the always-present data table (see\n`show-data-table`); labels are a purely visual, canvas-only addition.\n\nType: `boolean` \nDefault: `false`"
|
|
5272
|
+
}
|
|
5273
|
+
},
|
|
5009
5274
|
{
|
|
5010
5275
|
"name": "height",
|
|
5011
5276
|
"description": {
|
|
@@ -5048,6 +5313,13 @@
|
|
|
5048
5313
|
"value": "Makes the generated data table visible; it remains screen-reader available when false.\n\nType: `boolean` \nDefault: `false`"
|
|
5049
5314
|
}
|
|
5050
5315
|
},
|
|
5316
|
+
{
|
|
5317
|
+
"name": "stack-totals",
|
|
5318
|
+
"description": {
|
|
5319
|
+
"kind": "markdown",
|
|
5320
|
+
"value": "When the chart is `stacked` (bar/line only), draws the per-category stack\ntotal above each stack, via the same optional `chartjs-plugin-datalabels`\npeer as `data-labels`. Null/undefined points are skipped; a category whose\nevery value is null shows no total. Unset (the default) draws nothing.\n\nType: `boolean` \nDefault: `false`"
|
|
5321
|
+
}
|
|
5322
|
+
},
|
|
5051
5323
|
{
|
|
5052
5324
|
"name": "stacked",
|
|
5053
5325
|
"description": {
|
|
@@ -5226,7 +5498,7 @@
|
|
|
5226
5498
|
"name": "open",
|
|
5227
5499
|
"description": {
|
|
5228
5500
|
"kind": "markdown",
|
|
5229
|
-
"value": "Type: `boolean`
|
|
5501
|
+
"value": "Type: `boolean`"
|
|
5230
5502
|
}
|
|
5231
5503
|
},
|
|
5232
5504
|
{
|
|
@@ -5385,42 +5657,79 @@
|
|
|
5385
5657
|
]
|
|
5386
5658
|
},
|
|
5387
5659
|
{
|
|
5388
|
-
"name": "lr-
|
|
5660
|
+
"name": "lr-embedding-explorer",
|
|
5389
5661
|
"description": {
|
|
5390
5662
|
"kind": "markdown",
|
|
5391
|
-
"value": "`<lr-
|
|
5663
|
+
"value": "`<lr-embedding-explorer>` — a dependency-free, accessible 2D embedding projection viewer. It\nnormalizes host-provided coordinates into an SVG plot, colors optional clusters, and exposes\nclick/keyboard selection. It does not run PCA/UMAP/t-SNE, fetch chunks, or mutate points.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The root wrapper. |\n| `empty` | The empty state. |\n| `plot` | The SVG projection plot. |\n| `point` | One focusable embedding point. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-embedding-explorer-selected-stroke` (default: `var(--lr-color-brand)`) — Stroke color of the selected point."
|
|
5392
5664
|
},
|
|
5393
5665
|
"attributes": [
|
|
5394
5666
|
{
|
|
5395
5667
|
"name": "aria-label",
|
|
5396
5668
|
"description": {
|
|
5397
5669
|
"kind": "markdown",
|
|
5398
|
-
"value": "Accessible name
|
|
5670
|
+
"value": "Accessible name for the plot.\n\nType: `string | null` \nDefault: `null`"
|
|
5399
5671
|
}
|
|
5400
5672
|
},
|
|
5401
5673
|
{
|
|
5402
|
-
"name": "
|
|
5674
|
+
"name": "height",
|
|
5403
5675
|
"description": {
|
|
5404
5676
|
"kind": "markdown",
|
|
5405
|
-
"value": "
|
|
5677
|
+
"value": "SVG block size.\n\nType: `string` \nDefault: `'360px'`"
|
|
5406
5678
|
}
|
|
5407
5679
|
},
|
|
5408
5680
|
{
|
|
5409
|
-
"name": "
|
|
5681
|
+
"name": "locale",
|
|
5410
5682
|
"description": {
|
|
5411
5683
|
"kind": "markdown",
|
|
5412
|
-
"value": "
|
|
5684
|
+
"value": "Optional locale override. Otherwise the nearest `locale`/`lang` ancestor is used.\n\nType: `string` \nDefault: `''`"
|
|
5413
5685
|
}
|
|
5414
5686
|
},
|
|
5415
5687
|
{
|
|
5416
|
-
"name": "
|
|
5688
|
+
"name": "selected-id",
|
|
5417
5689
|
"description": {
|
|
5418
5690
|
"kind": "markdown",
|
|
5419
|
-
"value": "
|
|
5691
|
+
"value": "The selected point id. Controlled by the host.\n\nType: `string` \nDefault: `''`"
|
|
5420
5692
|
}
|
|
5421
|
-
}
|
|
5693
|
+
}
|
|
5694
|
+
]
|
|
5695
|
+
},
|
|
5696
|
+
{
|
|
5697
|
+
"name": "lr-emoji-picker",
|
|
5698
|
+
"description": {
|
|
5699
|
+
"kind": "markdown",
|
|
5700
|
+
"value": "`<lr-emoji-picker>` — a searchable, keyboard-navigable, form-associated emoji picker. In the\nsame \"zero/optional-peer dependency\" spirit as `<lr-lite-chart>`/`<lr-heatmap>`: `groups` is\nfully consumer-suppliable (this component ships no emoji data of its own), with an *optional*\nconvenience auto-loader for a default set — see `emoji-data-loader.ts` and the class doc there for\nexactly what that covers.\n\nKeyboard model: the grid is a roving-tabindex listbox (a single Tab stop — only the active emoji\nis tabbable). Arrow keys move the active option (Left/Right follow reading direction and swap\nunder RTL; Up/Down move by one visual row, measured from the live wrap layout), Home/End jump to\nthe first/last option, and Enter/Space picks. The search input doubles as a `role=\"combobox\"`\nover the same listbox: the arrow keys and Enter also work there while focus stays in the input,\nwith `aria-activedescendant` tracking the active option. Large data sets automatically window\ntheir visible rows so scrolling does not create one button per supplied emoji in the DOM.\n\nShips the same opt-in `label`/`hint`/`errorText` form-control chrome as `<lr-select>`/\n`<lr-color-picker>` (props + matching named slots + `form-control`/`form-control-label`/`hint`/\n`error` parts) — left unset, the chrome stays hidden. When `label` (or the `label` slot) is set\nand `aria-label`/`accessibleLabel` is not, the grid's accessible name switches from the\nlocalized default to `aria-labelledby` pointing at the visible label, mirroring\n`<lr-checkbox-group>`'s identical `accessibleLabel`-wins-over-`aria-labelledby` precedence.\n\n`disabled` (from the `FormAssociated` mixin) gates every self-rendered interactive\nsub-control — the search input and every emoji button — not just one of them.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| `error` | Custom error content. |\n| `hint` | Custom hint content. |\n| `label` | Custom label content. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The wrapper around the search input and grid. |\n| `emoji` | Each emoji's own `<button>`; its box and glyph both scale with the `size` property (`--lr-emoji-picker-item-size`/`-glyph-size`), with the hit area floored at a flat 24px (WCAG 2.5.8) rather than the shared `--lr-icon-button-size`. |\n| `empty` | The empty-state message, shown when the search matches nothing. |\n| `error` | The error message. |\n| `form-control` | The outer wrapper around label, base, error and hint. |\n| `form-control-label` | The visible label. |\n| `grid` | The keyboard-navigable emoji grid. |\n| `group-label` | Each group's heading, rendered above its emojis. |\n| `hint` | The hint message. |\n| `search` | The search/filter `<input>` (`role=\"combobox\"` over the grid). |\n| `virtual-items` | The flex row holding one windowed row's emoji buttons. |\n| `virtual-label` | The `aria-hidden` placeholder that reserves a row's group-label band when that row has no label, keeping every row the same height. Rendered on the windowed path only. |\n| `virtual-row` | One windowed row, absolutely positioned at the `--lr-emoji-picker-row-height` pitch. Rendered on the windowed path only. |\n| `virtual-spacer` | The full-height scroll spacer that gives the grid its scrollbar while only the visible rows exist in the DOM. Rendered on the windowed path only. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-emoji-picker-item-size` (default: `var(--lr-icon-button-size)`) — Each emoji button's box. Floored at 24px; the small size tiers can stay denser than the shared 40px icon-button size.\n- `--lr-emoji-picker-glyph-size` (default: `var(--lr-font-size-lg)`) — Font size of the emoji glyph, scaled by the `size` property to keep the glyph proportional to the item box.\n- `--lr-emoji-picker-gap` (default: `var(--lr-space-2xs)`) — Gap between emoji within a windowed row.\n- `--lr-emoji-picker-control-gap` (default: `var(--lr-space-xs)`) — Gap between field sections.\n- `--lr-emoji-picker-radius` (default: `var(--lr-radius)`) — Outer picker corner radius.\n- `--lr-emoji-picker-item-radius` (default: `var(--lr-radius-xs)`) — Search and emoji corner radius.\n- `--lr-emoji-picker-search-hover-border-color` (default: `var(--lr-color-brand)`) — Search hover border.\n- `--lr-emoji-picker-row-height` (default: `calc(var(--lr-emoji-picker-item-size) + var(--lr-space-l))`) — One windowed row's height. Must stay at or above the item size plus the group-label band, or consecutive absolutely-positioned rows overlap.\n- `--lr-emoji-picker-active-bg` (default: `var(--lr-color-brand-quiet)`) — Background of the keyboard-active (`data-active`) **and** hovered emoji button — the two share a single rule, so this one hook retints both consistently. Declared as an inline `var()` fallback (never on `:host`), so setting it on the element or an ancestor recolors only the emoji highlight without hijacking the library-wide `--lr-color-brand-quiet` token."
|
|
5701
|
+
},
|
|
5702
|
+
"attributes": [
|
|
5422
5703
|
{
|
|
5423
|
-
"name": "label",
|
|
5704
|
+
"name": "aria-label",
|
|
5705
|
+
"description": {
|
|
5706
|
+
"kind": "markdown",
|
|
5707
|
+
"value": "Accessible name forwarded from the host to the internal emoji listbox. Empty falls back to\nthe localized default grid label.\n\nType: `string` \nDefault: `''`"
|
|
5708
|
+
}
|
|
5709
|
+
},
|
|
5710
|
+
{
|
|
5711
|
+
"name": "disabled",
|
|
5712
|
+
"description": {
|
|
5713
|
+
"kind": "markdown",
|
|
5714
|
+
"value": "Type: `boolean`"
|
|
5715
|
+
}
|
|
5716
|
+
},
|
|
5717
|
+
{
|
|
5718
|
+
"name": "error-text",
|
|
5719
|
+
"description": {
|
|
5720
|
+
"kind": "markdown",
|
|
5721
|
+
"value": "Validation-error text rendered below the hint.\n\nType: `string` \nDefault: `''`"
|
|
5722
|
+
}
|
|
5723
|
+
},
|
|
5724
|
+
{
|
|
5725
|
+
"name": "hint",
|
|
5726
|
+
"description": {
|
|
5727
|
+
"kind": "markdown",
|
|
5728
|
+
"value": "Supporting text rendered below the search/grid.\n\nType: `string` \nDefault: `''`"
|
|
5729
|
+
}
|
|
5730
|
+
},
|
|
5731
|
+
{
|
|
5732
|
+
"name": "label",
|
|
5424
5733
|
"description": {
|
|
5425
5734
|
"kind": "markdown",
|
|
5426
5735
|
"value": "Visible label content, rendered above the search/grid. Empty (the default) renders no label\nchrome at all -- see the class doc above for the full label/hint/error contract.\n\nType: `string` \nDefault: `''`"
|
|
@@ -5460,7 +5769,7 @@
|
|
|
5460
5769
|
"name": "lr-empty",
|
|
5461
5770
|
"description": {
|
|
5462
5771
|
"kind": "markdown",
|
|
5463
|
-
"value": "`<lr-empty>` — a generic empty/no-data state. First-party invention (no\nWeb Awesome equivalent); fills a gap common to dashboard-style apps.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| (default) | Custom icon or illustration (defaults to none). |\n| `actions` | Buttons/links shown below the description. |\n| `description` | Rich description content (overrides the `description` attribute). |\n| `heading` | Rich heading content (overrides the `heading` attribute). |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `actions` | The wrapper around the `actions`-slotted content. |\n| `base` | The outer container. |\n| `description` | The description paragraph. |\n| `heading` | The heading paragraph. |\n| `icon` | The wrapper around the default-slotted icon/illustration. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-empty-compact-align` — Cross-axis and text alignment used in compact mode; set to `center` for dense but centered empty states.\n- `--lr-empty-compact-padding` (default: `var(--lr-space-xs)`) — Padding used in compact mode; accepts any padding shorthand (e.g. `8px 2px`).\n- `--lr-empty-compact-gap` (default: `var(--lr-space-2xs)`) — Gap between the icon, title, and description in compact mode."
|
|
5772
|
+
"value": "`<lr-empty>` — a generic empty/no-data state. First-party invention (no\nWeb Awesome equivalent); fills a gap common to dashboard-style apps.\nInitial content is not announced as a new live update; later heading,\ndescription, or slotted-content changes activate polite announcements.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| (default) | Custom icon or illustration (defaults to none). |\n| `actions` | Buttons/links shown below the description. |\n| `description` | Rich description content (overrides the `description` attribute). |\n| `heading` | Rich heading content (overrides the `heading` attribute). |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `actions` | The wrapper around the `actions`-slotted content. |\n| `base` | The outer container. |\n| `description` | The description paragraph. |\n| `heading` | The heading paragraph. |\n| `icon` | The wrapper around the default-slotted icon/illustration. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-empty-compact-align` — Cross-axis and text alignment used in compact mode; set to `center` for dense but centered empty states.\n- `--lr-empty-compact-padding` (default: `var(--lr-space-xs)`) — Padding used in compact mode; accepts any padding shorthand (e.g. `8px 2px`).\n- `--lr-empty-compact-gap` (default: `var(--lr-space-2xs)`) — Gap between the icon, title, and description in compact mode.\n- `--lr-empty-compact-font-size` — Heading font size used in compact mode. Unset by default (no fallback), so the heading keeps its ordinary inherited font size until a consumer opts in."
|
|
5464
5773
|
},
|
|
5465
5774
|
"attributes": [
|
|
5466
5775
|
{
|
|
@@ -5907,7 +6216,7 @@
|
|
|
5907
6216
|
"name": "lr-file-input",
|
|
5908
6217
|
"description": {
|
|
5909
6218
|
"kind": "markdown",
|
|
5910
|
-
"value": "`<lr-file-input>` — a drag-drop + click-to-browse file dropzone. Emits\nraw `File[]`; parsing (CSV/XLSX/etc.) is left to the host, since that's\nwhere files ultimately get uploaded and processed anyway.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| (default) | Custom drop-zone content, overrides the visible `label` text. The accessible name comes from a host `aria-label` when present, then falls back to `label`, so icon-only slot content remains announced correctly. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The dropzone's root, clickable/focusable container. |\n| `input` | The visually-hidden native `<input type=\"file\">`. |\n| `status` | The visually-hidden live region announcing drag accept/reject state. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-file-input-compact-padding` (default: `var(--lr-space-s)`) — `[part=\"base\"]` padding while `compact`.\n- `--lr-file-input-compact-gap` (default: `var(--lr-space-2xs)`) — Gap between the dropzone's slotted children while `compact`.\n- `--lr-file-input-compact-font-size` (default: `var(--lr-font-size-sm)`) — Label font size while `compact`.\n- `--lr-file-input-accept-border-color` (default: `var(--lr-color-success)`) — Border color of `[part=\"base\"][data-drag-state=\"accept\"]`.\n- `--lr-file-input-accept-bg` (default: `color-mix(in srgb, var(--lr-color-success) 8%, transparent)`) — Background of `[part=\"base\"][data-drag-state=\"accept\"]`.\n- `--lr-file-input-reject-border-color` (default: `var(--lr-color-danger)`) — Border color of `[part=\"base\"][data-drag-state=\"reject\"]`.\n- `--lr-file-input-reject-bg` (default: `color-mix(in srgb, var(--lr-color-danger) 8%, transparent)`) — Background of `[part=\"base\"][data-drag-state=\"reject\"]`."
|
|
6219
|
+
"value": "`<lr-file-input>` — a drag-drop + click-to-browse file dropzone. Emits\nraw `File[]`; parsing (CSV/XLSX/etc.) is left to the host, since that's\nwhere files ultimately get uploaded and processed anyway.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| (default) | Custom drop-zone content, overrides the visible `label` text. The accessible name comes from a host `aria-label` when present, then falls back to `label`, so icon-only slot content remains announced correctly. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The dropzone's root, clickable/focusable container. |\n| `input` | The visually-hidden native `<input type=\"file\">`. |\n| `rejection` | The visible `role=\"alert\"` region listing each currently-rejected file alongside its reason, rendered in addition to (never in place of) the sr-only `status` summary. |\n| `status` | The visually-hidden live region announcing drag accept/reject state and accepted/rejected selection counts. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-file-input-compact-padding` (default: `var(--lr-space-s)`) — `[part=\"base\"]` padding while `compact`.\n- `--lr-file-input-compact-gap` (default: `var(--lr-space-2xs)`) — Gap between the dropzone's slotted children while `compact`.\n- `--lr-file-input-compact-font-size` (default: `var(--lr-font-size-sm)`) — Label font size while `compact`.\n- `--lr-file-input-accept-border-color` (default: `var(--lr-color-success)`) — Border color of `[part=\"base\"][data-drag-state=\"accept\"]`.\n- `--lr-file-input-accept-bg` (default: `color-mix(in srgb, var(--lr-color-success) 8%, transparent)`) — Background of `[part=\"base\"][data-drag-state=\"accept\"]`.\n- `--lr-file-input-reject-border-color` (default: `var(--lr-color-danger)`) — Border color of `[part=\"base\"][data-drag-state=\"reject\"]`.\n- `--lr-file-input-reject-bg` (default: `color-mix(in srgb, var(--lr-color-danger) 8%, transparent)`) — Background of `[part=\"base\"][data-drag-state=\"reject\"]`."
|
|
5911
6220
|
},
|
|
5912
6221
|
"attributes": [
|
|
5913
6222
|
{
|
|
@@ -6044,7 +6353,7 @@
|
|
|
6044
6353
|
"name": "label",
|
|
6045
6354
|
"description": {
|
|
6046
6355
|
"kind": "markdown",
|
|
6047
|
-
"value": "Accessible name for the root `role=\"group\"` wrapper. A plain `aria-label` attribute on the\nhost itself is honored as a fallback when this is left unset, matching `<lr-control-group>`.\n\nType: `string` \nDefault: `
|
|
6356
|
+
"value": "Accessible name for the root `role=\"group\"` wrapper. A plain `aria-label` attribute on the\nhost itself is honored as a fallback when this is left unset, matching `<lr-control-group>`.\n\nType: `string` \nDefault: `\"\"`"
|
|
6048
6357
|
}
|
|
6049
6358
|
},
|
|
6050
6359
|
{
|
|
@@ -6067,7 +6376,7 @@
|
|
|
6067
6376
|
"name": "lr-flag",
|
|
6068
6377
|
"description": {
|
|
6069
6378
|
"kind": "markdown",
|
|
6070
|
-
"value": "`<lr-flag>` — a country/language flag.\n\nFlag images are shipped by the optional peer package `@aceshooting/lyra-flags`,\nnot bundled into lyra-ui itself, so importing the core library pulls zero flag\nweight. Give it a `country` (ISO 3166-1 alpha-2) or a `language` tag (mapped to\na representative country). While that peer package's `flagUrl()` resolves
|
|
6379
|
+
"value": "`<lr-flag>` — a country/language flag.\n\nFlag images are shipped by the optional peer package `@aceshooting/lyra-flags`,\nnot bundled into lyra-ui itself, so importing the core library pulls zero flag\nweight. Give it a `country` (ISO 3166-1 alpha-2) or a `language` tag (mapped to\na representative country). While that peer package's `flagUrl()` resolves,\nthe host carries `aria-busy=\"true\"` and a skeleton placeholder renders in its\nplace. A missing or failed peer resolver fails closed with a localized alert;\nan installed resolver returning no URL for an unknown code remains a valid\nempty result.\n\n**Bundle-size note:** `country`/`language` resolve through the peer package's\n`flagUrl(code)`, which lazily fetches one requested flag at runtime. A\nbundler may still emit the complete reachable lazy-chunk graph; use a\nliteral asset subpath import when the deployment artifact must be pruned.\nIf you already\nhave a flag's URL at build time (e.g. from your own literal\n`import frUrl from '@aceshooting/lyra-flags/flags/fr.svg?url'`), pass it as\n`src` instead to skip the peer-package round trip (and its loading-skeleton\nflash) entirely.\n\nThe ~65 flags whose design includes a detailed coat of arms/seal/emblem (e.g. `es`, `pt`) ship\nthree fidelity tiers; choose one with `variant`: `\"compact\"` (a tiny WebP raster for icon-scale\nuse — menu items, language selectors, dense lists), the default `\"standard\"` (icon-optimized\nvector for card/row sizes), or `\"detailed\"` (the pristine full-detail vector for hero-scale\ndisplay). A no-op for every other code — all tiers resolve to the same file. See `variant`'s own\ndoc.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `error` | Localized alert rendered when the optional peer resolver is unavailable or fails. |\n| `image` | The underlying <img>. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-flag-aspect-ratio` (default: `4 / 3`) — Rectangular flag aspect ratio.\n- `--lr-flag-object-fit` (default: `cover`) — How the image fits its flag frame.\n- `--lr-flag-radius` — Rectangular flag corner radius."
|
|
6071
6380
|
},
|
|
6072
6381
|
"attributes": [
|
|
6073
6382
|
{
|
|
@@ -6139,7 +6448,7 @@
|
|
|
6139
6448
|
"name": "lr-flow-canvas",
|
|
6140
6449
|
"description": {
|
|
6141
6450
|
"kind": "markdown",
|
|
6142
|
-
"value": "`<lr-flow-canvas>` — a pannable/zoomable DAG workflow canvas: positions HTML node cards, draws\nSVG edges between their handles, runs a shared layered auto-layout for unpositioned nodes, and owns\nall selection/drag/connect interaction
|
|
6451
|
+
"value": "`<lr-flow-canvas>` — a pannable/zoomable DAG workflow canvas: positions HTML node cards, draws\nSVG edges between their handles, runs a shared layered auto-layout for unpositioned nodes, and owns\nall selection/drag/connect interaction. Readonly (viewer) by default; opt into editor gestures\nindividually via `nodes-draggable`, `connectable`, `droppable`. `nodes` and `edges` remain\ncontrolled and are never mutated internally. Selection is an internally applied interaction\nstate: `selectedNodeIds`/`selectedEdgeIds` can seed or replace it, and node/edge activation\nupdates those arrays before emitting `lr-selection-change`.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| (default) | `lr-flow-node` children to adopt by `node-id`; non-matching children are ignored with a console warning. |\n| `bottom-end` | Floating corner overlay (e.g. `lr-flow-minimap`). |\n| `bottom-start` | Floating corner overlay (e.g. `lr-flow-controls`). |\n| `top-end` | Floating corner overlay. |\n| `top-start` | Floating corner overlay (e.g. `lr-flow-run-overlay`). |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `arrowhead` | The shared directed-edge arrowhead marker. |\n| `background` | The dotted background grid. |\n| `base` | The root wrapper. |\n| `connection-line` | The in-progress connect-gesture path. |\n| `edge` | A single edge path. |\n| `edge-hit-area` | The transparent wide pointer target behind an edge. |\n| `edge-label` | An edge's drawn label. |\n| `edge-list` | A visually hidden list of every edge. |\n| `edges` | The edges SVG. |\n| `empty` | The `lr-empty` shown when `nodes` is empty. |\n| `live-region` | The current item/gesture announcement. |\n| `node` | A node's positioned wrapper. |\n| `node-control` | The visually hidden, roving selection button for a node. |\n| `stub` | A dangling-edge stub line. |\n| `viewport` | The focusable pan/zoom surface. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-flow-canvas-grid-size` (default: `var(--lr-size-0-5rem)`) — Dotted background spacing. The canvas also writes it inline as `${grid}px` from the `grid` property, which wins over the stylesheet fallback whenever a grid is in effect.\n- `--lr-flow-canvas-march-duration` (default: `var(--lr-transition-ambient)`) — Running-edge march animation duration.\n- `--lr-flow-canvas-node-selected-outline-color` (default: `var(--lr-flow-canvas-node-current-outline-color,var(--lr-color-brand))`) — Outline color of a selected node.\n- `--lr-flow-canvas-node-current-outline-color` (default: `var(--lr-color-brand)`) — Deprecated fallback token for the selected-node outline; retained for compatibility.\n- `--lr-flow-canvas-node-connect-invalid-outline-color` (default: `var(--lr-color-danger)`) — Outline color of a node that is an invalid connect-gesture drop target. Same `::part()` attribute-selector restriction as `--lr-flow-canvas-node-current-outline-color` above.\n- `--lr-flow-canvas-node-connect-target-outline-color` (default: `var(--lr-color-brand)`) — Outline color of a node that is a valid connect-gesture drop target.\n- `--lr-flow-canvas-drop-active-outline-color` (default: `var(--lr-color-brand)`) — Outline color of the viewport while a palette item is dragged over it (`droppable`).\n- `--lr-flow-canvas-node-hover-outline-color` (default: `var(--lr-color-border-strong)`) — Outline color of a node's mouse-hover preview of its own `:focus-visible` ring. Unlike the four state-scoped colors above this one is `:hover`-gated rather than attribute-gated, so a `::part(node):hover` override would lose to this rule's own higher internal specificity rather than to the `::part()[attr]` restriction those four work around. Set to `transparent` to opt out."
|
|
6143
6452
|
},
|
|
6144
6453
|
"attributes": [
|
|
6145
6454
|
{
|
|
@@ -6292,7 +6601,7 @@
|
|
|
6292
6601
|
"name": "lr-flow-minimap",
|
|
6293
6602
|
"description": {
|
|
6294
6603
|
"kind": "markdown",
|
|
6295
|
-
"value": "`<lr-flow-minimap>` — a corner overview map of a `lr-flow-canvas`: scaled node rectangles plus\na draggable viewport rectangle, for orientation and fast navigation on canvases larger than the\nscreen. Draws no edges (nodes only, matching the React Flow/n8n minimap convention) and never\nreads `nodes` itself — geometry always comes from the canvas's `registerCompanion()` snapshots, so\nthe two can never disagree.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The root wrapper. |\n| `map` | The scaled SVG. |\n| `node` | One rect per node. |\n| `viewport` | The draggable, focusable view rectangle. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-flow-minimap-inline-size` (default: `var(--lr-size-12rem)`) — Map inline size.\n- `--lr-flow-minimap-block-size` (default: `var(--lr-size-8rem)`) — Map block size."
|
|
6604
|
+
"value": "`<lr-flow-minimap>` — a corner overview map of a `lr-flow-canvas`: scaled node rectangles plus\na draggable viewport rectangle, for orientation and fast navigation on canvases larger than the\nscreen. Draws no edges (nodes only, matching the React Flow/n8n minimap convention) and never\nreads `nodes` itself — geometry always comes from the canvas's `registerCompanion()` snapshots, so\nthe two can never disagree.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The root wrapper. |\n| `instructions` | Visually hidden keyboard instructions for the viewport. |\n| `live-region` | Visually hidden viewport-change announcements. |\n| `map` | The scaled SVG. |\n| `node` | One rect per node. |\n| `viewport` | The draggable, focusable view rectangle. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-flow-minimap-inline-size` (default: `var(--lr-size-12rem)`) — Map inline size.\n- `--lr-flow-minimap-block-size` (default: `var(--lr-size-8rem)`) — Map block size."
|
|
6296
6605
|
},
|
|
6297
6606
|
"attributes": [
|
|
6298
6607
|
{
|
|
@@ -6896,7 +7205,7 @@
|
|
|
6896
7205
|
"name": "lr-graph-query-builder",
|
|
6897
7206
|
"description": {
|
|
6898
7207
|
"kind": "markdown",
|
|
6899
|
-
"value": "`<lr-graph-query-builder>` — an editor for a single typed relationship/path filter\n(`GraphQuery`) over a knowledge graph: start/end entity anchors, relationship-type and\nnode-type pickers with a removable active-filter chip display, a traversal direction, a\nmin/max hop range, validation, and a host-persisted saved-query list -- a serializable query\nmodel for GraphRAG workflows (feed the `value`/`lr-query-run` payload straight to a retrieval\nor traversal backend).\n\nComposes `<lr-select>` for every closed-choice picker (relationship type, node type,\ndirection, hop counts) and `<lr-input>` for the free-text entity ids -- the relationship/\nnode-type pickers are \"add\" selects: choosing an option appends it to the corresponding\narray and the picker itself resets to its placeholder, so the *current* selection is shown\nseparately as a row of removable `<lr-chip>`s inside an `<lr-chip-group>` (click a chip's\nremove button to drop that one type). A type value present in `value` but missing from\n`relationshipTypeOptions`/`nodeTypeOptions` (e.g. a saved query referencing a type that was\nsince renamed/removed from the picker's own option list) still renders as a chip, labeled with\nits raw value, rather than being silently dropped.\n\n**Query model placement:** `GraphQuery` is kept local to this component rather than promoted\nto the shared `src/ai/types.ts` surface. Unlike that module's types (`ChatMessage`,\n`Citation`, `RetrievalQuery`, etc.), which each mirror a shape multiple existing primitives\nalready consume, `GraphQuery` is specific to this component's own editable-filter-set shape\n(its `minHops`/`maxHops` selects, its \"add picker + chip list\" editing idiom) -- no other\ncomponent reads or produces this exact shape today. This mirrors `<lr-rubric-form>`'s\n`RubricValue`/`RubricKey` and `<lr-tool-param-form>`'s `ToolParamFormSchema`, both also kept\nlocal to their own component for the identical reason.\n\n**Form association:** every other \"structured, non-string value\" editor in this package that\nlooks like this one -- `<lr-rubric-form>`, `<lr-tool-param-form>`, `<lr-time-range>` -- attaches\n`ElementInternals` directly (the `FormAssociated` mixin only fits a plain string value) and\ntreats native `<form>` participation as a nice-to-have layered on top of its primary\n`value`/`lr-input`/`lr-validity-change` integration contract, not a requirement. This component\nfollows that same established convention: `value` round-trips through `JSON.stringify()` as the\nsubmitted form value, and a consumer that never places this inside a `<form>` loses nothing.\n\n**Accessible name:** the region (`role=\"group\"`) is named by, in order, a host-level\n`aria-label` attribute, the `label` property, or the localized `graphQueryBuilderLabel` default\n-- mirroring `<lr-query-builder>`'s identical `role=\"group\"` region, whose own `aria-label`\nattribute similarly wins over its internal default.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| `actions` | Extra host controls rendered in the footer beside the Run button. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The outer wrapper around every section. |\n| `direction` | The traversal-direction `<lr-select>`. |\n| `end-input` | The end-entity `<lr-input>`. |\n| `filter-group` | One type-filter section (relationship or node type); rendered twice. |\n| `footer` | The row containing the actions slot and the Run button. |\n| `max-hops` | The maximum-hops `<lr-select>`. |\n| `min-hops` | The minimum-hops `<lr-select>`. |\n| `node-type-chips` | The `<lr-chip-group>` listing currently active node types. |\n| `node-type-picker` | The \"add a node type\" `<lr-select>`. |\n| `path-fields` | The row wrapping the start/end entity inputs and hop-count selects. |\n| `relationship-chips` | The `<lr-chip-group>` listing currently active relationship types. |\n| `relationship-picker` | The \"add a relationship type\" `<lr-select>`. |\n| `run-button` | The Run button. |\n| `save-button` | The Save button. |\n| `save-name-input` | The new-saved-query name `<lr-input>`. |\n| `save-row` | The row containing the save-name input and Save button. |\n| `saved-delete-button` | A saved query row's delete button. |\n| `saved-empty` | The message shown when `savedQueries` has no entries. |\n| `saved-item` | One saved query's row. |\n| `saved-list` | The list of saved queries. |\n| `saved-load-button` | A saved query row's Load button. |\n| `saved-queries` | The wrapper around the save row and the saved-query list. |\n| `saved-queries-label` | The saved-queries section heading. |\n| `start-input` | The start-entity `<lr-input>`. |"
|
|
7208
|
+
"value": "`<lr-graph-query-builder>` — an editor for a single typed relationship/path filter\n(`GraphQuery`) over a knowledge graph: start/end entity anchors, relationship-type and\nnode-type pickers with a removable active-filter chip display, a traversal direction, a\nmin/max hop range, validation, and a host-persisted saved-query list -- a serializable query\nmodel for GraphRAG workflows (feed the `value`/`lr-query-run` payload straight to a retrieval\nor traversal backend).\n\nComposes `<lr-select>` for every closed-choice picker (relationship type, node type,\ndirection, hop counts) and `<lr-input>` for the free-text entity ids -- the relationship/\nnode-type pickers are \"add\" selects: choosing an option appends it to the corresponding\narray and the picker itself resets to its placeholder, so the *current* selection is shown\nseparately as a row of removable `<lr-chip>`s inside an `<lr-chip-group>` (click a chip's\nremove button to drop that one type). A type value present in `value` but missing from\n`relationshipTypeOptions`/`nodeTypeOptions` (e.g. a saved query referencing a type that was\nsince renamed/removed from the picker's own option list) still renders as a chip, labeled with\nits raw value, rather than being silently dropped.\n\n**Query model placement:** `GraphQuery` is kept local to this component rather than promoted\nto the shared `src/ai/types.ts` surface. Unlike that module's types (`ChatMessage`,\n`Citation`, `RetrievalQuery`, etc.), which each mirror a shape multiple existing primitives\nalready consume, `GraphQuery` is specific to this component's own editable-filter-set shape\n(its `minHops`/`maxHops` selects, its \"add picker + chip list\" editing idiom) -- no other\ncomponent reads or produces this exact shape today. This mirrors `<lr-rubric-form>`'s\n`RubricValue`/`RubricKey` and `<lr-tool-param-form>`'s `ToolParamFormSchema`, both also kept\nlocal to their own component for the identical reason.\n\n**Form association:** every other \"structured, non-string value\" editor in this package that\nlooks like this one -- `<lr-rubric-form>`, `<lr-tool-param-form>`, `<lr-time-range>` -- attaches\n`ElementInternals` directly (the `FormAssociated` mixin only fits a plain string value) and\ntreats native `<form>` participation as a nice-to-have layered on top of its primary\n`value`/`lr-input`/`lr-validity-change` integration contract, not a requirement. This component\nfollows that same established convention: `value` round-trips through `JSON.stringify()` as the\nsubmitted form value, and a consumer that never places this inside a `<form>` loses nothing.\n\n**Accessible name:** the region (`role=\"group\"`) is named by, in order, a host-level\n`aria-label` attribute, the `label` property, or the localized `graphQueryBuilderLabel` default\n-- mirroring `<lr-query-builder>`'s identical `role=\"group\"` region, whose own `aria-label`\nattribute similarly wins over its internal default.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| `actions` | Extra host controls rendered in the footer beside the Run button. |\n| `error` | Error text for the complete form control. |\n| `hint` | Supporting text for the complete form control. |\n| `label` | Visible label for the complete form control. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The outer wrapper around every section. |\n| `direction` | The traversal-direction `<lr-select>`. |\n| `end-input` | The end-entity `<lr-input>`. |\n| `error` | Error text for the complete form control. |\n| `filter-group` | One type-filter section (relationship or node type); rendered twice. |\n| `footer` | The row containing the actions slot and the Run button. |\n| `hint` | Supporting text for the complete form control. |\n| `label` | Visible label for the complete form control. |\n| `max-hops` | The maximum-hops `<lr-select>`. |\n| `min-hops` | The minimum-hops `<lr-select>`. |\n| `node-type-chips` | The `<lr-chip-group>` listing currently active node types. |\n| `node-type-picker` | The \"add a node type\" `<lr-select>`. |\n| `path-fields` | The row wrapping the start/end entity inputs and hop-count selects. |\n| `relationship-chips` | The `<lr-chip-group>` listing currently active relationship types. |\n| `relationship-picker` | The \"add a relationship type\" `<lr-select>`. |\n| `run-button` | The Run button. |\n| `save-button` | The Save button. |\n| `save-name-input` | The new-saved-query name `<lr-input>`. |\n| `save-row` | The row containing the save-name input and Save button. |\n| `saved-delete-button` | A saved query row's delete button. |\n| `saved-empty` | The message shown when `savedQueries` has no entries. |\n| `saved-item` | One saved query's row. |\n| `saved-list` | The list of saved queries. |\n| `saved-load-button` | A saved query row's Load button. |\n| `saved-queries` | The wrapper around the save row and the saved-query list. |\n| `saved-queries-label` | The saved-queries section heading. |\n| `start-input` | The start-entity `<lr-input>`. |"
|
|
6900
7209
|
},
|
|
6901
7210
|
"attributes": [
|
|
6902
7211
|
{
|
|
@@ -6906,6 +7215,20 @@
|
|
|
6906
7215
|
"value": "Type: `boolean`"
|
|
6907
7216
|
}
|
|
6908
7217
|
},
|
|
7218
|
+
{
|
|
7219
|
+
"name": "error-text",
|
|
7220
|
+
"description": {
|
|
7221
|
+
"kind": "markdown",
|
|
7222
|
+
"value": "Caller-supplied outer error text. Field-level validation remains on the affected controls.\n\nType: `string` \nDefault: `''`"
|
|
7223
|
+
}
|
|
7224
|
+
},
|
|
7225
|
+
{
|
|
7226
|
+
"name": "hint",
|
|
7227
|
+
"description": {
|
|
7228
|
+
"kind": "markdown",
|
|
7229
|
+
"value": "Supporting text rendered below the outer label.\n\nType: `string` \nDefault: `''`"
|
|
7230
|
+
}
|
|
7231
|
+
},
|
|
6909
7232
|
{
|
|
6910
7233
|
"name": "hop-limit",
|
|
6911
7234
|
"description": {
|
|
@@ -6940,7 +7263,7 @@
|
|
|
6940
7263
|
"name": "lr-grounding-summary",
|
|
6941
7264
|
"description": {
|
|
6942
7265
|
"kind": "markdown",
|
|
6943
|
-
"value": "`<lr-grounding-summary>` -- the claim-level scorecard for one generated answer: supported/\nunsupported claim counts, citation coverage, an optional confidence score, any warnings, and\n(when `citations` is supplied) a list of evidence citations linking back to their exact spans.\nConsumes `GroundingAssessment` from `src/ai/types.ts` directly as its primary input. Pure\nprojection + event conduit: never fetches or computes an assessment itself.\n\nComposes `<lr-stat>` for every numeric display (claim counts, coverage, confidence) and\n`<lr-citation-badge>` for each evidence entry -- this component defines no numeric-badge or\ncitation-link markup of its own.\n\n`<lr-citation-badge>`'s own `lr-citation-activate` event (`detail: { sourceId, index }`) still\nbubbles through unmodified, same as every other Lyra component composing a child that emits its\nown events. This component additionally listens for it and re-emits the richer\n`lr-citation-select` (`detail: { citation }`, `CitationSelectEventDetail` from `src/ai/types.ts`)\ncarrying the full `Citation` -- including its `span` -- since a bare `sourceId`/`index` pair\ncan't by itself tell a host which exact evidence span to jump to.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The `role=\"group\"` root wrapper. |\n| `empty` | The empty-state message, shown when `assessment` is `null`. |\n| `evidence` | Wrapper for the evidence section. Omitted when `citations` is empty. |\n| `evidence-count` | The evidence count. |\n| `evidence-heading` | The \"Evidence\" heading text. |\n| `evidence-item` | One citation's row (badge + always-visible label/span text). |\n| `evidence-label` | A citation's `label`, shown next to its badge (omitted when unset). |\n| `evidence-span` | A citation's formatted `span` range, shown next to its badge (omitted when `span` is unset). |\n| `stats` | Container for the claim-count/coverage/confidence `<lr-stat>` row. |\n| `warning` | One warning `<li>`. |\n| `warnings` | Wrapper for the warnings section. Omitted when there are no warnings. |\n| `warnings-count` | The warnings count. |\n| `warnings-heading` | The \"Warnings\" heading text. |\n| `warnings-list` | The `<ul>` of warning messages. |"
|
|
7266
|
+
"value": "`<lr-grounding-summary>` -- the claim-level scorecard for one generated answer: supported/\nunsupported claim counts, citation coverage, an optional confidence score, any warnings, and\n(when `citations` is supplied) a list of evidence citations linking back to their exact spans.\nConsumes `GroundingAssessment` from `src/ai/types.ts` directly as its primary input. Pure\nprojection + event conduit: never fetches or computes an assessment itself.\n\nComposes `<lr-stat>` for every numeric display (claim counts, coverage, confidence) and\n`<lr-citation-badge>` for each evidence entry -- this component defines no numeric-badge or\ncitation-link markup of its own.\n\n`<lr-citation-badge>`'s own `lr-citation-activate` event (`detail: { sourceId, index }`) still\nbubbles through unmodified, same as every other Lyra component composing a child that emits its\nown events. This component additionally listens for it and re-emits the richer\n`lr-citation-select` (`detail: { citation }`, `CitationSelectEventDetail` from `src/ai/types.ts`)\ncarrying the full `Citation` -- including its `span` -- since a bare `sourceId`/`index` pair\ncan't by itself tell a host which exact evidence span to jump to.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The `role=\"group\"` root wrapper. |\n| `claims` | Claim-level evidence, when present and enabled. |\n| `empty` | The empty-state message, shown when `assessment` is `null`. |\n| `evidence` | Wrapper for the evidence section. Omitted when `citations` is empty. |\n| `evidence-count` | The evidence count. |\n| `evidence-heading` | The \"Evidence\" heading text. |\n| `evidence-item` | One citation's row (badge + always-visible label/span text). |\n| `evidence-label` | A citation's `label`, shown next to its badge (omitted when unset). |\n| `evidence-span` | A citation's formatted `span` range, shown next to its badge (omitted when `span` is unset). |\n| `stats` | Container for the claim-count/coverage/confidence `<lr-stat>` row. |\n| `warning` | One warning `<li>`. |\n| `warnings` | Wrapper for the warnings section. Omitted when there are no warnings. |\n| `warnings-count` | The warnings count. |\n| `warnings-heading` | The \"Warnings\" heading text. |\n| `warnings-list` | The `<ul>` of warning messages. |"
|
|
6944
7267
|
},
|
|
6945
7268
|
"attributes": [
|
|
6946
7269
|
{
|
|
@@ -6956,6 +7279,13 @@
|
|
|
6956
7279
|
"kind": "markdown",
|
|
6957
7280
|
"value": "Optional locale override. Otherwise the nearest `locale`/`lang` ancestor is used.\n\nType: `string` \nDefault: `''`"
|
|
6958
7281
|
}
|
|
7282
|
+
},
|
|
7283
|
+
{
|
|
7284
|
+
"name": "show-claims",
|
|
7285
|
+
"description": {
|
|
7286
|
+
"kind": "markdown",
|
|
7287
|
+
"value": "Renders `assessment.claims` through `<lr-claim-evidence>` when available.\n\nType: `boolean` \nDefault: `true`"
|
|
7288
|
+
}
|
|
6959
7289
|
}
|
|
6960
7290
|
]
|
|
6961
7291
|
},
|
|
@@ -7086,7 +7416,7 @@
|
|
|
7086
7416
|
"name": "lr-highlight-layer",
|
|
7087
7417
|
"description": {
|
|
7088
7418
|
"kind": "markdown",
|
|
7089
|
-
"value": "`<lr-highlight-layer>` — a presentational overlay that paints highlight rectangles\n(percent-of-box coordinates) over positioned content and owns their activation, active/flash\nstyling, and keyboard access. `items` order is the caller's own reading order; the layer does not\nre-sort geometrically. Fills its nearest positioned ancestor.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The absolutely-positioned overlay (inset 0). |\n| `rect` | One highlight rectangle (`data-tone`/`data-active`/`data-flash` state attributes). |"
|
|
7419
|
+
"value": "`<lr-highlight-layer>` — a presentational overlay that paints highlight rectangles\n(percent-of-box coordinates) over positioned content and owns their activation, active/flash\nstyling, and keyboard access. `items` order is the caller's own reading order; the layer does not\nre-sort geometrically. Fills its nearest positioned ancestor.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The absolutely-positioned overlay (inset 0). |\n| `highlight-action` | One action in the non-overlapping highlight action list. |\n| `highlight-actions` | Non-overlapping actions used when more than one logical highlight would otherwise create ambiguous minimum hit areas. |\n| `rect` | One highlight rectangle (`data-tone`/`data-active`/`data-flash` state attributes). |\n| `rect-target` | Transparent activation geometry around a rectangle, with a minimum pointer/focus area independent of the caller-supplied visual coordinates. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-highlight-layer-accent-background` — Accent highlight background.\n- `--lr-highlight-layer-accent-outline` — Accent highlight outline.\n- `--lr-highlight-layer-success-background` — Success highlight background.\n- `--lr-highlight-layer-success-outline` — Success highlight outline.\n- `--lr-highlight-layer-warning-background` — Warning highlight background.\n- `--lr-highlight-layer-warning-outline` — Warning highlight outline.\n- `--lr-highlight-layer-danger-background` — Danger highlight background.\n- `--lr-highlight-layer-danger-outline` — Danger highlight outline.\n- `--lr-highlight-layer-neutral-background` — Neutral highlight background.\n- `--lr-highlight-layer-neutral-outline` — Neutral highlight outline.\n- `--lr-highlight-layer-flash-background` — Flash-state background."
|
|
7090
7420
|
},
|
|
7091
7421
|
"attributes": [
|
|
7092
7422
|
{
|
|
@@ -7154,6 +7484,13 @@
|
|
|
7154
7484
|
"value": "Type: `number` \nDefault: `10`"
|
|
7155
7485
|
}
|
|
7156
7486
|
},
|
|
7487
|
+
{
|
|
7488
|
+
"name": "data-labels",
|
|
7489
|
+
"description": {
|
|
7490
|
+
"kind": "markdown",
|
|
7491
|
+
"value": "Draws each data point's value on the chart via the optional\n`chartjs-plugin-datalabels` peer. Unset (the default) leaves labels off for\nthis chart; the peer is attached only to instances that opt in, and\n`buildConfig()` keeps its per-chart options disabled until this is set. The\nscreen-reader equivalent is the always-present data table (see\n`show-data-table`); labels are a purely visual, canvas-only addition.\n\nType: `boolean` \nDefault: `false`"
|
|
7492
|
+
}
|
|
7493
|
+
},
|
|
7157
7494
|
{
|
|
7158
7495
|
"name": "height",
|
|
7159
7496
|
"description": {
|
|
@@ -7203,6 +7540,13 @@
|
|
|
7203
7540
|
"value": "Makes the generated data table visible; it remains screen-reader available when false.\n\nType: `boolean` \nDefault: `false`"
|
|
7204
7541
|
}
|
|
7205
7542
|
},
|
|
7543
|
+
{
|
|
7544
|
+
"name": "stack-totals",
|
|
7545
|
+
"description": {
|
|
7546
|
+
"kind": "markdown",
|
|
7547
|
+
"value": "When the chart is `stacked` (bar/line only), draws the per-category stack\ntotal above each stack, via the same optional `chartjs-plugin-datalabels`\npeer as `data-labels`. Null/undefined points are skipped; a category whose\nevery value is null shows no total. Unset (the default) draws nothing.\n\nType: `boolean` \nDefault: `false`"
|
|
7548
|
+
}
|
|
7549
|
+
},
|
|
7206
7550
|
{
|
|
7207
7551
|
"name": "stacked",
|
|
7208
7552
|
"description": {
|
|
@@ -7325,9 +7669,30 @@
|
|
|
7325
7669
|
"name": "lr-icon-button",
|
|
7326
7670
|
"description": {
|
|
7327
7671
|
"kind": "markdown",
|
|
7328
|
-
"value": "`<lr-icon-button>` — an accessible icon-only action button.\n\nSet `icon` for one of `<lr-icon>`'s named glyphs, or slot your own content instead. Slotted\ncontent is a **sibling** of the built-in glyph rather than being piped through `<lr-icon>`, so\nany complete element — an `<svg>`, an `<img>`, an `<lr-flag>` — renders at its own natural\naspect ratio instead of being forced into a 1:1 box. Bare SVG geometry (`<path>`, `<circle>`,\nand a handful of other raw primitives) with no enclosing `<svg>` of its own is detected and\ncloned into a real, internal SVG-namespaced element so it still paints — the same fallback\n`<lr-icon>`'s own custom-content slot uses, but narrowly scoped so a custom element (e.g. a\nslotted `<lr-flag>`) is never run through it.\n\nForm-associated (mirroring `<lr-button>`'s identical shape): discoverable through\n`form.elements`, and `type=\"submit\"`/`type=\"reset\"` are handled by this component itself via\nthe host's own `closest('form')` — a shadow-internal native `<button type=\"submit\">` does not\nparticipate in an ancestor light-DOM form's submission on its own, since form-submitter\nsemantics don't cross the shadow boundary.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| (default) | Optional custom icon content, rendered beside (not inside) the `icon` glyph. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `button` | Native button. |\n| `fallback` | The internal SVG-namespaced clone target for slotted bare geometry. Carries the same `fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.75\" stroke-linecap=\"round\" stroke-linejoin=\"round\"` defaults `<lr-icon>`'s own wrapper svg does, so bare stroke-style geometry (no fill/stroke of its own) renders outlined instead of as a solid shape; an explicit `fill`/`stroke`/etc. already present on the slotted node still wins for that node. Only present in the DOM while at least one top-level slotted element needs it; a complete `<svg>`, `<img>`, or custom element never mounts it. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-icon-button-size` (default: `2.5rem`) — Minimum tappable inline and block size of the native button — a **floor**, not a fixed size: content larger than it grows the button and keeps its own aspect ratio, while a small glyph pads out to it. A library-wide token (declared on `:root` by `tokens.styles.ts`, and the shared minimum tappable size several other components size their icon controls against), so overriding it globally resizes all of them together.\n- `--lr-icon-button-radius` (default: `var(--lr-radius)`) — Corner radius of the native button."
|
|
7672
|
+
"value": "`<lr-icon-button>` — an accessible icon-only action button.\n\nSet `icon` for one of `<lr-icon>`'s named glyphs, or slot your own content instead. Slotted\ncontent is a **sibling** of the built-in glyph rather than being piped through `<lr-icon>`, so\nany complete element — an `<svg>`, an `<img>`, an `<lr-flag>` — renders at its own natural\naspect ratio instead of being forced into a 1:1 box. Bare SVG geometry (`<path>`, `<circle>`,\nand a handful of other raw primitives) with no enclosing `<svg>` of its own is detected and\ncloned into a real, internal SVG-namespaced element so it still paints — the same fallback\n`<lr-icon>`'s own custom-content slot uses, but narrowly scoped so a custom element (e.g. a\nslotted `<lr-flag>`) is never run through it.\n\nHost `aria-haspopup` and `aria-expanded` values are forwarded reactively to the shadow-internal\nnative button. When host `aria-controls` names elements in the host's own root, the controls\nrelationship is resolved onto that focused control through the reflected element-reference API\nso it remains valid across this component's shadow boundary; browsers without that API retain\nthe forwarded string attribute as a best-effort fallback.\n\nForm-associated (mirroring `<lr-button>`'s identical shape): discoverable through\n`form.elements`, and `type=\"submit\"`/`type=\"reset\"` are handled by this component itself via\nthe host's own `closest('form')` — a shadow-internal native `<button type=\"submit\">` does not\nparticipate in an ancestor light-DOM form's submission on its own, since form-submitter\nsemantics don't cross the shadow boundary.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| (default) | Optional custom icon content, rendered beside (not inside) the `icon` glyph. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `button` | Native button. |\n| `fallback` | The internal SVG-namespaced clone target for slotted bare geometry. Carries the same `fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.75\" stroke-linecap=\"round\" stroke-linejoin=\"round\"` defaults `<lr-icon>`'s own wrapper svg does, so bare stroke-style geometry (no fill/stroke of its own) renders outlined instead of as a solid shape; an explicit `fill`/`stroke`/etc. already present on the slotted node still wins for that node. Only present in the DOM while at least one top-level slotted element needs it; a complete `<svg>`, `<img>`, or custom element never mounts it. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-icon-button-size` (default: `2.5rem`) — Minimum tappable inline and block size of the native button — a **floor**, not a fixed size: content larger than it grows the button and keeps its own aspect ratio, while a small glyph pads out to it. A library-wide token (declared on `:root` by `tokens.styles.ts`, and the shared minimum tappable size several other components size their icon controls against), so overriding it globally resizes all of them together.\n- `--lr-icon-button-radius` (default: `var(--lr-radius)`) — Corner radius of the native button.\n- `--lr-icon-button-background` (default: `transparent`) — Background fill of the native button.\n- `--lr-icon-button-background-hover` (default: `var(--lr-color-surface)`) — Background fill on hover.\n- `--lr-icon-button-color` (default: `inherit`) — Icon/text color of the native button.\n- `--lr-icon-button-color-hover` (default: `var(--lr-icon-button-color, inherit)`) — Icon/text color on hover.\n- `--lr-icon-button-border` (default: `0`) — Complete border shorthand of the native button."
|
|
7329
7673
|
},
|
|
7330
7674
|
"attributes": [
|
|
7675
|
+
{
|
|
7676
|
+
"name": "aria-controls",
|
|
7677
|
+
"description": {
|
|
7678
|
+
"kind": "markdown",
|
|
7679
|
+
"value": "Type: `string | null` \nDefault: `null`"
|
|
7680
|
+
}
|
|
7681
|
+
},
|
|
7682
|
+
{
|
|
7683
|
+
"name": "aria-expanded",
|
|
7684
|
+
"description": {
|
|
7685
|
+
"kind": "markdown",
|
|
7686
|
+
"value": "Type: `string | null` \nDefault: `null`"
|
|
7687
|
+
}
|
|
7688
|
+
},
|
|
7689
|
+
{
|
|
7690
|
+
"name": "aria-haspopup",
|
|
7691
|
+
"description": {
|
|
7692
|
+
"kind": "markdown",
|
|
7693
|
+
"value": "Type: `string | null` \nDefault: `null`"
|
|
7694
|
+
}
|
|
7695
|
+
},
|
|
7331
7696
|
{
|
|
7332
7697
|
"name": "aria-label",
|
|
7333
7698
|
"description": {
|
|
@@ -7438,7 +7803,7 @@
|
|
|
7438
7803
|
"name": "lr-image-viewer",
|
|
7439
7804
|
"description": {
|
|
7440
7805
|
"kind": "markdown",
|
|
7441
|
-
"value": "`<lr-image-viewer>` — full pan/zoom raster-image viewer with labeled region highlights and\nopt-in region annotation, the landing surface for `region`-anchored citations. Distinct from\n`<lr-svg-viewer>` (rendered SVG documents) and `<lr-image-comparer>` (before/after slotted\nsurfaces) — this component owns raster grounding/citation display, not comparison or vector\nrendering.\n\nAdopts `DocumentAnchorTarget` with `anchorKinds: ['region']` only — no text selection is bound\n(a raster image has no selectable text), so `lr-text-select` is never emitted by this viewer.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| (default) | None. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `annotate-toggle` | The annotation-mode toggle button. |\n| `annotation-box` | The in-progress draft rectangle. |\n| `base` | The root wrapper. |\n| `error` | The error region. |\n| `fit-control` | The fit-mode select. |\n| `frame` | The embedded `lr-zoomable-frame`. |\n| `highlight` | One highlight box (`data-tone`, `data-active`). |\n| `highlight-label` | A highlight's visible label. |\n| `highlight-layer` | The overlay hosting highlight boxes. |\n| `image` | The `<img>` element. |\n| `image-wrapper` | The rotated wrapper around the image and its overlays. |\n| `rotate-button` | The rotate-90-clockwise button. |\n| `toolbar` | The fit/rotate/annotate controls row. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-image-viewer-annotate-active-bg` (default: `var(--lr-color-brand-quiet)`) — Background of `[part=\"annotate-toggle\"]` while annotation mode is on. The toggle carries its own glyph in `--lr-color-text`, so keep a 4.5:1 ratio against it.\n- `--lr-image-viewer-annotate-active-border` (default: `var(--lr-color-brand)`) — Border color of `[part=\"annotate-toggle\"]` while annotation mode is on.\n- `--lr-image-viewer-highlight-active-color` (default: `var(--lr-color-brand)`) — Outline color of the `[part=\"highlight\"]` matching `activeHighlightId`, independent of the per-tone border colors."
|
|
7806
|
+
"value": "`<lr-image-viewer>` — full pan/zoom raster-image viewer with labeled region highlights and\nopt-in region annotation, the landing surface for `region`-anchored citations. Distinct from\n`<lr-svg-viewer>` (rendered SVG documents) and `<lr-image-comparer>` (before/after slotted\nsurfaces) — this component owns raster grounding/citation display, not comparison or vector\nrendering.\n\nAdopts `DocumentAnchorTarget` with `anchorKinds: ['region']` only — no text selection is bound\n(a raster image has no selectable text), so `lr-text-select` is never emitted by this viewer.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| (default) | None. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `annotate-toggle` | The annotation-mode toggle button. |\n| `annotation-box` | The in-progress draft rectangle. |\n| `base` | The root wrapper. |\n| `error` | The error region. |\n| `fit-control` | The fit-mode select. |\n| `frame` | The embedded `lr-zoomable-frame`. |\n| `highlight` | One highlight box (`data-tone`, `data-active`). |\n| `highlight-label` | A highlight's visible label. |\n| `highlight-layer` | The overlay hosting highlight boxes. |\n| `image` | The `<img>` element. |\n| `image-wrapper` | The rotated wrapper around the image and its overlays. |\n| `rotate-button` | The rotate-90-clockwise button. |\n| `toolbar` | The fit/rotate/annotate controls row. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-image-viewer-annotate-active-bg` (default: `var(--lr-color-brand-quiet)`) — Background of `[part=\"annotate-toggle\"]` while annotation mode is on. The toggle carries its own glyph in `--lr-color-text`, so keep a 4.5:1 ratio against it.\n- `--lr-image-viewer-annotate-active-border` (default: `var(--lr-color-brand)`) — Border color of `[part=\"annotate-toggle\"]` while annotation mode is on.\n- `--lr-image-viewer-highlight-active-color` (default: `var(--lr-color-brand)`) — Outline color of the `[part=\"highlight\"]` matching `activeHighlightId`, independent of the per-tone border colors.\n- `--lr-image-viewer-highlight-border` (default: `var(--lr-color-brand)`) — Default highlight border.\n- `--lr-image-viewer-highlight-bg` (default: `color-mix(in srgb, var(--lr-color-brand) 20%, transparent)`) — Default highlight fill.\n- `--lr-image-viewer-highlight-success-border` — Success-tone highlight border.\n- `--lr-image-viewer-highlight-success-bg` — Success-tone highlight fill.\n- `--lr-image-viewer-highlight-warning-border` — Warning-tone highlight border.\n- `--lr-image-viewer-highlight-warning-bg` — Warning-tone highlight fill.\n- `--lr-image-viewer-highlight-danger-border` — Danger-tone highlight border.\n- `--lr-image-viewer-highlight-danger-bg` — Danger-tone highlight fill.\n- `--lr-image-viewer-highlight-neutral-border` — Neutral-tone highlight border.\n- `--lr-image-viewer-highlight-neutral-bg` — Neutral-tone highlight fill."
|
|
7442
7807
|
},
|
|
7443
7808
|
"attributes": [
|
|
7444
7809
|
{
|
|
@@ -7554,7 +7919,7 @@
|
|
|
7554
7919
|
"name": "lr-ingestion-queue",
|
|
7555
7920
|
"description": {
|
|
7556
7921
|
"kind": "markdown",
|
|
7557
|
-
"value": "`<lr-ingestion-queue>` — a controlled list of documents moving through an ingestion pipeline\n(upload → text extraction → chunking → embedding → indexing), each row showing its stage,\nprogress, chunk/embedding counts, and a retry or cancel affordance. Presentation only: this\ncomponent runs no ingestion itself, persists nothing, and never mutates `items` -- retrying or\ncancelling a row fires a controlled `lr-retry`/`lr-cancel` request event and waits for the host\nto supply an updated `items` array, the same request/response convention `<lr-thread-list>`'s\n`lr-thread-pin`/`-archive`/`-delete` events already establish.\n\nAt or above `virtualizeThreshold` items, the list renders through an internal\n`<lr-virtual-list>` instead of a plain keyed list (same precedent as `<lr-thread-list>`'s data\nmode and `<lr-activity-feed>`'s `virtualizeThreshold`) -- identical row markup and behavior\neither way, keyed by `id`.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The root region. |\n| `cancel-button` | Fires `lr-cancel`. Only rendered for non-terminal rows. |\n| `empty` | The `<lr-empty>` zero-items state. |\n| `item` | One queue item row; carries `data-stage`. When virtualized, reached from this component's own stylesheet via `lr-virtual-list::part(item)` (renders inside the internal `<lr-virtual-list>`'s own shadow root, not this component's). |\n| `item-actions` | Wrapper around the retry/cancel buttons. |\n| `item-attempts` | The attempt count, only rendered once `attempts` is greater than 0. |\n| `item-chunk-count` | The chunk count, only rendered once `chunkCount` is set. |\n| `item-embedding-status` | The \"N of M chunks embedded\" text, only rendered once both `chunkCount` and `embeddedChunkCount` are set. |\n| `item-error` | The failure message, only rendered for `stage=\"failed\"` with `error` set. |\n| `item-header` | The row's name/stage-badge line. |\n| `item-meta` | Wrapper around the chunk-count/embedding-status/attempt-count text. |\n| `item-name` | The document's `name`. |\n| `item-progress` | The row's `<lr-progress-bar>`, only rendered for an active (uploading through indexing) stage. |\n| `item-stage` | The row's `<lr-badge>` showing the localized stage label; its `variant` tracks `stage`. |\n| `list` | The row container in non-virtualized mode (`role=\"list\"`). |\n| `retry-button` | Fires `lr-retry`. Only rendered for `stage=\"failed\"` rows. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-ingestion-queue-max-height` (default: `none`) — Non-virtualized mode only: caps how tall the list grows before it scrolls internally. Has no effect once virtualized -- the internal `<lr-virtual-list>`'s own viewport keeps its independent, fixed default height (retheme it directly via `<lr-ingestion-queue>`'s own `lr-virtual-list { --lr-virtual-list-height: ... }` if needed)."
|
|
7922
|
+
"value": "`<lr-ingestion-queue>` — a controlled list of documents moving through an ingestion pipeline\n(upload → text extraction → chunking → embedding → indexing), each row showing its stage,\nprogress, chunk/embedding counts, and a retry or cancel affordance. Presentation only: this\ncomponent runs no ingestion itself, persists nothing, and never mutates `items` -- retrying or\ncancelling a row fires a controlled `lr-retry`/`lr-cancel` request event and waits for the host\nto supply an updated `items` array, the same request/response convention `<lr-thread-list>`'s\n`lr-thread-pin`/`-archive`/`-delete` events already establish.\n\nAt or above `virtualizeThreshold` items, the list renders through an internal\n`<lr-virtual-list>` instead of a plain keyed list (same precedent as `<lr-thread-list>`'s data\nmode and `<lr-activity-feed>`'s `virtualizeThreshold`) -- identical row markup and behavior\neither way, keyed by `id`.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The root region. |\n| `cancel-button` | Fires `lr-cancel`. Only rendered for non-terminal rows. |\n| `empty` | The `<lr-empty>` zero-items state. |\n| `failure-live` | The visually hidden assertive region that announces only failures that transition or are added after mount; historical failed rows remain visible but are not re-announced as fresh failures. |\n| `item` | One queue item row; carries `data-stage`. When virtualized, reached from this component's own stylesheet via `lr-virtual-list::part(item)` (renders inside the internal `<lr-virtual-list>`'s own shadow root, not this component's). |\n| `item-actions` | Wrapper around the retry/cancel buttons. |\n| `item-attempts` | The attempt count, only rendered once `attempts` is greater than 0. |\n| `item-chunk-count` | The chunk count, only rendered once `chunkCount` is set. |\n| `item-embedding-status` | The \"N of M chunks embedded\" text, only rendered once both `chunkCount` and `embeddedChunkCount` are set. |\n| `item-error` | The failure message, only rendered for `stage=\"failed\"` with `error` set. |\n| `item-header` | The row's name/stage-badge line. |\n| `item-meta` | Wrapper around the chunk-count/embedding-status/attempt-count text. |\n| `item-name` | The document's `name`. |\n| `item-progress` | The row's `<lr-progress-bar>`, only rendered for an active (uploading through indexing) stage. |\n| `item-stage` | The row's `<lr-badge>` showing the localized stage label; its `variant` tracks `stage`. |\n| `list` | The row container in non-virtualized mode (`role=\"list\"`). |\n| `retry-button` | Fires `lr-retry`. Only rendered for `stage=\"failed\"` rows. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-ingestion-queue-max-height` (default: `none`) — Non-virtualized mode only: caps how tall the list grows before it scrolls internally. Has no effect once virtualized -- the internal `<lr-virtual-list>`'s own viewport keeps its independent, fixed default height (retheme it directly via `<lr-ingestion-queue>`'s own `lr-virtual-list { --lr-virtual-list-height: ... }` if needed)."
|
|
7558
7923
|
},
|
|
7559
7924
|
"attributes": [
|
|
7560
7925
|
{
|
|
@@ -7584,7 +7949,7 @@
|
|
|
7584
7949
|
"name": "lr-input",
|
|
7585
7950
|
"description": {
|
|
7586
7951
|
"kind": "markdown",
|
|
7587
|
-
"value": "`<lr-input>` — a single-line plain-text input primitive, the `lr-*` equivalent of a plain\n`wa-input`, form-associated via the `FormAssociated` mixin (same shape as `<lr-textarea>`).\n\nShips the same opt-in `label`/`hint`/`errorText` form-control chrome as `<lr-textarea>`/\n`<lr-select>` (props + matching named slots + `form-control`/`form-control-label`/`hint`/`error`\nparts) — left unset, the chrome stays hidden. `size` uses the same `xs`–`xl` scale as\n`<lr-select>`/`<lr-combobox>`. `type=\"password\"` always renders a\n`password-toggle` eye-icon button that flips the internal native input between\n`type=\"password\"`/`type=\"text\"` and tracks `passwordVisible`. `type=\"email\"`/`type=\"number\"`\n(with `min`/`max`/`step`) delegate constraint validation to the internal native `<input>`'s own\nbrowser-computed `validity`, bridged into this element's `ElementInternals` by `updateValidity()
|
|
7952
|
+
"value": "`<lr-input>` — a single-line plain-text input primitive, the `lr-*` equivalent of a plain\n`wa-input`, form-associated via the `FormAssociated` mixin (same shape as `<lr-textarea>`).\n\nShips the same opt-in `label`/`hint`/`errorText` form-control chrome as `<lr-textarea>`/\n`<lr-select>` (props + matching named slots + `form-control`/`form-control-label`/`hint`/`error`\nparts) — left unset, the chrome stays hidden. `size` uses the same `xs`–`xl` scale as\n`<lr-select>`/`<lr-combobox>`. `type=\"password\"` always renders a\n`password-toggle` eye-icon button that flips the internal native input between\n`type=\"password\"`/`type=\"text\"` and tracks `passwordVisible`. `type=\"email\"`/`type=\"number\"`\n(with `min`/`max`/`step`) delegate constraint validation to the internal native `<input>`'s own\nbrowser-computed `validity`, bridged into this element's `ElementInternals` by `updateValidity()`\n— as do `minlength`/`maxlength`/`pattern`, which constrain the text-bearing types.\n`type=\"search\"`/`type=\"time\"` forward straight through to the native input with no additional\nchrome or validation, the same as `type=\"text\"`.\n\nA host `aria-label` is forwarded to the internal textbox via the typed `accessibleLabel` property;\nexternal `aria-labelledby`/`aria-describedby` idrefs are not copied across the shadow boundary.\n\nForwards the full native selection/editing surface (`selectionStart`/`selectionEnd`,\n`setSelectionRange()`, `setRangeText()`), the same as `<lr-textarea>`, in addition to\n`focus()`/`blur()`/`select()`.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| `end` | Adornment after the native input and built-in actions. |\n| `error` | Custom error content. |\n| `hint` | Custom hint content. |\n| `label` | Custom label content. |\n| `start` | Adornment before the native input. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `clear-button` | The clear action, rendered for non-empty clearable text/search inputs. |\n| `end` | Wrapper around the `end` adornment slot. |\n| `error` | The error message. |\n| `form-control` | The outer wrapper around label, input, error and hint. |\n| `form-control-label` | The `<label>` element. |\n| `hint` | The hint message. |\n| `input` | The native `<input>` element. |\n| `input-wrapper` | The row wrapping the native input and the password-toggle button. |\n| `password-toggle` | The show/hide-password button, present only when `type=\"password\"`. |\n| `start` | Wrapper around the `start` adornment slot. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-input-control-min-height` — Outer control height floor, scaled by `size`.\n- `--lr-input-control-height` — Exact outer control height. Unset by default, which leaves `--lr-input-control-min-height` as a floor only; set it to a length to both floor and cap the control row (e.g. to pixel-match `<lr-select>`/`<lr-combobox>` in the same toolbar). Because it is never declared by the component itself, it can be set from an ancestor or an outer-tree rule as well as inline on the element.\n- `--lr-input-padding-block` — Block padding of the native input, scaled by `size`.\n- `--lr-input-padding-inline` — Inline padding of the control row, scaled by `size`.\n- `--lr-input-font-size` — Font size of the native input, scaled by `size`.\n- `--lr-input-gap` (default: `var(--lr-space-xs)`) — Gap between the start/end adornments and the native input in the control row. Unlike the size knobs above it does not vary by `size` tier. Override it to retune without a `::part(input-wrapper)` rule.\n- `--lr-input-radius` (default: `var(--lr-radius)`) — Corner radius of the control row. Does not vary by `size` tier."
|
|
7588
7953
|
},
|
|
7589
7954
|
"attributes": [
|
|
7590
7955
|
{
|
|
@@ -7678,6 +8043,13 @@
|
|
|
7678
8043
|
"value": "Upper counterpart of `min`, with the same parsing and the same default of `undefined`.\n\nType: `number | string | undefined`"
|
|
7679
8044
|
}
|
|
7680
8045
|
},
|
|
8046
|
+
{
|
|
8047
|
+
"name": "maxlength",
|
|
8048
|
+
"description": {
|
|
8049
|
+
"kind": "markdown",
|
|
8050
|
+
"value": "Upper counterpart of `minlength` (native `maxlength`/`tooLong`), with the same parsing and the\nsame default of `undefined`. Note that native `maxlength` also *prevents* typing beyond the\nlimit; it reports `tooLong` for values that arrive some other way (paste of a longer value,\na programmatic assignment).\n\nType: `number | undefined`"
|
|
8051
|
+
}
|
|
8052
|
+
},
|
|
7681
8053
|
{
|
|
7682
8054
|
"name": "min",
|
|
7683
8055
|
"description": {
|
|
@@ -7685,6 +8057,13 @@
|
|
|
7685
8057
|
"value": "`type=\"number\"` only — forwarded to the internal native `<input>`'s own `min`/`max`/`step`\nand consulted by that same native input's constraint validation (see `updateValidity()`).\nDefaults to `undefined` (no lower bound). The `min` attribute is parsed as a number here; the\ndeclared type also admits a string so a subclass bound to a non-numeric native input type can\nnarrow the attribute parsing to that type's own literal form (`<lr-time-input>`'s `09:00`)\nwithout redeclaring the whole property surface.\n\nType: `number | string | undefined`"
|
|
7686
8058
|
}
|
|
7687
8059
|
},
|
|
8060
|
+
{
|
|
8061
|
+
"name": "minlength",
|
|
8062
|
+
"description": {
|
|
8063
|
+
"kind": "markdown",
|
|
8064
|
+
"value": "Minimum text length, forwarded to the internal native `<input>`'s own `minlength` and\nconsulted by that same native input's constraint validation (`tooShort`, see\n`updateValidity()`). Defaults to `undefined` (no lower bound). Like native `minlength`, an\nempty value never violates it — pair it with `required` to also reject empty. Ignored by the\nnative input for `type=\"number\"`/`type=\"time\"`, exactly as the platform specifies.\n\nType: `number | undefined`"
|
|
8065
|
+
}
|
|
8066
|
+
},
|
|
7688
8067
|
{
|
|
7689
8068
|
"name": "name",
|
|
7690
8069
|
"description": {
|
|
@@ -7699,6 +8078,13 @@
|
|
|
7699
8078
|
"value": "`type=\"password\"` only — whether the field currently reveals its raw text. Toggled by the\nbuilt-in `password-toggle` button; also settable by a consumer up front.\n\nType: `boolean` \nDefault: `false`"
|
|
7700
8079
|
}
|
|
7701
8080
|
},
|
|
8081
|
+
{
|
|
8082
|
+
"name": "pattern",
|
|
8083
|
+
"description": {
|
|
8084
|
+
"kind": "markdown",
|
|
8085
|
+
"value": "A regular expression the value must match in full, forwarded to the internal native\n`<input>`'s own `pattern` and validated by it (`patternMismatch`). Defaults to `undefined`\n(no pattern). Compiled by the browser with the `v` flag and anchored to the whole value, so\nno `^`/`$` is needed; an empty value never violates it.\n\nType: `string | undefined`"
|
|
8086
|
+
}
|
|
8087
|
+
},
|
|
7702
8088
|
{
|
|
7703
8089
|
"name": "placeholder",
|
|
7704
8090
|
"description": {
|
|
@@ -7784,7 +8170,7 @@
|
|
|
7784
8170
|
"name": "lr-json-viewer",
|
|
7785
8171
|
"description": {
|
|
7786
8172
|
"kind": "markdown",
|
|
7787
|
-
"value": "`<lr-json-viewer>` — a collapsible, copyable tree view for an arbitrary\nJSON-serializable value (object/array/string/number/boolean/null/\nundefined). Serves as the fallback renderer wherever a raw payload (tool\ncall arguments, a tool result, an API response) needs inspecting without a\nbespoke view.\n\nExpand/collapse state is keyed by structural path (not by object identity),\nso it survives a `data` reassignment that keeps the same shape -- e.g. a\nstreaming tool result being patched in place.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The root scroll container; respects `max-height`. |\n| `bracket` | A `{`, `}`, `[`, or `]` delimiter. |\n| `copy-button` | A copy-to-clipboard button -- the top-level one (in `toolbar`, labelled \"Copy JSON to clipboard\") or a per-node one (only rendered when `copyable`; labelled with its own key/type, e.g. \"Copy age\", so assistive tech can tell rows apart). |\n| `key` | An object property key or array index label. |\n| `toggle` | A container node's expand/collapse button (hidden, but present for row alignment, on leaf/empty nodes). |\n| `toolbar` | The wrapper around the top-level copy button (only rendered when `copyable`). |\n| `tree` | The wrapper around the rendered node tree. |\n| `value` | A primitive value's text -- carries `data-type` (`string`/`number`/`boolean`/`null`/`undefined`, or `circular` for a self-reference marker in place of a re-visited container's subtree) for per-type coloring, `data-match` while it matches `search`, and `data-active` while it is the current `searchNext()`/`searchPrevious()` cursor position. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-json-viewer-max-height` (default: `none`) — Cap on `[part=\"base\"]`'s block size, past which the viewer scrolls internally. The `maxHeight` property sets this token inline on `[part=\"base\"]`.\n- `--lr-json-viewer-font` (default: `var(--lr-font-mono)`) — Font family used for the rendered tree.\n- `--lr-json-viewer-match-bg` (default: `var(--lr-color-warning-quiet)`) — Background (and surrounding box-shadow) of a key/value that currently matches `search
|
|
8173
|
+
"value": "`<lr-json-viewer>` — a collapsible, copyable tree view for an arbitrary\nJSON-serializable value (object/array/string/number/boolean/null/\nundefined). Serves as the fallback renderer wherever a raw payload (tool\ncall arguments, a tool result, an API response) needs inspecting without a\nbespoke view.\n\nExpand/collapse state is keyed by structural path (not by object identity),\nso it survives a `data` reassignment that keeps the same shape -- e.g. a\nstreaming tool result being patched in place.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The root scroll container; respects `max-height`. |\n| `bracket` | A `{`, `}`, `[`, or `]` delimiter. |\n| `copy-button` | A copy-to-clipboard button -- the top-level one (in `toolbar`, labelled \"Copy JSON to clipboard\") or a per-node one (only rendered when `copyable`; labelled with its own key/type, e.g. \"Copy age\", so assistive tech can tell rows apart). |\n| `key` | An object property key or array index label. |\n| `limit` | Localized notice shown when the depth/node traversal budget truncates rendering or search. |\n| `toggle` | A container node's expand/collapse button (hidden, but present for row alignment, on leaf/empty nodes). |\n| `toolbar` | The wrapper around the top-level copy button (only rendered when `copyable`). |\n| `tree` | The wrapper around the rendered node tree. |\n| `value` | A primitive value's text -- carries `data-type` (`string`/`number`/`boolean`/`null`/`undefined`, or `circular` for a self-reference marker in place of a re-visited container's subtree) for per-type coloring, `data-match` while it matches `search`, and `data-active` while it is the current `searchNext()`/`searchPrevious()` cursor position. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-json-viewer-max-height` (default: `none`) — Cap on `[part=\"base\"]`'s block size, past which the viewer scrolls internally. The `maxHeight` property sets this token inline on `[part=\"base\"]`.\n- `--lr-json-viewer-font` (default: `var(--lr-font-mono)`) — Font family used for the rendered tree.\n- `--lr-json-viewer-match-bg` (default: `var(--lr-color-warning-quiet)`) — Background (and surrounding box-shadow) of a key/value that currently matches `search`.\n- `--lr-json-viewer-active-outline` (default: `var(--lr-focus-ring-color)`) — Outline color for the current imperative search match.\n- `--lr-json-viewer-string-color` (default: `var(--lr-color-success)`) — String value color.\n- `--lr-json-viewer-number-color` (default: `var(--lr-color-brand)`) — Number value color.\n- `--lr-json-viewer-boolean-color` (default: `var(--lr-color-warning)`) — Boolean value color.\n- `--lr-json-viewer-null-color` (default: `var(--lr-color-text-quiet)`) — Null, undefined, and circular-reference marker color."
|
|
7788
8174
|
},
|
|
7789
8175
|
"attributes": [
|
|
7790
8176
|
{
|
|
@@ -7884,6 +8270,43 @@
|
|
|
7884
8270
|
}
|
|
7885
8271
|
]
|
|
7886
8272
|
},
|
|
8273
|
+
{
|
|
8274
|
+
"name": "lr-knowledge-base-admin",
|
|
8275
|
+
"description": {
|
|
8276
|
+
"kind": "markdown",
|
|
8277
|
+
"value": "`<lr-knowledge-base-admin>` — a responsive operations shell composing the existing controlled\nsource inventory and ingestion queue into one tabbed knowledge-base view. It forwards every\nsource/ingestion action under a namespaced event and never creates connectors, uploads files, or\nchanges indexing configuration itself. Put configuration controls in the `settings` slot.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| `settings` | Optional host-owned ingestion, chunking, embedding, or permissions controls. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The root admin wrapper. |\n| `heading` | The visible heading. |\n| `panel` | The active panel. |\n| `settings` | The settings slot wrapper. |\n| `tab` | One tab button. |\n| `tabs` | The tablist. |"
|
|
8278
|
+
},
|
|
8279
|
+
"attributes": [
|
|
8280
|
+
{
|
|
8281
|
+
"name": "active-tab",
|
|
8282
|
+
"description": {
|
|
8283
|
+
"kind": "markdown",
|
|
8284
|
+
"value": "Active tab. Controlled by the host after `lr-tab-change` if desired.\n\nType: `KnowledgeBaseAdminTab` \nDefault: `'sources'`"
|
|
8285
|
+
}
|
|
8286
|
+
},
|
|
8287
|
+
{
|
|
8288
|
+
"name": "hide-ingestion",
|
|
8289
|
+
"description": {
|
|
8290
|
+
"kind": "markdown",
|
|
8291
|
+
"value": "Hides the ingestion tab and queue.\n\nType: `boolean` \nDefault: `false`"
|
|
8292
|
+
}
|
|
8293
|
+
},
|
|
8294
|
+
{
|
|
8295
|
+
"name": "label",
|
|
8296
|
+
"description": {
|
|
8297
|
+
"kind": "markdown",
|
|
8298
|
+
"value": "Accessible name and visible heading.\n\nType: `string` \nDefault: `''`"
|
|
8299
|
+
}
|
|
8300
|
+
},
|
|
8301
|
+
{
|
|
8302
|
+
"name": "locale",
|
|
8303
|
+
"description": {
|
|
8304
|
+
"kind": "markdown",
|
|
8305
|
+
"value": "Optional locale override. Otherwise the nearest `locale`/`lang` ancestor is used.\n\nType: `string` \nDefault: `''`"
|
|
8306
|
+
}
|
|
8307
|
+
}
|
|
8308
|
+
]
|
|
8309
|
+
},
|
|
7887
8310
|
{
|
|
7888
8311
|
"name": "lr-knowledge-graph-explorer",
|
|
7889
8312
|
"description": {
|
|
@@ -7946,7 +8369,7 @@
|
|
|
7946
8369
|
"name": "lr-known-date",
|
|
7947
8370
|
"description": {
|
|
7948
8371
|
"kind": "markdown",
|
|
7949
|
-
"value": "`<lr-known-date>` — a date a user already knows (a birthdate, a passport\nissue/expiry date) collected as three plain, labeled day/month/year number\nfields in the locale's natural field order, rather than a calendar popup.\nForm-associated; the submitted form value is always canonical ISO 8601\n(`YYYY-MM-DD`), or `''` while any field is blank or the combination isn't a\nreal calendar date. Mirrors Web Awesome's `wa-known-date` API surface under\n`lr-`, with `appearance`/`pill`/`form` dropped and `size` normalized to\nthis library's own `xs`–`xl` scale, matching every other lyra form control\nmirrored from a Web Awesome counterpart.\n\nA field's own `<input>` shows exactly what was typed (never reformatted or\nreverted) -- only the composite `value` is zero-padded. Auto-advance\n(typing a field's last digit moves focus to the next field) and\nbackspace-to-previous-field-when-empty are this library's own additions on\ntop of Web Awesome's bare typing model, which documents no auto-advance;\ndon't remove them to \"restore\" WA parity. Arrow-key field-to-field\nnavigation at a field's text boundary is RTL-aware: the *physical* key that\nmeans \"toward the next field\" flips under an inherited `dir=\"rtl\"`, while\nthe field order itself (locale-derived) does not.
|
|
8372
|
+
"value": "`<lr-known-date>` — a date a user already knows (a birthdate, a passport\nissue/expiry date) collected as three plain, labeled day/month/year number\nfields in the locale's natural field order, rather than a calendar popup.\nForm-associated; the submitted form value is always canonical ISO 8601\n(`YYYY-MM-DD`), or `''` while any field is blank or the combination isn't a\nreal calendar date. Mirrors Web Awesome's `wa-known-date` API surface under\n`lr-`, with `appearance`/`pill`/`form` dropped and `size` normalized to\nthis library's own `xs`–`xl` scale, matching every other lyra form control\nmirrored from a Web Awesome counterpart.\n\nA field's own `<input>` shows exactly what was typed (never reformatted or\nreverted) -- only the composite `value` is zero-padded. Auto-advance\n(typing a field's last digit moves focus to the next field) and\nbackspace-to-previous-field-when-empty are this library's own additions on\ntop of Web Awesome's bare typing model, which documents no auto-advance;\ndon't remove them to \"restore\" WA parity. Arrow-key field-to-field\nnavigation at a field's text boundary is RTL-aware: the *physical* key that\nmeans \"toward the next field\" flips under an inherited `dir=\"rtl\"`, while\nthe field order itself (locale-derived) does not. Locale digits such as\nArabic-Indic and Persian numerals are accepted and normalized to the\ncanonical ASCII digits used by the ISO form value.\n\nNo resizable text-editing surface exists (three fixed-width digit fields),\nso resize forwarding doesn't apply, and `spellcheck`/`autocapitalize`/\n`autocorrect`/`wrap` don't meaningfully apply to 2–4-digit numeric fields\neither -- the same carve-out `lr-input[type=\"number\"]` already documents.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| `error` | Custom error content, alongside the `errorText` attribute. |\n| `hint` | Custom hint content, alongside the `hint` attribute. |\n| `label` | Custom label/legend content, alongside the `label` attribute. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `error` | The validation message. |\n| `field` | Each field block (label + input), repeated three times; distinguished by `data-field=\"day\"\\|\"month\"\\|\"year\"`. |\n| `field-input` | The native per-field `<input type=\"text\" inputmode=\"numeric\">`, repeated three times; distinguished by `data-field=\"day\"\\|\"month\"\\|\"year\"`. |\n| `field-label` | The small visible per-field text label (\"Day\"/\"Month\"/\"Year\"). |\n| `fields` | The row wrapping the three field blocks. |\n| `fieldset` | The `<fieldset>` grouping the three fields. |\n| `form-control` | The outer wrapper around legend, fieldset, hint, and error. |\n| `hint` | The hint message. |\n| `legend` | The `<legend>` element. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-known-date-field-padding-block` (default: `var(--lr-space-s)`) — Block padding of each `field-input`, auto-swapped per `size`.\n- `--lr-known-date-field-padding-inline` (default: `var(--lr-space-s)`) — Inline padding of each `field-input`, auto-swapped per `size`.\n- `--lr-known-date-field-font-size` (default: `var(--lr-font-size-md-sm)`) — Font size of each `field-input`, auto-swapped per `size`.\n- `--lr-known-date-field-min-height` (default: `var(--lr-size-2-5rem)`) — Minimum block size of each `field-input`, auto-swapped per `size` (`xs`→`1.5rem`, `s`→`1.875rem`, `l`→`3rem`, `xl`→`3.5rem`) -- matches `lr-input`'s/`lr-date-input`'s own min-height scale, so a birthdate field sitting in a form row next to those controls renders at the same height. At `xs`/`s`/`m` the floor now exceeds the field's own content height and actively pins the rendered box; at `l`/`xl` the content height already exceeds the floor, so those two tiers are unaffected.\n- `--lr-known-date-field-height` — Exact block size of each `field-input`. Undeclared by default, so the field grows to fit its content, floored by `--lr-known-date-field-min-height`. Set it to pin a fixed height.\n- `--lr-known-date-field-gap` (default: `var(--lr-space-s)`) — Gap between the three field blocks.\n- `--lr-known-date-day-field-width` (default: `var(--lr-size-3-5em)`) — Inline size of the day field.\n- `--lr-known-date-month-field-width` (default: `var(--lr-size-3-5em)`) — Inline size of the month field.\n- `--lr-known-date-year-field-width` (default: `var(--lr-size-5em)`) — Inline size of the year field.\n- `--lr-known-date-invalid-border-color` (default: `var(--lr-color-danger)`) — Border color of each `field-input` while `:host([data-invalid])` is set."
|
|
7950
8373
|
},
|
|
7951
8374
|
"attributes": [
|
|
7952
8375
|
{
|
|
@@ -8177,6 +8600,13 @@
|
|
|
8177
8600
|
"value": "Type: `boolean` \nDefault: `true`"
|
|
8178
8601
|
}
|
|
8179
8602
|
},
|
|
8603
|
+
{
|
|
8604
|
+
"name": "data-labels",
|
|
8605
|
+
"description": {
|
|
8606
|
+
"kind": "markdown",
|
|
8607
|
+
"value": "Draws each data point's value on the chart via the optional\n`chartjs-plugin-datalabels` peer. Unset (the default) leaves labels off for\nthis chart; the peer is attached only to instances that opt in, and\n`buildConfig()` keeps its per-chart options disabled until this is set. The\nscreen-reader equivalent is the always-present data table (see\n`show-data-table`); labels are a purely visual, canvas-only addition.\n\nType: `boolean` \nDefault: `false`"
|
|
8608
|
+
}
|
|
8609
|
+
},
|
|
8180
8610
|
{
|
|
8181
8611
|
"name": "height",
|
|
8182
8612
|
"description": {
|
|
@@ -8219,6 +8649,13 @@
|
|
|
8219
8649
|
"value": "Makes the generated data table visible; it remains screen-reader available when false.\n\nType: `boolean` \nDefault: `false`"
|
|
8220
8650
|
}
|
|
8221
8651
|
},
|
|
8652
|
+
{
|
|
8653
|
+
"name": "stack-totals",
|
|
8654
|
+
"description": {
|
|
8655
|
+
"kind": "markdown",
|
|
8656
|
+
"value": "When the chart is `stacked` (bar/line only), draws the per-category stack\ntotal above each stack, via the same optional `chartjs-plugin-datalabels`\npeer as `data-labels`. Null/undefined points are skipped; a category whose\nevery value is null shows no total. Unset (the default) draws nothing.\n\nType: `boolean` \nDefault: `false`"
|
|
8657
|
+
}
|
|
8658
|
+
},
|
|
8222
8659
|
{
|
|
8223
8660
|
"name": "stacked",
|
|
8224
8661
|
"description": {
|
|
@@ -8267,7 +8704,7 @@
|
|
|
8267
8704
|
"name": "lr-lite-chart",
|
|
8268
8705
|
"description": {
|
|
8269
8706
|
"kind": "markdown",
|
|
8270
|
-
"value": "`<lr-lite-chart>` — a dependency-free bar/line chart, plain SVG/DOM\nrendering with zero peer dependencies (unlike `lr-chart`, which wraps\n`chart.js`). For a project whose architecture forbids a charting\ndependency outright, this covers the common bar/line case: grouped or\nstacked bars, multi-series lines, per-point click, and hover tooltips\n(native SVG `<title>`, no positioning JS needed) — not a full `lr-chart`\nreplacement (no zoom/pan, no pie/doughnut/radar/scatter/bubble types, no\nhorizontal/dual-y-axis, no raw-config passthrough).\n\nBecause this renders real DOM (not canvas), it reuses `lr-chart`'s\n`--lr-chart-*` theme tokens directly via CSS `var()` — no\n`getComputedStyle()`-based re-theming step is needed the way `chart.ts`\nneeds one for its canvas.\n\nBy default (`layout=\"fit\"`) the plot always squeezes to the measured host\nwidth. Three independent, opt-in escape hatches for dense/aligned data:\n`layout=\"scroll\"` (+ `barWidth`) gives every bar a fixed pixel width and\nlets the plot overflow the host horizontally (scrollable) instead of\nsqueezing; `maxLabels` decimates which x-axis text labels render (bars\nalways still render) once there are more categories than that; and\n`barX` lets a consumer hand in its own per-category x-coordinate function\n— e.g. to pixel-align this chart's bars with a sibling `lr-heatmap`'s\ncalendar columns — overriding the internal slot math for both bars and\ntheir labels. All three are additive and no-ops when left unset.\n\nSeven further additive, opt-in properties: `pointText` overrides the\nper-bar/per-point `<title>`/`aria-label` tooltip text (mirrors\n`lr-heatmap`'s `cellText` hook), falling back to the built-in raw-value\ntemplate when unset; `roundedBars` draws bars as a rounded-top path\ninstead of a square-cornered rect; `skipZero` omits a bar entirely (not\njust zero-height) for an exactly-`0` value; `padLeft`/`barGapRatio`\noverride the internal `PAD_LEFT`/`BAR_GROUP_GAP` layout constants; `scale`\n(`type=\"bar\"` only) switches the bar-height mapping from the default\nlinear `niceDomain` fraction to a `Math.sqrt(value / domainMax)`\ncompression (mirroring `lr-heatmap`'s matrix-mode `sqrt` scale) so a\nskewed dataset's smaller bars don't get washed out by one dominant value\n— gridlines/tick labels stay on the linear domain regardless, only the bar\nmarks' own height changes, and `type=\"line\"` ignores `scale` entirely; and\n`hideAxis` suppresses `renderGrid()`'s gridlines/tick labels altogether\n(x-axis category labels, rendered separately, are unaffected). An eighth,\n`legendText`, appends a formatter-supplied string after each series' label in the\nbuilt-in legend row (e.g. a value or share) — no-op while `legend` is unset, matching the same\nfallback-to-unchanged convention as every other hook here;\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `axis-label` | Each axis tick label. |\n| `axis-title` | The x/y axis title text, when set. |\n| `bar` | Each bar rect (type=\"bar\"). Carries `data-selected` when its category index is in `selectedIndex`. |\n| `base` | The host's flex layout wrapper. |\n| `data-list` | A visually hidden list of all plotted data points. |\n| `grid-line` | Each horizontal gridline. |\n| `legend` | The legend row, when `legend` is set. |\n| `legend-item` | Each legend entry. |\n| `legend-swatch` | Each legend entry's color swatch. |\n| `legend-text` | Extra per-item text after the series label, rendered only when `legendText` is set. |\n| `line` | Each series' stroked line path (type=\"line\"). |\n| `live-region` | The current mark announcement for keyboard users. |\n| `point` | Each series' per-point
|
|
8707
|
+
"value": "`<lr-lite-chart>` — a dependency-free bar/line chart, plain SVG/DOM\nrendering with zero peer dependencies (unlike `lr-chart`, which wraps\n`chart.js`). For a project whose architecture forbids a charting\ndependency outright, this covers the common bar/line case: grouped or\nstacked bars, multi-series lines, per-point click, and hover tooltips\n(native SVG `<title>`, no positioning JS needed) — not a full `lr-chart`\nreplacement (no zoom/pan, no pie/doughnut/radar/scatter/bubble types, no\nhorizontal/dual-y-axis, no raw-config passthrough).\n\nBecause this renders real DOM (not canvas), it reuses `lr-chart`'s\n`--lr-chart-*` theme tokens directly via CSS `var()` — no\n`getComputedStyle()`-based re-theming step is needed the way `chart.ts`\nneeds one for its canvas.\n\nBy default (`layout=\"fit\"`) the plot always squeezes to the measured host\nwidth. Three independent, opt-in escape hatches for dense/aligned data:\n`layout=\"scroll\"` (+ `barWidth`) gives every bar a fixed pixel width and\nlets the plot overflow the host horizontally (scrollable) instead of\nsqueezing; `maxLabels` decimates which x-axis text labels render (bars\nalways still render) once there are more categories than that; and\n`barX` lets a consumer hand in its own per-category x-coordinate function\n— e.g. to pixel-align this chart's bars with a sibling `lr-heatmap`'s\ncalendar columns — overriding the internal slot math for both bars and\ntheir labels. All three are additive and no-ops when left unset.\n\nSeven further additive, opt-in properties: `pointText` overrides the\nper-bar/per-point `<title>`/`aria-label` tooltip text (mirrors\n`lr-heatmap`'s `cellText` hook), falling back to the built-in raw-value\ntemplate when unset; `roundedBars` draws bars as a rounded-top path\ninstead of a square-cornered rect; `skipZero` omits a bar entirely (not\njust zero-height) for an exactly-`0` value; `padLeft`/`barGapRatio`\noverride the internal `PAD_LEFT`/`BAR_GROUP_GAP` layout constants; `scale`\n(`type=\"bar\"` only) switches the bar-height mapping from the default\nlinear `niceDomain` fraction to a `Math.sqrt(value / domainMax)`\ncompression (mirroring `lr-heatmap`'s matrix-mode `sqrt` scale) so a\nskewed dataset's smaller bars don't get washed out by one dominant value\n— gridlines/tick labels stay on the linear domain regardless, only the bar\nmarks' own height changes, and `type=\"line\"` ignores `scale` entirely; and\n`hideAxis` suppresses `renderGrid()`'s gridlines/tick labels altogether\n(x-axis category labels, rendered separately, are unaffected). An eighth,\n`legendText`, appends a formatter-supplied string after each series' label in the\nbuilt-in legend row (e.g. a value or share) — no-op while `legend` is unset, matching the same\nfallback-to-unchanged convention as every other hook here;\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `axis-label` | Each axis tick label. |\n| `axis-title` | The x/y axis title text, when set. |\n| `bar` | Each bar rect (type=\"bar\"). Carries `data-selected` and `aria-pressed=\"true\"` when its category index is in `selectedIndex`. |\n| `base` | The host's flex layout wrapper. |\n| `data-list` | A visually hidden list of all plotted data points (single-series only). |\n| `data-table` | A visually hidden category×series data table, rendered instead of `data-list` when there is more than one dataset so a screen-reader user hears series grouping rather than one flattened N×M sequence. |\n| `grid-line` | Each horizontal gridline. |\n| `legend` | The legend row, when `legend` is set. |\n| `legend-item` | Each legend entry. |\n| `legend-swatch` | Each legend entry's color swatch. |\n| `legend-text` | Extra per-item text after the series label, rendered only when `legendText` is set. |\n| `line` | Each series' stroked line path (type=\"line\"). |\n| `live-region` | The current mark announcement for keyboard users. |\n| `point` | Each series' per-point keyboard target (type=\"line\"). Carries `data-selected` and explicit `aria-pressed` state. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-lite-chart-selected-outline-color` (default: `var(--lr-color-brand)`) — Stroke for a bar/point whose category index is in `selectedIndex`."
|
|
8271
8708
|
},
|
|
8272
8709
|
"attributes": [
|
|
8273
8710
|
{
|
|
@@ -8439,7 +8876,7 @@
|
|
|
8439
8876
|
"name": "lr-locale-picker",
|
|
8440
8877
|
"description": {
|
|
8441
8878
|
"kind": "markdown",
|
|
8442
|
-
"value": "`<lr-locale-picker>` — a closed-list locale switcher over the library's own locale registry.\n\nWith `locales` left unset (the default), the offered rows are exactly\n`getRegisteredLyraLocales()` — every locale with strings registered via `registerLyraLocale()`,\nplus `'en'` (always available through the library's built-in English fallback) — kept live via\n`subscribeLyraLocaleRegistry()` so a locale registered after mount (e.g. a lazily-loaded\ntranslation pack) appears without a manual refresh. Passing an explicit `locales` array\noverrides the auto-discovered list entirely: a curated subset, a custom order, custom labels,\nor a locale the host wants to offer before its strings are registered.\n\n`value` is the *committed* selection (form-submitted, drives `lr-change`) and starts `''`.\nWhile unset, the trigger displays `effectiveLocale` (the same ancestor-`lang`/registry\nresolution every other component already uses) as a live preview — but that preview is never a\ncommitment: `checkValidity()`/`required` are governed by the real `value`, which stays `''`\nuntil the host sets it or the user actually picks a row. This mirrors a native `<select>`\nrendering its first option's text without that being a committed selection.\n\nBuilt directly on the shared trigger-button/`aria-activedescendant` listbox technique\n`<lr-select>` uses (not composed from it) — a plain closed list, no filter/free-text mode; a\nlocale catalog is realistically dozens of rows, not thousands, so `<lr-combobox>`'s filterable\nmodel would be more surface than the job needs.\n\nSelecting a row sets `value` and emits a cancelable `lr-change` — if a listener doesn't call\n`event.preventDefault()`, the component applies the pick itself via `setLyraLocale()`. A host\nthat wants to intercept the pick (e.g. persist it to a profile first) calls\n`event.preventDefault()`; `value` still updates so the trigger reflects the pick, but the\npage-level locale is untouched until the host calls `setLyraLocale()` itself.\n\nDoes not touch `document.documentElement.lang`/`dir` — applying a picked locale's writing\ndirection to the page is left to the host, which already has everything it needs from\n`lr-change`'s `value` to do that itself.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| `error` | Custom error content. |\n| `hint` | Custom hint content. |\n| `label` | Custom label content. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `error` | The error message. |\n| `expand-icon` | The dropdown indicator. |\n| `form-control` | The outer wrapper around label, trigger, listbox, error and hint. |\n| `form-control-label` | The `<label>` element (only rendered — and only contributes to the accessible name — once `label` is non-empty). |\n| `hint` | The hint message. |\n| `listbox` | The options popover. |\n| `option` | An option row. |\n| `option-flag` | The row's leading `<lr-flag>` (present only while `showFlags` is on). |\n| `option-label` | An option row's label wrapper (native name + tag). |\n| `option-tag` | An option row's secondary line — the raw BCP-47 tag. |\n| `trigger` | The trigger button (positioning anchor). |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-locale-picker-trigger-padding` — Trigger padding shorthand, scaled by `size`.\n- `--lr-locale-picker-trigger-min-height` — Trigger block-size floor, scaled by `size`.\n- `--lr-locale-picker-trigger-height` — Exact trigger height. Unset by default (a floor only via `-trigger-min-height`); set a length to both floor and cap the trigger, e.g. to pixel-match a sibling field in the same toolbar row.\n- `--lr-locale-picker-font-size` — Trigger font size, scaled by `size`.\n- `--lr-locale-picker-expand-size` — Decorative expand-icon box size, scaled by `size`.\n- `--lr-locale-picker-option-active-bg` (default: `var(--lr-color-brand-quiet)`) — Background of a hovered or keyboard-active option row."
|
|
8879
|
+
"value": "`<lr-locale-picker>` — a closed-list locale switcher over the library's own locale registry.\n\nWith `locales` left unset (the default), the offered rows are exactly\n`getRegisteredLyraLocales()` — every locale with strings registered via `registerLyraLocale()`,\nplus `'en'` (always available through the library's built-in English fallback) — kept live via\n`subscribeLyraLocaleRegistry()` so a locale registered after mount (e.g. a lazily-loaded\ntranslation pack) appears without a manual refresh. Passing an explicit `locales` array\noverrides the auto-discovered list entirely: a curated subset, a custom order, custom labels,\nor a locale the host wants to offer before its strings are registered.\n\n`value` is the *committed* selection (form-submitted, drives `lr-change`) and starts `''`.\nWhile unset, the trigger displays `effectiveLocale` (the same ancestor-`lang`/registry\nresolution every other component already uses) as a live preview — but that preview is never a\ncommitment: `checkValidity()`/`required` are governed by the real `value`, which stays `''`\nuntil the host sets it or the user actually picks a row. This mirrors a native `<select>`\nrendering its first option's text without that being a committed selection.\n\nBuilt directly on the shared trigger-button/`aria-activedescendant` listbox technique\n`<lr-select>` uses (not composed from it) — a plain closed list, no filter/free-text mode; a\nlocale catalog is realistically dozens of rows, not thousands, so `<lr-combobox>`'s filterable\nmodel would be more surface than the job needs.\n\nSelecting a row sets `value` and emits a cancelable `lr-change` — if a listener doesn't call\n`event.preventDefault()`, the component applies the pick itself via `setLyraLocale()`. A host\nthat wants to intercept the pick (e.g. persist it to a profile first) calls\n`event.preventDefault()`; `value` still updates so the trigger reflects the pick, but the\npage-level locale is untouched until the host calls `setLyraLocale()` itself.\n\nDoes not touch `document.documentElement.lang`/`dir` — applying a picked locale's writing\ndirection to the page is left to the host, which already has everything it needs from\n`lr-change`'s `value` to do that itself.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| `error` | Custom error content. |\n| `hint` | Custom hint content. |\n| `label` | Custom label content. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `error` | The error message. |\n| `expand-icon` | The dropdown indicator. |\n| `form-control` | The outer wrapper around label, trigger, listbox, error and hint. |\n| `form-control-label` | The `<label>` element (only rendered — and only contributes to the accessible name — once `label` is non-empty). |\n| `hint` | The hint message. |\n| `listbox` | The options popover. |\n| `option` | An option row. |\n| `option-flag` | The row's leading `<lr-flag>` (present only while `showFlags` is on). |\n| `option-label` | An option row's label wrapper (native name + tag). |\n| `option-tag` | An option row's secondary line — the raw BCP-47 tag. |\n| `trigger` | The trigger button (positioning anchor). |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-locale-picker-trigger-padding` — Trigger padding shorthand, scaled by `size`.\n- `--lr-locale-picker-trigger-min-height` — Trigger block-size floor, scaled by `size`.\n- `--lr-locale-picker-trigger-height` — Exact trigger height. Unset by default (a floor only via `-trigger-min-height`); set a length to both floor and cap the trigger, e.g. to pixel-match a sibling field in the same toolbar row.\n- `--lr-locale-picker-font-size` — Trigger font size, scaled by `size`.\n- `--lr-locale-picker-expand-size` — Decorative expand-icon box size, scaled by `size`.\n- `--lr-locale-picker-gap` (default: `var(--lr-space-xs)`) — Trigger and option child gap.\n- `--lr-locale-picker-radius` (default: `var(--lr-radius)`) — Trigger/listbox/option corner radius.\n- `--lr-locale-picker-trigger-hover-bg` (default: `var(--lr-color-brand-quiet)`) — Trigger hover background.\n- `--lr-locale-picker-open-border-color` (default: `var(--lr-color-brand)`) — Open trigger border color.\n- `--lr-locale-picker-option-selected-border-color` (default: `var(--lr-color-brand)`) — Selected option border.\n- `--lr-locale-picker-option-selected-color` (default: `var(--lr-color-brand)`) — Selected option text.\n- `--lr-locale-picker-option-active-bg` (default: `var(--lr-color-brand-quiet)`) — Background of a hovered or keyboard-active option row."
|
|
8443
8880
|
},
|
|
8444
8881
|
"attributes": [
|
|
8445
8882
|
{
|
|
@@ -8525,7 +8962,7 @@
|
|
|
8525
8962
|
"name": "lr-map",
|
|
8526
8963
|
"description": {
|
|
8527
8964
|
"kind": "markdown",
|
|
8528
|
-
"value": "`<lr-map>` — a maplibre-gl wrapper with a declarative legend, choropleth\nGeoJSON layer, markers, and additive `dataLayers` GeoJSON overlays\n(arbitrary shapes rendered as a source plus fill/line/circle layers,\nindependent of `choropleth`'s field/stops color-interpolation), plus a raw\n`map` escape hatch. Requires the optional peer dep `maplibre-gl`\n(consumers also import its CSS once).\n\nThe underlying `maplibregl.Map` — and the WebGL context it opens — isn't\nconstructed until this element is first visible in the viewport (tracked\nvia `IntersectionObserver`), even once the `maplibre-gl` peer dependency\nhas finished loading. Browsers hard-cap concurrent WebGL contexts per\npage, so a grid/dashboard of many `<lr-map>` instances only constructs\nthe ones actually on-screen instead of racing to exhaust that budget the\ninstant each one mounts. `map` stays `undefined` (and `lr-map-load`\ndoesn't fire) until construction actually happens.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The map wrapper. |\n| `container` | The maplibre container. |\n| `error` | `role=\"alert\"` message shown instead of `container` if the optional `maplibre-gl` peer dependency fails to load (e.g. not installed). ⚠️ The default `mapStyle` (when unset) uses OpenStreetMap's demo tile server, which is not suitable for production traffic — see the `DEFAULT_STYLE` doc comment above. Always pass an explicit `mapStyle` in production. |\n| `legend` | The map legend. |\n| `legend-swatch` | A legend color swatch. |"
|
|
8965
|
+
"value": "`<lr-map>` — a maplibre-gl wrapper with a declarative legend, choropleth\nGeoJSON layer, markers, and additive `dataLayers` GeoJSON overlays\n(arbitrary shapes rendered as a source plus fill/line/circle layers,\nindependent of `choropleth`'s field/stops color-interpolation), plus a raw\n`map` escape hatch. Requires the optional peer dep `maplibre-gl`\n(consumers also import its CSS and configure its module-worker URL once).\nMapLibre v6 is ESM-only and requires WebGL2.\n\nThe underlying `maplibregl.Map` — and the WebGL context it opens — isn't\nconstructed until this element is first visible in the viewport (tracked\nvia `IntersectionObserver`), even once the `maplibre-gl` peer dependency\nhas finished loading. Browsers hard-cap concurrent WebGL contexts per\npage, so a grid/dashboard of many `<lr-map>` instances only constructs\nthe ones actually on-screen instead of racing to exhaust that budget the\ninstant each one mounts. `map` stays `undefined` (and `lr-map-load`\ndoesn't fire) until construction actually happens.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The map wrapper. |\n| `container` | The maplibre container. |\n| `error` | `role=\"alert\"` message shown instead of `container` if the optional `maplibre-gl` peer dependency fails to load (e.g. not installed). ⚠️ The default `mapStyle` (when unset) uses OpenStreetMap's demo tile server, which is not suitable for production traffic — see the `DEFAULT_STYLE` doc comment above. Always pass an explicit `mapStyle` in production. |\n| `legend` | The map legend. |\n| `legend-swatch` | A legend color swatch. |"
|
|
8529
8966
|
},
|
|
8530
8967
|
"attributes": [
|
|
8531
8968
|
{
|
|
@@ -8562,7 +8999,7 @@
|
|
|
8562
8999
|
"name": "lr-markdown",
|
|
8563
9000
|
"description": {
|
|
8564
9001
|
"kind": "markdown",
|
|
8565
|
-
"value": "`<lr-markdown>` — sanitized Markdown-to-HTML rendering (GFM tables,\nfenced code blocks, links, blockquotes) built on the optional peer\ndependencies `marked` (parsing) and `dompurify` (sanitizing), both\nlazy-loaded via `markdown-loader.ts` on first connect.\n\nRendering never ships unsanitized or broken markup silently:\n- If `marked` fails to load, or throws while parsing malformed input, the\n component falls back to plain text (`white-space: pre-wrap`, no HTML\n parsing at all) and fires `lr-render-error`.\n- If `sanitize` is `true` (the default) and `dompurify` fails to load, the\n component *also* falls back to plain text + `lr-render-error` — it\n never renders marked's raw HTML output when sanitization was requested\n (or defaulted to) but is unavailable, even though `marked` itself loaded\n fine.\n- If `sanitize` is explicitly `false`, marked's raw output renders as-is\n regardless of whether `dompurify` is installed — the consumer opted out\n of sanitization, so `dompurify`'s absence is irrelevant to that path.\n\nThat same plain-text fallback rendering (`data-fallback` on the `content`\npart) is also, unconditionally and by default, a brief *transient* state on\nevery connect, not just a failure path: `connectedCallback()`'s dynamic\n`import()` of `marked`/`dompurify` (see `markdown-loader.ts`) is\nasynchronous, so the very first paint of any `<lr-markdown>` on a page\nshows plain text for at least one microtask — even when both peers are\nalready installed and load without error — until that import resolves and\na second render replaces it with the real Markdown output. Set\n`eager-load` to skip that window once the shared dependency cache is\nalready warm; see that property's doc for exactly what \"warm\" requires.\n\n`heading`/`code`/`blockquote`/`table`/`link`/`image` tokens are rendered\nthrough a `marked` renderer override that injects `part=\"...\"` attributes\ndirectly into the produced HTML — a single pass, not a second DOM walk\nafter insertion.\n\nFenced code blocks are syntax-highlighted via the same optional `shiki` peer `<lr-code-block>`\nuses (`highlightCode`, default `true` — a pure upgrade gated by whether `shiki` is installed at\nall, not a separate opt-in). `languages`/`languagesOnly` mirror `<lr-code-block>`'s own\nfine-grained bundle-size controls. The very first render of any content is always plain\n(identical to today's output); highlighting arrives as an asynchronous upgrade one render later,\nonce shiki resolves. No highlighting is attempted while `streaming` is `true` — it applies once a\nstream settles, so there is no added per-chunk cost while content is still arriving.\n\nWhen `heading-anchors` is set, every rendered heading's slug (computed via the shared\nGitHub-slugger-style `Slugger`) is stamped as its `id`; `getHeadingTree()` computes that same\noutline on every parse regardless of `heading-anchors`, so a host can build a table of contents\neven while ids aren't in the DOM yet. `scrollToAnchor()` (from the adopted `DocumentAnchorTarget`\nmixin) resolves `fragment` anchors against that outline and `text-quote` anchors via\n`internal/text-quote.ts`'s shared scope/resolve helpers; `highlights` re-resolve by quote after\nevery render (never by node identity), so a highlight painted before a `streaming` update\nfinishes still finds its quote once the matching text arrives. Highlight painting uses\n`internal/text-highlights.ts`'s `acquireHighlightHandle()` -- the CSS Custom Highlight API where\nthe browser supports it (no DOM mutation at all), a `<mark>`-wrap fallback otherwise.\n\n`math` renders `$...$`/`$$...$$` TeX as MathML via the optional `katex` peer's\n`renderToString(tex, { output: 'mathml' })` -- MathML Core renders natively and accessibly in\nevergreen browsers with no extra stylesheet or webfont needing to cross the shadow boundary. A\nmissing `katex` peer renders the literal, unparsed TeX source (delimiters included) and fires one\n`lr-render-error`.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `blockquote` | Every rendered `<blockquote>`. |\n| `code-block` | Every rendered fenced/indented `<pre>`. |\n| `content` | The wrapper around the rendered (or plain-text fallback) output. |\n| `heading` | Every rendered `<h1>`–`<h6>` (shifted by `heading-offset`). |\n| `img` | Every rendered `<img>`. |\n| `inline-code` | Every rendered inline `<code>` span (backtick spans, not fenced blocks). |\n| `link` | Every rendered `<a>`. |\n| `list` | Every rendered `<ul>`/`<ol>`. |\n| `math` | A rendered inline or block math span (`data-display=\"inline\"\\|\"block\"`). |\n| `paragraph` | Every rendered `<p>`. |\n| `table` | Every rendered `<table>`. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-markdown-font-mono` (default: `var(--lr-font-mono)`) — Monospace family for rendered `<code>` inside `content`.\n- `--lr-code-block-tab-size` (default: `2`) — Tab width for a rendered fenced/indented `code-block`. Deliberately the same token (and default) `lr-code-block` and `lr-code-editor` use, so a consumer sets one tab width for every code surface — it is declared here rather than inherited because `lr-code-block` is a sibling element, not an ancestor. A markdown code block wraps (`white-space: pre-wrap`) while `lr-code-block` does not, so the same value can render differently on a wrapped line, where tab stops restart."
|
|
9002
|
+
"value": "`<lr-markdown>` — sanitized Markdown-to-HTML rendering (GFM tables,\nfenced code blocks, links, blockquotes) built on the optional peer\ndependencies `marked` (parsing) and `dompurify` (sanitizing), both\nlazy-loaded via `markdown-loader.ts` on first connect.\n\nRendering never ships unsanitized or broken markup silently:\n- If `marked` fails to load, or throws while parsing malformed input, the\n component falls back to plain text (`white-space: pre-wrap`, no HTML\n parsing at all) and fires `lr-render-error`.\n- If `sanitize` is `true` (the default) and `dompurify` fails to load, the\n component *also* falls back to plain text + `lr-render-error` — it\n never renders marked's raw HTML output when sanitization was requested\n (or defaulted to) but is unavailable, even though `marked` itself loaded\n fine.\n- If `sanitize` is explicitly `false`, marked's raw output renders as-is\n regardless of whether `dompurify` is installed — the consumer opted out\n of sanitization, so `dompurify`'s absence is irrelevant to that path.\n\nThat same plain-text fallback rendering (`data-fallback` on the `content`\npart) is also, unconditionally and by default, a brief *transient* state on\nevery connect, not just a failure path: `connectedCallback()`'s dynamic\n`import()` of `marked`/`dompurify` (see `markdown-loader.ts`) is\nasynchronous, so the very first paint of any `<lr-markdown>` on a page\nshows plain text for at least one microtask — even when both peers are\nalready installed and load without error — until that import resolves and\na second render replaces it with the real Markdown output. Set\n`eager-load` to skip that window once the shared dependency cache is\nalready warm; see that property's doc for exactly what \"warm\" requires.\n\n`heading`/`code`/`blockquote`/`table`/`link`/`image` tokens are rendered\nthrough a `marked` renderer override that injects `part=\"...\"` attributes\ndirectly into the produced HTML — a single pass, not a second DOM walk\nafter insertion.\n\nFenced code blocks are syntax-highlighted via the same optional `shiki` peer `<lr-code-block>`\nuses (`highlightCode`, default `true` — a pure upgrade gated by whether `shiki` is installed at\nall, not a separate opt-in). `languages`/`languagesOnly` mirror `<lr-code-block>`'s own\nfine-grained bundle-size controls. The very first render of any content is always plain\n(identical to today's output); highlighting arrives as an asynchronous upgrade one render later,\nonce shiki resolves. No highlighting is attempted while `streaming` is `true` — it applies once a\nstream settles, so there is no added per-chunk cost while content is still arriving.\n\nWhen `heading-anchors` is set, every rendered heading's slug (computed via the shared\nGitHub-slugger-style `Slugger`) is stamped as its `id`; `getHeadingTree()` computes that same\noutline on every parse regardless of `heading-anchors`, so a host can build a table of contents\neven while ids aren't in the DOM yet. `scrollToAnchor()` (from the adopted `DocumentAnchorTarget`\nmixin) resolves `fragment` anchors against that outline and `text-quote` anchors via\n`internal/text-quote.ts`'s shared scope/resolve helpers; `highlights` re-resolve by quote after\nevery render (never by node identity), so a highlight painted before a `streaming` update\nfinishes still finds its quote once the matching text arrives. Highlight painting uses\n`internal/text-highlights.ts`'s `acquireHighlightHandle()` -- the CSS Custom Highlight API where\nthe browser supports it (no DOM mutation at all), a `<mark>`-wrap fallback otherwise.\n\n`math` renders `$...$`/`$$...$$` TeX as MathML via the optional `katex` peer's\n`renderToString(tex, { output: 'mathml' })` -- MathML Core renders natively and accessibly in\nevergreen browsers with no extra stylesheet or webfont needing to cross the shadow boundary. A\nmissing `katex` peer renders the literal, unparsed TeX source (delimiters included) and fires one\n`lr-render-error`.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `blockquote` | Every rendered `<blockquote>`. |\n| `code-block` | Every rendered fenced/indented `<pre>`. |\n| `content` | The wrapper around the rendered (or plain-text fallback) output. |\n| `heading` | Every rendered `<h1>`–`<h6>` (shifted by `heading-offset`). |\n| `img` | Every rendered `<img>`. |\n| `inline-code` | Every rendered inline `<code>` span (backtick spans, not fenced blocks). |\n| `link` | Every rendered `<a>`. |\n| `list` | Every rendered `<ul>`/`<ol>`. |\n| `math` | A rendered inline or block math span (`data-display=\"inline\"\\|\"block\"`). |\n| `paragraph` | Every rendered `<p>`. |\n| `table` | Every rendered `<table>`. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-markdown-font-mono` (default: `var(--lr-font-mono)`) — Monospace family for rendered `<code>` inside `content`.\n- `--lr-markdown-highlight-accent-bg` (default: `var(--lr-color-brand-quiet)`) — Accent highlight fill.\n- `--lr-markdown-highlight-success-bg` (default: `var(--lr-color-success-quiet)`) — Success highlight fill.\n- `--lr-markdown-highlight-warning-bg` (default: `var(--lr-color-warning-quiet)`) — Warning highlight fill.\n- `--lr-markdown-highlight-danger-bg` (default: `var(--lr-color-danger-quiet)`) — Danger highlight fill.\n- `--lr-markdown-highlight-neutral-bg` (default: `var(--lr-color-surface)`) — Neutral highlight fill.\n- `--lr-markdown-highlight-active-bg` (default: `var(--lr-color-brand-quiet)`) — Active highlight fill.\n- `--lr-markdown-highlight-active-outline-color` (default: `var(--lr-color-brand)`) — Active highlight outline.\n- `--lr-code-block-tab-size` (default: `2`) — Tab width for a rendered fenced/indented `code-block`. Deliberately the same token (and default) `lr-code-block` and `lr-code-editor` use, so a consumer sets one tab width for every code surface — it is declared here rather than inherited because `lr-code-block` is a sibling element, not an ancestor. A markdown code block wraps (`white-space: pre-wrap`) while `lr-code-block` does not, so the same value can render differently on a wrapped line, where tab stops restart."
|
|
8566
9003
|
},
|
|
8567
9004
|
"attributes": [
|
|
8568
9005
|
{
|
|
@@ -8669,7 +9106,7 @@
|
|
|
8669
9106
|
"name": "lr-markdown-core",
|
|
8670
9107
|
"description": {
|
|
8671
9108
|
"kind": "markdown",
|
|
8672
|
-
"value": "`<lr-markdown-core>` — a build-lean variant of `<lr-markdown>` for a consumer whose\n`languages` map already covers every language it will ever render. Every other capability (GFM\ntables, fenced code blocks, links, blockquotes, heading anchors, text-quote highlights, math) is\nidentical to `<lr-markdown>` -- only fenced-code-block highlighting differs: this component's\nown module never textually contains a call to (or import of) `loadShikiHighlighter` (the\n~200-language default dynamic-import table `<lr-markdown>` calls unconditionally unless its\n*runtime* `languagesOnly` flag is `true` -- a flag on that same module a bundler can't prove\nalways-true, so the unconditional call stays in the build output regardless). A consumer\nimporting this entry point instead of `markdown.js` gets a genuinely shiki-full-table-free\nbuild. A fenced block whose language isn't a key in `languages` always renders the plain-text\nfallback -- there is no default/full-table highlighter here to fall back to, mirroring\n`<lr-code-block-core>`'s identical contract for the sibling component.\n\nBuilt on the optional peer dependencies `marked` (parsing) and `dompurify` (sanitizing), both\nlazy-loaded via `markdown-loader.ts` on first connect.\n\nRendering never ships unsanitized or broken markup silently:\n- If `marked` fails to load, or throws while parsing malformed input, the\n component falls back to plain text (`white-space: pre-wrap`, no HTML\n parsing at all) and fires `lr-render-error`.\n- If `sanitize` is `true` (the default) and `dompurify` fails to load, the\n component *also* falls back to plain text + `lr-render-error` — it\n never renders marked's raw HTML output when sanitization was requested\n (or defaulted to) but is unavailable, even though `marked` itself loaded\n fine.\n- If `sanitize` is explicitly `false`, marked's raw output renders as-is\n regardless of whether `dompurify` is installed — the consumer opted out\n of sanitization, so `dompurify`'s absence is irrelevant to that path.\n\nThat same plain-text fallback rendering (`data-fallback` on the `content`\npart) is also, unconditionally and by default, a brief *transient* state on\nevery connect, not just a failure path: `connectedCallback()`'s dynamic\n`import()` of `marked`/`dompurify` (see `markdown-loader.ts`) is\nasynchronous, so the very first paint of any `<lr-markdown>` on a page\nshows plain text for at least one microtask — even when both peers are\nalready installed and load without error — until that import resolves and\na second render replaces it with the real Markdown output. Set\n`eager-load` to skip that window once the shared dependency cache is\nalready warm; see that property's doc for exactly what \"warm\" requires.\n\n`heading`/`code`/`blockquote`/`table`/`link`/`image` tokens are rendered\nthrough a `marked` renderer override that injects `part=\"...\"` attributes\ndirectly into the produced HTML — a single pass, not a second DOM walk\nafter insertion.\n\nFenced code blocks are syntax-highlighted via the same fine-grained `shiki/core` recipe\n`<lr-code-block-core>` uses (`highlightCode`, default `true` — gated by whether a fenced\nblock's language is a key in `languages`, since there is no default highlighter here to gate on\n\"is shiki installed at all\"). The very first render of any content is always plain (identical to\n`<lr-markdown>`'s own output); highlighting arrives as an asynchronous upgrade one render\nlater, once the fine-grained highlighter resolves. No highlighting is attempted while\n`streaming` is `true` — it applies once a stream settles, so there is no added per-chunk cost\nwhile content is still arriving.\n\nWhen `heading-anchors` is set, every rendered heading's slug (computed via the shared\nGitHub-slugger-style `Slugger`) is stamped as its `id`; `getHeadingTree()` computes that same\noutline on every parse regardless of `heading-anchors`, so a host can build a table of contents\neven while ids aren't in the DOM yet. `scrollToAnchor()` (from the adopted `DocumentAnchorTarget`\nmixin) resolves `fragment` anchors against that outline and `text-quote` anchors via\n`internal/text-quote.ts`'s shared scope/resolve helpers; `highlights` re-resolve by quote after\nevery render (never by node identity), so a highlight painted before a `streaming` update\nfinishes still finds its quote once the matching text arrives. Highlight painting uses\n`internal/text-highlights.ts`'s `acquireHighlightHandle()` -- the CSS Custom Highlight API where\nthe browser supports it (no DOM mutation at all), a `<mark>`-wrap fallback otherwise.\n\n`math` renders `$...$`/`$$...$$` TeX as MathML via the optional `katex` peer's\n`renderToString(tex, { output: 'mathml' })` -- MathML Core renders natively and accessibly in\nevergreen browsers with no extra stylesheet or webfont needing to cross the shadow boundary. A\nmissing `katex` peer renders the literal, unparsed TeX source (delimiters included) and fires one\n`lr-render-error`.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `blockquote` | Every rendered `<blockquote>`. |\n| `code-block` | Every rendered fenced/indented `<pre>`. |\n| `content` | The wrapper around the rendered (or plain-text fallback) output. |\n| `heading` | Every rendered `<h1>`–`<h6>` (shifted by `heading-offset`). |\n| `img` | Every rendered `<img>`. |\n| `inline-code` | Every rendered inline `<code>` span (backtick spans, not fenced blocks). |\n| `link` | Every rendered `<a>`. |\n| `list` | Every rendered `<ul>`/`<ol>`. |\n| `math` | A rendered inline or block math span (`data-display=\"inline\"\\|\"block\"`). |\n| `paragraph` | Every rendered `<p>`. |\n| `table` | Every rendered `<table>`. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-code-block-tab-size` (default: `2`) — Tab width for a rendered fenced/indented `code-block`. Deliberately the same token (and default) `lr-code-block` and `lr-code-editor` use, so a consumer sets one tab width for every code surface — it is declared here rather than inherited because `lr-code-block` is a sibling element, not an ancestor. A markdown code block wraps (`white-space: pre-wrap`) while `lr-code-block` does not, so the same value can render differently on a wrapped line, where tab stops restart."
|
|
9109
|
+
"value": "`<lr-markdown-core>` — a build-lean variant of `<lr-markdown>` for a consumer whose\n`languages` map already covers every language it will ever render. Every other capability (GFM\ntables, fenced code blocks, links, blockquotes, heading anchors, text-quote highlights, math) is\nidentical to `<lr-markdown>` -- only fenced-code-block highlighting differs: this component's\nown module never textually contains a call to (or import of) `loadShikiHighlighter` (the\n~200-language default dynamic-import table `<lr-markdown>` calls unconditionally unless its\n*runtime* `languagesOnly` flag is `true` -- a flag on that same module a bundler can't prove\nalways-true, so the unconditional call stays in the build output regardless). A consumer\nimporting this entry point instead of `markdown.js` gets a genuinely shiki-full-table-free\nbuild. A fenced block whose language isn't a key in `languages` always renders the plain-text\nfallback -- there is no default/full-table highlighter here to fall back to, mirroring\n`<lr-code-block-core>`'s identical contract for the sibling component.\n\nBuilt on the optional peer dependencies `marked` (parsing) and `dompurify` (sanitizing), both\nlazy-loaded via `markdown-loader.ts` on first connect.\n\nRendering never ships unsanitized or broken markup silently:\n- If `marked` fails to load, or throws while parsing malformed input, the\n component falls back to plain text (`white-space: pre-wrap`, no HTML\n parsing at all) and fires `lr-render-error`.\n- If `sanitize` is `true` (the default) and `dompurify` fails to load, the\n component *also* falls back to plain text + `lr-render-error` — it\n never renders marked's raw HTML output when sanitization was requested\n (or defaulted to) but is unavailable, even though `marked` itself loaded\n fine.\n- If `sanitize` is explicitly `false`, marked's raw output renders as-is\n regardless of whether `dompurify` is installed — the consumer opted out\n of sanitization, so `dompurify`'s absence is irrelevant to that path.\n\nThat same plain-text fallback rendering (`data-fallback` on the `content`\npart) is also, unconditionally and by default, a brief *transient* state on\nevery connect, not just a failure path: `connectedCallback()`'s dynamic\n`import()` of `marked`/`dompurify` (see `markdown-loader.ts`) is\nasynchronous, so the very first paint of any `<lr-markdown>` on a page\nshows plain text for at least one microtask — even when both peers are\nalready installed and load without error — until that import resolves and\na second render replaces it with the real Markdown output. Set\n`eager-load` to skip that window once the shared dependency cache is\nalready warm; see that property's doc for exactly what \"warm\" requires.\n\n`heading`/`code`/`blockquote`/`table`/`link`/`image` tokens are rendered\nthrough a `marked` renderer override that injects `part=\"...\"` attributes\ndirectly into the produced HTML — a single pass, not a second DOM walk\nafter insertion.\n\nFenced code blocks are syntax-highlighted via the same fine-grained `shiki/core` recipe\n`<lr-code-block-core>` uses (`highlightCode`, default `true` — gated by whether a fenced\nblock's language is a key in `languages`, since there is no default highlighter here to gate on\n\"is shiki installed at all\"). The very first render of any content is always plain (identical to\n`<lr-markdown>`'s own output); highlighting arrives as an asynchronous upgrade one render\nlater, once the fine-grained highlighter resolves. No highlighting is attempted while\n`streaming` is `true` — it applies once a stream settles, so there is no added per-chunk cost\nwhile content is still arriving.\n\nWhen `heading-anchors` is set, every rendered heading's slug (computed via the shared\nGitHub-slugger-style `Slugger`) is stamped as its `id`; `getHeadingTree()` computes that same\noutline on every parse regardless of `heading-anchors`, so a host can build a table of contents\neven while ids aren't in the DOM yet. `scrollToAnchor()` (from the adopted `DocumentAnchorTarget`\nmixin) resolves `fragment` anchors against that outline and `text-quote` anchors via\n`internal/text-quote.ts`'s shared scope/resolve helpers; `highlights` re-resolve by quote after\nevery render (never by node identity), so a highlight painted before a `streaming` update\nfinishes still finds its quote once the matching text arrives. Highlight painting uses\n`internal/text-highlights.ts`'s `acquireHighlightHandle()` -- the CSS Custom Highlight API where\nthe browser supports it (no DOM mutation at all), a `<mark>`-wrap fallback otherwise.\n\n`math` renders `$...$`/`$$...$$` TeX as MathML via the optional `katex` peer's\n`renderToString(tex, { output: 'mathml' })` -- MathML Core renders natively and accessibly in\nevergreen browsers with no extra stylesheet or webfont needing to cross the shadow boundary. A\nmissing `katex` peer renders the literal, unparsed TeX source (delimiters included) and fires one\n`lr-render-error`.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `blockquote` | Every rendered `<blockquote>`. |\n| `code-block` | Every rendered fenced/indented `<pre>`. |\n| `content` | The wrapper around the rendered (or plain-text fallback) output. |\n| `heading` | Every rendered `<h1>`–`<h6>` (shifted by `heading-offset`). |\n| `img` | Every rendered `<img>`. |\n| `inline-code` | Every rendered inline `<code>` span (backtick spans, not fenced blocks). |\n| `link` | Every rendered `<a>`. |\n| `list` | Every rendered `<ul>`/`<ol>`. |\n| `math` | A rendered inline or block math span (`data-display=\"inline\"\\|\"block\"`). |\n| `paragraph` | Every rendered `<p>`. |\n| `table` | Every rendered `<table>`. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-markdown-highlight-accent-bg` (default: `var(--lr-color-brand-quiet)`) — Accent highlight fill.\n- `--lr-markdown-highlight-success-bg` (default: `var(--lr-color-success-quiet)`) — Success highlight fill.\n- `--lr-markdown-highlight-warning-bg` (default: `var(--lr-color-warning-quiet)`) — Warning highlight fill.\n- `--lr-markdown-highlight-danger-bg` (default: `var(--lr-color-danger-quiet)`) — Danger highlight fill.\n- `--lr-markdown-highlight-neutral-bg` (default: `var(--lr-color-surface)`) — Neutral highlight fill.\n- `--lr-markdown-highlight-active-bg` (default: `var(--lr-color-brand-quiet)`) — Active highlight fill.\n- `--lr-markdown-highlight-active-outline-color` (default: `var(--lr-color-brand)`) — Active highlight outline.\n- `--lr-code-block-tab-size` (default: `2`) — Tab width for a rendered fenced/indented `code-block`. Deliberately the same token (and default) `lr-code-block` and `lr-code-editor` use, so a consumer sets one tab width for every code surface — it is declared here rather than inherited because `lr-code-block` is a sibling element, not an ancestor. A markdown code block wraps (`white-space: pre-wrap`) while `lr-code-block` does not, so the same value can render differently on a wrapped line, where tab stops restart."
|
|
8673
9110
|
},
|
|
8674
9111
|
"attributes": [
|
|
8675
9112
|
{
|
|
@@ -8765,6 +9202,50 @@
|
|
|
8765
9202
|
}
|
|
8766
9203
|
]
|
|
8767
9204
|
},
|
|
9205
|
+
{
|
|
9206
|
+
"name": "lr-mcp-app",
|
|
9207
|
+
"description": {
|
|
9208
|
+
"kind": "markdown",
|
|
9209
|
+
"value": "`<lr-mcp-app>` — hosts an MCP App-style executable UI resource in a uniquely-origin sandbox.\nThe frame can request tools, messages, links, logs, and resizing only through typed events;\nthe component never performs those external actions itself.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The sandbox frame wrapper. |\n| `error` | The invalid-resource error. |\n| `frame` | The sandboxed iframe. |\n| `loading` | The pre-load status. |"
|
|
9210
|
+
},
|
|
9211
|
+
"attributes": [
|
|
9212
|
+
{
|
|
9213
|
+
"name": "aria-label",
|
|
9214
|
+
"description": {
|
|
9215
|
+
"kind": "markdown",
|
|
9216
|
+
"value": "Type: `string | null` \nDefault: `null`"
|
|
9217
|
+
}
|
|
9218
|
+
},
|
|
9219
|
+
{
|
|
9220
|
+
"name": "height",
|
|
9221
|
+
"description": {
|
|
9222
|
+
"kind": "markdown",
|
|
9223
|
+
"value": "Type: `number` \nDefault: `320`"
|
|
9224
|
+
}
|
|
9225
|
+
},
|
|
9226
|
+
{
|
|
9227
|
+
"name": "label",
|
|
9228
|
+
"description": {
|
|
9229
|
+
"kind": "markdown",
|
|
9230
|
+
"value": "Type: `string` \nDefault: `''`"
|
|
9231
|
+
}
|
|
9232
|
+
},
|
|
9233
|
+
{
|
|
9234
|
+
"name": "locale",
|
|
9235
|
+
"description": {
|
|
9236
|
+
"kind": "markdown",
|
|
9237
|
+
"value": "Optional locale override. Otherwise the nearest `locale`/`lang` ancestor is used.\n\nType: `string` \nDefault: `''`"
|
|
9238
|
+
}
|
|
9239
|
+
},
|
|
9240
|
+
{
|
|
9241
|
+
"name": "max-height",
|
|
9242
|
+
"description": {
|
|
9243
|
+
"kind": "markdown",
|
|
9244
|
+
"value": "Type: `number` \nDefault: `800`"
|
|
9245
|
+
}
|
|
9246
|
+
}
|
|
9247
|
+
]
|
|
9248
|
+
},
|
|
8768
9249
|
{
|
|
8769
9250
|
"name": "lr-media-card",
|
|
8770
9251
|
"description": {
|
|
@@ -8864,7 +9345,7 @@
|
|
|
8864
9345
|
"name": "lr-mention-popover",
|
|
8865
9346
|
"description": {
|
|
8866
9347
|
"kind": "markdown",
|
|
8867
|
-
"value": "`<lr-mention-popover>` — a caret-anchored, keyboard-navigable popover for\n`@`-mention and `/`-slash-command autocomplete inside a plain-text\n`<textarea>`/`<input>` the host owns (e.g. `<lr-chat-composer>`'s own\ntextarea, though this component has no dependency on that or any other\nspecific input).
|
|
9348
|
+
"value": "`<lr-mention-popover>` — a caret-anchored, keyboard-navigable popover for\n`@`-mention and `/`-slash-command autocomplete inside a plain-text\n`<textarea>`/`<input>` the host owns (e.g. `<lr-chat-composer>`'s own\ntextarea, though this component has no dependency on that or any other\nspecific input). On platforms that support cross-root ARIA element\nreflection, focus stays in the host input while\n`ariaActiveDescendantElement` conveys the active row. Where the platform\nrejects that reference, the explicit `focusActiveOption()` fallback moves\nreal focus into this component's shadow listbox so focus ownership and\noptions share one tree scope. A string `aria-activedescendant` cannot\nresolve from the host document into this component's shadow root.\n\nIntegration contract (entirely the host's responsibility — this component\nnever inspects the text control's value or listens to it directly):\n1. Detect a mention/command trigger (e.g. `@`/`/` at the start of a word)\n in the host's own `input` handling.\n2. Set `anchor` (the `<textarea>`/`<input>` itself, or any element for\n plain whole-element anchoring — see \"Positioning\" below), `items`, and\n `query` (the text typed since the trigger character), then flip\n `open = true`.\n3. Forward every `keydown` the input receives, while `open`, through\n `handleKeyDown()` — it returns `true` when it consumed the key (so the\n host's own handler should stop, e.g. skip submitting the message on an\n Enter that actually picked a mention) and `false` otherwise.\n4. Set `open = false` whenever the query stops looking like an active\n mention context (a space typed, the trigger character deleted, or focus\n leaving both the input and this popover) — `lr-mention-close` fires\n automatically from that (see below), there is no separate \"tell it to\n close\" call needed.\n5. Call `syncActiveDescendant()` after opening and after every consumed\n navigation key. It uses cross-root ARIA element reflection where the\n platform supports it and never installs a broken string IDREF. When it\n returns `false`, call `focusActiveOption()` after the first consumed\n navigation key. That fallback moves real focus into the shadow listbox,\n where each option and its focus owner share one tree scope; a host blur\n handler must therefore keep the popover open when `relatedTarget` is this\n component. Subsequent navigation is handled by the popover and focus\n returns to `anchor` when it closes.\n\nPositioning: when `anchor` is a plain `<textarea>` or single-line text\n`<input>`, this component measures exactly where the caret currently\npaints (`caretClientRect()`, the standard hidden-mirror-element technique\n— see that function's own doc) and positions against that single point\nwith `internal/positioner.js`'s `place()`, so the popup tracks the caret\nrather than sitting under the whole textarea. Any other `anchor` element\n(or a text control this component fails to measure, e.g. one with\n`display: none`) falls back to `place(anchor, popup)` against the whole\nelement — the same whole-element anchoring `<lr-combobox>`/\n`<lr-select>` use for their own popups. Re-measures on every `anchor`/\n`query` change while open (a keystroke moves the caret, so a fresh `query`\nis the proxy for \"the caret may have moved\"); a caret that moves for a\nreason other than typing (e.g. a mouse click elsewhere in the text while\nthe popover happens to still be open) is not separately tracked — the\nhost can force a re-measure by toggling `open` or reassigning `anchor`.\n\nFiltering happens internally against `items` (mirroring `<lr-combobox>`'s\nfilter-predicate convention via `filter`, rather than requiring the host to\npre-filter): the default predicate is a case-insensitive substring match\nagainst `label`/`description`, overridable via `filter`.\n\nThere is no persisted \"selection\" the way a real listbox has one — a\nmention is either committed (closing the popover) or the popover is\ndismissed with nothing chosen — so `aria-selected=\"true\"` marks whichever\nrow is currently *active* (what Enter/Tab would commit right now), per the\nWAI-ARIA combobox-with-list-autocomplete pattern, rather than tracking a\nseparate persisted value the way `<lr-combobox>`'s own `aria-selected`\ndoes.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `empty` | The \"no matches\" message, shown when `items`/`query` produce zero rows. |\n| `listbox` | The popover's root element (`role=\"listbox\"`). |\n| `option` | A candidate row (`role=\"option\"`). |\n| `option-description` | A row's optional secondary line, when `description` is set. |\n| `option-icon` | A row's leading icon glyph, when `icon` is set. |\n| `option-label` | Wrapper around a row's label/description. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-mention-popover-option-active-bg` (default: `var(--lr-color-brand-quiet)`) — Background of the hovered or `[data-active]` (keyboard-highlighted) suggestion row."
|
|
8868
9349
|
},
|
|
8869
9350
|
"attributes": [
|
|
8870
9351
|
{
|
|
@@ -8908,7 +9389,7 @@
|
|
|
8908
9389
|
"name": "lr-menu",
|
|
8909
9390
|
"description": {
|
|
8910
9391
|
"kind": "markdown",
|
|
8911
|
-
"value": "`<lr-menu>` — an anchored dropdown of `<lr-menu-item>` actions, opened\nfrom a consumer-supplied trigger (typically an icon button). A close, drop-\nin-shaped replacement for reaching outside this library for a third-party\ndropdown to build a gear menu, an avatar menu, or a history row's overflow\nmenu: click the trigger, a positioned menu appears, clicking an item both\nperforms the action *and* closes the menu.\n\n**ARIA pattern — `role=\"menu\"`/`role=\"menuitem\"` with real roving DOM\nfocus, not a listbox.** Two coherent, mutually-exclusive shapes were\navailable here: (a) `role=\"listbox\"`/`role=\"option\"` with\n`aria-activedescendant`, the pattern `<lr-select>`'s trigger-button +\npopup listbox uses, where DOM focus never leaves the trigger; or (b)\n`role=\"menu\"`/`role=\"menuitem\"` with real focus moving between actual\nfocusable rows, the WAI-ARIA \"menu button\" pattern. This picks (b):\n`<lr-menu-item>` rows are real, independently-focusable elements (see\nthat class's own doc), which is the more natural fit for a menu\nspecifically — unlike a listbox's rows, a menu's rows are conventionally\nbutton-/link-shaped, and every well-known native/OS menu (and this\nfamily's own `<lr-tree>`/`<lr-tree-node>` pair, which this component's\nroving-tabindex plumbing directly mirrors) already moves real focus rather\nthan merely a virtual `aria-activedescendant` pointer. `role`/`tabIndex`\nare consistently the menu-button shape throughout — never mixed with\nlistbox/option.\n\nInteraction contract (mirrors the WAI-ARIA APG \"menu button\" pattern):\n- Click the trigger (or Enter/Space on it, via the trigger's own native\n `click` activation) toggles the menu, moving focus to the first\n non-disabled item on open.\n- ArrowDown/ArrowUp on the trigger while closed also open it, focusing the\n first/last non-disabled item respectively.\n- Once open, ArrowDown/ArrowUp move the roving focus among non-disabled\n items (wrapping past either end — the recommended, and more common,\n menu-widget behavior, unlike `<lr-select>`'s clamped listbox nav).\n Home/End jump to the first/last non-disabled item. Enter/Space activate\n the focused item. Escape closes and returns focus to the trigger. A\n printable keypress runs type-ahead: roving focus jumps to the next\n non-disabled item whose text starts with the accumulated buffer, cycling\n from just after the active item (mirrors `<lr-select>`'s identical\n listbox type-ahead). All of the above (except Escape and Tab) only\n respond to keydowns from a real `<lr-menu-item>` target, so a slotted\n non-item control (e.g. a date input) keeps its own full default keyboard\n behavior.\n- Tab never traps focus and never calls `preventDefault()` — the browser's\n own Tab navigation always proceeds untouched. It closes the menu only\n when focus is on its way *out* of the popup: with a focusable in the\n `header`/`footer` region on the far side of the keypress, the menu stays\n open so native Tab can carry focus there instead. With neither region\n filled, Tab closes exactly as it always has. Tabbing past the popup's\n last focusable in either direction closes it too, including from slotted\n non-item content — which previously left the menu open while focus\n walked away.\n- Escape from `header`/`footer` content closes the menu and refocuses the\n trigger unconditionally, mirroring `<lr-popover>`'s handling of arbitrary\n popup content. `closeOnEscapeAnywhere` governs only the *legacy* shape —\n non-item content slotted into the **default** slot — and defaults to\n `false`, so existing consumers keep today's behavior unchanged.\n- A click outside both the trigger and the open popup closes it (mirrors\n `<lr-select>`'s `onDocPointer` exactly) — this does *not* refocus the\n trigger, since the outside click itself already moved focus somewhere\n the user chose; Escape and a committed selection *do* refocus the\n trigger, since those are dismissals with nowhere else for focus to go.\n\n`show(focus?)` and `hide(options?)` are the public imperative pair, for the cases the trigger\ncan't express: a slotted \"Apply\"/\"Done\" button inside the menu, a keyboard shortcut, a parent\nrestoring UI state. `hide({ focusTrigger: true })` is the one that also returns DOM focus to the\ntrigger — use it whenever the interaction that closed the menu hasn't already put focus\nsomewhere the user chose. Writing `open` directly still works and is fully equivalent apart from\nthe focus moves: the roving-tabindex reset is centralized in `updated()`, so `el.open = false`\nnever leaves a stale `tabindex=\"0\"` tab stop on the last active item.\n\nThe trigger element itself is read from the `trigger` slot's assigned
|
|
9392
|
+
"value": "`<lr-menu>` — an anchored dropdown of `<lr-menu-item>` actions, opened\nfrom a consumer-supplied trigger (typically an icon button). A close, drop-\nin-shaped replacement for reaching outside this library for a third-party\ndropdown to build a gear menu, an avatar menu, or a history row's overflow\nmenu: click the trigger, a positioned menu appears, clicking an item both\nperforms the action *and* closes the menu.\n\n**ARIA pattern — `role=\"menu\"`/`role=\"menuitem\"` with real roving DOM\nfocus, not a listbox.** Two coherent, mutually-exclusive shapes were\navailable here: (a) `role=\"listbox\"`/`role=\"option\"` with\n`aria-activedescendant`, the pattern `<lr-select>`'s trigger-button +\npopup listbox uses, where DOM focus never leaves the trigger; or (b)\n`role=\"menu\"`/`role=\"menuitem\"` with real focus moving between actual\nfocusable rows, the WAI-ARIA \"menu button\" pattern. This picks (b):\n`<lr-menu-item>` rows are real, independently-focusable elements (see\nthat class's own doc), which is the more natural fit for a menu\nspecifically — unlike a listbox's rows, a menu's rows are conventionally\nbutton-/link-shaped, and every well-known native/OS menu (and this\nfamily's own `<lr-tree>`/`<lr-tree-node>` pair, which this component's\nroving-tabindex plumbing directly mirrors) already moves real focus rather\nthan merely a virtual `aria-activedescendant` pointer. `role`/`tabIndex`\nare consistently the menu-button shape throughout — never mixed with\nlistbox/option.\n\nInteraction contract (mirrors the WAI-ARIA APG \"menu button\" pattern):\n- Click the trigger (or Enter/Space on it, via the trigger's own native\n `click` activation) toggles the menu, moving focus to the first\n non-disabled item on open.\n- ArrowDown/ArrowUp on the trigger while closed also open it, focusing the\n first/last non-disabled item respectively.\n- Once open, ArrowDown/ArrowUp move the roving focus among non-disabled\n items (wrapping past either end — the recommended, and more common,\n menu-widget behavior, unlike `<lr-select>`'s clamped listbox nav).\n Home/End jump to the first/last non-disabled item. Enter/Space activate\n the focused item. Escape closes and returns focus to the trigger. A\n printable keypress runs type-ahead: roving focus jumps to the next\n non-disabled item whose text starts with the accumulated buffer, cycling\n from just after the active item (mirrors `<lr-select>`'s identical\n listbox type-ahead). All of the above (except Escape and Tab) only\n respond to keydowns from a real `<lr-menu-item>` target, so a slotted\n non-item control (e.g. a date input) keeps its own full default keyboard\n behavior.\n- Tab never traps focus and never calls `preventDefault()` — the browser's\n own Tab navigation always proceeds untouched. It closes the menu only\n when focus is on its way *out* of the popup: with a focusable in the\n `header`/`footer` region on the far side of the keypress, the menu stays\n open so native Tab can carry focus there instead. With neither region\n filled, Tab closes exactly as it always has. Tabbing past the popup's\n last focusable in either direction closes it too, including from slotted\n non-item content — which previously left the menu open while focus\n walked away.\n- Escape from `header`/`footer` content closes the menu and refocuses the\n trigger unconditionally, mirroring `<lr-popover>`'s handling of arbitrary\n popup content. `closeOnEscapeAnywhere` governs only the *legacy* shape —\n non-item content slotted into the **default** slot — and defaults to\n `false`, so existing consumers keep today's behavior unchanged.\n- A click outside both the trigger and the open popup closes it (mirrors\n `<lr-select>`'s `onDocPointer` exactly) — this does *not* refocus the\n trigger, since the outside click itself already moved focus somewhere\n the user chose; Escape and a committed selection *do* refocus the\n trigger, since those are dismissals with nowhere else for focus to go.\n\n`show(focus?)` and `hide(options?)` are the public imperative pair, for the cases the trigger\ncan't express: a slotted \"Apply\"/\"Done\" button inside the menu, a keyboard shortcut, a parent\nrestoring UI state. `hide({ focusTrigger: true })` is the one that also returns DOM focus to the\ntrigger — use it whenever the interaction that closed the menu hasn't already put focus\nsomewhere the user chose. Writing `open` directly still works and is fully equivalent apart from\nthe focus moves: the roving-tabindex reset is centralized in `updated()`, so `el.open = false`\nnever leaves a stale `tabindex=\"0\"` tab stop on the last active item.\n\nThe trigger element itself is read from the `trigger` slot's assigned element (first one, if\nseveral are assigned) and enhanced imperatively with\n`aria-haspopup=\"menu\"`/`aria-expanded`/`aria-controls` — the same \"reach into a consumer-owned\nlight-DOM element to complete its a11y wiring\" approach `<lr-dialog>` documents for its own\nheading detection. `aria-controls` targets this menu host (which receives a stable generated\n`id` only when the consumer did not supply one), rather than a shadow-private popup id, so the\nrelationship is resolvable from the trigger's root. `<lr-button>` and `<lr-icon-button>` observe\nthose attributes, forward the popup/expanded values to their shadow-internal native controls,\nand resolve the controls element-reference onto that focused control.\n\nThe popup is always rendered (never `display:none`) so `.focus()` calls on\nits content work synchronously the instant it opens — visually hidden via\n`visibility`/`opacity` instead (identical to `<lr-select>`'s own\n`[part=\"listbox\"]`). `visibility` is an inherited CSS property that\npierces the `<slot>` projection boundary, so every closed-state\n`<lr-menu-item>` is automatically excluded from sequential (Tab-key)\nnavigation with no separate JS bookkeeping.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| (default) | `<lr-menu-item>` elements, plus optionally plain `<hr>` dividers between groups (native `<hr>` already carries an implicit `separator` role, matching what `role=\"menu\"` expects between item groups). Arbitrary non-item content still renders here for backward compatibility, but the `header`/`footer` slots below are the supported place for it. |\n| `footer` | Same as `header`, rendered below the items — an \"Apply\"/\"Done\" button, a link to a fuller settings page, a count. |\n| `header` | Composed content rendered above the items and *outside* the `role=\"menu\"` list — a filter/search field, a section title, a summary row. Keeps its own full default keyboard behavior, is reachable with Tab from the items, and is ARIA-valid (arbitrary content inside `role=\"menu\"` is not). Collapses to no box at all while unfilled. |\n| `trigger` | The consumer's own trigger element (typically an icon button). Clicking it toggles the menu; it's positioned against via `internal/positioner.js`'s `place()`. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `footer` | The wrapper around the `footer` slot, below the list and outside `role=\"menu\"`. `display: none` while the slot is unfilled. |\n| `header` | The wrapper around the `header` slot, above the list and outside `role=\"menu\"`. `display: none` while the slot is unfilled. |\n| `list` | The `role=\"menu\"` container wrapping the default slot. |\n| `popup` | The positioned floating panel. |\n| `trigger` | The wrapper around the `trigger` slot (the positioning anchor). |"
|
|
8912
9393
|
},
|
|
8913
9394
|
"attributes": [
|
|
8914
9395
|
{
|
|
@@ -8922,7 +9403,7 @@
|
|
|
8922
9403
|
"name": "label",
|
|
8923
9404
|
"description": {
|
|
8924
9405
|
"kind": "markdown",
|
|
8925
|
-
"value": "Accessible name for the `role=\"menu\"` popup — override with something\nspecific (e.g. \"Row actions\") when a page has more than one menu.\nLocalized (`menuLabel`) when left at its default. A host-level\n`aria-label` attribute takes precedence over both this prop and the\nlocalized default, matching `lr-select`/`lr-model-select`'s\nestablished `this.getAttribute('aria-label') || <computed default>`\nprecedence (see `effectiveLabel`).\n\nType: `string` \nDefault:
|
|
9406
|
+
"value": "Accessible name for the `role=\"menu\"` popup — override with something\nspecific (e.g. \"Row actions\") when a page has more than one menu.\nLocalized (`menuLabel`) when left at its default. A host-level\n`aria-label` attribute takes precedence over both this prop and the\nlocalized default, matching `lr-select`/`lr-model-select`'s\nestablished `this.getAttribute('aria-label') || <computed default>`\nprecedence (see `effectiveLabel`).\n\nType: `string` \nDefault: `\"Menu\"`"
|
|
8926
9407
|
}
|
|
8927
9408
|
},
|
|
8928
9409
|
{
|
|
@@ -9110,6 +9591,50 @@
|
|
|
9110
9591
|
}
|
|
9111
9592
|
]
|
|
9112
9593
|
},
|
|
9594
|
+
{
|
|
9595
|
+
"name": "lr-message-parts",
|
|
9596
|
+
"description": {
|
|
9597
|
+
"kind": "markdown",
|
|
9598
|
+
"value": "`<lr-message-parts>` — renders ordered, interleavable provider-neutral AI message parts. It\ncomposes Lyra's existing Markdown, reasoning, tool, citation, attachment, widget, JSON, and\nmedia primitives while keeping streaming order stable by part id.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `attachment` | An attachment part. |\n| `audio` | An audio part. |\n| `audio-transcript` | An audio part's transcript. |\n| `base` | The ordered message-part list. |\n| `citation` | A citation part. |\n| `data` | A data or widget part. |\n| `error` | An error part. |\n| `part` | Every rendered part wrapper. |\n| `part-streaming` | Additional part name on a streaming part. |\n| `reasoning` | A reasoning part. |\n| `retry` | A retryable error part's action. |\n| `text` | A text part. |\n| `tool-call` | A tool-call part. |\n| `tool-result` | A tool-result part. |"
|
|
9599
|
+
},
|
|
9600
|
+
"attributes": [
|
|
9601
|
+
{
|
|
9602
|
+
"name": "aria-label",
|
|
9603
|
+
"description": {
|
|
9604
|
+
"kind": "markdown",
|
|
9605
|
+
"value": "Type: `string | null` \nDefault: `null`"
|
|
9606
|
+
}
|
|
9607
|
+
},
|
|
9608
|
+
{
|
|
9609
|
+
"name": "label",
|
|
9610
|
+
"description": {
|
|
9611
|
+
"kind": "markdown",
|
|
9612
|
+
"value": "Type: `string` \nDefault: `''`"
|
|
9613
|
+
}
|
|
9614
|
+
},
|
|
9615
|
+
{
|
|
9616
|
+
"name": "locale",
|
|
9617
|
+
"description": {
|
|
9618
|
+
"kind": "markdown",
|
|
9619
|
+
"value": "Optional locale override. Otherwise the nearest `locale`/`lang` ancestor is used.\n\nType: `string` \nDefault: `''`"
|
|
9620
|
+
}
|
|
9621
|
+
},
|
|
9622
|
+
{
|
|
9623
|
+
"name": "render-markdown",
|
|
9624
|
+
"description": {
|
|
9625
|
+
"kind": "markdown",
|
|
9626
|
+
"value": "Render text parts as sanitized Markdown; `false` renders plain text.\n\nType: `boolean` \nDefault: `true`"
|
|
9627
|
+
}
|
|
9628
|
+
},
|
|
9629
|
+
{
|
|
9630
|
+
"name": "show-reasoning",
|
|
9631
|
+
"description": {
|
|
9632
|
+
"kind": "markdown",
|
|
9633
|
+
"value": "Include reasoning parts.\n\nType: `boolean` \nDefault: `true`"
|
|
9634
|
+
}
|
|
9635
|
+
}
|
|
9636
|
+
]
|
|
9637
|
+
},
|
|
9113
9638
|
{
|
|
9114
9639
|
"name": "lr-mind-map",
|
|
9115
9640
|
"description": {
|
|
@@ -9144,7 +9669,7 @@
|
|
|
9144
9669
|
"name": "lr-model-select",
|
|
9145
9670
|
"description": {
|
|
9146
9671
|
"kind": "markdown",
|
|
9147
|
-
"value": "`<lr-model-select>` — a provider/model picker that renders as a closed\ndropdown when a fixed `catalog` is available, or as a filterable free-text\ncombobox when it isn't (or when `allow-custom` explicitly permits typing\nsomething outside the catalog). Built directly on the shared\ntrigger-button/aria-activedescendant listbox technique `<lr-select>` uses\nand the filter-as-you-type suggestion-popup technique `<lr-combobox>`\nuses — not by composing either element, since the mode switch and the\nstale-value handling below are specific to this control.\n\nA `value` that isn't present in `catalog` (e.g. a model id saved from a\nprovider whose live catalog has since changed) is never silently dropped:\n`effectiveEntries` appends it to the rendered option list as a synthetic,\nvisually-distinct row (dashed border, italic label, \"not in catalog\"\nbadge — see `model-select.styles.ts`) computed fresh from `catalog` +\n`value` on every render, without ever mutating the `catalog` property\nitself.\n\nShips an opt-in `hint`/`errorText` form-control chrome (props + matching named slots +\n`hint`/`error` parts), mirroring `<lr-select>`'s exact pattern -- left unset, neither renders.\nPairs with the existing `label` prop/part (also mirroring `<lr-select>`) for a full\nlabel/hint/error field.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| `error` | Custom error content. |\n| `hint` | Custom hint content. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `combobox` | The text-input container (free-text mode's positioning anchor). |\n| `combobox-input` | The free-text mode's text input. |\n| `empty` | The empty-listbox message, shown when no rows match. |\n| `error` | The error message. |\n| `expand-icon` | The dropdown indicator. |\n| `form-control-label` | The `<label>` element (only rendered — and only contributes to the accessible name — once `label` is non-empty). |\n| `hint` | The hint message. |\n| `listbox` | The options popover (shared by both modes). |\n| `option` | An option row. |\n| `option-badge` | The \"not in catalog\" badge on a synthetic stale-value row. |\n| `option-label` | An option row's label. |\n| `provider-badge` | The optional leading `provider` label. |\n| `trigger` | The trigger button (closed-dropdown mode's positioning anchor). |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-model-select-trigger-padding` (default: `var(--lr-space-xs) var(--lr-space-s)`) — Trigger/combobox padding shorthand, scaled by `size`.\n- `--lr-model-select-trigger-min-height` (default: `var(--lr-size-2-5rem)`) — Trigger/combobox block-size floor, scaled by `size`.\n- `--lr-model-select-font-size` (default: `var(--lr-font-size-md)`) — Trigger/combobox font size, scaled by `size`.\n- `--lr-model-select-expand-size` (default: `var(--lr-size-1-75rem)`) — Decorative expand-icon box size, scaled by `size`.\n- `--lr-model-select-option-active-bg` (default: `var(--lr-color-brand-quiet)`) — Background of a hovered or keyboard-active option row."
|
|
9672
|
+
"value": "`<lr-model-select>` — a provider/model picker that renders as a closed\ndropdown when a fixed `catalog` is available, or as a filterable free-text\ncombobox when it isn't (or when `allow-custom` explicitly permits typing\nsomething outside the catalog). Built directly on the shared\ntrigger-button/aria-activedescendant listbox technique `<lr-select>` uses\nand the filter-as-you-type suggestion-popup technique `<lr-combobox>`\nuses — not by composing either element, since the mode switch and the\nstale-value handling below are specific to this control.\n\nA `value` that isn't present in `catalog` (e.g. a model id saved from a\nprovider whose live catalog has since changed) is never silently dropped:\n`effectiveEntries` appends it to the rendered option list as a synthetic,\nvisually-distinct row (dashed border, italic label, \"not in catalog\"\nbadge — see `model-select.styles.ts`) computed fresh from `catalog` +\n`value` on every render, without ever mutating the `catalog` property\nitself.\n\nShips an opt-in `hint`/`errorText` form-control chrome (props + matching named slots +\n`hint`/`error` parts), mirroring `<lr-select>`'s exact pattern -- left unset, neither renders.\nPairs with the existing `label` prop/part (also mirroring `<lr-select>`) for a full\nlabel/hint/error field.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| `error` | Custom error content. |\n| `hint` | Custom hint content. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `combobox` | The text-input container (free-text mode's positioning anchor). |\n| `combobox-input` | The free-text mode's text input. |\n| `empty` | The empty-listbox message, shown when no rows match. |\n| `error` | The error message. |\n| `expand-icon` | The dropdown indicator. |\n| `form-control-label` | The `<label>` element (only rendered — and only contributes to the accessible name — once `label` is non-empty). |\n| `hint` | The hint message. |\n| `listbox` | The options popover (shared by both modes). |\n| `option` | An option row. |\n| `option-badge` | The \"not in catalog\" badge on a synthetic stale-value row. |\n| `option-label` | An option row's label. |\n| `provider-badge` | The optional leading `provider` label. |\n| `trigger` | The trigger button (closed-dropdown mode's positioning anchor). |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-model-select-trigger-padding` (default: `var(--lr-space-xs) var(--lr-space-s)`) — Trigger/combobox padding shorthand, scaled by `size`.\n- `--lr-model-select-trigger-min-height` (default: `var(--lr-size-2-5rem)`) — Trigger/combobox block-size floor, scaled by `size`.\n- `--lr-model-select-font-size` (default: `var(--lr-font-size-md)`) — Trigger/combobox font size, scaled by `size`.\n- `--lr-model-select-expand-size` (default: `var(--lr-size-1-75rem)`) — Decorative expand-icon box size, scaled by `size`.\n- `--lr-model-select-option-active-bg` (default: `var(--lr-color-brand-quiet)`) — Background of a hovered or keyboard-active option row.\n- `--lr-model-select-option-selected-bg` (default: `transparent`) — Background of the currently-selected option row. Not declared on `:host`; retheme without hijacking `--lr-color-brand`.\n- `--lr-model-select-option-selected-border` (default: `var(--lr-color-brand)`) — Border color of the selected option row.\n- `--lr-model-select-option-selected-color` (default: `var(--lr-color-brand)`) — Text color of the selected option row.\n- `--lr-model-select-option-selected-font-weight` (default: `var(--lr-font-weight-semibold)`) — Font weight of the selected option row."
|
|
9148
9673
|
},
|
|
9149
9674
|
"attributes": [
|
|
9150
9675
|
{
|
|
@@ -9490,7 +10015,7 @@
|
|
|
9490
10015
|
"name": "lr-notebook-viewer",
|
|
9491
10016
|
"description": {
|
|
9492
10017
|
"kind": "markdown",
|
|
9493
|
-
"value": "`<lr-notebook-viewer>` — read-only Jupyter notebook (nbformat 4.x) renderer, composing existing\ncomponents per cell. Execution is a hard non-goal.\n\nMarkdown cells render through `<lr-markdown>`, code cells through `<lr-code-block>` (using the\nnotebook's kernel language for syntax highlighting), and raw cells as plain preformatted text. A\ncode cell's `execute_result`/`display_data` outputs prefer, in order, `image/png`, `image/jpeg`,\n`image/svg+xml` (sanitized), `text/html` (sanitized), `application/json` (via `<lr-json-viewer>`),\nthen `text/plain`. Stream/error outputs (tinted `danger` for stderr/tracebacks) interpret embedded\nANSI SGR color/style escapes via the shared `internal/ansi.ts` parser, same as `<lr-terminal>`.\nSanitizing raw HTML/SVG\noutput markup lazy-loads the optional peer dependency `dompurify` via `dompurify-loader.ts`; when\nthat peer isn't installed, the output renders a localized notice instead of raw markup.\n\nCells are virtualized through `<lr-virtual-list>` so a notebook with many cells stays cheap to\nscroll. `node-path` anchors resolve `path[0]` as a cell index; `fragment` anchors resolve a cell's\nown `id`.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The root scroll container. |\n| `cell` | One cell row (`data-cell-type`, `data-active`). |\n| `cell-active` | Added alongside `cell` on the cell an anchor
|
|
10018
|
+
"value": "`<lr-notebook-viewer>` — read-only Jupyter notebook (nbformat 4.x) renderer, composing existing\ncomponents per cell. Execution is a hard non-goal.\n\nMarkdown cells render through `<lr-markdown>`, code cells through `<lr-code-block>` (using the\nnotebook's kernel language for syntax highlighting), and raw cells as plain preformatted text. A\ncode cell's `execute_result`/`display_data` outputs prefer, in order, `image/png`, `image/jpeg`,\n`image/svg+xml` (sanitized), `text/html` (sanitized), `application/json` (via `<lr-json-viewer>`),\nthen `text/plain`. Stream/error outputs (tinted `danger` for stderr/tracebacks) interpret embedded\nANSI SGR color/style escapes via the shared `internal/ansi.ts` parser, same as `<lr-terminal>`.\nSanitizing raw HTML/SVG\noutput markup lazy-loads the optional peer dependency `dompurify` via `dompurify-loader.ts`; when\nthat peer isn't installed, the output renders a localized notice instead of raw markup.\n\nCells are virtualized through `<lr-virtual-list>` so a notebook with many cells stays cheap to\nscroll. `node-path` anchors resolve `path[0]` as a cell index; `fragment` anchors resolve a cell's\nown `id`.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The root scroll container. |\n| `cell` | One cell row (`data-cell-type`, `data-active`). |\n| `cell-active` | Added alongside `cell` on the cell currently targeted by an anchor or the active search match. A second part name rather than an attribute selector, because Shadow Parts forbids an attribute selector after `::part()`. |\n| `cell-gutter` | The `In [n]`/`Out [n]` label column. |\n| `cell-source` | A cell's source content. |\n| `error` | The error region. |\n| `error-output-label` | The label introducing an error output's traceback. |\n| `output` | One output (`data-output-type`, `data-stream`). |\n| `output-error` | Added alongside `output` on a stderr stream or an error output. |\n| `output-toggle` | Expands/collapses a long text output. |\n| `outputs` | The wrapper around a code cell's outputs. |\n| `raw-source` | A horizontally scrollable raw-cell source surface. |\n| `spinner` | The loading status region. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-notebook-viewer-max-height` (default: `none`) — Maximum block size of the scrollable body before it scrolls internally. Also settable via the `max-height` property.\n- `--lr-notebook-viewer-active-bg` (default: `var(--lr-color-brand-quiet)`) — Background of the `[part=\"cell\"]` currently targeted by an anchor or the active search match."
|
|
9494
10019
|
},
|
|
9495
10020
|
"attributes": [
|
|
9496
10021
|
{
|
|
@@ -9621,6 +10146,13 @@
|
|
|
9621
10146
|
"value": "Upper counterpart of `min`, with the same parsing and the same default of `undefined`.\n\nType: `number | string | undefined`"
|
|
9622
10147
|
}
|
|
9623
10148
|
},
|
|
10149
|
+
{
|
|
10150
|
+
"name": "maxlength",
|
|
10151
|
+
"description": {
|
|
10152
|
+
"kind": "markdown",
|
|
10153
|
+
"value": "Upper counterpart of `minlength` (native `maxlength`/`tooLong`), with the same parsing and the\nsame default of `undefined`. Note that native `maxlength` also *prevents* typing beyond the\nlimit; it reports `tooLong` for values that arrive some other way (paste of a longer value,\na programmatic assignment).\n\nType: `number | undefined`"
|
|
10154
|
+
}
|
|
10155
|
+
},
|
|
9624
10156
|
{
|
|
9625
10157
|
"name": "min",
|
|
9626
10158
|
"description": {
|
|
@@ -9628,6 +10160,13 @@
|
|
|
9628
10160
|
"value": "`type=\"number\"` only — forwarded to the internal native `<input>`'s own `min`/`max`/`step`\nand consulted by that same native input's constraint validation (see `updateValidity()`).\nDefaults to `undefined` (no lower bound). The `min` attribute is parsed as a number here; the\ndeclared type also admits a string so a subclass bound to a non-numeric native input type can\nnarrow the attribute parsing to that type's own literal form (`<lr-time-input>`'s `09:00`)\nwithout redeclaring the whole property surface.\n\nType: `number | string | undefined`"
|
|
9629
10161
|
}
|
|
9630
10162
|
},
|
|
10163
|
+
{
|
|
10164
|
+
"name": "minlength",
|
|
10165
|
+
"description": {
|
|
10166
|
+
"kind": "markdown",
|
|
10167
|
+
"value": "Minimum text length, forwarded to the internal native `<input>`'s own `minlength` and\nconsulted by that same native input's constraint validation (`tooShort`, see\n`updateValidity()`). Defaults to `undefined` (no lower bound). Like native `minlength`, an\nempty value never violates it — pair it with `required` to also reject empty. Ignored by the\nnative input for `type=\"number\"`/`type=\"time\"`, exactly as the platform specifies.\n\nType: `number | undefined`"
|
|
10168
|
+
}
|
|
10169
|
+
},
|
|
9631
10170
|
{
|
|
9632
10171
|
"name": "password-visible",
|
|
9633
10172
|
"description": {
|
|
@@ -9635,6 +10174,13 @@
|
|
|
9635
10174
|
"value": "`type=\"password\"` only — whether the field currently reveals its raw text. Toggled by the\nbuilt-in `password-toggle` button; also settable by a consumer up front.\n\nType: `boolean` \nDefault: `false`"
|
|
9636
10175
|
}
|
|
9637
10176
|
},
|
|
10177
|
+
{
|
|
10178
|
+
"name": "pattern",
|
|
10179
|
+
"description": {
|
|
10180
|
+
"kind": "markdown",
|
|
10181
|
+
"value": "A regular expression the value must match in full, forwarded to the internal native\n`<input>`'s own `pattern` and validated by it (`patternMismatch`). Defaults to `undefined`\n(no pattern). Compiled by the browser with the `v` flag and anchored to the whole value, so\nno `^`/`$` is needed; an empty value never violates it.\n\nType: `string | undefined`"
|
|
10182
|
+
}
|
|
10183
|
+
},
|
|
9638
10184
|
{
|
|
9639
10185
|
"name": "placeholder",
|
|
9640
10186
|
"description": {
|
|
@@ -9799,7 +10345,7 @@
|
|
|
9799
10345
|
"name": "lr-pagination",
|
|
9800
10346
|
"description": {
|
|
9801
10347
|
"kind": "markdown",
|
|
9802
|
-
"value": "`<lr-pagination>` — controlled, server-friendly page navigation with an\neditable page jump and optional item-range summary.\n\nThe component never mutates `page`. Activating a control emits\n`lr-page-change`; the consumer applies the requested page after its own\nrouting or data-fetch decision. Once the `page` property changes, a polite\nlive region announces the applied page.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The navigation wrapper. |\n| `controls` | The previous/page/next control group. |\n| `live-region` | The visually hidden applied-page announcement. |\n| `next-button` | The next-page button. |\n| `next-icon` | The next-page directional icon. |\n| `page-count` | The total page count shown after the input. |\n| `page-field` | The current-page input and page-count wrapper. |\n| `page-input` | The validated numeric page-jump input. |\n| `previous-button` | The previous-page button. |\n| `previous-icon` | The previous-page directional icon. |\n| `summary` | The item-range summary. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-pagination-control-size` — Control inline/block size; defaults from the `size` variant.\n- `--lr-pagination-font-size` — Control font size; defaults from the `size` variant.\n- `--lr-pagination-control-padding` (default: `var(--lr-space-xs)`) — Inner padding of the nav buttons and the page input. Uniform across every `size` (the control footprint is fixed by `--lr-pagination-control-size`, so this only adjusts the icon/digit inset)."
|
|
10348
|
+
"value": "`<lr-pagination>` — controlled, server-friendly page navigation with an\neditable page jump and optional item-range summary.\n\nThe component never mutates `page`. Activating a control emits\n`lr-page-change`; the consumer applies the requested page after its own\nrouting or data-fetch decision. Once the `page` property changes, a polite\nlive region announces the applied page.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The navigation wrapper. |\n| `controls` | The previous/page/next control group. |\n| `live-region` | The visually hidden applied-page announcement. |\n| `next-button` | The next-page button. |\n| `next-icon` | The next-page directional icon. |\n| `page-count` | The total page count shown after the input. |\n| `page-field` | The current-page input and page-count wrapper. |\n| `page-input` | The validated numeric page-jump input. |\n| `previous-button` | The previous-page button. |\n| `previous-icon` | The previous-page directional icon. |\n| `summary` | The item-range summary. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-pagination-control-size` — Control inline/block size; defaults from the `size` variant.\n- `--lr-pagination-font-size` — Control font size; defaults from the `size` variant.\n- `--lr-pagination-control-radius` (default: `var(--lr-radius)`) — Border radius of navigation buttons and the page input.\n- `--lr-pagination-control-padding` (default: `var(--lr-space-xs)`) — Inner padding of the nav buttons and the page input. Uniform across every `size` (the control footprint is fixed by `--lr-pagination-control-size`, so this only adjusts the icon/digit inset)."
|
|
9803
10349
|
},
|
|
9804
10350
|
"attributes": [
|
|
9805
10351
|
{
|
|
@@ -9980,7 +10526,7 @@
|
|
|
9980
10526
|
"name": "lr-phone-input",
|
|
9981
10527
|
"description": {
|
|
9982
10528
|
"kind": "markdown",
|
|
9983
|
-
"value": "`<lr-phone-input>` — a country-aware telephone field whose form value is\ncanonical E.164. National formatting and numbering-plan validation are\nsupplied through `adapter`; without one, already-international E.164 input\nremains useful and national input stays editable with `incomplete` validity.\n\nUser edits emit native-style `input` and `change` events. Event detail\nexposes both the canonical `value` and editable `inputValue`; programmatic\nproperty changes are silent. Phone-number text is deliberately LTR while\nthe form chrome and country selector follow the inherited direction. A host\n`aria-label` names the internal telephone input and wins over every derived\nor component-specific fallback.\n\nThe country selector keeps the real, fully accessible native `<select>`\n(full country names in its popup, native mobile pickers, type-ahead) but\nrenders it invisibly over a compact visual trigger — selected alpha-2 code\nplus a design-system chevron — so long localized country names never clip\nthe closed control and the calling code isn't shown twice. With `flags`\nset, the trigger also shows the selected country's `<lr-flag>`; actual flag\nartwork still comes from the optional `@aceshooting/lyra-flags` peer,\nregistered by the consumer via `components/media/flag/flag-peer.js`\nexactly as for a standalone `<lr-flag>` (without that registration the\ntrigger simply omits the image). Native `<option>`s cannot contain\nelements, so the open popup remains text-only by platform design.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| `country-prefix` | Optional visual displayed before the country selector, such as a flag. |\n| `error` | Custom error content. |\n| `hint` | Custom hint content. |\n| `label` | Custom label content. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `calling-code` | The selected country's calling code. |\n| `country` | The country selector region (invisible native select over the visual trigger). |\n| `country-code` | The selected alpha-2 code (or placeholder text) inside the trigger. |\n| `country-prefix` | Optional country adornment slot wrapper. |\n| `country-select` | The native country selector, stretched invisibly over the trigger. |\n| `country-trigger` | The visible, decorative closed-state trigger. |\n| `error` | The error or validation message. |\n| `expand-icon` | The dropdown indicator inside the trigger. |\n| `flag` | The selected country's `<lr-flag>` inside the trigger (only with `flags`). |\n| `form-control` | The outer form-control wrapper. |\n| `form-control-label` | The visible label. |\n| `hint` | The hint message. |\n| `input` | The native telephone input. |\n| `input-wrapper` | The country selector and telephone input wrapper. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-phone-input-padding-block` — Input block-padding, scaled by `size`.\n- `--lr-phone-input-font-size` — Input/flag/country-code/calling-code font size, scaled by `size`.\n- `--lr-phone-input-control-min-height` — Input-wrapper block-size floor, scaled by `size`.\n- `--lr-phone-input-control-height` — Exact input-wrapper height. Unset by default, which leaves `--lr-phone-input-control-min-height` as a floor only; set it to a length to both floor and cap the row (e.g. to pixel-match a sibling field in the same toolbar row). Because it is never declared by the component itself, it can be set from an ancestor or an outer-tree rule as well as inline on the element."
|
|
10529
|
+
"value": "`<lr-phone-input>` — a country-aware telephone field whose form value is\ncanonical E.164. National formatting and numbering-plan validation are\nsupplied through `adapter`; without one, already-international E.164 input\nremains useful and national input stays editable with `incomplete` validity.\n\nUser edits emit native-style `input` and `change` events. Event detail\nexposes both the canonical `value` and editable `inputValue`; programmatic\nproperty changes are silent. Phone-number text is deliberately LTR while\nthe form chrome and country selector follow the inherited direction. A host\n`aria-label` names the internal telephone input and wins over every derived\nor component-specific fallback.\n\nThe country selector keeps the real, fully accessible native `<select>`\n(full country names in its popup, native mobile pickers, type-ahead) but\nrenders it invisibly over a compact visual trigger — selected alpha-2 code\nplus a design-system chevron — so long localized country names never clip\nthe closed control and the calling code isn't shown twice. With `flags`\nset, the trigger also shows the selected country's `<lr-flag>`; actual flag\nartwork still comes from the optional `@aceshooting/lyra-flags` peer,\nregistered by the consumer via `components/media/flag/flag-peer.js`\nexactly as for a standalone `<lr-flag>` (without that registration the\ntrigger simply omits the image). Native `<option>`s cannot contain\nelements, so the open popup remains text-only by platform design.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| `country-prefix` | Optional visual displayed before the country selector, such as a flag. |\n| `error` | Custom error content. |\n| `hint` | Custom hint content. |\n| `label` | Custom label content. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `calling-code` | The selected country's calling code. |\n| `country` | The country selector region (invisible native select over the visual trigger). |\n| `country-code` | The selected alpha-2 code (or placeholder text) inside the trigger. |\n| `country-prefix` | Optional country adornment slot wrapper. |\n| `country-select` | The native country selector, stretched invisibly over the trigger. |\n| `country-trigger` | The visible, decorative closed-state trigger. |\n| `error` | The error or validation message. |\n| `expand-icon` | The dropdown indicator inside the trigger. |\n| `flag` | The selected country's `<lr-flag>` inside the trigger (only with `flags`). |\n| `form-control` | The outer form-control wrapper. |\n| `form-control-label` | The visible label. |\n| `hint` | The hint message. |\n| `input` | The native telephone input. |\n| `input-wrapper` | The country selector and telephone input wrapper. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-phone-input-padding-block` — Input block-padding, scaled by `size`.\n- `--lr-phone-input-font-size` — Input/flag/country-code/calling-code font size, scaled by `size`.\n- `--lr-phone-input-flag-size` — Selected flag size, scaled by `size`.\n- `--lr-phone-input-glyph-size` — Country selector glyph size, scaled by `size`.\n- `--lr-phone-input-gap` (default: `var(--lr-space-xs)`) — Country-trigger child gap.\n- `--lr-phone-input-radius` (default: `var(--lr-radius)`) — Input-wrapper corner radius.\n- `--lr-phone-input-focus-border-color` (default: `var(--lr-color-brand)`) — Focused row border color.\n- `--lr-phone-input-invalid-border-color` (default: `var(--lr-color-danger)`) — Invalid row border color.\n- `--lr-phone-input-country-hover-bg` (default: `var(--lr-color-brand-quiet)`) — Country trigger hover background.\n- `--lr-phone-input-control-min-height` — Input-wrapper block-size floor, scaled by `size`.\n- `--lr-phone-input-control-height` — Exact input-wrapper height. Unset by default, which leaves `--lr-phone-input-control-min-height` as a floor only; set it to a length to both floor and cap the row (e.g. to pixel-match a sibling field in the same toolbar row). Because it is never declared by the component itself, it can be set from an ancestor or an outer-tree rule as well as inline on the element."
|
|
9984
10530
|
},
|
|
9985
10531
|
"attributes": [
|
|
9986
10532
|
{
|
|
@@ -10192,6 +10738,13 @@
|
|
|
10192
10738
|
"value": "Type: `boolean` \nDefault: `true`"
|
|
10193
10739
|
}
|
|
10194
10740
|
},
|
|
10741
|
+
{
|
|
10742
|
+
"name": "data-labels",
|
|
10743
|
+
"description": {
|
|
10744
|
+
"kind": "markdown",
|
|
10745
|
+
"value": "Draws each data point's value on the chart via the optional\n`chartjs-plugin-datalabels` peer. Unset (the default) leaves labels off for\nthis chart; the peer is attached only to instances that opt in, and\n`buildConfig()` keeps its per-chart options disabled until this is set. The\nscreen-reader equivalent is the always-present data table (see\n`show-data-table`); labels are a purely visual, canvas-only addition.\n\nType: `boolean` \nDefault: `false`"
|
|
10746
|
+
}
|
|
10747
|
+
},
|
|
10195
10748
|
{
|
|
10196
10749
|
"name": "height",
|
|
10197
10750
|
"description": {
|
|
@@ -10234,6 +10787,13 @@
|
|
|
10234
10787
|
"value": "Makes the generated data table visible; it remains screen-reader available when false.\n\nType: `boolean` \nDefault: `false`"
|
|
10235
10788
|
}
|
|
10236
10789
|
},
|
|
10790
|
+
{
|
|
10791
|
+
"name": "stack-totals",
|
|
10792
|
+
"description": {
|
|
10793
|
+
"kind": "markdown",
|
|
10794
|
+
"value": "When the chart is `stacked` (bar/line only), draws the per-category stack\ntotal above each stack, via the same optional `chartjs-plugin-datalabels`\npeer as `data-labels`. Null/undefined points are skipped; a category whose\nevery value is null shows no total. Unset (the default) draws nothing.\n\nType: `boolean` \nDefault: `false`"
|
|
10795
|
+
}
|
|
10796
|
+
},
|
|
10237
10797
|
{
|
|
10238
10798
|
"name": "stacked",
|
|
10239
10799
|
"description": {
|
|
@@ -10324,7 +10884,7 @@
|
|
|
10324
10884
|
"name": "loop",
|
|
10325
10885
|
"description": {
|
|
10326
10886
|
"kind": "markdown",
|
|
10327
|
-
"value": "
|
|
10887
|
+
"value": "Type: `boolean` \nDefault: `true`"
|
|
10328
10888
|
}
|
|
10329
10889
|
},
|
|
10330
10890
|
{
|
|
@@ -10371,6 +10931,13 @@
|
|
|
10371
10931
|
"value": "Type: `boolean` \nDefault: `true`"
|
|
10372
10932
|
}
|
|
10373
10933
|
},
|
|
10934
|
+
{
|
|
10935
|
+
"name": "data-labels",
|
|
10936
|
+
"description": {
|
|
10937
|
+
"kind": "markdown",
|
|
10938
|
+
"value": "Draws each data point's value on the chart via the optional\n`chartjs-plugin-datalabels` peer. Unset (the default) leaves labels off for\nthis chart; the peer is attached only to instances that opt in, and\n`buildConfig()` keeps its per-chart options disabled until this is set. The\nscreen-reader equivalent is the always-present data table (see\n`show-data-table`); labels are a purely visual, canvas-only addition.\n\nType: `boolean` \nDefault: `false`"
|
|
10939
|
+
}
|
|
10940
|
+
},
|
|
10374
10941
|
{
|
|
10375
10942
|
"name": "height",
|
|
10376
10943
|
"description": {
|
|
@@ -10413,6 +10980,13 @@
|
|
|
10413
10980
|
"value": "Makes the generated data table visible; it remains screen-reader available when false.\n\nType: `boolean` \nDefault: `false`"
|
|
10414
10981
|
}
|
|
10415
10982
|
},
|
|
10983
|
+
{
|
|
10984
|
+
"name": "stack-totals",
|
|
10985
|
+
"description": {
|
|
10986
|
+
"kind": "markdown",
|
|
10987
|
+
"value": "When the chart is `stacked` (bar/line only), draws the per-category stack\ntotal above each stack, via the same optional `chartjs-plugin-datalabels`\npeer as `data-labels`. Null/undefined points are skipped; a category whose\nevery value is null shows no total. Unset (the default) draws nothing.\n\nType: `boolean` \nDefault: `false`"
|
|
10988
|
+
}
|
|
10989
|
+
},
|
|
10416
10990
|
{
|
|
10417
10991
|
"name": "stacked",
|
|
10418
10992
|
"description": {
|
|
@@ -10461,7 +11035,7 @@
|
|
|
10461
11035
|
"name": "lr-policy-summary",
|
|
10462
11036
|
"description": {
|
|
10463
11037
|
"kind": "markdown",
|
|
10464
|
-
"value": "`<lr-policy-summary>` — a read-only list of guardrail, permission, privacy, and tool-policy\ndecisions, each carrying an `allow` / `deny` / `needs-review` state and an always-visible,\naccessible explanation of why that decision was made -- never conveyed by color alone.\n\nComposes `<lr-badge>` for the compact per-decision state indicator and
|
|
11038
|
+
"value": "`<lr-policy-summary>` — a read-only list of guardrail, permission, privacy, and tool-policy\ndecisions, each carrying an `allow` / `deny` / `needs-review` state and an always-visible,\naccessible explanation of why that decision was made -- never conveyed by color alone.\n\nComposes `<lr-badge>` for the compact per-decision state indicator and renders the historical\nexplanation as ordinary text, so mounting an existing policy record does not announce it as a\nfresh alert or status change. `<lr-details>` renders a decision's optional richer `detail` (matched rule text,\npolicy id, cited evidence) behind progressive disclosure, collapsed by default, instead of\nalways showing it alongside the shorter `explanation`.\n\n`decisions` is controlled and never mutated by this component -- pass a new array (e.g. as a\nguardrail pipeline resolves) to update it. This is a summary surface, not an approval gate:\nthere is no per-decision action here, and a decision's `state` is fixed data, not something a\nviewer can change from this component.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The root wrapper, only rendered while `decisions` is non-empty. |\n| `category` | The decision's localized category text. |\n| `count` | One state's localized count text; carries `data-state`. |\n| `decision` | One decision row (`role=\"listitem\"`); carries `data-state` and `data-category`. |\n| `decision-header` | The row's category/label/state-badge line. |\n| `detail` | The `<lr-details>` progressive-disclosure panel for `detail`, only rendered when a decision defines one. |\n| `empty` | The `<lr-empty>` shown when `decisions` is empty. |\n| `explanation` | The always-visible historical `explanation` text. |\n| `label` | The decision's `label` text. |\n| `list` | The `role=\"list\"` wrapper around every decision row. Its accessible name defaults to the localized `policySummaryLabel`, but a host-level `aria-label` on `<lr-policy-summary>` wins over that default. |\n| `state-badge` | The resolved `<lr-badge>` state indicator. |\n| `summary` | The always-visible allow/deny/needs-review count row. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-policy-summary-count-allow-color` (default: `var(--lr-color-success)`) — Text color of the `allow` count.\n- `--lr-policy-summary-count-deny-color` (default: `var(--lr-color-danger)`) — Text color of the `deny` count.\n- `--lr-policy-summary-count-needs-review-color` (default: `var(--lr-color-warning)`) — Text color of the `needs-review` count. Restyling a state count otherwise requires overriding the library-wide status tokens, since `::part(count)[data-state]` is invalid CSS."
|
|
10465
11039
|
},
|
|
10466
11040
|
"attributes": [
|
|
10467
11041
|
{
|
|
@@ -10477,14 +11051,14 @@
|
|
|
10477
11051
|
"name": "lr-poll-status",
|
|
10478
11052
|
"description": {
|
|
10479
11053
|
"kind": "markdown",
|
|
10480
|
-
"value": "`<lr-poll-status>` — a \"next scheduled refresh\" countdown with a built-in pause control: a\nticking `M:SS` display counting down to the next scheduled action, a \"Refreshing…\" state at\nzero, a \"Paused\" state
|
|
11054
|
+
"value": "`<lr-poll-status>` — a \"next scheduled refresh\" countdown with a built-in pause control: a\nticking `M:SS` display counting down to the next scheduled action, a \"Refreshing…\" state at\nzero, a localized inactive state while `active` is false, a \"Paused\" state\nwhile `paused` (instead of freezing on a stale value), and a pause/resume\ntoggle. First-party invention (no Web Awesome equivalent); the\nclosest existing component, `lr-stream-status`, is scoped to transport/connection-health\nphases, a different concern from a scheduled-interval countdown -- this mirrors its internal\n`<lr-live-region>` composition for accessible phase-transition announcements.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The root wrapper. |\n| `countdown` | The localized `M:SS` text, or the refreshing, paused, or inactive state. |\n| `indicator` | The pulsing status dot. |\n| `pause-button` | The built-in pause/resume toggle. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-poll-status-due-bg` (default: `var(--lr-color-success)`) — Background of `indicator` while `data-due` is set, without repainting every other component that reuses the shared success token."
|
|
10481
11055
|
},
|
|
10482
11056
|
"attributes": [
|
|
10483
11057
|
{
|
|
10484
11058
|
"name": "active",
|
|
10485
11059
|
"description": {
|
|
10486
11060
|
"kind": "markdown",
|
|
10487
|
-
"value": "Whether the poll cycle is running at all.
|
|
11061
|
+
"value": "Whether the poll cycle is running at all. While false, the component\nclears due/countdown semantics and disables its pause action.\n\nType: `boolean` \nDefault: `true`"
|
|
10488
11062
|
}
|
|
10489
11063
|
},
|
|
10490
11064
|
{
|
|
@@ -10542,7 +11116,7 @@
|
|
|
10542
11116
|
"name": "open",
|
|
10543
11117
|
"description": {
|
|
10544
11118
|
"kind": "markdown",
|
|
10545
|
-
"value": "Type: `boolean`
|
|
11119
|
+
"value": "Type: `boolean`"
|
|
10546
11120
|
}
|
|
10547
11121
|
},
|
|
10548
11122
|
{
|
|
@@ -10602,7 +11176,7 @@
|
|
|
10602
11176
|
"name": "lr-progress-bar",
|
|
10603
11177
|
"description": {
|
|
10604
11178
|
"kind": "markdown",
|
|
10605
|
-
"value": "`<lr-progress-bar>` — a determinate or indeterminate progress indicator.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| `label` | Optional label content. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The progress wrapper. |\n| `indicator` | The filled progress indicator. |\n| `label` | The label row. |\n| `track` | The track.
|
|
11179
|
+
"value": "`<lr-progress-bar>` — a determinate or indeterminate progress indicator.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| `label` | Optional label content. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The progress wrapper. |\n| `indicator` | The filled progress indicator. |\n| `label` | The label row. |\n| `track` | The track. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-progress-height` (default: `var(--lr-size-0-5rem)`) — Block size of the progress track.\n- `--lr-progress-duration` (default: `var(--lr-transition-ambient)`) — Indeterminate sweep timing."
|
|
10606
11180
|
},
|
|
10607
11181
|
"attributes": [
|
|
10608
11182
|
{
|
|
@@ -10660,7 +11234,7 @@
|
|
|
10660
11234
|
"name": "lr-progress-ring",
|
|
10661
11235
|
"description": {
|
|
10662
11236
|
"kind": "markdown",
|
|
10663
|
-
"value": "`<lr-progress-ring>` — a circular determinate or indeterminate progress indicator.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| (default) | Optional center label. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The progress wrapper. |\n| `indicator` | The SVG indicator. |\n| `label` | The center label. |\n| `track` | The SVG track. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-progress-ring-size` (default: `var(--lr-size-2-5rem)`) — Outer diameter of the ring."
|
|
11237
|
+
"value": "`<lr-progress-ring>` — a circular determinate or indeterminate progress indicator.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| (default) | Optional center label. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The progress wrapper. |\n| `indicator` | The SVG indicator. |\n| `label` | The center label. |\n| `track` | The SVG track. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-progress-ring-size` (default: `var(--lr-size-2-5rem)`) — Outer diameter of the ring.\n- `--lr-progress-duration` (default: `var(--lr-transition-ambient)`) — Indeterminate rotation timing."
|
|
10664
11238
|
},
|
|
10665
11239
|
"attributes": [
|
|
10666
11240
|
{
|
|
@@ -10701,26 +11275,193 @@
|
|
|
10701
11275
|
]
|
|
10702
11276
|
},
|
|
10703
11277
|
{
|
|
10704
|
-
"name": "lr-
|
|
11278
|
+
"name": "lr-prompt-input",
|
|
10705
11279
|
"description": {
|
|
10706
11280
|
"kind": "markdown",
|
|
10707
|
-
"value": "`<lr-
|
|
11281
|
+
"value": "`<lr-prompt-input>` — a composed AI prompt surface combining the chat composer with attachments,\nmodel and voice selection, retrieval sources, mentions, slash commands, and a queued-turn list.\nIt performs no upload, model call, retrieval, or persistence.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| `chips` | Replaces the data-driven attachment chips. |\n| `controls` | Replaces the data-driven model, voice, and source controls. |\n| `footer` | Content below the composer. |\n| `leading` | Replaces the default attachment trigger. |\n| `trailing` | Replaces the composer's send/stop action. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The prompt surface. |\n| `chips` | The attachment-chip tray. |\n| `composer` | The composed chat composer. |\n| `controls` | Model, voice, and source controls. |\n| `footer` | The footer slot. |\n| `leading` | The composer's leading attachment control. |\n| `queue` | The composed prompt queue. |\n| `source-picker` | The composed source picker. |\n| `sources` | The collapsible source-picker region. |\n| `sources-summary` | The source-picker disclosure. |"
|
|
10708
11282
|
},
|
|
10709
11283
|
"attributes": [
|
|
10710
11284
|
{
|
|
10711
|
-
"name": "label",
|
|
11285
|
+
"name": "aria-label",
|
|
10712
11286
|
"description": {
|
|
10713
11287
|
"kind": "markdown",
|
|
10714
|
-
"value": "Type: `string` \nDefault: `
|
|
11288
|
+
"value": "Type: `string | null` \nDefault: `null`"
|
|
10715
11289
|
}
|
|
10716
11290
|
},
|
|
10717
11291
|
{
|
|
10718
|
-
"name": "
|
|
11292
|
+
"name": "disabled",
|
|
10719
11293
|
"description": {
|
|
10720
11294
|
"kind": "markdown",
|
|
10721
|
-
"value": "
|
|
11295
|
+
"value": "Type: `boolean` \nDefault: `false`"
|
|
10722
11296
|
}
|
|
10723
|
-
}
|
|
11297
|
+
},
|
|
11298
|
+
{
|
|
11299
|
+
"name": "label",
|
|
11300
|
+
"description": {
|
|
11301
|
+
"kind": "markdown",
|
|
11302
|
+
"value": "Type: `string` \nDefault: `''`"
|
|
11303
|
+
}
|
|
11304
|
+
},
|
|
11305
|
+
{
|
|
11306
|
+
"name": "locale",
|
|
11307
|
+
"description": {
|
|
11308
|
+
"kind": "markdown",
|
|
11309
|
+
"value": "Optional locale override. Otherwise the nearest `locale`/`lang` ancestor is used.\n\nType: `string` \nDefault: `''`"
|
|
11310
|
+
}
|
|
11311
|
+
},
|
|
11312
|
+
{
|
|
11313
|
+
"name": "model",
|
|
11314
|
+
"description": {
|
|
11315
|
+
"kind": "markdown",
|
|
11316
|
+
"value": "Type: `string` \nDefault: `''`"
|
|
11317
|
+
}
|
|
11318
|
+
},
|
|
11319
|
+
{
|
|
11320
|
+
"name": "placeholder",
|
|
11321
|
+
"description": {
|
|
11322
|
+
"kind": "markdown",
|
|
11323
|
+
"value": "Type: `string` \nDefault: `''`"
|
|
11324
|
+
}
|
|
11325
|
+
},
|
|
11326
|
+
{
|
|
11327
|
+
"name": "status",
|
|
11328
|
+
"description": {
|
|
11329
|
+
"kind": "markdown",
|
|
11330
|
+
"value": "Type: `ChatComposerStatus` \nDefault: `'idle'`"
|
|
11331
|
+
}
|
|
11332
|
+
},
|
|
11333
|
+
{
|
|
11334
|
+
"name": "submit-on-enter",
|
|
11335
|
+
"description": {
|
|
11336
|
+
"kind": "markdown",
|
|
11337
|
+
"value": "Type: `boolean` \nDefault: `true`"
|
|
11338
|
+
}
|
|
11339
|
+
},
|
|
11340
|
+
{
|
|
11341
|
+
"name": "value",
|
|
11342
|
+
"description": {
|
|
11343
|
+
"kind": "markdown",
|
|
11344
|
+
"value": "Type: `string` \nDefault: `''`"
|
|
11345
|
+
}
|
|
11346
|
+
},
|
|
11347
|
+
{
|
|
11348
|
+
"name": "voice",
|
|
11349
|
+
"description": {
|
|
11350
|
+
"kind": "markdown",
|
|
11351
|
+
"value": "Type: `string` \nDefault: `''`"
|
|
11352
|
+
}
|
|
11353
|
+
}
|
|
11354
|
+
]
|
|
11355
|
+
},
|
|
11356
|
+
{
|
|
11357
|
+
"name": "lr-prompt-queue",
|
|
11358
|
+
"description": {
|
|
11359
|
+
"kind": "markdown",
|
|
11360
|
+
"value": "`<lr-prompt-queue>` — a controlled queue of follow-up prompts that can be edited, reordered,\nremoved, or sent immediately while another agent turn is active.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `action` | Every item action. |\n| `actions` | One item's action row. |\n| `base` | The queue wrapper. |\n| `editor` | A queued prompt editor. |\n| `empty` | The empty state. |\n| `heading` | The queue heading. |\n| `item` | One queued prompt. |\n| `list` | The ordered queue list. |\n| `value` | Read-only prompt text when `editable` is false. |"
|
|
11361
|
+
},
|
|
11362
|
+
"attributes": [
|
|
11363
|
+
{
|
|
11364
|
+
"name": "aria-label",
|
|
11365
|
+
"description": {
|
|
11366
|
+
"kind": "markdown",
|
|
11367
|
+
"value": "Type: `string | null` \nDefault: `null`"
|
|
11368
|
+
}
|
|
11369
|
+
},
|
|
11370
|
+
{
|
|
11371
|
+
"name": "disabled",
|
|
11372
|
+
"description": {
|
|
11373
|
+
"kind": "markdown",
|
|
11374
|
+
"value": "Type: `boolean` \nDefault: `false`"
|
|
11375
|
+
}
|
|
11376
|
+
},
|
|
11377
|
+
{
|
|
11378
|
+
"name": "editable",
|
|
11379
|
+
"description": {
|
|
11380
|
+
"kind": "markdown",
|
|
11381
|
+
"value": "Type: `boolean` \nDefault: `true`"
|
|
11382
|
+
}
|
|
11383
|
+
},
|
|
11384
|
+
{
|
|
11385
|
+
"name": "label",
|
|
11386
|
+
"description": {
|
|
11387
|
+
"kind": "markdown",
|
|
11388
|
+
"value": "Type: `string` \nDefault: `''`"
|
|
11389
|
+
}
|
|
11390
|
+
},
|
|
11391
|
+
{
|
|
11392
|
+
"name": "locale",
|
|
11393
|
+
"description": {
|
|
11394
|
+
"kind": "markdown",
|
|
11395
|
+
"value": "Optional locale override. Otherwise the nearest `locale`/`lang` ancestor is used.\n\nType: `string` \nDefault: `''`"
|
|
11396
|
+
}
|
|
11397
|
+
}
|
|
11398
|
+
]
|
|
11399
|
+
},
|
|
11400
|
+
{
|
|
11401
|
+
"name": "lr-prompt-studio",
|
|
11402
|
+
"description": {
|
|
11403
|
+
"kind": "markdown",
|
|
11404
|
+
"value": "`<lr-prompt-studio>` — a provider-neutral prompt-development workbench for ordered role\nmessages, `{{variable}}` substitution, version selection, preview, save, and run intents.\nThe host owns persistence and model execution.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `add-message` | The add-message action. |\n| `base` | The named studio region. |\n| `editor` | Messages and variables workspace. |\n| `message` | One prompt message. |\n| `message-content` | A message textarea. |\n| `message-role` | A message role selector. |\n| `messages` | Ordered prompt-message editor. |\n| `preview` | Resolved read-only preview. |\n| `remove-message` | A message removal action. |\n| `run` | The run action. |\n| `save` | The save action. |\n| `toolbar` | Save/run controls. |\n| `variable` | One variable row. |\n| `variables` | Variable editor. |\n| `version` | One saved version. |\n| `versions` | Saved-version controls. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-prompt-studio-field-hover-border` (default: `var(--lr-color-brand)`) — Enabled field hover border.\n- `--lr-prompt-studio-version-selected-border` (default: `var(--lr-color-brand)`) — Selected version border.\n- `--lr-prompt-studio-version-selected-bg` (default: `var(--lr-color-brand-quiet)`) — Selected version background.\n- `--lr-prompt-studio-version-selected-color` (default: `var(--lr-color-text)`) — Selected version foreground.\n- `--lr-prompt-studio-version-selected-hover-bg` (default: `var(--lr-color-brand-quiet)`) — Selected version hover background."
|
|
11405
|
+
},
|
|
11406
|
+
"attributes": [
|
|
11407
|
+
{
|
|
11408
|
+
"name": "disabled",
|
|
11409
|
+
"description": {
|
|
11410
|
+
"kind": "markdown",
|
|
11411
|
+
"value": "Type: `boolean` \nDefault: `false`"
|
|
11412
|
+
}
|
|
11413
|
+
},
|
|
11414
|
+
{
|
|
11415
|
+
"name": "label",
|
|
11416
|
+
"description": {
|
|
11417
|
+
"kind": "markdown",
|
|
11418
|
+
"value": "Type: `string` \nDefault: `''`"
|
|
11419
|
+
}
|
|
11420
|
+
},
|
|
11421
|
+
{
|
|
11422
|
+
"name": "locale",
|
|
11423
|
+
"description": {
|
|
11424
|
+
"kind": "markdown",
|
|
11425
|
+
"value": "Optional locale override. Otherwise the nearest `locale`/`lang` ancestor is used.\n\nType: `string` \nDefault: `''`"
|
|
11426
|
+
}
|
|
11427
|
+
},
|
|
11428
|
+
{
|
|
11429
|
+
"name": "running",
|
|
11430
|
+
"description": {
|
|
11431
|
+
"kind": "markdown",
|
|
11432
|
+
"value": "Type: `boolean` \nDefault: `false`"
|
|
11433
|
+
}
|
|
11434
|
+
},
|
|
11435
|
+
{
|
|
11436
|
+
"name": "selected-version-id",
|
|
11437
|
+
"description": {
|
|
11438
|
+
"kind": "markdown",
|
|
11439
|
+
"value": "Type: `string` \nDefault: `''`"
|
|
11440
|
+
}
|
|
11441
|
+
}
|
|
11442
|
+
]
|
|
11443
|
+
},
|
|
11444
|
+
{
|
|
11445
|
+
"name": "lr-provenance-panel",
|
|
11446
|
+
"description": {
|
|
11447
|
+
"kind": "markdown",
|
|
11448
|
+
"value": "`<lr-provenance-panel>` — the grounding breakdown for one answer: a sectioned disclosure\npanel (Entities / Relationships / Communities / Text chunks) composing this family's own pieces.\nThe chat <-> graph <-> document glue component. Pure projection + event conduit: no fetching, no\ngraph/viewer imports, no persistence.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The root wrapper. |\n| `body` | A section's content wrapper, `hidden` while collapsed. |\n| `count` | A section's item-count badge. |\n| `empty` | The empty state, shown when every section is empty. |\n| `header` | A section's disclosure `<button>`. |\n| `section` | One section's wrapper. |"
|
|
11449
|
+
},
|
|
11450
|
+
"attributes": [
|
|
11451
|
+
{
|
|
11452
|
+
"name": "label",
|
|
11453
|
+
"description": {
|
|
11454
|
+
"kind": "markdown",
|
|
11455
|
+
"value": "Type: `string` \nDefault: `''`"
|
|
11456
|
+
}
|
|
11457
|
+
},
|
|
11458
|
+
{
|
|
11459
|
+
"name": "locale",
|
|
11460
|
+
"description": {
|
|
11461
|
+
"kind": "markdown",
|
|
11462
|
+
"value": "Optional locale override. Otherwise the nearest `locale`/`lang` ancestor is used.\n\nType: `string` \nDefault: `''`"
|
|
11463
|
+
}
|
|
11464
|
+
}
|
|
10724
11465
|
]
|
|
10725
11466
|
},
|
|
10726
11467
|
{
|
|
@@ -10904,6 +11645,13 @@
|
|
|
10904
11645
|
"value": "Type: `boolean` \nDefault: `true`"
|
|
10905
11646
|
}
|
|
10906
11647
|
},
|
|
11648
|
+
{
|
|
11649
|
+
"name": "data-labels",
|
|
11650
|
+
"description": {
|
|
11651
|
+
"kind": "markdown",
|
|
11652
|
+
"value": "Draws each data point's value on the chart via the optional\n`chartjs-plugin-datalabels` peer. Unset (the default) leaves labels off for\nthis chart; the peer is attached only to instances that opt in, and\n`buildConfig()` keeps its per-chart options disabled until this is set. The\nscreen-reader equivalent is the always-present data table (see\n`show-data-table`); labels are a purely visual, canvas-only addition.\n\nType: `boolean` \nDefault: `false`"
|
|
11653
|
+
}
|
|
11654
|
+
},
|
|
10907
11655
|
{
|
|
10908
11656
|
"name": "height",
|
|
10909
11657
|
"description": {
|
|
@@ -10946,6 +11694,13 @@
|
|
|
10946
11694
|
"value": "Makes the generated data table visible; it remains screen-reader available when false.\n\nType: `boolean` \nDefault: `false`"
|
|
10947
11695
|
}
|
|
10948
11696
|
},
|
|
11697
|
+
{
|
|
11698
|
+
"name": "stack-totals",
|
|
11699
|
+
"description": {
|
|
11700
|
+
"kind": "markdown",
|
|
11701
|
+
"value": "When the chart is `stacked` (bar/line only), draws the per-category stack\ntotal above each stack, via the same optional `chartjs-plugin-datalabels`\npeer as `data-labels`. Null/undefined points are skipped; a category whose\nevery value is null shows no total. Unset (the default) draws nothing.\n\nType: `boolean` \nDefault: `false`"
|
|
11702
|
+
}
|
|
11703
|
+
},
|
|
10949
11704
|
{
|
|
10950
11705
|
"name": "stacked",
|
|
10951
11706
|
"description": {
|
|
@@ -11106,11 +11861,127 @@
|
|
|
11106
11861
|
}
|
|
11107
11862
|
]
|
|
11108
11863
|
},
|
|
11864
|
+
{
|
|
11865
|
+
"name": "lr-rag-answer",
|
|
11866
|
+
"description": {
|
|
11867
|
+
"kind": "markdown",
|
|
11868
|
+
"value": "`<lr-rag-answer>` — a controlled grounded-answer surface combining sanitized Markdown, citation\nbadges, a grounding assessment, and source previews. It performs no model call, retrieval,\ncitation parsing, or source fetching.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| `answer` | Replaces the data-driven Markdown answer body. |\n| `sources` | Replaces the data-driven source list. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `answer` | The answer content wrapper. |\n| `base` | The root answer wrapper. |\n| `citation-list` | The citation badge row. |\n| `citations` | The citation section. |\n| `error` | The caller-supplied error message. |\n| `grounding` | The grounding assessment. |\n| `loading` | The loading indicator. |\n| `retry` | The retry button. |\n| `section-heading` | A localized section heading. |\n| `source-list` | The data-driven source list. |\n| `sources` | The source section. |"
|
|
11869
|
+
},
|
|
11870
|
+
"attributes": [
|
|
11871
|
+
{
|
|
11872
|
+
"name": "answer",
|
|
11873
|
+
"description": {
|
|
11874
|
+
"kind": "markdown",
|
|
11875
|
+
"value": "Type: `string` \nDefault: `''`"
|
|
11876
|
+
}
|
|
11877
|
+
},
|
|
11878
|
+
{
|
|
11879
|
+
"name": "aria-label",
|
|
11880
|
+
"description": {
|
|
11881
|
+
"kind": "markdown",
|
|
11882
|
+
"value": "Type: `string | null` \nDefault: `null`"
|
|
11883
|
+
}
|
|
11884
|
+
},
|
|
11885
|
+
{
|
|
11886
|
+
"name": "error",
|
|
11887
|
+
"description": {
|
|
11888
|
+
"kind": "markdown",
|
|
11889
|
+
"value": "Type: `string` \nDefault: `''`"
|
|
11890
|
+
}
|
|
11891
|
+
},
|
|
11892
|
+
{
|
|
11893
|
+
"name": "label",
|
|
11894
|
+
"description": {
|
|
11895
|
+
"kind": "markdown",
|
|
11896
|
+
"value": "Type: `string` \nDefault: `''`"
|
|
11897
|
+
}
|
|
11898
|
+
},
|
|
11899
|
+
{
|
|
11900
|
+
"name": "loading",
|
|
11901
|
+
"description": {
|
|
11902
|
+
"kind": "markdown",
|
|
11903
|
+
"value": "Type: `boolean` \nDefault: `false`"
|
|
11904
|
+
}
|
|
11905
|
+
},
|
|
11906
|
+
{
|
|
11907
|
+
"name": "locale",
|
|
11908
|
+
"description": {
|
|
11909
|
+
"kind": "markdown",
|
|
11910
|
+
"value": "Optional locale override. Otherwise the nearest `locale`/`lang` ancestor is used.\n\nType: `string` \nDefault: `''`"
|
|
11911
|
+
}
|
|
11912
|
+
},
|
|
11913
|
+
{
|
|
11914
|
+
"name": "show-claims",
|
|
11915
|
+
"description": {
|
|
11916
|
+
"kind": "markdown",
|
|
11917
|
+
"value": "Type: `boolean` \nDefault: `true`"
|
|
11918
|
+
}
|
|
11919
|
+
},
|
|
11920
|
+
{
|
|
11921
|
+
"name": "show-sources",
|
|
11922
|
+
"description": {
|
|
11923
|
+
"kind": "markdown",
|
|
11924
|
+
"value": "Type: `boolean` \nDefault: `true`"
|
|
11925
|
+
}
|
|
11926
|
+
}
|
|
11927
|
+
]
|
|
11928
|
+
},
|
|
11929
|
+
{
|
|
11930
|
+
"name": "lr-rag-eval-dashboard",
|
|
11931
|
+
"description": {
|
|
11932
|
+
"kind": "markdown",
|
|
11933
|
+
"value": "`<lr-rag-eval-dashboard>` — a controlled RAG quality overview with current metric cards,\nper-metric trends, evaluation slices, and run history. It displays host-computed metrics and\nnever executes datasets, retrieval, judges, or model calls.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The named dashboard region. |\n| `chart` | The active metric trend. |\n| `empty` | The empty state. |\n| `heading` | The visible dashboard heading. |\n| `metric` | One metric control. |\n| `metric-selected` | The controlled active metric. |\n| `metrics` | Metric-card controls. |\n| `run` | One evaluation run. |\n| `runs` | Evaluation run history. |\n| `runs-heading` | Run-history heading. |\n| `slice` | One slice filter. |\n| `slice-selected` | The controlled active slice. |\n| `slices` | Slice filter controls. |"
|
|
11934
|
+
},
|
|
11935
|
+
"attributes": [
|
|
11936
|
+
{
|
|
11937
|
+
"name": "chart-height",
|
|
11938
|
+
"description": {
|
|
11939
|
+
"kind": "markdown",
|
|
11940
|
+
"value": "Type: `string` \nDefault: `'220px'`"
|
|
11941
|
+
}
|
|
11942
|
+
},
|
|
11943
|
+
{
|
|
11944
|
+
"name": "label",
|
|
11945
|
+
"description": {
|
|
11946
|
+
"kind": "markdown",
|
|
11947
|
+
"value": "Type: `string` \nDefault: `''`"
|
|
11948
|
+
}
|
|
11949
|
+
},
|
|
11950
|
+
{
|
|
11951
|
+
"name": "locale",
|
|
11952
|
+
"description": {
|
|
11953
|
+
"kind": "markdown",
|
|
11954
|
+
"value": "Optional locale override. Otherwise the nearest `locale`/`lang` ancestor is used.\n\nType: `string` \nDefault: `''`"
|
|
11955
|
+
}
|
|
11956
|
+
},
|
|
11957
|
+
{
|
|
11958
|
+
"name": "metric-id",
|
|
11959
|
+
"description": {
|
|
11960
|
+
"kind": "markdown",
|
|
11961
|
+
"value": "Type: `string` \nDefault: `''`"
|
|
11962
|
+
}
|
|
11963
|
+
},
|
|
11964
|
+
{
|
|
11965
|
+
"name": "show-chart",
|
|
11966
|
+
"description": {
|
|
11967
|
+
"kind": "markdown",
|
|
11968
|
+
"value": "Type: `boolean` \nDefault: `true`"
|
|
11969
|
+
}
|
|
11970
|
+
},
|
|
11971
|
+
{
|
|
11972
|
+
"name": "slice",
|
|
11973
|
+
"description": {
|
|
11974
|
+
"kind": "markdown",
|
|
11975
|
+
"value": "Type: `string` \nDefault: `''`"
|
|
11976
|
+
}
|
|
11977
|
+
}
|
|
11978
|
+
]
|
|
11979
|
+
},
|
|
11109
11980
|
{
|
|
11110
11981
|
"name": "lr-random-content",
|
|
11111
11982
|
"description": {
|
|
11112
11983
|
"kind": "markdown",
|
|
11113
|
-
"value": "`<lr-random-content>` — displays a randomly (or sequentially) chosen\nsubset of its slotted children and hides the rest, for A/B copy testing,\ntestimonial/quote rotation, or varying marketing copy on each render or\ninterval without any custom JS beyond slotting the candidates.\n\nNot a form-associated control
|
|
11984
|
+
"value": "`<lr-random-content>` — displays a randomly (or sequentially) chosen\nsubset of its slotted children and hides the rest, for A/B copy testing,\ntestimonial/quote rotation, or varying marketing copy on each render or\ninterval without any custom JS beyond slotting the candidates.\n\nNot a form-associated control: it is a content-rotation primitive over\ncaller-supplied children, so the label/hint/error frame doesn't apply.\nIts only built-in action is the autoplay pause/resume control.\n\nThe host renders `display: block` by default, like the rest of this\nfamily. A consumer needing an inline text-fragment swap inside a sentence\ncan override `lr-random-content { display: inline; }` from outside —\nthat isn't baked in here, since `display: contents` on the host risks\naccessibility-tree inconsistencies across engines.\n\nSelection is driven by `autoplay`/`autoplayInterval` and the public\n`randomize()` method. When autoplay is enabled, a built-in localized\npause/resume action exposes the reflected `paused` state. Rotation also\nsuspends while focus is anywhere inside the component and never hides a\nsubtree that currently owns focus.\n\n`fade-left`/`fade-right` are physical-direction transforms (matching the\nupstream naming this component mirrors), not \"previous/next\" navigational\nsemantics like a carousel chevron, so they are deliberately **not**\nmirrored under `:host(:dir(rtl))`.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| (default) | The pool of candidate children. Only direct element children are eligible. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The wrapping element around the default slot. |\n| `pause-button` | The autoplay pause/resume action. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-random-content-animation-duration` (default: `300ms`) — Duration of the entrance animation.\n- `--lr-random-content-animation-easing` (default: `ease`) — Easing function for the entrance animation.\n- `--lr-random-content-animation-translate` (default: `var(--lr-size-0-5em)`) — Translation distance for directional animations."
|
|
11114
11985
|
},
|
|
11115
11986
|
"attributes": [
|
|
11116
11987
|
{
|
|
@@ -11154,6 +12025,13 @@
|
|
|
11154
12025
|
"kind": "markdown",
|
|
11155
12026
|
"value": "Selection algorithm — see `randomize()`.\n\nType: `LyraRandomContentMode` \nDefault: `'unique'`"
|
|
11156
12027
|
}
|
|
12028
|
+
},
|
|
12029
|
+
{
|
|
12030
|
+
"name": "paused",
|
|
12031
|
+
"description": {
|
|
12032
|
+
"kind": "markdown",
|
|
12033
|
+
"value": "Whether autoplay is user-paused. Reflected for external state styling.\n\nType: `boolean` \nDefault: `false`"
|
|
12034
|
+
}
|
|
11157
12035
|
}
|
|
11158
12036
|
]
|
|
11159
12037
|
},
|
|
@@ -11165,17 +12043,82 @@
|
|
|
11165
12043
|
},
|
|
11166
12044
|
"attributes": [
|
|
11167
12045
|
{
|
|
11168
|
-
"name": "aria-label",
|
|
12046
|
+
"name": "aria-label",
|
|
12047
|
+
"description": {
|
|
12048
|
+
"kind": "markdown",
|
|
12049
|
+
"value": "Type: `string` \nDefault: `''`"
|
|
12050
|
+
}
|
|
12051
|
+
},
|
|
12052
|
+
{
|
|
12053
|
+
"name": "disabled",
|
|
12054
|
+
"description": {
|
|
12055
|
+
"kind": "markdown",
|
|
12056
|
+
"value": "Type: `boolean` \nDefault: `false`"
|
|
12057
|
+
}
|
|
12058
|
+
},
|
|
12059
|
+
{
|
|
12060
|
+
"name": "locale",
|
|
12061
|
+
"description": {
|
|
12062
|
+
"kind": "markdown",
|
|
12063
|
+
"value": "Optional locale override. Otherwise the nearest `locale`/`lang` ancestor is used.\n\nType: `string` \nDefault: `''`"
|
|
12064
|
+
}
|
|
12065
|
+
},
|
|
12066
|
+
{
|
|
12067
|
+
"name": "max",
|
|
12068
|
+
"description": {
|
|
12069
|
+
"kind": "markdown",
|
|
12070
|
+
"value": "Type: `number` \nDefault: `5`"
|
|
12071
|
+
}
|
|
12072
|
+
},
|
|
12073
|
+
{
|
|
12074
|
+
"name": "precision",
|
|
12075
|
+
"description": {
|
|
12076
|
+
"kind": "markdown",
|
|
12077
|
+
"value": "Type: `number` \nDefault: `1`"
|
|
12078
|
+
}
|
|
12079
|
+
},
|
|
12080
|
+
{
|
|
12081
|
+
"name": "readonly",
|
|
12082
|
+
"description": {
|
|
12083
|
+
"kind": "markdown",
|
|
12084
|
+
"value": "Type: `boolean` \nDefault: `false`"
|
|
12085
|
+
}
|
|
12086
|
+
},
|
|
12087
|
+
{
|
|
12088
|
+
"name": "value",
|
|
12089
|
+
"description": {
|
|
12090
|
+
"kind": "markdown",
|
|
12091
|
+
"value": "Type: `number` \nDefault: `0`"
|
|
12092
|
+
}
|
|
12093
|
+
}
|
|
12094
|
+
]
|
|
12095
|
+
},
|
|
12096
|
+
{
|
|
12097
|
+
"name": "lr-realtime-session",
|
|
12098
|
+
"description": {
|
|
12099
|
+
"kind": "markdown",
|
|
12100
|
+
"value": "`<lr-realtime-session>` — a provider-neutral voice-session shell composing connection status,\nlive activity, transcript, native capture, mute, interruption, and connect/disconnect intents.\nTransport, authentication, audio playback, and SDK ownership remain with the host.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| `controls` | Additional provider-specific controls. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `activity` | Voice activity visualization. |\n| `base` | The named session region. |\n| `capture` | Native push-to-talk capture. |\n| `connect` | Connect action. |\n| `controls` | Built-in and slotted controls. |\n| `disconnect` | Disconnect action. |\n| `error` | Localized connection error. |\n| `header` | Status and session controls. |\n| `interrupt` | Response interruption action. |\n| `mute` | Controlled mute action. |\n| `status` | Connection status badge. |\n| `transcript` | Live transcript. |"
|
|
12101
|
+
},
|
|
12102
|
+
"attributes": [
|
|
12103
|
+
{
|
|
12104
|
+
"name": "error-code",
|
|
12105
|
+
"description": {
|
|
12106
|
+
"kind": "markdown",
|
|
12107
|
+
"value": "Type: `string` \nDefault: `''`"
|
|
12108
|
+
}
|
|
12109
|
+
},
|
|
12110
|
+
{
|
|
12111
|
+
"name": "label",
|
|
11169
12112
|
"description": {
|
|
11170
12113
|
"kind": "markdown",
|
|
11171
12114
|
"value": "Type: `string` \nDefault: `''`"
|
|
11172
12115
|
}
|
|
11173
12116
|
},
|
|
11174
12117
|
{
|
|
11175
|
-
"name": "
|
|
12118
|
+
"name": "level",
|
|
11176
12119
|
"description": {
|
|
11177
12120
|
"kind": "markdown",
|
|
11178
|
-
"value": "Type: `
|
|
12121
|
+
"value": "Type: `number | null` \nDefault: `null`"
|
|
11179
12122
|
}
|
|
11180
12123
|
},
|
|
11181
12124
|
{
|
|
@@ -11186,31 +12129,31 @@
|
|
|
11186
12129
|
}
|
|
11187
12130
|
},
|
|
11188
12131
|
{
|
|
11189
|
-
"name": "
|
|
12132
|
+
"name": "muted",
|
|
11190
12133
|
"description": {
|
|
11191
12134
|
"kind": "markdown",
|
|
11192
|
-
"value": "Type: `
|
|
12135
|
+
"value": "Type: `boolean` \nDefault: `false`"
|
|
11193
12136
|
}
|
|
11194
12137
|
},
|
|
11195
12138
|
{
|
|
11196
|
-
"name": "
|
|
12139
|
+
"name": "show-capture",
|
|
11197
12140
|
"description": {
|
|
11198
12141
|
"kind": "markdown",
|
|
11199
|
-
"value": "Type: `
|
|
12142
|
+
"value": "Type: `boolean` \nDefault: `true`"
|
|
11200
12143
|
}
|
|
11201
12144
|
},
|
|
11202
12145
|
{
|
|
11203
|
-
"name": "
|
|
12146
|
+
"name": "state",
|
|
11204
12147
|
"description": {
|
|
11205
12148
|
"kind": "markdown",
|
|
11206
|
-
"value": "Type: `
|
|
12149
|
+
"value": "Type: `RealtimeConnectionState` \nDefault: `'disconnected'`"
|
|
11207
12150
|
}
|
|
11208
12151
|
},
|
|
11209
12152
|
{
|
|
11210
|
-
"name": "
|
|
12153
|
+
"name": "voice-state",
|
|
11211
12154
|
"description": {
|
|
11212
12155
|
"kind": "markdown",
|
|
11213
|
-
"value": "Type: `
|
|
12156
|
+
"value": "Type: `AudioVisualizerState` \nDefault: `'idle'`"
|
|
11214
12157
|
}
|
|
11215
12158
|
}
|
|
11216
12159
|
]
|
|
@@ -11322,7 +12265,7 @@
|
|
|
11322
12265
|
"name": "label",
|
|
11323
12266
|
"description": {
|
|
11324
12267
|
"kind": "markdown",
|
|
11325
|
-
"value": "Accessible name for the list, set as `aria-label` on the internal `role=\"list\"` element. A\nplain `aria-label` attribute on the host itself is honored as a fallback when this is left\nunset, matching `<lr-control-group>`. Native lists don't require an accessible name, so this\nhas no forced fallback string when both are left unset.\n\nType: `string` \nDefault: `
|
|
12268
|
+
"value": "Accessible name for the list, set as `aria-label` on the internal `role=\"list\"` element. A\nplain `aria-label` attribute on the host itself is honored as a fallback when this is left\nunset, matching `<lr-control-group>`. Native lists don't require an accessible name, so this\nhas no forced fallback string when both are left unset.\n\nType: `string` \nDefault: `\"\"`"
|
|
11326
12269
|
}
|
|
11327
12270
|
},
|
|
11328
12271
|
{
|
|
@@ -11375,14 +12318,14 @@
|
|
|
11375
12318
|
"name": "aria-label",
|
|
11376
12319
|
"description": {
|
|
11377
12320
|
"kind": "markdown",
|
|
11378
|
-
"value": "Host-level `aria-label` override for the overlay presentation's accessible name -- wins over\nevery other source (`label`, the header-slot fallback), matching `<lr-dialog>`'s\n`accessibleLabel` pattern. See the class doc for the full precedence order. Set as a plain\n`aria-label` attribute on `<lr-responsive-panel>` itself, not a public JS property.\n\nType:
|
|
12321
|
+
"value": "Host-level `aria-label` override for the overlay presentation's accessible name -- wins over\nevery other source (`label`, the header-slot fallback), matching `<lr-dialog>`'s\n`accessibleLabel` pattern. See the class doc for the full precedence order. Set as a plain\n`aria-label` attribute on `<lr-responsive-panel>` itself, not a public JS property.\n\nType: `| string\n | null` \nDefault: `null`"
|
|
11379
12322
|
}
|
|
11380
12323
|
},
|
|
11381
12324
|
{
|
|
11382
12325
|
"name": "label",
|
|
11383
12326
|
"description": {
|
|
11384
12327
|
"kind": "markdown",
|
|
11385
|
-
"value": "Accessible name for the overlay presentation's `role=\"dialog\"`. Unused in the inline\npresentation, which has no dialog semantics to name. When empty, falls back to the `header`\nslot's content -- see the class doc for the full fallback order.\n\nType: `string` \nDefault: `
|
|
12328
|
+
"value": "Accessible name for the overlay presentation's `role=\"dialog\"`. Unused in the inline\npresentation, which has no dialog semantics to name. When empty, falls back to the `header`\nslot's content -- see the class doc for the full fallback order.\n\nType: `string` \nDefault: `\"\"`"
|
|
11386
12329
|
}
|
|
11387
12330
|
},
|
|
11388
12331
|
{
|
|
@@ -11396,14 +12339,14 @@
|
|
|
11396
12339
|
"name": "mobile-breakpoint",
|
|
11397
12340
|
"description": {
|
|
11398
12341
|
"kind": "markdown",
|
|
11399
|
-
"value": "CSS length passed to `matchMedia` as `(max-width: <this>)` to decide, in `mode=\"auto\"`,\nwhether the effective presentation is `'overlay'` (below/at this width) or `'inline'`\n(above it).\n\nType: `string` \nDefault:
|
|
12342
|
+
"value": "CSS length passed to `matchMedia` as `(max-width: <this>)` to decide, in `mode=\"auto\"`,\nwhether the effective presentation is `'overlay'` (below/at this width) or `'inline'`\n(above it).\n\nType: `string` \nDefault: `\"768px\"`"
|
|
11400
12343
|
}
|
|
11401
12344
|
},
|
|
11402
12345
|
{
|
|
11403
12346
|
"name": "mode",
|
|
11404
12347
|
"description": {
|
|
11405
12348
|
"kind": "markdown",
|
|
11406
|
-
"value": "`'auto'` (default) tracks `mobile-breakpoint` live; `'inline'`/`'overlay'` force that\npresentation regardless of viewport width.\n\nType: `ResponsivePanelMode` \nDefault:
|
|
12349
|
+
"value": "`'auto'` (default) tracks `mobile-breakpoint` live; `'inline'`/`'overlay'` force that\npresentation regardless of viewport width.\n\nType: `ResponsivePanelMode` \nDefault: `\"auto\"`"
|
|
11407
12350
|
}
|
|
11408
12351
|
},
|
|
11409
12352
|
{
|
|
@@ -11417,7 +12360,7 @@
|
|
|
11417
12360
|
"name": "variant",
|
|
11418
12361
|
"description": {
|
|
11419
12362
|
"kind": "markdown",
|
|
11420
|
-
"value": "Only affects the overlay presentation's visual treatment -- `'fullscreen'` (default) covers\nthe whole viewport; `'bottom-sheet'` slides up from the bottom and doesn't cover the full\nheight.\n\nType: `ResponsivePanelVariant` \nDefault:
|
|
12363
|
+
"value": "Only affects the overlay presentation's visual treatment -- `'fullscreen'` (default) covers\nthe whole viewport; `'bottom-sheet'` slides up from the bottom and doesn't cover the full\nheight.\n\nType: `ResponsivePanelVariant` \nDefault: `\"fullscreen\"`"
|
|
11421
12364
|
}
|
|
11422
12365
|
}
|
|
11423
12366
|
]
|
|
@@ -11489,6 +12432,43 @@
|
|
|
11489
12432
|
}
|
|
11490
12433
|
]
|
|
11491
12434
|
},
|
|
12435
|
+
{
|
|
12436
|
+
"name": "lr-retrieval-compare",
|
|
12437
|
+
"description": {
|
|
12438
|
+
"kind": "markdown",
|
|
12439
|
+
"value": "`<lr-retrieval-compare>` — a side-by-side retrieval/reranking workbench that makes rank,\noverlap, and dense/sparse/rerank/final score changes inspectable. It never performs retrieval.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The named comparison region. |\n| `chunk` | A selectable chunk row. |\n| `chunk-rank` | The effective rank. |\n| `chunk-selected` | The selected chunk row. |\n| `chunk-text` | Retrieved text. |\n| `chunk-title` | The source title. |\n| `chunks` | One ranked list. |\n| `empty` | The empty state. |\n| `overlap` | The pairwise top-k Jaccard overlap summary. |\n| `score` | One named score. |\n| `scores` | Score-breakdown list. |\n| `set` | One result-set column. |\n| `set-heading` | A caller-supplied result-set label. |\n| `sets` | Horizontally scrollable set grid. |"
|
|
12440
|
+
},
|
|
12441
|
+
"attributes": [
|
|
12442
|
+
{
|
|
12443
|
+
"name": "label",
|
|
12444
|
+
"description": {
|
|
12445
|
+
"kind": "markdown",
|
|
12446
|
+
"value": "Type: `string` \nDefault: `''`"
|
|
12447
|
+
}
|
|
12448
|
+
},
|
|
12449
|
+
{
|
|
12450
|
+
"name": "locale",
|
|
12451
|
+
"description": {
|
|
12452
|
+
"kind": "markdown",
|
|
12453
|
+
"value": "Optional locale override. Otherwise the nearest `locale`/`lang` ancestor is used.\n\nType: `string` \nDefault: `''`"
|
|
12454
|
+
}
|
|
12455
|
+
},
|
|
12456
|
+
{
|
|
12457
|
+
"name": "selected-chunk-id",
|
|
12458
|
+
"description": {
|
|
12459
|
+
"kind": "markdown",
|
|
12460
|
+
"value": "Type: `string` \nDefault: `''`"
|
|
12461
|
+
}
|
|
12462
|
+
},
|
|
12463
|
+
{
|
|
12464
|
+
"name": "top-k",
|
|
12465
|
+
"description": {
|
|
12466
|
+
"kind": "markdown",
|
|
12467
|
+
"value": "Type: `number` \nDefault: `10`"
|
|
12468
|
+
}
|
|
12469
|
+
}
|
|
12470
|
+
]
|
|
12471
|
+
},
|
|
11492
12472
|
{
|
|
11493
12473
|
"name": "lr-retrieval-results",
|
|
11494
12474
|
"description": {
|
|
@@ -11680,7 +12660,7 @@
|
|
|
11680
12660
|
"name": "label",
|
|
11681
12661
|
"description": {
|
|
11682
12662
|
"kind": "markdown",
|
|
11683
|
-
"value": "Accessible name for the internal timeline.
|
|
12663
|
+
"value": "Accessible name for the internal timeline. A host `aria-label` wins; otherwise this value\nfalls back to the timeline's own localized default.\n\nType: `string` \nDefault: `''`"
|
|
11684
12664
|
}
|
|
11685
12665
|
},
|
|
11686
12666
|
{
|
|
@@ -11778,6 +12758,13 @@
|
|
|
11778
12758
|
"value": "Type: `boolean` \nDefault: `true`"
|
|
11779
12759
|
}
|
|
11780
12760
|
},
|
|
12761
|
+
{
|
|
12762
|
+
"name": "data-labels",
|
|
12763
|
+
"description": {
|
|
12764
|
+
"kind": "markdown",
|
|
12765
|
+
"value": "Draws each data point's value on the chart via the optional\n`chartjs-plugin-datalabels` peer. Unset (the default) leaves labels off for\nthis chart; the peer is attached only to instances that opt in, and\n`buildConfig()` keeps its per-chart options disabled until this is set. The\nscreen-reader equivalent is the always-present data table (see\n`show-data-table`); labels are a purely visual, canvas-only addition.\n\nType: `boolean` \nDefault: `false`"
|
|
12766
|
+
}
|
|
12767
|
+
},
|
|
11781
12768
|
{
|
|
11782
12769
|
"name": "height",
|
|
11783
12770
|
"description": {
|
|
@@ -11820,6 +12807,13 @@
|
|
|
11820
12807
|
"value": "Makes the generated data table visible; it remains screen-reader available when false.\n\nType: `boolean` \nDefault: `false`"
|
|
11821
12808
|
}
|
|
11822
12809
|
},
|
|
12810
|
+
{
|
|
12811
|
+
"name": "stack-totals",
|
|
12812
|
+
"description": {
|
|
12813
|
+
"kind": "markdown",
|
|
12814
|
+
"value": "When the chart is `stacked` (bar/line only), draws the per-category stack\ntotal above each stack, via the same optional `chartjs-plugin-datalabels`\npeer as `data-labels`. Null/undefined points are skipped; a category whose\nevery value is null shows no total. Unset (the default) draws nothing.\n\nType: `boolean` \nDefault: `false`"
|
|
12815
|
+
}
|
|
12816
|
+
},
|
|
11823
12817
|
{
|
|
11824
12818
|
"name": "stacked",
|
|
11825
12819
|
"description": {
|
|
@@ -11864,6 +12858,43 @@
|
|
|
11864
12858
|
}
|
|
11865
12859
|
]
|
|
11866
12860
|
},
|
|
12861
|
+
{
|
|
12862
|
+
"name": "lr-schema-viewer",
|
|
12863
|
+
"description": {
|
|
12864
|
+
"kind": "markdown",
|
|
12865
|
+
"value": "`<lr-schema-viewer>` — a recursive, selectable JSON Schema inspector with required-state,\nconstraints, composition branches, `$ref` display, validation issues, cycle protection, and a\nconfigurable depth ceiling. It does not resolve remote references or validate values.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The named schema region. |\n| `constraints` | Recognized schema constraints. |\n| `description` | Caller-supplied schema description. |\n| `empty` | The empty state. |\n| `issue` | One caller-supplied validation issue. |\n| `limit` | Resource-ceiling status shown when additional nodes are omitted. |\n| `name` | Property/branch name. |\n| `node` | One schema node. |\n| `node-selected` | The selected schema node. |\n| `node-trigger` | A schema-node activation button. |\n| `required` | Required badge. |\n| `tree` | The recursive schema tree. |\n| `type` | Schema type badge. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-schema-viewer-selected-border` (default: `var(--lr-color-brand)`) — Selected node branch.\n- `--lr-schema-viewer-error-border` (default: `var(--lr-color-danger)`) — Error issue border.\n- `--lr-schema-viewer-error-bg` (default: `var(--lr-color-danger-quiet)`) — Error issue background.\n- `--lr-schema-viewer-warning-border` (default: `var(--lr-color-warning)`) — Warning issue border.\n- `--lr-schema-viewer-warning-bg` (default: `var(--lr-color-warning-quiet)`) — Warning issue background."
|
|
12866
|
+
},
|
|
12867
|
+
"attributes": [
|
|
12868
|
+
{
|
|
12869
|
+
"name": "label",
|
|
12870
|
+
"description": {
|
|
12871
|
+
"kind": "markdown",
|
|
12872
|
+
"value": "Type: `string` \nDefault: `''`"
|
|
12873
|
+
}
|
|
12874
|
+
},
|
|
12875
|
+
{
|
|
12876
|
+
"name": "locale",
|
|
12877
|
+
"description": {
|
|
12878
|
+
"kind": "markdown",
|
|
12879
|
+
"value": "Optional locale override. Otherwise the nearest `locale`/`lang` ancestor is used.\n\nType: `string` \nDefault: `''`"
|
|
12880
|
+
}
|
|
12881
|
+
},
|
|
12882
|
+
{
|
|
12883
|
+
"name": "max-depth",
|
|
12884
|
+
"description": {
|
|
12885
|
+
"kind": "markdown",
|
|
12886
|
+
"value": "Requested nesting depth, clamped to 100 to keep recursive template construction stack-safe.\n\nType: `number` \nDefault: `20`"
|
|
12887
|
+
}
|
|
12888
|
+
},
|
|
12889
|
+
{
|
|
12890
|
+
"name": "selected-path",
|
|
12891
|
+
"description": {
|
|
12892
|
+
"kind": "markdown",
|
|
12893
|
+
"value": "Type: `string` \nDefault: `''`"
|
|
12894
|
+
}
|
|
12895
|
+
}
|
|
12896
|
+
]
|
|
12897
|
+
},
|
|
11867
12898
|
{
|
|
11868
12899
|
"name": "lr-scroller",
|
|
11869
12900
|
"description": {
|
|
@@ -11889,7 +12920,7 @@
|
|
|
11889
12920
|
"name": "label",
|
|
11890
12921
|
"description": {
|
|
11891
12922
|
"kind": "markdown",
|
|
11892
|
-
"value": "Type: `string` \nDefault: `
|
|
12923
|
+
"value": "Type: `string` \nDefault: `\"\"`"
|
|
11893
12924
|
}
|
|
11894
12925
|
},
|
|
11895
12926
|
{
|
|
@@ -11903,7 +12934,7 @@
|
|
|
11903
12934
|
"name": "orientation",
|
|
11904
12935
|
"description": {
|
|
11905
12936
|
"kind": "markdown",
|
|
11906
|
-
"value": "Type: `ScrollerOrientation` \nDefault:
|
|
12937
|
+
"value": "Type: `ScrollerOrientation` \nDefault: `\"horizontal\"`"
|
|
11907
12938
|
}
|
|
11908
12939
|
},
|
|
11909
12940
|
{
|
|
@@ -11919,14 +12950,14 @@
|
|
|
11919
12950
|
"name": "lr-segmented",
|
|
11920
12951
|
"description": {
|
|
11921
12952
|
"kind": "markdown",
|
|
11922
|
-
"value": "`<lr-segmented>` — a single-select button row with the WAI-ARIA APG `radiogroup` contract\nbuilt in: `role=\"radiogroup\"`/`role=\"radio\"`, roving tabindex, automatic activation (click or\narrow-key move both select immediately, like a native radio group), cyclic Arrow/Home/End\nnavigation among non-disabled items. First-party invention --\n\"choose exactly one of N labeled options, rendered as a button row\" is ubiquitous\nsettings/filter-panel UI. Supports the same `2xs`-`xl` compact-form-control `size` scale as\n`<lr-select>`/`<lr-combobox>`/`<lr-input>`, so it can sit flush beside those controls in a\ntoolbar at a matching height.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The `role=\"radiogroup\"` root. |\n| `segment` | A single `role=\"radio\"` button. |\n| `segment-icon` | Optional leading visual supplied by the item's `icon` field; content may have a natural aspect ratio and is not restricted to a square icon. |\n| `segment-label` | The segment's label text. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-scroll-fade-size` (default: `2rem`) — Width of the static fade at each horizontal scroll edge.\n- `--lr-segmented-track-min-height` (default: `var(--lr-size-2-5rem)`) — Minimum height of the `base` track. Re-set per `size` (`2xs` through `xl`); the `2.5rem` (40px) default applies at the unset/`m` size, matching `<lr-input>`/`<lr-select>`/`<lr-combobox>`'s own shared default-tier floor. Because it is declared on `:host` per tier, override it on the element itself, not on an ancestor.\n- `--lr-segmented-track-height` — Exact height of the `base` track, pinning it at every `size` tier (sets both `block-size` and `min-block-size`) so the row can sit flush beside a hard-sized toolbar control. **Genuinely unset by default** — while unset each tier keeps its own `--lr-segmented-track-min-height` floor and the track grows with its content.\n- `--lr-segmented-selected-bg` (default: `var(--lr-color-surface)`) — Background of the checked segment. Scoped to `[aria-checked='true']` only, so it never repaints a hovered unselected segment (which is what hijacking `--lr-color-surface` library-wide used to do).\n- `--lr-segmented-selected-color` (default: `var(--lr-color-text)`) — Text color of the checked segment.\n- `--lr-segmented-selected-font-weight` (default: `var(--lr-font-weight-semibold)`) — Font weight of the checked segment.\n- `--lr-segmented-selected-shadow` (default: `var(--lr-shadow)`) — Box shadow lifting the checked segment off the track.\n- `--lr-segmented-hover-color` (default: `var(--lr-color-text)`) — Text color of a hovered segment that is neither checked nor disabled. Independent of the selected-state props above — recoloring the checked pill leaves this untouched.\n- `--lr-segmented-segment-padding` (default: `var(--lr-size-0-125rem) var(--lr-space-s)`) — Each segment's padding. Re-set per `size`; this default applies at the unset/`m` size.\n- `--lr-segmented-font-size` (default: `var(--lr-font-size-sm)`) — Each segment's font size. Re-set per `size`; this default applies at the unset/`m` size."
|
|
12953
|
+
"value": "`<lr-segmented>` — a single-select button row with the WAI-ARIA APG `radiogroup` contract\nbuilt in: `role=\"radiogroup\"`/`role=\"radio\"`, roving tabindex, automatic activation (click or\narrow-key move both select immediately, like a native radio group), cyclic Arrow/Home/End\nnavigation among non-disabled items. First-party invention --\n\"choose exactly one of N labeled options, rendered as a button row\" is ubiquitous\nsettings/filter-panel UI. Supports the same `2xs`-`xl` compact-form-control `size` scale as\n`<lr-select>`/`<lr-combobox>`/`<lr-input>`, so it can sit flush beside those controls in a\ntoolbar at a matching height.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The `role=\"radiogroup\"` root. |\n| `segment` | A single `role=\"radio\"` button. |\n| `segment-icon` | Optional leading visual supplied by the item's `icon` field; content may have a natural aspect ratio and is not restricted to a square icon. |\n| `segment-label` | The segment's label text. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-scroll-fade-size` (default: `2rem`) — Width of the static fade at each horizontal scroll edge.\n- `--lr-segmented-track-min-height` (default: `var(--lr-size-2-5rem)`) — Minimum height of the `base` track. Re-set per `size` (`2xs` through `xl`); the `2.5rem` (40px) default applies at the unset/`m` size, matching `<lr-input>`/`<lr-select>`/`<lr-combobox>`'s own shared default-tier floor. Because it is declared on `:host` per tier, override it on the element itself, not on an ancestor.\n- `--lr-segmented-track-height` — Exact height of the `base` track, pinning it at every `size` tier (sets both `block-size` and `min-block-size`) so the row can sit flush beside a hard-sized toolbar control. **Genuinely unset by default** — while unset each tier keeps its own `--lr-segmented-track-min-height` floor and the track grows with its content.\n- `--lr-segmented-selected-bg` (default: `var(--lr-color-surface)`) — Background of the checked segment. Scoped to `[aria-checked='true']` only, so it never repaints a hovered unselected segment (which is what hijacking `--lr-color-surface` library-wide used to do).\n- `--lr-segmented-selected-color` (default: `var(--lr-color-text)`) — Text color of the checked segment.\n- `--lr-segmented-selected-font-weight` (default: `var(--lr-font-weight-semibold)`) — Font weight of the checked segment.\n- `--lr-segmented-selected-shadow` (default: `var(--lr-shadow)`) — Box shadow lifting the checked segment off the track.\n- `--lr-segmented-hover-color` (default: `var(--lr-color-text)`) — Text color of a hovered segment that is neither checked nor disabled. Independent of the selected-state props above — recoloring the checked pill leaves this untouched.\n- `--lr-segmented-segment-padding` (default: `var(--lr-size-0-125rem) var(--lr-space-s)`) — Each segment's padding. Re-set per `size`; this default applies at the unset/`m` size.\n- `--lr-segmented-font-size` (default: `var(--lr-font-size-sm)`) — Each segment's font size. Re-set per `size`; this default applies at the unset/`m` size.\n- `--lr-segmented-track-gap` (default: `var(--lr-size-0-125rem)`) — Gap between segments.\n- `--lr-segmented-track-radius` (default: `var(--lr-radius)`) — Track corner radius.\n- `--lr-segmented-track-padding` (default: `var(--lr-size-0-125rem)`) — Track inset padding."
|
|
11923
12954
|
},
|
|
11924
12955
|
"attributes": [
|
|
11925
12956
|
{
|
|
11926
12957
|
"name": "label",
|
|
11927
12958
|
"description": {
|
|
11928
12959
|
"kind": "markdown",
|
|
11929
|
-
"value": "Accessible name for the radiogroup, used when no visible label context\nexists around it (e.g. no wrapping `<label>` or adjacent heading). Set\nas `aria-label` on the `role=\"radiogroup\"` element. A plain `aria-label`\nattribute on the host itself is honored as a fallback when this is left\nunset, matching `<lr-slider>`.\n\nType: `string` \nDefault: `
|
|
12960
|
+
"value": "Accessible name for the radiogroup, used when no visible label context\nexists around it (e.g. no wrapping `<label>` or adjacent heading). Set\nas `aria-label` on the `role=\"radiogroup\"` element. A plain `aria-label`\nattribute on the host itself is honored as a fallback when this is left\nunset, matching `<lr-slider>`.\n\nType: `string` \nDefault: `\"\"`"
|
|
11930
12961
|
}
|
|
11931
12962
|
},
|
|
11932
12963
|
{
|
|
@@ -11940,14 +12971,14 @@
|
|
|
11940
12971
|
"name": "size",
|
|
11941
12972
|
"description": {
|
|
11942
12973
|
"kind": "markdown",
|
|
11943
|
-
"value": "Visual size — same `2xs`-`xl` scale as `<lr-select>`/`<lr-combobox>` (`s` through `xl`)\nand `<lr-input>` (`2xs`). Reflects as the `size` attribute. The default `m` tier is\nidentical to this component's pre-`size` rendering, so leaving it unset never changes\noutput.\n\nType: `LyraSegmentedSize` \nDefault:
|
|
12974
|
+
"value": "Visual size — same `2xs`-`xl` scale as `<lr-select>`/`<lr-combobox>` (`s` through `xl`)\nand `<lr-input>` (`2xs`). Reflects as the `size` attribute. The default `m` tier is\nidentical to this component's pre-`size` rendering, so leaving it unset never changes\noutput.\n\nType: `LyraSegmentedSize` \nDefault: `\"m\"`"
|
|
11944
12975
|
}
|
|
11945
12976
|
},
|
|
11946
12977
|
{
|
|
11947
12978
|
"name": "value",
|
|
11948
12979
|
"description": {
|
|
11949
12980
|
"kind": "markdown",
|
|
11950
|
-
"value": "The currently selected item's `value`.\n\nType: `string` \nDefault: `
|
|
12981
|
+
"value": "The currently selected item's `value`.\n\nType: `string` \nDefault: `\"\"`"
|
|
11951
12982
|
}
|
|
11952
12983
|
}
|
|
11953
12984
|
]
|
|
@@ -11956,7 +12987,7 @@
|
|
|
11956
12987
|
"name": "lr-select",
|
|
11957
12988
|
"description": {
|
|
11958
12989
|
"kind": "markdown",
|
|
11959
|
-
"value": "`<lr-select>` — a plain closed-list dropdown: a direct `<lr-*>`\ncounterpart to `<wa-select>`/`<wa-option>`. Trigger is a button (not a text\ninput) -- click/Enter/Space/ArrowDown opens it, there's no typing-to-filter.\nA printable keypress instead jumps (or, while closed, directly selects) the\nnext option whose label starts with what's been typed, like a native\n`<select>`'s type-ahead.\n\nOptions are `<lr-option value>` children, the same element `<lr-combobox>`\nuses. Unlike `lr-combobox` this is single-select only, with no filter/\nsource/with-clear/max-options-visible/empty-text/max-render/multiple surface\n-- see `<lr-combobox>` for the filterable/multi-select case.\n\nReuses `lr-combobox`'s popup positioning (`internal/positioner.js`) and\nclick-outside/Escape/Home/End/Arrow-key listbox navigation patterns,\nadapted to a trigger button that keeps DOM focus throughout (the listbox's\n\"active\" row is conveyed via `aria-activedescendant`, never actual focus),\nmatching the WAI-ARIA \"select-only combobox\" pattern.\n\nWhen `autoCommitSingleOption` is set and exactly one option is enabled\n(regardless of how many disabled ones exist alongside it), the popup never\nopens at all: a click, Enter, Space, ArrowDown, or ArrowUp on the trigger\ncommits that sole option directly, and the trigger renders as a plain\n`role=\"button\"` with no chevron/`aria-haspopup`/`aria-expanded` rather than\na combobox with a permanently inert popup state — opening a one-row list to\npick the only available choice is pure friction with no real decision\nbehind it. This never changes `value`/validity defaults on its own — an\nunselected single-option select stays unselected (and a `required` one\nstays invalid) exactly like the multi-option case, until the trigger is\nactually activated. `autoCommitSingleOption` defaults to `false`: by\ndefault a select always renders the normal combobox/listbox/chevron\ntrigger no matter how many options are enabled, matching pre-1.3.0\nbehavior — opt in explicitly if a narrowing-to-one option list should\nauto-commit.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| (default) | `<lr-option>` elements. |\n| `end` | Adornment after the selected-value label and before the expand icon. |\n| `error` | Custom error content. |\n| `hint` | Custom hint content. |\n| `label` | Custom label content. |\n| `start` | Adornment at the inline-start of the trigger row, before the selected-value label. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `end` | Wrapper around the `end` adornment slot; `hidden` while nothing is slotted. |\n| `error` | The error message. |\n| `expand-icon` | The dropdown indicator. |\n| `form-control` | The outer wrapper around label, trigger, listbox, error and hint. |\n| `form-control-label` | The `<label>` element. |\n| `group-label` | An option group's heading row (shown when any option declares a `group`). |\n| `hint` | The hint message. |\n| `listbox` | The options popover. |\n| `option` | An option row. |\n| `option-dot` | An option row's leading status dot (when `dot-color` is set). |\n| `option-label` | An option row's label/sub wrapper. |\n| `option-sub` | An option row's secondary line (when `sub` is set). |\n| `start` | Wrapper around the `start` adornment slot; `hidden` while nothing is slotted. |\n| `trigger` | The trigger button (positioning anchor). |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-select-expand-size` — Decorative expand-icon box size, scaled by `size`.\n- `--lr-select-gap` — Gap between the trigger's start adornment, label, end adornment, and expand icon. Doesn't vary by `size`.\n- `--lr-select-radius` — Trigger corner radius. Doesn't vary by `size`.\n- `--lr-select-trigger-padding` — Trigger padding shorthand, scaled by `size`.\n- `--lr-select-trigger-min-height` — Trigger block-size floor, scaled by `size`, and live at every tier including the default `m` (`2.5rem`, matching `<lr-input>`/`<lr-combobox>` at that tier).\n- `--lr-select-font-size` — Trigger font size, scaled by `size`.\n- `--lr-select-option-active-bg` (default: `var(--lr-color-brand-quiet)`) — Background of the hovered/keyboard-active option row. Not declared on `:host`, so a value set on any ancestor is never shadowed -- retheme just this row state without hijacking the shared `--lr-color-brand-quiet` token used by every other component's own hover/active state.\n- `--lr-select-trigger-height` — Exact trigger height. Unset by default, which leaves `--lr-select-trigger-min-height` as a floor only; set it to a length to both floor and cap the trigger (e.g. to pixel-match a sibling field in the same toolbar row). Because it is never declared by the component itself, it can be set from an ancestor or an outer-tree rule as well as inline on the element."
|
|
12990
|
+
"value": "`<lr-select>` — a plain closed-list dropdown: a direct `<lr-*>`\ncounterpart to `<wa-select>`/`<wa-option>`. Trigger is a button (not a text\ninput) -- click/Enter/Space/ArrowDown opens it, there's no typing-to-filter.\nA printable keypress instead jumps (or, while closed, directly selects) the\nnext option whose label starts with what's been typed, like a native\n`<select>`'s type-ahead.\n\nOptions are `<lr-option value>` children, the same element `<lr-combobox>`\nuses. Unlike `lr-combobox` this is single-select only, with no filter/\nsource/with-clear/max-options-visible/empty-text/max-render/multiple surface\n-- see `<lr-combobox>` for the filterable/multi-select case.\n\nReuses `lr-combobox`'s popup positioning (`internal/positioner.js`) and\nclick-outside/Escape/Home/End/Arrow-key listbox navigation patterns,\nadapted to a trigger button that keeps DOM focus throughout (the listbox's\n\"active\" row is conveyed via `aria-activedescendant`, never actual focus),\nmatching the WAI-ARIA \"select-only combobox\" pattern.\n\nWhen `autoCommitSingleOption` is set and exactly one option is enabled\n(regardless of how many disabled ones exist alongside it), the popup never\nopens at all: a click, Enter, Space, ArrowDown, or ArrowUp on the trigger\ncommits that sole option directly, and the trigger renders as a plain\n`role=\"button\"` with no chevron/`aria-haspopup`/`aria-expanded` rather than\na combobox with a permanently inert popup state — opening a one-row list to\npick the only available choice is pure friction with no real decision\nbehind it. This never changes `value`/validity defaults on its own — an\nunselected single-option select stays unselected (and a `required` one\nstays invalid) exactly like the multi-option case, until the trigger is\nactually activated. `autoCommitSingleOption` defaults to `false`: by\ndefault a select always renders the normal combobox/listbox/chevron\ntrigger no matter how many options are enabled, matching pre-1.3.0\nbehavior — opt in explicitly if a narrowing-to-one option list should\nauto-commit.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| (default) | `<lr-option>` elements. |\n| `end` | Adornment after the selected-value label and before the expand icon. |\n| `error` | Custom error content. |\n| `hint` | Custom hint content. |\n| `label` | Custom label content. |\n| `start` | Adornment at the inline-start of the trigger row, before the selected-value label. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `end` | Wrapper around the `end` adornment slot; `hidden` while nothing is slotted. |\n| `error` | The error message. |\n| `expand-icon` | The dropdown indicator. |\n| `form-control` | The outer wrapper around label, trigger, listbox, error and hint. |\n| `form-control-label` | The `<label>` element. |\n| `group-label` | An option group's heading row (shown when any option declares a `group`). |\n| `hint` | The hint message. |\n| `listbox` | The options popover. |\n| `option` | An option row. |\n| `option-dot` | An option row's leading status dot (when `dot-color` is set). |\n| `option-label` | An option row's label/sub wrapper. |\n| `option-sub` | An option row's secondary line (when `sub` is set). |\n| `start` | Wrapper around the `start` adornment slot; `hidden` while nothing is slotted. |\n| `trigger` | The trigger button (positioning anchor). |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-select-expand-size` — Decorative expand-icon box size, scaled by `size`.\n- `--lr-select-gap` — Gap between the trigger's start adornment, label, end adornment, and expand icon. Doesn't vary by `size`.\n- `--lr-select-radius` — Trigger corner radius. Doesn't vary by `size`.\n- `--lr-select-trigger-padding` — Trigger padding shorthand, scaled by `size`.\n- `--lr-select-trigger-min-height` — Trigger block-size floor, scaled by `size`, and live at every tier including the default `m` (`2.5rem`, matching `<lr-input>`/`<lr-combobox>` at that tier).\n- `--lr-select-font-size` — Trigger font size, scaled by `size`.\n- `--lr-select-option-active-bg` (default: `var(--lr-color-brand-quiet)`) — Background of the hovered/keyboard-active option row. Not declared on `:host`, so a value set on any ancestor is never shadowed -- retheme just this row state without hijacking the shared `--lr-color-brand-quiet` token used by every other component's own hover/active state.\n- `--lr-select-option-selected-bg` (default: `transparent`) — Background of the currently-selected option row. Not declared on `:host`; retheme just the selected row without hijacking `--lr-color-brand`.\n- `--lr-select-option-selected-border` (default: `var(--lr-color-brand)`) — Border color of the selected option row.\n- `--lr-select-option-selected-color` (default: `var(--lr-color-brand)`) — Text color of the selected option row.\n- `--lr-select-option-selected-font-weight` (default: `var(--lr-font-weight-semibold)`) — Font weight of the selected option row.\n- `--lr-select-trigger-height` — Exact trigger height. Unset by default, which leaves `--lr-select-trigger-min-height` as a floor only; set it to a length to both floor and cap the trigger (e.g. to pixel-match a sibling field in the same toolbar row). Because it is never declared by the component itself, it can be set from an ancestor or an outer-tree rule as well as inline on the element."
|
|
11960
12991
|
},
|
|
11961
12992
|
"attributes": [
|
|
11962
12993
|
{
|
|
@@ -12045,11 +13076,55 @@
|
|
|
12045
13076
|
}
|
|
12046
13077
|
]
|
|
12047
13078
|
},
|
|
13079
|
+
{
|
|
13080
|
+
"name": "lr-selection-toolbar",
|
|
13081
|
+
"description": {
|
|
13082
|
+
"kind": "markdown",
|
|
13083
|
+
"value": "`<lr-selection-toolbar>` — a nonmodal action toolbar positioned above selected text. It carries\nthe selected text and a format-neutral document anchor into ask, quote, cite, or copy actions.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `action` | Every action button. |\n| `action-ask` | The ask action. |\n| `action-cite` | The cite action. |\n| `action-copy` | The copy action. |\n| `action-quote` | The quote action. |\n| `toolbar` | The floating `role=\"toolbar\"` surface. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-selection-toolbar-inline-start` — Computed logical inline anchor position.\n- `--lr-selection-toolbar-block-start` — Computed logical block anchor position.\n- `--lr-selection-toolbar-inline-shift` — Computed inline collision-avoidance offset.\n- `--lr-selection-toolbar-block-shift` — Computed block collision-avoidance offset."
|
|
13084
|
+
},
|
|
13085
|
+
"attributes": [
|
|
13086
|
+
{
|
|
13087
|
+
"name": "aria-label",
|
|
13088
|
+
"description": {
|
|
13089
|
+
"kind": "markdown",
|
|
13090
|
+
"value": "Type: `string | null` \nDefault: `null`"
|
|
13091
|
+
}
|
|
13092
|
+
},
|
|
13093
|
+
{
|
|
13094
|
+
"name": "label",
|
|
13095
|
+
"description": {
|
|
13096
|
+
"kind": "markdown",
|
|
13097
|
+
"value": "Type: `string` \nDefault: `''`"
|
|
13098
|
+
}
|
|
13099
|
+
},
|
|
13100
|
+
{
|
|
13101
|
+
"name": "locale",
|
|
13102
|
+
"description": {
|
|
13103
|
+
"kind": "markdown",
|
|
13104
|
+
"value": "Optional locale override. Otherwise the nearest `locale`/`lang` ancestor is used.\n\nType: `string` \nDefault: `''`"
|
|
13105
|
+
}
|
|
13106
|
+
},
|
|
13107
|
+
{
|
|
13108
|
+
"name": "open",
|
|
13109
|
+
"description": {
|
|
13110
|
+
"kind": "markdown",
|
|
13111
|
+
"value": "Type: `boolean` \nDefault: `false`"
|
|
13112
|
+
}
|
|
13113
|
+
},
|
|
13114
|
+
{
|
|
13115
|
+
"name": "text",
|
|
13116
|
+
"description": {
|
|
13117
|
+
"kind": "markdown",
|
|
13118
|
+
"value": "Type: `string` \nDefault: `''`"
|
|
13119
|
+
}
|
|
13120
|
+
}
|
|
13121
|
+
]
|
|
13122
|
+
},
|
|
12048
13123
|
{
|
|
12049
13124
|
"name": "lr-sequence-strip",
|
|
12050
13125
|
"description": {
|
|
12051
13126
|
"kind": "markdown",
|
|
12052
|
-
"value": "`<lr-sequence-strip>` — a compact, one-thin-cell-per-item strip visualizing a sequence of\ncategorical states, with an optional secondary per-cell marker. Pure CSS/flex, no chart.js/SVG/\ncanvas — sized/named consistently with the sparkline/heatmap family, but a glanceable aggregate\nvisualization
|
|
13127
|
+
"value": "`<lr-sequence-strip>` — a compact, one-thin-cell-per-item strip visualizing a sequence of\ncategorical states, with an optional secondary per-cell marker. Pure CSS/flex, no chart.js/SVG/\ncanvas — sized/named consistently with the sparkline/heatmap family, but a glanceable aggregate\nvisualization. The strip is a labeled `role=\"list\"` and each cell is a named list item.\nExactly one cell is tabbable; Left/Right and Home/End rove through the items and show the same\ndetail tooltip as pointer hover. Cells are inspectable rather than actionable, so they do not\nemit an activation event.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The root strip wrapper (`role=\"list\"`). |\n| `cell` | Each named, roving-focus item cell, background-colored by its category. |\n| `legend` | The static category key rendered below the strip when `showLegend` is set (`aria-hidden` — it repeats the strip's own `aria-label` visually). |\n| `legend-item` | One swatch + label pair in the legend, one per `categories` entry (plus one trailing marker row when `markerLabel` is set). |\n| `legend-label` | The text of a legend item (the category's `label`, or its `key`). |\n| `legend-marker-swatch` | The chip of the `markerLabel` legend row: a neutral chip carrying the same bottom bar a `marker: true` cell paints, in the same `--lr-sequence-strip-marker-color`. |\n| `legend-swatch` | The color chip of a legend item, matching that category's cell color. |\n| `marker` | The small bottom marker on a cell whose item sets `marker: true`. |\n| `tooltip` | The hover/focus tooltip showing the active item's label. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-sequence-strip-height` (default: `var(--lr-size-1-5rem)`) — Block size of the strip.\n- `--lr-sequence-strip-marker-color` (default: `var(--lr-color-text)`) — Color of the bottom marker on a `marker: true` cell, and of the marker legend row's bar.\n- `--lr-sequence-strip-legend-swatch-size` (default: `var(--lr-size-0-625rem)`) — Inline and block size of a legend swatch (category and marker rows alike).\n- `--lr-sequence-strip-legend-marker-bg` (default: `var(--lr-color-surface-raised)`) — Neutral chip background behind the marker legend row's bar; it stands in for \"any cell\", so it deliberately matches no category color."
|
|
12053
13128
|
},
|
|
12054
13129
|
"attributes": [
|
|
12055
13130
|
{
|
|
@@ -12212,7 +13287,7 @@
|
|
|
12212
13287
|
"name": "show-value",
|
|
12213
13288
|
"description": {
|
|
12214
13289
|
"kind": "markdown",
|
|
12215
|
-
"value": "
|
|
13290
|
+
"value": "Type: `boolean` \nDefault: `true`"
|
|
12216
13291
|
}
|
|
12217
13292
|
},
|
|
12218
13293
|
{
|
|
@@ -12323,7 +13398,7 @@
|
|
|
12323
13398
|
"name": "lr-source-picker",
|
|
12324
13399
|
"description": {
|
|
12325
13400
|
"kind": "markdown",
|
|
12326
|
-
"value": "`<lr-source-picker>` — a checkbox tree/list scoping which sources ground the next answer:\ntri-state folders, select-all, type icons, search. **Not `FormAssociated`, deliberately**: this\nis a scoping panel, not a form control — the selection is immediate app state consumed by the\nnext retrieval call, exactly the stance `lr-tool-select-dialog` already takes.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The root wrapper. |\n| `checkbox` | The tri-state checkbox glyph. |\n| `empty` | The empty state (`noData` when `sources` is empty, `noMatches` when a filter empties the tree). |\n| `icon` | The `lr-file-icon` type badge. |\n| `item` | One `role=\"treeitem\"` row. |\n| `label` | The entry's label text. |\n| `search` | The built-in filter `lr-input`, only rendered when `searchable`. |\n| `select-all` | The header select-all row, only rendered when `showSelectAll`. |\n| `summary` | The \"{selected} of {total} selected\" text. |\n| `tree` | The `role=\"tree\"` container. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-source-picker-checked-bg` — Background of a fully-checked selection control: the `select-all` pill (defaults to `var(--lr-color-brand-quiet)`) and a fully-selected entry's `[part=\"checkbox\"]` (defaults to `var(--lr-color-brand)`). The two keep their distinct resting defaults; setting this prop unifies both.\n- `--lr-source-picker-checked-border` (default: `var(--lr-color-brand)`) — Border color of every checked or mixed selection control.\n- `--lr-source-picker-mixed-bg` (default: `color-mix(in srgb, var(--lr-color-brand) 50%, var(--lr-color-surface))`) — Background of a partially-selected entry's `[part=\"checkbox\"]`."
|
|
13401
|
+
"value": "`<lr-source-picker>` — a checkbox tree/list scoping which sources ground the next answer:\ntri-state folders, select-all, type icons, search. **Not `FormAssociated`, deliberately**: this\nis a scoping panel, not a form control — the selection is immediate app state consumed by the\nnext retrieval call, exactly the stance `lr-tool-select-dialog` already takes.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The root wrapper. |\n| `checkbox` | The tri-state checkbox glyph. |\n| `disclosure` | A folder row's expand/collapse button. |\n| `empty` | The empty state (`noData` when `sources` is empty, `noMatches` when a filter empties the tree). |\n| `icon` | The `lr-file-icon` type badge. |\n| `item` | One `role=\"treeitem\"` row. |\n| `label` | The entry's label text. |\n| `search` | The built-in filter `lr-input`, only rendered when `searchable`. |\n| `select-all` | The header select-all row, only rendered when `showSelectAll`. |\n| `summary` | The \"{selected} of {total} selected\" text. |\n| `tree` | The `role=\"tree\"` container. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-source-picker-checked-bg` — Background of a fully-checked selection control: the `select-all` pill (defaults to `var(--lr-color-brand-quiet)`) and a fully-selected entry's `[part=\"checkbox\"]` (defaults to `var(--lr-color-brand)`). The two keep their distinct resting defaults; setting this prop unifies both.\n- `--lr-source-picker-checked-border` (default: `var(--lr-color-brand)`) — Border color of every checked or mixed selection control.\n- `--lr-source-picker-mixed-bg` (default: `color-mix(in srgb, var(--lr-color-brand) 50%, var(--lr-color-surface))`) — Background of a partially-selected entry's `[part=\"checkbox\"]`."
|
|
12327
13402
|
},
|
|
12328
13403
|
"attributes": [
|
|
12329
13404
|
{
|
|
@@ -12480,7 +13555,7 @@
|
|
|
12480
13555
|
"name": "lr-spinner",
|
|
12481
13556
|
"description": {
|
|
12482
13557
|
"kind": "markdown",
|
|
12483
|
-
"value": "`<lr-spinner>` — an indeterminate busy indicator.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| (default) | Optional visible label. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The wrapper. |\n| `label` | The accessible/visible label wrapper. |\n| `spinner` | The animated indicator. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-spinner-size` (default: `var(--lr-size-1-25rem)`) — Outer diameter of the indicator.\n- `--lr-spinner-track-width` (default: `var(--lr-border-width-medium)`) — Thickness of the ring track.\n- `--lr-spinner-duration` (default: `
|
|
13558
|
+
"value": "`<lr-spinner>` — an indeterminate busy indicator.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| (default) | Optional visible label. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The wrapper. |\n| `label` | The accessible/visible label wrapper. |\n| `spinner` | The animated indicator. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-spinner-size` (default: `var(--lr-size-1-25rem)`) — Outer diameter of the indicator.\n- `--lr-spinner-track-width` (default: `var(--lr-border-width-medium)`) — Thickness of the ring track.\n- `--lr-spinner-duration` (default: `var(--lr-transition-ambient)`) — Duration/easing of one rotation. Not read under `prefers-reduced-motion: reduce`, where the animation is disabled entirely."
|
|
12484
13559
|
},
|
|
12485
13560
|
"attributes": [
|
|
12486
13561
|
{
|
|
@@ -12517,14 +13592,14 @@
|
|
|
12517
13592
|
"name": "collapse",
|
|
12518
13593
|
"description": {
|
|
12519
13594
|
"kind": "markdown",
|
|
12520
|
-
"value": "Opts a pane in to responsive collapse: `'start'` is the first light-DOM\npanel (index 0), `'end'` is the last. Both are LOGICAL positions, same\nas CSS `inset-inline-start`/`-end` — see the `collapsingIndex` getter\nfor why that already resolves to the same physical index under RTL for\nthis component (panels are never re-`order`ed for RTL, only the drag\ndelta sign mirrors). Default `'none'`: none of the collapse behavior\nbelow applies, and rendering/behavior is identical to before this\nproperty existed.\n\nType: `SplitCollapseMode` \nDefault:
|
|
13595
|
+
"value": "Opts a pane in to responsive collapse: `'start'` is the first light-DOM\npanel (index 0), `'end'` is the last. Both are LOGICAL positions, same\nas CSS `inset-inline-start`/`-end` — see the `collapsingIndex` getter\nfor why that already resolves to the same physical index under RTL for\nthis component (panels are never re-`order`ed for RTL, only the drag\ndelta sign mirrors). Default `'none'`: none of the collapse behavior\nbelow applies, and rendering/behavior is identical to before this\nproperty existed.\n\nType: `SplitCollapseMode` \nDefault: `\"none\"`"
|
|
12521
13596
|
}
|
|
12522
13597
|
},
|
|
12523
13598
|
{
|
|
12524
13599
|
"name": "collapse-breakpoint-basis",
|
|
12525
13600
|
"description": {
|
|
12526
13601
|
"kind": "markdown",
|
|
12527
|
-
"value": "Which box `railBreakpoint`/`floatBreakpoint` measure. `'container'` (the default) observes\nthis component's own `[part=\"base\"]` inline size via `ResizeObserver`, comparing strictly `<`.\n`'viewport'` instead evaluates `matchMedia('(max-width: <breakpoint>)')` for each of the two\nthresholds, which is inclusive (`<=`) — native `max-width` semantics, deliberately, so the\ncrossing point matches a CSS `@media` rule authored with the same length exactly. Switching\nbasis therefore shifts each crossing point by 1px (the same trade-off\n`orientationBreakpointBasis` already makes).\n\nUse `'viewport'` to collapse in step with a page-level responsive layout — e.g. a shell whose\nown `@media` rules restack at the same width — rather than with this split's own allocation.\n`'viewport'` also lets the browser resolve a `rem` breakpoint with real `@media` semantics\n(against the *initial* font size, ignoring an `html { font-size }` override), keeping it in\nstep with such a rule.\n\nBoth bands are classified from both queries together on every change, so a fast resize that\ncrosses both thresholds at once still lands on one correct state and fires\n`lr-split-collapse-change` once. Under `'viewport'` basis the first paint is already correct —\nno `ResizeObserver` round-trip — and the initial state is not announced as a transition.\n\nDefault: `'container'`.\n\nType: `BreakpointBasis` \nDefault:
|
|
13602
|
+
"value": "Which box `railBreakpoint`/`floatBreakpoint` measure. `'container'` (the default) observes\nthis component's own `[part=\"base\"]` inline size via `ResizeObserver`, comparing strictly `<`.\n`'viewport'` instead evaluates `matchMedia('(max-width: <breakpoint>)')` for each of the two\nthresholds, which is inclusive (`<=`) — native `max-width` semantics, deliberately, so the\ncrossing point matches a CSS `@media` rule authored with the same length exactly. Switching\nbasis therefore shifts each crossing point by 1px (the same trade-off\n`orientationBreakpointBasis` already makes).\n\nUse `'viewport'` to collapse in step with a page-level responsive layout — e.g. a shell whose\nown `@media` rules restack at the same width — rather than with this split's own allocation.\n`'viewport'` also lets the browser resolve a `rem` breakpoint with real `@media` semantics\n(against the *initial* font size, ignoring an `html { font-size }` override), keeping it in\nstep with such a rule.\n\nBoth bands are classified from both queries together on every change, so a fast resize that\ncrosses both thresholds at once still lands on one correct state and fires\n`lr-split-collapse-change` once. Under `'viewport'` basis the first paint is already correct —\nno `ResizeObserver` round-trip — and the initial state is not announced as a transition.\n\nDefault: `'container'`.\n\nType: `BreakpointBasis` \nDefault: `\"container\"`"
|
|
12528
13603
|
}
|
|
12529
13604
|
},
|
|
12530
13605
|
{
|
|
@@ -12538,7 +13613,7 @@
|
|
|
12538
13613
|
"name": "float-breakpoint",
|
|
12539
13614
|
"description": {
|
|
12540
13615
|
"kind": "markdown",
|
|
12541
|
-
"value": "Width below which the collapsing pane instead becomes an absolutely-positioned overlay above\nthe other pane (`'floating'` state). Same accepted forms, basis, and sanitization as\n`railBreakpoint`; an unparseable value falls back to the `400` default.\n\nDefault: `400`.\n\nType:
|
|
13616
|
+
"value": "Width below which the collapsing pane instead becomes an absolutely-positioned overlay above\nthe other pane (`'floating'` state). Same accepted forms, basis, and sanitization as\n`railBreakpoint`; an unparseable value falls back to the `400` default.\n\nDefault: `400`.\n\nType: `| number\n | string` \nDefault: `400`"
|
|
12542
13617
|
}
|
|
12543
13618
|
},
|
|
12544
13619
|
{
|
|
@@ -12559,7 +13634,7 @@
|
|
|
12559
13634
|
"name": "narrow-orientation",
|
|
12560
13635
|
"description": {
|
|
12561
13636
|
"kind": "markdown",
|
|
12562
|
-
"value": "Layout/resize axis used below `orientationBreakpoint`.\n\nType: `SplitOrientation` \nDefault:
|
|
13637
|
+
"value": "Layout/resize axis used below `orientationBreakpoint`.\n\nType: `SplitOrientation` \nDefault: `\"vertical\"`"
|
|
12563
13638
|
}
|
|
12564
13639
|
},
|
|
12565
13640
|
{
|
|
@@ -12573,35 +13648,35 @@
|
|
|
12573
13648
|
"name": "orientation",
|
|
12574
13649
|
"description": {
|
|
12575
13650
|
"kind": "markdown",
|
|
12576
|
-
"value": "Type: `SplitOrientation` \nDefault:
|
|
13651
|
+
"value": "Type: `SplitOrientation` \nDefault: `\"horizontal\"`"
|
|
12577
13652
|
}
|
|
12578
13653
|
},
|
|
12579
13654
|
{
|
|
12580
13655
|
"name": "orientation-breakpoint",
|
|
12581
13656
|
"description": {
|
|
12582
13657
|
"kind": "markdown",
|
|
12583
|
-
"value": "Opt-in inline-size breakpoint for this component's *own* measured allocation. Below it,\n`narrowOrientation` becomes effective. Unset by default — the whole responsive-orientation\nfeature (and its `ResizeObserver`) is off, and `effectiveOrientation` just tracks\n`orientation`.\n\nAccepts a bare pixel number (`900`, `orientation-breakpoint=\"900\"` — the original form) or a\nCSS length string: `'900px'`, `'56.25rem'`, `'3em'`. Under the default\n`orientationBreakpointBasis=\"container\"`, `rem` resolves against the *document root*'s\ncomputed font size — the rule a `@container` query follows, not a `@media` query's — and `em`\nagainst this element's own computed font size. The length is re-resolved on every measurement,\nnever cached at first render, so a root font-size change moves the crossing width with no\ninvalidation step. To stay in step with a sibling `@media (max-width: 56.25rem)` rule, use\n`orientationBreakpointBasis=\"viewport\"`, which hands the length to the browser instead; see\nthat property for why the two resolve `rem` differently.\n\nAnything else — `''`, `'auto'`, garbage, a non-finite number, and deliberately `%`/`vw`/`vh`/\n`calc()` (which would mix reference boxes against an element-relative measurement) — behaves\nexactly as unset. Set `orientationBreakpointBasis=\"viewport\"` for a viewport-relative\nbreakpoint instead.\n\nType:
|
|
13658
|
+
"value": "Opt-in inline-size breakpoint for this component's *own* measured allocation. Below it,\n`narrowOrientation` becomes effective. Unset by default — the whole responsive-orientation\nfeature (and its `ResizeObserver`) is off, and `effectiveOrientation` just tracks\n`orientation`.\n\nAccepts a bare pixel number (`900`, `orientation-breakpoint=\"900\"` — the original form) or a\nCSS length string: `'900px'`, `'56.25rem'`, `'3em'`. Under the default\n`orientationBreakpointBasis=\"container\"`, `rem` resolves against the *document root*'s\ncomputed font size — the rule a `@container` query follows, not a `@media` query's — and `em`\nagainst this element's own computed font size. The length is re-resolved on every measurement,\nnever cached at first render, so a root font-size change moves the crossing width with no\ninvalidation step. To stay in step with a sibling `@media (max-width: 56.25rem)` rule, use\n`orientationBreakpointBasis=\"viewport\"`, which hands the length to the browser instead; see\nthat property for why the two resolve `rem` differently.\n\nAnything else — `''`, `'auto'`, garbage, a non-finite number, and deliberately `%`/`vw`/`vh`/\n`calc()` (which would mix reference boxes against an element-relative measurement) — behaves\nexactly as unset. Set `orientationBreakpointBasis=\"viewport\"` for a viewport-relative\nbreakpoint instead.\n\nType: `| number\n | string | undefined`"
|
|
12584
13659
|
}
|
|
12585
13660
|
},
|
|
12586
13661
|
{
|
|
12587
13662
|
"name": "orientation-breakpoint-basis",
|
|
12588
13663
|
"description": {
|
|
12589
13664
|
"kind": "markdown",
|
|
12590
|
-
"value": "Which box `orientationBreakpoint` measures. `'container'` (the default) observes this\ncomponent's own `[part=\"base\"]` inline size via `ResizeObserver`, comparing strictly `<`.\n`'viewport'` instead evaluates `matchMedia('(max-width: <breakpoint>)')`, which is inclusive\n(`<=`) — native `max-width` semantics, deliberately, so the crossing point matches a CSS\n`@media` rule authored with the same length exactly.\n\nUse `'viewport'` when two siblings in one row must flip together at a shared breakpoint: a row\nthat stacks via a pure-CSS `@media` rule makes each sibling's own width non-monotonic across\nthe transition, so no self-measured threshold can express it. `'viewport'` also lets the\nbrowser resolve a `rem` breakpoint with real `@media` semantics, keeping it in step with such\na rule across browser zoom and user font-size preferences.\n\nType: `OrientationBreakpointBasis` \nDefault:
|
|
13665
|
+
"value": "Which box `orientationBreakpoint` measures. `'container'` (the default) observes this\ncomponent's own `[part=\"base\"]` inline size via `ResizeObserver`, comparing strictly `<`.\n`'viewport'` instead evaluates `matchMedia('(max-width: <breakpoint>)')`, which is inclusive\n(`<=`) — native `max-width` semantics, deliberately, so the crossing point matches a CSS\n`@media` rule authored with the same length exactly.\n\nUse `'viewport'` when two siblings in one row must flip together at a shared breakpoint: a row\nthat stacks via a pure-CSS `@media` rule makes each sibling's own width non-monotonic across\nthe transition, so no self-measured threshold can express it. `'viewport'` also lets the\nbrowser resolve a `rem` breakpoint with real `@media` semantics, keeping it in step with such\na rule across browser zoom and user font-size preferences.\n\nType: `OrientationBreakpointBasis` \nDefault: `\"container\"`"
|
|
12591
13666
|
}
|
|
12592
13667
|
},
|
|
12593
13668
|
{
|
|
12594
13669
|
"name": "rail-breakpoint",
|
|
12595
13670
|
"description": {
|
|
12596
13671
|
"kind": "markdown",
|
|
12597
|
-
"value": "Width below which the collapsing pane switches from its normal percent width to the fixed\n`railWidth` (`'rail'` state). Must stay above `floatBreakpoint` — an inverted pair is\nsanitized by raising this one to match, which collapses the `'rail'` band away rather than\nleaving a wide container reported as collapsed.\n\nAccepts a bare pixel number (`640`, `rail-breakpoint=\"640\"` — the original form) or a CSS\nlength string: `'640px'`, `'68.75rem'`, `'3em'`. Under the default\n`collapseBreakpointBasis=\"container\"` this is compared against this component's own measured\n`[part=\"base\"]` inline size, strictly `<`, and `rem` resolves against the *document root*'s\ncomputed font size (a `@container` query's rule, not a `@media` query's) while `em` resolves\nagainst this element's own. The length is re-resolved on every measurement, never cached, so\na root font-size change moves the crossing width with no invalidation step.\n\nAnything the grammar rejects — `''`, `'auto'`, garbage, a non-finite number, and deliberately\n`%`/`vw`/`vh`/`calc()`/`var()` — falls back to the `640` default rather than switching the\nfeature off (unlike `orientationBreakpoint`, this breakpoint has a documented default to fall\nback to). A negative length is floored at `0`, i.e. never crossed.\n\nDefault: `640`.\n\nType:
|
|
13672
|
+
"value": "Width below which the collapsing pane switches from its normal percent width to the fixed\n`railWidth` (`'rail'` state). Must stay above `floatBreakpoint` — an inverted pair is\nsanitized by raising this one to match, which collapses the `'rail'` band away rather than\nleaving a wide container reported as collapsed.\n\nAccepts a bare pixel number (`640`, `rail-breakpoint=\"640\"` — the original form) or a CSS\nlength string: `'640px'`, `'68.75rem'`, `'3em'`. Under the default\n`collapseBreakpointBasis=\"container\"` this is compared against this component's own measured\n`[part=\"base\"]` inline size, strictly `<`, and `rem` resolves against the *document root*'s\ncomputed font size (a `@container` query's rule, not a `@media` query's) while `em` resolves\nagainst this element's own. The length is re-resolved on every measurement, never cached, so\na root font-size change moves the crossing width with no invalidation step.\n\nAnything the grammar rejects — `''`, `'auto'`, garbage, a non-finite number, and deliberately\n`%`/`vw`/`vh`/`calc()`/`var()` — falls back to the `640` default rather than switching the\nfeature off (unlike `orientationBreakpoint`, this breakpoint has a documented default to fall\nback to). A negative length is floored at `0`, i.e. never crossed.\n\nDefault: `640`.\n\nType: `| number\n | string` \nDefault: `640`"
|
|
12598
13673
|
}
|
|
12599
13674
|
},
|
|
12600
13675
|
{
|
|
12601
13676
|
"name": "rail-width",
|
|
12602
13677
|
"description": {
|
|
12603
13678
|
"kind": "markdown",
|
|
12604
|
-
"value": "Fixed CSS length the collapsing pane clamps to in the `'rail'` state.\n\nType: `string` \nDefault:
|
|
13679
|
+
"value": "Fixed CSS length the collapsing pane clamps to in the `'rail'` state.\n\nType: `string` \nDefault: `\"3.5rem\"`"
|
|
12605
13680
|
}
|
|
12606
13681
|
},
|
|
12607
13682
|
{
|
|
@@ -12617,7 +13692,7 @@
|
|
|
12617
13692
|
"name": "lr-spreadsheet-viewer",
|
|
12618
13693
|
"description": {
|
|
12619
13694
|
"kind": "markdown",
|
|
12620
|
-
"value": "Fetches and renders `.xlsx` and legacy `.xls` workbooks with virtualized rows and sheet tabs.\n\nAdopts `DocumentAnchorTarget`: a `cell-range` anchor addresses one sheet's raw grid, 1-based, with\nits (always-present) header row included -- matching how a spreadsheet app itself labels `A1`.\nThe target sheet resolves from the anchor's own `sheet` field (falling back to a `Sheet!`-prefixed\n`range`, then the currently active sheet when neither is set); `scrollToAnchor()` switches\n`<lr-tabs>`'s `active` tab first when the resolved sheet isn't already active, then scrolls the\naddressed row into view via the virtualized list's `active-id`, then scrolls the first addressed\ncolumn horizontally into view. `highlights` paint
|
|
13695
|
+
"value": "Fetches and renders `.xlsx` and legacy `.xls` workbooks with virtualized rows and sheet tabs.\n\nAdopts `DocumentAnchorTarget`: a `cell-range` anchor addresses one sheet's raw grid, 1-based, with\nits (always-present) header row included -- matching how a spreadsheet app itself labels `A1`.\nThe target sheet resolves from the anchor's own `sheet` field (falling back to a `Sheet!`-prefixed\n`range`, then the currently active sheet when neither is set); `scrollToAnchor()` switches\n`<lr-tabs>`'s `active` tab first when the resolved sheet isn't already active, then scrolls the\naddressed row into view via the virtualized list's `active-id`, then scrolls the first addressed\ncolumn horizontally into view. `highlights` paint a structural `part=\"cell-highlight\"` cell\nwrapping a focusable native `part=\"cell-highlight-action\"` button, recomputed per row inside\n`renderRow()` so a row scrolled out and back in reconstructs its highlight for free, with no\npersistent DOM to keep in sync. `search()` is a case-insensitive\nsubstring match over every sheet's stringified cell values (the same stringification `cell()`\nalready renders), ordered sheet then row then column, switching tabs as navigation crosses sheets.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The root wrapper. |\n| `cell` | One rendered cell. |\n| `cell-highlight` | A structural cell covered by a `highlights` entry. |\n| `cell-highlight-action` | The native button filling a highlighted cell -- focusable, emits `lr-highlight-activate` on click or Enter/Space. |\n| `data-row` | One virtualized data row. |\n| `error` | The error message region. |\n| `header-row` | A sheet's header row. |\n| `rows` | The virtualized row list. |\n| `sheet` | The wrapper around one sheet's header row and virtualized body. |\n| `spinner` | The loading status region. |\n| `tabs` | The sheet-switching `<lr-tabs>`, rendered only for a multi-sheet workbook. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-spreadsheet-viewer-highlight-color` (default: `var(--lr-color-brand)`) — Outline color of a highlighted cell. The active highlight sets it inline to `var(--lr-color-warning, var(--lr-color-brand))`."
|
|
12621
13696
|
},
|
|
12622
13697
|
"attributes": [
|
|
12623
13698
|
{
|
|
@@ -12826,14 +13901,14 @@
|
|
|
12826
13901
|
"name": "lr-stepper",
|
|
12827
13902
|
"description": {
|
|
12828
13903
|
"kind": "markdown",
|
|
12829
|
-
"value": "`<lr-stepper>` — ordered multi-step wizard/form navigation: label + index per step,\ncurrent/completed/locked/error state, click-to-jump. First-party invention (no Web Awesome\nequivalent). Fully data-driven and controlled, like `lr-table`'s `columns`/`rows` -- it never\nmutates `steps` itself; a click or Enter/Space on a non-disabled step fires a cancelable\n`lr-step-select`, and the host decides whether/how `steps` changes in response
|
|
13904
|
+
"value": "`<lr-stepper>` — ordered multi-step wizard/form navigation: label + index per step,\ncurrent/completed/locked/error state, click-to-jump. First-party invention (no Web Awesome\nequivalent). Fully data-driven and controlled, like `lr-table`'s `columns`/`rows` -- it never\nmutates `steps` itself; a click or Enter/Space on a non-disabled step fires a non-cancelable\n`lr-step-select`, and the host decides whether/how `steps` changes in response.\n\nAn opt-in `orientationBreakpoint` (unset by default -- no behavior change) makes the effective\nlayout/navigation axis respond to a measured inline size instead of only the authored\n`orientation`: below that width (a pixel number or a `px`/`rem`/`em` CSS length), `narrowOrientation`\nbecomes effective; at/above it, `orientation` does. This mirrors `<lr-split>`'s identically-named\n`orientationBreakpoint`/`narrowOrientation`/`orientationBreakpointBasis` contract. Under the default\n`orientationBreakpointBasis=\"container\"` the breakpoint is measured on this stepper's own\n`[part=\"base\"]` inline size via `ResizeObserver`, so a stepper placed in a narrow split pane or\ndialog still responds correctly even in a wide window; `orientationBreakpointBasis=\"viewport\"`\ninstead evaluates `matchMedia('(max-width: <breakpoint>)')`, needed when the stepper has a fixed\nwidth in a row that stacks at a shared breakpoint. The effective axis is exposed via the\n`effectiveOrientation` getter, a `data-effective-orientation` host attribute (only present while\nthe breakpoint feature is active), and `lr-stepper-orientation-change`.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The root wrapper. |\n| `step` | A single step button. |\n| `step-check` | The completed-checkmark glyph, shown for `completed` steps instead of `step-index`. |\n| `step-icon` | Optional leading topic glyph supplied by the item's `icon` field; content may have a natural aspect ratio and is not restricted to a square icon. Rendered additionally to, never instead of, `step-index`/`step-check`. |\n| `step-index` | The numbered index chip, shown for `pending`/`current`/`error` steps. |\n| `step-item` | The `role=\"listitem\"` wrapper for one step. |\n| `step-label` | The step's label text. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-stepper-current-color` (default: `var(--lr-color-text)`) — Text color of the `current` step. Declared as an inline `var()` fallback (never on `:host`), so setting it on the element or an ancestor recolors only the current step without hijacking the library-wide `--lr-color-text` token.\n- `--lr-stepper-current-font-weight` (default: `var(--lr-font-weight-semibold)`) — Font weight of the `current` step's label. `::part(step)[data-state='current']` is invalid CSS (an attribute selector cannot follow `::part`), so this is the only way to change just the current step's boldness without hijacking the library-wide `--lr-font-weight-semibold` token.\n- `--lr-stepper-error-color` (default: `var(--lr-color-danger)`) — Text color of an `error` step.\n- `--lr-stepper-current-index-bg` (default: `var(--lr-color-brand)`) — Background of the `current` step's numbered index chip (`step-index`).\n- `--lr-stepper-current-index-color` (default: `var(--lr-color-on-brand)`) — Text color of the `current` step's numbered index chip."
|
|
12830
13905
|
},
|
|
12831
13906
|
"attributes": [
|
|
12832
13907
|
{
|
|
12833
13908
|
"name": "aria-label",
|
|
12834
13909
|
"description": {
|
|
12835
13910
|
"kind": "markdown",
|
|
12836
|
-
"value": "Accessible name for the `role=\"
|
|
13911
|
+
"value": "Accessible name for the `role=\"list\"` step strip. Attribute-reflects from a host-level\n`aria-label` so a plain-markup consumer gets ARIA-name forwarding without setting a JS\nproperty. Unset, the list renders without an `aria-label` (the role carries no localized\ndefault name).\n\nType: `string | null` \nDefault: `null`"
|
|
12837
13912
|
}
|
|
12838
13913
|
},
|
|
12839
13914
|
{
|
|
@@ -12847,28 +13922,28 @@
|
|
|
12847
13922
|
"name": "narrow-orientation",
|
|
12848
13923
|
"description": {
|
|
12849
13924
|
"kind": "markdown",
|
|
12850
|
-
"value": "Layout/navigation axis used below `orientationBreakpoint`.\n\nType: `StepperOrientation` \nDefault:
|
|
13925
|
+
"value": "Layout/navigation axis used below `orientationBreakpoint`.\n\nType: `StepperOrientation` \nDefault: `\"vertical\"`"
|
|
12851
13926
|
}
|
|
12852
13927
|
},
|
|
12853
13928
|
{
|
|
12854
13929
|
"name": "orientation",
|
|
12855
13930
|
"description": {
|
|
12856
13931
|
"kind": "markdown",
|
|
12857
|
-
"value": "`'horizontal'` (the default) lays steps out in a row (Left/Right, RTL-aware, to navigate);\n`'vertical'` stacks them (Up/Down navigate instead, no RTL swap needed). The *authored* axis\nused at/above `orientationBreakpoint` (or always, when that's unset) -- see\n`effectiveOrientation` for the live axis actually in effect.\n\nType: `StepperOrientation` \nDefault:
|
|
13932
|
+
"value": "`'horizontal'` (the default) lays steps out in a row (Left/Right, RTL-aware, to navigate);\n`'vertical'` stacks them (Up/Down navigate instead, no RTL swap needed). The *authored* axis\nused at/above `orientationBreakpoint` (or always, when that's unset) -- see\n`effectiveOrientation` for the live axis actually in effect.\n\nType: `StepperOrientation` \nDefault: `\"horizontal\"`"
|
|
12858
13933
|
}
|
|
12859
13934
|
},
|
|
12860
13935
|
{
|
|
12861
13936
|
"name": "orientation-breakpoint",
|
|
12862
13937
|
"description": {
|
|
12863
13938
|
"kind": "markdown",
|
|
12864
|
-
"value": "Opt-in inline-size breakpoint, measured on `[part=\"base\"]`. Below it, `narrowOrientation`\nbecomes effective instead of `orientation`. Unset (the default): no behavior change, the\nauthored `orientation` always applies.\n\nAccepts a bare pixel number (`500`, `'500'`), an explicit `px` length (`'500px'`), a `rem`\nlength (`'31.25rem'`) or an `em` length (`'3em'`). Under the default\n`orientationBreakpointBasis=\"container\"`, `rem` resolves against the **document root**'s\ncomputed font size -- the rule a `@container` query follows, and *not* a `@media` query's --\nwhile `em` resolves against this element's own computed font size. The length is re-resolved\non every measurement, never cached, so browser zoom, a user font-size preference or an app\nbase-size token change are picked up with no invalidation step. To stay in step with a\nsibling `@media (max-width: …rem)` rule, use `orientationBreakpointBasis=\"viewport\"`, which\nhands the length to the browser instead; see that property for why the two differ.\n\nAny other value -- `%`, `vw`, `calc()`, `'auto'`, an unparseable string -- behaves exactly as\nunset (no responsive observation at all), rather than as an armed breakpoint that can never\nbe crossed. Set `orientationBreakpointBasis=\"viewport\"` for a viewport-relative breakpoint\ninstead.\n\nType:
|
|
13939
|
+
"value": "Opt-in inline-size breakpoint, measured on `[part=\"base\"]`. Below it, `narrowOrientation`\nbecomes effective instead of `orientation`. Unset (the default): no behavior change, the\nauthored `orientation` always applies.\n\nAccepts a bare pixel number (`500`, `'500'`), an explicit `px` length (`'500px'`), a `rem`\nlength (`'31.25rem'`) or an `em` length (`'3em'`). Under the default\n`orientationBreakpointBasis=\"container\"`, `rem` resolves against the **document root**'s\ncomputed font size -- the rule a `@container` query follows, and *not* a `@media` query's --\nwhile `em` resolves against this element's own computed font size. The length is re-resolved\non every measurement, never cached, so browser zoom, a user font-size preference or an app\nbase-size token change are picked up with no invalidation step. To stay in step with a\nsibling `@media (max-width: …rem)` rule, use `orientationBreakpointBasis=\"viewport\"`, which\nhands the length to the browser instead; see that property for why the two differ.\n\nAny other value -- `%`, `vw`, `calc()`, `'auto'`, an unparseable string -- behaves exactly as\nunset (no responsive observation at all), rather than as an armed breakpoint that can never\nbe crossed. Set `orientationBreakpointBasis=\"viewport\"` for a viewport-relative breakpoint\ninstead.\n\nType: `| number\n | string | undefined`"
|
|
12865
13940
|
}
|
|
12866
13941
|
},
|
|
12867
13942
|
{
|
|
12868
13943
|
"name": "orientation-breakpoint-basis",
|
|
12869
13944
|
"description": {
|
|
12870
13945
|
"kind": "markdown",
|
|
12871
|
-
"value": "Which box `orientationBreakpoint` measures. `'container'` (the default) observes this\nstepper's own `[part=\"base\"]` inline size via `ResizeObserver`, comparing strictly `<`.\n`'viewport'` instead evaluates `matchMedia('(max-width: <breakpoint>)')`, which is inclusive\n(`<=`) -- native `max-width` semantics, deliberately, so the crossing point matches a CSS\n`@media` rule authored with the same length exactly.\n\nA stepper given a fixed width in a row layout cannot react to that row stacking by measuring\nitself -- its own width never changes. That case requires `'viewport'`, which also lets the\nbrowser resolve a `rem` breakpoint with real `@media` semantics.\n\nType: `OrientationBreakpointBasis` \nDefault:
|
|
13946
|
+
"value": "Which box `orientationBreakpoint` measures. `'container'` (the default) observes this\nstepper's own `[part=\"base\"]` inline size via `ResizeObserver`, comparing strictly `<`.\n`'viewport'` instead evaluates `matchMedia('(max-width: <breakpoint>)')`, which is inclusive\n(`<=`) -- native `max-width` semantics, deliberately, so the crossing point matches a CSS\n`@media` rule authored with the same length exactly.\n\nA stepper given a fixed width in a row layout cannot react to that row stacking by measuring\nitself -- its own width never changes. That case requires `'viewport'`, which also lets the\nbrowser resolve a `rem` breakpoint with real `@media` semantics.\n\nType: `OrientationBreakpointBasis` \nDefault: `\"container\"`"
|
|
12872
13947
|
}
|
|
12873
13948
|
}
|
|
12874
13949
|
]
|
|
@@ -12947,6 +14022,36 @@
|
|
|
12947
14022
|
}
|
|
12948
14023
|
]
|
|
12949
14024
|
},
|
|
14025
|
+
{
|
|
14026
|
+
"name": "lr-subagent-panel",
|
|
14027
|
+
"description": {
|
|
14028
|
+
"kind": "markdown",
|
|
14029
|
+
"value": "`<lr-subagent-panel>` — a controlled hierarchy of nested agent runs with lifecycle status,\ntask/model context, progress, selection, cancellation, and retry intents.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `actions` | Run actions. |\n| `base` | The named subagent region. |\n| `cancel` | Cancellation action. |\n| `empty` | The empty state. |\n| `label` | Run label. |\n| `limit` | Resource-ceiling status shown when additional runs are omitted. |\n| `list` | Hierarchical run list. |\n| `model` | Caller-supplied model id. |\n| `progress` | Progress indicator. |\n| `retry` | Retry action. |\n| `run` | One run. |\n| `run-row` | Run content and actions. |\n| `run-selected` | The selected run. |\n| `run-trigger` | Run selection action. |\n| `status` | Lifecycle status badge. |\n| `task` | Caller-supplied task text. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-subagent-panel-selected-border` (default: `var(--lr-color-brand)`) — Selected run border.\n- `--lr-subagent-panel-progress-track` (default: `var(--lr-color-border)`) — Progress track.\n- `--lr-subagent-panel-progress-fill` (default: `var(--lr-color-brand)`) — Progress fill."
|
|
14030
|
+
},
|
|
14031
|
+
"attributes": [
|
|
14032
|
+
{
|
|
14033
|
+
"name": "label",
|
|
14034
|
+
"description": {
|
|
14035
|
+
"kind": "markdown",
|
|
14036
|
+
"value": "Type: `string` \nDefault: `''`"
|
|
14037
|
+
}
|
|
14038
|
+
},
|
|
14039
|
+
{
|
|
14040
|
+
"name": "locale",
|
|
14041
|
+
"description": {
|
|
14042
|
+
"kind": "markdown",
|
|
14043
|
+
"value": "Optional locale override. Otherwise the nearest `locale`/`lang` ancestor is used.\n\nType: `string` \nDefault: `''`"
|
|
14044
|
+
}
|
|
14045
|
+
},
|
|
14046
|
+
{
|
|
14047
|
+
"name": "selected-run-id",
|
|
14048
|
+
"description": {
|
|
14049
|
+
"kind": "markdown",
|
|
14050
|
+
"value": "Type: `string` \nDefault: `''`"
|
|
14051
|
+
}
|
|
14052
|
+
}
|
|
14053
|
+
]
|
|
14054
|
+
},
|
|
12950
14055
|
{
|
|
12951
14056
|
"name": "lr-suggestion-chips",
|
|
12952
14057
|
"description": {
|
|
@@ -12981,7 +14086,7 @@
|
|
|
12981
14086
|
"name": "lr-svg-viewer",
|
|
12982
14087
|
"description": {
|
|
12983
14088
|
"kind": "markdown",
|
|
12984
|
-
"value": "Fetches and safely renders an inline SVG document.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The root container. |\n| `body` | The wrapper around the fetched-state content. |\n| `error` | The error region. |\n| `frame-content` | Forwarded from the internal `<lr-zoomable-frame>` when `zoomable`. |\n| `frame-controls` | Forwarded from the internal `<lr-zoomable-frame>` when `zoomable`. |\n| `frame-reset` | Forwarded from the internal `<lr-zoomable-frame>` when `zoomable`. |\n| `frame-viewport` | Forwarded from the internal `<lr-zoomable-frame>` when `zoomable`. |\n| `frame-zoom-in` | Forwarded from the internal `<lr-zoomable-frame>` when `zoomable`. |\n| `frame-zoom-out` | Forwarded from the internal `<lr-zoomable-frame>` when `zoomable`. |\n| `highlight-layer` | The wrapper around every rendered region highlight. |\n| `region-highlight` | One region highlight (`data-tone`, `data-active`). |\n| `spinner` | The loading region. |\n| `svg` | The sanitized SVG document, once loaded. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-svg-viewer-max-height` (default: `none`) — Maximum block size of the scrollable body before it scrolls internally. Also settable via the `max-height` property.\n- `--lr-svg-viewer-active-border` (default: `var(--lr-color-warning, var(--lr-color-brand))`) — Border color of the `[part=\"region-highlight\"]` matching `activeHighlightId`. Distinct from the resting highlight border, so the active region can be recolored without touching the rest."
|
|
14089
|
+
"value": "Fetches and safely renders an inline SVG document.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The root container. |\n| `body` | The wrapper around the fetched-state content. |\n| `error` | The error region. |\n| `frame-content` | Forwarded from the internal `<lr-zoomable-frame>` when `zoomable`. |\n| `frame-controls` | Forwarded from the internal `<lr-zoomable-frame>` when `zoomable`. |\n| `frame-reset` | Forwarded from the internal `<lr-zoomable-frame>` when `zoomable`. |\n| `frame-viewport` | Forwarded from the internal `<lr-zoomable-frame>` when `zoomable`. |\n| `frame-zoom-in` | Forwarded from the internal `<lr-zoomable-frame>` when `zoomable`. |\n| `frame-zoom-out` | Forwarded from the internal `<lr-zoomable-frame>` when `zoomable`. |\n| `highlight-actions` | Non-overlapping actions used for multiple region highlights. |\n| `highlight-layer` | The wrapper around every rendered region highlight. |\n| `region-highlight` | One region highlight (`data-tone`, `data-active`). |\n| `region-highlight-action` | One non-overlapping highlight action. |\n| `region-highlight-target` | Transparent activation geometry around a region highlight, with a minimum pointer/focus area independent of the visual rectangle. |\n| `spinner` | The loading region. |\n| `svg` | The sanitized SVG document, once loaded. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-svg-viewer-max-height` (default: `none`) — Maximum block size of the scrollable body before it scrolls internally. Also settable via the `max-height` property.\n- `--lr-svg-viewer-active-border` (default: `var(--lr-color-warning, var(--lr-color-brand))`) — Border color of the `[part=\"region-highlight\"]` matching `activeHighlightId`. Distinct from the resting highlight border, so the active region can be recolored without touching the rest.\n- `--lr-svg-viewer-highlight-accent-color` (default: `var(--lr-color-brand)`) — Accent highlight border and hover tint.\n- `--lr-svg-viewer-highlight-success-color` (default: `var(--lr-color-success)`) — Success highlight border and hover tint.\n- `--lr-svg-viewer-highlight-warning-color` (default: `var(--lr-color-warning)`) — Warning highlight border and hover tint.\n- `--lr-svg-viewer-highlight-danger-color` (default: `var(--lr-color-danger)`) — Danger highlight border and hover tint.\n- `--lr-svg-viewer-highlight-neutral-color` (default: `var(--lr-color-neutral)`) — Neutral highlight border and hover tint."
|
|
12985
14090
|
},
|
|
12986
14091
|
"attributes": [
|
|
12987
14092
|
{
|
|
@@ -13032,7 +14137,7 @@
|
|
|
13032
14137
|
"name": "lr-swatch-picker",
|
|
13033
14138
|
"description": {
|
|
13034
14139
|
"kind": "markdown",
|
|
13035
|
-
"value": "`<lr-swatch-picker>` -- a single-select picker over a small, fixed set of color swatches with\nthe WAI-ARIA APG `radiogroup` contract built in: `role=\"radiogroup\"`/`role=\"radio\"`, roving\ntabindex, automatic activation (click or arrow-key move both select immediately, like a native\nradio group), cyclic Arrow/Home/End navigation. Distinct from `<lr-color-picker>`'s freeform\nnative color input -- this picks exactly one of N designer-chosen named colors, the shape apps\notherwise hand-roll as a row of round accent-color buttons.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The `role=\"radiogroup\"` root. |\n| `swatch` | A single `role=\"radio\"` color swatch's interactive hit target; sized via `--lr-swatch-picker-hit-size` (defaults to `--lr-size-2-5rem`, swapped per `size` tier and floored at 24px), independent of the smaller visible fill/icon rendered inside it. The selected one is `[part='swatch'][aria-checked='true']`. |\n| `swatch-fill` | The compact filled circle rendered when the option has no custom `icon`. |\n| `swatch-icon` | Optional custom shape supplied by the option's `icon` field; when present it replaces `swatch-fill` and the swatch renders unfilled/unbordered behind it. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-swatch-picker-selected-color` (default: `var(--lr-color-brand)`) — Ring color drawn around the selected swatch, themeable independently of the focus ring and every other ring color.\n- `--lr-swatch-picker-selected-blur` (default: `0`) — Blur radius of that same ring. 0 by default (a crisp ring); set a real length (e.g. 0.4rem) for a soft glow instead.\n- `--lr-swatch-picker-shine-duration` (default: `0s`) — Duration of a rhythmic brighten-and-settle \"shine\" on the selected swatch. `0s` (the default) is a no-op -- today's static look for every existing consumer. Set a real duration (e.g. 1.6s) for a pulsing shine; disabled outright under `prefers-reduced-motion: reduce`. Independent of `--lr-swatch-picker-selected-blur` (a separate `filter: brightness()` animation, not `box-shadow`), so the two compose freely, and works identically for a plain color circle and an icon swatch alike.\n- `--lr-swatch-picker-hit-size` (default: `var(--lr-size-2-5rem)`) — Hit-area size (both min-inline-size and min-block-size) for the swatch button, swapped per tier and floored at 24px.\n- `--lr-swatch-picker-fill-size` (default: `var(--lr-size-1-5rem)`) — Visible fill/icon diameter for the swatch, swapped per tier."
|
|
14140
|
+
"value": "`<lr-swatch-picker>` -- a single-select picker over a small, fixed set of color swatches with\nthe WAI-ARIA APG `radiogroup` contract built in: `role=\"radiogroup\"`/`role=\"radio\"`, roving\ntabindex, automatic activation (click or arrow-key move both select immediately, like a native\nradio group), cyclic Arrow/Home/End navigation. Distinct from `<lr-color-picker>`'s freeform\nnative color input -- this picks exactly one of N designer-chosen named colors, the shape apps\notherwise hand-roll as a row of round accent-color buttons.\n\n`mode=\"gemstone\"` uses the shared faceted gemstone glyph for options carrying a `gemstone`\nkey and opts into the gemstone glow/shine defaults. The `options` array still controls display\norder and `value` still controls the initial selection.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The `role=\"radiogroup\"` root. |\n| `swatch` | A single `role=\"radio\"` color swatch's interactive hit target; sized via `--lr-swatch-picker-hit-size` (defaults to `--lr-size-2-5rem`, swapped per `size` tier and floored at 24px), independent of the smaller visible fill/icon rendered inside it. The selected one is `[part='swatch'][aria-checked='true']`. |\n| `swatch-fill` | The compact filled circle rendered when the option has no custom `icon`. |\n| `swatch-icon` | Optional custom shape supplied by the option's `icon` field; when present it replaces `swatch-fill` and the swatch renders unfilled/unbordered behind it. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-swatch-picker-selected-color` (default: `var(--lr-color-brand)`) — Ring color drawn around the selected swatch, themeable independently of the focus ring and every other ring color.\n- `--lr-swatch-picker-selected-blur` (default: `0`) — Blur radius of that same ring. 0 by default (a crisp ring); set a real length (e.g. 0.4rem) for a soft glow instead.\n- `--lr-swatch-picker-shine-duration` (default: `0s`) — Duration of a rhythmic brighten-and-settle \"shine\" on the selected swatch. `0s` (the default) is a no-op -- today's static look for every existing consumer. Set a real duration (e.g. 1.6s) for a pulsing shine; disabled outright under `prefers-reduced-motion: reduce`. Independent of `--lr-swatch-picker-selected-blur` (a separate `filter: brightness()` animation, not `box-shadow`), so the two compose freely, and works identically for a plain color circle and an icon swatch alike.\n- `--lr-swatch-picker-gemstone-selected-blur` (default: `var(--lr-size-0-5rem)`) — Selected glow blur used by `mode=\"gemstone\"` when `--lr-swatch-picker-selected-blur` is not overridden.\n- `--lr-swatch-picker-gemstone-shine-duration` (default: `var(--lr-transition-ambient)`) — Selected shine timing used by `mode=\"gemstone\"` when `--lr-swatch-picker-shine-duration` is not overridden.\n- `--lr-swatch-picker-hit-size` (default: `var(--lr-size-2-5rem)`) — Hit-area size (both min-inline-size and min-block-size) for the swatch button, swapped per tier and floored at 24px.\n- `--lr-swatch-picker-fill-size` (default: `var(--lr-size-1-5rem)`) — Visible fill/icon diameter for the swatch, swapped per tier.\n- `--lr-swatch-picker-gap` (default: `var(--lr-space-xs)`) — Gap between swatches."
|
|
13036
14141
|
},
|
|
13037
14142
|
"attributes": [
|
|
13038
14143
|
{
|
|
@@ -13049,6 +14154,13 @@
|
|
|
13049
14154
|
"value": "Optional locale override. Otherwise the nearest `locale`/`lang` ancestor is used.\n\nType: `string` \nDefault: `''`"
|
|
13050
14155
|
}
|
|
13051
14156
|
},
|
|
14157
|
+
{
|
|
14158
|
+
"name": "mode",
|
|
14159
|
+
"description": {
|
|
14160
|
+
"kind": "markdown",
|
|
14161
|
+
"value": "Visual treatment. `swatch` preserves the plain-circle default; `gemstone` renders the shared\ngemstone glyph for options with a `gemstone` key and enables its glow/shine recipe.\n\nType: `LyraSwatchPickerMode` \nDefault: `'swatch'`"
|
|
14162
|
+
}
|
|
14163
|
+
},
|
|
13052
14164
|
{
|
|
13053
14165
|
"name": "size",
|
|
13054
14166
|
"description": {
|
|
@@ -13134,9 +14246,16 @@
|
|
|
13134
14246
|
"name": "lr-table",
|
|
13135
14247
|
"description": {
|
|
13136
14248
|
"kind": "markdown",
|
|
13137
|
-
"value": "`<lr-table>` — a presentational, sort/select-aware data table.\n\nHeader/row activation is delegated: one `click` and one `keydown`\nlistener on `<table>` resolve the target via `closest('[data-col-key]'\n| '[data-row-key]')` and a key→object lookup map, instead of allocating\nfresh per-column/per-row closures on every render. Both listeners guard\nagainst nested interactive `cell()` content first (see\n`INTERACTIVE_SELECTOR`) so a button/link/input inside a cell owns its own\nactivation instead of triggering `lr-row-click`.\n\nKeyboard focus follows a roving-tabindex pattern (one `tabindex=\"0\"` stop\namong the header cells, one among the body rows — see `focusedColKey()` /\n`focusedRowKey()`), matching this repo's other `role=\"grid\"`/composite\nwidgets. Left/Right/Home/End move within the header row; Up/Down/Home/End\nmove within the body; Down from the header enters the body's roving stop,\nand Up from the body's first row returns to the header's roving stop.\nEnter/Space still only sort/activate (see `activateColumn()` /\n`activateRow()`).\n\nSet `aria-label` on the host to give the `role=\"grid\"` element an\naccessible name; it's forwarded into the shadow DOM's `<table>`.\n\n`columns[].priority` ('medium' | 'low') hides that column under\n`[part='base']`'s `@container` breakpoints; `[part='reveal-columns-button']`\nforces them all back into view. Rather than a *static* check of whether any\ncolumn merely declares a `priority`, the button (and the public\n`columnsHidden` property, see below) reflects whether a `priority` column\nis *actually* hidden right now — measured via `ResizeObserver` on\n`[part='base']` plus a post-render DOM check — or the public `showAllColumns`\nforce-visible mode is currently active (so there's still a way to toggle\nit back off). `showAllColumns` defaults to `false` and toggles itself on\n`[part='reveal-columns-button']` activation with no external wiring\nrequired, but is also settable up front (property or the reflected\n`show-all-columns` attribute) to restore a previously-persisted\npreference, and readable back — directly or via the `lr-columns-revealed`\nevent — to persist the current one. `columns[].sticky` pins a column's\nheader/cells to the inline-start (default/`true`) or inline-end (`'end'`)\nedge while the table scrolls horizontally.\n\n`expandedContent` (a table-level `(row: T) => unknown`, not a per-column\nhook, since the resulting panel spans every column via `colspan`) makes\nevery row render a leading chevron-toggle cell before its data columns.\n`canExpand` optionally gates which rows actually get an interactive\ntoggle — a row that fails it still gets a blank leading cell for column\nalignment. Which rows are currently open is fully consumer-owned via\n`expandedKeys` (a `Set<string | number>` of row keys, per `rowKey`/\n`keyOf()`) — the table only reads it and emits `lr-row-expand-toggle`\non activation, mirroring `sortKey`/`selectedKey`'s existing\npresentational-only convention.\n\nSelection is opt-in through the `selectionMode` property. Use `single` or\n`multiple` to self-manage row selection; the default `none` remains\npresentational. `selectedKeys` contains the raw keys selected in multiple\nmode.\n\n`filterable` adds a compact search field above the grid. `filterText` is\ncontrolled and emits `lr-filter-change`; `filter` can provide a typed\npredicate, otherwise the row is matched against its JSON representation.\n`pageSize` enables controlled pagination through the existing\n`<lr-pagination>` primitive. Client mode slices `rows`; server mode\nrenders the supplied page unchanged while using `totalItems` for the\nnavigation summary. `loading` keeps the table shell busy; `loadingAppearance`\nchooses how — the default `'spinner'` replaces the grid with an indeterminate\nspinner, while `'skeleton'` keeps the real `<colgroup>`/`<thead>` (and the\nfilter/pagination chrome) and fills the body with `skeletonRows` placeholder\nrows, so column geometry survives the load instead of collapsing and\nreflowing. Either way exactly one `role=\"status\"` live region announces the\nstate — every placeholder opts out of `<lr-skeleton>`'s own announcement.\nColumns with `editable: true` open a native text/number editor on\ndouble-click and emit `lr-cell-edit`; row mutation remains consumer-owned.\n`editable: 'always'` instead renders that editor in every body cell of the\ncolumn from first paint — a settings/rate-style column meant to be typed\nstraight into. Persistent editors are plain tab stops (no `tabindex` of their\nown, exactly like the row-expand toggle) outside the header/row roving model,\nso arrow keys still navigate the grid from a row's own tab stop and act as\ncaret movement once focus is inside a field. Enter commits and keeps focus;\nEscape has nothing to cancel back to, so it is left uncancelled for an\nancestor dialog/popover. Their value binds as a content attribute, so once\nthe user has typed into one an out-of-band `rows` update to that same cell no\nlonger replaces the draft; an untouched editor still picks up a new value.\nFocus is restored across a re-sort that moves the editor's node, and dropped\n(never re-aimed at an unrelated row) when its row leaves the rendered page.\n`spellcheck`/`autocapitalize`/`autoCorrect` forward to the filter input and, for a `'text'`\n(the default) `editType`, the inline cell editor -- no effect on a `'number'` cell editor.\n`groupBy` inserts non-focusable group header rows before each group; use\n`groupLabel` when the raw group key needs custom content.\n\n`columns[].heatValue` opts a column into heat-tint mode: its numeric return value is normalized\nagainst a shared scale spanning every `heatValue`-defining column across every currently-rendered\nrow (auto-derived, or overridden via `heatTintScale`) and painted as a `color-mix()` background via\nthe retheme-able `--lr-table-heat-tint-lo`/`-hi` custom properties (matching `lr-heatmap`'s own\nramp-token convention). `rowTotal`/`grandTotal` add a trailing column mirroring `expandedContent`'s\nleading one: `rowTotal(row)` renders per-row, `grandTotal(rows)` renders at its intersection with\nthe footer row (only when a column also defines `footer`) — both share `footer`'s own\n\"consumer computes/renders\" contract rather than assuming addition.\n\nThe built-in empty state is addressable rather than fixed: every `<lr-empty>` the table renders\ncarries `part=\"empty\"` and re-exports its own inner parts as `empty-heading`/`empty-description`/\n`empty-icon`/`empty-actions`/`empty-base`, the two *data*-empty branches (no rows at all, and\nfiltered/paginated down to zero) render it as the fallback content of a named `empty` slot so a\nconsumer can replace it wholesale, and `emptyCompact` overrides each branch's built-in `compact`\ndefault. The no-columns branch is deliberately **not** slot-replaceable — it reports a\nconfiguration problem (`noColumnsHeading`), not \"this query returned nothing\", and a single slot\ncovering all three would collapse that distinction.\n\n`layout` sets a floor on the `<table>`'s `table-layout`: `'fixed'` forces it even with no column\nwidths, while the default `'auto'` still resolves to `fixed` whenever a column declares a `width`\nor a drag-resize is in flight (column resizing does not work under `table-layout: auto`).\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| `empty` | Replaces the built-in empty state on the two *data*-empty branches (no rows at all, and filtered/paginated down to zero). Left unfilled, the built-in `[part='empty']` `<lr-empty>` renders as this slot's fallback content. The no-columns branch renders its own `noColumnsHeading` state and is not slot-replaceable. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The root wrapper around the `<table>` and its footer controls. |\n| `cell` | Each body `<td>`. |\n| `cell-editor` | The native inline cell editor: shown after a double-click on an `editable: true` cell, and rendered persistently in every body cell of an `editable: 'always'` column. |\n| `empty` | The built-in `<lr-empty>` host, in all three empty states (no columns configured, no rows at all, and filtered/paginated down to zero rows). The two data-empty states render it as the `empty` slot's fallback, so it disappears once that slot is filled. Note that the no-columns and no-rows states return the empty element as the shadow root's own root, with no `[part='base']` wrapper around it — `::part(base)` does not apply in those two states, only in the filtered-to-zero one. |\n| `empty-actions` | Exported from the built-in `<lr-empty>`'s `actions` part. |\n| `empty-base` | Exported from the built-in `<lr-empty>`'s own `base` part. |\n| `empty-description` | Exported from the built-in `<lr-empty>`'s `description` part. |\n| `empty-heading` | Exported from the built-in `<lr-empty>`'s `heading` part. |\n| `empty-icon` | Exported from the built-in `<lr-empty>`'s `icon` part. |\n| `expand-toggle-cell` | Each row's (and the header's) leading chevron-toggle cell, rendered only when `expandedContent` is set. |\n| `expanded-cell` | The single `colspan`-spanning `<td>` inside `expanded-row`, containing `expandedContent(row)`. |\n| `expanded-row` | The full-width panel `<tr>` rendered beneath a row whose key is in `expandedKeys`. |\n| `filter` | The optional row-filter input. |\n| `filter-label` | The `<label>` wrapping the filter input. |\n| `foot` | The `<tfoot>`, only rendered when at least one column defines `footer`. |\n| `footer-cell` | A single footer cell. |\n| `footer-row` | The single footer row. |\n| `group-cell` | The full-width group header cell. |\n| `group-row` | A non-focusable group header row. |\n| `head` | The `<thead>` element. |\n| `header-cell` | Each `<th>` header cell. |\n| `loading` | The loading-state wrapper. Under `loadingAppearance=\"spinner\"` (the default) it is the visible block holding the spinner; under `\"skeleton\"` it is the visually-hidden `role=\"status\"` node, since the placeholder rows are the visible affordance. |\n| `more-button` | The \"load more\" control, shown when `hasMore` is true. |\n| `pagination` | The optional pagination component. |\n| `resize-handle` | The focusable separator used to resize a `resizable` column. |\n| `reveal-columns-button` | The button that toggles `priority`-hidden columns back into view. |\n| `row` | Each body `<tr>`. |\n| `row-expand-icon` | The chevron icon inside `row-expand-toggle`. |\n| `row-expand-toggle` | The `<button>` inside `expand-toggle-cell`, absent for a row that fails `canExpand`. |\n| `row-total-cell` | Each body row's trailing `<td>` holding `rowTotal(row)`, rendered only when `rowTotal` is set. The corresponding footer-row cell (holding `grandTotal`) is a `footer-cell` instead, matching every other footer cell. |\n| `skeleton` | Each `<lr-skeleton>` placeholder inside a `loadingAppearance=\"skeleton\"` body cell. Its rows and cells reuse the ordinary `row`/`cell`/`row-total-cell` parts (that is what keeps them geometrically identical to real rows), so this is the part to target for the placeholder's own look — e.g. `::part(skeleton) { --lr-skeleton-h: 2em; }`. |\n| `sort-icon` | The chevron shown in the active sortable column's header cell. |\n| `table` | The `<table role=\"grid\">` element. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-table-resize-min-width` (default: `var(--lr-size-3rem)`) — Default minimum width for a resizable column without an explicit pixel `minWidth`.\n- `--lr-table-resize-handle-opacity` (default: `0.12`) — Hover/focus opacity of the resize handle.\n- `--lr-table-max-height` (default: `none`) — Cap on the scroll container's block size, past which the table body scrolls.\n- `--lr-table-heat-tint-lo` (default: `var(--lr-color-brand-quiet)`) — Low endpoint of the heat-tint ramp used by `heatValue` columns.\n- `--lr-table-heat-tint-hi` (default: `var(--lr-color-brand)`) — High endpoint of the heat-tint ramp used by `heatValue` columns.\n- `--lr-table-heat-t` — This cell's position on the heat-tint ramp, as a percentage string. Set inline by the component on each `[data-heat]` cell; not consumer-settable.\n- `--lr-table-row-selected-bg` (default: `var(--lr-color-brand-quiet)`) — Background of a row whose `aria-selected` is `true`. Shadow Parts forbids an attribute selector after `::part()`, so `::part(row)[aria-selected]` is invalid CSS and the selected row could otherwise only be restyled by hijacking the library-wide `--lr-color-brand-quiet` token.\n- `--lr-table-sticky-offset` (default: `0`) — Distance a `sticky` column pins from the inline edge. Measured and set inline per column by the component so multiple sticky columns stack instead of overlapping; falls back to `0` for the first one, or before the first measurement pass."
|
|
14249
|
+
"value": "`<lr-table>` — a sort/select-aware data table.\n\nSorting is the one area the table owns outright: under the default\n`sortMode: 'client'` a sortable-header activation writes `sortKey`/`sortDir`\nitself and reorders the rendered rows (see `sortMode`, `defaultSortDir` and\n`columns[].sortValue`). Everything else here stays presentational —\nselection state beyond `selectionMode` and expansion state are read, never\nwritten. Set `sortMode=\"server\"` to keep `lr-sort` a pure notification and\ndrive `sortKey`/`sortDir` plus the row order entirely from your own state.\n\nHeader/row activation is delegated: one `click` and one `keydown`\nlistener on `<table>` resolve the target via `closest('[data-col-key]'\n| '[data-row-key]')` and a key→object lookup map, instead of allocating\nfresh per-column/per-row closures on every render. Both listeners guard\nagainst nested interactive `cell()` content first (see\n`INTERACTIVE_SELECTOR`) so a button/link/input inside a cell owns its own\nactivation instead of triggering `lr-row-click`.\n\nKeyboard focus follows a roving-tabindex pattern (one `tabindex=\"0\"` stop\namong the header cells, one among the body rows — see `focusedColKey()` /\n`focusedRowKey()`), matching this repo's other `role=\"grid\"`/composite\nwidgets. Left/Right/Home/End move within the header row; Up/Down/Home/End\nmove within the body; Down from the header enters the body's roving stop,\nand Up from the body's first row returns to the header's roving stop.\nEnter/Space still only sort/activate (see `activateColumn()` /\n`activateRow()`).\n\nSet `aria-label` on the host to give the `role=\"grid\"` element an\naccessible name; it's forwarded into the shadow DOM's `<table>`.\n\n`columns[].priority` ('medium' | 'low') hides that column under\n`[part='base']`'s `@container` breakpoints; `[part='reveal-columns-button']`\nforces them all back into view. Rather than a *static* check of whether any\ncolumn merely declares a `priority`, the button (and the public\n`columnsHidden` property, see below) reflects whether a `priority` column\nis *actually* hidden right now — measured via `ResizeObserver` on\n`[part='base']` plus a post-render DOM check — or the public `showAllColumns`\nforce-visible mode is currently active (so there's still a way to toggle\nit back off). `showAllColumns` defaults to `false` and toggles itself on\n`[part='reveal-columns-button']` activation with no external wiring\nrequired, but is also settable up front (property or the reflected\n`show-all-columns` attribute) to restore a previously-persisted\npreference, and readable back — directly or via the `lr-columns-revealed`\nevent — to persist the current one. `columns[].sticky` pins a column's\nheader/cells to the inline-start (default/`true`) or inline-end (`'end'`)\nedge while the table scrolls horizontally.\n\n`expandedContent` (a table-level `(row: T) => unknown`, not a per-column\nhook, since the resulting panel spans every column via `colspan`) makes\nevery row render a leading chevron-toggle cell before its data columns.\n`canExpand` optionally gates which rows actually get an interactive\ntoggle — a row that fails it still gets a blank leading cell for column\nalignment. Which rows are currently open is fully consumer-owned via\n`expandedKeys` (a `Set<string | number>` of row keys, per `rowKey`/\n`keyOf()`) — the table only reads it and emits `lr-row-expand-toggle`\non activation, mirroring `selectedKey`'s existing presentational-only\nconvention. (`sortKey`/`sortDir` are *not* a parallel case any more: under\nthe default `sortMode: 'client'` the table writes them on header\nactivation.)\n\nSelection is opt-in through the `selectionMode` property. Use `single` or\n`multiple` to self-manage row selection; the default `none` remains\npresentational. `selectedKeys` contains the raw keys selected in multiple\nmode.\n\n`filterable` adds a compact search field above the grid. `filterText` is\ncontrolled and emits `lr-filter-change`; `filter` can provide a typed\npredicate, otherwise the row is matched against its JSON representation.\n`pageSize` enables controlled pagination through the existing\n`<lr-pagination>` primitive. Client mode slices `rows`; server mode\nrenders the supplied page unchanged while using `totalItems` for the\nnavigation summary. `loading` keeps the table shell busy; `loadingAppearance`\nchooses how — the default `'spinner'` replaces the grid with an indeterminate\nspinner, while `'skeleton'` keeps the real `<colgroup>`/`<thead>` (and the\nfilter/pagination chrome) and fills the body with `skeletonRows` placeholder\nrows, so column geometry survives the load instead of collapsing and\nreflowing. Either way exactly one `role=\"status\"` live region announces the\nstate — every placeholder opts out of `<lr-skeleton>`'s own announcement.\nColumns with `editable: true` open a native text/number editor on\ndouble-click and emit `lr-cell-edit`; row mutation remains consumer-owned.\n`editable: 'always'` instead renders that editor in every body cell of the\ncolumn from first paint — a settings/rate-style column meant to be typed\nstraight into. Persistent editors are plain tab stops (no `tabindex` of their\nown, exactly like the row-expand toggle) outside the header/row roving model,\nso arrow keys still navigate the grid from a row's own tab stop and act as\ncaret movement once focus is inside a field. Enter commits and keeps focus;\nEscape has nothing to cancel back to, so it is left uncancelled for an\nancestor dialog/popover. Their value binds as a content attribute, so once\nthe user has typed into one an out-of-band `rows` update to that same cell no\nlonger replaces the draft; an untouched editor still picks up a new value.\nFocus is restored across a re-sort that moves the editor's node, and dropped\n(never re-aimed at an unrelated row) when its row leaves the rendered page.\n`spellcheck`/`autocapitalize`/`autoCorrect` forward to the filter input and, for a `'text'`\n(the default) `editType`, the inline cell editor -- no effect on a `'number'` cell editor.\n`groupBy` inserts non-focusable group header rows before each group; use\n`groupLabel` when the raw group key needs custom content. A client-mode\nsort applies *within* each group, so grouping survives sorting on a column\nunrelated to the group key.\n\n`columns[].heatValue` opts a column into heat-tint mode: its numeric return value is normalized\nagainst a shared scale spanning every `heatValue`-defining column across every currently-rendered\nrow (auto-derived, or overridden via `heatTintScale`) and painted as a `color-mix()` background via\nthe retheme-able `--lr-table-heat-tint-lo`/`-hi` custom properties (matching `lr-heatmap`'s own\nramp-token convention). `rowTotal`/`grandTotal` add a trailing column mirroring `expandedContent`'s\nleading one: `rowTotal(row)` renders per-row, `grandTotal(rows)` renders at its intersection with\nthe footer row (only when a column also defines `footer`) — both share `footer`'s own\n\"consumer computes/renders\" contract rather than assuming addition.\n\nThe built-in empty state is addressable rather than fixed: every `<lr-empty>` the table renders\ncarries `part=\"empty\"` and re-exports its own inner parts as `empty-heading`/`empty-description`/\n`empty-icon`/`empty-actions`/`empty-base`, the two *data*-empty branches (no rows at all, and\nfiltered/paginated down to zero) render it as the fallback content of a named `empty` slot so a\nconsumer can replace it wholesale, and `emptyCompact` overrides each branch's built-in `compact`\ndefault. The no-columns branch is deliberately **not** slot-replaceable — it reports a\nconfiguration problem (`noColumnsHeading`), not \"this query returned nothing\", and a single slot\ncovering all three would collapse that distinction.\n\n`layout` sets a floor on the `<table>`'s `table-layout`: `'fixed'` forces it even with no column\nwidths, while the default `'auto'` still resolves to `fixed` whenever a column declares a `width`\nor a drag-resize is in flight (column resizing does not work under `table-layout: auto`).\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| `empty` | Replaces the built-in empty state on the two *data*-empty branches (no rows at all, and filtered/paginated down to zero). Left unfilled, the built-in `[part='empty']` `<lr-empty>` renders as this slot's fallback content. The no-columns branch renders its own `noColumnsHeading` state and is not slot-replaceable. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The root wrapper around the `<table>` and its footer controls. |\n| `caption` | The `<caption>` element, rendered only when `caption` is set. |\n| `cell` | Each body `<td>`. |\n| `cell-editor` | The native inline cell editor: shown after a double-click on an `editable: true` cell, and rendered persistently in every body cell of an `editable: 'always'` column. |\n| `empty` | The built-in `<lr-empty>` host, in all three empty states (no columns configured, no rows at all, and filtered/paginated down to zero rows). The two data-empty states render it as the `empty` slot's fallback, so it disappears once that slot is filled. Note that the no-columns and no-rows states return the empty element as the shadow root's own root, with no `[part='base']` wrapper around it — `::part(base)` does not apply in those two states, only in the filtered-to-zero one. |\n| `empty-actions` | Exported from the built-in `<lr-empty>`'s `actions` part. |\n| `empty-base` | Exported from the built-in `<lr-empty>`'s own `base` part. |\n| `empty-description` | Exported from the built-in `<lr-empty>`'s `description` part. |\n| `empty-heading` | Exported from the built-in `<lr-empty>`'s `heading` part. |\n| `empty-icon` | Exported from the built-in `<lr-empty>`'s `icon` part. |\n| `expand-toggle-cell` | Each row's (and the header's) leading chevron-toggle cell, rendered only when `expandedContent` is set. |\n| `expanded-cell` | The single `colspan`-spanning `<td>` inside `expanded-row`, containing `expandedContent(row)`. |\n| `expanded-row` | The full-width panel `<tr>` rendered beneath a row whose key is in `expandedKeys`. |\n| `filter` | The optional row-filter input. |\n| `filter-label` | The `<label>` wrapping the filter input. |\n| `foot` | The `<tfoot>`, only rendered when at least one column defines `footer`. |\n| `footer-cell` | A single footer cell. |\n| `footer-row` | The single footer row. |\n| `group-cell` | The full-width group header cell. |\n| `group-row` | A non-focusable group header row. |\n| `head` | The `<thead>` element. |\n| `header-cell` | Each `<th>` header cell. |\n| `loading` | The loading-state wrapper. Under `loadingAppearance=\"spinner\"` (the default) it is the visible block holding the spinner; under `\"skeleton\"` it is the visually-hidden `role=\"status\"` node, since the placeholder rows are the visible affordance. |\n| `more-button` | The \"load more\" control, shown when `hasMore` is true. |\n| `pagination` | The optional pagination component. |\n| `resize-handle` | The focusable separator used to resize a `resizable` column. |\n| `reveal-columns-button` | The button that toggles `priority`-hidden columns back into view. |\n| `row` | Each body `<tr>`. |\n| `row-expand-icon` | The chevron icon inside `row-expand-toggle`. |\n| `row-expand-toggle` | The `<button>` inside `expand-toggle-cell`, absent for a row that fails `canExpand`. |\n| `row-total-cell` | Each body row's trailing `<td>` holding `rowTotal(row)`, rendered only when `rowTotal` is set. The corresponding footer-row cell (holding `grandTotal`) is a `footer-cell` instead, matching every other footer cell. |\n| `skeleton` | Each `<lr-skeleton>` placeholder inside a `loadingAppearance=\"skeleton\"` body cell. Its rows and cells reuse the ordinary `row`/`cell`/`row-total-cell` parts (that is what keeps them geometrically identical to real rows), so this is the part to target for the placeholder's own look — e.g. `::part(skeleton) { --lr-skeleton-h: 2em; }`. |\n| `sort-icon` | The chevron shown in the active sortable column's header cell. |\n| `table` | The `<table role=\"grid\">` element. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-table-resize-min-width` (default: `var(--lr-size-3rem)`) — Default minimum width for a resizable column without an explicit pixel `minWidth`.\n- `--lr-table-resize-handle-opacity` (default: `0.12`) — Hover/focus opacity of the resize handle.\n- `--lr-table-max-height` (default: `none`) — Cap on the scroll container's block size, past which the table body scrolls.\n- `--lr-table-heat-tint-lo` (default: `var(--lr-color-brand-quiet)`) — Low endpoint of the heat-tint ramp used by `heatValue` columns.\n- `--lr-table-heat-tint-hi` (default: `var(--lr-color-brand)`) — High endpoint of the heat-tint ramp used by `heatValue` columns.\n- `--lr-table-heat-t` — This cell's position on the heat-tint ramp, as a percentage string. Set inline by the component on each `[data-heat]` cell; not consumer-settable.\n- `--lr-table-row-selected-bg` (default: `var(--lr-color-brand-quiet)`) — Background of a row whose `aria-selected` is `true`. Shadow Parts forbids an attribute selector after `::part()`, so `::part(row)[aria-selected]` is invalid CSS and the selected row could otherwise only be restyled by hijacking the library-wide `--lr-color-brand-quiet` token.\n- `--lr-table-row-stripe-bg` (default: `transparent`) — Background of alternating body rows. The token is read only on rows carrying the internal stripe marker, so it can be set on the table or an ancestor without affecting group, expanded, hover, or selected rows.\n- `--lr-table-header-sorted-bg` (default: `transparent`) — Background of the currently-sorted column's header cell (`[aria-sort]` other than `none`). Same rationale as `--lr-table-row-selected-bg`: `::part(header-cell)[aria-sort]` is invalid CSS, so this token is the supported way to recolor the sorted header without hijacking a library-wide token.\n- `--lr-table-header-sorted-color` (default: `inherit`) — Text color of the currently-sorted column's header cell.\n- `--lr-table-sticky-offset` (default: `0`) — Distance a `sticky` column pins from the inline edge. Measured and set inline per column by the component so multiple sticky columns stack instead of overlapping; falls back to `0` for the first one, or before the first measurement pass."
|
|
13138
14250
|
},
|
|
13139
14251
|
"attributes": [
|
|
14252
|
+
{
|
|
14253
|
+
"name": "accessible-label",
|
|
14254
|
+
"description": {
|
|
14255
|
+
"kind": "markdown",
|
|
14256
|
+
"value": "Accessible name for the `role=\"grid\"` — a typed alternative to setting `aria-label` on the\nhost. When set it becomes the grid's `aria-label`; a host `aria-label` is used as a fallback\nwhen this is unset. Consumer-supplied text, so it is NOT run through `this.localize()`.\n\nType: `string` \nDefault: `''`"
|
|
14257
|
+
}
|
|
14258
|
+
},
|
|
13140
14259
|
{
|
|
13141
14260
|
"name": "autocapitalize",
|
|
13142
14261
|
"description": {
|
|
@@ -13151,6 +14270,13 @@
|
|
|
13151
14270
|
"value": "Forwarded to the same inputs' native `autocorrect` (Safari/WebKit-specific). Empty string\nomits the attribute (browser default). Named `autoCorrect` (capital `C`), not `autocorrect`,\nto dodge a TS `lib.dom.d.ts` collision -- same fix as `<lr-textarea>`/`<lr-model-select>`.\n\nType: `string` \nDefault: `''`"
|
|
13152
14271
|
}
|
|
13153
14272
|
},
|
|
14273
|
+
{
|
|
14274
|
+
"name": "caption",
|
|
14275
|
+
"description": {
|
|
14276
|
+
"kind": "markdown",
|
|
14277
|
+
"value": "Optional visible caption rendered as the table's `<caption>`. Also names the grid (via\n`aria-labelledby`) when no `accessibleLabel`/host `aria-label` is set. Consumer-supplied\ntext, not localized.\n\nType: `string` \nDefault: `''`"
|
|
14278
|
+
}
|
|
14279
|
+
},
|
|
13154
14280
|
{
|
|
13155
14281
|
"name": "columns-hidden",
|
|
13156
14282
|
"description": {
|
|
@@ -13158,6 +14284,21 @@
|
|
|
13158
14284
|
"value": "Whether a `priority` column is *actually* hidden right now by\ntable.styles.ts's `@container` rules, or `showAllColumns` force-visible\nmode is currently active — the same computed value that gates whether\n`[part='reveal-columns-button']` renders at all (see `render()`), kept\nin sync by `recomputeColumnsHidden()`. Computed/read-only by\nconvention: consumers may read it (and listen for\n`lr-columns-hidden-change`), but setting it directly has no lasting\neffect, since it's recomputed on the very next render or\n`[part='base']` resize.\n\nType: `boolean` \nDefault: `false`"
|
|
13159
14285
|
}
|
|
13160
14286
|
},
|
|
14287
|
+
{
|
|
14288
|
+
"name": "default-sort-dir",
|
|
14289
|
+
"description": {
|
|
14290
|
+
"kind": "markdown",
|
|
14291
|
+
"value": "The direction applied whenever header activation switches sorting to a *different* column —\nincluding the first column ever sorted. Re-activating the column that is already `sortKey`\ntoggles between `'asc'` and `'desc'` instead, so this never overrides a direction the user\njust chose for the column they are still on. Defaults to `'asc'`; set `'desc'` for a\nmost-recent-first or highest-first table.\n\nType: `'asc' | 'desc'` \nDefault: `'asc'`"
|
|
14292
|
+
},
|
|
14293
|
+
"values": [
|
|
14294
|
+
{
|
|
14295
|
+
"name": "asc"
|
|
14296
|
+
},
|
|
14297
|
+
{
|
|
14298
|
+
"name": "desc"
|
|
14299
|
+
}
|
|
14300
|
+
]
|
|
14301
|
+
},
|
|
13161
14302
|
{
|
|
13162
14303
|
"name": "empty-compact",
|
|
13163
14304
|
"description": {
|
|
@@ -13364,6 +14505,13 @@
|
|
|
13364
14505
|
"value": "Type: `string` \nDefault: `''`"
|
|
13365
14506
|
}
|
|
13366
14507
|
},
|
|
14508
|
+
{
|
|
14509
|
+
"name": "sort-mode",
|
|
14510
|
+
"description": {
|
|
14511
|
+
"kind": "markdown",
|
|
14512
|
+
"value": "`'client'` (the default) orders `rows` itself, in the browser, from `sortKey`/`sortDir` and\nthe active column's `sortValue`. `'server'` renders `rows` in exactly the order given,\nassuming the caller has already sorted them — mirroring `paginationMode`'s identical\nclient/server split. `lr-sort` is emitted on header activation either way.\n\nWith no `sortKey` set (the default) `'client'` is a no-op: the input order is preserved\nverbatim, so an existing consumer that only listens for `lr-sort` sees unchanged rendering\nuntil a header is actually activated.\n\nType: `TableSortMode` \nDefault: `'client'`"
|
|
14513
|
+
}
|
|
14514
|
+
},
|
|
13367
14515
|
{
|
|
13368
14516
|
"name": "spellcheck",
|
|
13369
14517
|
"description": {
|
|
@@ -13371,6 +14519,13 @@
|
|
|
13371
14519
|
"value": "Forwarded to the filter input's, and (when the active column's `editType` is `'text'`, the\ndefault) the inline cell-editor input's, native `spellcheck`. Defaults to `true`, matching\nthe native element's own default. `spellcheck=\"false\"` is parsed as `false` (see\n`spellcheckConverter` above). No effect on a `'number'` cell editor.\n\nType: `boolean` \nDefault: `true`"
|
|
13372
14520
|
}
|
|
13373
14521
|
},
|
|
14522
|
+
{
|
|
14523
|
+
"name": "storage-key",
|
|
14524
|
+
"description": {
|
|
14525
|
+
"kind": "markdown",
|
|
14526
|
+
"value": "Persists `showAllColumns` to `localStorage` across reloads when set. Namespaced as\n`lr-table:${storageKey}` -- mirrors `lr-app-rail`'s identical `storage-key` pattern.\n\nType: `string | undefined`"
|
|
14527
|
+
}
|
|
14528
|
+
},
|
|
13374
14529
|
{
|
|
13375
14530
|
"name": "total-items",
|
|
13376
14531
|
"description": {
|
|
@@ -13444,7 +14599,7 @@
|
|
|
13444
14599
|
"name": "lr-task-list",
|
|
13445
14600
|
"description": {
|
|
13446
14601
|
"kind": "markdown",
|
|
13447
|
-
"value": "`<lr-task-list>` — a live, collapsible tracker for an agent's plan: ordered steps with\nper-step lifecycle status and one level of nested sub-steps, embedded in the transcript.\n`items` is controlled and never mutated by this component, mirroring `<lr-stepper>`'s `steps`\ncontract -- but unlike stepper's single-`current` navigation control, task-list is a read-only\nstatus report: several steps may be `running` at once, there is no selection, and status changes\nare announced through an internal `<lr-live-region>`.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| `detail-<id>` | Dynamic, one per item id (e.g. `slot=\"detail-step-3\"`). Rich detail under that item's label, after its `detail` text -- typically a `<lr-tool-call-chip>` or file `<lr-chip>`. Plain-HTML friendly, no render props. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The outer container. |\n| `body` | The list of items, `hidden` while collapsed. |\n| `header` | The clickable header (a `<button>` when `collapsible`, a plain heading otherwise). |\n| `item` | One item row (`role=\"listitem\"`); carries `data-status`, `data-id`, `data-depth` (`\"0\"` for a top-level item, `\"1\"` for a child). |\n| `item-children` | The nested `role=\"list\"` wrapper around a top-level item's children. |\n| `item-detail` | The item's optional `detail` text. |\n| `item-label` | The item's `label` text. |\n| `label` | The `label` text. |\n| `status-icon` | The per-item status glyph. |\n| `summary` | The visible \"N of M completed\" summary, counting only top-level items. |\n| `toggle` | The chevron indicator inside the header. Only rendered when `collapsible`. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-task-list-spin` (default: `
|
|
14602
|
+
"value": "`<lr-task-list>` — a live, collapsible tracker for an agent's plan: ordered steps with\nper-step lifecycle status and one level of nested sub-steps, embedded in the transcript.\n`items` is controlled and never mutated by this component, mirroring `<lr-stepper>`'s `steps`\ncontract -- but unlike stepper's single-`current` navigation control, task-list is a read-only\nstatus report: several steps may be `running` at once, there is no selection, and status changes\nare announced through an internal `<lr-live-region>`.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| `detail-<id>` | Dynamic, one per item id (e.g. `slot=\"detail-step-3\"`). Rich detail under that item's label, after its `detail` text -- typically a `<lr-tool-call-chip>` or file `<lr-chip>`. Plain-HTML friendly, no render props. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The outer container. |\n| `body` | The list of items, `hidden` while collapsed. |\n| `header` | The clickable header (a `<button>` when `collapsible`, a plain heading otherwise). |\n| `item` | One item row (`role=\"listitem\"`); carries `data-status`, `data-id`, `data-depth` (`\"0\"` for a top-level item, `\"1\"` for a child). |\n| `item-children` | The nested `role=\"list\"` wrapper around a top-level item's children. |\n| `item-detail` | The item's optional `detail` text. |\n| `item-label` | The item's `label` text. |\n| `label` | The `label` text. |\n| `status-icon` | The per-item status glyph. |\n| `summary` | The visible \"N of M completed\" summary, counting only top-level items. |\n| `toggle` | The chevron indicator inside the header. Only rendered when `collapsible`. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-task-list-spin` (default: `var(--lr-transition-ambient)`) — Running-status icon spin animation duration/timing.\n- `--lr-task-list-compact-header-padding` (default: `var(--lr-space-2xs) var(--lr-space-s)`) — `[part=\"header\"]` padding while `compact`.\n- `--lr-task-list-compact-gap` (default: `var(--lr-space-2xs)`) — Gap between `[part=\"body\"]`'s item rows while `compact`.\n- `--lr-task-list-compact-body-padding` (default: `var(--lr-space-2xs) var(--lr-space-s) var(--lr-space-s)`) — `[part=\"body\"]` padding while `compact`."
|
|
13448
14603
|
},
|
|
13449
14604
|
"attributes": [
|
|
13450
14605
|
{
|
|
@@ -13495,7 +14650,7 @@
|
|
|
13495
14650
|
"name": "lr-terminal",
|
|
13496
14651
|
"description": {
|
|
13497
14652
|
"kind": "markdown",
|
|
13498
|
-
"value": "`<lr-terminal>` — read-only ANSI console for streamed agent/tool output. Not a PTY: no\nstdin/keystroke handling, no cursor-addressed full-screen apps.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `announcer` | The visually-hidden `role=\"status\"` region used when `announce-output` is set. |\n| `base` | The outer container. |\n| `copy-button` | The copy-to-clipboard button. |\n| `download-button` | The download button. |\n| `jump-to-latest` | The pill shown while `follow` is disengaged and new output has arrived. |\n| `line` | One rendered line; carries `data-line-number`, `data-match`, `data-highlight-tone`. Rendered through `<lr-virtual-list>`'s `renderItem`, so it lives inside that element's own shadow root rather than this component's -- this component's own stylesheet reaches it via `lr-virtual-list::part(line)`, one hop of the standard CSS Shadow Parts selector. |\n| `toolbar` | The header row, only rendered when copy/download are enabled. |\n| `viewport` | The `role=\"log\"` scrollable region wrapping the virtualized line list. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-terminal-height` (default: `var(--lr-size-20rem)`) — Block size of `[part=\"viewport\"]`, the scrollable log region. Not declared on `:host`, so it is inherited — set it on the host or any ancestor.\n- `--lr-terminal-highlight-accent-bg` (default: `var(--lr-color-brand-quiet)`) — Background of an `accent`-tone highlighted line. Decoupled from the shared `--lr-color-brand-quiet` token also used by `[part=\"copy-button\"]`/`[part=\"download-button\"]`'s hover state, and from any `::part('line')` override (the background is applied inline, so a stylesheet rule can't beat it without `!important`).\n- `--lr-terminal-highlight-success-bg` (default: `var(--lr-color-success-quiet)`) — Background of a `success`-tone highlighted line.\n- `--lr-terminal-highlight-warning-bg` (default: `var(--lr-color-warning-quiet)`) — Background of a `warning`-tone highlighted line.\n- `--lr-terminal-highlight-danger-bg` (default: `var(--lr-color-danger-quiet)`) — Background of a `danger`-tone highlighted line.\n- `--lr-terminal-highlight-neutral-bg` (default: `var(--lr-color-surface)`) — Background of a `neutral`-tone highlighted line."
|
|
14653
|
+
"value": "`<lr-terminal>` — read-only ANSI console for streamed agent/tool output. Not a PTY: no\nstdin/keystroke handling, no cursor-addressed full-screen apps.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `announcer` | The visually-hidden `role=\"status\"` region used when `announce-output` is set. |\n| `base` | The outer container. |\n| `copy-button` | The copy-to-clipboard button. |\n| `download-button` | The download button. |\n| `jump-to-latest` | The pill shown while `follow` is disengaged and new output has arrived. |\n| `line` | One rendered line; carries `data-line-number`, `data-match`, `data-highlight-tone`. Rendered through `<lr-virtual-list>`'s `renderItem`, so it lives inside that element's own shadow root rather than this component's -- this component's own stylesheet reaches it via `lr-virtual-list::part(line)`, one hop of the standard CSS Shadow Parts selector. |\n| `toolbar` | The header row, only rendered when copy/download are enabled. |\n| `viewport` | The `role=\"log\"` scrollable region wrapping the virtualized line list. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-terminal-height` (default: `var(--lr-size-20rem)`) — Block size of `[part=\"viewport\"]`, the scrollable log region. Not declared on `:host`, so it is inherited — set it on the host or any ancestor.\n- `--lr-terminal-highlight-accent-bg` (default: `var(--lr-color-brand-quiet)`) — Background of an `accent`-tone highlighted line. Decoupled from the shared `--lr-color-brand-quiet` token also used by `[part=\"copy-button\"]`/`[part=\"download-button\"]`'s hover state, and from any `::part('line')` override (the background is applied inline, so a stylesheet rule can't beat it without `!important`).\n- `--lr-terminal-highlight-success-bg` (default: `var(--lr-color-success-quiet)`) — Background of a `success`-tone highlighted line.\n- `--lr-terminal-highlight-warning-bg` (default: `var(--lr-color-warning-quiet)`) — Background of a `warning`-tone highlighted line.\n- `--lr-terminal-highlight-danger-bg` (default: `var(--lr-color-danger-quiet)`) — Background of a `danger`-tone highlighted line.\n- `--lr-terminal-highlight-neutral-bg` (default: `var(--lr-color-surface)`) — Background of a `neutral`-tone highlighted line.\n- `--lr-terminal-search-outline-color` (default: `var(--lr-color-warning)`) — Outline color for a line containing a non-active search match.\n- `--lr-terminal-search-active-outline-color` (default: `var(--lr-color-brand)`) — Outline color for the active search match's line."
|
|
13499
14654
|
},
|
|
13500
14655
|
"attributes": [
|
|
13501
14656
|
{
|
|
@@ -13597,7 +14752,7 @@
|
|
|
13597
14752
|
"name": "lr-textarea",
|
|
13598
14753
|
"description": {
|
|
13599
14754
|
"kind": "markdown",
|
|
13600
|
-
"value": "`<lr-textarea>` — a multiline plain-text input primitive, form-associated via the\n`FormAssociated` mixin (see `<lr-chat-composer>`/`<lr-date-input>` for the same shape), so it\nparticipates in native `<form>` submission/validation/reset like any other text control --\n`name`/`value`/`disabled`/`required`/`checkValidity()`/`reportValidity()` all come from that mixin.\n\nShips an opt-in `label`/`hint`/`errorText` form-control chrome (props + matching named slots +\n`form-control-label`/`hint`/`error` parts), mirroring `<lr-select>`'s exact pattern -- left\nunset, the chrome remains hidden. A consumer preferring their own form-field layout can still\nignore these and wrap the element. A host `aria-label` is forwarded to the internal textbox;\nexternal `aria-labelledby`/`aria-describedby` idrefs are not copied across the shadow boundary.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| `error` | Custom error content. |\n| `hint` | Custom hint content. |\n| `label` | Custom label content. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `error` | The error message. |\n| `form-control` | The outer wrapper around label, textarea, error and hint. |\n| `form-control-label` | The `<label>` element. |\n| `hint` | The hint message. |\n| `textarea` | The native `<textarea>` element. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-textarea-max-block-size` (default: `none`) — Maximum auto-grown block size before the textarea scrolls."
|
|
14755
|
+
"value": "`<lr-textarea>` — a multiline plain-text input primitive, form-associated via the\n`FormAssociated` mixin (see `<lr-chat-composer>`/`<lr-date-input>` for the same shape), so it\nparticipates in native `<form>` submission/validation/reset like any other text control --\n`name`/`value`/`disabled`/`required`/`checkValidity()`/`reportValidity()` all come from that mixin.\n\nShips an opt-in `label`/`hint`/`errorText` form-control chrome (props + matching named slots +\n`form-control-label`/`hint`/`error` parts), mirroring `<lr-select>`'s exact pattern -- left\nunset, the chrome remains hidden. A consumer preferring their own form-field layout can still\nignore these and wrap the element. A host `aria-label` is forwarded to the internal textbox;\nexternal `aria-labelledby`/`aria-describedby` idrefs are not copied across the shadow boundary.\n\n`minlength`/`maxlength` are forwarded to the internal native `<textarea>` and bridged into this\nelement's own `ElementInternals` as `tooShort`/`tooLong` by `updateValidity()`.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| `error` | Custom error content. |\n| `hint` | Custom hint content. |\n| `label` | Custom label content. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `error` | The error message. |\n| `form-control` | The outer wrapper around label, textarea, error and hint. |\n| `form-control-label` | The `<label>` element. |\n| `hint` | The hint message. |\n| `textarea` | The native `<textarea>` element. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-textarea-max-block-size` (default: `none`) — Maximum auto-grown block size before the textarea scrolls."
|
|
13601
14756
|
},
|
|
13602
14757
|
"attributes": [
|
|
13603
14758
|
{
|
|
@@ -13677,6 +14832,20 @@
|
|
|
13677
14832
|
"value": "Optional locale override. Otherwise the nearest `locale`/`lang` ancestor is used.\n\nType: `string` \nDefault: `''`"
|
|
13678
14833
|
}
|
|
13679
14834
|
},
|
|
14835
|
+
{
|
|
14836
|
+
"name": "maxlength",
|
|
14837
|
+
"description": {
|
|
14838
|
+
"kind": "markdown",
|
|
14839
|
+
"value": "Upper counterpart of `minlength` (native `maxlength`/`tooLong`), with the same parsing and\nthe same default of `undefined`. Note that native `maxlength` also *prevents* typing beyond\nthe limit; it reports `tooLong` for values that arrive some other way (paste of a longer\nvalue, a programmatic assignment).\n\nType: `number | undefined`"
|
|
14840
|
+
}
|
|
14841
|
+
},
|
|
14842
|
+
{
|
|
14843
|
+
"name": "minlength",
|
|
14844
|
+
"description": {
|
|
14845
|
+
"kind": "markdown",
|
|
14846
|
+
"value": "Minimum text length, forwarded to the native `<textarea>`'s own `minlength` and reported as\n`tooShort` by `updateValidity()`. Defaults to `undefined` (no lower bound). Like native\n`minlength`, an empty value never violates it — pair it with `required` to also reject\nempty.\n\nType: `number | undefined`"
|
|
14847
|
+
}
|
|
14848
|
+
},
|
|
13680
14849
|
{
|
|
13681
14850
|
"name": "name",
|
|
13682
14851
|
"description": {
|
|
@@ -13776,7 +14945,7 @@
|
|
|
13776
14945
|
"name": "lr-thread-list",
|
|
13777
14946
|
"description": {
|
|
13778
14947
|
"kind": "markdown",
|
|
13779
|
-
"value": "`<lr-thread-list>` — the conversation sidebar: a grouped, searchable list of chat sessions with\npin/archive/delete/rename affordances. *Data mode* (non-empty `threads`, or empty `threads` with\nnothing slotted) renders every row as a `<lr-conversation-item>` inside an internal\n`<lr-virtual-list>` — virtualized by construction, scroll position and per-row state survive a\n`threads` replacement; zero rows renders the built-in empty state. *Slotted mode* (empty `threads`\n*and* real slotted content) renders host-supplied `<lr-conversation-item>`s from the default slot\nas-is: no grouping, virtualization, or row actions in that mode — those are data-mode-only by design\n(shadow DOM cannot inject group headers between slotted children).\n\nNo thread CRUD or persistence: every mutation (`lr-thread-pin`/`-archive`/`-delete`/`-rename`) is\na controlled event carrying the *requested* new state — the host mutates `threads`.\n\nData mode: a host needing content with no home in `lr-conversation-item`'s own\n`title`/`excerpt`/`meta`/`actions` surface sets `wrapRow` to wrap the already-built row. For\ncommon row composition, `renderLeading`, `renderExcerpt`, `renderMeta`, and `renderRowContent`\nprovide focused virtualized render hooks -- `renderExcerpt` renders into the row item's own\n`excerpt` slot (winning over the plain-string `excerpt` property) for rich per-row content such\nas a highlighted search snippet. A host needing a fully custom\n`actions` surface itself — beyond `rowActions`'s closed `pin | archive | delete` set, e.g. a\n`<lr-menu>` with Rename/Delete — sets `renderActions` instead; its content is appended after any\nbuilt-in `rowActions` output in the same slot, and `wrapRow` continues to compose around the result.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| (default) | Slotted mode only: host-supplied `lr-conversation-item`s, rendered in order. Each top-level assigned element that doesn't already carry an explicit `role` is given `role=\"listitem\"`, since `[part=\"list\"]` is `role=\"list\"` in this mode and `lr-conversation-item` deliberately doesn't self-apply that role (see its own class doc). |\n| `empty` | Replaces the built-in empty state. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The root. |\n| `empty` | The empty/no-matches state. |\n| `group-header` | A date/custom group header in data mode. |\n| `group-icon` | The decorative expand/collapse glyph. |\n| `group-label` | The group label inside `group-toggle`. |\n| `group-sticky` | `sticky-groups` only: the pinned copy of the current group's header, exported from the internal `lr-virtual-list`'s sticky layer. It wraps a full copy of the `group-header`/`group-toggle`/`group-label`/`group-icon` markup (which therefore styles both the real header row and the pinned copy), and carries `aria-hidden` — style it for the pinned band itself, e.g. a shadow or a border under the band. |\n| `group-toggle` | The controlled group expand/collapse button. |\n| `list` | The list region. |\n| `pin-glyph` | The small pin indicator shown in a pinned row's `meta` slot (data mode). |\n| `row` | Exported from the internal `lr-virtual-list`'s `row` part (data mode). |\n| `row-action` | A built-in pin/archive/delete icon button (data mode, when `rowActions` includes it). |\n| `row-actions` | The wrapper around built-in and `renderActions` output. |\n| `row-content` | The wrapper around `renderRowContent` output. |\n| `row-excerpt` | The wrapper around `renderExcerpt` output, slotted into the row item's own `excerpt` slot. |\n| `row-item-actions` | Data mode: the row item's `actions` wrapper. |\n| `row-item-base` | Data mode: the row `<lr-conversation-item>`'s own `base` part — the box whose padding sets row height. `row-item-*` parts are the item's *internals*; the `row-*` parts above wrap this component's own callback output and are a different surface. Styling row density here replaces the older `::part(row) { --lr-theme-*: … }` workaround, which retheme'd the whole row subtree (`renderActions` popups included). |\n| `row-item-content` | Data mode: the row item's title/excerpt content column. |\n| `row-item-excerpt` | Data mode: the row item's excerpt line. |\n| `row-item-leading` | Data mode: the row item's `leading` wrapper. |\n| `row-item-meta` | Data mode: the row item's `meta` wrapper. |\n| `row-item-option` | Data mode: the row item's selectable `option` region. |\n| `row-item-rename-button` | Data mode: the row item's pencil/rename affordance. |\n| `row-item-timestamp` | Data mode: the row item's `<time>` element. |\n| `row-item-title` | Data mode: the row item's title text. |\n| `row-item-title-input` | Data mode: the row item's in-place rename `<input>`. |\n| `row-leading` | The wrapper around `renderLeading` output. |\n| `row-meta` | A wrapper around built-in or `renderMeta` metadata. |\n| `row-wrapper` | The wrapper around `wrapRow` output (data mode, only when `wrapRow` is set). Row-only: group headers are never passed through `wrapRow`, so they never carry it. |\n| `search` | The search field wrapper. |\n| `search-input` | The `<input type=\"search\">`. |\n| `viewport` | The real scroll container, exported from the internal `lr-virtual-list`. It fills this component's height with no consumer CSS (and falls back to `lr-virtual-list`'s own 24rem `--lr-virtual-list-height` default when the container has no resolvable height). |"
|
|
14948
|
+
"value": "`<lr-thread-list>` — the conversation sidebar: a grouped, searchable list of chat sessions with\npin/archive/delete/rename affordances. *Data mode* (non-empty `threads`, or empty `threads` with\nnothing slotted) renders every row as a `<lr-conversation-item>` inside an internal\n`<lr-virtual-list>` — virtualized by construction, scroll position and per-row state survive a\n`threads` replacement; zero rows renders the built-in empty state. *Slotted mode* (empty `threads`\n*and* real slotted content) renders host-supplied `<lr-conversation-item>`s from the default slot\nas-is: no grouping, virtualization, or row actions in that mode — those are data-mode-only by design\n(shadow DOM cannot inject group headers between slotted children).\n\nNo thread CRUD or persistence: every mutation (`lr-thread-pin`/`-archive`/`-delete`/`-rename`) is\na controlled event carrying the *requested* new state — the host mutates `threads`.\n\nData mode: a host needing content with no home in `lr-conversation-item`'s own\n`title`/`excerpt`/`meta`/`actions` surface sets `wrapRow` to wrap the already-built row. For\ncommon row composition, `renderLeading`, `renderExcerpt`, `renderMeta`, and `renderRowContent`\nprovide focused virtualized render hooks -- `renderExcerpt` renders into the row item's own\n`excerpt` slot (winning over the plain-string `excerpt` property) for rich per-row content such\nas a highlighted search snippet. A host needing a fully custom\n`actions` surface itself — beyond `rowActions`'s closed `pin | archive | delete` set, e.g. a\n`<lr-menu>` with Rename/Delete — sets `renderActions` instead; its content is appended after any\nbuilt-in `rowActions` output in the same slot, and `wrapRow` continues to compose around the result.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| (default) | Slotted mode only: host-supplied `lr-conversation-item`s, rendered in order. Each top-level assigned element that doesn't already carry an explicit `role` is given `role=\"listitem\"`, since `[part=\"list\"]` is `role=\"list\"` in this mode and `lr-conversation-item` deliberately doesn't self-apply that role (see its own class doc). |\n| `empty` | Replaces the built-in empty state. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The root. |\n| `empty` | The empty/no-matches state. |\n| `group-header` | A date/custom group header in data mode. |\n| `group-icon` | The decorative expand/collapse glyph. |\n| `group-label` | The group label inside `group-toggle`. |\n| `group-sticky` | `sticky-groups` only: the pinned copy of the current group's header, exported from the internal `lr-virtual-list`'s sticky layer. It wraps a full copy of the `group-header`/`group-toggle`/`group-label`/`group-icon` markup (which therefore styles both the real header row and the pinned copy), and carries `aria-hidden` — style it for the pinned band itself, e.g. a shadow or a border under the band. |\n| `group-toggle` | The controlled group expand/collapse button. |\n| `list` | The list region. |\n| `pin-glyph` | The small pin indicator shown in a pinned row's `meta` slot (data mode). |\n| `row` | Exported from the internal `lr-virtual-list`'s `row` part (data mode). |\n| `row-action` | A built-in pin/archive/delete icon button (data mode, when `rowActions` includes it). |\n| `row-actions` | The wrapper around built-in and `renderActions` output. |\n| `row-content` | The wrapper around `renderRowContent` output. |\n| `row-excerpt` | The wrapper around `renderExcerpt` output, slotted into the row item's own `excerpt` slot. |\n| `row-item-actions` | Data mode: the row item's `actions` wrapper. |\n| `row-item-active-indicator` | Data mode: the row item's decorative active indicator, exported from `lr-conversation-item`. |\n| `row-item-base` | Data mode: the row `<lr-conversation-item>`'s own `base` part — the box whose padding sets row height. `row-item-*` parts are the item's *internals*; the `row-*` parts above wrap this component's own callback output and are a different surface. Styling row density here replaces the older `::part(row) { --lr-theme-*: … }` workaround, which retheme'd the whole row subtree (`renderActions` popups included). |\n| `row-item-content` | Data mode: the row item's title/excerpt content column. |\n| `row-item-excerpt` | Data mode: the row item's excerpt line. |\n| `row-item-leading` | Data mode: the row item's `leading` wrapper. |\n| `row-item-meta` | Data mode: the row item's `meta` wrapper. |\n| `row-item-option` | Data mode: the row item's selectable `option` region. |\n| `row-item-rename-button` | Data mode: the row item's pencil/rename affordance. |\n| `row-item-timestamp` | Data mode: the row item's `<time>` element. |\n| `row-item-title` | Data mode: the row item's title text. |\n| `row-item-title-input` | Data mode: the row item's in-place rename `<input>`. |\n| `row-leading` | The wrapper around `renderLeading` output. |\n| `row-meta` | A wrapper around built-in or `renderMeta` metadata. |\n| `row-wrapper` | The wrapper around `wrapRow` output (data mode, only when `wrapRow` is set). Row-only: group headers are never passed through `wrapRow`, so they never carry it. |\n| `search` | The search field wrapper. |\n| `search-input` | The `<input type=\"search\">`. |\n| `viewport` | The real scroll container, exported from the internal `lr-virtual-list`. It fills this component's height with no consumer CSS (and falls back to `lr-virtual-list`'s own 24rem `--lr-virtual-list-height` default when the container has no resolvable height). |"
|
|
13780
14949
|
},
|
|
13781
14950
|
"attributes": [
|
|
13782
14951
|
{
|
|
@@ -13935,6 +15104,13 @@
|
|
|
13935
15104
|
"value": "Latest selectable time, in the same form as `min`, reported by the native input as\n`rangeOverflow`. Defaults to `undefined` (no upper bound).\n\nType: `number | string | undefined`"
|
|
13936
15105
|
}
|
|
13937
15106
|
},
|
|
15107
|
+
{
|
|
15108
|
+
"name": "maxlength",
|
|
15109
|
+
"description": {
|
|
15110
|
+
"kind": "markdown",
|
|
15111
|
+
"value": "Upper counterpart of `minlength` (native `maxlength`/`tooLong`), with the same parsing and the\nsame default of `undefined`. Note that native `maxlength` also *prevents* typing beyond the\nlimit; it reports `tooLong` for values that arrive some other way (paste of a longer value,\na programmatic assignment).\n\nType: `number | undefined`"
|
|
15112
|
+
}
|
|
15113
|
+
},
|
|
13938
15114
|
{
|
|
13939
15115
|
"name": "min",
|
|
13940
15116
|
"description": {
|
|
@@ -13942,6 +15118,13 @@
|
|
|
13942
15118
|
"value": "Earliest selectable time, as the native `<input type=\"time\">` spells it (`HH:MM`, or\n`HH:MM:SS` alongside a seconds-precision `step`). Forwarded verbatim to that native input,\nwhose own constraint validation reports `rangeUnderflow`. Defaults to `undefined` (no lower\nbound). Unlike `<lr-input type=\"number\">`'s numeric `min`, the attribute form is *not*\nparsed as a number.\n\nType: `number | string | undefined`"
|
|
13943
15119
|
}
|
|
13944
15120
|
},
|
|
15121
|
+
{
|
|
15122
|
+
"name": "minlength",
|
|
15123
|
+
"description": {
|
|
15124
|
+
"kind": "markdown",
|
|
15125
|
+
"value": "Minimum text length, forwarded to the internal native `<input>`'s own `minlength` and\nconsulted by that same native input's constraint validation (`tooShort`, see\n`updateValidity()`). Defaults to `undefined` (no lower bound). Like native `minlength`, an\nempty value never violates it — pair it with `required` to also reject empty. Ignored by the\nnative input for `type=\"number\"`/`type=\"time\"`, exactly as the platform specifies.\n\nType: `number | undefined`"
|
|
15126
|
+
}
|
|
15127
|
+
},
|
|
13945
15128
|
{
|
|
13946
15129
|
"name": "password-visible",
|
|
13947
15130
|
"description": {
|
|
@@ -13949,6 +15132,13 @@
|
|
|
13949
15132
|
"value": "`type=\"password\"` only — whether the field currently reveals its raw text. Toggled by the\nbuilt-in `password-toggle` button; also settable by a consumer up front.\n\nType: `boolean` \nDefault: `false`"
|
|
13950
15133
|
}
|
|
13951
15134
|
},
|
|
15135
|
+
{
|
|
15136
|
+
"name": "pattern",
|
|
15137
|
+
"description": {
|
|
15138
|
+
"kind": "markdown",
|
|
15139
|
+
"value": "A regular expression the value must match in full, forwarded to the internal native\n`<input>`'s own `pattern` and validated by it (`patternMismatch`). Defaults to `undefined`\n(no pattern). Compiled by the browser with the `v` flag and anchored to the whole value, so\nno `^`/`$` is needed; an empty value never violates it.\n\nType: `string | undefined`"
|
|
15140
|
+
}
|
|
15141
|
+
},
|
|
13952
15142
|
{
|
|
13953
15143
|
"name": "placeholder",
|
|
13954
15144
|
"description": {
|
|
@@ -13997,7 +15187,7 @@
|
|
|
13997
15187
|
"name": "lr-time-range",
|
|
13998
15188
|
"description": {
|
|
13999
15189
|
"kind": "markdown",
|
|
14000
|
-
"value": "`<lr-time-range>` — a two-handle brush/scrubber over a numeric domain.\nCallers map their own time axis to `[min, max]`; no date logic lives here\n(matches the no-date-library constraint used elsewhere in this library).\n\nOptionally paired with a row of discrete presets (`presets`) — e.g. \"Last\n7 days\" / \"Last 30 days\" — rendered above the track; picking one is just a\nshortcut that sets both handles at once, the continuous brush underneath\nis unaffected and both interaction modes coexist.\n\nForm-associated only for the `<fieldset disabled>` cascade, not for a\nsubmitted value: it attaches `ElementInternals` (like `<lr-combobox>`'s\nminimal pattern, rather than the single-string-value `FormAssociated`\nmixin, which doesn't fit a two-handle range) purely so an ancestor\n`<fieldset disabled>` disables both handles and every preset button\nthrough `effectiveDisabled`, the same way it would a native `<input>`,\nwithout touching the consumer-facing `disabled` property/attribute itself.\nUnlike `<lr-combobox>`, it never calls `internals.setFormValue()` and\nhas no `name` — the selected range is not included in the owning form's\n`FormData` on submit; read `start`/`end` directly (e.g. from `lr-change`)\ninstead of relying on native form submission.\n\nDeliberately no label/hint/error chrome -- `startLabel`/`endLabel` here are per-handle\naccessible-name overrides, not visible label text, the same carve-out `<lr-slider>` states for\nits own single-handle `label`; a labeled-field consumer wraps this element in their own layout.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The time-range wrapper. |\n| `handle-end` | The end handle. |\n| `handle-start` | The start handle. |\n| `preset-button` | A preset button. |\n| `presets` | The preset controls wrapper. |\n| `range` | The selected range. |\n| `track` | The complete range track. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-time-range-preset-active-bg` (default: `var(--lr-color-brand)`) — Background of the active preset button (`[data-active]`, i.e. the preset whose range matches the current value). Declared as an inline `var()` fallback (never on `:host`), so setting it on the element or an ancestor recolors only the active preset without hijacking the library-wide `--lr-color-brand` token.\n- `--lr-time-range-preset-active-border-color` (default: `var(--lr-color-brand)`) — Border color of the active preset button.\n- `--lr-time-range-preset-active-color` (default: `var(--lr-color-on-brand)`) — Text color of the active preset button.\n- `--lr-time-range-size-scale` (default: `1`) — Unitless multiplier applied proportionally to the handle, track, and preset-button dimensions based on the current `size` tier; the drag hit-area is floored at 24px (WCAG 2.5.8)."
|
|
15190
|
+
"value": "`<lr-time-range>` — a two-handle brush/scrubber over a numeric domain.\nCallers map their own time axis to `[min, max]`; no date logic lives here\n(matches the no-date-library constraint used elsewhere in this library).\n\nOptionally paired with a row of discrete presets (`presets`) — e.g. \"Last\n7 days\" / \"Last 30 days\" — rendered above the track; picking one is just a\nshortcut that sets both handles at once, the continuous brush underneath\nis unaffected and both interaction modes coexist.\n\nForm-associated only for the `<fieldset disabled>` cascade, not for a\nsubmitted value: it attaches `ElementInternals` (like `<lr-combobox>`'s\nminimal pattern, rather than the single-string-value `FormAssociated`\nmixin, which doesn't fit a two-handle range) purely so an ancestor\n`<fieldset disabled>` disables both handles and every preset button\nthrough `effectiveDisabled`, the same way it would a native `<input>`,\nwithout touching the consumer-facing `disabled` property/attribute itself.\nUnlike `<lr-combobox>`, it never calls `internals.setFormValue()` and\nhas no `name` — the selected range is not included in the owning form's\n`FormData` on submit; read `start`/`end` directly (e.g. from `lr-change`)\ninstead of relying on native form submission.\n\nDeliberately no label/hint/error chrome -- `startLabel`/`endLabel` here are per-handle\naccessible-name overrides, not visible label text, the same carve-out `<lr-slider>` states for\nits own single-handle `label`; a labeled-field consumer wraps this element in their own layout.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The time-range wrapper. |\n| `handle-end` | The end handle. |\n| `handle-start` | The start handle. |\n| `preset-button` | A preset button. |\n| `presets` | The preset controls wrapper. |\n| `range` | The selected range. |\n| `track` | The complete range track. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-time-range-preset-active-bg` (default: `var(--lr-color-brand)`) — Background of the active preset button (`[data-active]`, i.e. the preset whose range matches the current value). Declared as an inline `var()` fallback (never on `:host`), so setting it on the element or an ancestor recolors only the active preset without hijacking the library-wide `--lr-color-brand` token.\n- `--lr-time-range-preset-active-border-color` (default: `var(--lr-color-brand)`) — Border color of the active preset button.\n- `--lr-time-range-preset-active-color` (default: `var(--lr-color-on-brand)`) — Text color of the active preset button.\n- `--lr-time-range-size-scale` (default: `1`) — Unitless multiplier applied proportionally to the handle, track, and preset-button dimensions based on the current `size` tier; the drag hit-area is floored at 24px (WCAG 2.5.8).\n- `--lr-time-range-handle-size` (default: `14px*scale`) — Visible handle diameter.\n- `--lr-time-range-hit-size` (default: `max(24px,28px*scale)`) — Actual drag hit-area diameter; endpoint handles are inset by half this distance so the hit geometry stays inside the host.\n- `--lr-time-range-track-size` (default: `4px*scale`) — Track and selected-range thickness.\n- `--lr-time-range-base-size` (default: `1.5rem*scale`) — Brush baseline block size.\n- `--lr-time-range-preset-gap` (default: `var(--lr-space-xs)`) — Gap between preset buttons.\n- `--lr-time-range-preset-radius` (default: `var(--lr-radius)`) — Preset button corner radius.\n- `--lr-time-range-preset-padding` — Preset button padding, scaled by `size`.\n- `--lr-time-range-preset-font-size` — Preset button font size, scaled by `size`."
|
|
14001
15191
|
},
|
|
14002
15192
|
"attributes": [
|
|
14003
15193
|
{
|
|
@@ -14210,7 +15400,7 @@
|
|
|
14210
15400
|
"name": "lr-token-input",
|
|
14211
15401
|
"description": {
|
|
14212
15402
|
"kind": "markdown",
|
|
14213
|
-
"value": "`<lr-token-input>` — an editable, form-associated list of removable tokens.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| `error` | Validation message. |\n| `hint` | Supporting text. |\n| `label` | Visible label content. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `error` | Validation message. |\n| `form-control` | Outer control wrapper. |\n| `form-control-label` | Label. |\n| `hint` | Supporting text. |\n| `input` | Native text input. |\n| `input-wrapper` | Token and input row. |\n| `remove` | Token remove button. |\n| `token` | Individual token. |\n| `token-editor` | The inline text field replacing a token's text while it is being edited. Rendered only while `editable` is set and that token is open for editing. |\n| `token-label` | The token's text, as the roving-focus edit trigger. Rendered only while `editable` is set. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-token-input-input-inline-size` (default: `var(--lr-size-8rem)`) — `flex-basis` of the native text input within the token row.\n- `--lr-token-input-min-input-inline-size` (default: `var(--lr-size-4rem)`) — Inline-size floor of the native text input, so it stays usable once tokens wrap.\n- `--lr-token-input-editor-inline-size` (default: `var(--lr-size-6rem)`) — Inline size of the inline token editor opened by `editable`.\n- `--lr-token-input-padding` — Input-wrapper padding, scaled by `size`.\n- `--lr-token-input-font-size` — Input-wrapper/token font size, scaled by `size`.\n- `--lr-token-input-control-min-height` — Input-wrapper block-size floor, scaled by `size`.\n- `--lr-token-input-control-height` — Exact input-wrapper height. Unset by default, which leaves `--lr-token-input-control-min-height` as a floor only; set it to a length to both floor and cap the row (e.g. to pixel-match a sibling field in the same toolbar row). Because it is never declared by the component itself, it can be set from an ancestor or an outer-tree rule as well as inline on the element."
|
|
15403
|
+
"value": "`<lr-token-input>` — an editable, form-associated list of removable tokens.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| `error` | Validation message. |\n| `hint` | Supporting text. |\n| `label` | Visible label content. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `error` | Validation message. |\n| `form-control` | Outer control wrapper. |\n| `form-control-label` | Label. |\n| `hint` | Supporting text. |\n| `input` | Native text input. |\n| `input-wrapper` | Token and input row. |\n| `remove` | Token remove button. |\n| `token` | Individual token. |\n| `token-editor` | The inline text field replacing a token's text while it is being edited. Rendered only while `editable` is set and that token is open for editing. |\n| `token-label` | The token's text, as the roving-focus edit trigger. Rendered only while `editable` is set. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-token-input-input-inline-size` (default: `var(--lr-size-8rem)`) — `flex-basis` of the native text input within the token row.\n- `--lr-token-input-min-input-inline-size` (default: `var(--lr-size-4rem)`) — Inline-size floor of the native text input, so it stays usable once tokens wrap.\n- `--lr-token-input-editor-inline-size` (default: `var(--lr-size-6rem)`) — Inline size of the inline token editor opened by `editable`.\n- `--lr-token-input-padding` — Input-wrapper padding, scaled by `size`.\n- `--lr-token-input-token-padding` — Per-token chip padding, scaled by `size`.\n- `--lr-token-input-gap` (default: `var(--lr-space-xs)`) — Gap between form/row children.\n- `--lr-token-input-token-gap` (default: `var(--lr-space-2xs)`) — Gap inside token chips.\n- `--lr-token-input-radius` (default: `var(--lr-radius)`) — Row/token corner radius.\n- `--lr-token-input-token-bg` (default: `var(--lr-color-brand-quiet)`) — Token chip background.\n- `--lr-token-input-action-hover-bg` (default: `var(--lr-color-brand-quiet)`) — Edit/remove hover background.\n- `--lr-token-input-focus-border-color` (default: `var(--lr-color-brand)`) — Focused row border color.\n- `--lr-token-input-invalid-border-color` (default: `var(--lr-color-danger)`) — Invalid row border color.\n- `--lr-token-input-font-size` — Input-wrapper/token font size, scaled by `size`.\n- `--lr-token-input-control-min-height` — Input-wrapper block-size floor, scaled by `size`.\n- `--lr-token-input-control-height` — Exact input-wrapper height. Unset by default, which leaves `--lr-token-input-control-min-height` as a floor only; set it to a length to both floor and cap the row (e.g. to pixel-match a sibling field in the same toolbar row). Because it is never declared by the component itself, it can be set from an ancestor or an outer-tree rule as well as inline on the element."
|
|
14214
15404
|
},
|
|
14215
15405
|
"attributes": [
|
|
14216
15406
|
{
|
|
@@ -14410,7 +15600,7 @@
|
|
|
14410
15600
|
"name": "lr-tool-call-chip",
|
|
14411
15601
|
"description": {
|
|
14412
15602
|
"kind": "markdown",
|
|
14413
|
-
"value": "`<lr-tool-call-chip>` — a compact inline pill representing one tool/\nfunction call an agent made mid-conversation, e.g.\n`web_search: Searching web…` with a `running` spinner. It owns no detail\nsurface of its own: clicking (or Enter/Space-activating) it only fires\n`lr-tool-call-chip-select` (plus, for one minor cycle, the deprecated\n`lr-tool-chip-select` alias) — a consumer wires that to opening a\n`<lr-tool-result-dialog>` (or anything else) at the call site. Keeping\nthe two decoupled means a chip can be reused wherever a compact call\nsummary is useful, with or without a detail surface behind it.\n\nThe default slot is *not* the chip's visible content — the chip's own\nlabel is always built from `name`/`summary`/`status`/`duration-ms`. It's\nreserved for optional rich detail content (e.g. the tool's raw arguments,\na short preview) shown in a floating tooltip on hover/focus, positioned\nwith `internal/positioner.js`'s `place()` the same way `<lr-combobox>`\npositions its listbox. No tooltip is shown at all when the slot carries no\ncontent — hovering an empty chip does nothing. Hover and keyboard focus are\ntracked as independent reasons to keep the tooltip open (mirrors\n`<lr-citation-badge>`'s popover), so releasing one modality while the\nother is still active doesn't close it, and the trigger button's\n`aria-describedby` points at the tooltip's id whenever it's open and has\ncontent, so the association reaches assistive tech too.\n\nThe `icon` slot overrides the built-in per-status glyph entirely via the\nplatform's own slot-fallback-content mechanism (`<slot\nname=\"icon\">${fallback}</slot>` — the same pattern `<lr-stat>`'s\n`caption` slot and `<lr-file-input>`'s default slot already use):\nwhatever is assigned to `slot=\"icon\"` wins; otherwise the `icon` prop is\nrendered as a literal hint (e.g. an emoji); otherwise the built-in glyph\nfor the current `status` is used.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| (default) | Rich tooltip/detail content, shown on hover/focus. Nothing renders (no hover affordance at all) when this slot is empty. |\n| `icon` | Overrides the built-in status glyph entirely. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The clickable pill (`<button>`). |\n| `category` | The optional grouping label. |\n| `duration` | The formatted `duration-ms`, when set. |\n| `icon` | Wrapper around the status glyph / `icon` slot. |\n| `label` | Wrapper around `category`, `name` and `summary`. |\n| `meta` | Wrapper around `status-text` and `duration`. |\n| `name` | The tool/function name. |\n| `status-text` | The visible text twin of the status glyph/color — carries the state in text, not just color. |\n| `summary` | The short status text. |\n| `tooltip` | The floating detail popup (only meaningful while open). |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-tool-call-chip-spin` (default: `
|
|
15603
|
+
"value": "`<lr-tool-call-chip>` — a compact inline pill representing one tool/\nfunction call an agent made mid-conversation, e.g.\n`web_search: Searching web…` with a `running` spinner. It owns no detail\nsurface of its own: clicking (or Enter/Space-activating) it only fires\n`lr-tool-call-chip-select` (plus, for one minor cycle, the deprecated\n`lr-tool-chip-select` alias) — a consumer wires that to opening a\n`<lr-tool-result-dialog>` (or anything else) at the call site. Keeping\nthe two decoupled means a chip can be reused wherever a compact call\nsummary is useful, with or without a detail surface behind it.\n\nThe default slot is *not* the chip's visible content — the chip's own\nlabel is always built from `name`/`summary`/`status`/`duration-ms`. It's\nreserved for optional rich detail content (e.g. the tool's raw arguments,\na short preview) shown in a floating tooltip on hover/focus, positioned\nwith `internal/positioner.js`'s `place()` the same way `<lr-combobox>`\npositions its listbox. No tooltip is shown at all when the slot carries no\ncontent — hovering an empty chip does nothing. Hover and keyboard focus are\ntracked as independent reasons to keep the tooltip open (mirrors\n`<lr-citation-badge>`'s popover), so releasing one modality while the\nother is still active doesn't close it, and the trigger button's\n`aria-describedby` points at the tooltip's id whenever it's open and has\ncontent, so the association reaches assistive tech too.\n\nThe `icon` slot overrides the built-in per-status glyph entirely via the\nplatform's own slot-fallback-content mechanism (`<slot\nname=\"icon\">${fallback}</slot>` — the same pattern `<lr-stat>`'s\n`caption` slot and `<lr-file-input>`'s default slot already use):\nwhatever is assigned to `slot=\"icon\"` wins; otherwise the `icon` prop is\nrendered as a literal hint (e.g. an emoji); otherwise the built-in glyph\nfor the current `status` is used.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| (default) | Rich tooltip/detail content, shown on hover/focus. Nothing renders (no hover affordance at all) when this slot is empty. |\n| `icon` | Overrides the built-in status glyph entirely. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The clickable pill (`<button>`). |\n| `category` | The optional grouping label. |\n| `duration` | The formatted `duration-ms`, when set. |\n| `icon` | Wrapper around the status glyph / `icon` slot. |\n| `label` | Wrapper around `category`, `name` and `summary`. |\n| `meta` | Wrapper around `status-text` and `duration`. |\n| `name` | The tool/function name. |\n| `status-text` | The visible text twin of the status glyph/color — carries the state in text, not just color. |\n| `summary` | The short status text. |\n| `tooltip` | The floating detail popup (only meaningful while open). |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-tool-call-chip-spin` (default: `var(--lr-transition-ambient)`) — Running-icon animation duration and timing.\n- `--lr-transition-ambient` (default: `1.8s ease-in-out`) — Pending-icon pulse duration and timing.\n- `--lr-tool-call-chip-accent` (default: `var(--lr-color-text-quiet)`) — Per-status accent color for the status glyph and status text. Reassigned by this component's own `:host([status=\"…\"])` rules (`running` → brand, `success` → success, `error` → danger, `denied` → warning), so a page-level override only wins for the default/`pending` tone.\n- `--lr-tool-call-chip-bg` (default: `var(--lr-color-surface)`) — Per-status chip background. Reassigned by the same `:host([status=\"…\"])` rules (each status's `-quiet` tint).\n- `--lr-tool-call-chip-border` (default: `var(--lr-color-border)`) — Per-status chip border color. Reassigned by the same `:host([status=\"…\"])` rules (`transparent` for every non-`pending` status)."
|
|
14414
15604
|
},
|
|
14415
15605
|
"attributes": [
|
|
14416
15606
|
{
|
|
@@ -14505,7 +15695,7 @@
|
|
|
14505
15695
|
"name": "lr-tool-result-dialog",
|
|
14506
15696
|
"description": {
|
|
14507
15697
|
"kind": "markdown",
|
|
14508
|
-
"value": "`<lr-tool-result-dialog>` — a full tool-call detail overlay: a status/\nduration header plus a `body` slot where a consumer typically places a\n`<lr-tabs>` with Input/Preview/JSON/Raw panels. This component knows\nnothing about what's inside that slot — it only supplies the modal chrome\naround it.\n\nThis is its own standalone overlay implementation (`role=\"dialog\"`,\nfocus-trapped, Escape/backdrop-dismissible, scroll-locking) rather than\nnesting a `<lr-dialog>` in its shadow template — see `<lr-dialog>`'s\nown header comment for why a new overlay component in this library\nduplicates that pattern locally instead of composing the previous one:\nslot-forwarding into a nested `<lr-dialog>` would put a forwarding\n`<slot>` where a light-DOM-scanning descendant (e.g. a slotted\n`<lr-tabs>`'s own `Array.from(this.children)` scan) expects real\nprojected content.\n\n`maximized` toggles between a constrained modal size and a near-fullscreen\nsize within the same open dialog and open/close lifecycle — unlike\n`<lr-widget>`'s fullscreen mode, there's no non-modal resting state to\nreturn to, so no separate scroll-lock/focus-trap bookkeeping is needed for\nthe transition itself.\n\nStacking: opening more than one of these dialogs at once is supported --\nEscape and the Tab focus trap only ever act on the topmost open instance,\nso instances beneath it stay open and untouched until the one on top closes.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| `body` | The dialog's main content — typically a `<lr-tabs>` with Input/Preview/JSON/Raw panels, entirely consumer-assembled. |\n| `footer` | Optional action buttons, rendered in a bottom row. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `backdrop` | The full-viewport scrim behind the panel. |\n| `body` | The wrapper around the `body` slot. |\n| `close-button` | The built-in close button. |\n| `duration` | The formatted `duration-ms` text. |\n| `footer` | The wrapper around the `footer` slot. |\n| `header` | The row containing the tool name, status, duration, and toggle/close buttons. |\n| `header-actions` | The wrapper around the maximize and close buttons. |\n| `maximize-button` | The built-in maximize/restore toggle button. |\n| `panel` | The dialog panel itself (`role=\"dialog\"` while open). |\n| `status` | The status badge (icon + text). |\n| `title` | The wrapper around the tool name, status, and duration. |\n| `tool-name` | The `tool-name` text. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-tool-result-dialog-overlay-color` (default: `var(--lr-color-overlay)`) — Backdrop color.\n- `--lr-tool-result-dialog-maximized-inset` — Insets for the maximized panel.\n- `--lr-tool-result-dialog-spin` (default: `
|
|
15698
|
+
"value": "`<lr-tool-result-dialog>` — a full tool-call detail overlay: a status/\nduration header plus a `body` slot where a consumer typically places a\n`<lr-tabs>` with Input/Preview/JSON/Raw panels. This component knows\nnothing about what's inside that slot — it only supplies the modal chrome\naround it.\n\nThis is its own standalone overlay implementation (`role=\"dialog\"`,\nfocus-trapped, Escape/backdrop-dismissible, scroll-locking) rather than\nnesting a `<lr-dialog>` in its shadow template — see `<lr-dialog>`'s\nown header comment for why a new overlay component in this library\nduplicates that pattern locally instead of composing the previous one:\nslot-forwarding into a nested `<lr-dialog>` would put a forwarding\n`<slot>` where a light-DOM-scanning descendant (e.g. a slotted\n`<lr-tabs>`'s own `Array.from(this.children)` scan) expects real\nprojected content.\n\n`maximized` toggles between a constrained modal size and a near-fullscreen\nsize within the same open dialog and open/close lifecycle — unlike\n`<lr-widget>`'s fullscreen mode, there's no non-modal resting state to\nreturn to, so no separate scroll-lock/focus-trap bookkeeping is needed for\nthe transition itself.\n\nStacking: opening more than one of these dialogs at once is supported --\nEscape and the Tab focus trap only ever act on the topmost open instance,\nso instances beneath it stay open and untouched until the one on top closes.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| `body` | The dialog's main content — typically a `<lr-tabs>` with Input/Preview/JSON/Raw panels, entirely consumer-assembled. |\n| `footer` | Optional action buttons, rendered in a bottom row. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `backdrop` | The full-viewport scrim behind the panel. |\n| `body` | The wrapper around the `body` slot. |\n| `close-button` | The built-in close button. |\n| `duration` | The formatted `duration-ms` text. |\n| `footer` | The wrapper around the `footer` slot. |\n| `header` | The row containing the tool name, status, duration, and toggle/close buttons. |\n| `header-actions` | The wrapper around the maximize and close buttons. |\n| `maximize-button` | The built-in maximize/restore toggle button. |\n| `panel` | The dialog panel itself (`role=\"dialog\"` while open). |\n| `status` | The status badge (icon + text). |\n| `title` | The wrapper around the tool name, status, and duration. |\n| `tool-name` | The `tool-name` text. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-tool-result-dialog-overlay-color` (default: `var(--lr-color-overlay)`) — Backdrop color.\n- `--lr-tool-result-dialog-maximized-inset` — Insets for the maximized panel.\n- `--lr-tool-result-dialog-spin` (default: `var(--lr-transition-ambient)`) — Running-status animation duration and timing.\n- `--lr-tool-result-dialog-running-color` (default: `var(--lr-color-brand)`) — Running status foreground.\n- `--lr-tool-result-dialog-running-bg` (default: `var(--lr-color-brand-quiet)`) — Running status background.\n- `--lr-tool-result-dialog-success-color` (default: `var(--lr-color-success)`) — Success status foreground.\n- `--lr-tool-result-dialog-success-bg` (default: `var(--lr-color-success-quiet)`) — Success status background.\n- `--lr-tool-result-dialog-error-color` (default: `var(--lr-color-danger)`) — Error status foreground.\n- `--lr-tool-result-dialog-error-bg` (default: `var(--lr-color-danger-quiet)`) — Error status background.\n- `--lr-tool-result-dialog-denied-color` (default: `var(--lr-color-warning)`) — Denied status foreground.\n- `--lr-tool-result-dialog-denied-bg` (default: `var(--lr-color-warning-quiet)`) — Denied status background."
|
|
14509
15699
|
},
|
|
14510
15700
|
"attributes": [
|
|
14511
15701
|
{
|
|
@@ -14563,7 +15753,7 @@
|
|
|
14563
15753
|
"name": "lr-tool-result-view",
|
|
14564
15754
|
"description": {
|
|
14565
15755
|
"kind": "markdown",
|
|
14566
|
-
"value": "`<lr-tool-result-view>` — renders a tool call's result via whichever\ncustom renderer a host app has registered for it (see `registerToolRenderer()`\nin `registry.ts`), falling back to `<lr-json-viewer>` whenever no\nrenderer matches, a candidate renderer's `matches()` predicate throws during\ndispatch, a renderer's optional `load()` rejects, or its `render()` throws.\nThis component owns none of the actual visual weight of a\npopulated tool result — that's entirely whatever the registered renderer\nreturns; this is just the dispatch + fallback + loading-state shell.\n\nDispatch runs against `registry` when set, otherwise against the\nmodule-level default registry `registerToolRenderer()` writes to — see\n`findToolRenderer()`'s two-step (exact name, then shape-based `matches()`)\nlookup order for the full rule.\n\n`fallback` implements two kinds: `\"json\"` (the default, an unconditional `<lr-json-viewer>`)\nand `\"text\"`, which renders a *string* `result` as preformatted text instead — falling back to\nthe `\"json\"` behavior when `result` isn't a string, so setting `fallback=\"text\"` defensively\nagainst an unpredictable result shape never renders broken output. `copyable` adds a\ncopy-to-clipboard affordance to either fallback kind (forwarded to `<lr-json-viewer>`'s own\n`copyable` for `\"json\"`; a `<lr-copy-button>` alongside the text for `\"text\"`).\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The root wrapper around the resolved renderer's output (or the loading/fallback view). |\n| `fallback-copy` | The `<lr-copy-button>` shown when `copyable` is set alongside the `fallback=\"text\"` kind (only present when both are set). |\n| `fallback-text` | The `<pre>` element for the `fallback=\"text\"` kind's preformatted result text (only present in that mode). |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-tool-result-view-font` (default: `var(--lr-font-mono)`) — Font family for the `fallback=\"text\"` preformatted output."
|
|
15756
|
+
"value": "`<lr-tool-result-view>` — renders a tool call's result via whichever\ncustom renderer a host app has registered for it (see `registerToolRenderer()`\nin `registry.ts`), falling back to `<lr-json-viewer>` whenever no\nrenderer matches, a candidate renderer's `matches()` predicate throws during\ndispatch, a renderer's optional `load()` rejects, or its `render()` throws.\nThis component owns none of the actual visual weight of a\npopulated tool result — that's entirely whatever the registered renderer\nreturns; this is just the dispatch + fallback + loading-state shell.\n\nDispatch runs against `registry` when set, otherwise against the\nmodule-level default registry `registerToolRenderer()` writes to — see\n`findToolRenderer()`'s two-step (exact name, then shape-based `matches()`)\nlookup order for the full rule.\n\n`fallback` implements two kinds: `\"json\"` (the default, an unconditional `<lr-json-viewer>`)\nand `\"text\"`, which renders a *string* `result` as preformatted text instead — falling back to\nthe `\"json\"` behavior when `result` isn't a string, so setting `fallback=\"text\"` defensively\nagainst an unpredictable result shape never renders broken output. `copyable` adds a\ncopy-to-clipboard affordance to either fallback kind (forwarded to `<lr-json-viewer>`'s own\n`copyable` for `\"json\"`; a `<lr-copy-button>` alongside the text for `\"text\"`).\n\nA matched renderer's `render()` is also handed a 3rd `context` argument\n(`{ reportStatus }`) it can use to signal a non-throwing outcome (e.g. an application-level\nfailure it still drew a real UI for) — see `ToolRenderContext` in `registry.ts`. This is purely\nadditive: a pre-existing 2-arg `render(result, args)` function stays assignable unchanged, and a\nrenderer that never calls `reportStatus` leaves `status` at its default, `'success'`.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The root wrapper around the resolved renderer's output (or the loading/fallback view). |\n| `fallback-copy` | The `<lr-copy-button>` shown when `copyable` is set alongside the `fallback=\"text\"` kind (only present when both are set). |\n| `fallback-text` | The `<pre>` element for the `fallback=\"text\"` kind's preformatted result text (only present in that mode). |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-tool-result-view-font` (default: `var(--lr-font-mono)`) — Font family for the `fallback=\"text\"` preformatted output."
|
|
14567
15757
|
},
|
|
14568
15758
|
"attributes": [
|
|
14569
15759
|
{
|
|
@@ -14587,6 +15777,13 @@
|
|
|
14587
15777
|
"value": "Optional locale override. Otherwise the nearest `locale`/`lang` ancestor is used.\n\nType: `string` \nDefault: `''`"
|
|
14588
15778
|
}
|
|
14589
15779
|
},
|
|
15780
|
+
{
|
|
15781
|
+
"name": "status",
|
|
15782
|
+
"description": {
|
|
15783
|
+
"kind": "markdown",
|
|
15784
|
+
"value": "The outcome of the currently-rendered result, as reported by the matched renderer's optional\n`context.reportStatus()` third `render()` argument (see `ToolRenderContext` in `registry.ts`).\nReset to `'success'` immediately before every `render()` call, so a renderer that never calls\n`reportStatus` — including every pre-existing 2-arg renderer — leaves it at that default, and a\nlater renderer that stays quiet doesn't inherit a stale outcome from a previous one. Reuses the\nsame vocabulary as `<lr-tool-result-dialog>`'s own `status` property.\n\nType: `ToolResultStatus` \nDefault: `'success'`"
|
|
15785
|
+
}
|
|
15786
|
+
},
|
|
14590
15787
|
{
|
|
14591
15788
|
"name": "tool-name",
|
|
14592
15789
|
"description": {
|
|
@@ -14600,7 +15797,7 @@
|
|
|
14600
15797
|
"name": "lr-tool-select-dialog",
|
|
14601
15798
|
"description": {
|
|
14602
15799
|
"kind": "markdown",
|
|
14603
|
-
"value": "`<lr-tool-select-dialog>` — a category-grouped, filterable, searchable\ntool-enablement dialog for picking which agent tools are available in a\nconversation.\n\nThis renders its own dialog panel rather than nesting a `<lr-dialog>` in\nits shadow template. Shared overlay infrastructure coordinates stacking,\nfocus trapping, Escape/backdrop dismissal, and focus return with every\nother overlay in the same document.\n\n`useDefaults` is a single top-level switch: while `true`, every per-tool\ncheckbox below renders disabled (still reflecting whatever `selected`\nholds — a consumer should populate that with its own default tool set\nwhenever `useDefaults` is true) and a hint explains that turning the\nswitch off is how to customize. Turning it off is the \"customize\"\naffordance — it's the only thing that both flips `useDefaults` to `false`\n*and* unlocks the per-tool checkboxes for editing, so there's exactly one\ncontrol for that transition rather than a separate button duplicating it.\n\nThere is no built-in footer/close button — like `<lr-dialog>`, dismissal\nhappens via Escape, a backdrop click, or a consumer's own `footer`-slotted\naction calling `close()`. This also means the search input is the very\nfirst focusable element in the panel with no special-casing needed, so\nit's what receives focus on open (see `updated()`).\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| `footer` | Optional action buttons (e.g. a \"Done\" button), rendered in a bottom row. Changes already apply live via `lr-change`, so this is optional. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `backdrop` | The full-viewport scrim behind the panel. |\n| `body` | The scrollable wrapper around the grouped tool list. |\n| `category` | A single category's wrapper (`role=\"group\"`). |\n| `category-count` | The terse, `aria-hidden` tool count next to a category heading (the heading's accessible name gets the full sentence from an sr-only sibling instead). |\n| `category-heading` | A category's heading. |\n| `category-list` | The `<ul>` of tool rows within a category. |\n| `defaults-hint` | The \"turn off to customize\" hint, shown only while `useDefaults` is true. |\n| `defaults-row` | The wrapper around the use-defaults switch and its hint. |\n| `defaults-toggle` | The built-in `<lr-switch>` bound to `useDefaults`. |\n| `empty` | The \"no tools\" / \"no matches\" message. |\n| `footer` | The wrapper around the `footer` slot. |\n| `header` | The wrapper around the title/subtitle. |\n| `panel` | The dialog panel itself (`role=\"dialog\"` while open). |\n| `search-input` | The filter text input. |\n| `search-row` | The wrapper around the search input. |\n| `subtitle` | The \"N of M tools enabled\" summary line. |\n| `title` | The dialog's heading. |\n| `tool-checkbox` | A row's `<lr-checkbox>`. |\n| `tool-description` | A row's optional description text. |\n| `tool-disabled-reason` | A disabled row's `disabledReason` text, slotted inside `tool-checkbox` (alongside `tool-name`/`tool-description`) so it contributes to the checkbox's accessible name/description instead of going unannounced. |\n| `tool-icon` | A row's leading icon glyph, when `icon` is set. |\n| `tool-name` | A row's name text (plus its `icon`, if set). |\n| `tool-row` | A single tool's `<li>` row. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-tool-select-dialog-overlay-color` (default: `var(--lr-color-overlay)`) — Backdrop scrim color."
|
|
15800
|
+
"value": "`<lr-tool-select-dialog>` — a category-grouped, filterable, searchable\ntool-enablement dialog for picking which agent tools are available in a\nconversation.\n\nThis renders its own dialog panel rather than nesting a `<lr-dialog>` in\nits shadow template. Shared overlay infrastructure coordinates stacking,\nfocus trapping, Escape/backdrop dismissal, and focus return with every\nother overlay in the same document.\n\n`useDefaults` is a single top-level switch: while `true`, every per-tool\ncheckbox below renders disabled (still reflecting whatever `selected`\nholds — a consumer should populate that with its own default tool set\nwhenever `useDefaults` is true) and a hint explains that turning the\nswitch off is how to customize. Turning it off is the \"customize\"\naffordance — it's the only thing that both flips `useDefaults` to `false`\n*and* unlocks the per-tool checkboxes for editing, so there's exactly one\ncontrol for that transition rather than a separate button duplicating it.\n\nThere is no built-in footer/close button — like `<lr-dialog>`, dismissal\nhappens via Escape, a backdrop click, or a consumer's own `footer`-slotted\naction calling `close()`. This also means the search input is the very\nfirst focusable element in the panel with no special-casing needed, so\nit's what receives focus on open (see `updated()`).\n\nAt most the first 200 matching tools are mounted at once. Filtering narrows that bounded\nprojection; `tools`, selection counts, and emitted ids retain the caller's complete catalog.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| `footer` | Optional action buttons (e.g. a \"Done\" button), rendered in a bottom row. Changes already apply live via `lr-change`, so this is optional. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `backdrop` | The full-viewport scrim behind the panel. |\n| `body` | The scrollable wrapper around the grouped tool list. |\n| `category` | A single category's wrapper (`role=\"group\"`). |\n| `category-count` | The terse, `aria-hidden` tool count next to a category heading (the heading's accessible name gets the full sentence from an sr-only sibling instead). |\n| `category-heading` | A category's heading. |\n| `category-list` | The `<ul>` of tool rows within a category. |\n| `defaults-hint` | The \"turn off to customize\" hint, shown only while `useDefaults` is true. |\n| `defaults-row` | The wrapper around the use-defaults switch and its hint. |\n| `defaults-toggle` | The built-in `<lr-switch>` bound to `useDefaults`. |\n| `empty` | The \"no tools\" / \"no matches\" message. |\n| `footer` | The wrapper around the `footer` slot. |\n| `header` | The wrapper around the title/subtitle. |\n| `panel` | The dialog panel itself (`role=\"dialog\"` while open). |\n| `search-input` | The filter text input. |\n| `search-row` | The wrapper around the search input. |\n| `subtitle` | The \"N of M tools enabled\" summary line. |\n| `title` | The dialog's heading. |\n| `tool-checkbox` | A row's `<lr-checkbox>`. |\n| `tool-description` | A row's optional description text. |\n| `tool-disabled-reason` | A disabled row's `disabledReason` text, slotted inside `tool-checkbox` (alongside `tool-name`/`tool-description`) so it contributes to the checkbox's accessible name/description instead of going unannounced. |\n| `tool-icon` | A row's leading icon glyph, when `icon` is set. |\n| `tool-name` | A row's name text (plus its `icon`, if set). |\n| `tool-row` | A single tool's `<li>` row. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-tool-select-dialog-overlay-color` (default: `var(--lr-color-overlay)`) — Backdrop scrim color."
|
|
14604
15801
|
},
|
|
14605
15802
|
"attributes": [
|
|
14606
15803
|
{
|
|
@@ -14693,7 +15890,7 @@
|
|
|
14693
15890
|
"name": "lr-tool-timeline",
|
|
14694
15891
|
"description": {
|
|
14695
15892
|
"kind": "markdown",
|
|
14696
|
-
"value": "`<lr-tool-timeline>` — a chronological list of an agent run's tool/function calls, each\nrendered through `<lr-tool-call-chip>` (name/status/duration) and `<lr-tool-result-view>`\n(args/result), with per-entry retry counts, sensitive-field redaction, and a shared\n`<lr-tool-approval-dialog>` for entries gated behind a human approval decision. This component\nowns none of the actual per-call rendering -- that is entirely those three existing\nprimitives -- its own job is ordering `entries` chronologically, computing each entry's\nduration from `startedAt`/`endedAt`, masking `redactedFields` before handing `args`/`result` to\n`<lr-tool-result-view>`, and opening/closing the one shared approval dialog for whichever entry\nis currently pending a decision.\n\nOrdering: `entries` is sorted ascending by `startedAt`; an entry with no `startedAt` sorts after\nevery timed entry, keeping its position relative to any other untimed entries stable (input\norder is preserved among ties) — a still-pending call with no timestamp yet naturally lands at\nthe end without needing to be pre-sorted by the host.\n\nRedaction only ever affects the read-only detail view: the copy of `args` handed to the\napproval dialog is always the entry's real, unmasked value. Approving a masked-args call must\nlet the reviewer see (and, if `approvalEditable`, edit) what will actually be sent — handing the\ndialog a placeholder string in place of a real field would silently corrupt the decision.\n\nApproval: activating the chip (`lr-tool-call-chip-select`) of an entry with `needsApproval` and\nan undecided `approved` opens the shared dialog for that entry; approving or denying emits this\ncomponent's own `lr-tool-approval-decide` and closes the dialog. This component never mutates\n`entries` itself — a host applies the decision (and any resulting status change) and re-assigns\n`entries`; if the entry currently under review disappears or no longer qualifies as pending\n(its `approved` was resolved some other way) by the time `entries` changes, the dialog closes on\nits own rather than staying open over stale data. A chip belonging to an entry that isn't\npending approval is left alone — its own `lr-tool-call-chip-select` (and deprecated\n`lr-tool-chip-select` alias) still bubble out normally for a host that wants to react to raw\nchip selection for its own purposes.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `approval-dialog` | The single shared `<lr-tool-approval-dialog>` instance. |\n| `base` | The root `<ol>`. |\n| `entry` | One entry's `<li>`; carries `data-status` (the entry's `status`) and `data-pending-approval` (`\"true\"`/`\"false\"`). |\n| `entry-approval-status` | The \"Approved\"/\"Denied\" badge, only rendered once `approved` is set; carries `data-decision` (`\"approved\"`/`\"denied\"`). |\n| `entry-body` | Wrapper around one entry's header and details. |\n| `entry-details` | The `<lr-details>` disclosure wrapping the entry's result view. |\n| `entry-error` | The entry's `error` text, only rendered when set. |\n| `entry-header` | Wrapper around the timestamp, chip, retry badge, and approval status. |\n| `entry-marker` | The decorative rail dot/connector for one entry. |\n| `entry-redacted-indicator` | A decorative marker shown when `redactedFields` is non-empty for that entry. |\n| `entry-result` | The entry's `<lr-tool-result-view>`. |\n| `entry-retries` | The retry-count badge, only rendered while `retryCount > 0`. |\n| `entry-retries-count` | The formatted retry count within the retry badge. |\n| `entry-retries-label` | The localized \"Retry\" text within the retry badge. |\n| `entry-timestamp` | The formatted `startedAt`, only rendered while it's set. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-tool-timeline-gap` (default: `var(--lr-space-l)`) — Vertical gap between entries.\n- `--lr-tool-timeline-marker-size` (default: `var(--lr-size-0-625rem)`) — Diameter of an entry's rail dot; also the width of the marker gutter column.\n- `--lr-tool-timeline-denied-marker-color` (default: `var(--lr-color-warning)`) — Rail-dot color for a `status=\"denied\"` entry, decoupled from the pending-approval border below so a consumer can retint either independently.\n- `--lr-tool-timeline-pending-approval-border-color` (default: `var(--lr-color-warning)`) — Color of the entry body's leading border while `data-pending-approval=\"true\"
|
|
15893
|
+
"value": "`<lr-tool-timeline>` — a chronological list of an agent run's tool/function calls, each\nrendered through `<lr-tool-call-chip>` (name/status/duration) and `<lr-tool-result-view>`\n(args/result), with per-entry retry counts, sensitive-field redaction, and a shared\n`<lr-tool-approval-dialog>` for entries gated behind a human approval decision. This component\nowns none of the actual per-call rendering -- that is entirely those three existing\nprimitives -- its own job is ordering `entries` chronologically, computing each entry's\nduration from `startedAt`/`endedAt`, masking `redactedFields` before handing `args`/`result` to\n`<lr-tool-result-view>`, and opening/closing the one shared approval dialog for whichever entry\nis currently pending a decision.\n\nOrdering: `entries` is sorted ascending by `startedAt`; an entry with no `startedAt` sorts after\nevery timed entry, keeping its position relative to any other untimed entries stable (input\norder is preserved among ties) — a still-pending call with no timestamp yet naturally lands at\nthe end without needing to be pre-sorted by the host.\n\nRedaction only ever affects the read-only detail view: the copy of `args` handed to the\napproval dialog is always the entry's real, unmasked value. Approving a masked-args call must\nlet the reviewer see (and, if `approvalEditable`, edit) what will actually be sent — handing the\ndialog a placeholder string in place of a real field would silently corrupt the decision.\n\nApproval: activating the chip (`lr-tool-call-chip-select`) of an entry with `needsApproval` and\nan undecided `approved` opens the shared dialog for that entry; approving or denying emits this\ncomponent's own `lr-tool-approval-decide` and closes the dialog. This component never mutates\n`entries` itself — a host applies the decision (and any resulting status change) and re-assigns\n`entries`; if the entry currently under review disappears or no longer qualifies as pending\n(its `approved` was resolved some other way) by the time `entries` changes, the dialog closes on\nits own rather than staying open over stale data. A chip belonging to an entry that isn't\npending approval is left alone — its own `lr-tool-call-chip-select` (and deprecated\n`lr-tool-chip-select` alias) still bubble out normally for a host that wants to react to raw\nchip selection for its own purposes.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `approval-dialog` | The single shared `<lr-tool-approval-dialog>` instance. |\n| `base` | The root `<ol>`. |\n| `entry` | One entry's `<li>`; carries `data-status` (the entry's `status`) and `data-pending-approval` (`\"true\"`/`\"false\"`). |\n| `entry-approval-status` | The \"Approved\"/\"Denied\" badge, only rendered once `approved` is set; carries `data-decision` (`\"approved\"`/`\"denied\"`). |\n| `entry-body` | Wrapper around one entry's header and details. |\n| `entry-details` | The `<lr-details>` disclosure wrapping the entry's result view. |\n| `entry-error` | The entry's `error` text, only rendered when set. |\n| `entry-header` | Wrapper around the timestamp, chip, retry badge, and approval status. |\n| `entry-marker` | The decorative rail dot/connector for one entry. |\n| `entry-redacted-indicator` | A decorative marker shown when `redactedFields` is non-empty for that entry. |\n| `entry-result` | The entry's `<lr-tool-result-view>`. |\n| `entry-retries` | The retry-count badge, only rendered while `retryCount > 0`. |\n| `entry-retries-count` | The formatted retry count within the retry badge. |\n| `entry-retries-label` | The localized \"Retry\" text within the retry badge. |\n| `entry-timestamp` | The formatted `startedAt`, only rendered while it's set. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-tool-timeline-gap` (default: `var(--lr-space-l)`) — Vertical gap between entries.\n- `--lr-tool-timeline-marker-size` (default: `var(--lr-size-0-625rem)`) — Diameter of an entry's rail dot; also the width of the marker gutter column.\n- `--lr-tool-timeline-denied-marker-color` (default: `var(--lr-color-warning)`) — Rail-dot color for a `status=\"denied\"` entry, decoupled from the pending-approval border below so a consumer can retint either independently.\n- `--lr-tool-timeline-pending-approval-border-color` (default: `var(--lr-color-warning)`) — Color of the entry body's leading border while `data-pending-approval=\"true\"`.\n- `--lr-tool-timeline-running-marker-color` (default: `var(--lr-color-brand)`) — Running rail dot.\n- `--lr-tool-timeline-success-marker-color` (default: `var(--lr-color-success)`) — Success rail dot.\n- `--lr-tool-timeline-error-marker-color` (default: `var(--lr-color-danger)`) — Error rail dot.\n- `--lr-tool-timeline-approved-bg` (default: `var(--lr-color-success-quiet)`) — Approved badge background.\n- `--lr-tool-timeline-approved-color` (default: `var(--lr-color-success)`) — Approved badge foreground.\n- `--lr-tool-timeline-denied-bg` (default: `var(--lr-color-danger-quiet)`) — Denied badge background.\n- `--lr-tool-timeline-denied-color` (default: `var(--lr-color-danger)`) — Denied badge foreground.\n- `--lr-tool-timeline-error-color` (default: `var(--lr-color-danger)`) — Expanded error text."
|
|
14697
15894
|
},
|
|
14698
15895
|
"attributes": [
|
|
14699
15896
|
{
|
|
@@ -14716,7 +15913,7 @@
|
|
|
14716
15913
|
"name": "lr-tooltip",
|
|
14717
15914
|
"description": {
|
|
14718
15915
|
"kind": "markdown",
|
|
14719
|
-
"value": "`<lr-tooltip>` — a localized, hover/focus tooltip for a consumer-owned trigger.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| (default) | Tooltip content. |\n| `trigger` | The element that receives hover/focus listeners. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `popup` | The tooltip popup. |\n| `trigger` | The trigger wrapper. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-tooltip-max-inline-size` — Maximum inline size of the tooltip (default `--lr-size-20rem`).\n- `--lr-tooltip-background` — Tooltip background color (default `--lr-color-neutral`).\n- `--lr-tooltip-color` — Tooltip text color (default `--lr-color-on-neutral`)."
|
|
15916
|
+
"value": "`<lr-tooltip>` — a localized, hover/focus tooltip for a consumer-owned trigger.\nPlain content uses tooltip semantics. When the default slot contains an actionable descendant,\nthe popup promotes to a named dialog and remains open while pointer or focus is inside so its\ncontrols can be reached. Prefer `<lr-popover>` when click-to-open ownership is desired.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| (default) | Tooltip content. |\n| `trigger` | The element that receives hover/focus listeners. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `popup` | The tooltip popup. |\n| `trigger` | The trigger wrapper. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-tooltip-max-inline-size` — Maximum inline size of the tooltip (default `--lr-size-20rem`).\n- `--lr-tooltip-background` — Tooltip background color (default `--lr-color-neutral`).\n- `--lr-tooltip-color` — Tooltip text color (default `--lr-color-on-neutral`)."
|
|
14720
15917
|
},
|
|
14721
15918
|
"attributes": [
|
|
14722
15919
|
{
|
|
@@ -14765,7 +15962,7 @@
|
|
|
14765
15962
|
"name": "open",
|
|
14766
15963
|
"description": {
|
|
14767
15964
|
"kind": "markdown",
|
|
14768
|
-
"value": "Type: `boolean`
|
|
15965
|
+
"value": "Type: `boolean`"
|
|
14769
15966
|
}
|
|
14770
15967
|
},
|
|
14771
15968
|
{
|
|
@@ -14781,7 +15978,7 @@
|
|
|
14781
15978
|
"name": "lr-tour",
|
|
14782
15979
|
"description": {
|
|
14783
15980
|
"kind": "markdown",
|
|
14784
|
-
"value": "`<lr-tour>` -- a spotlight-and-step guided walkthrough for first-run onboarding. A sequence\nof steps, each anchored to a target element elsewhere in the page via the shared Floating UI\npositioner, shown against a dimmed full-viewport backdrop with a cutout/ring highlighting the\ncurrent target, with Next/Previous/Skip controls and a step-progress indicator. First-party\ninvention (no Web Awesome equivalent) -- nearest precedent in shape is `lr-dialog` (overlay\nlifecycle/focus trap) + `lr-carousel` (index-based navigation) + `lr-stepper`\n(progress/RTL arrow-key nav).\n\n**Not a form-associated control.** A tour is a walkthrough, not a field -- it deliberately has\nno `label`/`hint`/`error` chrome and no `FormAssociated` mixin.\n\n**Controlled component.** `steps` is never mutated by this component (mirrors\n`lr-stepper`'s `steps`); only `activeIndex` and `open` are self-managed, mirroring\n`lr-carousel`'s `index`.\n\n**Target interactivity.** By default, the step's spotlighted target is non-interactive while\nits step is active: it stays visually revealed
|
|
15981
|
+
"value": "`<lr-tour>` -- a spotlight-and-step guided walkthrough for first-run onboarding. A sequence\nof steps, each anchored to a target element elsewhere in the page via the shared Floating UI\npositioner, shown against a dimmed full-viewport backdrop with a cutout/ring highlighting the\ncurrent target, with Next/Previous/Skip controls and a step-progress indicator. First-party\ninvention (no Web Awesome equivalent) -- nearest precedent in shape is `lr-dialog` (overlay\nlifecycle/focus trap) + `lr-carousel` (index-based navigation) + `lr-stepper`\n(progress/RTL arrow-key nav).\n\n**Not a form-associated control.** A tour is a walkthrough, not a field -- it deliberately has\nno `label`/`hint`/`error` chrome and no `FormAssociated` mixin.\n\n**Controlled component.** `steps` is never mutated by this component (mirrors\n`lr-stepper`'s `steps`); only `activeIndex` and `open` are self-managed, mirroring\n`lr-carousel`'s `index`.\n\n**Target interactivity.** By default, the step's spotlighted target is non-interactive while\nits step is active: it stays visually revealed but is outside the modal interaction model\nand cannot be clicked -- every pointer event over the full\nviewport, including directly over the visually-revealed target, is captured by the backdrop\n(CSS `mask` does not affect hit-testing, only `clip-path` does) -- and cannot be reached by Tab\n(the shared overlay focus trap confines Tab to the popover panel). Set `step.interactiveTarget`\nto opt a step's target out of this: the backdrop additionally clips itself (via `clip-path`,\nwhich *does* affect hit-testing) around the same rect, so pointer/click events fall through to\nthe live target underneath. The panel also becomes nonmodal and an explicit Tab route connects\nits controls with the live target.\n\n**Focus management.** Default steps exclusively own interaction: the shared overlay manager\nmarks outside content inert, traps Tab, and the panel reports `aria-modal=\"true\"`.\n`interactiveTarget` steps instead use a nonmodal overlay, report `aria-modal=\"false\"`, and\nexplicitly route Tab between the panel and the external target.\n\nEach step transition mounts a genuinely new popover DOM node (keyed on the step's `id`) so\nfocus reliably re-enters the panel every time, even though the Previous/Next button that\ntriggered the transition lives inside that same persistent-looking region.\n\nNo `Home`/`End` jump-to-first/last-step shortcut and no click-to-jump progress dots, unlike\n`lr-stepper` -- a tour's steps are tied to live DOM targets that may not exist until an\nearlier step's side effect (opening a menu, navigating a route) has run, so free jumping is\nunsafe by default. `goToStep()` remains available for a host that knows what it's doing (e.g.\na \"restart tour\" affordance elsewhere).\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| (default) | Rich content overriding the currently active step's plain-text `content` for that step only. When real content is assigned, it's shown instead of `step.content`; when empty, `step.content` renders as plain text. Not scoped per step by this component itself -- a consumer that needs different rich content per step swaps the slotted children (or listens for `lr-tour-step-change` and re-renders them) itself, the same \"consumer owns slotted content\" pattern `lr-dialog`'s default slot already uses. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `backdrop` | The full-viewport dimmed scrim with the spotlight cutout, an inline `<svg>`. `aria-hidden=\"true\"`. |\n| `body` | Wrapper around the step's content (slotted or `step.content`). |\n| `footer` | Wrapper around the Previous/Skip/Next-or-Done control row. |\n| `heading` | The step's visible heading text element -- the `aria-labelledby` target. |\n| `next-button` | The Next/Done control (label switches on the last step). |\n| `popover` | The step panel itself. `role=\"dialog\"`. |\n| `previous-button` | The Previous control. |\n| `progress` | Wrapper around the built-in step-progress indicator (dots + text). |\n| `progress-dot` | An individual decorative dot within `progress`. `aria-hidden=\"true\"`. |\n| `progress-text` | The visible \"Step X of Y\" text -- one of the popover's `aria-describedby` targets. |\n| `skip-button` | The Skip control. |\n| `spotlight` | The decorative highlight ring drawn around the current target's (padded) rect. `pointer-events: none`, `aria-hidden=\"true\"`. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-tour-backdrop-color` — Backdrop scrim fill. Defaults to `--lr-color-overlay`.\n- `--lr-tour-spotlight-radius` — Corner radius shared by the cutout and the ring. Defaults to `--lr-radius`.\n- `--lr-tour-spotlight-ring-color` — Spotlight ring color. Defaults to `--lr-color-brand`.\n- `--lr-tour-spotlight-ring-width` — Spotlight ring thickness. Defaults to `--lr-border-width-medium`.\n- `--lr-tour-popover-max-width` — Maximum popover inline size. Defaults to `--lr-size-22rem`.\n- `--lr-tour-progress-dot-current-bg` (default: `var(--lr-color-brand)`) — Background of `progress-dot` for the current step, without repainting every other component that reuses the shared brand token."
|
|
14785
15982
|
},
|
|
14786
15983
|
"attributes": [
|
|
14787
15984
|
{
|
|
@@ -14853,7 +16050,7 @@
|
|
|
14853
16050
|
"name": "lr-trace-tree",
|
|
14854
16051
|
"description": {
|
|
14855
16052
|
"kind": "markdown",
|
|
14856
|
-
"value": "`<lr-trace-tree>` — a collapsible span hierarchy for one agent/LLM trace\n(Langfuse/LangSmith run-tree style): kind icon, name, status, an inline\nduration bar on the shared trace time scale, and optional tokens/cost\ncolumns. Consumes the same `LyraSpan[]` as `<lr-span-waterfall>`.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `bar` | The duration bar's filled portion. |\n| `bar-track` | The duration bar's background track. |\n| `base` | The root wrapper (`role=\"tree\"`). |\n| `cost` | The cost column cell (when `showCost`). |\n| `detail` | The span's secondary text, from `LyraSpan.detail`. |\n| `duration` | The formatted duration text. |\n| `empty` | The empty-state message shown when `spans` is empty. |\n| `header` | The column-header row, rendered only when `showTokens`/`showCost` is on. |\n| `icon` | The span-kind icon. |\n| `live-region` | The internal status-announcement live region. |\n| `name` | The span's name. |\n| `row` | One span's row (`role=\"treeitem\"`). |\n| `status-text` | The visible status label. |\n| `toggle` | A row's expand/collapse button. |\n| `tokens-in` | The tokens-in column cell (when `showTokens`). |\n| `tokens-out` | The tokens-out column cell (when `showTokens`). |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-trace-tree-row-active-bg` (default: `var(--lr-color-brand-quiet)`) — Background of the active (`activeSpanId`) row. Shadow Parts forbids an attribute selector after `::part()`, so the active row could otherwise only be restyled by hijacking the library-wide `--lr-color-brand-quiet` token. Pairs with `--lr-trace-tree-row-active-color`: set both together, since the defaults assume the active background stays on the same side of the lightness midpoint as the ambient surface — a dark tint in light mode needs the matching text color set too, or the row's secondary text drops below the WCAG AA contrast floor.\n- `--lr-trace-tree-row-active-color` (default: `var(--lr-color-text)`) — Foreground reference for the active (`activeSpanId`) row. It sets the color of that row's secondary text (`detail`, `duration`, `tokens-in`, `tokens-out`, `cost`, and the `pending` status label), which is raised from the quiet token to full-strength text so it clears WCAG AA against the active row's tint. The semantic status labels keep their own hue but are mixed 25% toward this same value, so overriding it re-aims every foreground on the row at once rather than leaving the status colors stranded. See the pairing caveat on `--lr-trace-tree-row-active-bg
|
|
16053
|
+
"value": "`<lr-trace-tree>` — a collapsible span hierarchy for one agent/LLM trace\n(Langfuse/LangSmith run-tree style): kind icon, name, status, an inline\nduration bar on the shared trace time scale, and optional tokens/cost\ncolumns. Consumes the same `LyraSpan[]` as `<lr-span-waterfall>`.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `bar` | The duration bar's filled portion. |\n| `bar-track` | The duration bar's background track. |\n| `base` | The root wrapper (`role=\"tree\"`). |\n| `cost` | The cost column cell (when `showCost`). |\n| `detail` | The span's secondary text, from `LyraSpan.detail`. |\n| `duration` | The formatted duration text. |\n| `empty` | The empty-state message shown when `spans` is empty. |\n| `header` | The column-header row, rendered only when `showTokens`/`showCost` is on. |\n| `icon` | The span-kind icon. |\n| `live-region` | The internal status-announcement live region. |\n| `name` | The span's name. |\n| `row` | One span's row (`role=\"treeitem\"`). |\n| `status-text` | The visible status label. |\n| `toggle` | A row's expand/collapse button. |\n| `tokens-in` | The tokens-in column cell (when `showTokens`). |\n| `tokens-out` | The tokens-out column cell (when `showTokens`). |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-trace-tree-row-active-bg` (default: `var(--lr-color-brand-quiet)`) — Background of the active (`activeSpanId`) row. Shadow Parts forbids an attribute selector after `::part()`, so the active row could otherwise only be restyled by hijacking the library-wide `--lr-color-brand-quiet` token. Pairs with `--lr-trace-tree-row-active-color`: set both together, since the defaults assume the active background stays on the same side of the lightness midpoint as the ambient surface — a dark tint in light mode needs the matching text color set too, or the row's secondary text drops below the WCAG AA contrast floor.\n- `--lr-trace-tree-row-active-color` (default: `var(--lr-color-text)`) — Foreground reference for the active (`activeSpanId`) row. It sets the color of that row's secondary text (`detail`, `duration`, `tokens-in`, `tokens-out`, `cost`, and the `pending` status label), which is raised from the quiet token to full-strength text so it clears WCAG AA against the active row's tint. The semantic status labels keep their own hue but are mixed 25% toward this same value, so overriding it re-aims every foreground on the row at once rather than leaving the status colors stranded. See the pairing caveat on `--lr-trace-tree-row-active-bg`.\n- `--lr-trace-tree-toggle-hover-bg` (default: `var(--lr-color-brand-quiet)`) — Toggle hover background.\n- `--lr-trace-tree-success-color` (default: `var(--lr-color-success)`) — Success status text and bar.\n- `--lr-trace-tree-error-color` (default: `var(--lr-color-danger)`) — Error status text and bar.\n- `--lr-trace-tree-denied-color` (default: `var(--lr-color-warning)`) — Denied status text and bar.\n- `--lr-trace-tree-running-color` (default: `var(--lr-color-brand)`) — Running status text and stripe.\n- `--lr-trace-tree-pending-color` (default: `var(--lr-color-text-quiet)`) — Pending status text and bar.\n- `--lr-trace-tree-bar-track-bg` (default: `var(--lr-color-surface-raised)`) — Duration bar track.\n- `--lr-trace-tree-running-stripe-bg` (default: `var(--lr-color-brand-quiet)`) — Running stripe contrast."
|
|
14857
16054
|
},
|
|
14858
16055
|
"attributes": [
|
|
14859
16056
|
{
|
|
@@ -15015,7 +16212,7 @@
|
|
|
15015
16212
|
"name": "lr-typing-indicator",
|
|
15016
16213
|
"description": {
|
|
15017
16214
|
"kind": "markdown",
|
|
15018
|
-
"value": "`<lr-typing-indicator>` — a purely presentational \"assistant is\nresponding\" presence cue. No events, no interactivity: a consumer mounts\nit while a response is being generated and removes it (or hides it) once\nreal content has arrived.\n\nThree visual variants share one component rather than three separate tags\nbecause callers pick between them along a single axis — how the\nsurrounding surface wants the cue to read — and nothing else about the\ncomponent differs:\n- `dots` (default) — three dots with a staggered bounce, the classic\n \"typing…\" affordance for a standalone status line.\n- `pulse` — a single breathing dot, a quieter cue for a tighter space\n (e.g. next to an avatar).\n- `cursor` — a blinking vertical bar, meant to sit inline at the tail end\n of streamed text that is still being appended to.\n\nAccessibility: this indicator typically mounts and unmounts around a real\ngeneration lifecycle (appears when a response starts, disappears once one\narrives) rather than emitting a stream of updates of its own, so it does\n*not* route through `<lr-live-region>`/`Announcer`\n(`../../internal/announcer.js`) — that machinery exists to coalesce many\nrapidly-changing announcements into one, and there is only ever a single\nannouncement here: the mount itself. A plain `role=\"status\"` plus an\naccessible name derived from `label` is sufficient, set both as an\n`aria-label` on the host *and* as a visually-hidden text node in the\nshadow tree, so the name survives even if only one of the two is picked up\nby a given assistive-tech/browser pairing. An untouched-default, empty, or\nwhitespace-only `label` falls back to the localized \"Thinking…\" copy in\nboth places, rather than leaving the component with no accessible name at\nall. An `aria-label` set directly on the host element (the idiomatic way to\nname any custom element) wins over the `label`-derived default, in both\nplaces -- the host attribute is never silently clobbered on first render.\nThe animated dots/pulse/cursor\nshape is `aria-hidden=\"true\"` — it's decorative; `label` is the entire\naccessible content, so nothing narrates individual animation frames.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The decorative (`aria-hidden`) wrapper around the animated shape. |\n| `cursor` | The blinking bar in the `cursor` variant. |\n| `dot` | Each of the three dots in the `dots` variant. |\n| `pulse` | The single pulsing dot in the `pulse` variant. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-
|
|
16215
|
+
"value": "`<lr-typing-indicator>` — a purely presentational \"assistant is\nresponding\" presence cue. No events, no interactivity: a consumer mounts\nit while a response is being generated and removes it (or hides it) once\nreal content has arrived.\n\nThree visual variants share one component rather than three separate tags\nbecause callers pick between them along a single axis — how the\nsurrounding surface wants the cue to read — and nothing else about the\ncomponent differs:\n- `dots` (default) — three dots with a staggered bounce, the classic\n \"typing…\" affordance for a standalone status line.\n- `pulse` — a single breathing dot, a quieter cue for a tighter space\n (e.g. next to an avatar).\n- `cursor` — a blinking vertical bar, meant to sit inline at the tail end\n of streamed text that is still being appended to.\n\nAccessibility: this indicator typically mounts and unmounts around a real\ngeneration lifecycle (appears when a response starts, disappears once one\narrives) rather than emitting a stream of updates of its own, so it does\n*not* route through `<lr-live-region>`/`Announcer`\n(`../../internal/announcer.js`) — that machinery exists to coalesce many\nrapidly-changing announcements into one, and there is only ever a single\nannouncement here: the mount itself. A plain `role=\"status\"` plus an\naccessible name derived from `label` is sufficient, set both as an\n`aria-label` on the host *and* as a visually-hidden text node in the\nshadow tree, so the name survives even if only one of the two is picked up\nby a given assistive-tech/browser pairing. An untouched-default, empty, or\nwhitespace-only `label` falls back to the localized \"Thinking…\" copy in\nboth places, rather than leaving the component with no accessible name at\nall. An `aria-label` set directly on the host element (the idiomatic way to\nname any custom element) wins over the `label`-derived default, in both\nplaces -- the host attribute is never silently clobbered on first render.\nThe animated dots/pulse/cursor\nshape is `aria-hidden=\"true\"` — it's decorative; `label` is the entire\naccessible content, so nothing narrates individual animation frames.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The decorative (`aria-hidden`) wrapper around the animated shape. |\n| `cursor` | The blinking bar in the `cursor` variant. |\n| `dot` | Each of the three dots in the `dots` variant. |\n| `pulse` | The single pulsing dot in the `pulse` variant. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-typing-duration` (default: `var(--lr-transition-ambient)`) — Animation duration and timing function for the dot-bounce/pulse/cursor-blink loop, shared by all variants. Aliases the shared `--lr-transition-ambient` token (default `1.8s ease-in-out`) by default, so retiming just this component doesn't affect other ambient-looping components in the library.\n- `--lr-typing-dot-stagger-1` (default: `600ms`) — Delay for the second dot in the dots variant.\n- `--lr-typing-dot-stagger-2` (default: `1200ms`) — Delay for the third dot in the dots variant."
|
|
15019
16216
|
},
|
|
15020
16217
|
"attributes": [
|
|
15021
16218
|
{
|
|
@@ -15103,14 +16300,14 @@
|
|
|
15103
16300
|
"name": "lr-virtual-list",
|
|
15104
16301
|
"description": {
|
|
15105
16302
|
"kind": "markdown",
|
|
15106
|
-
"value": "`<lr-virtual-list>` — a generic windowed/virtualized list host. Renders\nonly the items within the current viewport (plus `overscan` padding rows\non each side) as real DOM, regardless of how large `items` is, so a\nmulti-thousand-row chat history sidebar or long message thread stays cheap\nto scroll.\n\nContent is entirely caller-supplied: `renderItem(item, index)` returns\nwhatever `lit-html` value should represent that row (typically a\n`TemplateResult`), and `keyFunction(item, index)` gives it a stable\nidentity for `repeat()`'s DOM-reconciliation key, so scroll position and\nany per-row state (e.g. an `<audio>` element's playback position) survive\nan `items` mutation instead of every row remounting from scratch.\n\n**Windowing math.** Every row — in both `row-height` modes — is positioned\nby a `transform: translateY(offset)` computed from a single cumulative\n`offsets` array (`offsets[i]` = the pixel top of row `i`), rather than by\npage flow. This is what lets only a small DOM window exist while the\nscrollbar still reflects the *true* total content height:\n- **`row-height=\"auto\"` (default).** Each currently-rendered row is\n watched by a `ResizeObserver`; its real height lands in a per-key\n `Map`, and any row not yet measured contributes `DEFAULT_ROW_ESTIMATE_PX`\n to the offsets array until it has been. `offsets` is *not* the same\n thing as a page-count-based `padding-top`/`padding-bottom` spacer pair —\n that approach reflows every unmeasured row's position on every new\n measurement, which is exactly what per-row transform offsets avoid: only\n the rows *after* a newly-measured one shift, and even that shift is a\n cheap style recompute, not a layout-affecting padding change.\n- **Fixed numeric `row-height`.** No measurement needed — `offsets[i]` is\n just `i * rowHeightPx`, computed by the exact same cumulative-array code\n path (a dedicated \"single spacer + start-index\" special case was\n considered and would work too, but reusing one code path for both modes\n avoids maintaining two parallel rendering strategies for a difference\n that's otherwise just \"how is row *i*'s height looked up\").\n\nThe `offsets` array is rebuilt only when `items`, `row-height`, or\n`keyFunction` change, or a row's measured height changes -- not on every\nupdate, so a pure scroll-position tick (potentially every rAF while\nscrolling) only re-runs the cheap range/visibility math in\n`computeRange()`, never the `O(n)` offsets rebuild (which, in\n`row-height=\"auto\"` mode, also means a `keyFunction` call per item). For\nthe list sizes this component is meant for (a scrollable history sidebar,\nrealistically hundreds to a few thousand rows) that rebuild is a trivial\n`O(n)` arithmetic loop even when it does run; it is *not* the right\napproach for a hundred-thousand-row list without further work (e.g. a\nFenwick/segment tree for `O(log n)` offset queries+updates), which is out\nof scope here.\n\n**Accessibility.** The scroll container is `role=\"list\"` and each rendered\nrow is `role=\"listitem\"`, deliberately *not* `listbox`/`option` — this\ncomponent only provides windowing, not the roving-tabindex/\n`aria-activedescendant` keyboard-interaction contract ARIA requires\nalongside a real `listbox`. A consumer that wants full single-select\nlistbox semantics on top of this should compose that behavior itself (see\n`<lr-select>`'s pattern), the same way this component's `active-id`\nonly *scrolls* the matching row into view and marks it `aria-current` —\nit never claims to be a selection widget. `aria-setsize`/`aria-posinset`\nare computed from the row's real index in the full `items` array (not its\nposition among the currently-rendered DOM window), so a screen reader\nstill announces e.g. \"item 12 of 340\" correctly. `[part=\"base\"]` itself\ncarries `tabindex=\"0\"` — `renderItem`'s content is caller-supplied and not\nguaranteed to contain a focusable element, and a scrollable region with no\nfocusable content of its own is otherwise unreachable by keyboard (native\narrow/Page Up/Page Down scrolling included).\n\n**Grouping.** When supplied, `groups` renders a labeled group marker at the\
|
|
16303
|
+
"value": "`<lr-virtual-list>` — a generic windowed/virtualized list host. Renders\nonly the items within the current viewport (plus `overscan` padding rows\non each side) as real DOM, regardless of how large `items` is, so a\nmulti-thousand-row chat history sidebar or long message thread stays cheap\nto scroll.\n\nContent is entirely caller-supplied: `renderItem(item, index)` returns\nwhatever `lit-html` value should represent that row (typically a\n`TemplateResult`), and `keyFunction(item, index)` gives it a stable\nidentity for `repeat()`'s DOM-reconciliation key, so scroll position and\nany per-row state (e.g. an `<audio>` element's playback position) survive\nan `items` mutation instead of every row remounting from scratch.\n\n**Windowing math.** Every row — in both `row-height` modes — is positioned\nby a `transform: translateY(offset)` computed from a single cumulative\n`offsets` array (`offsets[i]` = the pixel top of row `i`), rather than by\npage flow. This is what lets only a small DOM window exist while the\nscrollbar still reflects the *true* total content height:\n- **`row-height=\"auto\"` (default).** Each currently-rendered row is\n watched by a `ResizeObserver`; its real height lands in a per-key\n `Map`, and any row not yet measured contributes `DEFAULT_ROW_ESTIMATE_PX`\n to the offsets array until it has been. `offsets` is *not* the same\n thing as a page-count-based `padding-top`/`padding-bottom` spacer pair —\n that approach reflows every unmeasured row's position on every new\n measurement, which is exactly what per-row transform offsets avoid: only\n the rows *after* a newly-measured one shift, and even that shift is a\n cheap style recompute, not a layout-affecting padding change.\n- **Fixed numeric `row-height`.** No measurement needed — `offsets[i]` is\n just `i * rowHeightPx`, computed by the exact same cumulative-array code\n path (a dedicated \"single spacer + start-index\" special case was\n considered and would work too, but reusing one code path for both modes\n avoids maintaining two parallel rendering strategies for a difference\n that's otherwise just \"how is row *i*'s height looked up\").\n\nThe `offsets` array is rebuilt only when `items`, `row-height`, or\n`keyFunction` change, or a row's measured height changes -- not on every\nupdate, so a pure scroll-position tick (potentially every rAF while\nscrolling) only re-runs the cheap range/visibility math in\n`computeRange()`, never the `O(n)` offsets rebuild (which, in\n`row-height=\"auto\"` mode, also means a `keyFunction` call per item). For\nthe list sizes this component is meant for (a scrollable history sidebar,\nrealistically hundreds to a few thousand rows) that rebuild is a trivial\n`O(n)` arithmetic loop even when it does run; it is *not* the right\napproach for a hundred-thousand-row list without further work (e.g. a\nFenwick/segment tree for `O(log n)` offset queries+updates), which is out\nof scope here.\n\n**Accessibility.** The scroll container is `role=\"list\"` and each rendered\nrow is `role=\"listitem\"`, deliberately *not* `listbox`/`option` — this\ncomponent only provides windowing, not the roving-tabindex/\n`aria-activedescendant` keyboard-interaction contract ARIA requires\nalongside a real `listbox`. A consumer that wants full single-select\nlistbox semantics on top of this should compose that behavior itself (see\n`<lr-select>`'s pattern), the same way this component's `active-id`\nonly *scrolls* the matching row into view and marks it `aria-current` —\nit never claims to be a selection widget. `aria-setsize`/`aria-posinset`\nare computed from the row's real index in the full `items` array (not its\nposition among the currently-rendered DOM window), so a screen reader\nstill announces e.g. \"item 12 of 340\" correctly. `[part=\"base\"]` itself\ncarries `tabindex=\"0\"` — `renderItem`'s content is caller-supplied and not\nguaranteed to contain a focusable element, and a scrollable region with no\nfocusable content of its own is otherwise unreachable by keyboard (native\narrow/Page Up/Page Down scrolling included).\n\n**Grouping.** When supplied, `groups` renders a labeled group marker at the corresponding\n`startIndex`. Markers are windowed with the rows, while normalized group metadata stays cached\nfor sticky-header lookup; one-group-per-row catalogs therefore remain bounded.\n\n**Sticky group headers.** `renderStickyGroup` adds a `[part=\"sticky-group\"]` overlay pinned to the\ntop of the scroll viewport, showing the `groups` entry the viewport is currently inside; as the\nnext group's header arrives it is pushed out by the overlap rather than swapped abruptly. Unset\n(the default) renders no overlay element at all, and the list renders exactly as it does without\nthis feature. Four properties of the overlay matter to a consumer:\n- It is a **visual copy** of content that already exists in the list, so it is `aria-hidden` and\n any ordinary focusable element inside it is forced to `tabindex=\"-1\"`: the real row keeps sole\n ownership of the heading semantics and of the tab order. (`inert` would express this more\n directly but would also block the pointer opt-in below, so it is deliberately not used; a\n focus-delegating custom element rendered into the overlay needs its own `tabindex=\"-1\"`.)\n- It is **`pointer-events: none` by default**; a consumer whose header content is interactive\n opts in with `lr-virtual-list::part(sticky-group) { pointer-events: auto; }`.\n- It is **never measured as a row.** It contributes nothing to `offsets`, so a group header that\n is also a real row is not counted twice in `row-height=\"auto\"` mode.\n- Its measured height becomes a `scroll-padding-block-start` on the scroll container, so both\n `active-id`/`scrollToIndex` and native keyboard scrolling stop *below* the band instead of\n parking the target row behind it. Scrolled above the first group the band shows nothing but\n stays mounted, so that height is known before the first jump rather than after it.\nA host that renders its own group headers as ordinary rows supplies `groups` purely as position\nanchors, with `label: ''` so no duplicate `[part=\"group\"]` marker renders.\n\n**Position queries.** `offsetForIndex(index)` and `indexAtOffset(px)` expose the windowing math\nitself: they translate between an item index and the pixel offset that row renders at, in the same\ncoordinate space as the scroll container's `scrollTop`. A host doing its own scroll-linked layout\n(a pinned group header, a scrollbar minimap, a \"jump to here\" affordance) needs those numbers and\nwould otherwise have to duplicate the offsets array.\n\n**Programmatic scrolling.** `scrollToIndex()` is the public counterpart to `active-id`'s automatic\nscroll-into-view -- used by `<lr-chat-viewport>`'s virtual mode and any other host that needs to\nscroll to a specific row without also changing which row is \"active.\"\n\n**`item-role=\"row\"` mode.** Additive to the default `'listitem'` mapping above: `[part=\"base\"]`\nbecomes `role=\"rowgroup\"`, `[part=\"spacer\"]` becomes `role=\"presentation\"`, and each row becomes\n`role=\"row\"` with `aria-rowindex` (the row's 1-based index plus `row-index-offset`) instead of\n`aria-setsize`/`aria-posinset`. For a consumer composing its own `role=\"table\"` wrapper and header\nrow around this component (see `<lr-dataset-viewer>`), where `row-index-offset=\"1\"` accounts for\nthat external header row occupying `aria-rowindex=\"1\"`.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The scrollable container (`role=\"list\"`). |\n| `group` | A positioned group label. Not rendered for a `groups` entry whose `label` is the empty string (a position-anchor-only entry). |\n| `row` | One rendered row's absolutely-positioned wrapper (`role=\"listitem\"`); `renderItem`'s return value renders inside it. |\n| `spacer` | The full-content-height inner element that gives the container its true scrollable extent. |\n| `sticky-group` | The pinned copy of the current group, rendered only while `renderStickyGroup` is set (and showing nothing while the viewport is above the first group, where there is no group to pin). `aria-hidden` and `pointer-events: none` by default — style this part with `pointer-events: auto` to make copied interactive content clickable again. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-virtual-list-height` (default: `var(--lr-size-24rem)`) — The scroll viewport's height. A virtualized list needs a bounded scroll extent, so this ships a default rather than collapsing to zero when a caller does not size the host.\n- `--lr-virtual-list-hover-outline-color` (default: `var(--lr-color-border-strong)`) — Outline color of the mouse-hover preview on `[part=\"base\"]` (a subtler, always-focusable-target preview of its own `:focus-visible` ring). Set to `transparent` to opt out of the hover treatment entirely."
|
|
15107
16304
|
},
|
|
15108
16305
|
"attributes": [
|
|
15109
16306
|
{
|
|
15110
16307
|
"name": "active-id",
|
|
15111
16308
|
"description": {
|
|
15112
16309
|
"kind": "markdown",
|
|
15113
|
-
"value": "When set and it matches a row's typed `keyFunction` result, that row is\nsmoothly scrolled into view whenever this changes. Attribute values are\nstrings; assign the property for a numeric key.\n\nType: `VirtualListKey |
|
|
16310
|
+
"value": "When set and it matches a row's typed `keyFunction` result, that row is\nsmoothly scrolled into view whenever this changes. Attribute values are\nstrings; assign the property for a numeric key.\n\nType: `VirtualListKey | \"\"` \nDefault: `\"\"`"
|
|
15114
16311
|
}
|
|
15115
16312
|
},
|
|
15116
16313
|
{
|
|
@@ -15124,7 +16321,7 @@
|
|
|
15124
16321
|
"name": "item-role",
|
|
15125
16322
|
"description": {
|
|
15126
16323
|
"kind": "markdown",
|
|
15127
|
-
"value": "`'listitem'` (default) preserves today's `role=\"list\"`/`role=\"listitem\"` mapping with\n`aria-setsize`/`aria-posinset`. `'row'` maps to `role=\"rowgroup\"`/`role=\"row\"` with\n`aria-rowindex` instead -- for a consumer composing a virtualized `role=\"table\"` (see\n`<lr-dataset-viewer>`).\n\nType: `VirtualListItemRole` \nDefault:
|
|
16324
|
+
"value": "`'listitem'` (default) preserves today's `role=\"list\"`/`role=\"listitem\"` mapping with\n`aria-setsize`/`aria-posinset`. `'row'` maps to `role=\"rowgroup\"`/`role=\"row\"` with\n`aria-rowindex` instead -- for a consumer composing a virtualized `role=\"table\"` (see\n`<lr-dataset-viewer>`).\n\nType: `VirtualListItemRole` \nDefault: `\"listitem\"`"
|
|
15128
16325
|
}
|
|
15129
16326
|
},
|
|
15130
16327
|
{
|
|
@@ -15152,7 +16349,7 @@
|
|
|
15152
16349
|
"name": "row-height",
|
|
15153
16350
|
"description": {
|
|
15154
16351
|
"kind": "markdown",
|
|
15155
|
-
"value": "`'auto'` (default) measures each row's real height via `ResizeObserver`;\na numeric string fixes every row to that many pixels.\n\nType: `string` \nDefault:
|
|
16352
|
+
"value": "`'auto'` (default) measures each row's real height via `ResizeObserver`;\na numeric string fixes every row to that many pixels.\n\nType: `string` \nDefault: `\"auto\"`"
|
|
15156
16353
|
}
|
|
15157
16354
|
},
|
|
15158
16355
|
{
|
|
@@ -15168,7 +16365,7 @@
|
|
|
15168
16365
|
"name": "lr-voice-picker",
|
|
15169
16366
|
"description": {
|
|
15170
16367
|
"kind": "markdown",
|
|
15171
|
-
"value": "`<lr-voice-picker>` — a TTS voice selector over a host-supplied `catalog`, mirroring\n`lr-model-select`'s closed-dropdown/free-text-combobox dual mode, stale-value handling, and\nform-association verbatim (see that class's own doc for the full mode-switching contract this one\nshares), extended with a TTS-agnostic preview affordance: a standalone, always-tab-reachable\n`[part=\"preview-button\"]` beside the trigger previews the active option while open, else the\ncommitted value; per-row `[part=\"option-preview\"]` icons are pointer-only duplicates\n(`tabindex=\"-1\"`, `aria-hidden=\"true\"`) since a listbox option must not contain a focusable\ndescendant.\n\nPreview is event-first: `lr-preview-request` always fires first and is cancelable. Left\nun-prevented, a `previewUrl` plays through one internal native `<audio>` (the URL passes\n`safeMediaSrc()` first); `preventDefault()` or no URL leaves playback entirely to the host's own\nTTS. Requesting the same voice while it is already playing internally stops it instead of\nre-requesting; requesting a different voice switches. `lr-preview-change` reports internal\nplayback start/stop (`voiceId: null` on stop/end/error).\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| `error` | Custom error content. |\n| `hint` | Custom hint content. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `combobox` | The text-input container (free-text mode). |\n| `combobox-input` | The free-text `<input>`. |\n| `empty` | The empty-listbox message. |\n| `error` | The error message. |\n| `expand-icon` | The dropdown indicator. |\n| `form-control-label` | The `<label>` element. |\n| `hint` | The hint message. |\n| `listbox` | The options popover. |\n| `option` | An option row. |\n| `option-badge` | The \"not in catalog\" badge on a synthetic stale-value row. |\n| `option-label` | An option row's label/meta wrapper. |\n| `option-meta` | An option row's quiet `language · description` second line. |\n| `option-preview` | A pointer-only per-row preview icon (`tabindex=\"-1\"`, `aria-hidden`). |\n| `preview-button` | The standalone, keyboard-reachable preview toggle beside the trigger. |\n| `provider-badge` | The optional leading `provider` label. |\n| `trigger` | The trigger button (closed-dropdown mode).
|
|
16368
|
+
"value": "`<lr-voice-picker>` — a TTS voice selector over a host-supplied `catalog`, mirroring\n`lr-model-select`'s closed-dropdown/free-text-combobox dual mode, stale-value handling, and\nform-association verbatim (see that class's own doc for the full mode-switching contract this one\nshares), extended with a TTS-agnostic preview affordance: a standalone, always-tab-reachable\n`[part=\"preview-button\"]` beside the trigger previews the active option while open, else the\ncommitted value; per-row `[part=\"option-preview\"]` icons are pointer-only duplicates\n(`tabindex=\"-1\"`, `aria-hidden=\"true\"`) since a listbox option must not contain a focusable\ndescendant.\n\nPreview is event-first: `lr-preview-request` always fires first and is cancelable. Left\nun-prevented, a `previewUrl` plays through one internal native `<audio>` (the URL passes\n`safeMediaSrc()` first); `preventDefault()` or no URL leaves playback entirely to the host's own\nTTS. Requesting the same voice while it is already playing internally stops it instead of\nre-requesting; requesting a different voice switches. `lr-preview-change` reports internal\nplayback start/stop (`voiceId: null` on stop/end/error).\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| `error` | Custom error content. |\n| `hint` | Custom hint content. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `combobox` | The text-input container (free-text mode). |\n| `combobox-input` | The free-text `<input>`. |\n| `empty` | The empty-listbox message. |\n| `error` | The error message. |\n| `expand-icon` | The dropdown indicator. |\n| `form-control-label` | The `<label>` element. |\n| `hint` | The hint message. |\n| `listbox` | The options popover. |\n| `option` | An option row. |\n| `option-badge` | The \"not in catalog\" badge on a synthetic stale-value row. |\n| `option-label` | An option row's label/meta wrapper. |\n| `option-meta` | An option row's quiet `language · description` second line. |\n| `option-preview` | A pointer-only per-row preview icon (`tabindex=\"-1\"`, `aria-hidden`). |\n| `preview-button` | The standalone, keyboard-reachable preview toggle beside the trigger. |\n| `provider-badge` | The optional leading `provider` label. |\n| `trigger` | The trigger button (closed-dropdown mode). |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-voice-picker-preview-active-border` (default: `var(--lr-color-brand)`) — Active preview border.\n- `--lr-voice-picker-preview-active-color` (default: `var(--lr-color-brand)`) — Active preview icon.\n- `--lr-voice-picker-option-active-bg` (default: `var(--lr-color-brand-quiet)`) — Active option fill.\n- `--lr-voice-picker-option-selected-border` (default: `var(--lr-color-brand)`) — Selected option border.\n- `--lr-voice-picker-option-selected-color` (default: `var(--lr-color-brand)`) — Selected option text.\n- `--lr-voice-picker-option-selected-bg` (default: `transparent`) — Selected option fill.\n- `--lr-voice-picker-option-selected-font-weight` (default: `var(--lr-font-weight-semibold)`) — Selected option label weight.\n- `--lr-voice-picker-preview-hover-bg` (default: `var(--lr-color-brand-quiet)`) — Preview hover fill.\n- `--lr-voice-picker-preview-hover-color` (default: `var(--lr-color-brand)`) — Preview hover icon."
|
|
15172
16369
|
},
|
|
15173
16370
|
"attributes": [
|
|
15174
16371
|
{
|
|
@@ -15310,7 +16507,7 @@
|
|
|
15310
16507
|
"name": "lr-widget",
|
|
15311
16508
|
"description": {
|
|
15312
16509
|
"kind": "markdown",
|
|
15313
|
-
"value": "`<lr-widget>` — a titled panel shell with an optional collapse toggle and\nan optional fullscreen-expand toggle. Fullscreen promotes the same host\nelement in place (a CSS state, not a clone/portal), so slotted content\n(a chart, a running simulation, scroll position) survives the transition.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| (default) | The panel body. |\n| `actions` | Header action controls, rendered before the collapse/expand buttons. |\n| `collapse-icon` | Overrides the built-in chevron glyph inside the collapse/expand toggle button entirely, via the platform's own slot-fallback-content mechanism (same convention as `<lr-tool-call-chip>`'s `icon` slot): whatever is assigned wins, otherwise the default chevron renders. Only meaningful while `collapsible`. |\n| `fullscreen-icon` | Overrides the built-in expand/close glyph inside the fullscreen toggle button entirely, using the same mechanism -- the override replaces *both* the \"expand\" and \"exit fullscreen\" default icons, so a consumer supplying one is responsible for its own expand/exit distinction (e.g. by reading the `fullscreen` attribute). Only meaningful while `expandable`. |\n| `icon` | Optional leading icon in the title row. |\n| `label` | Rich label content (overrides the `label` attribute). |\n| `sublabel` | Rich sublabel content (overrides the `sublabel` attribute). |\n| `view-{id}` | Content for the view whose `WidgetView.id` matches `{id}`, rendered when `views` is non-empty. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `actions` | The wrapper around the `actions` slot. |\n| `backdrop` | The fullscreen scrim behind the panel. |\n| `base` | The panel root (dialog role + backdrop when fullscreen). |\n| `body` | The wrapper around the default slot (the panel body). |\n| `collapse-button` | The collapse/expand toggle button. |\n| `fullscreen-button` | The fullscreen toggle button. |\n| `header` | The header row containing the title, actions, and toggle buttons. |\n| `icon` | Wrapper around the `icon` slot. Hidden entirely when empty. |\n| `label` | The panel title text. |\n| `label-group` | Wrapper around the label and sublabel. |\n| `sublabel` | The panel subtitle text. |\n| `title` | The wrapper around the label/sublabel. |\n| `view-toggle` | A single view toggle button. |\n| `view-toggles` | The header toggle-button group, only rendered when `views` is non-empty. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-widget-overlay-color` (default: `var(--lr-color-overlay)`) — The fullscreen scrim's color, applied to `[part=\"backdrop\"]`.\n- `--lr-widget-view-toggle-active-bg` (default: `var(--lr-color-brand-quiet)`) — Background of the pressed (`aria-pressed=\"true\"`) view toggle. Declared as an inline `var()` fallback (never on `:host`), so setting it on the element or an ancestor recolors only the active toggle without hijacking the library-wide `--lr-color-brand-quiet` token.\n- `--lr-widget-view-toggle-active-color` (default: `var(--lr-color-brand)`) — Text color of the pressed view toggle.\n- `--lr-widget-fullscreen-inset` (default: `max(var(--lr-space-l), var(--lr-safe-area-top)) max(var(--lr-space-l), var(--lr-safe-area-inline-end)) max(var(--lr-space-l), var(--lr-safe-area-bottom)) max(var(--lr-space-l), var(--lr-safe-area-inline-start))`) — The `inset` applied to `[part=\"base\"]` while `fullscreen`. Also set inline from the `fullscreen-inset` attribute.\n- `--lr-widget-backdrop-inset` (default: `var(--lr-widget-fullscreen-inset)`) — The `inset` applied to `[part=\"backdrop\"]`, so the scrim can be pulled back independently of the panel. Also set inline from the `backdrop-inset` attribute (falling back to `fullscreen-inset`). `fullscreen-inset` overrides the default `var(--lr-space-l)` inset applied to `[part=\"base\"]` and `[part=\"backdrop\"]` while fullscreen (e.g. `\"0 0 0 240px\"` to leave a persistent sidebar visible). `compact` tightens header/body padding — same convention as `lr-empty`'s `compact`."
|
|
16510
|
+
"value": "`<lr-widget>` — a titled panel shell with an optional collapse toggle and\nan optional fullscreen-expand toggle. Fullscreen promotes the same host\nelement in place (a CSS state, not a clone/portal), so slotted content\n(a chart, a running simulation, scroll position) survives the transition.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| (default) | The panel body. |\n| `actions` | Header action controls, rendered before the collapse/expand buttons. |\n| `collapse-icon` | Overrides the built-in chevron glyph inside the collapse/expand toggle button entirely, via the platform's own slot-fallback-content mechanism (same convention as `<lr-tool-call-chip>`'s `icon` slot): whatever is assigned wins, otherwise the default chevron renders. Only meaningful while `collapsible`. |\n| `fullscreen-icon` | Overrides the built-in expand/close glyph inside the fullscreen toggle button entirely, using the same mechanism -- the override replaces *both* the \"expand\" and \"exit fullscreen\" default icons, so a consumer supplying one is responsible for its own expand/exit distinction (e.g. by reading the `fullscreen` attribute). Only meaningful while `expandable`. |\n| `icon` | Optional leading icon in the title row. |\n| `label` | Rich label content (overrides the `label` attribute). |\n| `sublabel` | Rich sublabel content (overrides the `sublabel` attribute). |\n| `view-{id}` | Content for the view whose `WidgetView.id` matches `{id}`, rendered when `views` is non-empty. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `actions` | The wrapper around the `actions` slot. |\n| `backdrop` | The fullscreen scrim behind the panel. |\n| `base` | The panel root (dialog role + backdrop when fullscreen). |\n| `body` | The wrapper around the default slot (the panel body). |\n| `collapse-button` | The collapse/expand toggle button. |\n| `fullscreen-button` | The fullscreen toggle button. |\n| `header` | The header row containing the title, actions, and toggle buttons. |\n| `icon` | Wrapper around the `icon` slot. Hidden entirely when empty. |\n| `label` | The panel title text. |\n| `label-group` | Wrapper around the label and sublabel. |\n| `sublabel` | The panel subtitle text. |\n| `title` | The wrapper around the label/sublabel. |\n| `view-icon` | Decorative icon content inside a view toggle. |\n| `view-label` | Visible label text inside a view toggle. |\n| `view-toggle` | A single view toggle button. |\n| `view-toggles` | The header toggle-button group, only rendered when `views` is non-empty. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-widget-overlay-color` (default: `var(--lr-color-overlay)`) — The fullscreen scrim's color, applied to `[part=\"backdrop\"]`.\n- `--lr-widget-view-toggle-active-bg` (default: `var(--lr-color-brand-quiet)`) — Background of the pressed (`aria-pressed=\"true\"`) view toggle. Declared as an inline `var()` fallback (never on `:host`), so setting it on the element or an ancestor recolors only the active toggle without hijacking the library-wide `--lr-color-brand-quiet` token.\n- `--lr-widget-view-toggle-active-color` (default: `var(--lr-color-brand)`) — Text color of the pressed view toggle.\n- `--lr-widget-fullscreen-inset` (default: `max(var(--lr-space-l), var(--lr-safe-area-top)) max(var(--lr-space-l), var(--lr-safe-area-inline-end)) max(var(--lr-space-l), var(--lr-safe-area-bottom)) max(var(--lr-space-l), var(--lr-safe-area-inline-start))`) — The `inset` applied to `[part=\"base\"]` while `fullscreen`. Also set inline from the `fullscreen-inset` attribute.\n- `--lr-widget-backdrop-inset` (default: `var(--lr-widget-fullscreen-inset)`) — The `inset` applied to `[part=\"backdrop\"]`, so the scrim can be pulled back independently of the panel. Also set inline from the `backdrop-inset` attribute (falling back to `fullscreen-inset`). `fullscreen-inset` overrides the default `var(--lr-space-l)` inset applied to `[part=\"base\"]` and `[part=\"backdrop\"]` while fullscreen (e.g. `\"0 0 0 240px\"` to leave a persistent sidebar visible). `compact` tightens header/body padding — same convention as `lr-empty`'s `compact`."
|
|
15314
16511
|
},
|
|
15315
16512
|
"attributes": [
|
|
15316
16513
|
{
|
|
@@ -15324,7 +16521,7 @@
|
|
|
15324
16521
|
"name": "backdrop-inset",
|
|
15325
16522
|
"description": {
|
|
15326
16523
|
"kind": "markdown",
|
|
15327
|
-
"value": "Overrides the fullscreen *backdrop*'s own inset independent of `fullscreen-inset` -- e.g.\n`\"0\"` to dim the full viewport-to-panel-edge region while the panel itself keeps a narrower\n`fullscreen-inset`. Unset (the default) falls back to `fullscreen-inset`, i.e. today's exact\ncoupled behavior.\n\nType: `string` \nDefault: `
|
|
16524
|
+
"value": "Overrides the fullscreen *backdrop*'s own inset independent of `fullscreen-inset` -- e.g.\n`\"0\"` to dim the full viewport-to-panel-edge region while the panel itself keeps a narrower\n`fullscreen-inset`. Unset (the default) falls back to `fullscreen-inset`, i.e. today's exact\ncoupled behavior.\n\nType: `string` \nDefault: `\"\"`"
|
|
15328
16525
|
}
|
|
15329
16526
|
},
|
|
15330
16527
|
{
|
|
@@ -15366,14 +16563,14 @@
|
|
|
15366
16563
|
"name": "fullscreen-inset",
|
|
15367
16564
|
"description": {
|
|
15368
16565
|
"kind": "markdown",
|
|
15369
|
-
"value": "Raw CSS `inset` shorthand applied to the fullscreen panel and backdrop instead of the default\n`var(--lr-space-l)` on every side — e.g. `\"0 0 0 240px\"` to leave a 240px persistent sidebar\nvisible while fullscreen.\n\nType: `string` \nDefault: `
|
|
16566
|
+
"value": "Raw CSS `inset` shorthand applied to the fullscreen panel and backdrop instead of the default\n`var(--lr-space-l)` on every side — e.g. `\"0 0 0 240px\"` to leave a 240px persistent sidebar\nvisible while fullscreen.\n\nType: `string` \nDefault: `\"\"`"
|
|
15370
16567
|
}
|
|
15371
16568
|
},
|
|
15372
16569
|
{
|
|
15373
16570
|
"name": "label",
|
|
15374
16571
|
"description": {
|
|
15375
16572
|
"kind": "markdown",
|
|
15376
|
-
"value": "Type: `string` \nDefault: `
|
|
16573
|
+
"value": "Type: `string` \nDefault: `\"\"`"
|
|
15377
16574
|
}
|
|
15378
16575
|
},
|
|
15379
16576
|
{
|
|
@@ -15383,11 +16580,18 @@
|
|
|
15383
16580
|
"value": "Optional locale override. Otherwise the nearest `locale`/`lang` ancestor is used.\n\nType: `string` \nDefault: `''`"
|
|
15384
16581
|
}
|
|
15385
16582
|
},
|
|
16583
|
+
{
|
|
16584
|
+
"name": "storage-key",
|
|
16585
|
+
"description": {
|
|
16586
|
+
"kind": "markdown",
|
|
16587
|
+
"value": "Persists `collapsed` to `localStorage` across reloads when set. Namespaced as\n`lr-widget:${storageKey}` -- mirrors `lr-app-rail`'s/`lr-table`'s identical `storage-key`\npattern. Unset (the default) touches storage not at all.\n\nType: `string | undefined`"
|
|
16588
|
+
}
|
|
16589
|
+
},
|
|
15386
16590
|
{
|
|
15387
16591
|
"name": "sublabel",
|
|
15388
16592
|
"description": {
|
|
15389
16593
|
"kind": "markdown",
|
|
15390
|
-
"value": "Type: `string` \nDefault: `
|
|
16594
|
+
"value": "Type: `string` \nDefault: `\"\"`"
|
|
15391
16595
|
}
|
|
15392
16596
|
}
|
|
15393
16597
|
]
|
|
@@ -15412,7 +16616,7 @@
|
|
|
15412
16616
|
"name": "lr-word-cloud",
|
|
15413
16617
|
"description": {
|
|
15414
16618
|
"kind": "markdown",
|
|
15415
|
-
"value": "`<lr-word-cloud>` — a zero-dependency SVG word/tag cloud. First-party\ninvention (no Web Awesome equivalent). Each word's rendered size is scaled\nfrom its `weight` and placed via an outward Archimedean-spiral search (the\nstandard word-cloud heuristic: heaviest words placed first, each one\nspiraling out from the center until it clears every word already placed).\n\nUnlike sibling `lr-sparkline`/`lr-heatmap` (one `role=\"img\"` glyph\nstanding in for an aggregate value), the individual words here are the\nmeaningful interactive content — but with up to `MAX_WORDS` of them, making\nevery single one its own tab stop would be a poor keyboard experience.\nInstead, like `lr-heatmap`'s cells, the whole `[part=\"svg\"]` is one tab\nstop with roving arrow-key focus (Home/End jump to the first/last word,\nEnter/Space activates the focused one), a drawn `[part=\"focus-ring\"]`, and\na visually-hidden `aria-live=\"polite\"` status announcement. The SVG focus\ntarget carries the group role and accessible name so the semantics follow\nthe element a keyboard user actually focuses.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The word-cloud wrapper. |\n| `empty` | The empty-state message. |\n| `focus-ring` | The keyboard focus ring. |\n| `live-region` | The visually hidden announcement region. |\n| `svg` | The word-cloud SVG. |\n| `word` | A rendered word. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-word-cloud-color-1` (default: `var(--lr-color-brand)`) — First entry of the default categorical palette.\n- `--lr-word-cloud-color-2` (default: `var(--lr-color-success)`) — Second entry of the default categorical palette.\n- `--lr-word-cloud-color-3` (default: `var(--lr-color-warning)`) — Third entry of the default categorical palette.\n- `--lr-word-cloud-color-4` (default: `var(--lr-color-danger)`) — Fourth entry of the default categorical palette.\n- `--lr-word-cloud-color-5` (default: `var(--lr-color-chart-1)`) — Fifth entry of the default categorical palette.\n- `--lr-word-cloud-color-6` (default: `var(--lr-color-chart-2)`) — Sixth entry of the default categorical palette.\n- `--lr-word-cloud-color-7` (default: `var(--lr-color-chart-3)`) — Seventh entry of the default categorical palette.\n- `--lr-word-cloud-color-8` (default: `var(--lr-color-chart-4)`) — Eighth entry of the default categorical palette."
|
|
16619
|
+
"value": "`<lr-word-cloud>` — a zero-dependency SVG word/tag cloud. First-party\ninvention (no Web Awesome equivalent). Each word's rendered size is scaled\nfrom its `weight` and placed via an outward Archimedean-spiral search (the\nstandard word-cloud heuristic: heaviest words placed first, each one\nspiraling out from the center until it clears every word already placed).\n\nUnlike sibling `lr-sparkline`/`lr-heatmap` (one `role=\"img\"` glyph\nstanding in for an aggregate value), the individual words here are the\nmeaningful interactive content — but with up to `MAX_WORDS` of them, making\nevery single one its own tab stop would be a poor keyboard experience.\nInstead, like `lr-heatmap`'s cells, the whole `[part=\"svg\"]` is one tab\nstop with roving arrow-key focus (Home/End jump to the first/last word,\nEnter/Space activates the focused one), a drawn `[part=\"focus-ring\"]`, and\na visually-hidden `aria-live=\"polite\"` status announcement. The SVG focus\ntarget carries the group role and accessible name so the semantics follow\nthe element a keyboard user actually focuses.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The word-cloud wrapper. |\n| `empty` | The empty-state message. |\n| `focus-ring` | The keyboard focus ring. |\n| `legend` | The optional color key below the cloud. |\n| `legend-item` | One named color entry. |\n| `legend-label` | The visible legend label. |\n| `legend-swatch` | The color swatch for a legend entry. |\n| `live-region` | The visually hidden announcement region. |\n| `svg` | The word-cloud SVG. |\n| `word` | A rendered word. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-word-cloud-color-1` (default: `var(--lr-color-brand)`) — First entry of the default categorical palette.\n- `--lr-word-cloud-color-2` (default: `var(--lr-color-success)`) — Second entry of the default categorical palette.\n- `--lr-word-cloud-color-3` (default: `var(--lr-color-warning)`) — Third entry of the default categorical palette.\n- `--lr-word-cloud-color-4` (default: `var(--lr-color-danger)`) — Fourth entry of the default categorical palette.\n- `--lr-word-cloud-color-5` (default: `var(--lr-color-chart-1)`) — Fifth entry of the default categorical palette.\n- `--lr-word-cloud-color-6` (default: `var(--lr-color-chart-2)`) — Sixth entry of the default categorical palette.\n- `--lr-word-cloud-color-7` (default: `var(--lr-color-chart-3)`) — Seventh entry of the default categorical palette.\n- `--lr-word-cloud-color-8` (default: `var(--lr-color-chart-4)`) — Eighth entry of the default categorical palette."
|
|
15416
16620
|
},
|
|
15417
16621
|
"attributes": [
|
|
15418
16622
|
{
|
|
@@ -15449,6 +16653,13 @@
|
|
|
15449
16653
|
"kind": "markdown",
|
|
15450
16654
|
"value": "`sqrt` compresses the weight->font-size mapping so one heavy word doesn't dwarf the rest.\n\nType: `WordCloudScale` \nDefault: `'linear'`"
|
|
15451
16655
|
}
|
|
16656
|
+
},
|
|
16657
|
+
{
|
|
16658
|
+
"name": "show-legend",
|
|
16659
|
+
"description": {
|
|
16660
|
+
"kind": "markdown",
|
|
16661
|
+
"value": "Renders the supplied or derived legend entries below the cloud. It is non-interactive and\ndoes not alter word activation or palette selection.\n\nType: `boolean` \nDefault: `false`"
|
|
16662
|
+
}
|
|
15452
16663
|
}
|
|
15453
16664
|
]
|
|
15454
16665
|
},
|