@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/llms-full.txt
CHANGED
|
@@ -7,7 +7,7 @@ Agent UI. Selected components retain documented Web Awesome-compatible public na
|
|
|
7
7
|
prefix to make migration easier, but Lyra has its own implementation, design tokens, localization
|
|
8
8
|
runtime, RTL behavior, and release surface. It has no runtime dependency on either project.
|
|
9
9
|
|
|
10
|
-
**This file is the whole catalog concatenated —
|
|
10
|
+
**This file is the whole catalog concatenated — several hundred thousand tokens.**
|
|
11
11
|
Read it end to end only if you genuinely need everything. Otherwise:
|
|
12
12
|
|
|
13
13
|
| To… | Read |
|
|
@@ -39,9 +39,9 @@ family and entry point.
|
|
|
39
39
|
- **Media, files & maps** — 18 tags in `components/media/`
|
|
40
40
|
- **Charts** — 12 tags in `components/charts/`
|
|
41
41
|
- **Document & file viewers** — 22 tags in `components/viewers/`
|
|
42
|
-
- **Conversation & chat UI** —
|
|
43
|
-
- **Agent tooling, tool calls & evaluation** —
|
|
44
|
-
- **Retrieval, knowledge graph & grounding** —
|
|
42
|
+
- **Conversation & chat UI** — 33 tags in `components/conversation/`
|
|
43
|
+
- **Agent tooling, tool calls & evaluation** — 35 tags in `components/agent-tools/`
|
|
44
|
+
- **Retrieval, knowledge graph & grounding** — 30 tags in `components/retrieval/`
|
|
45
45
|
- **Reference tables** — design tokens (`llms/tokens.md`), optional peers (`llms/peers.md`), `wa-*`/`sl-*` migration (`llms/migration.md`)
|
|
46
46
|
|
|
47
47
|
---
|
|
@@ -58,7 +58,7 @@ import '@aceshooting/lyra-ui/components/forms/combobox/combobox.js'; // register
|
|
|
58
58
|
import '@aceshooting/lyra-ui/components/data/table/table.js'; // registers <lr-table>
|
|
59
59
|
```
|
|
60
60
|
|
|
61
|
-
`llms/index.md` lists the exact path for
|
|
61
|
+
`llms/index.md` lists the exact path for every tag. A wrong or missing family segment is a hard
|
|
62
62
|
module-resolution failure, not a silent no-op — `exports` maps `./components/*` straight onto
|
|
63
63
|
`./dist/components/*`.
|
|
64
64
|
|
|
@@ -71,8 +71,22 @@ module-resolution failure, not a silent no-op — `exports` maps `./components/*
|
|
|
71
71
|
`lr-bar-chart`, `lr-pie-chart`, `lr-doughnut-chart`, `lr-radar-chart`, `lr-polar-area-chart`,
|
|
72
72
|
`lr-bubble-chart`, `lr-scatter-chart`), `lr-box-plot`, `lr-histogram`, `lr-map`, `lr-graph`,
|
|
73
73
|
`lr-knowledge-graph-explorer`, and `lr-geojson-view`. Those always need their own subpath import.
|
|
74
|
-
The barrel also re-exports
|
|
75
|
-
|
|
74
|
+
The barrel also re-exports a broad compatibility surface of commonly used classes, helpers, and
|
|
75
|
+
types, but it is not an exhaustive promise that every component-owned type or future export is
|
|
76
|
+
present. It is the one import that defeats tree-shaking — prefer the owning component entry in
|
|
77
|
+
application code, both for the smallest bundle and the complete contract of that component.
|
|
78
|
+
- **Document anchor/highlight types.** The granular document-viewer entry owns and exports
|
|
79
|
+
`LyraAnchor`, `LyraAnchorKind`, `LyraHighlight`, `LyraHighlightTone`,
|
|
80
|
+
`AnchorTargetCapabilities`, `HighlightActivateDetail`, `TextSelectDetail`, and
|
|
81
|
+
`AnchorResultDetail`:
|
|
82
|
+
```ts
|
|
83
|
+
import type {
|
|
84
|
+
LyraAnchor,
|
|
85
|
+
LyraHighlight,
|
|
86
|
+
AnchorTargetCapabilities,
|
|
87
|
+
} from '@aceshooting/lyra-ui/components/viewers/document-viewer/document-viewer.js';
|
|
88
|
+
```
|
|
89
|
+
Use that entry instead of depending on incidental root-barrel coverage.
|
|
76
90
|
- **`lr-flag`** registers from the barrel, but resolving a flag by `country`/`language` (rather than
|
|
77
91
|
a pre-resolved `src`) additionally needs
|
|
78
92
|
`import '@aceshooting/lyra-ui/components/media/flag/flag-peer.js';` once.
|
|
@@ -240,6 +254,98 @@ dark palette — that fallback applies only where no real `--lr-theme-*` value i
|
|
|
240
254
|
The token layer also sets `:host([hidden]) { display: none !important; }` and an inherited
|
|
241
255
|
`box-sizing: border-box` reset.
|
|
242
256
|
|
|
257
|
+
### Theme mode/accent runtime (`@aceshooting/lyra-ui/theme.js`)
|
|
258
|
+
|
|
259
|
+
Flipping the mode class/attribute above is something every app ends up hand-rolling — persist a
|
|
260
|
+
choice, apply it on load, avoid the flash of wrong theme before the app boots. `theme.js` is that
|
|
261
|
+
runtime, published as its own subpath: **zero dependencies, no Lit, no component imports, and no
|
|
262
|
+
side effects on import**, so an app can persist and apply a theme without pulling the component
|
|
263
|
+
graph into its first-paint bundle.
|
|
264
|
+
|
|
265
|
+
```ts
|
|
266
|
+
import { setLyraTheme, getLyraTheme } from '@aceshooting/lyra-ui/theme.js';
|
|
267
|
+
|
|
268
|
+
setLyraTheme({ mode: 'dark' }); // unspecified fields keep their current value
|
|
269
|
+
setLyraTheme({ accent: '#7c3aed' }); // mode stays 'dark'
|
|
270
|
+
getLyraTheme(); // → { mode: 'dark', accent: '#7c3aed' }
|
|
271
|
+
setLyraTheme({ mode: 'auto', accent: null }); // clears the override and the accent
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
- **`setLyraTheme({ mode?, accent? })`** persists to `localStorage['lyra-theme']`, applies to
|
|
275
|
+
`document.documentElement`, and dispatches `lr-theme-change` on `window` with
|
|
276
|
+
`detail: { mode, accent }`. Fields you omit keep their current value; pass `null` to clear the
|
|
277
|
+
accent. It **never throws** — when `localStorage` is unavailable (private browsing, quota, a
|
|
278
|
+
sandboxed iframe) it degrades to apply-without-persist, and the "fields you omit keep their
|
|
279
|
+
current value" rule still holds across calls in that state: the merge falls back to the last
|
|
280
|
+
theme applied in this session rather than to the default.
|
|
281
|
+
- **`getLyraTheme()`** returns `{ mode, accent }`, defaulting to `{ mode: 'auto', accent: null }`
|
|
282
|
+
when nothing is stored or the stored value is malformed. Storage is re-read on every call — no
|
|
283
|
+
in-memory cache — so a value written by another tab or a previous session is picked up cold.
|
|
284
|
+
Where storage is unreadable or unwritable it reports the theme last applied, so the return value
|
|
285
|
+
always describes what the document is actually showing and a toggle UI bound to it stays in sync.
|
|
286
|
+
- **`mode`** is `'light' | 'dark' | 'auto'`. `'light'`/`'dark'` set **both `data-lr-theme`** (the
|
|
287
|
+
attribute `theme.css` actually keys its palette blocks on) **and `data-theme`** (the generic
|
|
288
|
+
attribute canvas-rendered components watch, so `lr-chart`/`lr-heatmap`/`lr-qr-code` repaint on
|
|
289
|
+
the switch rather than keeping stale colors — see `llms/components/lr-chart.md`). `'auto'`
|
|
290
|
+
removes both, which means **no override — not "follow the OS"**:
|
|
291
|
+
- **With `theme.css` imported** (the setup this section is nested under), its `:root` block sets
|
|
292
|
+
the full light palette unconditionally and that file ships no `prefers-color-scheme` block, so
|
|
293
|
+
`'auto'` renders **light** whatever the OS is set to.
|
|
294
|
+
- **Without `theme.css`**, no real `--lr-theme-*` value is set, so the token layer's
|
|
295
|
+
`prefers-color-scheme: dark` fallback described above does apply and bare components follow
|
|
296
|
+
the OS.
|
|
297
|
+
|
|
298
|
+
To follow the OS *alongside* `theme.css`, resolve the preference yourself and pass a concrete
|
|
299
|
+
mode — `setLyraTheme` deliberately does no `matchMedia` work of its own:
|
|
300
|
+
```ts
|
|
301
|
+
const os = matchMedia('(prefers-color-scheme: dark)');
|
|
302
|
+
const sync = () => setLyraTheme({ mode: os.matches ? 'dark' : 'light' });
|
|
303
|
+
sync();
|
|
304
|
+
os.addEventListener('change', sync);
|
|
305
|
+
```
|
|
306
|
+
- **`accent`** is written to `--lr-theme-accent` as an inline custom property on the root element.
|
|
307
|
+
This is a **hook for your CSS, not a token the library reads** — no lyra-ui component consumes
|
|
308
|
+
`--lr-theme-accent`. Point the real inputs at it to make it retint anything, **writing one rule
|
|
309
|
+
per mode**:
|
|
310
|
+
```css
|
|
311
|
+
:root { --lr-theme-color-brand-fill-loud: var(--lr-theme-accent, #0969da); }
|
|
312
|
+
.lr-dark,
|
|
313
|
+
[data-lr-theme='dark'] { --lr-theme-color-brand-fill-loud: var(--lr-theme-accent, #4ea0f0); }
|
|
314
|
+
```
|
|
315
|
+
**Each arm's fallback must carry that mode's own value.** A single `:root` rule flattens both
|
|
316
|
+
modes to one color whenever the accent is unset (`accent: null`, the default): `:root` and
|
|
317
|
+
`[data-lr-theme='dark']` have equal specificity and both match `<html>` — the element
|
|
318
|
+
`setLyraTheme` writes `data-lr-theme` onto — so a consumer stylesheet loaded after `theme.css`
|
|
319
|
+
wins the tie on source order and pins the light-mode blue in dark mode. Copy each fallback from
|
|
320
|
+
the matching palette block in `theme.css` (`#0969da` light / `#4ea0f0` dark here).
|
|
321
|
+
|
|
322
|
+
Because that is a `--lr-theme-*` input, it reaches every nested shadow root — see "Where an
|
|
323
|
+
override actually reaches" above for why setting a `--lr-*` token instead would not.
|
|
324
|
+
|
|
325
|
+
**No-flash bootstrap.** `lyraThemeBootstrap` is a self-contained IIFE **string** (not a function),
|
|
326
|
+
meant to be inlined into a `<script>` in `<head>` **before any stylesheet**, so the persisted theme
|
|
327
|
+
is on the root element before first paint. It reads `localStorage['lyra-theme']`.
|
|
328
|
+
`createLyraThemeBootstrap({ storageKey })` returns the same kind of string for an application-owned
|
|
329
|
+
key, so an existing persistence layer can reuse the pre-paint half independently of
|
|
330
|
+
`setLyraTheme()`/`getLyraTheme()`. Calling the factory with no options returns the same string as
|
|
331
|
+
`lyraThemeBootstrap`. The result is a string precisely so this can happen in an unbundled
|
|
332
|
+
`<script>` context without shipping or parsing the module:
|
|
333
|
+
|
|
334
|
+
```html
|
|
335
|
+
<head>
|
|
336
|
+
<script>/* server-inlines lyraThemeBootstrap here */</script>
|
|
337
|
+
<link rel="stylesheet" href="/theme.css" />
|
|
338
|
+
</head>
|
|
339
|
+
```
|
|
340
|
+
|
|
341
|
+
Both variants expect a stored `{ mode, accent }` record, apply the same two attributes and
|
|
342
|
+
`--lr-theme-accent`, and swallow any error — malformed storage or a blocked `localStorage` leaves
|
|
343
|
+
the document untouched rather than throwing before your app loads.
|
|
344
|
+
|
|
345
|
+
**This runtime does no color math.** It stores and applies whatever accent string you give it; it
|
|
346
|
+
does not validate the value, compute a palette from it, or check contrast against any surface.
|
|
347
|
+
Verifying that an accent meets WCAG contrast against the light *and* dark palettes is yours.
|
|
348
|
+
|
|
243
349
|
## Localization: `locale`, `strings`, and the locale runtime
|
|
244
350
|
|
|
245
351
|
Every built-in string — button labels, accessible names, descriptions, validation messages, status
|
|
@@ -301,13 +407,29 @@ instead of hand-rolling state shapes — they bind field-for-field onto the comp
|
|
|
301
407
|
adapter layer:
|
|
302
408
|
|
|
303
409
|
```ts
|
|
304
|
-
import
|
|
410
|
+
import {
|
|
411
|
+
createAgentStreamState,
|
|
412
|
+
reduceAgentStream,
|
|
413
|
+
adaptAiSdkStream,
|
|
414
|
+
adaptAgUiEvents,
|
|
415
|
+
adaptA2UiSurface,
|
|
416
|
+
type AgentRun,
|
|
417
|
+
type ChatMessage,
|
|
418
|
+
type MessagePart,
|
|
419
|
+
type RetrievalChunk,
|
|
420
|
+
} from '@aceshooting/lyra-ui/ai';
|
|
305
421
|
```
|
|
306
422
|
|
|
307
423
|
- **Run/step state** — `AgentStatusKind`, `AgentStatus`, `AgentStep`, `AgentRun`
|
|
308
|
-
- **Conversation** — `ChatMessage`, `ToolInvocation`
|
|
424
|
+
- **Conversation** — `ChatMessage`, ordered `MessagePart` variants, `ToolInvocation`
|
|
309
425
|
- **Documents & grounding** — `DocumentRef`, `Citation`, `RetrievalQuery`, `RetrievalChunk`,
|
|
310
|
-
`GroundingAssessment`
|
|
426
|
+
`RetrievalScoreBreakdown`, `GroundedClaim`, `GroundingAssessment`, `DocumentLocator`
|
|
427
|
+
- **Streaming runtime** — `AgentStreamEvent`, `AgentStreamState`, `createAgentStreamState()`,
|
|
428
|
+
`reduceAgentStream()`, `reduceAgentStreamEvents()`; event ids make replay/duplicate delivery
|
|
429
|
+
deterministic, and JSON Patch application rejects prototype-mutating paths
|
|
430
|
+
- **Protocol adapters** — `adaptAiSdkStream()`, `adaptAgUiEvents()`, and `adaptA2UiSurface()` map
|
|
431
|
+
structural provider events/documents onto the neutral runtime without pulling vendor SDKs into
|
|
432
|
+
the package
|
|
311
433
|
- **Event payloads** — `RunLifecycleEventDetail`, `RetrievalProgressEventDetail`,
|
|
312
434
|
`CitationSelectEventDetail`, `ToolApprovalEventDetail`, `CancelEventDetail`, `RetryEventDetail`,
|
|
313
435
|
`ExportEventDetail`
|
|
@@ -318,15 +440,35 @@ feeds on `lr-chat-message`, `lr-tool-call-chip`, `lr-tool-result-view`, `lr-sour
|
|
|
318
440
|
convention. The types are structural and provider-agnostic: map any vendor's payload onto them once,
|
|
319
441
|
at the edge.
|
|
320
442
|
|
|
443
|
+
### Task-first AI composition guide
|
|
444
|
+
|
|
445
|
+
- **Render one model response:** `lr-message-parts`; use `lr-chat-message` only when the message
|
|
446
|
+
shell (avatar, author, actions) is also needed.
|
|
447
|
+
- **Build the main prompt affordance:** `lr-prompt-input`; it already composes attachments,
|
|
448
|
+
model/voice/source controls, mentions/commands, and `lr-prompt-queue`.
|
|
449
|
+
- **Run an agent workspace:** `lr-agent-workspace` + `reduceAgentStream()`; add
|
|
450
|
+
`lr-subagent-panel` for nested runs and `lr-mcp-app` only for executable MCP App resources.
|
|
451
|
+
- **Show grounded output:** `lr-rag-answer`; pass claim records for `lr-claim-evidence`, use
|
|
452
|
+
`lr-retrieval-compare` for retrieval tuning and `lr-rag-eval-dashboard` for run metrics.
|
|
453
|
+
- **Develop prompts/tools:** `lr-prompt-studio` and `lr-schema-viewer`.
|
|
454
|
+
- **Build voice sessions:** `lr-realtime-session`; it composes the existing audio visualizer,
|
|
455
|
+
push-to-talk control, and transcript feed while leaving transport ownership with the host.
|
|
456
|
+
|
|
457
|
+
Family registration entry points are additive: importing
|
|
458
|
+
`@aceshooting/lyra-ui/components/conversation`, `/agent-tools`, or `/retrieval` registers and
|
|
459
|
+
exports that complete family. Granular component entry points remain the smallest bundles and are
|
|
460
|
+
preferred in production.
|
|
461
|
+
|
|
321
462
|
## Optional peer dependencies
|
|
322
463
|
|
|
323
|
-
All 26 peers are optional and
|
|
324
|
-
generated component → peer table.
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
`
|
|
464
|
+
All 26 peers are optional and their implementations are loaded on demand; nothing is imported
|
|
465
|
+
eagerly. `llms/peers.md` is the generated component → peer table. Loading and failure UI is
|
|
466
|
+
component-specific: viewer sections document their localized loading/error/notice states, while
|
|
467
|
+
`lr-include` preserves its light-DOM fallback/live region and emits `lr-include-error` when its
|
|
468
|
+
sanitizer is unavailable. Some components additionally issue a deduped warning. Consult the owning
|
|
469
|
+
component section instead of assuming every peer user renders an `<lr-skeleton>` or the same
|
|
470
|
+
degraded state. `lr-phone-input` is the exception to dynamic peer import: it takes a consumer-built
|
|
471
|
+
adapter (`loadLibphonenumberAdapter()`) rather than importing `libphonenumber-js` itself.
|
|
330
472
|
|
|
331
473
|
## Framework integration
|
|
332
474
|
|
|
@@ -545,14 +687,23 @@ shared `FormAssociated` mixin — see gotchas).
|
|
|
545
687
|
shown when `maxRender` caps the row list; `{n}` is replaced with the hidden count)
|
|
546
688
|
- `filter: OptionFilter | null = null` (attribute: false — `(option, query) => boolean`; default
|
|
547
689
|
matches `label`/`searchText` case-insensitively; ignored while `source` is set)
|
|
548
|
-
- `source: ComboboxSource | null = null` (attribute: false — `(query: string
|
|
549
|
-
Promise<ComboboxSourceRow[]>`; when set, replaces the light-DOM `<lr-option>`
|
|
550
|
-
lookup, debounced
|
|
551
|
-
|
|
552
|
-
|
|
690
|
+
- `source: ComboboxSource | null = null` (attribute: false — `(query: string, options: { signal:
|
|
691
|
+
AbortSignal }) => Promise<ComboboxSourceRow[]>`; when set, replaces the light-DOM `<lr-option>`
|
|
692
|
+
list with an async lookup, debounced by `sourceDelay` ms after each keystroke and re-run on
|
|
693
|
+
clear/pick. Forward `options.signal` to `fetch(url, { signal })` to cancel the request when a
|
|
694
|
+
newer query supersedes it or the element disconnects. `loadingText` is shown while a call is in
|
|
695
|
+
flight; a stale in-flight call that resolves after a newer one (or after disconnect) is dropped
|
|
696
|
+
via a monotonic token. The exported type requires the `options` parameter; an existing
|
|
697
|
+
one-parameter `(query) => …` function remains assignable under TypeScript's ordinary function
|
|
698
|
+
parameter compatibility, but consumers that need cancellation should accept and forward
|
|
699
|
+
`options.signal`.)
|
|
700
|
+
- `sourceDelay: number = 200` (attribute `source-delay` — debounce in ms between the last keystroke
|
|
701
|
+
and the `source` call; `0` fires on every keystroke. Sanitized to a finite non-negative duration,
|
|
702
|
+
falling back to `200` for a non-finite value)
|
|
553
703
|
- `maxRender: number = 200` (attribute `max-render` — caps how many rows render at once, always
|
|
554
704
|
keeping the current selection visible even if it's outside the cap; the excess renders as one
|
|
555
|
-
`overflowText` row instead of being dropped silently
|
|
705
|
+
`overflowText` row instead of being dropped silently. See "Large option lists" below for how to
|
|
706
|
+
size it, and when `source` is the better answer)
|
|
556
707
|
- `value: string | string[]` — a getter/setter: plain `string` in single mode, `string[]` in
|
|
557
708
|
`multiple` mode
|
|
558
709
|
- `selectedRows: ComboboxSourceRow[]` (read-only getter) — structured rows for the current
|
|
@@ -573,11 +724,16 @@ The light-DOM `<lr-option>` path normalizes its supported label/sub/dot/group fi
|
|
|
573
724
|
internal row model.
|
|
574
725
|
|
|
575
726
|
**Events:** typing in the filter exposes the original bubbling/composed, non-cancelable `InputEvent`
|
|
576
|
-
as exactly one host `input` event and does not fire `change`. An actual user
|
|
577
|
-
pointer or keyboard selection, multiple-value toggle, tag/Backspace removal, or
|
|
578
|
-
one bubbling/composed, non-cancelable
|
|
579
|
-
of `change
|
|
580
|
-
|
|
727
|
+
as exactly one host `input` event (no `value` detail) and does not fire `change`. An actual user
|
|
728
|
+
selection mutation — pointer or keyboard selection, multiple-value toggle, tag/Backspace removal, or
|
|
729
|
+
clear — emits exactly one bubbling/composed, non-cancelable `input` `CustomEvent`, immediately
|
|
730
|
+
followed by the same shape of `change`, then a prefixed `lr-change` alias. All three carry
|
|
731
|
+
`detail: { value }` — the new committed selection (a string in single mode, a `string[]` in
|
|
732
|
+
`multiple` mode). `lr-change` mirrors `<lr-checkbox>`'s namespaced alias; subscribe to it when you
|
|
733
|
+
want a `lr-`-prefixed event, or to the native-style `input`/`change` for parity with a native
|
|
734
|
+
control. Re-picking the current single value and programmatic/default/reset/restore writes are
|
|
735
|
+
silent (including on `lr-change`). The clear button emits one `lr-clear` after its
|
|
736
|
+
`input`/`change`/`lr-change` triple.
|
|
581
737
|
`lr-filter` (`detail: { value: string }`) reports the in-progress filter text on every user-driven
|
|
582
738
|
keystroke — the live as-you-typed search string, deliberately *not* `value`, which is the committed
|
|
583
739
|
selection. It is the supported way to read that text; reaching into the shadow root for
|
|
@@ -594,8 +750,8 @@ The internal input's `focus` and `blur` are re-dispatched as bubbling, composed
|
|
|
594
750
|
committed selection and an in-progress filter query, so the button renders whenever either has
|
|
595
751
|
something to clear, and one press clears both:
|
|
596
752
|
|
|
597
|
-
- Clearing a selection emits `input`, then `change`, then `lr-clear` — and, if the
|
|
598
|
-
non-empty, `lr-filter` with an empty `value`.
|
|
753
|
+
- Clearing a selection emits `input`, then `change`, then `lr-change`, then `lr-clear` — and, if the
|
|
754
|
+
query was also non-empty, `lr-filter` with an empty `value`.
|
|
599
755
|
- A **query-only** clear (nothing selected, just typed text) emits `lr-filter` with an empty
|
|
600
756
|
`value` and deliberately **no** `change` and **no** `lr-clear`. There was no selection
|
|
601
757
|
transition to report, so announcing one would be a lie. Don't listen for `lr-clear` to detect
|
|
@@ -605,6 +761,32 @@ something to clear, and one press clears both:
|
|
|
605
761
|
selected label rather than the query, so a stale query alone never surfaces a button offering to
|
|
606
762
|
clear text the user cannot see.
|
|
607
763
|
|
|
764
|
+
**Large option lists: sizing `maxRender`, and why the listbox is not windowed.** Every row that
|
|
765
|
+
survives the filter and fits under `maxRender` is a real DOM element — the listbox renders its rows
|
|
766
|
+
in full rather than recycling a small window of them across a scroll. That is a deliberate
|
|
767
|
+
accessibility constraint, not an omission: the filter input carries `aria-activedescendant`, which
|
|
768
|
+
is an **IDREF**, and an IDREF only resolves within its own tree scope. Moving the rows into the
|
|
769
|
+
library's windowing primitive (`<lr-virtual-list>`) would place them one shadow root deeper than the
|
|
770
|
+
input that has to point at them, where neither the attribute nor its `ariaActiveDescendantElement`
|
|
771
|
+
element-reflection replacement can reach — element reflection resolves same-root or upward only. So
|
|
772
|
+
`<lr-virtual-list>` stays `role="list"`/`role="listitem"` and is the right tool for feeds and
|
|
773
|
+
viewers, not for a listbox whose active row must stay addressable.
|
|
774
|
+
|
|
775
|
+
What that means in practice:
|
|
776
|
+
|
|
777
|
+
- **Up to a few hundred rows, raise `maxRender` and move on.** A few hundred flex rows is an
|
|
778
|
+
unremarkable amount of DOM; a country, currency, or time-zone list (typically 200–450 entries)
|
|
779
|
+
renders comfortably with `max-render` set to cover it. The cap exists to bound pathological
|
|
780
|
+
cases, not to make lists of that size expensive.
|
|
781
|
+
- **Past roughly a thousand rows, reach for `source` instead of a larger cap.** An async source
|
|
782
|
+
narrows the candidate set before it ever becomes DOM, which is a categorically better trade than
|
|
783
|
+
rendering everything and asking the browser to lay it out. Pair it with `sourceDelay` to debounce.
|
|
784
|
+
- **Leave the overflow row doing its job.** When the cap does bite, the excess collapses into one
|
|
785
|
+
`overflowText` row (default `"+{n} more — refine your search"`) rather than disappearing
|
|
786
|
+
silently, and the current selection is always kept visible even when it falls outside the cap.
|
|
787
|
+
Suppressing that row by setting `maxRender` far above the real list size trades a useful "keep
|
|
788
|
+
typing" affordance for layout work no user asked for.
|
|
789
|
+
|
|
608
790
|
**Slots:** default (`<lr-option>` children), `label`, `hint`, `error` (overrides the `errorText`
|
|
609
791
|
attribute when provided), plus two adornment slots:
|
|
610
792
|
- `start` — content at the inline-start of the trigger row, before the selected-value tags and the
|
|
@@ -634,6 +816,14 @@ a hovered or keyboard-active `[part='option']` row — the same per-component in
|
|
|
634
816
|
`lr-select`'s identical `--lr-select-option-active-bg` uses, so a consumer can retheme just this
|
|
635
817
|
row state without hijacking the shared `--lr-color-brand-quiet` token library-wide.
|
|
636
818
|
|
|
819
|
+
The currently-**selected** row (`[part='option'][aria-selected='true']`) has its own matching set:
|
|
820
|
+
`--lr-combobox-option-selected-bg` (default `transparent`), `--lr-combobox-option-selected-border`
|
|
821
|
+
and `--lr-combobox-option-selected-color` (both default `var(--lr-color-brand)`), and
|
|
822
|
+
`--lr-combobox-option-selected-font-weight` (default `var(--lr-font-weight-semibold)`) — the same
|
|
823
|
+
four-token indirection `lr-select`/`lr-model-select` already provide for their own selected row.
|
|
824
|
+
Like the active-bg knob these are inline `var()` fallbacks, not declared on `:host`, so a consumer
|
|
825
|
+
can retheme the selected row without hijacking `--lr-color-brand` library-wide.
|
|
826
|
+
|
|
637
827
|
`--lr-combobox-trigger-height` pins an **exact** input-container height (both floors and caps it),
|
|
638
828
|
for pixel-matching an `<lr-input>` or `<lr-select>` in the same toolbar row. It is **undeclared by
|
|
639
829
|
default**, leaving `--lr-combobox-trigger-min-height` as a floor only and the row free to grow —
|
|
@@ -695,7 +885,7 @@ Session-history/autofill state is stored as a name-independent JSON string array
|
|
|
695
885
|
array restores the selection (single mode keeps its first entry); malformed or wrong-shape state
|
|
696
886
|
restores an empty selection. Restored state wins even when it arrives before the first option
|
|
697
887
|
collection, while `form.reset()` still returns to the declarative selected default. Restoration is
|
|
698
|
-
synchronous and fires no `input`/`change` event.
|
|
888
|
+
synchronous and fires no `input`/`change`/`lr-change` event.
|
|
699
889
|
|
|
700
890
|
**Known gotchas:**
|
|
701
891
|
- `with-clear` remains supported for compatibility, but new code should use the mirrored
|
|
@@ -723,6 +913,10 @@ synchronous and fires no `input`/`change` event.
|
|
|
723
913
|
`form.reset()` default itself is captured exclusively from that very first pass; a later pick, or
|
|
724
914
|
a later batch of newly-`selected` options, never redefines what a reset restores to.
|
|
725
915
|
|
|
916
|
+
**Additional API surface:**
|
|
917
|
+
|
|
918
|
+
- `part="tag-label"` — The wrapping/ellipsis-safe selected-tag label.
|
|
919
|
+
|
|
726
920
|
---
|
|
727
921
|
|
|
728
922
|
## `lr-select`
|
|
@@ -734,7 +928,8 @@ input: click/Enter/Space/ArrowDown opens it, and there's no typing-to-filter. Op
|
|
|
734
928
|
`<lr-option value>` children — the same element `<lr-combobox>` uses — reconciled the same way
|
|
735
929
|
combobox does, and the popup reuses `internal/positioner.ts` for placement.
|
|
736
930
|
Session-history/autofill restoration assigns the stored string through the same synchronous
|
|
737
|
-
value/form/validity path as a programmatic value write and does not emit `input` or
|
|
931
|
+
value/form/validity path as a programmatic value write and does not emit `input`, `change`, or
|
|
932
|
+
`lr-change`.
|
|
738
933
|
|
|
739
934
|
Single-select only, with no `filter`/`source`/`with-clear`/`max-options-visible`/`empty-text`/
|
|
740
935
|
`max-render`/`multiple` surface — reach for `<lr-combobox>` instead whenever any of those apply.
|
|
@@ -766,29 +961,29 @@ exactly like the multi-option case, until the trigger is actually activated.
|
|
|
766
961
|
single-option auto-commit behavior described above
|
|
767
962
|
- `value: string` — a getter/setter; always a single string (no `multiple` mode)
|
|
768
963
|
|
|
964
|
+
**Methods:** `focus(options?)`, `blur()`, and `click()` forward to the internal trigger button.
|
|
965
|
+
|
|
769
966
|
**Events:** `change` (native-style — selection changed), `input` (fired alongside `change` on every
|
|
770
|
-
selection change — a native `<select>` doesn't meaningfully distinguish the two either),
|
|
771
|
-
`lr-
|
|
967
|
+
selection change — a native `<select>` doesn't meaningfully distinguish the two either), and
|
|
968
|
+
`lr-change` (a prefixed compatibility alias fired after both, mirroring `<lr-checkbox>`'s
|
|
969
|
+
`lr-change`). All three carry `detail: { value: string }` (the new selection) and fire only on a
|
|
970
|
+
real change, never on a programmatic `value` write. Plus `lr-show`, `lr-hide`, and bubbling,
|
|
971
|
+
composed `focus`/`blur` events re-dispatched from the internal trigger.
|
|
772
972
|
|
|
773
973
|
**Slots:** default (`<lr-option>` children), `label`, `hint`, `error` (overrides the `errorText`
|
|
774
|
-
attribute when provided)
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
its `[part='trigger']` is a native `<button>`, and HTML's content model forbids interactive
|
|
779
|
-
descendants inside one — so the slot could only ever accept decorative content, a materially
|
|
780
|
-
different contract from the other three that would read as the same feature; and the trigger lays
|
|
781
|
-
out with `justify-content: space-between`, so injecting a leading element pushes the selected label
|
|
782
|
-
into the middle of the control instead of leaving it at the start. **Instead:** put a glyph in the
|
|
783
|
-
`label` slot, or compose the select into `<lr-control-group>` alongside the adornment.
|
|
974
|
+
attribute when provided), `start` (non-interactive adornment before the selected-value label), and
|
|
975
|
+
`end` (non-interactive adornment after the label and before the expand icon). The adornments live
|
|
976
|
+
inside the native trigger `<button>`, so never place links, buttons, inputs, or other interactive
|
|
977
|
+
content in either slot.
|
|
784
978
|
|
|
785
979
|
When hint/error content is present, the trigger's `aria-describedby` references stable shadow-local
|
|
786
980
|
IDs for both messages (error first, then hint), so the visible supporting text is part of the
|
|
787
981
|
control's accessible description.
|
|
788
982
|
|
|
789
|
-
**CSS parts:** `form-control`, `form-control-label`, `trigger`, `
|
|
790
|
-
row emitted inside the listbox whenever an option's `group` differs from
|
|
791
|
-
presentational `<div>`, not a `role="group"`; options with an empty `group`
|
|
983
|
+
**CSS parts:** `form-control`, `form-control-label`, `trigger`, `start`, `end`, `listbox`,
|
|
984
|
+
`group-label` (a heading row emitted inside the listbox whenever an option's `group` differs from
|
|
985
|
+
the previous one's — a presentational `<div>`, not a `role="group"`; options with an empty `group`
|
|
986
|
+
get no heading),
|
|
792
987
|
`option`, `option-dot` (the leading status dot, when a row's `dotColor` is set), `option-label`,
|
|
793
988
|
`option-sub` (a row's secondary line, when `sub` is set), `expand-icon`, `error`, `hint`
|
|
794
989
|
|
|
@@ -820,6 +1015,15 @@ ancestor is never shadowed — retheme just this row state without hijacking the
|
|
|
820
1015
|
`--lr-color-brand-quiet` token every other component's own hover/active state also reads. Same
|
|
821
1016
|
knob `lr-combobox`'s own `--lr-combobox-option-active-bg` provides.
|
|
822
1017
|
|
|
1018
|
+
The currently-**selected** row (`[part='option'][aria-selected='true']`) has its own matching set:
|
|
1019
|
+
`--lr-select-option-selected-bg` (default `transparent`), `--lr-select-option-selected-border` and
|
|
1020
|
+
`--lr-select-option-selected-color` (both default `var(--lr-color-brand)`), and
|
|
1021
|
+
`--lr-select-option-selected-font-weight` (default `var(--lr-font-weight-semibold)`). Like the
|
|
1022
|
+
active-bg knob these are inline `var()` fallbacks, not declared on `:host`, so a consumer can
|
|
1023
|
+
retheme the selected row without hijacking `--lr-color-brand` library-wide. Note the shadow-parts
|
|
1024
|
+
spec forbids an attribute selector after `::part()` — `::part(option)[aria-selected='true']` is
|
|
1025
|
+
invalid CSS and never matches — which is exactly why these tokens exist.
|
|
1026
|
+
|
|
823
1027
|
**Optional peer deps:** none.
|
|
824
1028
|
|
|
825
1029
|
```html
|
|
@@ -944,9 +1148,11 @@ Text field + calendar popover, **form-associated** via the shared `FormAssociate
|
|
|
944
1148
|
`<input>`'s computed accessible name; wins over `label`/`placeholder`/the localized `date`
|
|
945
1149
|
fallback in that order. Attribute-reflects from a host-level `aria-label` so a plain-markup
|
|
946
1150
|
consumer gets ARIA-name forwarding without setting a JS property.
|
|
947
|
-
- `clearLabel: string = '
|
|
948
|
-
|
|
949
|
-
|
|
1151
|
+
- `clearLabel: string = ''` (attribute `clear-label` — accessible label for the clear button;
|
|
1152
|
+
empty uses the localized `clear` message, whose English fallback is `"Clear"`)
|
|
1153
|
+
- `openLabel: string = ''` (attribute `open-label` — accessible label for the calendar-toggle
|
|
1154
|
+
button; empty uses the localized `openCalendar` message, whose English fallback is
|
|
1155
|
+
`"Open calendar"`)
|
|
950
1156
|
- `dialogLabel: string = 'Choose date'` (attribute `dialog-label` — accessible name for the
|
|
951
1157
|
`role="dialog"` calendar popover)
|
|
952
1158
|
- `spellcheck: boolean = true` — forwarded to the internal `<input>`
|
|
@@ -1073,6 +1279,16 @@ and `dateTimeFormat(locale, options)`.
|
|
|
1073
1279
|
(`--lr-color-on-brand`, not a hardcoded literal — safe to override `--lr-color-brand` without
|
|
1074
1280
|
losing contrast on selected-day text).
|
|
1075
1281
|
|
|
1282
|
+
**Additional API surface:**
|
|
1283
|
+
|
|
1284
|
+
- `--lr-date-picker-month-gap` — Gap between visible months. Default: `var(--lr-space-l)`.
|
|
1285
|
+
- `--lr-date-picker-header-gap` — Month-header child gap. Default: `var(--lr-space-s)`.
|
|
1286
|
+
- `--lr-date-picker-radius` — Calendar and control corner radius. Default: `var(--lr-radius)`.
|
|
1287
|
+
- `--lr-date-input-placeholder-color` — Placeholder text color. Default: `var(--lr-color-text-quiet)`.
|
|
1288
|
+
- `--lr-date-input-gap` — Gap between input-row children. Default: `var(--lr-space-xs)`.
|
|
1289
|
+
- `--lr-date-input-radius` — Input-row corner radius. Default: `var(--lr-radius)`.
|
|
1290
|
+
- `--lr-date-input-focus-border-color` — Focused row border color. Default: `var(--lr-color-brand)`.
|
|
1291
|
+
|
|
1076
1292
|
---
|
|
1077
1293
|
|
|
1078
1294
|
## lr-textarea
|
|
@@ -1105,10 +1321,29 @@ submission/validation/reset via `name`/`value`/`disabled`/`required`/`checkValid
|
|
|
1105
1321
|
| `autocomplete` | `autocomplete` | `string` | `''` | Forwarded to the native `<textarea>`; empty omits the attribute. |
|
|
1106
1322
|
| `inputMode` | `inputmode` | `string` | `''` | Virtual-keyboard input hint forwarded to the native `<textarea>`. |
|
|
1107
1323
|
| `enterKeyHint` | `enterkeyhint` | `string` | `''` | Virtual-keyboard Enter-key hint forwarded to the native `<textarea>`. |
|
|
1324
|
+
| `minlength` | `minlength` | `number \| undefined` | `undefined` | Minimum text length; forwarded to the native `<textarea>` and reported as `validity.tooShort`. |
|
|
1325
|
+
| `maxlength` | `maxlength` | `number \| undefined` | `undefined` | Maximum text length; forwarded to the native `<textarea>` (which also stops typing past it) and reported as `validity.tooLong`. |
|
|
1108
1326
|
| `name` | `name` | `string` | `''` | Form field name. |
|
|
1109
1327
|
| `disabled` | `disabled` | `boolean` | `false` | Disables the control. |
|
|
1110
1328
|
| `required` | `required` | `boolean` | `false` | Participates in native constraint validation. |
|
|
1111
1329
|
|
|
1330
|
+
### Constraint validation
|
|
1331
|
+
|
|
1332
|
+
`validity` reports `valueMissing` (from `required`), `tooShort` (from `minlength`), and `tooLong`
|
|
1333
|
+
(from `maxlength`) — the complete set a native `<textarea>` can produce. Leaving `minlength` and
|
|
1334
|
+
`maxlength` unset constrains nothing, exactly as before they existed.
|
|
1335
|
+
|
|
1336
|
+
Two behaviors are worth knowing, both inherited from the platform and both shared with `lr-input`:
|
|
1337
|
+
|
|
1338
|
+
- **An empty value is never `tooShort`.** Native `minlength` only applies to a non-empty value, so
|
|
1339
|
+
an optional field left blank stays valid; `required` is what rejects empty.
|
|
1340
|
+
- **A script-assigned value is validated too.** The native `tooShort`/`tooLong` flags are raised
|
|
1341
|
+
only for a value the *user* edited, so the component recomputes both from its own `value` and
|
|
1342
|
+
ORs them in — `el.value = <over-length>` reports `tooLong` rather than silently submitting.
|
|
1343
|
+
Lengths count UTF-16 code units, matching the native control (one emoji counts as two).
|
|
1344
|
+
`validationMessage` is the browser's own localized message when the native control flagged the
|
|
1345
|
+
value, and the localized `valueInvalid` string when only the script-value check did.
|
|
1346
|
+
|
|
1112
1347
|
The visible label, hint, and error live in the same shadow tree as the native control, so their
|
|
1113
1348
|
generated ids safely drive the native `<label>`/`aria-describedby` relationships. Name precedence
|
|
1114
1349
|
is `accessibleLabel`/host `aria-label`, visible `label`, `placeholder`, then the localized
|
|
@@ -1139,8 +1374,10 @@ the shadow boundary.
|
|
|
1139
1374
|
|
|
1140
1375
|
| Event | Detail | Description |
|
|
1141
1376
|
| --- | --- | --- |
|
|
1142
|
-
| `
|
|
1143
|
-
| `
|
|
1377
|
+
| `input` | none | Native-style composed event fired on every user-driven edit. |
|
|
1378
|
+
| `change` | none | Native-style composed event fired at native `change` timing. |
|
|
1379
|
+
| `lr-input` | `{ value: string }` | Compatibility alias fired on every user-driven edit. |
|
|
1380
|
+
| `lr-change` | `{ value: string }` | Compatibility alias fired on native `change` timing (blur after a committed edit). |
|
|
1144
1381
|
| `blur` | none | Re-dispatched from the internal native `<textarea>`'s own `blur` -- bubbling and composed, unlike the native event. |
|
|
1145
1382
|
| `focus` | none | Re-dispatched from the internal native `<textarea>`'s own `focus`, for the same reason as `blur`. |
|
|
1146
1383
|
|
|
@@ -1173,6 +1410,10 @@ original declarative `value`, matching native `defaultValue` behavior.
|
|
|
1173
1410
|
bound scrolls inside the native textarea. Auto-resize remeasures after user edits, programmatic
|
|
1174
1411
|
`value`/`rows` changes, range edits, and container-width changes.
|
|
1175
1412
|
|
|
1413
|
+
**Additional API surface:**
|
|
1414
|
+
|
|
1415
|
+
- `click()` — Activates the internal textarea.
|
|
1416
|
+
|
|
1176
1417
|
---
|
|
1177
1418
|
|
|
1178
1419
|
## `lr-button`
|
|
@@ -1181,7 +1422,27 @@ A generic action-button primitive. Renders an internal native `<button>`; `type=
|
|
|
1181
1422
|
`type="reset"` are handled by the component itself via the host's own `closest('form')`, since a
|
|
1182
1423
|
shadow-internal native button doesn't participate in an ancestor form's submission on its own.
|
|
1183
1424
|
|
|
1425
|
+
Set `href` to a safe link URL and the root renders as a real `<a part="base" href=…>` instead — a
|
|
1426
|
+
link styled as a button (e.g. a CTA). Native navigation is then the activation, so the submit/reset
|
|
1427
|
+
handling and `type` have no effect in that mode. A disabled link button (its own `disabled` or an
|
|
1428
|
+
ancestor `<fieldset disabled>`) renders the anchor with `aria-disabled="true"` and **no `href`**, so
|
|
1429
|
+
it is neither focusable nor navigable; an unsafe/unparseable `href` falls back to the native
|
|
1430
|
+
`<button>`.
|
|
1431
|
+
|
|
1184
1432
|
**Properties:**
|
|
1433
|
+
- `href?: string` — when set to a safe link URL (`http:`/`https:`/`blob:`/`mailto:`/relative; see
|
|
1434
|
+
`safeLinkHref`), the root renders as an `<a href=…>` instead of a `<button>`. Setting `download`
|
|
1435
|
+
narrows the allowlist to `http:`/`https:`/`blob:`/relative — `mailto:` names no retrievable bytes,
|
|
1436
|
+
so a `mailto:` href paired with `download` falls back to the native `<button>`. Unset (the default)
|
|
1437
|
+
renders a plain `<button>`, unchanged. `type` (submit/reset) has no effect while the anchor
|
|
1438
|
+
renders. While the button is disabled the anchor is rendered **without** `href` (keeping
|
|
1439
|
+
`aria-disabled="true"`), so a disabled link button cannot navigate. An unsafe/unparseable value
|
|
1440
|
+
falls back to the native `<button>`
|
|
1441
|
+
- `target?: string` — native anchor `target`, used only while `href` resolves to a link. Setting it
|
|
1442
|
+
(e.g. `'_blank'`) automatically derives `rel="noopener noreferrer"` on the anchor; `rel` is never
|
|
1443
|
+
independently settable (reverse-tabnabbing). Ignored in `<button>` mode
|
|
1444
|
+
- `download?: string` — native anchor `download` attribute, used only while `href` resolves to a
|
|
1445
|
+
link. Ignored in `<button>` mode
|
|
1185
1446
|
- `variant: 'neutral' | 'brand' | 'success' | 'warning' | 'danger' = 'neutral'` (reflected)
|
|
1186
1447
|
- `appearance: 'accent' | 'filled' | 'outlined' | 'plain' | 'quiet' | 'link' = 'filled'` (reflected)
|
|
1187
1448
|
— `'accent'` is a
|
|
@@ -1202,19 +1463,24 @@ shadow-internal native button doesn't participate in an ancestor form's submissi
|
|
|
1202
1463
|
- `loading: boolean = false` (reflected) — shows an internal spinner and disables the button without
|
|
1203
1464
|
clearing `disabled`
|
|
1204
1465
|
- `disabled: boolean = false` (reflected)
|
|
1466
|
+
- `accessibleLabel: string | null = null` (attribute `aria-label`) — accessible name forwarded
|
|
1467
|
+
reactively to the internal native button or anchor; changing or removing the attribute after
|
|
1468
|
+
mount updates the actual focused control
|
|
1205
1469
|
|
|
1206
1470
|
The shared `m` size uses `--lr-font-size-m`. The internal button follows the host's inline size through `--lr-button-width` (default
|
|
1207
1471
|
`100%`), and each size tier's `min-block-size` floor is exposed as its own token (see below).
|
|
1208
1472
|
|
|
1209
|
-
**Getters/methods:** `click()`, `focus(options?)`, and `blur()` — forwarded to the internal
|
|
1210
|
-
`<button
|
|
1473
|
+
**Getters/methods:** `click()`, `focus(options?)`, and `blur()` — forwarded to the internal base
|
|
1474
|
+
element (the `<button>`, or the `<a>` in anchor mode); `click()` also runs the component's
|
|
1475
|
+
submit/reset behavior in `<button>` mode.
|
|
1211
1476
|
|
|
1212
1477
|
**Events:** none (a plain native `click` bubbles and composes through the shadow boundary
|
|
1213
1478
|
unmodified; disabled while `disabled` or `loading`).
|
|
1214
1479
|
|
|
1215
1480
|
**Slots:** default (label content), `start` (leading icon/content), `end` (trailing icon/content).
|
|
1216
1481
|
|
|
1217
|
-
**CSS parts:** `base
|
|
1482
|
+
**CSS parts:** `base` (the internal native `<button>`, or an `<a>` when `href` resolves to a safe
|
|
1483
|
+
link), `label`, `start`, `end`, `spinner` (present only while `loading`).
|
|
1218
1484
|
|
|
1219
1485
|
**Themeable custom properties:** `--lr-button-width`, `--lr-button-accent`, `--lr-button-fill`,
|
|
1220
1486
|
`--lr-button-on-fill`, `--lr-button-border` (each swapped by the active `variant`, default
|
|
@@ -1242,6 +1508,9 @@ and the per-`size`
|
|
|
1242
1508
|
and any slotted content) and `--lr-button-radius` (default `--lr-radius`, the corner radius) are
|
|
1243
1509
|
both retunable without a `::part(base)` rule but — unlike the four size knobs below — do not vary
|
|
1244
1510
|
by `size` tier; `appearance="link"` ignores `--lr-button-radius` (it renders with zero radius).
|
|
1511
|
+
`--lr-button-shadow` is **undeclared by default**, so `box-shadow` falls back to `none` —
|
|
1512
|
+
byte-identical to before this property existed — set it to add a drop shadow (e.g. an
|
|
1513
|
+
elevated/floating action button) without a `::part(base)` rule.
|
|
1245
1514
|
|
|
1246
1515
|
**Retuning one `size` tier's geometry, without a `::part(base)` rule.** Four more properties carry
|
|
1247
1516
|
the active tier's geometry, and every `:host([size='…'])` rule does nothing but re-assign them — no
|
|
@@ -1275,9 +1544,14 @@ box no matter what tier or override is in play.
|
|
|
1275
1544
|
```
|
|
1276
1545
|
|
|
1277
1546
|
**Known gotchas:**
|
|
1278
|
-
-
|
|
1279
|
-
button); an external `aria-labelledby`/`aria-describedby`
|
|
1280
|
-
boundary.
|
|
1547
|
+
- `accessibleLabel`/a host `aria-label` is forwarded reactively to the internal button or anchor as
|
|
1548
|
+
a literal string (for an icon-only button); an external `aria-labelledby`/`aria-describedby`
|
|
1549
|
+
idref is not copied across the shadow boundary.
|
|
1550
|
+
- Host `aria-haspopup` and `aria-expanded` values are forwarded to the internal semantic control.
|
|
1551
|
+
For host `aria-controls`, targets in the host's own root are resolved through the reflected
|
|
1552
|
+
element-reference API so a popup relationship survives the component's shadow boundary; browsers
|
|
1553
|
+
without that API retain the forwarded string attribute as a best-effort fallback. This is what
|
|
1554
|
+
lets either button serve as an `lr-menu` trigger.
|
|
1281
1555
|
- Is form-associated (`static formAssociated = true` + `attachInternals()`), so it participates in
|
|
1282
1556
|
an ancestor `<form>.elements` the same way `wa-button` does — a sibling text field's own
|
|
1283
1557
|
Enter-to-submit lookup (which scans `form.elements` for a `type === 'submit'` control) finds it.
|
|
@@ -1286,9 +1560,8 @@ box no matter what tier or override is in play.
|
|
|
1286
1560
|
|
|
1287
1561
|
## `lr-icon-button`
|
|
1288
1562
|
|
|
1289
|
-
An accessible icon-only action button — a native `<button>`
|
|
1290
|
-
|
|
1291
|
-
form the way a native button does, but the element itself contributes no form value.
|
|
1563
|
+
An accessible icon-only action button — a form-associated custom element with a native `<button>`
|
|
1564
|
+
inside. Its `type="submit"`/`"reset"` behavior is forwarded to the ancestor form by the component.
|
|
1292
1565
|
|
|
1293
1566
|
**Properties:**
|
|
1294
1567
|
- `icon: string = ''` — an `lr-icon` glyph name (see `llms/components/lr-icon.md`)
|
|
@@ -1303,6 +1576,12 @@ With neither `accessibleLabel` nor `label` set, the name falls back to the local
|
|
|
1303
1576
|
app-wide with `registerLyraLocale()` (see `llms/shared.md`); don't rely on the fallback for a
|
|
1304
1577
|
button whose purpose isn't generic.
|
|
1305
1578
|
|
|
1579
|
+
Host `aria-haspopup` and `aria-expanded` values are forwarded reactively to the shadow-internal
|
|
1580
|
+
native button. Host `aria-controls` targets in the host's own root are resolved through the
|
|
1581
|
+
reflected element-reference API, so using `<lr-icon-button slot="trigger">` inside `<lr-menu>`
|
|
1582
|
+
exposes the menu relationship and expanded state on the element that actually receives focus;
|
|
1583
|
+
browsers without that API retain the forwarded string attribute as a best-effort fallback.
|
|
1584
|
+
|
|
1306
1585
|
**Methods:** `focus(options?)`, `blur()` — forward to the native button. `click()` also forwards to
|
|
1307
1586
|
the native button, activating it — including this component's own `type="submit"`/`type="reset"`
|
|
1308
1587
|
handling, since the click goes through the same `<button>` the pointer/keyboard path does.
|
|
@@ -1339,7 +1618,15 @@ that several other components size their icon-only controls against), so overrid
|
|
|
1339
1618
|
above 24px — see `llms/shared.md`. `--lr-icon-button-radius` (default `--lr-radius`) is the
|
|
1340
1619
|
`[part='button']` corner radius, retunable without a `::part(button)` rule — the same
|
|
1341
1620
|
`--lr-button-radius` pattern; `lr-icon-button` has no `size` tiers, so there is no per-tier gap
|
|
1342
|
-
counterpart to it.
|
|
1621
|
+
counterpart to it. `--lr-icon-button-background` (default `transparent`) tints the
|
|
1622
|
+
`[part='button']` background, `--lr-icon-button-background-hover` (default `--lr-color-surface`)
|
|
1623
|
+
its hover-state background, `--lr-icon-button-color` (default `inherit`) its icon/text color,
|
|
1624
|
+
`--lr-icon-button-color-hover` (default `var(--lr-icon-button-color, inherit)`) its hover-state
|
|
1625
|
+
foreground, and `--lr-icon-button-border` (default `0`) the complete native-button border
|
|
1626
|
+
shorthand. These are the same per-component indirection `lr-button`'s
|
|
1627
|
+
`--lr-button-fill`/`--lr-button-on-fill` provide, letting a single button be bordered and tinted
|
|
1628
|
+
without a `::part(button)` rule. Left unset, each falls back to the original value, so rendering is
|
|
1629
|
+
unchanged.
|
|
1343
1630
|
|
|
1344
1631
|
## `lr-input`
|
|
1345
1632
|
|
|
@@ -1366,13 +1653,21 @@ form-associated via the same `FormAssociated` mixin as `lr-textarea`. Ships the
|
|
|
1366
1653
|
- `inputMode: string = ''` (attribute `inputmode`) / `enterKeyHint: string = ''` (attribute
|
|
1367
1654
|
`enterkeyhint`) — these four are forwarded verbatim to the native input; an empty string omits
|
|
1368
1655
|
the attribute entirely
|
|
1369
|
-
- `min?: number` / `max?: number` (attributes `min`/`max`) /
|
|
1370
|
-
`step`, accepts the native `'any'` value alongside a number)
|
|
1656
|
+
- `min?: number | string` / `max?: number | string` (attributes `min`/`max`) /
|
|
1657
|
+
`step?: number | 'any'` (attribute `step`, accepts the native `'any'` value alongside a number)
|
|
1658
|
+
— forwarded verbatim to the native
|
|
1371
1659
|
input and validated by it. Intended for `type="number"`; `step` is equally meaningful on
|
|
1372
1660
|
`type="time"`. On `lr-input` itself the `min`/`max` *attributes* are number-converted, so a
|
|
1373
1661
|
non-numeric bound only survives a direct property assignment; the declared type also admits a
|
|
1374
1662
|
string so a subclass can narrow the attribute parsing to its own native type's literal form —
|
|
1375
1663
|
`lr-time-input` does exactly that. Inert for the other types
|
|
1664
|
+
- `minlength?: number` / `maxlength?: number` (attributes `minlength`/`maxlength`) — text-length
|
|
1665
|
+
bounds forwarded to the native input and reported as `validity.tooShort`/`validity.tooLong`.
|
|
1666
|
+
Apply to the text-bearing types (`text`, `search`, `email`, `password`); the platform ignores
|
|
1667
|
+
both on `type="number"`/`type="time"`, and so does this component
|
|
1668
|
+
- `pattern?: string` (attribute `pattern`) — a regular expression the value must match in full,
|
|
1669
|
+
forwarded to the native input and reported as `validity.patternMismatch`. Anchored to the whole
|
|
1670
|
+
value by the platform, so no `^`/`$` is needed; an empty value never violates it
|
|
1376
1671
|
- `passwordVisible: boolean = false` (attribute `password-visible` — `type="password"` only)
|
|
1377
1672
|
- `name`/`disabled`/`required` (from `FormAssociated`)
|
|
1378
1673
|
|
|
@@ -1447,9 +1742,25 @@ Several controls expose the same pair: a per-`size` `*-min-height` **floor**, an
|
|
|
1447
1742
|
**Known gotchas:**
|
|
1448
1743
|
- `type="email"`/`type="number"` delegate constraint validation to the internal native `<input>`'s
|
|
1449
1744
|
own browser-computed `validity` (format/range/step), bridged into this element's own
|
|
1450
|
-
`ElementInternals` — not a second hand-rolled regex check.
|
|
1745
|
+
`ElementInternals` — not a second hand-rolled regex check. The same bridge carries
|
|
1746
|
+
`minlength`/`maxlength`/`pattern`, so `validity` reports the full native set: `valueMissing`,
|
|
1747
|
+
`typeMismatch`, `rangeUnderflow`, `rangeOverflow`, `stepMismatch`, `tooShort`, `tooLong`,
|
|
1748
|
+
`patternMismatch`, and `badInput`.
|
|
1749
|
+
- **`tooShort`/`tooLong` also fire for a value assigned from script.** The native flags are raised
|
|
1750
|
+
only for a value the *user* edited, so the component recomputes both from its own `value` and ORs
|
|
1751
|
+
them in; `el.value = <over-length>` reports `tooLong` rather than silently submitting. Lengths
|
|
1752
|
+
count UTF-16 code units, matching the native control (one emoji counts as two). `patternMismatch`
|
|
1753
|
+
needs no such handling — the platform applies `pattern` to script-assigned values already.
|
|
1754
|
+
`validationMessage` is the browser's own localized message when the native input flagged the
|
|
1755
|
+
value, and the localized `valueInvalid` string when only the script-value check did.
|
|
1756
|
+
- An empty value is never `tooShort` and never a `patternMismatch` — both native constraints skip
|
|
1757
|
+
the empty string, and `required` is what rejects it.
|
|
1451
1758
|
- `type="password"` always renders the `password-toggle` button; there is no separate opt-out.
|
|
1452
1759
|
|
|
1760
|
+
**Additional API surface:**
|
|
1761
|
+
|
|
1762
|
+
- `click()` — Activates the internal input.
|
|
1763
|
+
|
|
1453
1764
|
## `lr-number-input`
|
|
1454
1765
|
|
|
1455
1766
|
A migration-friendly numeric alias of `lr-input` — a subclass whose constructor and
|
|
@@ -1459,8 +1770,8 @@ A migration-friendly numeric alias of `lr-input` — a subclass whose constructo
|
|
|
1459
1770
|
**Properties:** `size` (`2xs`…`xl`), `placeholder`, `readonly`, `label`, `hint`, `errorText`
|
|
1460
1771
|
(`error-text`), `accessibleLabel` (`aria-label`), `autocomplete`, `spellcheck`, `autocapitalize`,
|
|
1461
1772
|
`autoCorrect` (`autocorrect`), `inputMode` (`inputmode`), `enterKeyHint` (`enterkeyhint`), and
|
|
1462
|
-
`min`/`max`/`step` (the native numeric constraint validation). `clearable
|
|
1463
|
-
(`password-visible`) are inherited but inert — see gotchas.
|
|
1773
|
+
`min`/`max`/`step` (the native numeric constraint validation). `clearable`, `passwordVisible`
|
|
1774
|
+
(`password-visible`), and `minlength`/`maxlength`/`pattern` are inherited but inert — see gotchas.
|
|
1464
1775
|
|
|
1465
1776
|
**Events:** `input`/`change` (native-style, composed), `lr-input`/`lr-change`
|
|
1466
1777
|
(`detail: { value }`), `focus`/`blur` (re-dispatched bubbling + composed from the internal native
|
|
@@ -1482,7 +1793,8 @@ vary by `size` at all).
|
|
|
1482
1793
|
**Known gotchas:**
|
|
1483
1794
|
- `clearable`/`clear-button`/`lr-clear` are inert: the clear action only renders for
|
|
1484
1795
|
`type="text"`/`"search"`. `password-visible`/`password-toggle` are likewise inert, since the
|
|
1485
|
-
toggle only renders for `type="password"`.
|
|
1796
|
+
toggle only renders for `type="password"`. `minlength`/`maxlength`/`pattern` are inert too — the
|
|
1797
|
+
platform ignores all three on `type="number"`; use `min`/`max`/`step` instead.
|
|
1486
1798
|
- `type` is re-forced to `number` on every connect, but a later `el.type = 'text'` on a connected
|
|
1487
1799
|
element is not reverted — use `lr-input` when the type has to change.
|
|
1488
1800
|
|
|
@@ -1495,8 +1807,9 @@ re-typed `min`/`max` pair (below); every other property, event, slot and part is
|
|
|
1495
1807
|
**Properties:** `size` (`2xs`…`xl`), `placeholder`, `readonly`, `label`, `hint`, `errorText`
|
|
1496
1808
|
(`error-text`), `accessibleLabel` (`aria-label`), `autocomplete`, `spellcheck`, `autocapitalize`,
|
|
1497
1809
|
`autoCorrect` (`autocorrect`), `inputMode` (`inputmode`), and `enterKeyHint` (`enterkeyhint`).
|
|
1498
|
-
`clearable
|
|
1499
|
-
`lr-number-input
|
|
1810
|
+
`clearable`, `passwordVisible` (`password-visible`), and `minlength`/`maxlength`/`pattern` are
|
|
1811
|
+
inherited but inert, exactly as on `lr-number-input` — the platform ignores all three length/pattern
|
|
1812
|
+
constraints on `type="time"` as well.
|
|
1500
1813
|
|
|
1501
1814
|
`step` is forwarded verbatim to the native time input, where it means seconds (`step="1"` reveals
|
|
1502
1815
|
the seconds field, `'any'` disables step validation).
|
|
@@ -1612,9 +1925,9 @@ interface PhoneNumberAdapter {
|
|
|
1612
1925
|
native telephone input.
|
|
1613
1926
|
- `countryLabel: string = 'Select'` (attribute `country-label`) — country-selector accessible name;
|
|
1614
1927
|
the untouched default routes through the shared localized `select` message.
|
|
1615
|
-
- `incompleteText: string = '
|
|
1616
|
-
message for dial-like input that can still become valid with more digits. The
|
|
1617
|
-
routes through the
|
|
1928
|
+
- `incompleteText: string = 'This phone number is incomplete.'` (attribute `incomplete-text`) —
|
|
1929
|
+
validation message for dial-like input that can still become valid with more digits. The
|
|
1930
|
+
untouched default routes through the localized `phoneInputIncomplete` message.
|
|
1618
1931
|
- `invalidText: string = 'The value is invalid.'` (attribute `invalid-text`) — completed-invalid
|
|
1619
1932
|
message, localized through the same shared key while left at its default.
|
|
1620
1933
|
- `autocomplete: string = 'tel'`, `inputmode: 'tel'|'numeric'|'text' = 'tel'`,
|
|
@@ -1721,6 +2034,17 @@ import '@aceshooting/lyra-ui/components/media/flag/flag-peer.js';
|
|
|
1721
2034
|
via `::part` styling tricks, and don't expect the flag inside the open popup list — a native
|
|
1722
2035
|
`<option>` is text-only.
|
|
1723
2036
|
|
|
2037
|
+
**Additional API surface:**
|
|
2038
|
+
|
|
2039
|
+
- `click()` — Activate the internal telephone input unless the form control is effectively disabled.
|
|
2040
|
+
- `--lr-phone-input-flag-size` — Selected flag size, scaled by `size`.
|
|
2041
|
+
- `--lr-phone-input-glyph-size` — Country selector glyph size, scaled by `size`.
|
|
2042
|
+
- `--lr-phone-input-gap` — Country-trigger child gap. Default: `var(--lr-space-xs)`.
|
|
2043
|
+
- `--lr-phone-input-radius` — Input-wrapper corner radius. Default: `var(--lr-radius)`.
|
|
2044
|
+
- `--lr-phone-input-focus-border-color` — Focused row border color. Default: `var(--lr-color-brand)`.
|
|
2045
|
+
- `--lr-phone-input-invalid-border-color` — Invalid row border color. Default: `var(--lr-color-danger)`.
|
|
2046
|
+
- `--lr-phone-input-country-hover-bg` — Country trigger hover background. Default: `var(--lr-color-brand-quiet)`.
|
|
2047
|
+
|
|
1724
2048
|
---
|
|
1725
2049
|
|
|
1726
2050
|
## `lr-time-range`
|
|
@@ -1744,6 +2068,11 @@ consumer-facing `disabled` property/attribute itself.
|
|
|
1744
2068
|
- `disabled: boolean = false` (reflected)
|
|
1745
2069
|
- `startLabel: string = 'Range start'` (attribute `start-label`) — `aria-label` for the start handle
|
|
1746
2070
|
- `endLabel: string = 'Range end'` (attribute `end-label`) — `aria-label` for the end handle
|
|
2071
|
+
- `valueFormatter?: TimeRangeValueFormatter` (attribute: false) — maps each finite, clamped
|
|
2072
|
+
`aria-valuenow` to optional human-readable `aria-valuetext`; called as
|
|
2073
|
+
`(value, handle: TimeRangeHandle)`, where `TimeRangeHandle = 'start' | 'end'`. The formatter may
|
|
2074
|
+
return `string | null | undefined`; a nullish result omits `aria-valuetext` for that handle.
|
|
2075
|
+
Leaving the property unset preserves the numeric-only contract
|
|
1747
2076
|
- `presets: TimeRangePreset[] = []` (attribute: false) — `TimeRangePreset { label: string; start:
|
|
1748
2077
|
number; end: number }`; optional discrete presets (e.g. "Last 7 days") rendered as a
|
|
1749
2078
|
`[part="presets"]` button row above the track — purely additive, the continuous brush is
|
|
@@ -1759,8 +2088,9 @@ key-up-commit, or when a preset button is clicked, `detail: { start, end }`)
|
|
|
1759
2088
|
**CSS parts:** `base`, `track`, `range`, `handle-start`, `handle-end`, `presets`, `preset-button`
|
|
1760
2089
|
|
|
1761
2090
|
**Themeable custom properties:** mostly shared tokens — `--lr-color-border`, `--lr-color-brand`,
|
|
1762
|
-
`--lr-color-surface`, `--lr-shadow` (track/handles), `--lr-opacity-disabled` (`:host(
|
|
1763
|
-
dimming), plus (for `presets`) `--lr-color-text`,
|
|
2091
|
+
`--lr-color-surface`, `--lr-shadow` (track/handles), `--lr-opacity-disabled` (`:host(:disabled)`
|
|
2092
|
+
dimming, including ancestor-fieldset disablement), plus (for `presets`) `--lr-color-text`,
|
|
2093
|
+
`--lr-color-on-brand` (the active preset
|
|
1764
2094
|
button's text), `--lr-radius`, `--lr-space-xs/-s`, `--lr-transition-fast`,
|
|
1765
2095
|
`--lr-focus-ring-*`.
|
|
1766
2096
|
|
|
@@ -1787,10 +2117,13 @@ any ancestor of the `<lr-time-range>` therefore reaches it. (The same technique
|
|
|
1787
2117
|
**Optional peer deps:** none.
|
|
1788
2118
|
|
|
1789
2119
|
```html
|
|
1790
|
-
<lr-time-range min="0" max="
|
|
2120
|
+
<lr-time-range id="months" min="0" max="2" start="0" end="2"></lr-time-range>
|
|
1791
2121
|
<script>
|
|
1792
|
-
|
|
1793
|
-
|
|
2122
|
+
const months = ['April 2023', 'May 2023', 'June 2023'];
|
|
2123
|
+
const range = document.getElementById('months');
|
|
2124
|
+
range.valueFormatter = (value, handle) =>
|
|
2125
|
+
`${handle === 'start' ? 'From' : 'Through'} ${months[value]}`;
|
|
2126
|
+
range.addEventListener('lr-change', (e) => console.log(e.detail.start, e.detail.end));
|
|
1794
2127
|
</script>
|
|
1795
2128
|
```
|
|
1796
2129
|
|
|
@@ -1807,9 +2140,9 @@ any ancestor of the `<lr-time-range>` therefore reaches it. (The same technique
|
|
|
1807
2140
|
slider.
|
|
1808
2141
|
- `aria-valuemin`/`aria-valuemax` on each handle report that handle's reachable sub-range (bounded by
|
|
1809
2142
|
its sibling), not the full domain — matching what Home/End actually jump to.
|
|
1810
|
-
-
|
|
1811
|
-
|
|
1812
|
-
|
|
2143
|
+
- `valueFormatter` is presentation-only: `aria-valuenow`, geometry, emitted values, and preset
|
|
2144
|
+
matching stay numeric. Non-finite handles omit both `aria-valuenow` and `aria-valuetext` and are
|
|
2145
|
+
never passed to the formatter.
|
|
1813
2146
|
- Handles a `min > max` domain, a non-positive/non-finite `step`, and disabled-mid-drag/
|
|
1814
2147
|
disconnect-mid-drag correctly (tested) — safe to rely on those edge cases. Concurrent drags are
|
|
1815
2148
|
tracked per `pointerId` (not a single scalar), so a two-finger touch — one finger per handle —
|
|
@@ -1819,12 +2152,23 @@ any ancestor of the `<lr-time-range>` therefore reaches it. (The same technique
|
|
|
1819
2152
|
- Non-finite domain/handle values use finite fallback geometry, and non-finite or negative steps are
|
|
1820
2153
|
treated as unstepped; invalid values never become `NaN`/`Infinity` CSS or ARIA strings.
|
|
1821
2154
|
- `startLabel`/`endLabel` only override each handle's `aria-label`; they don't affect
|
|
1822
|
-
`aria-valuenow`/`aria-valuemin`/`aria-valuemax`
|
|
2155
|
+
`aria-valuenow`/`aria-valuemin`/`aria-valuemax`, `valueFormatter`, or any visible text.
|
|
1823
2156
|
- An ancestor `<fieldset disabled>` toggling is reflected via `formDisabledCallback` into
|
|
1824
2157
|
`effectiveDisabled` (tracked separately from the consumer's own `disabled`), so re-enabling the
|
|
1825
2158
|
fieldset correctly restores a handle that had `disabled` set explicitly by the consumer, and vice
|
|
1826
2159
|
versa — mirrors `lr-combobox`'s identical pattern.
|
|
1827
2160
|
|
|
2161
|
+
**Additional API surface:**
|
|
2162
|
+
|
|
2163
|
+
- `--lr-time-range-handle-size` — Visible handle diameter. Default: `14px*scale`.
|
|
2164
|
+
- `--lr-time-range-hit-size` — Actual drag hit-area diameter; endpoint handles are inset by half this distance so the hit geometry stays inside the host. Default: `max(24px,28px*scale)`.
|
|
2165
|
+
- `--lr-time-range-track-size` — Track and selected-range thickness. Default: `4px*scale`.
|
|
2166
|
+
- `--lr-time-range-base-size` — Brush baseline block size. Default: `1.5rem*scale`.
|
|
2167
|
+
- `--lr-time-range-preset-gap` — Gap between preset buttons. Default: `var(--lr-space-xs)`.
|
|
2168
|
+
- `--lr-time-range-preset-radius` — Preset button corner radius. Default: `var(--lr-radius)`.
|
|
2169
|
+
- `--lr-time-range-preset-padding` — Preset button padding, scaled by `size`.
|
|
2170
|
+
- `--lr-time-range-preset-font-size` — Preset button font size, scaled by `size`.
|
|
2171
|
+
|
|
1828
2172
|
---
|
|
1829
2173
|
|
|
1830
2174
|
## `lr-swatch-picker`
|
|
@@ -1838,16 +2182,18 @@ named colors, the shape apps otherwise hand-roll as a row of round accent-color
|
|
|
1838
2182
|
|
|
1839
2183
|
**Properties:**
|
|
1840
2184
|
- `options: SwatchOption[] = []` (attribute: false) — `SwatchOption { value: string; color: string;
|
|
1841
|
-
label: string; icon?: unknown }`; `color` is any CSS color string used as
|
|
1842
|
-
is each swatch's accessible name and `title`. `icon` is an optional
|
|
1843
|
-
|
|
1844
|
-
|
|
1845
|
-
`<lr-segmented>`'s `SegmentedItem.icon`.
|
|
2185
|
+
label: string; icon?: unknown; gemstone?: GemstoneKey }`; `color` is any CSS color string used as
|
|
2186
|
+
the swatch fill, `label` is each swatch's accessible name and `title`. `icon` is an optional
|
|
2187
|
+
custom shape rendered *instead of* the plain filled circle; `gemstone` selects the canonical
|
|
2188
|
+
faceted glyph when `mode="gemstone"`. An explicit `icon` wins over `gemstone`.
|
|
1846
2189
|
- `value: string | null = null` — the currently selected option's `value` (controlled); `null`
|
|
1847
2190
|
leaves nothing selected while keeping the first swatch tabbable.
|
|
1848
2191
|
- `size: '2xs' | 'xs' | 's' | 'm' | 'l' | 'xl' = 'm'` (reflected — scales the swatch hit-area and
|
|
1849
2192
|
fill diameter proportionally, hit-area floored at 24px; not pixel-matched to `lr-input`'s
|
|
1850
2193
|
row-height scale)
|
|
2194
|
+
- `mode: 'swatch' | 'gemstone' = 'swatch'` (reflected) — `swatch` preserves the plain-circle
|
|
2195
|
+
default. `gemstone` renders the shared glyph for options carrying a `gemstone` key and enables
|
|
2196
|
+
the selected glow/shine defaults.
|
|
1851
2197
|
- `label: string = ''` — accessible name copied to the internal `role="radiogroup"`; when empty, a
|
|
1852
2198
|
host-level `aria-label` is used as a fallback.
|
|
1853
2199
|
|
|
@@ -1862,7 +2208,8 @@ swatch's interactive hit target, sized via `--lr-swatch-picker-hit-size` — def
|
|
|
1862
2208
|
`[part='swatch'][aria-checked='true']`), `swatch-fill` (the filled circle inside it, sized via
|
|
1863
2209
|
`--lr-swatch-picker-fill-size` — defaults to `--lr-size-1-5rem`, also swapped per `size` tier —
|
|
1864
2210
|
rendered when the option has no `icon`), `swatch-icon` (the option's `icon` shape, rendered in its
|
|
1865
|
-
place when it has one
|
|
2211
|
+
place when it has one, with its inherited `font-size` set to the same fill-size token so a `1em`
|
|
2212
|
+
glyph fills the wrapper). Exactly one of `swatch-fill`/`swatch-icon` is mounted per swatch, so the
|
|
1866
2213
|
two never coexist.
|
|
1867
2214
|
|
|
1868
2215
|
**Themeable custom properties:** `--lr-swatch-picker-selected-color` (ring color around the
|
|
@@ -1876,7 +2223,9 @@ for a looping brighten-and-settle pulse on the selected swatch. It drives a sepa
|
|
|
1876
2223
|
works identically for a fill and an icon; disabled outright under `prefers-reduced-motion: reduce`,
|
|
1877
2224
|
which also drops the hover/selection scale transition), `--lr-swatch-picker-hit-size` (hit-area
|
|
1878
2225
|
size, swapped per `size` tier), `--lr-swatch-picker-fill-size` (visible fill/icon diameter, swapped
|
|
1879
|
-
per `size` tier)
|
|
2226
|
+
per `size` tier), `--lr-swatch-picker-gemstone-selected-blur` (default `--lr-size-0-5rem` in
|
|
2227
|
+
gemstone mode), `--lr-swatch-picker-gemstone-shine-duration` (default `1.8s` in gemstone mode);
|
|
2228
|
+
plus shared tokens — `--lr-color-border`/`-brand`, `--lr-space-xs`,
|
|
1880
2229
|
`--lr-border-width-thin`/`-thick`, `--lr-radius`, `--lr-transition-fast`, `--lr-focus-ring-*`,
|
|
1881
2230
|
and the per-tier `--lr-size-*` tokens.
|
|
1882
2231
|
|
|
@@ -1896,6 +2245,26 @@ and the per-tier `--lr-size-*` tokens.
|
|
|
1896
2245
|
</script>
|
|
1897
2246
|
```
|
|
1898
2247
|
|
|
2248
|
+
For the shared gemstone accent mode, import the Lit-free palette data entry. The glyph renderer
|
|
2249
|
+
remains available separately from `theme/gemstones.js` for Lit templates; palette-only consumers
|
|
2250
|
+
do not need to load Lit. The consumer still owns localized labels, display order, and the initial
|
|
2251
|
+
value:
|
|
2252
|
+
|
|
2253
|
+
```ts
|
|
2254
|
+
import '@aceshooting/lyra-ui/components/forms/swatch-picker/swatch-picker.js';
|
|
2255
|
+
import { GEMSTONES } from '@aceshooting/lyra-ui/theme/gemstones-data.js';
|
|
2256
|
+
|
|
2257
|
+
const order = ['emerald', 'ruby', 'sapphire', 'hematite'] as const;
|
|
2258
|
+
picker.mode = 'gemstone';
|
|
2259
|
+
picker.options = order.map((key) => ({
|
|
2260
|
+
value: key,
|
|
2261
|
+
color: GEMSTONES[key].fill,
|
|
2262
|
+
label: translateGemstone(key),
|
|
2263
|
+
gemstone: key,
|
|
2264
|
+
}));
|
|
2265
|
+
picker.value = 'ruby';
|
|
2266
|
+
```
|
|
2267
|
+
|
|
1899
2268
|
**Known gotchas:**
|
|
1900
2269
|
- arrow-key navigation cycles (past the last swatch wraps to the first, and vice versa) rather than
|
|
1901
2270
|
clamping, and self-selects on move — arrow-navigating to a swatch immediately updates `value` and
|
|
@@ -1911,6 +2280,10 @@ and the per-tier `--lr-size-*` tokens.
|
|
|
1911
2280
|
- the semantic `radiogroup` lives inside shadow DOM. Set `label` (preferred for reactive code) or a
|
|
1912
2281
|
host `aria-label`; the component deliberately forwards the resulting name to that internal role.
|
|
1913
2282
|
|
|
2283
|
+
**Additional API surface:**
|
|
2284
|
+
|
|
2285
|
+
- `--lr-swatch-picker-gap` — Gap between swatches. Default: `var(--lr-space-xs)`.
|
|
2286
|
+
|
|
1914
2287
|
---
|
|
1915
2288
|
|
|
1916
2289
|
## `lr-checkbox`
|
|
@@ -1934,12 +2307,16 @@ visual box/checkmark. Structurally the same idea as `<lr-switch>` (form-associat
|
|
|
1934
2307
|
`lr-change` alias (`detail: { checked: boolean }`). Programmatic `.checked` assignments are
|
|
1935
2308
|
silent. Internal `focus`/`blur` are re-dispatched as bubbling, composed host events.
|
|
1936
2309
|
|
|
1937
|
-
**Methods:** `focus(options?)` and `
|
|
2310
|
+
**Methods:** `focus(options?)`, `blur()`, and `click()` forward to the internal checkbox control.
|
|
1938
2311
|
|
|
1939
2312
|
**Slots:** default — label text, rendered next to the box. Clicking it toggles the checkbox, the
|
|
1940
2313
|
same as clicking a native checkbox's associated `<label>`. If left empty, set `aria-label` on the
|
|
1941
2314
|
host so the control still has an accessible name.
|
|
1942
2315
|
|
|
2316
|
+
Host `aria-describedby` is forwarded to the internal `role="checkbox"`, so an externally-owned
|
|
2317
|
+
description can be associated with one checkbox inside a group. The attribute is omitted from the
|
|
2318
|
+
internal role when unset and tracks host attribute changes.
|
|
2319
|
+
|
|
1943
2320
|
**CSS parts:** `base` (the whole interactive control, `role="checkbox"`), `box` (the small square
|
|
1944
2321
|
showing the checkmark/indeterminate dash), `checkmark` (the checkmark or indeterminate-dash glyph),
|
|
1945
2322
|
`label` (wrapper around the default slot)
|
|
@@ -2031,7 +2408,7 @@ control's visible, clickable label (same as `<lr-checkbox>`).
|
|
|
2031
2408
|
**Events:** `lr-change` (`detail: { checked: boolean }`) — fired on a user toggle (click or
|
|
2032
2409
|
Space/Enter); not fired for a programmatic `.checked` assignment.
|
|
2033
2410
|
|
|
2034
|
-
**Methods:** `focus(options?)` and `
|
|
2411
|
+
**Methods:** `focus(options?)`, `blur()`, and `click()` forward to the internal switch control.
|
|
2035
2412
|
|
|
2036
2413
|
**Slots:**
|
|
2037
2414
|
- default — label text, rendered next to the track. Clicking it toggles the switch, the same as
|
|
@@ -2097,10 +2474,13 @@ seamlessly right after. First-party invention (no Web Awesome equivalent).
|
|
|
2097
2474
|
- `label: string = ''` — accessible name set as `aria-label` on the `role="slider"` thumb; a plain
|
|
2098
2475
|
`aria-label` attribute on the host itself is honored as a fallback when this is left unset (matching
|
|
2099
2476
|
`<lr-checkbox>`/`<lr-switch>`).
|
|
2477
|
+
- `valueFormatter?: SliderValueFormatter` (attribute: false) — maps the finite, clamped
|
|
2478
|
+
`aria-valuenow` number to optional human-readable `aria-valuetext`. The formatter may return
|
|
2479
|
+
`string | null | undefined`; a nullish result omits `aria-valuetext`. Leaving the property unset
|
|
2480
|
+
preserves the existing numeric `aria-valuetext`.
|
|
2100
2481
|
- `showValue: boolean = true` (attribute `show-value`) — whether to render the current numeric value as
|
|
2101
2482
|
visible text next to the track. Not reflected; toggle it off via the `.showValue=${false}` property
|
|
2102
|
-
binding
|
|
2103
|
-
default boolean converter checks.
|
|
2483
|
+
binding or a plain `show-value="false"` content attribute.
|
|
2104
2484
|
- Inherited from `FormAssociated`: `name: string = ''`, `value: string` (form-submitted string form),
|
|
2105
2485
|
`disabled: boolean = false` (reflected), `required: boolean = false` (reflected).
|
|
2106
2486
|
|
|
@@ -2136,6 +2516,7 @@ when `show-value` is true)
|
|
|
2136
2516
|
step="0.1"
|
|
2137
2517
|
label="Temperature"
|
|
2138
2518
|
.valueAsNumber=${0.7}
|
|
2519
|
+
.valueFormatter=${(value) => `${value * 100}%`}
|
|
2139
2520
|
@lr-input=${(e) => setDraftTemperature(e.detail.value)}
|
|
2140
2521
|
@lr-change=${(e) => commitTemperature(e.detail.value)}
|
|
2141
2522
|
></lr-slider>
|
|
@@ -2154,6 +2535,9 @@ native range input either.
|
|
|
2154
2535
|
value); ArrowUp/ArrowDown are never swapped, since direction only affects the horizontal inline axis.
|
|
2155
2536
|
- Changing `min`/`max`/`step` after mount automatically re-clamps/re-snaps the current `value` in the
|
|
2156
2537
|
next update — narrowing the domain can silently move the slider's value.
|
|
2538
|
+
- `valueFormatter` is presentation-only: `aria-valuenow`, the visible numeric readout, geometry,
|
|
2539
|
+
form value, and emitted values stay numeric. With no formatter, `aria-valuetext` remains the
|
|
2540
|
+
numeric string rendered by earlier versions; a nullish formatter result omits it.
|
|
2157
2541
|
- A pointer drag fires `lr-input` continuously and a single `lr-change` on release; a keyboard step
|
|
2158
2542
|
fires exactly one of each per press, but OS key-repeat while a key is held re-fires `lr-input` on
|
|
2159
2543
|
every repeat while still only committing `lr-change` once, on the eventual keyup.
|
|
@@ -2209,16 +2593,21 @@ selected value is submitted under `name` and `required` requires at least one se
|
|
|
2209
2593
|
|
|
2210
2594
|
**Properties:** `label`, `hint`, `errorText`, `value`, `name`, `required`, `disabled`, and
|
|
2211
2595
|
`accessibleLabel` (`aria-label`). **Slots:** default checkboxes, `label`, `hint`, `error`.
|
|
2212
|
-
**Events:** `input`, `change`,
|
|
2596
|
+
**Events:** a user toggle emits exactly one group-owned `input`, then `change`, then `lr-change`;
|
|
2597
|
+
all three carry `{ value: string[] }`. The owned child's corresponding events are consumed at the
|
|
2598
|
+
group boundary, so an ancestor does not receive a second, differently shaped sequence.
|
|
2599
|
+
Programmatic child/property synchronization is silent.
|
|
2213
2600
|
**CSS parts:** `form-control`, `form-control-label`, `options`, `hint`, `error`.
|
|
2214
2601
|
|
|
2215
2602
|
**`value` is a read-out of child state, not an input.** The children are the single source of
|
|
2216
2603
|
truth. An internal sync recomputes `value` from them and reassigns it on every child toggle,
|
|
2217
|
-
`slotchange`, `name`/`required` change,
|
|
2218
|
-
silently overwritten by the next of those.
|
|
2219
|
-
|
|
2220
|
-
|
|
2221
|
-
|
|
2604
|
+
programmatic child `checked`/`value`/`disabled` update, `slotchange`, `name`/`required` change,
|
|
2605
|
+
blur, and `form.reset()` — so a host assignment is silently overwritten by the next of those.
|
|
2606
|
+
Only a checkbox whose nearest `lr-checkbox-group` ancestor is this group contributes; a nested
|
|
2607
|
+
group owns its own descendants and form entries. `connectedCallback()` runs that sync **before the
|
|
2608
|
+
first render**, which means even a constructor-time or template-time `.value=${…}` binding is
|
|
2609
|
+
discarded before anything can observe it. Assigning `value` logs a `console.warn` naming the
|
|
2610
|
+
property (once per group instance).
|
|
2222
2611
|
|
|
2223
2612
|
- **To preselect**, set `checked` on the children: `<lr-checkbox value="a" checked>`.
|
|
2224
2613
|
- **To read the selection**, use this property or the `lr-change` event detail.
|
|
@@ -2242,7 +2631,9 @@ hit area stays fixed at `40px` across all sizes), `allowDuplicates` (`allow-dupl
|
|
|
2242
2631
|
`false`), `editable` (reflected, default `false` — see below), and `delimiter: string | null` (default
|
|
2243
2632
|
`','` — see below).
|
|
2244
2633
|
**Slots:** `label`, `hint`, `error`.
|
|
2245
|
-
**Events:** `input
|
|
2634
|
+
**Events:** native-style `input` and `change` (`detail: { value: string[] }`), bubbling/composed
|
|
2635
|
+
`focus` and `blur` re-dispatched from the internal text input, `lr-add` (`detail: { value }`),
|
|
2636
|
+
`lr-remove`
|
|
2246
2637
|
(`detail: { value, index }` — cancelable; `preventDefault()` keeps the token in `value`
|
|
2247
2638
|
unchanged), and `lr-token-edit`
|
|
2248
2639
|
(`detail: { value, previousValue, index }` — an existing token was edited in place and committed).
|
|
@@ -2251,7 +2642,8 @@ token's text, doubling as the roving-focus edit trigger — rendered only while
|
|
|
2251
2642
|
`token-editor` (the inline text field that replaces a token's text while it is open for editing —
|
|
2252
2643
|
rendered only while `editable` and only for the token being edited), `remove` (the
|
|
2253
2644
|
per-token remove button, floored at the shared `--lr-icon-button-size` tap size around a compact
|
|
2254
|
-
glyph), `input`, `hint`, `error`. `focus()` and `
|
|
2645
|
+
glyph), `input`, `hint`, `error`. `focus()`, `blur()`, and `click()` forward to the internal text
|
|
2646
|
+
input.
|
|
2255
2647
|
|
|
2256
2648
|
**`editable` — editing a token in place.** Off by default, in which case the token row renders
|
|
2257
2649
|
exactly as it does without the feature and stays non-focusable. Turn it on and each token becomes a
|
|
@@ -2285,6 +2677,17 @@ inline to `--lr-size-8rem`), `--lr-token-input-min-input-inline-size` (default `
|
|
|
2285
2677
|
floor that input keeps once tokens have consumed the row), and `--lr-token-input-editor-inline-size`
|
|
2286
2678
|
(default `--lr-size-6rem`, the inline size of the inline token editor opened by `editable`).
|
|
2287
2679
|
|
|
2680
|
+
**Additional API surface:**
|
|
2681
|
+
|
|
2682
|
+
- `--lr-token-input-token-padding` — Per-token chip padding, scaled by `size`.
|
|
2683
|
+
- `--lr-token-input-gap` — Gap between form/row children. Default: `var(--lr-space-xs)`.
|
|
2684
|
+
- `--lr-token-input-token-gap` — Gap inside token chips. Default: `var(--lr-space-2xs)`.
|
|
2685
|
+
- `--lr-token-input-radius` — Row/token corner radius. Default: `var(--lr-radius)`.
|
|
2686
|
+
- `--lr-token-input-token-bg` — Token chip background. Default: `var(--lr-color-brand-quiet)`.
|
|
2687
|
+
- `--lr-token-input-action-hover-bg` — Edit/remove hover background. Default: `var(--lr-color-brand-quiet)`.
|
|
2688
|
+
- `--lr-token-input-focus-border-color` — Focused row border color. Default: `var(--lr-color-brand)`.
|
|
2689
|
+
- `--lr-token-input-invalid-border-color` — Invalid row border color. Default: `var(--lr-color-danger)`.
|
|
2690
|
+
|
|
2288
2691
|
## `lr-code-editor`
|
|
2289
2692
|
|
|
2290
2693
|
Dependency-free, form-associated multiline code editor built around a native textarea, with an
|
|
@@ -2346,6 +2749,11 @@ spaces — the Tab key keeps inserting `tabSize` spaces in that case.
|
|
|
2346
2749
|
- The host gets a `data-invalid` attribute once the field has been blurred at least once and
|
|
2347
2750
|
validity fails; the styles hang the danger border off it.
|
|
2348
2751
|
|
|
2752
|
+
**Additional API surface:**
|
|
2753
|
+
|
|
2754
|
+
- `selectionDirection` — The current selection direction of the internal editing surface. Type: `'forward' | 'backward' | 'none'`.
|
|
2755
|
+
- `click()` — Activates the internal editing surface.
|
|
2756
|
+
|
|
2349
2757
|
## `lr-color-picker`
|
|
2350
2758
|
|
|
2351
2759
|
A form-associated native color picker with label, hint, and error chrome. **Properties:** the shared
|
|
@@ -2362,6 +2770,13 @@ parts:** `form-control`, `form-control-label` (the label; `label` is an alias ke
|
|
|
2362
2770
|
auto-swapped per `size` tier (default `'m'` reads `2.5rem`, `'2xs'` reads `1.25rem`, etc.), matching
|
|
2363
2771
|
the size ladder `lr-input` uses.
|
|
2364
2772
|
|
|
2773
|
+
**Additional API surface:**
|
|
2774
|
+
|
|
2775
|
+
- `click()` — Activates the internal color input.
|
|
2776
|
+
- `--lr-color-picker-gap` — Gap between field chrome. Default: `var(--lr-space-xs)`.
|
|
2777
|
+
- `--lr-color-picker-radius` — Swatch corner radius. Default: `var(--lr-radius)`.
|
|
2778
|
+
- `--lr-color-picker-hover-border-color` — Hover border color. Default: `var(--lr-color-brand)`.
|
|
2779
|
+
|
|
2365
2780
|
## `lr-emoji-picker`
|
|
2366
2781
|
|
|
2367
2782
|
A searchable, keyboard-navigable, form-associated emoji picker. `groups` is fully consumer-suppliable
|
|
@@ -2391,8 +2806,10 @@ supporting text rendered below the search/grid; unset renders no hint chrome. `e
|
|
|
2391
2806
|
`error` content when provided); unset renders no error chrome. `size: '2xs' | 'xs' | 's' | 'm' | 'l' | 'xl' = 'm'` —
|
|
2392
2807
|
visual size; scales the emoji grid item box and its glyph proportionally, floored at 24px (WCAG 2.5.8).
|
|
2393
2808
|
|
|
2394
|
-
**Events:**
|
|
2395
|
-
|
|
2809
|
+
**Events:** a pick emits native-style composed `input`, then `change` (both with no detail), then
|
|
2810
|
+
`lr-change` with `detail: { emoji }` (click, or Enter/Space on the active grid cell; also sets
|
|
2811
|
+
`value`). The internal search input's `focus` and `blur` are re-dispatched as bubbling, composed
|
|
2812
|
+
host events. Programmatic `value` changes are silent.
|
|
2396
2813
|
|
|
2397
2814
|
**Keyboard:** the grid is a roving-tabindex listbox (a single Tab stop — only the active emoji is
|
|
2398
2815
|
tabbable). ArrowLeft/ArrowRight step the active item backward/forward following reading direction
|
|
@@ -2451,6 +2868,13 @@ windowed row are additionally capped at 20 regardless of available width.
|
|
|
2451
2868
|
supply `groups` directly instead. The loader never throws; a missing or failed peer logs one
|
|
2452
2869
|
`console.warn` and simply leaves `groups` empty.
|
|
2453
2870
|
|
|
2871
|
+
**Additional API surface:**
|
|
2872
|
+
|
|
2873
|
+
- `--lr-emoji-picker-control-gap` — Gap between field sections. Default: `var(--lr-space-xs)`.
|
|
2874
|
+
- `--lr-emoji-picker-radius` — Outer picker corner radius. Default: `var(--lr-radius)`.
|
|
2875
|
+
- `--lr-emoji-picker-item-radius` — Search and emoji corner radius. Default: `var(--lr-radius-xs)`.
|
|
2876
|
+
- `--lr-emoji-picker-search-hover-border-color` — Search hover border. Default: `var(--lr-color-brand)`.
|
|
2877
|
+
|
|
2454
2878
|
## `lr-rubric-form`
|
|
2455
2879
|
|
|
2456
2880
|
A configurable annotation rubric (LangSmith annotation-queue style): score, category, and
|
|
@@ -2460,7 +2884,10 @@ freeform-comment keys with a submit-and-next flow for working through an eval qu
|
|
|
2460
2884
|
renders `<lr-textarea>`.
|
|
2461
2885
|
|
|
2462
2886
|
**Properties:** `keys: RubricKey[] = []` (attribute: false, each `{ key, type, label?, description?,
|
|
2463
|
-
required?, min?, max?, step
|
|
2887
|
+
required?, min?, max?, step?, options?, multiple?, placeholder? }`; `options?` contains
|
|
2888
|
+
`RubricKeyOption { value: string; label?: string; description?: string }`, `multiple?` selects the
|
|
2889
|
+
checkbox-group category route, and `placeholder?` customizes comment input), `value: RubricValue =
|
|
2890
|
+
{}` (attribute: false), `itemId: string = ''`
|
|
2464
2891
|
(attribute `item-id`, reflected), `hasNext: boolean = false` (attribute `has-next`), `skippable:
|
|
2465
2892
|
boolean = false`, and the shared form properties `name` and `disabled`. `errors: Record<string,
|
|
2466
2893
|
string>` is the current per-key validation-message state.
|
|
@@ -2561,6 +2988,15 @@ peer warning duplication; `lr-flag` itself already logs one) when the optional
|
|
|
2561
2988
|
- arrow-key navigation is vertical-only (Home/End/ArrowUp/ArrowDown); there is no
|
|
2562
2989
|
ArrowLeft/ArrowRight remap under RTL, since there is no horizontal axis to remap.
|
|
2563
2990
|
|
|
2991
|
+
**Additional API surface:**
|
|
2992
|
+
|
|
2993
|
+
- `--lr-locale-picker-gap` — Trigger and option child gap. Default: `var(--lr-space-xs)`.
|
|
2994
|
+
- `--lr-locale-picker-radius` — Trigger/listbox/option corner radius. Default: `var(--lr-radius)`.
|
|
2995
|
+
- `--lr-locale-picker-trigger-hover-bg` — Trigger hover background. Default: `var(--lr-color-brand-quiet)`.
|
|
2996
|
+
- `--lr-locale-picker-open-border-color` — Open trigger border color. Default: `var(--lr-color-brand)`.
|
|
2997
|
+
- `--lr-locale-picker-option-selected-border-color` — Selected option border. Default: `var(--lr-color-brand)`.
|
|
2998
|
+
- `--lr-locale-picker-option-selected-color` — Selected option text. Default: `var(--lr-color-brand)`.
|
|
2999
|
+
|
|
2564
3000
|
# Data display, dashboards & flow canvas (`components/data/`)
|
|
2565
3001
|
|
|
2566
3002
|
## `lr-sparkline`
|
|
@@ -2622,7 +3058,8 @@ KPI/stat card — value + unit + label + optional icon/trend/caption.
|
|
|
2622
3058
|
- `unit: string = ''`
|
|
2623
3059
|
- `href?: string` — when it resolves to a safe URL, the root is a real whole-stat `<a>`; unsafe
|
|
2624
3060
|
URL schemes keep the stat non-interactive
|
|
2625
|
-
- `target?: string`
|
|
3061
|
+
- `target?: string` — forwarded to the anchor while `href` is active; a nonempty target derives
|
|
3062
|
+
`rel="noopener noreferrer"` rather than exposing a separately settable `rel`
|
|
2626
3063
|
- `variant: 'neutral'|'success'|'warning'|'danger' = 'neutral'` (reflected)
|
|
2627
3064
|
- `trend: number = NaN` (a `NaN` sentinel hides the trend pill entirely — set an actual number to
|
|
2628
3065
|
show it)
|
|
@@ -2714,7 +3151,10 @@ drives `emphasis`'s accent edge and value tint).
|
|
|
2714
3151
|
|
|
2715
3152
|
## `lr-table`
|
|
2716
3153
|
|
|
2717
|
-
Sort/select-aware data table. Sorting
|
|
3154
|
+
Sort/select-aware data table. Sorting is built in and client-side by default (`sortMode="client"`
|
|
3155
|
+
orders `rows` from `sortKey`/`sortDir` and the active column's `sortValue`); `sortMode="server"`
|
|
3156
|
+
renders `rows` in the order given for a server-ordered table, and `lr-sort` fires on header
|
|
3157
|
+
activation either way. Optional filtering, pagination,
|
|
2718
3158
|
and loading chrome are built in while remaining controlled at the public API boundary. A
|
|
2719
3159
|
`columns[].heatValue`-opted-in heat-tint mode paints a shared, normalized color-mix background across
|
|
2720
3160
|
every tinted cell (auto-derived domain, or overridden via `heatTintScale`); `rowTotal`/`grandTotal`
|
|
@@ -2724,8 +3164,16 @@ own "consumer computes/renders" contract rather than assuming addition.
|
|
|
2724
3164
|
|
|
2725
3165
|
**Properties:**
|
|
2726
3166
|
- `columns: TableColumn<T>[] = []` (attribute: false) — `{ key, label, headerCell?, width?,
|
|
2727
|
-
minWidth?, maxWidth?, resizable?, sortable?, align?: 'start'|'end', priority?: 'medium'|'low', sticky?: boolean |
|
|
3167
|
+
minWidth?, maxWidth?, resizable?, sortable?, sortValue?, align?: 'start'|'end', priority?: 'medium'|'low', sticky?: boolean |
|
|
2728
3168
|
'start' | 'end', footer?, cellStyle?, heatValue?, cell: (row) => unknown }` —
|
|
3169
|
+
`sortValue(row) => string | number | null | undefined` supplies the comparable value backing
|
|
3170
|
+
client-mode sorting for that column: a finite number sorts numerically, a string sorts through an
|
|
3171
|
+
`Intl.Collator` built from the component's effective locale with `numeric: true` (so `item2`
|
|
3172
|
+
precedes `item10`), and `null`/`undefined`/non-finite sorts **last in both directions** so
|
|
3173
|
+
flipping `sortDir` never floats a block of blanks to the top. Omit it and the column sorts by its
|
|
3174
|
+
stringified `cell()` output instead — meaningful only when `cell()` returns a string or number, so
|
|
3175
|
+
define `sortValue` whenever `cell()` returns a template or element. Ignored under
|
|
3176
|
+
`sortMode="server"` and on a column that is not `sortable`;
|
|
2729
3177
|
`priority` progressively hides that column via a `@container` query as `[part='base']` narrows
|
|
2730
3178
|
(`'low'` hides first, under a ~900px container width; `'medium'` next, under ~640px; both
|
|
2731
3179
|
breakpoints are fixed in `table.styles.ts`, not themeable tokens), reversible via
|
|
@@ -2798,6 +3246,19 @@ own "consumer computes/renders" contract rather than assuming addition.
|
|
|
2798
3246
|
the two consequences of the fixed algorithm worth knowing before opting in
|
|
2799
3247
|
- `sortKey: string = ''` (attribute `sort-key`)
|
|
2800
3248
|
- `sortDir: 'asc'|'desc' = 'asc'` (attribute `sort-dir`)
|
|
3249
|
+
- `sortMode: 'client'|'server' = 'client'` (attribute `sort-mode`, reflected) — mirrors
|
|
3250
|
+
`paginationMode`'s identical split. `'client'` (the default) orders `rows` in the browser from
|
|
3251
|
+
`sortKey`/`sortDir` and the active column's `sortValue`; `'server'` renders `rows` exactly as
|
|
3252
|
+
given, for a table whose ordering already happened server-side. `lr-sort` is emitted on header
|
|
3253
|
+
activation under both modes. With no `sortKey` set (the default) `'client'` is a **no-op** — the
|
|
3254
|
+
input order is preserved verbatim — so a table that never sorts renders identically either way.
|
|
3255
|
+
Sorting applies to the whole filtered set *before* client pagination slices the page, so page 1
|
|
3256
|
+
holds the globally-smallest rows rather than a re-sorted slice
|
|
3257
|
+
- `defaultSortDir: 'asc'|'desc' = 'asc'` (attribute `default-sort-dir`) — the direction applied
|
|
3258
|
+
whenever header activation switches sorting to a **different** column, including the first column
|
|
3259
|
+
ever sorted. Re-activating the column that is already `sortKey` toggles between `'asc'` and
|
|
3260
|
+
`'desc'` instead, so `defaultSortDir` never overrides a direction the user just chose for the
|
|
3261
|
+
column they are still on. Set `'desc'` for a most-recent-first or highest-first table
|
|
2801
3262
|
- `rowKey?: (row: T) => string | number` (attribute: false) — derives each row's stable identity for
|
|
2802
3263
|
DOM-reconciliation and the delegated row click/keydown lookup; falls back to the row's array index
|
|
2803
3264
|
when omitted, which is only safe while `rows` never reorders — set it whenever `rows` can be
|
|
@@ -2844,7 +3305,13 @@ own "consumer computes/renders" contract rather than assuming addition.
|
|
|
2844
3305
|
mode slices rows; server mode renders the supplied page unchanged
|
|
2845
3306
|
- Editable columns emit `lr-cell-edit` on commit and never mutate the supplied row object.
|
|
2846
3307
|
- `groupBy?: (row: T) => string | number` (attribute: false) — inserts a non-focusable full-width
|
|
2847
|
-
group row
|
|
3308
|
+
group row wherever this key changes between consecutive rendered rows. Supply `rows` with each
|
|
3309
|
+
group already contiguous; the table renders the groups in their first-appearance order in `rows`
|
|
3310
|
+
and never reorders them. A client-mode sort is applied **within** each group, so sorting a
|
|
3311
|
+
grouped table on a column unrelated to the group key reorders rows inside their groups and
|
|
3312
|
+
leaves the grouping intact. The one exception: when the sorted column's value is constant inside
|
|
3313
|
+
every group — the group column itself, most obviously — there is nothing to reorder within a
|
|
3314
|
+
group, so the **groups** are ordered by that value instead.
|
|
2848
3315
|
- `groupLabel?: (key: string | number, rows: T[]) => unknown` (attribute: false) — custom group
|
|
2849
3316
|
header content; without it, the group key is rendered as text
|
|
2850
3317
|
- `expandedContent?: (row: T) => unknown` (attribute: false) — enables a leading expand toggle and
|
|
@@ -2871,6 +3338,9 @@ own "consumer computes/renders" contract rather than assuming addition.
|
|
|
2871
3338
|
button's label once they've been revealed)
|
|
2872
3339
|
- `showAllColumns: boolean = false` (attribute `show-all-columns`, reflected) — forces responsive
|
|
2873
3340
|
priority columns visible and is updated by the built-in reveal button
|
|
3341
|
+
- `storageKey?: string` (attribute `storage-key`) — when set, persists `showAllColumns` to
|
|
3342
|
+
`localStorage` (namespaced as `lr-table:${storageKey}`) and restores it on the next mount. Unset
|
|
3343
|
+
(the default) touches storage not at all. Mirrors `lr-app-rail`'s identical `storage-key` pattern
|
|
2874
3344
|
- `heatTintScale?: { min?: number; max?: number }` (attribute: false) — overrides the auto-derived
|
|
2875
3345
|
heat-tint domain (min/max of every `heatValue` result across every currently-rendered row —
|
|
2876
3346
|
post-sort, pre-pagination, the same rows `footer(rows)` already sees). Unset (the default) computes
|
|
@@ -2885,7 +3355,8 @@ own "consumer computes/renders" contract rather than assuming addition.
|
|
|
2885
3355
|
column × footer row). Only rendered when both `rowTotal` is set **and** at least one column defines
|
|
2886
3356
|
`footer` — otherwise there is no footer row for it to occupy, and this renders nothing
|
|
2887
3357
|
|
|
2888
|
-
**Events:** `lr-sort` (`detail: { key }`, fired on sortable-header activation
|
|
3358
|
+
**Events:** `lr-sort` (`detail: { key }`, fired on sortable-header activation — which also updates
|
|
3359
|
+
`sortKey`/`sortDir` itself, per `defaultSortDir` above), `lr-row-click`
|
|
2889
3360
|
(`detail: { row }`), `lr-load-more` (fired on the "load more" button), `lr-columns-hidden-change`
|
|
2890
3361
|
(`detail: { hidden: boolean }`, fired only on a real `columnsHidden` transition),
|
|
2891
3362
|
`lr-columns-revealed` (`detail: { revealed: boolean }`), and `lr-row-expand-toggle`
|
|
@@ -2939,6 +3410,14 @@ element *or on any ancestor* and still reach the rule that reads it. It exists b
|
|
|
2939
3410
|
forbids an attribute selector after `::part()` — `::part(row)[aria-selected='true']` is invalid CSS —
|
|
2940
3411
|
so the only prior lever for restyling the selected row was overriding the library-wide
|
|
2941
3412
|
`--lr-color-brand-quiet` token, which repaints everything else reading it.
|
|
3413
|
+
`--lr-table-row-stripe-bg` (default `transparent`) — the background of alternating body rows. The
|
|
3414
|
+
component marks the alternating rows itself, so this works without an invalid `::part(row)` attribute
|
|
3415
|
+
or structural-pseudo-class selector and does not affect group, expanded, hover, or selected rows.
|
|
3416
|
+
`--lr-table-header-sorted-bg` (default `transparent`) and `--lr-table-header-sorted-color` (default
|
|
3417
|
+
`inherit`) restyle the **currently-sorted** column's header cell (`[aria-sort]` other than `none`).
|
|
3418
|
+
Same shape and rationale as `--lr-table-row-selected-bg`: inline `var()` fallbacks, not on `:host`,
|
|
3419
|
+
because `::part(header-cell)[aria-sort]` is invalid CSS. The `sort-icon` part styles only the
|
|
3420
|
+
chevron; these tokens style the header cell itself.
|
|
2942
3421
|
`--lr-table-sticky-offset` (default `0`) is measured and written inline per column by the component
|
|
2943
3422
|
so multiple `sticky` columns stack instead of overlapping; it is a read-out, not a knob you set.
|
|
2944
3423
|
`--lr-table-heat-t` is likewise component-written (each `[data-heat]` cell's position on the ramp).
|
|
@@ -2946,12 +3425,13 @@ so multiple `sticky` columns stack instead of overlapping; it is a read-out, not
|
|
|
2946
3425
|
**Optional peer deps:** none.
|
|
2947
3426
|
|
|
2948
3427
|
```html
|
|
2949
|
-
<lr-table id="t" sort-key="name" sort-dir="asc"></lr-table>
|
|
3428
|
+
<lr-table id="t" sort-key="name" sort-dir="asc" accessible-label="Items"></lr-table>
|
|
2950
3429
|
<script type="module">
|
|
2951
3430
|
const t = document.getElementById('t');
|
|
2952
3431
|
t.columns = [
|
|
2953
3432
|
{ key: 'name', label: 'Name', sortable: true, cell: (r) => r.name },
|
|
2954
|
-
|
|
3433
|
+
// sortValue keeps the numeric column comparing as numbers, not as strings.
|
|
3434
|
+
{ key: 'value', label: 'Value', align: 'end', sortable: true, sortValue: (r) => r.value, cell: (r) => r.value },
|
|
2955
3435
|
];
|
|
2956
3436
|
t.rows = [{ name: 'Alpha', value: 1 }, { name: 'Beta', value: 2 }];
|
|
2957
3437
|
t.rowKey = (r) => r.name;
|
|
@@ -2961,14 +3441,36 @@ so multiple `sticky` columns stack instead of overlapping; it is a read-out, not
|
|
|
2961
3441
|
```
|
|
2962
3442
|
|
|
2963
3443
|
**Known gotchas:**
|
|
3444
|
+
- activating a sortable header now writes `sortKey`/`sortDir` on the table itself, in **both** sort
|
|
3445
|
+
modes — it is no longer a pure `lr-sort` notification. A `sortMode="server"` consumer that
|
|
3446
|
+
re-sorts on `lr-sort` and pushes fresh `rows` back in is unaffected (the table renders whatever
|
|
3447
|
+
order it is handed), but a consumer implementing a *tri-state* header (asc → desc → unsorted) must
|
|
3448
|
+
drive `sortKey`/`sortDir` from its own `lr-sort` handler, since the built-in activation only
|
|
3449
|
+
toggles between the two directions.
|
|
3450
|
+
- `sortValue`/`cell` are read off the column object by identity. Mutating a column **in place**
|
|
3451
|
+
(`t.columns[0].sortValue = …`) neither re-renders nor re-sorts; assign a new `columns` array.
|
|
3452
|
+
- `groupBy` + client sorting are **not** in conflict: the sort runs per group, not across the whole
|
|
3453
|
+
set, so group rows stay contiguous. The consequence is that the group order is normally yours to
|
|
3454
|
+
control — it follows first appearance in `rows`. The single exception is a sort on a column whose
|
|
3455
|
+
value is constant inside every group (the group column itself, a column functionally determined
|
|
3456
|
+
by the group key, or any column at all when every group holds one row): the within-group sort
|
|
3457
|
+
would be a provable no-op, so the groups are ordered by that constant value instead. That is what
|
|
3458
|
+
keeps `aria-sort` and the header chevron honest — otherwise clicking the group column would flip
|
|
3459
|
+
both while changing nothing. To force a group order in any other case, sort `rows` into it before
|
|
3460
|
+
assigning them (or set `sort-mode="server"` and own the whole ordering).
|
|
2964
3461
|
- only single-row selection is modeled (`selectedKey: string | number | null`);
|
|
2965
3462
|
there's no bulk-select/checkbox-column API — you must hand-roll a checkbox column entirely inside
|
|
2966
3463
|
a `cell()` callback if you need multi-select.
|
|
2967
|
-
-
|
|
2968
|
-
|
|
2969
|
-
`this.getAttribute('aria-label')` at render time
|
|
2970
|
-
|
|
2971
|
-
|
|
3464
|
+
- `accessibleLabel: string = ''` (attribute `accessible-label`) — a typed accessible name for the
|
|
3465
|
+
`<table role="grid">`. A plain `aria-label` HTML attribute on the host is also forwarded (read via
|
|
3466
|
+
`this.getAttribute('aria-label')` at render time) and serves as a fallback when `accessibleLabel`
|
|
3467
|
+
is unset. Consumer-supplied text, so neither is run through `this.localize()`.
|
|
3468
|
+
- `caption: string = ''` — an optional visible `<caption>` (exposed as the `caption` CSS part). When
|
|
3469
|
+
no `accessibleLabel`/host `aria-label` is present the caption also names the grid via
|
|
3470
|
+
`aria-labelledby`.
|
|
3471
|
+
- A grid with **none** of `accessibleLabel`, host `aria-label`, or `caption` logs a one-time
|
|
3472
|
+
`console.warn` on first render in development builds only — an unnamed grid is an accessibility
|
|
3473
|
+
defect that otherwise renders silently. Production and unknown/unbundled runtimes do not log it.
|
|
2972
3474
|
- Full roving-tabindex grid keyboard pattern (one `tabindex="0"` stop among header cells, one among
|
|
2973
3475
|
body rows) — Left/Right/Home/End move within the header row, Up/Down/Home/End move within the
|
|
2974
3476
|
body, Down from the header enters the body's roving stop and Up from the body's first row returns
|
|
@@ -3091,6 +3593,11 @@ spacing, border, radius, disabled-opacity, and focus-ring tokens.
|
|
|
3091
3593
|
- below a 20rem container allocation the summary and controls stack; the breakpoint responds to
|
|
3092
3594
|
the component's own inline size, not the viewport. Previous/next icons also mirror under RTL
|
|
3093
3595
|
|
|
3596
|
+
**Additional API surface:**
|
|
3597
|
+
|
|
3598
|
+
- `click()` — Forward host activation to the primary editable page control.
|
|
3599
|
+
- `--lr-pagination-control-radius` — Border radius of navigation buttons and the page input. Default: `var(--lr-radius)`.
|
|
3600
|
+
|
|
3094
3601
|
---
|
|
3095
3602
|
|
|
3096
3603
|
## `lr-gauge`
|
|
@@ -3179,6 +3686,12 @@ visually-hidden `[part="live-region"]` (`role="status" aria-live="polite"`) anno
|
|
|
3179
3686
|
90° for denser packing
|
|
3180
3687
|
- `palette?: string[]` (attribute: false) — custom categorical colors, cycled by word index (or by
|
|
3181
3688
|
`group`); defaults to the `--lr-word-cloud-color-1..8` tokens
|
|
3689
|
+
- `legend: WordCloudLegendItem[] = []` (attribute: false) — optional named `{ label, color }`
|
|
3690
|
+
entries for explaining explicit `words[].color`/group color overrides; when omitted, the
|
|
3691
|
+
component derives entries from grouped and explicitly colored words
|
|
3692
|
+
- `showLegend: boolean = false` (attribute `show-legend`, reflected) — renders the supplied or
|
|
3693
|
+
derived legend below the cloud; the color key is an accessible list and does not change word
|
|
3694
|
+
activation or palette selection
|
|
3182
3695
|
|
|
3183
3696
|
**Methods:** `refreshTheme(): void` — forces a relayout so the `--lr-font` custom property is
|
|
3184
3697
|
re-read from computed style (font-family affects the canvas text measurement layout depends on);
|
|
@@ -3192,8 +3705,8 @@ the currently-focused word — a no-op if nothing is focused yet)
|
|
|
3192
3705
|
|
|
3193
3706
|
**CSS parts:** `base`, `svg`, `word` (each `<text>`), `focus-ring` (the rect around the roving-focus
|
|
3194
3707
|
cursor's word), `live-region` (visually-hidden `role="status" aria-live="polite"` announcement text),
|
|
3195
|
-
`
|
|
3196
|
-
|
|
3708
|
+
`legend`/`legend-item`/`legend-swatch`/`legend-label` (the optional static color key), and `empty`
|
|
3709
|
+
(the no-data placeholder)
|
|
3197
3710
|
|
|
3198
3711
|
**Themeable custom properties:** `--lr-word-cloud-color-1`, `--lr-word-cloud-color-2`,
|
|
3199
3712
|
`--lr-word-cloud-color-3`, `--lr-word-cloud-color-4`, `--lr-word-cloud-color-5`,
|
|
@@ -3607,9 +4120,13 @@ deeply-nested node's own shadow root still reaches it).
|
|
|
3607
4120
|
|
|
3608
4121
|
**Properties:**
|
|
3609
4122
|
- `data: TreeItem[] = []` (attribute: false) — `TreeItem { id: string; label: string; children?:
|
|
3610
|
-
TreeItem[];
|
|
3611
|
-
|
|
3612
|
-
|
|
4123
|
+
TreeItem[]; selected?: boolean; disabled?: boolean; badge?: string | number; badges?: TreeBadge[];
|
|
4124
|
+
icon?: unknown; description?: string; accessibleLabel?: string }`. `TreeBadge` is `{ text:
|
|
4125
|
+
string; tone?: TreeBadgeTone; label?: string }`, where `TreeBadgeTone` is
|
|
4126
|
+
`'neutral'|'brand'|'success'|'warning'|'danger'`. The legacy singular `badge` renders first;
|
|
4127
|
+
`badges` adds tone-mapped chips after it and each chip's accessible name uses `label ?? text`.
|
|
4128
|
+
`icon` renders as a decorative leading visual, `description` as secondary visible row text, and
|
|
4129
|
+
`accessibleLabel` names the `role="treeitem"` host without changing its visible label
|
|
3613
4130
|
- `label: string = ''` — accessible name for the tree; `role="tree"` lives on an internal
|
|
3614
4131
|
`[part="base"]` element. The component forwards a host `aria-label` to that semantic element when
|
|
3615
4132
|
`label` is empty; `label` takes precedence when both are set. External `aria-labelledby` idrefs
|
|
@@ -3685,9 +4202,11 @@ through `lr-tree`'s light DOM.
|
|
|
3685
4202
|
|
|
3686
4203
|
**Slots:** none.
|
|
3687
4204
|
|
|
3688
|
-
**CSS parts:** `row`, `toggle`, `icon`, `content`, `label`, `description`, `badge`, `group`. `
|
|
3689
|
-
|
|
3690
|
-
|
|
4205
|
+
**CSS parts:** `row`, `toggle`, `icon`, `content`, `label`, `description`, `badge`, `group`. `badge`
|
|
4206
|
+
is applied to the legacy singular badge and to every `badges` chip; additive chips carry
|
|
4207
|
+
`data-tone="neutral|brand|success|warning|danger"`. `icon` is `aria-hidden="true"`; `content`
|
|
4208
|
+
groups the primary label and optional wrapping secondary description while preserving one
|
|
4209
|
+
interactive treeitem per row.
|
|
3691
4210
|
|
|
3692
4211
|
**Themeable custom properties:** `--lr-tree-depth` (internal, set inline per row for
|
|
3693
4212
|
indentation), plus the shared tokens listed above.
|
|
@@ -3728,6 +4247,12 @@ indentation), plus the shared tokens listed above.
|
|
|
3728
4247
|
- `lr-file-tree` does **not** forward `reorderable`, and deliberately so: its `TreeItem[]` is derived
|
|
3729
4248
|
from `nodes` on every render and keyed by filesystem path, an order it does not own.
|
|
3730
4249
|
|
|
4250
|
+
**Additional API surface:**
|
|
4251
|
+
|
|
4252
|
+
- `--lr-tree-selected-color` — Selected-node text color.
|
|
4253
|
+
- `--lr-tree-selected-bg` — Selected-node background.
|
|
4254
|
+
- `ancestry` — Ancestor object identities used to stop cyclic caller graphs before recursive rendering. Type: `TreeItem[]`.
|
|
4255
|
+
|
|
3731
4256
|
---
|
|
3732
4257
|
|
|
3733
4258
|
## `lr-flow-canvas`
|
|
@@ -3755,8 +4280,10 @@ controlled-component contract.
|
|
|
3755
4280
|
`lr-node-palette` drag sets, emitting `lr-node-add`
|
|
3756
4281
|
- `locked: boolean = false` (reflected) — freezes pan/zoom/drag/connect without touching the other
|
|
3757
4282
|
gesture flags
|
|
3758
|
-
- `selectedNodeIds: string[] = []`, `selectedEdgeIds: string[] = []` (attribute: false) —
|
|
3759
|
-
|
|
4283
|
+
- `selectedNodeIds: string[] = []`, `selectedEdgeIds: string[] = []` (attribute: false) — seed or
|
|
4284
|
+
replace selection state. Node/edge activation and clear-selection gestures also update these
|
|
4285
|
+
arrays internally before emitting `lr-selection-change`; a host may assign its own authoritative
|
|
4286
|
+
state back.
|
|
3760
4287
|
- `minZoom: number = 0.25` (attribute `min-zoom`), `maxZoom: number = 2` (attribute `max-zoom`)
|
|
3761
4288
|
- `grid: number = 8` — snap step in content px for drags/nudges/drop positions (`0` disables
|
|
3762
4289
|
snapping); also the dotted background's base spacing
|
|
@@ -3835,9 +4362,10 @@ treatment entirely.
|
|
|
3835
4362
|
```
|
|
3836
4363
|
|
|
3837
4364
|
**Known gotchas:**
|
|
3838
|
-
-
|
|
3839
|
-
|
|
3840
|
-
|
|
4365
|
+
- `nodes` and `edges` are controlled inputs: move, connect, add, and delete events are requests the
|
|
4366
|
+
host applies back. Selection is hybrid state: `selectedNodeIds`/`selectedEdgeIds` accept external
|
|
4367
|
+
replacement, while node/edge activation and clear-selection gestures update them internally and
|
|
4368
|
+
emit `lr-selection-change`.
|
|
3841
4369
|
- Auto-layout (via the dependency-free `layeredLayout()` util) only ever positions nodes that are
|
|
3842
4370
|
missing an explicit `position`; a node the host has already positioned is left exactly where it is
|
|
3843
4371
|
and used as a fixed anchor for the rest of the layout pass.
|
|
@@ -3848,6 +4376,12 @@ treatment entirely.
|
|
|
3848
4376
|
deltas are mirrored so content still visually follows the cursor, matching every other
|
|
3849
4377
|
RTL-mirrored surface in this library.
|
|
3850
4378
|
|
|
4379
|
+
**Additional API surface:**
|
|
4380
|
+
|
|
4381
|
+
- `part="edge-hit-area"` — The transparent wide pointer target behind an edge.
|
|
4382
|
+
- `part="node-control"` — The visually hidden, roving selection button for a node.
|
|
4383
|
+
- `--lr-flow-canvas-node-selected-outline-color` — Outline color of a selected node. Default: `var(--lr-flow-canvas-node-current-outline-color,var(--lr-color-brand))`.
|
|
4384
|
+
|
|
3851
4385
|
---
|
|
3852
4386
|
|
|
3853
4387
|
## `lr-flow-node`
|
|
@@ -3927,8 +4461,8 @@ disagree.
|
|
|
3927
4461
|
**Properties:**
|
|
3928
4462
|
- `for: string = ''` — id of the target `lr-flow-canvas`; when empty, the nearest ancestor canvas
|
|
3929
4463
|
is used (the slotted-into-a-corner-slot case, the primary wiring)
|
|
3930
|
-
- `label: string = ''` — accessible name for the map region
|
|
3931
|
-
|
|
4464
|
+
- `label: string = ''` — accessible name for the map region. A host `aria-label` takes precedence,
|
|
4465
|
+
followed by `label`, then the localized default
|
|
3932
4466
|
|
|
3933
4467
|
**Events:** none.
|
|
3934
4468
|
|
|
@@ -3955,6 +4489,11 @@ draggable, focusable view rectangle).
|
|
|
3955
4489
|
- Dragging the viewport rectangle calls the canvas's `setViewport()` directly; there's no separate
|
|
3956
4490
|
event to wire up.
|
|
3957
4491
|
|
|
4492
|
+
**Additional API surface:**
|
|
4493
|
+
|
|
4494
|
+
- `part="instructions"` — Visually hidden keyboard instructions for the viewport.
|
|
4495
|
+
- `part="live-region"` — Visually hidden viewport-change announcements.
|
|
4496
|
+
|
|
3958
4497
|
---
|
|
3959
4498
|
|
|
3960
4499
|
## `lr-flow-controls`
|
|
@@ -4106,10 +4645,12 @@ capacity), `segment` (one occupied segment — carries `data-tone` and, for cust
|
|
|
4106
4645
|
<lr-context-meter variant="ring" total="128000" .segments=${segments}></lr-context-meter>
|
|
4107
4646
|
```
|
|
4108
4647
|
|
|
4109
|
-
`role="
|
|
4110
|
-
`
|
|
4111
|
-
`
|
|
4112
|
-
|
|
4648
|
+
An internal visually-hidden semantic node carries `role="meter"` plus `aria-valuenow`,
|
|
4649
|
+
`aria-valuemin`, and `aria-valuemax` whenever `total > 0`; without a valid positive total it uses
|
|
4650
|
+
`role="group"` and omits numeric meter attributes. Its accessible name is the host `aria-label`
|
|
4651
|
+
when present, otherwise the generated summary. A separate visually-hidden segment list exposes
|
|
4652
|
+
each labeled quantity, while the visible track, segments, ring SVG, and visible label remain
|
|
4653
|
+
`aria-hidden`. The summary's "used" figure is the sum of
|
|
4113
4654
|
`segments[].value`, clamped to `total` whenever `total > 0` so the announced text can never claim
|
|
4114
4655
|
more than 100% used (e.g. `segments` summing to `150000` against `total="128000"` still announces
|
|
4115
4656
|
`"128,000 of 128,000 used"`) — matching what the *visual* meter shows, since each segment's ratio is
|
|
@@ -4123,8 +4664,8 @@ numbers, so the two circular-meter components in the library share one visual sc
|
|
|
4123
4664
|
|
|
4124
4665
|
**Known gotchas:**
|
|
4125
4666
|
- The ring variant's per-segment `<title>` and the bar variant's per-segment `title=` attribute are
|
|
4126
|
-
native mouse-hover tooltips only — they sit inside `aria-hidden` markup
|
|
4127
|
-
|
|
4667
|
+
native mouse-hover tooltips only — they sit inside `aria-hidden` markup. Screen readers use the
|
|
4668
|
+
hidden meter/group summary and segment list instead.
|
|
4128
4669
|
- `variant="ring"` fixes the host at `8em × 8em` (`:host([variant='ring'])`) — the bar variant's
|
|
4129
4670
|
`inline-size: 100%` does not apply in ring mode; resize it via `font-size` or an explicit
|
|
4130
4671
|
width/height override on the host instead.
|
|
@@ -4132,6 +4673,12 @@ numbers, so the two circular-meter components in the library share one visual sc
|
|
|
4132
4673
|
`segments` render further around the circle (starting at 12 o'clock, going clockwise); there's no
|
|
4133
4674
|
independent sort/z-order control.
|
|
4134
4675
|
|
|
4676
|
+
**Additional API surface:**
|
|
4677
|
+
|
|
4678
|
+
- `part="segment-item"` — One visually-hidden segment label/count pair.
|
|
4679
|
+
- `part="segment-list"` — The visually-hidden list exposing the segment breakdown.
|
|
4680
|
+
- `part="semantic"` — The visually-hidden meter/group carrying aggregate range semantics.
|
|
4681
|
+
|
|
4135
4682
|
---
|
|
4136
4683
|
|
|
4137
4684
|
## `lr-calendar`
|
|
@@ -4301,13 +4848,28 @@ parts:** `base`, `path-fields`, `start-input`, `end-input`, `relationship-picker
|
|
|
4301
4848
|
`saved-queries`, `saved-queries-label`, `saved-list`, `saved-item`, `saved-load-button`,
|
|
4302
4849
|
`saved-delete-button`, `saved-empty`.
|
|
4303
4850
|
|
|
4851
|
+
**Additional API surface:**
|
|
4852
|
+
|
|
4853
|
+
- `errorText` — Caller-supplied outer error text. Field-level validation remains on the affected controls. Type: `string`.
|
|
4854
|
+
- `hint` — Supporting text rendered below the outer label. Type: `string`.
|
|
4855
|
+
- `error-text` attribute — Caller-supplied outer error text. Field-level validation remains on the affected controls.
|
|
4856
|
+
- `hint` attribute — Supporting text rendered below the outer label.
|
|
4857
|
+
- `hint` slot — Supporting text for the complete form control.
|
|
4858
|
+
- `part="hint"` — Supporting text for the complete form control.
|
|
4859
|
+
|
|
4304
4860
|
## `lr-query-builder`
|
|
4305
4861
|
|
|
4306
4862
|
Composable structured-query builder for tabular or dashboard data: condition rows combined with an
|
|
4307
4863
|
AND/OR combinator.
|
|
4308
4864
|
|
|
4309
|
-
**Properties:** `fields`, `value`, `disabled
|
|
4310
|
-
|
|
4865
|
+
**Properties:** `fields`, `value`, `disabled`.
|
|
4866
|
+
|
|
4867
|
+
**Methods:** `addCondition()` appends a condition using the first available field and emits
|
|
4868
|
+
`lr-add-condition`; it is a no-op while disabled or when there are no fields.
|
|
4869
|
+
`removeCondition(id)` removes the matching condition and emits `lr-remove-condition`; it is a
|
|
4870
|
+
no-op while disabled or when the id is absent.
|
|
4871
|
+
|
|
4872
|
+
**Events:** `lr-input`, `lr-add-condition`, `lr-remove-condition`. **CSS parts:** `base`, `conditions`,
|
|
4311
4873
|
`condition`, `field-select`, `operator-select`, `value`, `combinator`, `add-button`,
|
|
4312
4874
|
`remove-button`, `empty`.
|
|
4313
4875
|
|
|
@@ -4321,9 +4883,18 @@ auto-inserted between each adjacent pair.
|
|
|
4321
4883
|
**Properties:**
|
|
4322
4884
|
- `sizes: number[] = []` (attribute: false — percentages per panel, auto-computed equally if
|
|
4323
4885
|
omitted/mismatched)
|
|
4324
|
-
- `defaultSizes: number[] = []` (attribute: false) — initialization-only fallback: a
|
|
4325
|
-
`storageKey` layout wins first; otherwise a valid `defaultSizes` wins over equal
|
|
4326
|
-
|
|
4886
|
+
- `defaultSizes: (number | string)[] = []` (attribute: false) — initialization-only fallback: a
|
|
4887
|
+
valid restored `storageKey` layout wins first; otherwise a valid `defaultSizes` wins over equal
|
|
4888
|
+
distribution. Initialization occurs on the first update so framework property bindings committed
|
|
4889
|
+
after connection in the same turn — including `defaultSizes` and `storageKey` — are honored
|
|
4890
|
+
before the layout becomes live. Later reassignment never overwrites live drag/persisted state —
|
|
4891
|
+
set it once, at mount. Each entry is either a plain **number** (percent-of-container, validated unchanged: a
|
|
4892
|
+
pure-number array that does not sum to ~100, e.g. `[30, 60]`, is still rejected and falls through
|
|
4893
|
+
to the equal split) or a CSS **length string** (`'200px'`, `'20%'`, `'3rem'`). When at least one
|
|
4894
|
+
entry is a length string, every entry is resolved against the measured container (numbers as
|
|
4895
|
+
percent-of-container, `%` as-is, `px`/`rem`/`em` via the shared length resolver) and then
|
|
4896
|
+
normalized to percentages before the same validation applies — so `['200px', '300px']` on a 500px
|
|
4897
|
+
container initializes to `[40, 60]`.
|
|
4327
4898
|
- `min: number = 10` (min % per panel)
|
|
4328
4899
|
- `orientation: 'horizontal'|'vertical' = 'horizontal'` (reflected) — the axis used at/above
|
|
4329
4900
|
`orientationBreakpoint` (or always, when that's unset).
|
|
@@ -4558,15 +5129,20 @@ position) survives the transition.
|
|
|
4558
5129
|
- `backdropInset: string = ''` (attribute `backdrop-inset`) — overrides the fullscreen backdrop's
|
|
4559
5130
|
CSS `inset` independently from `fullscreenInset`; when empty, it follows `fullscreenInset`
|
|
4560
5131
|
- `views: WidgetView[] = []` (attribute: false) — named alternate views for the panel body, e.g. a
|
|
4561
|
-
chart/table toggle inside the same card chrome; `WidgetView { id: string; label
|
|
4562
|
-
TemplateResult }`. Each entry gets a header toggle button
|
|
4563
|
-
`<slot name="view-${id}">`.
|
|
4564
|
-
|
|
5132
|
+
chart/table toggle inside the same card chrome; `WidgetView { id: string; label?: string; icon?:
|
|
5133
|
+
TemplateResult; ariaLabel?: string }`. Each entry gets a header toggle button
|
|
5134
|
+
(`[part='view-toggle']`) and a `<slot name="view-${id}">`. An icon-only view should set
|
|
5135
|
+
`ariaLabel`; if both labels are omitted, the button uses `id` as a last-resort accessible name.
|
|
5136
|
+
Empty (the default) renders today's single unnamed default slot as the sole view, unchanged.
|
|
4565
5137
|
- `activeView: string = ''` (attribute: false) — the currently active view's `id`; defaults to the
|
|
4566
5138
|
first entry of `views` (or `''` when `views` is empty). Settable directly to control the active
|
|
4567
5139
|
view externally; also updated internally when a view toggle is clicked.
|
|
4568
|
-
- `accessibleLabel: string =
|
|
4569
|
-
dialog name.
|
|
5140
|
+
- `accessibleLabel: string | null = null` (attribute `aria-label`) — overrides the label-derived
|
|
5141
|
+
fullscreen dialog name.
|
|
5142
|
+
- `storageKey?: string` (attribute `storage-key`) — when set, persists `collapsed` to `localStorage`
|
|
5143
|
+
under `lr-widget:${storageKey}` and restores it on the next mount (mirrors `lr-app-rail`'s/
|
|
5144
|
+
`lr-table`'s identical `storage-key` pattern). Without a `storageKey` there is no persistence and
|
|
5145
|
+
storage is never touched — listen for `lr-collapse-change` and persist the state yourself.
|
|
4570
5146
|
|
|
4571
5147
|
**Events:** `lr-collapse-change` (`detail: { collapsed }`, the new state), `lr-fullscreen-change`
|
|
4572
5148
|
(`detail: { fullscreen }` — also fired when fullscreen is exited via Escape or a backdrop click, not
|
|
@@ -4629,6 +5205,9 @@ space for a persistent sidebar/toolbar that should stay visible instead of being
|
|
|
4629
5205
|
fullscreen panel/backdrop — it overrides the default `var(--lr-space-l)` inset on every side for
|
|
4630
5206
|
both `[part="base"]` and `[part="backdrop"]`. Set `compact` for tighter header/body padding.
|
|
4631
5207
|
|
|
5208
|
+
The collapse-button `aria-label` is localized via its own `widgetCollapse` (default `'Collapse
|
|
5209
|
+
panel'`) and `widgetExpand` (default `'Expand panel'`) keys.
|
|
5210
|
+
|
|
4632
5211
|
**Known gotchas:**
|
|
4633
5212
|
- a reconnect that preserves the same element instance (e.g. a drag-and-drop reparent) resumes its
|
|
4634
5213
|
shared overlay registration and re-acquires the scroll lock if `fullscreen` was still `true`
|
|
@@ -4636,6 +5215,16 @@ both `[part="base"]` and `[part="backdrop"]`. Set `compact` for tighter header/b
|
|
|
4636
5215
|
between, so `willUpdate()` alone wouldn't otherwise notice.
|
|
4637
5216
|
- `collapsed` hides the body via `hidden` rather than an animated height transition — collapsing is
|
|
4638
5217
|
instant, not a slide.
|
|
5218
|
+
- prior to this release the collapse-button `aria-label` was localized through `lr-dock-panel`'s
|
|
5219
|
+
own `dockPanelCollapse`/`dockPanelExpand` keys (a borrowed, differently-named pair). A locale
|
|
5220
|
+
registered against those keys specifically to target `lr-widget`'s collapse button should move
|
|
5221
|
+
to `widgetCollapse`/`widgetExpand`; the default English strings are unchanged, and `lr-dock-panel`
|
|
5222
|
+
itself is unaffected.
|
|
5223
|
+
|
|
5224
|
+
**Additional API surface:**
|
|
5225
|
+
|
|
5226
|
+
- `part="view-icon"` — Decorative icon content inside a view toggle.
|
|
5227
|
+
- `part="view-label"` — Visible label text inside a view toggle.
|
|
4639
5228
|
|
|
4640
5229
|
---
|
|
4641
5230
|
|
|
@@ -4838,9 +5427,8 @@ before, so rendering is unchanged. Otherwise shared tokens —
|
|
|
4838
5427
|
Ordered multi-step wizard/form navigation: an index/label per step, `current`/`completed`/`disabled`/
|
|
4839
5428
|
`error` state, and click-to-jump. First-party invention (no Web Awesome equivalent). Fully
|
|
4840
5429
|
data-driven and controlled, like `lr-table`'s `columns`/`rows` — it never mutates `steps` itself; a
|
|
4841
|
-
click, or Enter/Space on a non-disabled step, fires a cancelable `lr-step-select`, and the host
|
|
4842
|
-
decides whether/how `steps` changes in response
|
|
4843
|
-
convention).
|
|
5430
|
+
click, or Enter/Space on a non-disabled step, fires a non-cancelable `lr-step-select`, and the host
|
|
5431
|
+
decides whether/how `steps` changes in response.
|
|
4844
5432
|
|
|
4845
5433
|
**Properties:**
|
|
4846
5434
|
- `steps: StepItem[] = []` (attribute: false) — `StepItem { id: string; label: string; state:
|
|
@@ -4886,19 +5474,20 @@ convention).
|
|
|
4886
5474
|
doesn't resolve to a length. Also reflected as `data-effective-orientation` (only present while
|
|
4887
5475
|
`orientationBreakpoint` resolves to a usable length).
|
|
4888
5476
|
- `accessibleLabel: string | null = null` (attribute `aria-label`) — accessible name applied to the
|
|
4889
|
-
`role="
|
|
4890
|
-
|
|
5477
|
+
`role="list"` step strip; attribute-reflects from a host-level `aria-label`. Unset, the list
|
|
5478
|
+
renders without an `aria-label` (there is no localized default name).
|
|
4891
5479
|
|
|
4892
5480
|
**Events:** `lr-step-select` (`detail: { index, id }`) — fired on click, or Enter/Space while
|
|
4893
|
-
focused, on a non-`disabled` step.
|
|
4894
|
-
|
|
4895
|
-
single place to short-circuit its own listener's follow-up work. `lr-stepper-orientation-change`
|
|
5481
|
+
focused, on a non-`disabled` step. It is non-cancelable because the component takes no default
|
|
5482
|
+
action to veto: it never mutates `steps`. `lr-stepper-orientation-change`
|
|
4896
5483
|
(`detail: { orientation }`) — fired only when an enabled `orientationBreakpoint` actually changes
|
|
4897
5484
|
`effectiveOrientation`.
|
|
4898
5485
|
|
|
4899
5486
|
**Slots:** none.
|
|
4900
5487
|
|
|
4901
|
-
**CSS parts:** `base` (root wrapper, `role="
|
|
5488
|
+
**CSS parts:** `base` (root wrapper, `role="list"`), `step-item` (the `role="listitem"` wrapper for
|
|
5489
|
+
one step), `step` (a single native button; the current step carries `aria-current="step"` and every
|
|
5490
|
+
other step carries `aria-current="false"`),
|
|
4902
5491
|
`step-icon` (optional leading topic glyph from the step's `icon` field; only rendered when the step
|
|
4903
5492
|
has one, additionally to — never instead of — `step-index`/`step-check`), `step-index` (the numbered
|
|
4904
5493
|
index chip, shown for `pending`/`current`/`error` steps), `step-check` (the completed-checkmark
|
|
@@ -4949,9 +5538,9 @@ each falls back to the token its rule used before. Otherwise shared tokens —
|
|
|
4949
5538
|
- there's no built-in "step forward/back" method — advancing the wizard is entirely the host's job:
|
|
4950
5539
|
react to `lr-step-select` (or its own Next/Back buttons) and reassign `steps` with updated
|
|
4951
5540
|
`state` values.
|
|
4952
|
-
-
|
|
4953
|
-
|
|
4954
|
-
|
|
5541
|
+
- The stepper exposes ordered progress/navigation semantics (`list`/`listitem` plus native step
|
|
5542
|
+
buttons), not tabs: it owns no tab panels. Roving tabindex and orientation-aware arrow-key
|
|
5543
|
+
navigation remain available independently of those semantics.
|
|
4955
5544
|
- Left/Right (horizontal) and Up/Down (vertical) are mutually exclusive per `orientation` — there's
|
|
4956
5545
|
no single set of keys that works in both.
|
|
4957
5546
|
|
|
@@ -5102,6 +5691,13 @@ labeled options, rendered as a button row" is ubiquitous settings/filter-panel U
|
|
|
5102
5691
|
**Events:** `lr-change` (`detail: { value }`) — fired when the selected value changes via click or
|
|
5103
5692
|
keyboard.
|
|
5104
5693
|
|
|
5694
|
+
**Methods:**
|
|
5695
|
+
- `scrollToValue(value: string): void` — scroll the segment with the given `value` into view within
|
|
5696
|
+
the (possibly overflowing) track, without changing the selection. Honors
|
|
5697
|
+
`prefers-reduced-motion` (falls back to `behavior: 'auto'`). This runs automatically when `value`
|
|
5698
|
+
is changed programmatically (keyboard navigation already reveals the focused segment on its own),
|
|
5699
|
+
so you only need to call it for the "reveal without selecting" case.
|
|
5700
|
+
|
|
5105
5701
|
**Slots:** none.
|
|
5106
5702
|
|
|
5107
5703
|
**CSS parts:** `base` (the `role="radiogroup"` root), `segment` (a single `role="radio"` button),
|
|
@@ -5163,6 +5759,12 @@ Otherwise shared tokens — `--lr-color-border`/`-surface`/`-text`/
|
|
|
5163
5759
|
- the semantic `radiogroup` lives inside shadow DOM. Set `label` (preferred for reactive code) or a
|
|
5164
5760
|
host `aria-label`; the component deliberately forwards the resulting name to that internal role.
|
|
5165
5761
|
|
|
5762
|
+
**Additional API surface:**
|
|
5763
|
+
|
|
5764
|
+
- `--lr-segmented-track-gap` — Gap between segments. Default: `var(--lr-size-0-125rem)`.
|
|
5765
|
+
- `--lr-segmented-track-radius` — Track corner radius. Default: `var(--lr-radius)`.
|
|
5766
|
+
- `--lr-segmented-track-padding` — Track inset padding. Default: `var(--lr-size-0-125rem)`.
|
|
5767
|
+
|
|
5166
5768
|
---
|
|
5167
5769
|
|
|
5168
5770
|
## `lr-virtual-list`
|
|
@@ -5232,7 +5834,7 @@ invention (no Web Awesome equivalent).
|
|
|
5232
5834
|
- `overscan: number = 6` — extra rows rendered beyond the visible viewport on each side; finite
|
|
5233
5835
|
values are floored and clamped to 0–100, while non-finite values use the default 6, so an invalid
|
|
5234
5836
|
runtime value cannot disable windowing and render the entire collection.
|
|
5235
|
-
- `activeId: string = ''` (attribute `active-id`) — when set and it matches a row's `keyFunction`
|
|
5837
|
+
- `activeId: string | number | '' = ''` (attribute `active-id`) — when set and it matches a row's `keyFunction`
|
|
5236
5838
|
result (compared with `Object.is` against the typed value — attribute values arrive as strings, so
|
|
5237
5839
|
assign the property directly for a numeric key), that row is smoothly scrolled into view whenever
|
|
5238
5840
|
this changes, and rendered with `aria-current="true"`.
|
|
@@ -5408,8 +6010,13 @@ content is never duplicated.
|
|
|
5408
6010
|
|
|
5409
6011
|
Opting in to `resizable` adds a continuously draggable width for the `'full'` state: a
|
|
5410
6012
|
`[part="resizer"]` handle (pointer-drag and Left/Right-arrow keyboard stepping, RTL-aware) clamped to
|
|
5411
|
-
`[minRailWidthPx, maxRailWidthPx]
|
|
5412
|
-
|
|
6013
|
+
`[minRailWidthPx, maxRailWidthPx]`. Set `storageKey` (attribute `storage-key`) to persist the fields
|
|
6014
|
+
selected by `persist` to `localStorage` under `lr-app-rail:${storageKey}` and restore them on the
|
|
6015
|
+
next mount (mirrors `lr-split`'s `storage-key`; effective `mode` is breakpoint-derived and never
|
|
6016
|
+
persisted). The backward-compatible allowlist is `open width`; use
|
|
6017
|
+
`persist="width preferred-mode"` for durable layout preference without restoring the transient
|
|
6018
|
+
mobile overlay. Without a `storageKey` there is no persistence — listen for `lr-rail-resize` and
|
|
6019
|
+
persist `widthPx` yourself.
|
|
5413
6020
|
`preferredMode` separately lets a host manually prefer `'full'`/`'icon-only'` for the non-mobile
|
|
5414
6021
|
breakpoint axis (e.g. a user's own collapse toggle) while `mobile-breakpoint` continues to be tracked
|
|
5415
6022
|
automatically regardless — it's only consulted while `mode` isn't force-pinned via the `mode`
|
|
@@ -5454,6 +6061,14 @@ accessor itself, which still takes full priority.
|
|
|
5454
6061
|
- `railWidthPx?: number` (attribute `rail-width-px`) — the rail's current width in px while
|
|
5455
6062
|
`resizable`; settable/gettable directly. Unset defers to `--lr-app-rail-width`'s own resolved
|
|
5456
6063
|
width.
|
|
6064
|
+
- `storageKey?: string` (attribute `storage-key`) — when set, persists the fields selected by
|
|
6065
|
+
`persist` to `localStorage` under `lr-app-rail:${storageKey}` and restores them on the next
|
|
6066
|
+
mount. Effective `mode` is breakpoint-derived and never persisted. Unset means no persistence.
|
|
6067
|
+
- `persist: string = 'open width'` — whitespace-separated field allowlist used with `storageKey`.
|
|
6068
|
+
Valid `AppRailPersistField` tokens are `open`, `width` (`railWidthPx`), and `preferred-mode`
|
|
6069
|
+
(`preferredMode`). The default preserves the existing open+width behavior. Use
|
|
6070
|
+
`persist="width preferred-mode"` when overlay-open state is controlled or should stay
|
|
6071
|
+
session-only.
|
|
5457
6072
|
- `minRailWidthPx: number = 190` (attribute `min-rail-width-px`) — minimum `railWidthPx` a
|
|
5458
6073
|
drag/keyboard resize can reach.
|
|
5459
6074
|
- `maxRailWidthPx: number = 440` (attribute `max-rail-width-px`) — maximum `railWidthPx` a
|
|
@@ -5771,8 +6386,12 @@ returning to the trigger)
|
|
|
5771
6386
|
**Slots:** `trigger` (the consumer's own trigger element — first assigned element wins if several
|
|
5772
6387
|
are assigned; enhanced imperatively with `aria-haspopup="menu"`/`aria-expanded`/`aria-controls`
|
|
5773
6388
|
since those attributes belong on the actual interactive trigger, which lives outside this
|
|
5774
|
-
component's shadow root
|
|
5775
|
-
|
|
6389
|
+
component's shadow root. `aria-controls` targets the `lr-menu` host, which receives a stable
|
|
6390
|
+
generated id only when the consumer did not provide one, rather than the shadow-private list id.
|
|
6391
|
+
`lr-button`/`lr-icon-button` forward the popup/expanded values to their focused shadow-internal
|
|
6392
|
+
native control and resolve the controls element-reference across their shadow boundary), default
|
|
6393
|
+
(`<lr-menu-item>` elements, plus optionally plain `<hr>` dividers — native `<hr>` already carries
|
|
6394
|
+
an implicit `separator` role),
|
|
5776
6395
|
`header` and `footer` (composed, deliberately non-menu-item content — a filter/search field, a
|
|
5777
6396
|
section title, an "Apply"/"Done" button, a count — rendered above/below the items inside
|
|
5778
6397
|
`[part="popup"]` but **outside** the `role="menu"` list. Both collapse to no box at all while
|
|
@@ -5954,8 +6573,10 @@ docked case.
|
|
|
5954
6573
|
- `collapsible: boolean = false` (reflected)
|
|
5955
6574
|
- `collapsed: boolean = false` (reflected)
|
|
5956
6575
|
- `resizable: boolean = true` (reflected) — when `false`, no drag handle renders at all and the panel
|
|
5957
|
-
is a fixed size.
|
|
5958
|
-
|
|
6576
|
+
is a fixed size. Its string-aware converter accepts `resizable="false"` as false despite the
|
|
6577
|
+
true default. A Lit property binding (`.resizable=${false}`) also disables it; a false
|
|
6578
|
+
boolean-attribute binding (`?resizable=${false}`) only removes the attribute and cannot override
|
|
6579
|
+
a true-defaulting property.
|
|
5959
6580
|
|
|
5960
6581
|
**Exported helper:** `parseLengthPx(length: string, containerPx: number, fontSizeEl: Element =
|
|
5961
6582
|
document.documentElement): number | undefined` — resolves an arbitrary CSS length (`px`, `rem`, `em`,
|
|
@@ -6047,6 +6668,11 @@ to `<wa-card>`'s contract, staying slot-compatible with `lr-result-card` where t
|
|
|
6047
6668
|
reproduces a plain static card: no `tabindex`, no listeners, no events.
|
|
6048
6669
|
- `href?: string` — when set, the card's root renders as a real `<a href=...>` instead of a `<div>`,
|
|
6049
6670
|
for a whole-card link (e.g. a wide CTA tile). Unset (the default) renders a plain `<div>`.
|
|
6671
|
+
- `target?: string` — native anchor target, applied only while `href` resolves to a link. Setting it
|
|
6672
|
+
to `'_blank'` (or any other target) automatically derives `rel="noopener noreferrer"` on the
|
|
6673
|
+
rendered anchor; there is deliberately **no** separately-settable `rel` property, so a consumer
|
|
6674
|
+
can't forget it and leave the opened page holding a `window.opener` back-reference
|
|
6675
|
+
(reverse-tabnabbing). Unset (the default) emits neither `target` nor `rel`.
|
|
6050
6676
|
|
|
6051
6677
|
**Events:** `lr-card-activate` (no detail) — the whole card was activated, by click or by
|
|
6052
6678
|
Enter/Space while `[part='base']` has focus. Only fired while `interactive` is set **without**
|
|
@@ -6102,6 +6728,11 @@ the `footer` slot, hidden entirely when empty).
|
|
|
6102
6728
|
`<lr-button>` retargets to the host, but its composed path still contains the internal native
|
|
6103
6729
|
`<button>`.
|
|
6104
6730
|
|
|
6731
|
+
**Additional API surface:**
|
|
6732
|
+
|
|
6733
|
+
- `accessibleLabel` — Host `aria-label` forwarded to the native no-href activation button. Type: `string | null`.
|
|
6734
|
+
- `part="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.
|
|
6735
|
+
|
|
6105
6736
|
---
|
|
6106
6737
|
|
|
6107
6738
|
## `lr-command-palette`
|
|
@@ -6154,6 +6785,13 @@ after `::part()`), so highlighting the active row previously required hijacking
|
|
|
6154
6785
|
`--lr-color-brand-quiet` token and repainting everything else that read it. Unset, it falls back to
|
|
6155
6786
|
that token, so rendering is unchanged.
|
|
6156
6787
|
|
|
6788
|
+
**Additional API surface:**
|
|
6789
|
+
|
|
6790
|
+
- `part="command-group"` — A labeled ARIA group containing visible command options.
|
|
6791
|
+
- `part="list-spacer"` — Virtual result extent inside the scrolling list.
|
|
6792
|
+
- `--lr-command-palette-row-height` — Virtual command-row height. Default: `var(--lr-size-3rem)`.
|
|
6793
|
+
- `--lr-command-palette-group-height` — Virtual group-heading height. Default: `var(--lr-size-2rem)`.
|
|
6794
|
+
|
|
6157
6795
|
## `lr-details`, `lr-accordion`, and `lr-accordion-item`
|
|
6158
6796
|
|
|
6159
6797
|
`lr-details` is a native-semantics disclosure panel. `lr-accordion` coordinates slotted
|
|
@@ -6192,6 +6830,10 @@ set on the item, on `<lr-breadcrumb>`, or on any ancestor above the trail:
|
|
|
6192
6830
|
`--lr-color-text-quiet` token and repainting everything else that read it. Unset, it falls back to
|
|
6193
6831
|
that token.
|
|
6194
6832
|
|
|
6833
|
+
**Additional API surface:**
|
|
6834
|
+
|
|
6835
|
+
- `part="separator"` — Decorative separator shown before non-first items.
|
|
6836
|
+
|
|
6195
6837
|
## `lr-dashboard-grid`
|
|
6196
6838
|
|
|
6197
6839
|
Responsive, keyboard-accessible controlled widget grid. It positions layout entries and emits
|
|
@@ -6218,6 +6860,10 @@ overriding them from a stylesheet has no effect — set the properties instead.
|
|
|
6218
6860
|
preview of its own `:focus-visible` ring, shown because every cell is a real focusable,
|
|
6219
6861
|
draggable/resizable target; set it to `transparent` to opt out of the hover treatment entirely.
|
|
6220
6862
|
|
|
6863
|
+
**Additional API surface:**
|
|
6864
|
+
|
|
6865
|
+
- `--lr-dashboard-grid-collision-outline-color` — Outline color of a cell whose current drag/resize preview collides with another cell. Default: `var(--lr-color-danger)`.
|
|
6866
|
+
|
|
6221
6867
|
## `lr-drilldown-panel`
|
|
6222
6868
|
|
|
6223
6869
|
Controlled navigation shell from a chart or table datum to related evidence, documents, entities,
|
|
@@ -6236,10 +6882,25 @@ false), `accessibleLabel: string | null = null` (attribute `aria-label` — name
|
|
|
6236
6882
|
|
|
6237
6883
|
Dashboard filter row that composes Lyra inputs and removable chips, with reset and loading states.
|
|
6238
6884
|
|
|
6239
|
-
**Properties:**
|
|
6240
|
-
|
|
6241
|
-
|
|
6242
|
-
|
|
6885
|
+
**Properties:**
|
|
6886
|
+
|
|
6887
|
+
- `filters: FilterBarFilterDefinition[] = []` (attribute: false) — filter schema in render order.
|
|
6888
|
+
- `value: FilterBarValue = {}` (attribute: false) — current values keyed by filter id; reads and
|
|
6889
|
+
writes are shallow-copied.
|
|
6890
|
+
- `label: string = ''` — accessible name for the internal `role="group"`.
|
|
6891
|
+
- `disabled: boolean = false` (reflected) — disables every filter control and reset action.
|
|
6892
|
+
- `loading: boolean = false` (reflected) — shows the status spinner and disables reset while leaving
|
|
6893
|
+
filters editable.
|
|
6894
|
+
- `hasActiveFilters: boolean` (read-only) — whether any configured filter currently has a value.
|
|
6895
|
+
- `invalidFilterIds: string[]` (read-only) — ids of required filters whose values are unset.
|
|
6896
|
+
|
|
6897
|
+
**Methods:** `checkValidity(): boolean` returns whether every required filter is set without
|
|
6898
|
+
revealing errors; `reportValidity(): boolean` returns the same state and reveals every current
|
|
6899
|
+
required-field error; `reset(): void` restores each definition's `defaultValue` (or unsets it),
|
|
6900
|
+
unless the bar is disabled.
|
|
6901
|
+
|
|
6902
|
+
**Events:** `lr-input`, `lr-reset`, `lr-validity-change`. **CSS parts:** `base`, `controls`,
|
|
6903
|
+
`filter-control`, `active-filters`, `chips`, `chip`, `reset-button`, `status`.
|
|
6243
6904
|
|
|
6244
6905
|
Each filter definition's `type` selects which existing Lyra input renders it — this component
|
|
6245
6906
|
composes them and never invents a control of its own. `'select'`/`'combobox'` map to their
|
|
@@ -6314,8 +6975,8 @@ DOM.
|
|
|
6314
6975
|
|
|
6315
6976
|
**Themeable custom properties:** `--lr-toast-accent-width` (4px),
|
|
6316
6977
|
`--lr-toast-show-duration`/`--lr-toast-hide-duration`
|
|
6317
|
-
(`var(--lr-transition-base, 180ms ease-out)` —
|
|
6318
|
-
|
|
6978
|
+
(`var(--lr-transition-base, 180ms ease-out)` — the show/hide lifecycle reads the resolved computed
|
|
6979
|
+
transition duration and uses it for its completion fallback), `--lr-toast-padding`
|
|
6319
6980
|
(`var(--lr-space-m)`), `--lr-toast-font-size` (`1rem`) — both are auto-swapped per `size`, from a
|
|
6320
6981
|
compact `xs` up to a roomier `xl` — `--lr-toast-accent-color` (defaults to `--lr-color-border`,
|
|
6321
6982
|
auto-swapped per `variant` to `--lr-color-brand/-success/-warning/-danger`).
|
|
@@ -6338,7 +6999,7 @@ From the `toaster` controller — the ergonomic entry point, no manual `<lr-toas
|
|
|
6338
6999
|
needed:
|
|
6339
7000
|
|
|
6340
7001
|
```ts
|
|
6341
|
-
import { toast } from '@aceshooting/lyra-ui';
|
|
7002
|
+
import { toast } from '@aceshooting/lyra-ui/components/overlays/toast/toaster.js';
|
|
6342
7003
|
|
|
6343
7004
|
toast('Saved');
|
|
6344
7005
|
toast({ message: 'Deleted', variant: 'danger', action: { label: 'Undo', onClick: (item) => {/*...*/} } });
|
|
@@ -6353,16 +7014,14 @@ at another, since `placement` is a per-call option rather than a single global r
|
|
|
6353
7014
|
|
|
6354
7015
|
```html
|
|
6355
7016
|
<script type="module">
|
|
6356
|
-
import { toast } from '@aceshooting/lyra-ui';
|
|
7017
|
+
import { toast } from '@aceshooting/lyra-ui/components/overlays/toast/toaster.js';
|
|
6357
7018
|
document.getElementById('save-btn').addEventListener('click', () => toast('Saved!'));
|
|
6358
7019
|
</script>
|
|
6359
7020
|
```
|
|
6360
7021
|
|
|
6361
7022
|
**Known gotchas:**
|
|
6362
|
-
-
|
|
6363
|
-
|
|
6364
|
-
own `role` (`status`/`alert`) — nesting live regions can cause some screen readers to announce a
|
|
6365
|
-
new toast twice. Plausible from the code, unverified against real AT.
|
|
7023
|
+
- the stack itself has no live-region role; each `lr-toast-item` owns the single `status`/`alert`
|
|
7024
|
+
role appropriate to its current variant, avoiding nested live-region announcements.
|
|
6366
7025
|
- the close button's accessible name is derived from the toast's own message text (`"Close: <first
|
|
6367
7026
|
40 chars>…"`, falling back to bare `"Close"` only when the toast has no text content) rather than
|
|
6368
7027
|
a bare `"Close"` on every instance — useful when several toasts are stacked and a screen-reader or
|
|
@@ -6401,7 +7060,9 @@ the existing `flex-start` cross-axis and `start` text alignment, and `center` ce
|
|
|
6401
7060
|
`--lr-empty-compact-padding` (default `--lr-space-xs` — padding used in compact mode),
|
|
6402
7061
|
`--lr-empty-compact-gap` (default `--lr-space-2xs` — gap between the icon, heading, and description
|
|
6403
7062
|
in compact mode; the non-compact layout's gap stays the plain shared `--lr-space-s` token, not
|
|
6404
|
-
independently themeable),
|
|
7063
|
+
independently themeable), `--lr-empty-compact-font-size` (compact mode only; unset by default with
|
|
7064
|
+
**no fallback value** — the compact heading keeps its ordinary inherited font size until a
|
|
7065
|
+
consumer explicitly sets this token), plus shared tokens (`--lr-space-xs/-s/-l`,
|
|
6405
7066
|
`--lr-color-text-quiet/-border/-text`).
|
|
6406
7067
|
|
|
6407
7068
|
**Optional peer deps:** none.
|
|
@@ -6696,16 +7357,13 @@ already follow.
|
|
|
6696
7357
|
whole pill using a loud-color-on-quiet-tint convention; `neutral` has no dedicated token pair, so
|
|
6697
7358
|
it falls back to a plain bordered-surface look)
|
|
6698
7359
|
- `removable: boolean = false` (reflected — shows the remove (×) button)
|
|
6699
|
-
- `selected: boolean = false` (reflected) — opt-in toggle/pressed mode
|
|
6700
|
-
|
|
6701
|
-
|
|
6702
|
-
|
|
6703
|
-
|
|
6704
|
-
|
|
6705
|
-
`
|
|
6706
|
-
chart-series visibility toggle, a category filter chip) never need both at once. `false` (the
|
|
6707
|
-
default, with `toggleable` also left at its default) reproduces the exact passive-label-pill
|
|
6708
|
-
output.
|
|
7360
|
+
- `selected: boolean = false` (reflected) — current value for opt-in toggle/pressed mode. Once
|
|
7361
|
+
toggle mode is active, a separate native `[part='toggle-button']` owns focus, Enter/Space/click
|
|
7362
|
+
activation, and explicit `"true"`/`"false"` `aria-pressed`; `[part='base']` remains a container
|
|
7363
|
+
and the default-slot label is inert. Activation proposes the opposite value through the
|
|
7364
|
+
cancelable `lr-chip-select` event and mutates `selected` only when that event is not prevented.
|
|
7365
|
+
Has no toggle effect when combined with `removable`, where the remove button is the sole control.
|
|
7366
|
+
`false` (with `toggleable` also left at its default) reproduces the passive label-pill output.
|
|
6709
7367
|
- `toggleable: boolean = false` (reflected) — explicit opt-in into `selected`'s toggle/pressed
|
|
6710
7368
|
interactive mode, independent of `selected`'s own current value. Setting `selected` to `true` at
|
|
6711
7369
|
any point opts in automatically and keeps `toggleable` `true` from then on (enough for a chip that
|
|
@@ -6718,16 +7376,21 @@ already follow.
|
|
|
6718
7376
|
|
|
6719
7377
|
**Events:** `lr-remove` (`detail: { value }` — the remove (×) button was activated via click or
|
|
6720
7378
|
Enter/Space while focused; only rendered/reachable while `removable`), `lr-chip-select`
|
|
6721
|
-
(`detail: { value, selected }` — fired
|
|
6722
|
-
|
|
6723
|
-
|
|
7379
|
+
(`detail: { value, selected }` — cancelable; fired from the native toggle button on click or
|
|
7380
|
+
Enter/Space with the proposed next state when toggle mode is active and `removable` is not set.
|
|
7381
|
+
Calling `preventDefault()` keeps the current `selected` state unchanged)
|
|
7382
|
+
|
|
7383
|
+
**Methods:** `focus(options?)`, `blur()`, and `click()` forward to the active internal control
|
|
7384
|
+
(toggle or remove button); a passive chip's `click()` retains ordinary host behavior.
|
|
6724
7385
|
|
|
6725
|
-
**Slots:** default (the chip's label content
|
|
6726
|
-
reserved for it — no extra
|
|
7386
|
+
**Slots:** default (the chip's label content; inert in toggle mode, so move links/buttons outside a
|
|
7387
|
+
toggleable chip), `icon` (optional leading icon or status dot; nothing reserved for it — no extra
|
|
7388
|
+
gap — when left empty)
|
|
6727
7389
|
|
|
6728
7390
|
**CSS parts:** `base` (the pill's root container), `icon` (wrapper around the `icon` slot; hidden
|
|
6729
|
-
entirely while empty), `label` (wrapper around the default slot), `
|
|
6730
|
-
|
|
7391
|
+
entirely while empty), `label` (non-interactive wrapper around the default slot), `toggle-button`
|
|
7392
|
+
(the real native toggle control, rendered over the label in toggle mode), `remove-button` (the
|
|
7393
|
+
remove (×) affordance, only rendered while `removable`)
|
|
6731
7394
|
|
|
6732
7395
|
**Themeable custom properties:** `--lr-chip-accent`, `--lr-chip-bg`, `--lr-chip-border`
|
|
6733
7396
|
(component-local trio swapped per `tone` rather than repeating background/color/border per part per
|
|
@@ -6859,11 +7522,13 @@ string. First-party invention (no Web Awesome equivalent).
|
|
|
6859
7522
|
(single letters/digits upper-cased).
|
|
6860
7523
|
|
|
6861
7524
|
**Exported types/functions (also directly usable standalone):** `KbdKeyLabel { visual: string;
|
|
6862
|
-
word: string }` — one resolved token's rendered glyph and spelled-out word
|
|
6863
|
-
|
|
6864
|
-
|
|
6865
|
-
|
|
6866
|
-
|
|
7525
|
+
word: string }` — one resolved token's rendered glyph and spelled-out word; `KbdLocalize = (key:
|
|
7526
|
+
string, fallback: string) => string`.
|
|
7527
|
+
`shortcutTokenLabel(rawToken: string, isMac: boolean, localize?: KbdLocalize): KbdKeyLabel`
|
|
7528
|
+
resolves a single token, parameterized on `isMac` so both platform branches are unit-testable
|
|
7529
|
+
without spoofing `navigator`; the optional callback localizes spoken key names.
|
|
7530
|
+
`parseShortcut(keys: string, isMac: boolean, localize?: KbdLocalize): KbdKeyLabel[]` splits and
|
|
7531
|
+
resolves a full `keys` string with the same optional localization callback.
|
|
6867
7532
|
|
|
6868
7533
|
**Events:** none — purely presentational.
|
|
6869
7534
|
|
|
@@ -6918,6 +7583,11 @@ near the virtual point) when one is available to give it something to observe; o
|
|
|
6918
7583
|
the anchor point moves on its own (e.g. a graph pan/zoom tick), re-call `showAt()` with fresh
|
|
6919
7584
|
coordinates to re-anchor — the popover stays open across such a call. A popover that never calls
|
|
6920
7585
|
`showAt()` behaves exactly as before.
|
|
7586
|
+
`hide(options?: { focusTrigger?: boolean })` programmatically closes the popover; pass
|
|
7587
|
+
`{ focusTrigger: false }` to opt out of focus restoration. By default, `hide()`, Escape, light
|
|
7588
|
+
dismiss, and a bare `el.open = false` all return focus to the slotted trigger, or to a virtual
|
|
7589
|
+
anchor's explicit `returnFocusTo`; a virtual anchor with no return target closes without moving
|
|
7590
|
+
focus. No-op when already closed.
|
|
6921
7591
|
**Events:** `lr-show`, `lr-hide`. **Slots:** `trigger`, default content. **CSS parts:** `trigger`,
|
|
6922
7592
|
`popup`, `content`. **Themeable custom properties:** `--lr-overlay-max-inline-size` (default
|
|
6923
7593
|
`--lr-size-20rem` — maximum inline size of the popup).
|
|
@@ -7002,6 +7672,12 @@ The rendered progressbar exposes `aria-valuemin`, `aria-valuemax`, and `aria-val
|
|
|
7002
7672
|
determinate.
|
|
7003
7673
|
|
|
7004
7674
|
**Slots:** `label`. **CSS parts:** `base`, `track`, `indicator`, `label`.
|
|
7675
|
+
**Themeable custom properties:** `--lr-progress-height` (default `var(--lr-size-0-5rem)`) — the
|
|
7676
|
+
block size of the progress track.
|
|
7677
|
+
|
|
7678
|
+
**Additional API surface:**
|
|
7679
|
+
|
|
7680
|
+
- `--lr-progress-duration` — Indeterminate sweep timing. Default: `var(--lr-transition-ambient)`.
|
|
7005
7681
|
|
|
7006
7682
|
## `lr-progress-ring`
|
|
7007
7683
|
|
|
@@ -7082,6 +7758,12 @@ inside each star, clipped to the fractional `precision` value). **Themeable cust
|
|
|
7082
7758
|
(default `--lr-color-border` — unfilled-star color), and `--lr-rating-size` (default
|
|
7083
7759
|
`--lr-font-size-xl` — star size).
|
|
7084
7760
|
|
|
7761
|
+
**Additional API surface:**
|
|
7762
|
+
|
|
7763
|
+
- `blur()` — Forwards host blur to the internal rating control.
|
|
7764
|
+
- `click()` — Forwards host activation to the internal rating control.
|
|
7765
|
+
- `focus()` — Forwards host focus to the internal rating control.
|
|
7766
|
+
|
|
7085
7767
|
# Utilities, formatting & observers (`components/utility/`)
|
|
7086
7768
|
|
|
7087
7769
|
## `lr-export-button`
|
|
@@ -7112,12 +7794,14 @@ immediately) or multi-format (click opens a small menu).
|
|
|
7112
7794
|
name and feeds the localized format-menu name without changing the visible label
|
|
7113
7795
|
- `open: boolean = false` (reflected)
|
|
7114
7796
|
|
|
7115
|
-
**Methods:** `focus(options?)` and `
|
|
7797
|
+
**Methods:** `focus(options?)`, `blur()`, and `click()` forward to the native trigger button.
|
|
7116
7798
|
|
|
7117
7799
|
**Events:** `lr-export` (`detail: { format: string }`, **cancelable** — call `preventDefault()` to
|
|
7118
7800
|
substitute your own server-generated download instead of the built-in client-side one),
|
|
7119
7801
|
`lr-export-complete` (`detail: { format: 'csv' | 'json' }`, fires only after a non-cancelled
|
|
7120
|
-
built-in download completes), `lr-
|
|
7802
|
+
built-in download completes), `lr-export-error` (`detail: { format: 'csv' | 'json', error:
|
|
7803
|
+
unknown }`, fires when a built-in export cannot be serialized or downloaded; activation does not
|
|
7804
|
+
throw into consumer code), `lr-show`, `lr-hide` (format-menu visibility transitions)
|
|
7121
7805
|
|
|
7122
7806
|
**Slots:** none.
|
|
7123
7807
|
|
|
@@ -7219,6 +7903,10 @@ buttons, this has no code/JSON content model to adopt just to reuse the copy aff
|
|
|
7219
7903
|
and some engines throw synchronously rather than rejecting — either way `lr-copy` still fires
|
|
7220
7904
|
with the intended text so a consumer can always show its own confirmation/fallback UI.
|
|
7221
7905
|
|
|
7906
|
+
**Additional API surface:**
|
|
7907
|
+
|
|
7908
|
+
- `click()` — Activates the native button, matching the host focus/blur forwarding contract.
|
|
7909
|
+
|
|
7222
7910
|
---
|
|
7223
7911
|
|
|
7224
7912
|
## `lr-resize-observer`
|
|
@@ -7289,8 +7977,10 @@ stack overflow on cyclic `data`.
|
|
|
7289
7977
|
**Methods:** `runSearch(query)` sets the declarative `search` property and awaits the recompute,
|
|
7290
7978
|
resolving the match count — named distinctly from `search` because a class member can't share a name
|
|
7291
7979
|
with a reactive property. `searchNext()`/`searchPrevious()` advance/step back a match cursor
|
|
7292
|
-
(wrapping)
|
|
7293
|
-
|
|
7980
|
+
(wrapping), reveal that selected match even when one of its ancestors was explicitly collapsed,
|
|
7981
|
+
mark it as the active `aria-current` result, announce its position, and scroll it into view;
|
|
7982
|
+
they resolve `false` when there are no matches. `clearSearch()` resets `search` to `''`, clearing all
|
|
7983
|
+
matches and the cursor.
|
|
7294
7984
|
|
|
7295
7985
|
**Events:** `lr-copy` (`detail: { text: string }`) — fired by the top-level copy button or a
|
|
7296
7986
|
per-node one. Fires even when `navigator.clipboard` is unavailable or the write silently failed
|
|
@@ -7321,7 +8011,13 @@ until `max-height` is set), `--lr-json-viewer-font` (default `var(--lr-font-mono
|
|
|
7321
8011
|
`--lr-json-viewer-match-bg` (default `var(--lr-color-warning-quiet)`) — background, and surrounding
|
|
7322
8012
|
box-shadow, of a key/value that currently matches `search`. Component-scoped indirection over the
|
|
7323
8013
|
shared `--lr-color-warning-quiet` token, so a consumer can retheme just this search-match highlight
|
|
7324
|
-
without repainting every other warning-toned surface that reads the same shared token
|
|
8014
|
+
without repainting every other warning-toned surface that reads the same shared token;
|
|
8015
|
+
`--lr-json-viewer-active-outline` (default `var(--lr-focus-ring-color)`) — outline color for the
|
|
8016
|
+
current imperative search match; `--lr-json-viewer-string-color` (default
|
|
8017
|
+
`var(--lr-color-success)`), `--lr-json-viewer-number-color` (default `var(--lr-color-brand)`),
|
|
8018
|
+
`--lr-json-viewer-boolean-color` (default `var(--lr-color-warning)`), and
|
|
8019
|
+
`--lr-json-viewer-null-color` (default `var(--lr-color-text-quiet)`) — per-value-type color hooks.
|
|
8020
|
+
Plus shared
|
|
7325
8021
|
tokens `--lr-color-border/-surface/-text/-text-quiet/-brand/-brand-quiet/-success/-warning/-warning-quiet`,
|
|
7326
8022
|
`--lr-radius`, `--lr-space-xs/-s/-l`, `--lr-focus-ring-width/-color/-offset`,
|
|
7327
8023
|
`--lr-transition-fast`.
|
|
@@ -7347,9 +8043,11 @@ html`<lr-json-viewer .data=${apiResponse} copyable max-height="24rem" search=${q
|
|
|
7347
8043
|
binding, never as a plain HTML attribute.
|
|
7348
8044
|
- Search highlighting auto-expands only the *ancestors* of a match, not the whole tree — a
|
|
7349
8045
|
non-matching sibling subtree elsewhere stays collapsed (or expanded) exactly as it already was.
|
|
7350
|
-
- An explicit per-node expand/collapse (from clicking a node's `toggle` button)
|
|
7351
|
-
|
|
7352
|
-
|
|
8046
|
+
- An explicit per-node expand/collapse (from clicking a node's `toggle` button) overrides
|
|
8047
|
+
`collapsedDepth` and declarative search-driven auto-expansion for that path. Imperative
|
|
8048
|
+
`searchNext()`/`searchPrevious()` navigation may reopen the ancestors of the selected result so
|
|
8049
|
+
the active match is never hidden; otherwise the override persists until `data` is reassigned with
|
|
8050
|
+
a different shape.
|
|
7353
8051
|
- Per-node copy buttons call `stopPropagation()` on click so clicking one doesn't also toggle the
|
|
7354
8052
|
row's expand/collapse state.
|
|
7355
8053
|
|
|
@@ -7517,10 +8215,11 @@ via an internal `<lr-live-region>` in polite mode.
|
|
|
7517
8215
|
|
|
7518
8216
|
A caret-anchored, keyboard-navigable popover for `@`-mention and `/`-slash-command autocomplete
|
|
7519
8217
|
inside a plain-text `<textarea>`/`<input>` the host owns. First-party invention (no Web Awesome
|
|
7520
|
-
equivalent).
|
|
7521
|
-
|
|
7522
|
-
|
|
7523
|
-
|
|
8218
|
+
equivalent). On platforms accepting cross-root ARIA element reflection, the host's own input keeps
|
|
8219
|
+
focus and `syncActiveDescendant()` points it at the active option. Where that reference is rejected,
|
|
8220
|
+
`focusActiveOption()` moves real focus into this component's shadow listbox so the focus owner and
|
|
8221
|
+
option share one tree scope. A string `aria-activedescendant` cannot resolve from a host input in
|
|
8222
|
+
the document into an option in this component's shadow root.
|
|
7524
8223
|
|
|
7525
8224
|
**Properties:**
|
|
7526
8225
|
- `anchor?: HTMLElement` (attribute: false) — the element to position the popup relative to. A
|
|
@@ -7540,18 +8239,26 @@ own listbox.
|
|
|
7540
8239
|
- `filteredItems: MentionItem[]` — read-only getter; `items` filtered by `query` via `filter` (or
|
|
7541
8240
|
the built-in default). Empty `query` returns `items` unfiltered.
|
|
7542
8241
|
- `activeDescendantId: string | null` — read-only getter; the `id` of the currently-highlighted
|
|
7543
|
-
row, or `null` while closed or when `filteredItems` is empty.
|
|
7544
|
-
-
|
|
7545
|
-
|
|
7546
|
-
|
|
7547
|
-
|
|
7548
|
-
|
|
7549
|
-
|
|
7550
|
-
|
|
7551
|
-
(e
|
|
7552
|
-
|
|
7553
|
-
|
|
7554
|
-
`
|
|
8242
|
+
internal row, or `null` while closed or when `filteredItems` is empty. Useful for diagnostics and
|
|
8243
|
+
same-tree consumers; do not copy it to an external control as a string IDREF.
|
|
8244
|
+
- `activeDescendantElement: HTMLElement | null` — read-only getter; the highlighted shadow option
|
|
8245
|
+
for the platform's element-reference ARIA API.
|
|
8246
|
+
- `listboxId: string` — read-only getter; the internal `id` of the `role="listbox"` element. Like
|
|
8247
|
+
`activeDescendantId`, it cannot form a cross-shadow string IDREF from a host input.
|
|
8248
|
+
|
|
8249
|
+
**Methods:**
|
|
8250
|
+
- `handleKeyDown(e: KeyboardEvent): boolean` — the host's own text-control `keydown` handler calls
|
|
8251
|
+
this while the popover is open. Handles `ArrowDown`/`ArrowUp` (moves the highlight) and
|
|
8252
|
+
`Enter`/`Tab` (commits the highlighted row) — both pairs return `false` with no
|
|
8253
|
+
`preventDefault()` when `filteredItems` is empty, letting the keystroke fall through to the
|
|
8254
|
+
host's own control unchanged. `Escape` closes with no selection. Returns `true` whenever the key
|
|
8255
|
+
was intercepted and `false` for keys the method does not recognize.
|
|
8256
|
+
- `syncActiveDescendant(control: HTMLElement): boolean` — clears any string
|
|
8257
|
+
`aria-activedescendant`, then applies `ariaActiveDescendantElement` when the platform accepts the
|
|
8258
|
+
cross-root reference. Returns whether that reference was accepted.
|
|
8259
|
+
- `focusActiveOption(): Promise<boolean>` — same-tree fallback after a consumed navigation key
|
|
8260
|
+
when `syncActiveDescendant()` returns `false`. Focuses the active option, lets the popover handle
|
|
8261
|
+
subsequent navigation, and restores focus to `anchor` when the popover closes.
|
|
7555
8262
|
|
|
7556
8263
|
**Exported types:** `MentionItem { id: string; label: string; description?: string; icon?: string
|
|
7557
8264
|
}`; `MentionFilter = (item: MentionItem, query: string) => boolean`; `MentionSelectDetail { id:
|
|
@@ -7593,7 +8300,13 @@ available space. See `lr-tour` for the shared-clamp note.
|
|
|
7593
8300
|
const popover = document.getElementById('mentions');
|
|
7594
8301
|
|
|
7595
8302
|
textarea.addEventListener('keydown', (e) => {
|
|
7596
|
-
if (popover.open && popover.handleKeyDown(e))
|
|
8303
|
+
if (popover.open && popover.handleKeyDown(e)) {
|
|
8304
|
+
if (!popover.syncActiveDescendant(textarea) &&
|
|
8305
|
+
(e.key === 'ArrowDown' || e.key === 'ArrowUp')) {
|
|
8306
|
+
void popover.focusActiveOption();
|
|
8307
|
+
}
|
|
8308
|
+
return;
|
|
8309
|
+
}
|
|
7597
8310
|
});
|
|
7598
8311
|
textarea.addEventListener('input', () => {
|
|
7599
8312
|
popover.anchor = textarea;
|
|
@@ -7603,6 +8316,7 @@ available space. See `lr-tour` for the shared-clamp note.
|
|
|
7603
8316
|
];
|
|
7604
8317
|
popover.query = 'a'; // detected since the trigger character
|
|
7605
8318
|
popover.open = true;
|
|
8319
|
+
popover.updateComplete.then(() => popover.syncActiveDescendant(textarea));
|
|
7606
8320
|
});
|
|
7607
8321
|
|
|
7608
8322
|
popover.addEventListener('lr-mention-select', (e) => {
|
|
@@ -7613,11 +8327,11 @@ available space. See `lr-tour` for the shared-clamp note.
|
|
|
7613
8327
|
|
|
7614
8328
|
Integration is entirely the host's responsibility: detect a mention/command trigger in the host's
|
|
7615
8329
|
own `input` handling, set `anchor`/`items`/`query` and flip `open = true`, forward every `keydown`
|
|
7616
|
-
through `handleKeyDown()` while open, and
|
|
7617
|
-
|
|
7618
|
-
|
|
7619
|
-
|
|
7620
|
-
|
|
8330
|
+
through `handleKeyDown()` while open, and call `syncActiveDescendant()` after opening and after each
|
|
8331
|
+
consumed navigation key. If it returns `false`, call `focusActiveOption()` after the first consumed
|
|
8332
|
+
ArrowUp/ArrowDown so the fallback owns navigation from then on. Setting `open = false` whenever the
|
|
8333
|
+
query stops looking like an active mention context (a space typed, the trigger deleted, the input
|
|
8334
|
+
blurred, …) is also the host's job — `lr-mention-close` fires automatically from that.
|
|
7621
8335
|
|
|
7622
8336
|
Positioning measures exactly where the caret currently paints via a hidden-mirror-element technique
|
|
7623
8337
|
(`caretClientRect()`) and positions against that single point with `internal/positioner.js`'s
|
|
@@ -7629,6 +8343,9 @@ fresh `query` is the proxy for "the caret may have moved").
|
|
|
7629
8343
|
- a host-level `aria-label` attribute on `<lr-mention-popover>` now takes priority over `label`
|
|
7630
8344
|
(and its localized default) when resolving `[part="listbox"]`'s accessible name — previously it
|
|
7631
8345
|
was silently ignored. Matches the same fallback on `<lr-combobox>`/`<lr-table>`.
|
|
8346
|
+
- Never copy `activeDescendantId` or `listboxId` onto a document-owned control as a string ARIA
|
|
8347
|
+
IDREF; shadow-root IDs are outside that control's tree scope. Use `syncActiveDescendant()` and its
|
|
8348
|
+
`focusActiveOption()` fallback.
|
|
7632
8349
|
- The popover opens pre-highlighted on the top match (index 0), unlike `<lr-combobox>`'s own
|
|
7633
8350
|
listbox which opens with nothing highlighted (`-1`) — a bare Enter right after opening commits
|
|
7634
8351
|
immediately.
|
|
@@ -7675,6 +8392,9 @@ First-party invention (no Web Awesome equivalent).
|
|
|
7675
8392
|
- `contextLines: number | undefined` (attribute: `context-lines`) — keeps this many unchanged
|
|
7676
8393
|
lines around each change and collapses longer unchanged runs into a localized fold marker. The
|
|
7677
8394
|
default `undefined` shows every line; negative and non-finite values also disable folding.
|
|
8395
|
+
- `maxLines: number = 5000` (attribute `max-lines`) — maximum logical lines accepted on either
|
|
8396
|
+
side. Larger input renders the localized `diffViewTooLarge` fallback without computing or
|
|
8397
|
+
highlighting the diff. Set the property to `Infinity` explicitly to opt into unbounded diffing.
|
|
7678
8398
|
|
|
7679
8399
|
**Events:** `lr-copy` (`detail: { text: string }` — the full unified-diff text, fired on
|
|
7680
8400
|
copy-button activation regardless of whether the clipboard write actually succeeded).
|
|
@@ -7685,7 +8405,8 @@ copy-button activation regardless of whether the clipboard write actually succee
|
|
|
7685
8405
|
`data-type="equal"|"add"|"remove"|"empty"|"fold"` — `"empty"` is an unbalanced-replace placeholder cell in
|
|
7686
8406
|
`layout="split"` and never carries a `+`/`-` prefix; `"fold"` is the localized unchanged-lines
|
|
7687
8407
|
marker), `copy-button` (the copy affordance, only
|
|
7688
|
-
rendered while `copyable`), `
|
|
8408
|
+
rendered while `copyable`), `limit` (the localized over-`maxLines` fallback), `side` (one column in
|
|
8409
|
+
`layout="split"`, `data-side="old"|"new"`).
|
|
7689
8410
|
|
|
7690
8411
|
**Themeable custom properties:** `--lr-diff-view-font` (default `var(--lr-font-mono)`), plus
|
|
7691
8412
|
shared tokens `--lr-color-border`/`-surface`/`-success`/`-success-quiet`/`-danger`/
|
|
@@ -7713,13 +8434,22 @@ same line-diff function this component's own `render()`/copy handler call, expos
|
|
|
7713
8434
|
consumer can compute or unit-test the same alignment without instantiating the element at all.
|
|
7714
8435
|
|
|
7715
8436
|
**Known gotchas:**
|
|
7716
|
-
-
|
|
7717
|
-
|
|
7718
|
-
|
|
7719
|
-
|
|
7720
|
-
-
|
|
7721
|
-
|
|
7722
|
-
|
|
8437
|
+
- line splitting normalizes LF, CRLF, and lone CR endings before alignment and syntax-token indexing,
|
|
8438
|
+
so files that differ only by line-ending convention do not appear wholly changed.
|
|
8439
|
+
- alignment uses Hirschberg longest-common-subsequence matching: O(n·m) time with linear working
|
|
8440
|
+
memory. The 5,000-line per-side default ceiling bounds pathological inputs; `Infinity` is an
|
|
8441
|
+
explicit performance-risk opt-out.
|
|
8442
|
+
- the computed `diffOps` state is cached and recomputed only when `oldText`, `newText`, or
|
|
8443
|
+
`maxLines` changes. Copy-confirmation and other unrelated renders reuse the cached alignment.
|
|
8444
|
+
|
|
8445
|
+
**Additional API surface:**
|
|
8446
|
+
|
|
8447
|
+
- `--lr-diff-view-add-background` — Added-line background.
|
|
8448
|
+
- `--lr-diff-view-add-color` — Added-line text color.
|
|
8449
|
+
- `--lr-diff-view-remove-background` — Removed-line background.
|
|
8450
|
+
- `--lr-diff-view-remove-color` — Removed-line text color.
|
|
8451
|
+
- `--lr-diff-view-fold-color` — Fold-marker text color.
|
|
8452
|
+
- `--lr-diff-view-fold-background` — Fold-marker background.
|
|
7723
8453
|
|
|
7724
8454
|
---
|
|
7725
8455
|
|
|
@@ -7949,6 +8679,10 @@ The two height knobs work as a pair on `[part='field-input']`, the same way
|
|
|
7949
8679
|
- The host carries a `:state(blank)` custom state whenever `value === ''`, and `data-invalid` only
|
|
7950
8680
|
once touched (first blur out of the whole control) and actually invalid.
|
|
7951
8681
|
|
|
8682
|
+
**Additional API surface:**
|
|
8683
|
+
|
|
8684
|
+
- `click()` — Activates the first native field in locale order.
|
|
8685
|
+
|
|
7952
8686
|
## `lr-random-content`
|
|
7953
8687
|
|
|
7954
8688
|
Shows a chosen subset of its slotted children and hides the rest — A/B copy testing, testimonial
|
|
@@ -7965,6 +8699,8 @@ children; nothing is moved or cloned.
|
|
|
7965
8699
|
- `animation: 'none' | 'fade' | 'fade-up' | 'fade-down' | 'fade-left' | 'fade-right' = 'none'`
|
|
7966
8700
|
(reflected) — entrance effect applied to a child the instant it becomes shown
|
|
7967
8701
|
- `autoplay: boolean = false` (reflected)
|
|
8702
|
+
- `paused: boolean = false` (reflected) — suppresses autoplay. The built-in pause/resume action
|
|
8703
|
+
toggles this state; a programmatic assignment remains silent.
|
|
7968
8704
|
- `autoplayInterval: number = 3000` (attribute `autoplay-interval`) — clamped to a 1000 ms floor
|
|
7969
8705
|
|
|
7970
8706
|
**Methods:** `randomize(): HTMLElement[]` — re-selects using the current `mode`, applies
|
|
@@ -7980,7 +8716,8 @@ each autoplay tick; never when the eligible pool is empty.
|
|
|
7980
8716
|
**CSS parts:** `base` — the wrapper around the default slot; carries `role="status"`,
|
|
7981
8717
|
`aria-atomic="true"`, and `aria-live="polite"`, downgraded to `aria-live="off"` while `autoplay` is
|
|
7982
8718
|
on (a self-rotating region announcing on every tick would be spam). A host `aria-label` attribute is
|
|
7983
|
-
forwarded onto it.
|
|
8719
|
+
forwarded onto it. `pause-button` — the localized autoplay pause/resume action, rendered only while
|
|
8720
|
+
`autoplay` is enabled and exposed as a toggle with `aria-pressed`.
|
|
7984
8721
|
|
|
7985
8722
|
**Themeable custom properties:** `--lr-random-content-animation-duration` (default `300ms`),
|
|
7986
8723
|
`--lr-random-content-animation-easing` (default `ease`),
|
|
@@ -7988,8 +8725,8 @@ forwarded onto it.
|
|
|
7988
8725
|
directional `fade-*` effects).
|
|
7989
8726
|
|
|
7990
8727
|
**Known gotchas:**
|
|
7991
|
-
- There is no
|
|
7992
|
-
|
|
8728
|
+
- There is no next/previous/shuffle action; the only built-in control is the autoplay pause/resume
|
|
8729
|
+
button. Selection changes via autoplay or `randomize()`.
|
|
7993
8730
|
- Autoplay is suppressed entirely under `prefers-reduced-motion: reduce`, and whenever the eligible
|
|
7994
8731
|
pool has fewer than 2 children. The preference is re-observed live, not just read once.
|
|
7995
8732
|
- `fade-left`/`fade-right` are physical-direction transforms (upstream naming), deliberately **not**
|
|
@@ -8252,6 +8989,10 @@ import '@aceshooting/lyra-ui/components/media/flag/flag-peer.js';
|
|
|
8252
8989
|
(`variant="detailed"` is the replacement); left unset, `variant` falls back to honoring `detailed`
|
|
8253
8990
|
for one more minor version before removal.
|
|
8254
8991
|
|
|
8992
|
+
**Additional API surface:**
|
|
8993
|
+
|
|
8994
|
+
- `part="error"` — Localized alert rendered when the optional peer resolver is unavailable or fails.
|
|
8995
|
+
|
|
8255
8996
|
---
|
|
8256
8997
|
|
|
8257
8998
|
## `lr-playback`
|
|
@@ -8268,8 +9009,8 @@ Steps an index through `[0, length)` on a fixed interval — play/pause for time
|
|
|
8268
9009
|
change-tracking sees it and auto-pauses on `hidden = true`)
|
|
8269
9010
|
|
|
8270
9011
|
**Methods:** `play()`, `pause()`, `toggle()`, `next()`, `previous()`, `goTo(index: number)` — all
|
|
8271
|
-
idempotent/clamped; `length <= 1` is a no-op degenerate case. `focus(options?)
|
|
8272
|
-
to the play button.
|
|
9012
|
+
idempotent/clamped; `length <= 1` is a no-op degenerate case. `focus(options?)`, `blur()`, and
|
|
9013
|
+
`click()` forward to the play button.
|
|
8273
9014
|
|
|
8274
9015
|
**Events:** `lr-play`, `lr-pause` (no detail), `lr-step` (`detail: { index }`, fired on every
|
|
8275
9016
|
tick and manual step); internal `focus`/`blur` are bridged as bubbling, composed host events.
|
|
@@ -8380,13 +9121,19 @@ not installed)
|
|
|
8380
9121
|
**Themeable custom properties:** shared tokens only — `--lr-space-xs/-s`, `--lr-color-surface`,
|
|
8381
9122
|
`--lr-color-border`, `--lr-shadow`, `--lr-radius`.
|
|
8382
9123
|
|
|
8383
|
-
**Optional peer deps:** `maplibre-gl` (lazy-loaded
|
|
8384
|
-
|
|
9124
|
+
**Optional peer deps:** `maplibre-gl` (lazy-loaded). MapLibre v6 is ESM-only and requires WebGL2.
|
|
9125
|
+
The consumer must **separately** import `maplibre-gl/dist/maplibre-gl.css` and configure the v6
|
|
9126
|
+
module-worker URL for its bundler once — the component cannot choose a bundler-specific worker URL.
|
|
9127
|
+
For Vite:
|
|
8385
9128
|
|
|
8386
9129
|
```html
|
|
8387
9130
|
<lr-map center="[2.35, 48.85]" zoom="10"></lr-map>
|
|
8388
|
-
<script>
|
|
9131
|
+
<script type="module">
|
|
9132
|
+
import { setWorkerUrl } from 'maplibre-gl';
|
|
9133
|
+
import workerUrl from 'maplibre-gl/dist/maplibre-gl-worker.mjs?worker&url';
|
|
8389
9134
|
import 'maplibre-gl/dist/maplibre-gl.css';
|
|
9135
|
+
setWorkerUrl(workerUrl);
|
|
9136
|
+
|
|
8390
9137
|
const m = document.querySelector('lr-map');
|
|
8391
9138
|
m.choropleth = {
|
|
8392
9139
|
sourceId: 'regions',
|
|
@@ -8400,6 +9147,10 @@ not installed)
|
|
|
8400
9147
|
</script>
|
|
8401
9148
|
```
|
|
8402
9149
|
|
|
9150
|
+
Webpack, esbuild, Rollup, and direct-browser ESM use different worker URL forms; use MapLibre's ESM
|
|
9151
|
+
installation guide for the matching setup:
|
|
9152
|
+
https://maplibre.org/maplibre-gl-js/docs/#esm.
|
|
9153
|
+
|
|
8403
9154
|
**Known gotchas:**
|
|
8404
9155
|
- clearing or swapping the choropleth no longer leaks the old layer: setting `choropleth =
|
|
8405
9156
|
undefined`, or changing `choropleth.sourceId` to a different value, now calls `removeLayer`/
|
|
@@ -8475,12 +9226,24 @@ accepted), `'size'` from `maxFileSize`, or `'directory'` for a dropped folder. `
|
|
|
8475
9226
|
when the semantic dropzone (the actual keyboard-focusable element, not the hidden native `<input>`)
|
|
8476
9227
|
gains/loses focus.
|
|
8477
9228
|
|
|
9229
|
+
Each rejected file also renders as its own line in the visible `[part="rejection"]` alert, naming
|
|
9230
|
+
the file and the reason via one of four locale keys: `fileInputRejectedType` (default
|
|
9231
|
+
`'{filename}: this file type is not accepted.'`), `fileInputRejectedSize` (default
|
|
9232
|
+
`'{filename}: this file is too large.'`), `fileInputRejectedCount` (default `'{filename}: only one
|
|
9233
|
+
file can be selected at a time.'`), and — for `'directory'` — the pre-existing
|
|
9234
|
+
`fileInputFolderRejected` (default `'Folders are not accepted here.'`, reused verbatim, so it has no
|
|
9235
|
+
`{filename}` placeholder). The filename is interpolated as caller-supplied data, never localized
|
|
9236
|
+
itself. The region is cleared (and unrendered) as soon as a subsequent selection rejects nothing.
|
|
9237
|
+
|
|
8478
9238
|
**Slots:** default slot — custom dropzone content, overrides the `label` attribute text when
|
|
8479
9239
|
provided. The accessible name always comes from `label` regardless, so icon-only slot content still
|
|
8480
9240
|
announces correctly.
|
|
8481
9241
|
|
|
8482
9242
|
**CSS parts:** `base`, `input`, `status` (a visually-hidden `role="status" aria-live="polite"`
|
|
8483
|
-
element carrying the drag accept/reject announcement)
|
|
9243
|
+
element carrying the drag accept/reject announcement and the aggregate accepted/rejected count),
|
|
9244
|
+
`rejection` (a **visible** `role="alert"` region, rendered only while a rejection exists, listing
|
|
9245
|
+
each currently-rejected file next to a per-reason message — in addition to, never in place of, the
|
|
9246
|
+
sr-only `status` summary above)
|
|
8484
9247
|
|
|
8485
9248
|
**Themeable custom properties:** `--lr-file-input-compact-padding` (default `var(--lr-space-s)`) —
|
|
8486
9249
|
`[part='base']`'s padding while `compact`; `--lr-file-input-compact-gap` (default
|
|
@@ -8504,17 +9267,18 @@ tokens — `--lr-space-xs`, `--lr-space-l`,
|
|
|
8504
9267
|
**Optional peer deps:** none.
|
|
8505
9268
|
|
|
8506
9269
|
```html
|
|
8507
|
-
<lr-file-input multiple accept=".csv,.xlsx"
|
|
9270
|
+
<lr-file-input id="dataset-files" multiple accept=".csv,.xlsx"></lr-file-input>
|
|
8508
9271
|
<script>
|
|
8509
|
-
document.querySelector('
|
|
9272
|
+
const input = document.querySelector('#dataset-files');
|
|
9273
|
+
input.allowedMimeTypes = ['text/csv'];
|
|
9274
|
+
input.addEventListener('lr-files', (e) => {
|
|
8510
9275
|
console.log('accepted:', e.detail.files, 'rejected:', e.detail.rejected); // rejected[i].reason
|
|
8511
9276
|
});
|
|
8512
9277
|
</script>
|
|
8513
9278
|
```
|
|
8514
9279
|
|
|
8515
9280
|
Note: `allowedMimeTypes`/`forbiddenMimeTypes` are complex properties (`attribute: false`) — set
|
|
8516
|
-
them via JS (`el.allowedMimeTypes = [...]`), not as a JSON string attribute
|
|
8517
|
-
illustrative of intent only.
|
|
9281
|
+
them via JS (`el.allowedMimeTypes = [...]`), not as a JSON string attribute.
|
|
8518
9282
|
|
|
8519
9283
|
`accept.ts` exports `matchesAccept(file, accept, assumeExtensionMatch?)` (internal — not
|
|
8520
9284
|
re-exported from the package root) — parses the same three `accept` forms the browser's native
|
|
@@ -8527,8 +9291,7 @@ an extension-only `accept` list.
|
|
|
8527
9291
|
**Known gotchas:**
|
|
8528
9292
|
- Paste-from-clipboard **is** supported and on by default: a `paste` event on the dropzone reads
|
|
8529
9293
|
`e.clipboardData.files` and routes it through the same accept/reject classification as a drop.
|
|
8530
|
-
Set `paste="false"` (or `.paste = false`) to opt out.
|
|
8531
|
-
entry claiming there is no paste support, and none for dragged folders, is stale — both work.)
|
|
9294
|
+
Set `paste="false"` (or `.paste = false`) to opt out.
|
|
8532
9295
|
- Dragged folders **are** detected via `webkitGetAsEntry()` and reported as
|
|
8533
9296
|
`rejected[].reason === 'directory'` (paired with a synthetic zero-byte `File` carrying the folder
|
|
8534
9297
|
name), not silently accepted as a phantom file.
|
|
@@ -8559,6 +9322,8 @@ Before/after comparison surface with two named slots and a keyboard-accessible n
|
|
|
8559
9322
|
**Events:** `lr-position-change` (`detail: { position }`), plus composed `focus` and `blur` events
|
|
8560
9323
|
from the internal range handle.
|
|
8561
9324
|
|
|
9325
|
+
**Methods:** `focus(options?)`, `blur()`, and `click()` forward to the internal range handle.
|
|
9326
|
+
|
|
8562
9327
|
**Slots:** `before`, `after`.
|
|
8563
9328
|
|
|
8564
9329
|
**CSS parts:** `base`, `before`, `after`, `divider`, and `handle`.
|
|
@@ -8802,6 +9567,9 @@ drop-in still does something useful, but `lr-open` fires first — a host callin
|
|
|
8802
9567
|
`preventDefault()` on it suppresses that default download/open so it can substitute its own
|
|
8803
9568
|
handling.
|
|
8804
9569
|
|
|
9570
|
+
**Methods:** `focus(options?)`, `blur()`, and `click()` forward to the primary action for the
|
|
9571
|
+
current media kind.
|
|
9572
|
+
|
|
8805
9573
|
**Slots:** none.
|
|
8806
9574
|
|
|
8807
9575
|
**CSS parts:** `base` (a `<button>` for `kind="image"`, a plain wrapper `<div>` for `kind="video"`,
|
|
@@ -8938,6 +9706,10 @@ hidden via CSS by default, exposed as a part only so a consumer can override tha
|
|
|
8938
9706
|
scope-limited by design to firing `lr-camera-request`/`lr-audio-request` and nothing else. The
|
|
8939
9707
|
hidden input is only rendered when `capabilities` contains `files` or `image`.
|
|
8940
9708
|
|
|
9709
|
+
**Additional API surface:**
|
|
9710
|
+
|
|
9711
|
+
- `click()` — Activates the internal attachment trigger.
|
|
9712
|
+
|
|
8941
9713
|
---
|
|
8942
9714
|
|
|
8943
9715
|
## `lr-avatar`
|
|
@@ -9057,6 +9829,10 @@ backgrounded circle around the button; only rendered once loaded and error-free)
|
|
|
9057
9829
|
browser's native decode loop keeps running while visually covered; only opacity and `aria-hidden`
|
|
9058
9830
|
swap.
|
|
9059
9831
|
|
|
9832
|
+
**Additional API surface:**
|
|
9833
|
+
|
|
9834
|
+
- `click()` — Activate the play/pause control.
|
|
9835
|
+
|
|
9060
9836
|
## `lr-animation`
|
|
9061
9837
|
|
|
9062
9838
|
Declaratively animates one slotted element through the native Web Animations API.
|
|
@@ -9295,12 +10071,18 @@ mode is on. The toggle carries its own glyph in `--lr-color-text`, so keep a 4.5
|
|
|
9295
10071
|
when overriding the background. `--lr-image-viewer-highlight-active-color` (default
|
|
9296
10072
|
`var(--lr-color-brand)`) — the outline of the `[part='highlight']` matching `activeHighlightId`,
|
|
9297
10073
|
independent of the per-tone border colors, so the active box stays distinguishable whatever tone it
|
|
9298
|
-
carries.
|
|
9299
|
-
|
|
9300
|
-
|
|
9301
|
-
|
|
9302
|
-
|
|
9303
|
-
|
|
10074
|
+
carries. Highlight tone styling is exposed through `--lr-image-viewer-highlight-border`,
|
|
10075
|
+
`--lr-image-viewer-highlight-bg`, and the tone-specific
|
|
10076
|
+
`--lr-image-viewer-highlight-success-border`, `--lr-image-viewer-highlight-success-bg`,
|
|
10077
|
+
`--lr-image-viewer-highlight-warning-border`, `--lr-image-viewer-highlight-warning-bg`,
|
|
10078
|
+
`--lr-image-viewer-highlight-danger-border`, `--lr-image-viewer-highlight-danger-bg`,
|
|
10079
|
+
`--lr-image-viewer-highlight-neutral-border`, and `--lr-image-viewer-highlight-neutral-bg`
|
|
10080
|
+
properties. These properties are declared as inline `var()` fallbacks at the point of use rather
|
|
10081
|
+
than on `:host`, so each can be set on the element *or on any ancestor*:
|
|
10082
|
+
`::part(highlight)[data-active]` is invalid CSS — Shadow Parts forbids an attribute selector after
|
|
10083
|
+
`::part()` — which previously left overriding the library-wide
|
|
10084
|
+
`--lr-color-brand`/`--lr-color-brand-quiet` tokens as the only lever, repainting every other
|
|
10085
|
+
element that read them. Unset, each falls back to the token its rule used before.
|
|
9304
10086
|
|
|
9305
10087
|
## `lr-av-player`
|
|
9306
10088
|
|
|
@@ -9312,8 +10094,8 @@ distinct from `<lr-transcript-feed>` (live captions for an in-progress voice ses
|
|
|
9312
10094
|
`anchorKinds: ['time-range']` only — no text selection is bound. The transcript virtualizes through
|
|
9313
10095
|
`<lr-virtual-list>` the same way `lr-pdf-viewer` virtualizes pages.
|
|
9314
10096
|
|
|
9315
|
-
**Properties:** `src: string = ''`, `name: string = ''`, `kind?: 'audio' | 'video'`
|
|
9316
|
-
|
|
10097
|
+
**Properties:** `src: string = ''`, `name: string = ''`, `kind?: 'audio' | 'video'`
|
|
10098
|
+
(attribute-backed auto-detection override), `mimeType: string = ''` (attribute `mime-type`), `poster: string =
|
|
9317
10099
|
''`, `loop: boolean = false`, `muted: boolean = false`, `preload: 'none' | 'metadata' | 'auto' =
|
|
9318
10100
|
'metadata'`, `playbackRate: number = 1` (attribute `playback-rate`, reflected), `rates: number[] =
|
|
9319
10101
|
[0.75, 1, 1.25, 1.5, 2]` (attribute: false), `cues: LyraAvCue[] = []` (attribute: false), `peaks:
|
|
@@ -9393,15 +10175,27 @@ Chart.js wrapper every other `lr-*-chart` tag subclasses; supports both a simpli
|
|
|
9393
10175
|
- `labels: string[] = []` (attribute: false)
|
|
9394
10176
|
- `datasets: Series[] = []` (attribute: false) — `Series { label: string; data?: (number|null)[];
|
|
9395
10177
|
points?: {x,y,label?}[]; color?: string|string[]; fill?: boolean; width?: number; dash?: boolean;
|
|
9396
|
-
noTooltip?: boolean; axis?: 'y'|'y2'; pointColors?: string[]; pointRadius?: number;
|
|
9397
|
-
'line'|'bar' }`
|
|
10178
|
+
noTooltip?: boolean; axis?: 'y'|'y2'; pointColors?: string[]; pointRadius?: number|number[];
|
|
10179
|
+
segmentColors?: string[]; type?: 'line'|'bar' }`
|
|
10180
|
+
- `pointRadius` takes a single number (applied to every point) **or** an array matching `data`'s
|
|
10181
|
+
length that sizes each point independently — passed straight through to Chart.js, which
|
|
10182
|
+
supports both natively. Useful for emphasizing a single outlier or the latest reading without
|
|
10183
|
+
splitting the series in two.
|
|
10184
|
+
- `segmentColors` colors each *segment* (the line drawn between two consecutive points) by the
|
|
10185
|
+
segment's **starting** point index, so `['red', 'green']` over 3 points paints the first
|
|
10186
|
+
segment red and the second green; a shorter array cycles. Wired to Chart.js's
|
|
10187
|
+
`segment.borderColor` scriptable option, so it is only meaningful for line-type series.
|
|
10188
|
+
Typical use is threshold/anomaly banding along one line. A series that omits it (or passes an
|
|
10189
|
+
empty array) emits no `segment` key at all, leaving line rendering exactly as before.
|
|
9398
10190
|
- `legend: boolean = false`
|
|
9399
10191
|
- `legendPosition: LyraChartLegendPosition = 'top'` (attribute `legend-position`) — places the
|
|
9400
10192
|
legend at `top`, `right`, `bottom`, or `left`; `auto` chooses right above 480px and bottom below
|
|
9401
10193
|
that allocation width
|
|
9402
|
-
- `valueFormatter?: LyraChartValueFormatter` (attribute: false) — formats numeric
|
|
9403
|
-
and legend values; the callback receives the value and `'tick'`, `'tooltip'`, or
|
|
9404
|
-
context
|
|
10194
|
+
- `valueFormatter?: LyraChartValueFormatter` (attribute: false) — formats numeric (value-axis)
|
|
10195
|
+
tick, tooltip, and legend values; the callback receives the value and `'tick'`, `'tooltip'`, or
|
|
10196
|
+
`'legend'` context. Never runs against the categorical x-axis's own labels (line/bar's `labels`
|
|
10197
|
+
strings) — Chart.js's category scale passes the tick index to `ticks.callback`, not the label
|
|
10198
|
+
text
|
|
9405
10199
|
- `area: boolean = false`
|
|
9406
10200
|
- `zoom: boolean = false` — wheel/drag/pinch zoom on the `x` axis only (pan disabled, and the zoom
|
|
9407
10201
|
range is limited to the original data extent); shows the `reset-zoom-button` while zoomed
|
|
@@ -9415,6 +10209,16 @@ Chart.js wrapper every other `lr-*-chart` tag subclasses; supports both a simpli
|
|
|
9415
10209
|
- `stacked: boolean = false` — stacks the `x`/`y`(/`y2`) scale entries `buildScales()` returns; only
|
|
9416
10210
|
meaningful for `bar`/`line` types (scatter/bubble's linear `x` scale and the radial `r` scale used
|
|
9417
10211
|
by radar/polar-area are out of scope)
|
|
10212
|
+
- `dataLabels: boolean = false` (attribute `data-labels`) — draws each point's value on the chart via
|
|
10213
|
+
the optional `chartjs-plugin-datalabels` peer (see `peers.md`). Unset (the default) leaves labels
|
|
10214
|
+
off; because the plugin is registered **per chart instance** (not globally), a `<lr-chart
|
|
10215
|
+
data-labels>` never affects any other chart on the page. If the peer is not installed the chart
|
|
10216
|
+
still renders and the attribute is inert, with one `console.warn`. The screen-reader equivalent is
|
|
10217
|
+
the always-present accessible data table (`show-data-table` makes it visible) — labels are a
|
|
10218
|
+
purely visual, canvas-only addition and add no new a11y surface.
|
|
10219
|
+
- `stackTotals: boolean = false` (attribute `stack-totals`) — with `stacked` (bar/line only), draws
|
|
10220
|
+
the per-category stack total above each stack, via the same `chartjs-plugin-datalabels` peer.
|
|
10221
|
+
Null/undefined points are skipped; a category whose every value is null shows no total (not `0`)
|
|
9418
10222
|
- `config?: Partial<ChartConfiguration>` (attribute: false) — deep-merged over the generated
|
|
9419
10223
|
config; any nested key wins without clobbering sibling generated keys. This is the raw Chart.js
|
|
9420
10224
|
escape hatch, so a caller-supplied `config.type` is passed through rather than normalized.
|
|
@@ -9427,11 +10231,39 @@ Chart.js wrapper every other `lr-*-chart` tag subclasses; supports both a simpli
|
|
|
9427
10231
|
- `chartArea: LyraChartArea | undefined` (readonly) — current Chart.js chart-area geometry in
|
|
9428
10232
|
canvas-local coordinates (`top`, `left`, `right`, `bottom`, `width`, `height`), when a chart is
|
|
9429
10233
|
drawn
|
|
10234
|
+
- `appendData(label, values, maxPoints?)` — appends one aligned numeric category and optionally
|
|
10235
|
+
keeps only the newest `maxPoints`; point-based scatter/bubble series are left unchanged
|
|
10236
|
+
|
|
10237
|
+
**Methods:** `resetZoom()` resets any active zoom/pan to the original view. `refreshTheme()` forces
|
|
10238
|
+
a redraw so the `--lr-chart-*` tokens below are re-read from the current computed style. A
|
|
10239
|
+
built-in `ThemeWatcher` now calls this automatically when `prefers-color-scheme` flips or an
|
|
10240
|
+
ancestor's `class`/`style`/`data-theme`/`data-color-scheme` attribute mutates — the most common
|
|
10241
|
+
theme-toggle mechanisms — so a consumer rarely needs to call it by hand; it remains public as the
|
|
10242
|
+
escape hatch for theme changes those signals can't observe. `exportData('csv' | 'png')` returns a
|
|
10243
|
+
spreadsheet-safe CSV snapshot or the current PNG data URL when Chart.js is loaded.
|
|
10244
|
+
|
|
10245
|
+
The instance method `seriesPalette(): string[]` resolves the categorical series ramp
|
|
10246
|
+
(`--lr-color-chart-1..8`) through `getComputedStyle` and returns the concrete, theme-aware colors —
|
|
10247
|
+
the exact same values the chart hands any series that sets no `color` of its own. Each internal
|
|
10248
|
+
token resolves through the matching application input (`--lr-theme-color-chart-1..8`), so theme
|
|
10249
|
+
overrides are included.
|
|
10250
|
+
|
|
10251
|
+
The module also exports `seriesPalette(scope?: Element | null): string[]`, which can run before a
|
|
10252
|
+
chart exists. Omit `scope` to read `document.documentElement`, pass an element to resolve its theme
|
|
10253
|
+
scope, or pass `null` to request the light-mode fallback directly. When a scope has no component
|
|
10254
|
+
token layer yet, the helper reads the `--lr-theme-color-chart-N` inputs directly. Both forms return
|
|
10255
|
+
a fresh eight-color array each call (safe to mutate) and let chart-adjacent UI, KPI tiles, or the
|
|
10256
|
+
`Series` array itself come from one source of truth.
|
|
9430
10257
|
|
|
9431
|
-
|
|
9432
|
-
|
|
9433
|
-
|
|
9434
|
-
|
|
10258
|
+
```ts
|
|
10259
|
+
import { seriesPalette } from '@aceshooting/lyra-ui/components/charts/chart/chart.js';
|
|
10260
|
+
|
|
10261
|
+
const colors = seriesPalette();
|
|
10262
|
+
const series = [
|
|
10263
|
+
{ label: 'Revenue', data: [12, 19], color: colors[0] },
|
|
10264
|
+
{ label: 'Costs', data: [7, 11], color: colors[1] },
|
|
10265
|
+
];
|
|
10266
|
+
```
|
|
9435
10267
|
|
|
9436
10268
|
**Events:** `lr-zoom` (`detail: { zoomed: boolean }`, fired on zoom-complete and on
|
|
9437
10269
|
`resetZoom()`), `lr-point-click` (fired when a click lands on, or nearest to — intersect-only —
|
|
@@ -9477,10 +10309,9 @@ subset actually used.
|
|
|
9477
10309
|
property values fall back to `line`. Each typed `lr-*-chart` subclass (e.g.
|
|
9478
10310
|
`llms/components/lr-bar-chart.md`) locks its *own* `type` via a real prototype accessor — a
|
|
9479
10311
|
genuine runtime lock, not just a compile-time default.
|
|
9480
|
-
-
|
|
9481
|
-
|
|
9482
|
-
|
|
9483
|
-
`--lr-chart-*` tokens above.
|
|
10312
|
+
- a built-in `ThemeWatcher` auto-retheme an already-drawn chart when `prefers-color-scheme` flips or
|
|
10313
|
+
an ancestor's `class`/`style`/`data-theme`/`data-color-scheme` attribute mutates (coalesced to one
|
|
10314
|
+
redraw). `refreshTheme()` stays public for out-of-band theme changes those signals can't observe.
|
|
9484
10315
|
- generated `scales` are keyed off the *effective* type (`config.type` ?? `type`, see
|
|
9485
10316
|
`effectiveType()`) and are type-appropriate: no scale at all for `type="pie"`/`"doughnut"` (true of
|
|
9486
10317
|
`<lr-chart type="pie">` directly, not just the `lr-pie-chart`/`lr-doughnut-chart` subclasses),
|
|
@@ -9585,16 +10416,24 @@ passthrough). Not a subclass of `LyraChart`.
|
|
|
9585
10416
|
every bar/segment at that index, across every dataset — e.g. to highlight a whole selected week's
|
|
9586
10417
|
column in a stacked chart. Empty (the default) reproduces the exact existing output: no bar
|
|
9587
10418
|
carries `data-selected`. This component takes no opinion on what the highlight looks like, only
|
|
9588
|
-
which bars it applies to — style
|
|
10419
|
+
which bars it applies to — style the highlight via the `--lr-lite-chart-selected-outline-color`
|
|
10420
|
+
custom property (documented below). Note `::part(bar)[data-selected]` is **invalid CSS** — Shadow
|
|
10421
|
+
Parts forbids an attribute selector after `::part()` — so it silently never matches; the outline
|
|
10422
|
+
is painted inside the shadow root and exposed through that token instead.
|
|
9589
10423
|
- `minBarHeight?: number` (attribute `min-bar-height`) — optional minimum visible bar height for
|
|
9590
10424
|
small non-zero values
|
|
9591
10425
|
- `accessibleLabel?: string` (attribute `accessible-label`) — SVG accessible-name override; a host
|
|
9592
10426
|
`aria-label` wins
|
|
10427
|
+
- `appendData(label, values, maxPoints?)` — appends one aligned category and optionally trims the
|
|
10428
|
+
oldest categories
|
|
9593
10429
|
|
|
9594
10430
|
**Events:** `lr-point-click` — fired when a bar/point is activated (click, or Enter/Space while
|
|
9595
10431
|
focused). `detail: { datasetIndex: number, index: number, label: string | undefined, value: number
|
|
9596
10432
|
| null }` — same shape as `lr-chart`'s `lr-point-click`.
|
|
9597
10433
|
|
|
10434
|
+
**Methods:** `exportData('csv' | 'svg')` returns a spreadsheet-safe CSV snapshot or the current SVG
|
|
10435
|
+
markup. The method does not download a file; pair it with `lr-export-button` for download UX.
|
|
10436
|
+
|
|
9598
10437
|
The axis gutter/title and y-axis labels mirror to logical start under RTL. Built-in mark summaries
|
|
9599
10438
|
are complete localized templates and format values with `effectiveLocale`.
|
|
9600
10439
|
|
|
@@ -9609,7 +10448,16 @@ fresh, small SVG render is cheaper and more correct than a lossy cache.
|
|
|
9609
10448
|
`data-selected` when its category index is in `selectedIndex`), `line`, `point`, `legend`,
|
|
9610
10449
|
`legend-item`, `legend-swatch`, `legend-text` (extra per-item text after the series label,
|
|
9611
10450
|
rendered only when `legendText` is set), `live-region` (the current mark announcement for keyboard
|
|
9612
|
-
users), `data-list` (a visually hidden list of all plotted data points)
|
|
10451
|
+
users), `data-list` (a visually hidden list of all plotted data points — single-series only),
|
|
10452
|
+
`data-table` (a visually hidden category×series data table, rendered instead of `data-list` when
|
|
10453
|
+
there is more than one dataset).
|
|
10454
|
+
|
|
10455
|
+
**Screen-reader data alternative:** a single dataset renders the flat `data-list` (one `<li>` per
|
|
10456
|
+
plotted point, matching the roving-tabindex mark order). More than one dataset instead renders a
|
|
10457
|
+
`data-table` — a category-labelled `<caption>` (the shared localized `chartData` string), one
|
|
10458
|
+
`<th scope="col">` per series (plus a leading `chartCategory` corner header), and one
|
|
10459
|
+
`<th scope="row">` per category label with its per-series values in the body — so a screen-reader
|
|
10460
|
+
user hears the values grouped by series rather than one flattened N×M sequence.
|
|
9613
10461
|
|
|
9614
10462
|
**Themeable custom properties:** `--lr-chart-height` (same host-level property as `lr-chart`);
|
|
9615
10463
|
`--lr-chart-grid-color`, `--lr-chart-tick-color`, `--lr-chart-legend-color` — same token
|
|
@@ -9664,7 +10512,8 @@ of every entry in these lists.**
|
|
|
9664
10512
|
|
|
9665
10513
|
**Properties:** `labels`, `datasets`, `legend`, `legendPosition` (attribute `legend-position`),
|
|
9666
10514
|
`valueFormatter`, `area`, `zoom`, `height`, `xLabel` (`x-label`), `yLabel` (`y-label`), `y2Label`
|
|
9667
|
-
(`y2-label`), `beginAtZero` (`begin-at-zero`), `horizontal`, `stacked`, `
|
|
10515
|
+
(`y2-label`), `beginAtZero` (`begin-at-zero`), `horizontal`, `stacked`, `dataLabels`
|
|
10516
|
+
(`data-labels`), `stackTotals` (`stack-totals`), `config`, `accessibleLabel`
|
|
9668
10517
|
(`accessible-label`), `accessibleDescription` (`accessible-description`), `showDataTable`
|
|
9669
10518
|
(`show-data-table`), `chartArea` (readonly). `type` is the only member that differs: read-only,
|
|
9670
10519
|
locked to this tag's value.
|
|
@@ -9685,7 +10534,7 @@ dependency fails to load — see `llms/components/lr-chart.md`).
|
|
|
9685
10534
|
`--lr-chart-tooltip-text`.
|
|
9686
10535
|
|
|
9687
10536
|
**Optional peer deps:** same as `lr-chart` — `chart.js`, plus `chartjs-plugin-zoom` only once
|
|
9688
|
-
`zoom` is set.
|
|
10537
|
+
`zoom` is set, and `chartjs-plugin-datalabels` only once `data-labels`/`stack-totals` is set.
|
|
9689
10538
|
|
|
9690
10539
|
```html
|
|
9691
10540
|
<lr-bar-chart legend></lr-bar-chart>
|
|
@@ -9729,8 +10578,9 @@ Bins `values` into `bins` equal-width buckets and renders as a bar chart (extend
|
|
|
9729
10578
|
- All other `LyraChart` properties are inherited and usable: `legend`, `legendPosition` (attribute
|
|
9730
10579
|
`legend-position`), `valueFormatter`, `area`, `zoom`, `config`, `height`, `xLabel` (`x-label`),
|
|
9731
10580
|
`yLabel` (`y-label`), `y2Label` (`y2-label`), `beginAtZero` (`begin-at-zero`), `horizontal`,
|
|
9732
|
-
`stacked`, `
|
|
9733
|
-
(`accessible-
|
|
10581
|
+
`stacked`, `dataLabels` (`data-labels`), `stackTotals` (`stack-totals`), `accessibleLabel`
|
|
10582
|
+
(`accessible-label`), `accessibleDescription` (`accessible-description`), `showDataTable`
|
|
10583
|
+
(`show-data-table`), `chartArea` (readonly).
|
|
9734
10584
|
|
|
9735
10585
|
**Methods:** `resetZoom()`, `refreshTheme()` — both inherited.
|
|
9736
10586
|
|
|
@@ -9794,7 +10644,8 @@ browser). Does **not** extend `LyraChart` — a deliberately bespoke API.
|
|
|
9794
10644
|
|
|
9795
10645
|
**Slots:** `data-table` — an optional consumer-provided accessible table alternative.
|
|
9796
10646
|
|
|
9797
|
-
**CSS parts:** `base`, `canvas`, `description`, `data-table`
|
|
10647
|
+
**CSS parts:** `base`, `canvas`, `description`, `data-table`, `error` (`role="alert"` message shown
|
|
10648
|
+
instead of `canvas` when the optional box-plot peer fails to load)
|
|
9798
10649
|
|
|
9799
10650
|
**Themeable custom properties:** `--lr-chart-height`, `--lr-chart-grid-color`,
|
|
9800
10651
|
`--lr-chart-tick-color`, `--lr-chart-legend-color`, `--lr-chart-tooltip-bg`,
|
|
@@ -9802,8 +10653,8 @@ browser). Does **not** extend `LyraChart` — a deliberately bespoke API.
|
|
|
9802
10653
|
(also `getComputedStyle`-resolved on every draw), but declared in its own stylesheet, not a
|
|
9803
10654
|
re-export: `lr-box-plot` has no `zoom`, so no `reset-zoom-button` chrome exists here.
|
|
9804
10655
|
|
|
9805
|
-
**Optional peer deps:** `@sgratzl/chartjs-chart-boxplot`
|
|
9806
|
-
|
|
10656
|
+
**Optional peer deps:** `@sgratzl/chartjs-chart-boxplot` plus `chart.js`; Chart.js is obtained
|
|
10657
|
+
through the same cached `chart-loader.ts` used by `lr-chart`.
|
|
9807
10658
|
|
|
9808
10659
|
```html
|
|
9809
10660
|
<lr-box-plot y-label="Latency (ms)"></lr-box-plot>
|
|
@@ -9821,10 +10672,19 @@ independently of the base `chart-loader.ts`).
|
|
|
9821
10672
|
logical start in RTL, canvas tooltip/axis colors are token-driven, and animation is disabled
|
|
9822
10673
|
under reduced motion.
|
|
9823
10674
|
- If `@sgratzl/chartjs-chart-boxplot` fails to load, the component warns to the console and
|
|
9824
|
-
|
|
10675
|
+
fails closed with a localized `role="alert"` error part rather than leaving a blank canvas.
|
|
9825
10676
|
|
|
9826
10677
|
---
|
|
9827
10678
|
|
|
10679
|
+
## Chart streaming and export
|
|
10680
|
+
|
|
10681
|
+
`lr-lite-chart` and `lr-chart` expose additive imperative helpers for live dashboards:
|
|
10682
|
+
`appendData(label, values, maxPoints?)` appends one aligned category and optionally trims the oldest
|
|
10683
|
+
points. `lr-lite-chart.exportData('csv' | 'svg')` returns a spreadsheet-safe CSV snapshot or the
|
|
10684
|
+
current SVG markup. `lr-chart.exportData('csv' | 'png')` returns a CSV snapshot or Chart.js's current
|
|
10685
|
+
PNG data URL when the optional peer is loaded. These helpers do not download files; compose them
|
|
10686
|
+
with `lr-export-button` so the host owns filenames and download policy.
|
|
10687
|
+
|
|
9828
10688
|
# Document & file viewers (`components/viewers/`)
|
|
9829
10689
|
|
|
9830
10690
|
## `lr-document-preview`
|
|
@@ -9918,7 +10778,10 @@ used both for `status="converting"` and this component's own in-flight text fetc
|
|
|
9918
10778
|
rendered when `src` is set *and* passes the link-safe scheme allowlist — see the URL-safety note
|
|
9919
10779
|
above; excludes `data:` even though the other two sinks allow it), `highlight-layer` (wrapper around
|
|
9920
10780
|
every rendered region highlight, image format only), `region-highlight` (one region highlight,
|
|
9921
|
-
`data-tone`, `data-active`; image format only), `
|
|
10781
|
+
`data-tone`, `data-active`; image format only), `region-highlight-target` (transparent activation
|
|
10782
|
+
geometry with a minimum hit area independent of the visual rectangle), `highlight-actions`
|
|
10783
|
+
(non-overlapping actions used when multiple minimum hit areas would overlap),
|
|
10784
|
+
`region-highlight-action` (one action in that list), `frame-viewport`/`frame-content`/`frame-controls`/
|
|
9922
10785
|
`frame-zoom-in`/`frame-zoom-out`/`frame-reset` (forwarded from the internal `<lr-zoomable-frame>`
|
|
9923
10786
|
while `zoomable`; image format only)
|
|
9924
10787
|
|
|
@@ -9926,7 +10789,8 @@ while `zoomable`; image format only)
|
|
|
9926
10789
|
consumer-tunable scroll cap on `[part="body"]`, set from `max-height`; `none` means the preview grows
|
|
9927
10790
|
with its content until a caller opts in. `--lr-document-preview-font` (default `ui-monospace,
|
|
9928
10791
|
SFMono-Regular, Menlo, Consolas, monospace`) and `--lr-document-preview-spin-duration` (default
|
|
9929
|
-
`
|
|
10792
|
+
`var(--lr-transition-ambient)`, stopped under reduced motion). `--lr-document-preview-progress`
|
|
10793
|
+
(default `0`) — a unitless
|
|
9930
10794
|
0–100 number the determinate spinner's `conic-gradient` fill reads; written inline on the ring by
|
|
9931
10795
|
the component itself from the clamped `progress` property, so overriding it only makes sense to
|
|
9932
10796
|
repaint the fraction. `--lr-document-preview-active-border` (default
|
|
@@ -9937,7 +10801,11 @@ state hooks it is an inline `var()` fallback at the point of use rather than a `
|
|
|
9937
10801
|
so it can be set on the element or on any ancestor — `::part(region-highlight)[data-active]` is
|
|
9938
10802
|
invalid CSS (Shadow Parts forbids an attribute selector after `::part()`), which previously left
|
|
9939
10803
|
re-pointing the shared `--lr-color-warning`/`--lr-color-brand` tokens as the only lever, repainting
|
|
9940
|
-
every other element that read them.
|
|
10804
|
+
every other element that read them. The tone-specific resting border and hover tint use
|
|
10805
|
+
`--lr-document-preview-highlight-accent-color`, `--lr-document-preview-highlight-success-color`,
|
|
10806
|
+
`--lr-document-preview-highlight-warning-color`, `--lr-document-preview-highlight-danger-color`,
|
|
10807
|
+
and `--lr-document-preview-highlight-neutral-color` (defaulting respectively to the matching
|
|
10808
|
+
brand/success/warning/danger/neutral color tokens). Plus shared tokens
|
|
9941
10809
|
`--lr-color-border`, `--lr-radius`, `--lr-color-surface`, `--lr-space-s/-m/-l/-xs`,
|
|
9942
10810
|
`--lr-color-text`, `--lr-color-text-quiet`, `--lr-color-danger`, `--lr-color-brand`,
|
|
9943
10811
|
`--lr-color-on-brand`, `--lr-focus-ring-width/-color/-offset`, `--lr-transition-fast`.
|
|
@@ -9992,9 +10860,10 @@ available, the region becomes a standard `role="progressbar"` instead, self-desc
|
|
|
9992
10860
|
just via two different mechanisms depending on timing.
|
|
9993
10861
|
- `download-link` (and thus `lr-download`) only renders/fires when `src` is set — a generic-fallback
|
|
9994
10862
|
state with no `src` shows only the file glyph and message, with no download affordance at all.
|
|
9995
|
-
- `download-link` also never renders for a `data:` URL, even though `data:` is accepted
|
|
9996
|
-
sinks
|
|
9997
|
-
in the
|
|
10863
|
+
- `download-link` also never renders for a `data:` or `mailto:` URL, even though `data:` is accepted
|
|
10864
|
+
for text/image sinks and `mailto:` is accepted for navigation anchors elsewhere in the library — a
|
|
10865
|
+
`src="data:..."` document renders/fetches fine but falls back to no download affordance in the
|
|
10866
|
+
generic state, and a `mailto:` names no retrievable bytes so it cannot be a download target at all.
|
|
9998
10867
|
- A `src` that fails its sink's URL-safety check does **not** raise `lr-render-error` — that event is
|
|
9999
10868
|
reserved for a `fetch()` that was actually attempted and failed at the network layer; an unsafe/
|
|
10000
10869
|
malformed `src` is silently treated as unusable instead (a rendered `[part="error"]` message for
|
|
@@ -10030,10 +10899,11 @@ type. First-party invention.
|
|
|
10030
10899
|
- `lr-download` — `detail: { src, filename }`, emitted when the native safe download action is
|
|
10031
10900
|
activated. The browser download itself is handled by the link.
|
|
10032
10901
|
- `lr-anchor-result` — `detail: { found }`. Emitted by this shell as `{ found: false }` once per
|
|
10033
|
-
applied `anchor` when
|
|
10034
|
-
or none matching the anchor's `kind`)
|
|
10035
|
-
|
|
10036
|
-
its
|
|
10902
|
+
applied `anchor` when a resolved renderer can't honor it (it declares no `capabilities.anchors`,
|
|
10903
|
+
or none matching the anchor's `kind`). When the file uses `<lr-document-preview>`—including after
|
|
10904
|
+
a lazy renderer fails to load—the shell delegates to that preview's `scrollToAnchor()` and emits
|
|
10905
|
+
its actual `found` result. A capable renderer instead emits its own `lr-anchor-result` from its
|
|
10906
|
+
embedded `DocumentAnchorTarget` mixin, which composes up through this element unchanged — the
|
|
10037
10907
|
shell stays silent in that case, so the event fires exactly once either way. A string `anchor`
|
|
10038
10908
|
(a highlight id) counts as supported by any renderer declaring at least one anchor kind.
|
|
10039
10909
|
|
|
@@ -10114,6 +10984,17 @@ currently active search match, also carries `search-match`).
|
|
|
10114
10984
|
|
|
10115
10985
|
**Themeable custom properties:** `--lr-docx-viewer-max-height` (default `none`) — maximum block size
|
|
10116
10986
|
of `[part="body"]`; also settable via the `max-height` property, which writes this token inline.
|
|
10987
|
+
Highlight backgrounds are independently themeable with
|
|
10988
|
+
`--lr-docx-viewer-highlight-accent-background`,
|
|
10989
|
+
`--lr-docx-viewer-highlight-success-background`,
|
|
10990
|
+
`--lr-docx-viewer-highlight-warning-background`,
|
|
10991
|
+
`--lr-docx-viewer-highlight-danger-background`, and
|
|
10992
|
+
`--lr-docx-viewer-highlight-neutral-background`, defaulting to the matching quiet color tokens.
|
|
10993
|
+
`--lr-docx-viewer-highlight-active-background` and
|
|
10994
|
+
`--lr-docx-viewer-highlight-active-outline` style the active host highlight.
|
|
10995
|
+
`--lr-docx-viewer-search-match-background`,
|
|
10996
|
+
`--lr-docx-viewer-search-match-active-background`, and
|
|
10997
|
+
`--lr-docx-viewer-search-match-active-foreground` style resting and active search matches.
|
|
10117
10998
|
|
|
10118
10999
|
**Optional peer dependencies:** install `mammoth` and `dompurify` with `pnpm add mammoth dompurify`.
|
|
10119
11000
|
The component registers an eager `application/vnd.openxmlformats-officedocument.wordprocessingml.document`
|
|
@@ -10144,7 +11025,12 @@ Remote resources are capped at 25 MB; exceeding it surfaces the localized
|
|
|
10144
11025
|
|
|
10145
11026
|
**Properties:** `src`, `name`, and `maxHeight` (attribute `max-height`) are strings. `foldQuotes:
|
|
10146
11027
|
boolean = false` (attribute `fold-quotes`) — collapses trailing quoted-reply text/HTML behind a
|
|
10147
|
-
localized show/hide toggle. `false` (the default) preserves the full body rendering.
|
|
11028
|
+
localized show/hide toggle. `false` (the default) preserves the full body rendering. A host
|
|
11029
|
+
`aria-label` takes precedence over `name`. `highlights`, `activeHighlightId`, `anchor`, and
|
|
11030
|
+
`anchorKinds` (`['text-quote', 'fragment']`) provide the shared text-viewer contract.
|
|
11031
|
+
|
|
11032
|
+
**Methods:** `search(query)`, `searchNext()`, `searchPrevious()`, `clearSearch()`, and
|
|
11033
|
+
`scrollToAnchor()` operate on rendered message text and emit the shared search/anchor events.
|
|
10148
11034
|
|
|
10149
11035
|
**Events:** `lr-render-error` with `detail.error` when fetching or parsing fails.
|
|
10150
11036
|
`lr-attachment-open` — `detail: { attachment: { filename, mimeType, content? } }`, `content` a
|
|
@@ -10163,8 +11049,8 @@ of `[part="body"]`; also settable via the `max-height` property, which writes th
|
|
|
10163
11049
|
|
|
10164
11050
|
**Optional peer dependencies:** install `postal-mime` and `dompurify` with
|
|
10165
11051
|
`pnpm add postal-mime dompurify`. The component registers `message/rfc822` and falls back to
|
|
10166
|
-
matching `.eml` filenames in `<lr-document-viewer>`.
|
|
10167
|
-
|
|
11052
|
+
matching `.eml` filenames in `<lr-document-viewer>`. Fail-closed behavior is explicit: an absent
|
|
11053
|
+
`postal-mime` renders `[part="error"]` with the localized
|
|
10168
11054
|
`emailViewerMissingParser` message (nothing is parseable without it), and an HTML-only message
|
|
10169
11055
|
(no `text/plain` alternative) with `dompurify` absent renders the localized
|
|
10170
11056
|
`documentViewerMissingSanitizer` message rather than silently showing an empty body.
|
|
@@ -10174,7 +11060,12 @@ contract: an absent `postal-mime` renders `[part="error"]` with the localized
|
|
|
10174
11060
|
Fetches and parses `.ics` calendars with the optional `ical.js` peer and renders each VEVENT as
|
|
10175
11061
|
plain text, including its title, start/end time, location, and description. No HTML is injected.
|
|
10176
11062
|
|
|
10177
|
-
**Properties:** `src`, `name`, and `maxHeight` (attribute `max-height`) are strings.
|
|
11063
|
+
**Properties:** `src`, `name`, and `maxHeight` (attribute `max-height`) are strings. A host
|
|
11064
|
+
`aria-label` takes precedence over `name`. `highlights`, `activeHighlightId`, `anchor`, and
|
|
11065
|
+
`anchorKinds` (`['text-quote', 'fragment']`) provide the shared text-viewer contract.
|
|
11066
|
+
|
|
11067
|
+
**Methods:** `search(query)`, `searchNext()`, `searchPrevious()`, `clearSearch()`, and
|
|
11068
|
+
`scrollToAnchor()` operate on rendered event text and emit `lr-search-change`/`lr-anchor-result`.
|
|
10178
11069
|
|
|
10179
11070
|
**Events:** `lr-render-error` with `detail.error` when fetching or parsing fails.
|
|
10180
11071
|
|
|
@@ -10198,12 +11089,17 @@ read straight from JSZip's local file header (`uncompressedSize`) when available
|
|
|
10198
11089
|
fully decompressing only the rare entry missing that header field. The list composes
|
|
10199
11090
|
`<lr-virtual-list>` for large archives.
|
|
10200
11091
|
|
|
10201
|
-
**Properties:** `src` and `name` are strings —
|
|
10202
|
-
|
|
11092
|
+
**Properties:** `src` and `name` are strings — a host-level `aria-label` takes precedence over
|
|
11093
|
+
`name` when naming the `role="region"` listing. The viewer also exposes the shared text-viewer
|
|
11094
|
+
contract: `highlights`, `activeHighlightId`, `anchor`, and `anchorKinds` (`['text-quote', 'fragment']`).
|
|
11095
|
+
|
|
11096
|
+
**Methods:** `search(query)`, `searchNext()`, `searchPrevious()`, and `clearSearch()` provide
|
|
11097
|
+
case-insensitive text search over rendered entry names; `scrollToAnchor()` resolves text-quote and
|
|
11098
|
+
fragment anchors and emits `lr-anchor-result`.
|
|
10203
11099
|
|
|
10204
11100
|
**Events:** `lr-render-error` with `detail.error` when fetching or parsing fails.
|
|
10205
11101
|
|
|
10206
|
-
**CSS parts:** `base`, `entry`, `entry-icon`, `entry-name`, `entry-name-dir`, `entry-size`,
|
|
11102
|
+
**CSS parts:** `base`, `body`, `entry`, `entry-icon`, `entry-name`, `entry-name-dir`, `entry-size`,
|
|
10207
11103
|
`spinner`, and `error`. A directory row's name element carries both `entry-name` and
|
|
10208
11104
|
`entry-name-dir` (a part list), so `::part(entry-name-dir)` selects only directory names while
|
|
10209
11105
|
`::part(entry-name)` still selects every name. Entry rows are rendered into the embedded
|
|
@@ -10254,6 +11150,10 @@ clears the query, matches, and painted search annotation.
|
|
|
10254
11150
|
`mount`, `error`, and `announcer` (the visually-hidden `role="status"` region search results
|
|
10255
11151
|
announce through).
|
|
10256
11152
|
|
|
11153
|
+
The toolbar buttons use the component-specific localized labels `ebookViewerPreviousChapter` and
|
|
11154
|
+
`ebookViewerNextChapter` (English: “Previous chapter” / “Next chapter”), so they remain
|
|
11155
|
+
unambiguous beside other previous/next controls and are overridable through `.strings`.
|
|
11156
|
+
|
|
10257
11157
|
**Optional peer dependency:** install `epubjs` with `pnpm add epubjs`. The document-viewer registry
|
|
10258
11158
|
matches `application/epub+zip` and `.epub` filenames, declaring `{ anchors: ['cfi', 'text-quote'],
|
|
10259
11159
|
search: true, textSelect: true }` capabilities.
|
|
@@ -10276,10 +11176,14 @@ Best-effort client-side PPTX viewer backed by the optional `@aiden0z/pptx-render
|
|
|
10276
11176
|
localized fidelity notice is always visible because animations, equations, embedded objects,
|
|
10277
11177
|
speaker notes, and several advanced effects are not rendered.
|
|
10278
11178
|
|
|
10279
|
-
**Properties:** `src`, `name`, and `label` are strings. A host `aria-label`
|
|
10280
|
-
|
|
11179
|
+
**Properties:** `src`, `name`, and `label` are strings. A host `aria-label` takes precedence over
|
|
11180
|
+
`label` and `name`. `highlights`, `activeHighlightId`, `anchor`, and `anchorKinds`
|
|
11181
|
+
(`['text-quote', 'fragment']`) provide the shared text-viewer contract when the renderer exposes
|
|
11182
|
+
DOM text.
|
|
10281
11183
|
|
|
10282
11184
|
**Methods:** `goToSlide(index)` returns a promise and navigates the mounted presentation.
|
|
11185
|
+
`search(query)`, `searchNext()`, `searchPrevious()`, `clearSearch()`, and `scrollToAnchor()` are
|
|
11186
|
+
available for renderer output that exposes DOM text.
|
|
10283
11187
|
|
|
10284
11188
|
**Events:** `lr-load` (`detail: { slideCount }`), `lr-slide-change` (`detail: { index, count }`),
|
|
10285
11189
|
and `lr-render-error` with `detail.error`.
|
|
@@ -10319,6 +11223,9 @@ Enter/Space.
|
|
|
10319
11223
|
|
|
10320
11224
|
**CSS parts:** `base`, `body`, `svg`, `spinner`, `error`, `highlight-layer` (wrapper around every
|
|
10321
11225
|
rendered region highlight), `region-highlight` (one region highlight, `data-tone`, `data-active`),
|
|
11226
|
+
`region-highlight-target` (transparent activation geometry with an independent minimum hit area),
|
|
11227
|
+
`highlight-actions` (non-overlapping actions for multiple highlights), `region-highlight-action`
|
|
11228
|
+
(one action in that list),
|
|
10322
11229
|
`frame-viewport`/`frame-content`/`frame-controls`/`frame-zoom-in`/`frame-zoom-out`/`frame-reset`
|
|
10323
11230
|
(forwarded from the internal `<lr-zoomable-frame>` while `zoomable`).
|
|
10324
11231
|
|
|
@@ -10331,7 +11238,11 @@ inline `var()` fallback at the point of use rather than a `:host` declaration, s
|
|
|
10331
11238
|
the element *or on any ancestor*: `::part(region-highlight)[data-active]` is invalid CSS — Shadow
|
|
10332
11239
|
Parts forbids an attribute selector after `::part()` — so re-pointing a shared `--lr-color-*` token,
|
|
10333
11240
|
and repainting everything else reading it, was previously the only way. Unset, it falls back to
|
|
10334
|
-
exactly the tokens the rule used before.
|
|
11241
|
+
exactly the tokens the rule used before. The tone-specific resting border and hover tint use
|
|
11242
|
+
`--lr-svg-viewer-highlight-accent-color`, `--lr-svg-viewer-highlight-success-color`,
|
|
11243
|
+
`--lr-svg-viewer-highlight-warning-color`, `--lr-svg-viewer-highlight-danger-color`, and
|
|
11244
|
+
`--lr-svg-viewer-highlight-neutral-color` (defaulting respectively to the matching
|
|
11245
|
+
brand/success/warning/danger/neutral color tokens).
|
|
10335
11246
|
|
|
10336
11247
|
**Optional peer dependency:** `dompurify`.
|
|
10337
11248
|
|
|
@@ -10343,7 +11254,12 @@ Remote resources are capped at 25 MB; exceeding it surfaces the localized
|
|
|
10343
11254
|
Fetches an HTML document, sanitizes it with the optional `dompurify` peer, and renders the safe markup
|
|
10344
11255
|
inside a bounded, scrollable body.
|
|
10345
11256
|
|
|
10346
|
-
**Properties:** `src`, `name`, and `maxHeight` (attribute `max-height`) are strings.
|
|
11257
|
+
**Properties:** `src`, `name`, and `maxHeight` (attribute `max-height`) are strings. A host
|
|
11258
|
+
`aria-label` takes precedence over `name`. `highlights`, `activeHighlightId`, `anchor`, and
|
|
11259
|
+
`anchorKinds` (`['text-quote', 'fragment']`) provide the shared text-viewer contract.
|
|
11260
|
+
|
|
11261
|
+
**Methods:** `search(query)`, `searchNext()`, `searchPrevious()`, `clearSearch()`, and
|
|
11262
|
+
`scrollToAnchor()` operate on sanitized HTML text and emit the shared search/anchor events.
|
|
10347
11263
|
|
|
10348
11264
|
**Events:** `lr-render-error` with `detail.error` when fetching or sanitizing fails.
|
|
10349
11265
|
|
|
@@ -10419,7 +11335,12 @@ label when `FN` is absent).
|
|
|
10419
11335
|
Remote resources are capped at 25 MB; exceeding it surfaces the localized
|
|
10420
11336
|
`documentPreviewResourceTooLarge` message instead of the contacts.
|
|
10421
11337
|
|
|
10422
|
-
**Properties:** `src`, `name`, and `maxHeight` (attribute `max-height`) are strings.
|
|
11338
|
+
**Properties:** `src`, `name`, and `maxHeight` (attribute `max-height`) are strings. A host
|
|
11339
|
+
`aria-label` takes precedence over `name`. `highlights`, `activeHighlightId`, `anchor`, and
|
|
11340
|
+
`anchorKinds` (`['text-quote', 'fragment']`) provide the shared text-viewer contract.
|
|
11341
|
+
|
|
11342
|
+
**Methods:** `search(query)`, `searchNext()`, `searchPrevious()`, `clearSearch()`, and
|
|
11343
|
+
`scrollToAnchor()` operate on rendered contact text and emit the shared search/anchor events.
|
|
10423
11344
|
|
|
10424
11345
|
**Events:** `lr-render-error` with `detail.error` when fetching or parsing fails.
|
|
10425
11346
|
|
|
@@ -10508,7 +11429,7 @@ through the exported parts above rather than through dedicated custom properties
|
|
|
10508
11429
|
|
|
10509
11430
|
**Optional peer dependency:** install `pdfjs-dist` with `pnpm add pdfjs-dist`. The component registers
|
|
10510
11431
|
a lazy `application/pdf` renderer with `<lr-document-viewer>` so the PDF library is loaded only when
|
|
10511
|
-
a PDF is opened.
|
|
11432
|
+
a PDF is opened. An absent `pdfjs-dist` fails closed and renders
|
|
10512
11433
|
`[part="error"]` with the localized `pdfViewerMissingLibrary` message — there is no partial PDF
|
|
10513
11434
|
rendering without it.
|
|
10514
11435
|
|
|
@@ -10541,9 +11462,11 @@ Enter/Space. `lr-anchor-result` (`detail: { found }`) — fired after an `anchor
|
|
|
10541
11462
|
`scrollToAnchor()` call. `lr-search-change` (`detail: { query, matchCount, activeIndex }`) — from
|
|
10542
11463
|
`search()`/`searchNext()`/`searchPrevious()`/`clearSearch()`.
|
|
10543
11464
|
|
|
10544
|
-
**CSS parts:** `base`, `tabs`, `sheet`, `header-row`, `data-row`, `cell`, `cell-highlight` (a
|
|
10545
|
-
covered by a `highlights` entry), `
|
|
10546
|
-
|
|
11465
|
+
**CSS parts:** `base`, `tabs`, `sheet`, `header-row`, `data-row`, `cell`, `cell-highlight` (a
|
|
11466
|
+
structural cell covered by a `highlights` entry), `cell-highlight-action` (the native button
|
|
11467
|
+
filling a highlighted cell; focusable and emits `lr-highlight-activate`), `rows`, `spinner`, and
|
|
11468
|
+
`error`. `data-row`, `cell`, `cell-highlight`, and `cell-highlight-action` are rendered inside the
|
|
11469
|
+
internal `<lr-virtual-list>` and forwarded via
|
|
10547
11470
|
`exportparts`, so `lr-spreadsheet-viewer::part(cell)` reaches them from a consumer stylesheet.
|
|
10548
11471
|
|
|
10549
11472
|
**Themeable custom properties:** `--lr-spreadsheet-viewer-highlight-color` (default
|
|
@@ -10588,9 +11511,11 @@ Enter/Space. `lr-anchor-result` (`detail: { found }`) — fired after an `anchor
|
|
|
10588
11511
|
`scrollToAnchor()` call. `lr-search-change` (`detail: { query, matchCount, activeIndex }`) — from
|
|
10589
11512
|
`search()`/`searchNext()`/`searchPrevious()`/`clearSearch()`.
|
|
10590
11513
|
|
|
10591
|
-
**CSS parts:** `base`, `sheet`, `header-row`, `data-row`, `cell`, `cell-highlight` (a
|
|
10592
|
-
a `highlights` entry), `
|
|
10593
|
-
|
|
11514
|
+
**CSS parts:** `base`, `sheet`, `header-row`, `data-row`, `cell`, `cell-highlight` (a structural
|
|
11515
|
+
cell covered by a `highlights` entry), `cell-highlight-action` (the native button filling a
|
|
11516
|
+
highlighted cell; emits `lr-highlight-activate`), `rows`, `spinner`, and `error`. `data-row`,
|
|
11517
|
+
`cell`, `cell-highlight`, and `cell-highlight-action` are rendered inside the internal
|
|
11518
|
+
`<lr-virtual-list>` and forwarded via `exportparts`, so
|
|
10594
11519
|
`lr-csv-viewer::part(cell)` reaches them from a consumer stylesheet.
|
|
10595
11520
|
|
|
10596
11521
|
**Themeable custom properties:** `--lr-csv-viewer-max-height` (default `none`) — maximum block size
|
|
@@ -10635,13 +11560,19 @@ removed once it settles either way. Build error UI from `lr-include-error`.
|
|
|
10635
11560
|
letting `fetch()` throw. `no-cors` is accepted for enum completeness but always yields an opaque
|
|
10636
11561
|
response (`status` `0`, unreadable body) — a Fetch API limitation, not a bug here.
|
|
10637
11562
|
|
|
11563
|
+
The shared text-viewer contract is also available for the sanitized light-DOM fragment:
|
|
11564
|
+
`highlights`, `activeHighlightId`, `anchor`, and `anchorKinds` (`['text-quote', 'fragment']`).
|
|
11565
|
+
`search(query)`, `searchNext()`, `searchPrevious()`, `clearSearch()`, and `scrollToAnchor()`
|
|
11566
|
+
operate on the included text.
|
|
11567
|
+
|
|
10638
11568
|
**Events:**
|
|
10639
11569
|
- `lr-load` — `detail: { src }` — the fragment was sanitized and written into the light DOM.
|
|
10640
11570
|
- `lr-include-error` — `detail: { status, reason, error? }`. `reason` is a `LyraIncludeErrorReason`:
|
|
10641
11571
|
`'blocked-url'` (`src` failed the allowlist; `fetch()` never ran), `'network'` (`fetch()` rejected),
|
|
10642
11572
|
`'http'` (response not `ok`; `status` carries the code), `'missing-sanitizer'` (the optional
|
|
10643
11573
|
`dompurify` peer failed to load), or `'resource-too-large'` (the body exceeded the shared 25 MB
|
|
10644
|
-
cap).
|
|
11574
|
+
cap). Non-HTTP reasons use status `0`; `'http'` normally carries the response code, but an opaque
|
|
11575
|
+
`mode="no-cors"` response is also classified as `'http'` with status `0`.
|
|
10645
11576
|
|
|
10646
11577
|
**Slots:** default — fallback content shown until (or unless) a fetch succeeds. It is overwritten by
|
|
10647
11578
|
the sanitized fragment on success, and left untouched on failure (as is any previously successful
|
|
@@ -10649,9 +11580,9 @@ include).
|
|
|
10649
11580
|
|
|
10650
11581
|
**CSS parts:** `base` — the `display: contents` wrapper around the default slot.
|
|
10651
11582
|
|
|
10652
|
-
|
|
10653
|
-
`
|
|
10654
|
-
|
|
11583
|
+
An absent `dompurify` fails closed: it fires `lr-include-error` with
|
|
11584
|
+
`reason: 'missing-sanitizer'` and leaves the existing content in place — unsanitized markup is
|
|
11585
|
+
never transcluded.
|
|
10655
11586
|
|
|
10656
11587
|
## `lr-highlight-layer`
|
|
10657
11588
|
|
|
@@ -10670,8 +11601,22 @@ re-click of the same source citation).
|
|
|
10670
11601
|
**Events:** `lr-highlight-activate` — a rect was activated (click, or Enter/Space while focused).
|
|
10671
11602
|
`detail: { id }`.
|
|
10672
11603
|
|
|
10673
|
-
**CSS parts:** `base` (the absolutely-positioned overlay, inset 0)
|
|
10674
|
-
rectangle; carries `data-tone`/`data-active`/`data-flash` state attributes)
|
|
11604
|
+
**CSS parts:** `base` (the absolutely-positioned overlay, inset 0), `rect` (one visual highlight
|
|
11605
|
+
rectangle; carries `data-tone`/`data-active`/`data-flash` state attributes), and `rect-target`
|
|
11606
|
+
(transparent activation geometry with a minimum pointer/focus area independent of the visual
|
|
11607
|
+
rectangle). When more than one logical highlight would create overlapping minimum hit areas, the
|
|
11608
|
+
individual targets are replaced by `highlight-actions` (a non-overlapping action list) containing
|
|
11609
|
+
one `highlight-action` button per rendered highlight.
|
|
11610
|
+
|
|
11611
|
+
**Themeable custom properties:**
|
|
11612
|
+
`--lr-highlight-layer-accent-background`, `--lr-highlight-layer-accent-outline`,
|
|
11613
|
+
`--lr-highlight-layer-success-background`, `--lr-highlight-layer-success-outline`,
|
|
11614
|
+
`--lr-highlight-layer-warning-background`, `--lr-highlight-layer-warning-outline`,
|
|
11615
|
+
`--lr-highlight-layer-danger-background`, `--lr-highlight-layer-danger-outline`,
|
|
11616
|
+
`--lr-highlight-layer-neutral-background`, and `--lr-highlight-layer-neutral-outline` control each
|
|
11617
|
+
tone independently, defaulting to the corresponding Lyra quiet background and foreground tokens.
|
|
11618
|
+
`--lr-highlight-layer-flash-background` controls the temporary flash state (default
|
|
11619
|
+
`--lr-color-brand`).
|
|
10675
11620
|
|
|
10676
11621
|
## `lr-page-rail`
|
|
10677
11622
|
|
|
@@ -10736,18 +11681,23 @@ shared anchor-target contract).
|
|
|
10736
11681
|
|
|
10737
11682
|
**Methods:** `search(query)` resolves the match count over cell sources and text outputs — a
|
|
10738
11683
|
matching cell counts as one match (empty/whitespace query behaves like `clearSearch()`);
|
|
10739
|
-
`searchNext()`/`searchPrevious()` advance/step back through matches, scrolling to and
|
|
10740
|
-
target cell; `clearSearch()` clears the query and matches.
|
|
11684
|
+
`searchNext()`/`searchPrevious()` advance/step back through matches, scrolling to and marking the
|
|
11685
|
+
target cell with the persistent active-cell paint; `clearSearch()` clears the query and matches.
|
|
10741
11686
|
|
|
10742
11687
|
**Events:** `lr-load` — `detail: { cellCount, language }`, fired once a notebook has been parsed
|
|
10743
11688
|
and validated (`language` from `metadata.language_info.name`/`kernelspec.language`, else `''`).
|
|
10744
|
-
`lr-
|
|
10745
|
-
|
|
10746
|
-
|
|
11689
|
+
`lr-search-change` — `detail: { query, matchCount, activeIndex }`. `lr-render-error` —
|
|
11690
|
+
`detail: { error }`, fetching, parsing, or validating the notebook failed.
|
|
11691
|
+
|
|
11692
|
+
Migration note: the previously declared `lr-highlight-activate` event was never emitted by
|
|
11693
|
+
`lr-notebook-viewer` and has been removed from its class/EventMap contract. Use `anchor` plus
|
|
11694
|
+
`lr-anchor-result` for notebook cell navigation outcomes.
|
|
10747
11695
|
|
|
10748
11696
|
**CSS parts:** `base` (the root scroll container), `cell` (`data-cell-type="code|markdown|raw"`,
|
|
10749
|
-
`data-active`), `cell-active` (added alongside `cell` on the cell an anchor
|
|
10750
|
-
|
|
11697
|
+
`data-active`), `cell-active` (added alongside `cell` on the cell currently targeted by an anchor
|
|
11698
|
+
or the active search match),
|
|
11699
|
+
`cell-gutter` (the `In [n]`/`Out [n]` label column), `cell-source`, `raw-source` (the horizontally
|
|
11700
|
+
scrollable preformatted surface for a raw cell), `outputs`, `output`
|
|
10751
11701
|
(`data-output-type`, `data-stream`), `output-error` (added alongside `output` on a stderr stream or
|
|
10752
11702
|
an error output), `error-output-label` (the label introducing an error output's traceback),
|
|
10753
11703
|
`output-toggle`, `error`, `spinner`.
|
|
@@ -10762,9 +11712,9 @@ remain on the elements for scripting.
|
|
|
10762
11712
|
**Themeable custom properties:** `--lr-notebook-viewer-max-height` (default `none`).
|
|
10763
11713
|
|
|
10764
11714
|
`--lr-notebook-viewer-active-bg` (default `var(--lr-color-brand-quiet)`) is the background of the
|
|
10765
|
-
cell currently targeted by an anchor — the `cell-active` part. It is an
|
|
10766
|
-
the point of use rather than a `:host` declaration, so it can be set on
|
|
10767
|
-
ancestor.
|
|
11715
|
+
cell currently targeted by an anchor or the active search match — the `cell-active` part. It is an
|
|
11716
|
+
inline `var()` fallback at the point of use rather than a `:host` declaration, so it can be set on
|
|
11717
|
+
the element or on any ancestor.
|
|
10768
11718
|
|
|
10769
11719
|
**Optional peer deps:** `marked`+`dompurify` (markdown cells, falls back to plain text per cell),
|
|
10770
11720
|
`shiki` (code cells, falls back to unhighlighted), `dompurify` (HTML/SVG outputs, falls back to
|
|
@@ -10840,10 +11790,12 @@ so lowering it never squashes the chevron below its own box — the visible glyp
|
|
|
10840
11790
|
the hit target follows the token, and it can never fall under the accessible minimum from this
|
|
10841
11791
|
component's own rules.
|
|
10842
11792
|
|
|
10843
|
-
```
|
|
10844
|
-
|
|
10845
|
-
|
|
10846
|
-
|
|
11793
|
+
```ts
|
|
11794
|
+
const viewer = document.querySelector('lr-xml-viewer');
|
|
11795
|
+
viewer.xml = payload;
|
|
11796
|
+
viewer.collapsedDepth = 2;
|
|
11797
|
+
viewer.copyable = true;
|
|
11798
|
+
await viewer.search(query);
|
|
10847
11799
|
```
|
|
10848
11800
|
|
|
10849
11801
|
Node cap: 50,000 — exceeding it renders the localized `xmlViewerTooManyNodes` error instead of the
|
|
@@ -10854,10 +11806,41 @@ tree.
|
|
|
10854
11806
|
Comparison surface for two document versions, using `lr-diff-view` for textual diffs and
|
|
10855
11807
|
`lr-document-preview` for side-by-side rendered content.
|
|
10856
11808
|
|
|
10857
|
-
**Properties:**
|
|
10858
|
-
|
|
10859
|
-
|
|
10860
|
-
|
|
11809
|
+
**Properties:**
|
|
11810
|
+
|
|
11811
|
+
- `oldVersion?: DocumentCompareVersion`, `newVersion?: DocumentCompareVersion` (attribute: false) —
|
|
11812
|
+
the before/after inputs. `DocumentCompareVersion` extends `DocumentRef`
|
|
11813
|
+
(`id`, `name`, `mimeType?`, `uri?`, `version?`) with `text?: string` for diff mode and
|
|
11814
|
+
`highlights?: LyraHighlight[]` for its own preview pane.
|
|
11815
|
+
- `view: 'diff' | 'side-by-side' = 'diff'` (reflected) — one inline text diff or two rendered
|
|
11816
|
+
preview panes.
|
|
11817
|
+
- `diffLayout: 'unified' | 'split' = 'unified'` (attribute `diff-layout`, reflected) — forwarded
|
|
11818
|
+
to `lr-diff-view` in diff mode.
|
|
11819
|
+
- `copyable: boolean = false` — forwards the diff copy action.
|
|
11820
|
+
- `language: string = ''`, `languages?: Record<string, ShikiLanguageInput>` (the latter
|
|
11821
|
+
attribute: false) — optional syntax highlighting forwarded to the diff.
|
|
11822
|
+
- `syncScroll: boolean = true` (attribute `sync-scroll`) — proportionally mirrors either
|
|
11823
|
+
side-by-side pane's scroll fraction to the other. The true-default converter accepts the literal
|
|
11824
|
+
`sync-scroll="false"`.
|
|
11825
|
+
- `anchor: LyraAnchor | string | null = null` (attribute: false) — sends the same target to both
|
|
11826
|
+
preview panes; repeated assignment of the same value still re-runs.
|
|
11827
|
+
|
|
11828
|
+
**Exported types:** `DocumentCompareVersion`; `LyraDocumentCompareView = 'diff' |
|
|
11829
|
+
'side-by-side'`; `DocumentComparePaneSide = 'old' | 'new'`.
|
|
11830
|
+
|
|
11831
|
+
**Synchronized anchors:** activating a region highlight whose id exists in the opposite version
|
|
11832
|
+
scrolls that pane to its corresponding highlight, while the original `lr-highlight-activate`
|
|
11833
|
+
continues bubbling unchanged. The shared `anchor` property drives both panes. In diff mode, split
|
|
11834
|
+
columns already share one scroll container.
|
|
11835
|
+
|
|
11836
|
+
**Events:** `lr-copy` (`detail: { text }`), `lr-download` (`detail: { src, filename }`),
|
|
11837
|
+
`lr-highlight-activate` (`detail: { id }`), and `lr-render-error` (`detail: { error }`).
|
|
11838
|
+
|
|
11839
|
+
**Slots:** none.
|
|
11840
|
+
|
|
11841
|
+
**CSS parts:** `base`, `diff`, `panes`, `pane-old`, `pane-new`, `pane-header`, `pane-empty`.
|
|
11842
|
+
|
|
11843
|
+
**Themeable custom properties:** `--lr-document-compare-pane-max-height` (default
|
|
10861
11844
|
`var(--lr-size-24rem)`) — maximum block size of a `side-by-side` pane before it scrolls internally.
|
|
10862
11845
|
|
|
10863
11846
|
## `lr-geojson-view`
|
|
@@ -10878,7 +11861,10 @@ collapsed-depth="2">` of the raw value instead of the map.
|
|
|
10878
11861
|
|
|
10879
11862
|
**Properties:** `src: string = ''` — URL to fetch and parse. `name: string = ''` — accessible label,
|
|
10880
11863
|
used as `<lr-map>`'s `label` and the root's `aria-label` (falling back to the localized
|
|
10881
|
-
`geojsonViewLabel` when unset).
|
|
11864
|
+
`geojsonViewLabel` when unset). A host `aria-label` takes precedence over `name`. The shared
|
|
11865
|
+
text-viewer contract adds `highlights`, `activeHighlightId`, `anchor`, and
|
|
11866
|
+
`anchorKinds` (`['text-quote', 'fragment']`), plus `search()`, `searchNext()`, `searchPrevious()`,
|
|
11867
|
+
`clearSearch()`, and `scrollToAnchor()` for rendered feature metadata and status text.
|
|
10882
11868
|
|
|
10883
11869
|
**Events:** `lr-render-error` — `detail: { error }` — fetch, parse, or shape-validation failure.
|
|
10884
11870
|
|
|
@@ -10890,7 +11876,9 @@ alongside the `lr-json-viewer` fallback), `error` (the error region, `role="aler
|
|
|
10890
11876
|
Registered by importing `geojson-view/geojson-view.js` directly — not part of the root barrel, the
|
|
10891
11877
|
same as `lr-map`/`lr-graph`, since it depends on the same optional `maplibre-gl` peer. Remote
|
|
10892
11878
|
resources are capped at 25 MB; exceeding it surfaces the localized `documentPreviewResourceTooLarge`
|
|
10893
|
-
message instead of the map.
|
|
11879
|
+
message instead of the map. MapLibre v6 is ESM-only and requires WebGL2; consumers must import its
|
|
11880
|
+
CSS and configure its module-worker URL for their bundler before this viewer constructs the nested
|
|
11881
|
+
map. See `llms/components/lr-map.md` for the Vite example and the other bundler variants.
|
|
10894
11882
|
|
|
10895
11883
|
# Conversation & chat UI (`components/conversation/`)
|
|
10896
11884
|
|
|
@@ -11064,6 +12052,16 @@ restart at the beginning of each visual line, so a wrapped line's tabs land diff
|
|
|
11064
12052
|
HTML `marked` produces from `content` completely unsanitized, so untrusted `content` must never be
|
|
11065
12053
|
paired with `sanitize="false"`.
|
|
11066
12054
|
|
|
12055
|
+
**Additional API surface:**
|
|
12056
|
+
|
|
12057
|
+
- `--lr-markdown-highlight-accent-bg` — Accent highlight fill. Default: `var(--lr-color-brand-quiet)`.
|
|
12058
|
+
- `--lr-markdown-highlight-success-bg` — Success highlight fill. Default: `var(--lr-color-success-quiet)`.
|
|
12059
|
+
- `--lr-markdown-highlight-warning-bg` — Warning highlight fill. Default: `var(--lr-color-warning-quiet)`.
|
|
12060
|
+
- `--lr-markdown-highlight-danger-bg` — Danger highlight fill. Default: `var(--lr-color-danger-quiet)`.
|
|
12061
|
+
- `--lr-markdown-highlight-neutral-bg` — Neutral highlight fill. Default: `var(--lr-color-surface)`.
|
|
12062
|
+
- `--lr-markdown-highlight-active-bg` — Active highlight fill. Default: `var(--lr-color-brand-quiet)`.
|
|
12063
|
+
- `--lr-markdown-highlight-active-outline-color` — Active highlight outline. Default: `var(--lr-color-brand)`.
|
|
12064
|
+
|
|
11067
12065
|
---
|
|
11068
12066
|
|
|
11069
12067
|
## `lr-markdown-core`
|
|
@@ -11132,6 +12130,16 @@ differently on a wrapped line.
|
|
|
11132
12130
|
</script>
|
|
11133
12131
|
```
|
|
11134
12132
|
|
|
12133
|
+
**Additional API surface:**
|
|
12134
|
+
|
|
12135
|
+
- `--lr-markdown-highlight-accent-bg` — Accent highlight fill. Default: `var(--lr-color-brand-quiet)`.
|
|
12136
|
+
- `--lr-markdown-highlight-success-bg` — Success highlight fill. Default: `var(--lr-color-success-quiet)`.
|
|
12137
|
+
- `--lr-markdown-highlight-warning-bg` — Warning highlight fill. Default: `var(--lr-color-warning-quiet)`.
|
|
12138
|
+
- `--lr-markdown-highlight-danger-bg` — Danger highlight fill. Default: `var(--lr-color-danger-quiet)`.
|
|
12139
|
+
- `--lr-markdown-highlight-neutral-bg` — Neutral highlight fill. Default: `var(--lr-color-surface)`.
|
|
12140
|
+
- `--lr-markdown-highlight-active-bg` — Active highlight fill. Default: `var(--lr-color-brand-quiet)`.
|
|
12141
|
+
- `--lr-markdown-highlight-active-outline-color` — Active highlight outline. Default: `var(--lr-color-brand)`.
|
|
12142
|
+
|
|
11135
12143
|
---
|
|
11136
12144
|
|
|
11137
12145
|
## `lr-chat-message`
|
|
@@ -11240,6 +12248,11 @@ streaming-indicator pulse animation's cycle, the same shared compound token
|
|
|
11240
12248
|
background already maps to that same token, override `[part=bubble]`'s background explicitly (e.g.
|
|
11241
12249
|
via `::part(bubble)`) so message bubbles stay visually distinct from the surrounding panel.
|
|
11242
12250
|
|
|
12251
|
+
> Retheming a bubble from outside `<lr-chat-message>` (e.g. per-thread or per-role colors)?
|
|
12252
|
+
> Set `--lr-theme-*` on the ancestor wrapper, not `--lr-*` directly — see `llms/shared.md`'s
|
|
12253
|
+
> "Theming and design tokens" section for why a `--lr-*` override on a wrapper only reaches that
|
|
12254
|
+
> wrapper's *direct* children, not a nested `<lr-*>` host's shadow DOM.
|
|
12255
|
+
|
|
11243
12256
|
**Optional peer deps:** none. Internally renders a `<lr-live-region>` (a first-party sibling
|
|
11244
12257
|
component, auto-imported alongside this one, not an npm peer) for the status-transition
|
|
11245
12258
|
announcements described below.
|
|
@@ -11271,7 +12284,8 @@ between several values across a single element's lifetime.
|
|
|
11271
12284
|
- mounting a message with `status="failed"` (or any other non-`"sent"` status) already set does
|
|
11272
12285
|
**not** announce anything — only a genuine *later* transition (`changed.get('status') !==
|
|
11273
12286
|
undefined`, i.e. not the very first update) triggers the live-region announcement.
|
|
11274
|
-
- `lr-retry`
|
|
12287
|
+
- `lr-retry` carries `{ messageId?: string }`; the field is the component's `messageId` when set,
|
|
12288
|
+
and is omitted otherwise.
|
|
11275
12289
|
- the header/footer/avatar/badges/attachments/actions wrappers are shown/hidden via the `hidden`
|
|
11276
12290
|
attribute, not conditional templating. Whether each slot currently has content is checked once via
|
|
11277
12291
|
a light-DOM children scan on the very first update (`willUpdate`, gated on `!this.hasUpdated`) and
|
|
@@ -11282,6 +12296,20 @@ between several values across a single element's lifetime.
|
|
|
11282
12296
|
- `role` intentionally reflects to `data-role`; CSS or selectors that key off role must target
|
|
11283
12297
|
`[data-role="user"]` etc., not `[role="user"]`.
|
|
11284
12298
|
|
|
12299
|
+
**Additional API surface:**
|
|
12300
|
+
|
|
12301
|
+
- `--lr-chat-message-system-color` — System-message text color. Default: `var(--lr-color-text-quiet)`.
|
|
12302
|
+
- `--lr-chat-message-streaming-border-color` — Streaming bubble border. Default: `var(--lr-color-brand)`.
|
|
12303
|
+
- `--lr-chat-message-failed-border-color` — Failed bubble border. Default: `var(--lr-color-danger)`.
|
|
12304
|
+
- `--lr-chat-message-failed-bg` — Failed bubble fill. Default: `var(--lr-color-danger-quiet)`.
|
|
12305
|
+
- `--lr-chat-message-footer-color` — Default footer text. Default: `var(--lr-color-text-quiet)`.
|
|
12306
|
+
- `--lr-chat-message-user-footer-color` — User-message footer text. Default: `var(--lr-color-text)`.
|
|
12307
|
+
- `--lr-chat-message-failed-footer-color` — Failed-message footer text. Default: `var(--lr-color-danger)`.
|
|
12308
|
+
- `--lr-chat-message-indicator-color` — Default status indicator. Default: `var(--lr-color-text-quiet)`.
|
|
12309
|
+
- `--lr-chat-message-streaming-indicator-color` — Streaming indicator. Default: `var(--lr-color-brand)`.
|
|
12310
|
+
- `--lr-chat-message-failed-indicator-color` — Failed indicator. Default: `var(--lr-color-danger)`.
|
|
12311
|
+
- `--lr-chat-message-failed-status-color` — Failed status text. Default: `var(--lr-color-danger)`.
|
|
12312
|
+
|
|
11285
12313
|
---
|
|
11286
12314
|
|
|
11287
12315
|
## `lr-typing-indicator`
|
|
@@ -11313,10 +12341,13 @@ variant), `cursor` (the blinking bar in the `cursor` variant)
|
|
|
11313
12341
|
`size="sm"`), `--lr-typing-gap` (default `0.25rem`, `0.1875rem` at `size="sm"`),
|
|
11314
12342
|
`--lr-typing-cursor-width` (default `0.125rem`, `0.09375rem` at `size="sm"`),
|
|
11315
12343
|
`--lr-typing-cursor-height` (default `1em`, unaffected by `size`),
|
|
11316
|
-
`--lr-typing-dot-stagger-1` (default `600ms`, second dot),
|
|
11317
|
-
`--lr-typing-
|
|
11318
|
-
|
|
11319
|
-
animation cycle.
|
|
12344
|
+
`--lr-typing-dot-stagger-1` (default `600ms`, second dot), `--lr-typing-dot-stagger-2` (default
|
|
12345
|
+
`1200ms`, third dot), and `--lr-typing-duration` (default `var(--lr-transition-ambient)`, i.e.
|
|
12346
|
+
`1.8s ease-in-out`) — the compound duration/timing-function token every variant uses as its
|
|
12347
|
+
animation cycle. `--lr-typing-duration` is a dedicated alias: it defaults to the library-wide
|
|
12348
|
+
`--lr-transition-ambient` token (shared by every other ambient-looping component), but overriding
|
|
12349
|
+
it retimes only this component, leaving `--lr-transition-ambient` itself — and anything else keyed
|
|
12350
|
+
off it — untouched.
|
|
11320
12351
|
|
|
11321
12352
|
**Optional peer deps:** none.
|
|
11322
12353
|
|
|
@@ -11325,7 +12356,7 @@ animation cycle.
|
|
|
11325
12356
|
<lr-typing-indicator variant="pulse" size="sm"></lr-typing-indicator>
|
|
11326
12357
|
<lr-typing-indicator variant="cursor"></lr-typing-indicator>
|
|
11327
12358
|
<lr-typing-indicator
|
|
11328
|
-
style="--lr-
|
|
12359
|
+
style="--lr-typing-duration: 900ms ease-in-out; --lr-typing-dot-stagger-1: 300ms; --lr-typing-dot-stagger-2: 600ms"
|
|
11329
12360
|
></lr-typing-indicator>
|
|
11330
12361
|
```
|
|
11331
12362
|
|
|
@@ -11344,9 +12375,10 @@ decorative; `label` is the entire accessible content, nothing narrates individua
|
|
|
11344
12375
|
state (`opacity: 1`, no transform, `animation: none !important`) rather than freezing on whatever
|
|
11345
12376
|
frame the animation happened to be on — notably relevant for `cursor`, which would otherwise risk
|
|
11346
12377
|
freezing on its invisible ("off") blink half.
|
|
11347
|
-
- `--lr-
|
|
11348
|
-
with `calc()`. When retiming it,
|
|
11349
|
-
default one-third/two-thirds dot
|
|
12378
|
+
- `--lr-typing-duration` (like the `--lr-transition-ambient` token it aliases by default) is a
|
|
12379
|
+
compound `duration timing-function` value and cannot be divided with `calc()`. When retiming it,
|
|
12380
|
+
override both stagger properties alongside it to preserve the default one-third/two-thirds dot
|
|
12381
|
+
phasing, as shown above.
|
|
11350
12382
|
- `size="sm"` shrinks the dot size, gap, and cursor width, but **not** `--lr-typing-cursor-height`
|
|
11351
12383
|
(still `1em` at any size) — the cursor bar's height is meant to track surrounding text size via
|
|
11352
12384
|
`1em`, not the component's own `size` property.
|
|
@@ -11546,10 +12578,10 @@ visibility is driven purely by whether anything is slotted into it, not by `phas
|
|
|
11546
12578
|
message text color, stalled border), `--lr-color-warning-quiet` (stalled background tint),
|
|
11547
12579
|
`--lr-space-s` / `--lr-space-xs` (base gap, stalled padding, actions gap), `--lr-radius`
|
|
11548
12580
|
(base corner radius), `--lr-transition-base` (background/border-color transitions and the
|
|
11549
|
-
|
|
11550
|
-
|
|
11551
|
-
|
|
11552
|
-
|
|
12581
|
+
dot's color/opacity transitions), and `--lr-transition-ambient` (the streaming pulse cycle).
|
|
12582
|
+
The phase defaults flow through `--lr-stream-status-dot-color` and
|
|
12583
|
+
`--lr-stream-status-dot-opacity`; setting either custom property on the element or an ancestor
|
|
12584
|
+
wins through the shadow cascade and is the supported per-instance override.
|
|
11553
12585
|
|
|
11554
12586
|
**Optional peer deps:** none.
|
|
11555
12587
|
|
|
@@ -11674,8 +12706,8 @@ in-place rename `<input>`'s own `focus`, for the same reason as `blur`)
|
|
|
11674
12706
|
|
|
11675
12707
|
`leading`/`content`/`excerpt`/`meta` must all stay non-focusable — see the `role="button"` note below.
|
|
11676
12708
|
|
|
11677
|
-
**CSS parts:** `base`, `
|
|
11678
|
-
`timestamp`, `actions`
|
|
12709
|
+
**CSS parts:** `base`, `active-indicator` (decorative, rendered only while `active`), `option`,
|
|
12710
|
+
`content`, `title`, `title-input`, `rename-button`, `excerpt`, `timestamp`, `actions`
|
|
11679
12711
|
|
|
11680
12712
|
**Themeable custom properties:** `--lr-conversation-item-active-bg` (default
|
|
11681
12713
|
`var(--lr-color-brand-quiet)`) — the row's background while `active`. `--lr-conversation-item-active-color`
|
|
@@ -11694,6 +12726,13 @@ the default active background; keep any override at 4.5:1 or better against it.
|
|
|
11694
12726
|
custom active background needs its own title color set alongside them, or the title drops below
|
|
11695
12727
|
contrast while the excerpt stays legible.
|
|
11696
12728
|
|
|
12729
|
+
`--lr-conversation-item-active-indicator-color` (default `var(--lr-color-brand)`) controls the
|
|
12730
|
+
decorative `active-indicator` part's color. `--lr-conversation-item-active-indicator-width`
|
|
12731
|
+
(default `var(--lr-size-2px)`) controls its inline width. `--lr-conversation-item-active-indicator-inset-inline`
|
|
12732
|
+
(default `0 auto`) controls its logical inline insets; set `auto 0` to move the indicator to
|
|
12733
|
+
inline-end. The indicator is `aria-hidden`, occupies the full row block-size, and is absent while
|
|
12734
|
+
the row is inactive.
|
|
12735
|
+
|
|
11697
12736
|
`--lr-conversation-item-compact-padding` (default `var(--lr-space-xs) var(--lr-space-s)`) —
|
|
11698
12737
|
`[part='base']`'s padding while `compact`. `--lr-conversation-item-compact-gap` (default
|
|
11699
12738
|
`var(--lr-space-2xs)`) — `[part='base']`'s gap while `compact`. Like the active-state pair, both are
|
|
@@ -11875,7 +12914,13 @@ decorative box size (clamped against `--lr-icon-button-size` via `min()`). All f
|
|
|
11875
12914
|
uses — so `size` is the primary lever; override the cssprop directly only to retune a single tier or
|
|
11876
12915
|
step outside the scale entirely. `--lr-model-select-option-active-bg` (default
|
|
11877
12916
|
`var(--lr-color-brand-quiet)`) — background of a hovered or keyboard-active `[part="option"]` row;
|
|
11878
|
-
declared as a `var()` fallback at the point of use, not on `:host`, so it isn't tied to `size`.
|
|
12917
|
+
declared as a `var()` fallback at the point of use, not on `:host`, so it isn't tied to `size`. The
|
|
12918
|
+
selected row (`[part="option"][aria-selected="true"]`) has the matching set
|
|
12919
|
+
`--lr-model-select-option-selected-bg` (default `transparent`),
|
|
12920
|
+
`--lr-model-select-option-selected-border` and `--lr-model-select-option-selected-color` (both
|
|
12921
|
+
`var(--lr-color-brand)`), and `--lr-model-select-option-selected-font-weight`
|
|
12922
|
+
(`var(--lr-font-weight-semibold)`), all inline `var()` fallbacks so the selected row is rethemeable
|
|
12923
|
+
without hijacking `--lr-color-brand`. Plus
|
|
11879
12924
|
shared tokens — `--lr-space-xs/-s`, `--lr-color-border/-surface/-brand/-brand-quiet/-text-quiet`,
|
|
11880
12925
|
`--lr-radius`, `--lr-shadow`, `--lr-focus-ring-width/-color/-offset`, `--lr-icon-button-size`,
|
|
11881
12926
|
`--lr-transition-fast`, `--lr-opacity-disabled`.
|
|
@@ -11953,7 +12998,7 @@ of the stream arrives.
|
|
|
11953
12998
|
cursor bar's inline size), `--lr-streaming-text-cursor-height` (default `1em`) — both
|
|
11954
12999
|
component-specific, since no shared "inline cursor bar" token exists, the same pattern
|
|
11955
13000
|
`<lr-typing-indicator>`'s own `--lr-typing-cursor-width`/`-height` use, plus shared
|
|
11956
|
-
`--lr-space-xs` (cursor's `margin-inline-start`) and `--lr-transition-
|
|
13001
|
+
`--lr-space-xs` (cursor's `margin-inline-start`) and `--lr-transition-ambient` (blink animation
|
|
11957
13002
|
cycle length).
|
|
11958
13003
|
|
|
11959
13004
|
**Optional peer deps:** none — internally imports and auto-registers `<lr-markdown>` for
|
|
@@ -12164,8 +13209,7 @@ highlighted HTML, and always fires regardless of whether the actual OS clipboard
|
|
|
12164
13209
|
`lr-toggle` (`detail: { collapsed: boolean }` — fired when the built-in collapse/expand header
|
|
12165
13210
|
button is activated, same event name/shape convention as `<lr-thinking-panel>`'s own `lr-toggle`),
|
|
12166
13211
|
`lr-line-click` (`detail: { line: number }` — a gutter line number was activated while
|
|
12167
|
-
`interactiveLines` is set),
|
|
12168
|
-
parity with this library's other anchor-target viewers; not currently emitted by this component),
|
|
13212
|
+
`interactiveLines` is set),
|
|
12169
13213
|
`lr-text-select` (`detail: { text, anchor, rects }` — a text selection inside the code body ended;
|
|
12170
13214
|
`anchor` is a `line-range` anchor covering the selected lines)
|
|
12171
13215
|
|
|
@@ -12235,10 +13279,11 @@ component's own `part="pre"`/`part="code"` hooks and strips shiki's default `tab
|
|
|
12235
13279
|
`<pre>`, since `[part="body"]` is already the single scrollable/focusable region (`role="group"`,
|
|
12236
13280
|
`tabindex="0"`) for the code area. Dark mode is handled via shiki's own "dual themes" feature: every
|
|
12237
13281
|
token carries its light color as a plain inline `color`/`background-color` and its dark color in
|
|
12238
|
-
`--shiki-dark`/`--shiki-dark-bg` custom properties
|
|
12239
|
-
|
|
12240
|
-
|
|
12241
|
-
|
|
13282
|
+
`--shiki-dark`/`--shiki-dark-bg` custom properties. The component watches its resolved Lyra theme
|
|
13283
|
+
tokens and sets `data-dark-theme="true"` on the code body when the effective surface is dark; an
|
|
13284
|
+
`!important` state rule then activates Shiki's dark values. This follows explicit Lyra theme
|
|
13285
|
+
overrides instead of consulting `prefers-color-scheme` directly. Shiki's generated colors are the
|
|
13286
|
+
one deliberate exception to every other color being a `--lr-*` token.
|
|
12242
13287
|
|
|
12243
13288
|
**Known gotchas:**
|
|
12244
13289
|
- `copyable` defaults to `true` and reflects — see the property note above about overriding it with a
|
|
@@ -12316,9 +13361,7 @@ Identical behavior to `<lr-code-block>`'s own method.
|
|
|
12316
13361
|
highlighted HTML, and always fires regardless of whether the actual OS clipboard write succeeded),
|
|
12317
13362
|
`lr-toggle` (`detail: { collapsed: boolean }` — fired when the built-in collapse/expand header
|
|
12318
13363
|
button is activated), `lr-line-click` (`detail: { line: number }` — a gutter line number was
|
|
12319
|
-
activated while `interactiveLines` is set), `lr-
|
|
12320
|
-
declared for parity with this library's other anchor-target viewers; not currently emitted by this
|
|
12321
|
-
component), `lr-text-select` (`detail: { text, anchor, rects }` — a text selection inside the code
|
|
13364
|
+
activated while `interactiveLines` is set), `lr-text-select` (`detail: { text, anchor, rects }` — a text selection inside the code
|
|
12322
13365
|
body ended; `anchor` is a `line-range` anchor covering the selected lines).
|
|
12323
13366
|
|
|
12324
13367
|
**Slots:** none.
|
|
@@ -12502,6 +13545,10 @@ branch content.
|
|
|
12502
13545
|
`previous-glyph` and `next-glyph` (the chevron inside each button — target these to swap the
|
|
12503
13546
|
arrow without restyling the button), and `position` (the visible "2 / 5" text).
|
|
12504
13547
|
|
|
13548
|
+
**Additional API surface:**
|
|
13549
|
+
|
|
13550
|
+
- `click()` — Activates the currently enabled chevron, matching a click on the shadow control.
|
|
13551
|
+
|
|
12505
13552
|
## `lr-message-actions`
|
|
12506
13553
|
|
|
12507
13554
|
The per-message action toolbar for `lr-chat-message`'s `actions` slot: opt-in built-ins (copy /
|
|
@@ -12626,6 +13673,11 @@ point of use rather than a `:host` declaration, so it can be set on the element
|
|
|
12626
13673
|
after `::part()`), so re-pointing the shared `--lr-color-danger` token was previously the only way,
|
|
12627
13674
|
and it repainted every other danger surface with it.
|
|
12628
13675
|
|
|
13676
|
+
**Additional API surface:**
|
|
13677
|
+
|
|
13678
|
+
- `blur()` — Forwards host blur to the internal push-to-talk control.
|
|
13679
|
+
- `focus()` — Forwards host focus to the internal push-to-talk control.
|
|
13680
|
+
|
|
12629
13681
|
## `lr-transcript-feed`
|
|
12630
13682
|
|
|
12631
13683
|
Live captions for an in-progress voice session: speaker-grouped entries, interim-vs-final styling
|
|
@@ -12884,7 +13936,7 @@ reach callback-rendered descendants through these parts). `row-excerpt` wraps `r
|
|
|
12884
13936
|
output, which is slotted into the row item's own `excerpt` slot.
|
|
12885
13937
|
|
|
12886
13938
|
Data mode additionally forwards each row `<lr-conversation-item>`'s own parts under a `row-item-`
|
|
12887
|
-
prefix: `row-item-base`, `row-item-option`, `row-item-leading`, `row-item-content`,
|
|
13939
|
+
prefix: `row-item-base`, `row-item-active-indicator`, `row-item-option`, `row-item-leading`, `row-item-content`,
|
|
12888
13940
|
`row-item-title`, `row-item-title-input`, `row-item-rename-button`, `row-item-excerpt`,
|
|
12889
13941
|
`row-item-meta`, `row-item-timestamp`, `row-item-actions`.
|
|
12890
13942
|
|
|
@@ -13050,7 +14102,8 @@ forced `{ sanitize: true }`), `image` → `lr-media-card` (`src`, `alt`, `filena
|
|
|
13050
14102
|
|
|
13051
14103
|
**Events:** `lr-widget-action` — `detail: { actionId, payload }`, the single bubbling action
|
|
13052
14104
|
channel. `lr-render-error` — `detail: { error }`, the root value was structurally unusable
|
|
13053
|
-
(non-object, or the depth/size caps made it empty).
|
|
14105
|
+
(non-object, or the depth/size caps made it empty). `lr-widget-state-change` — `detail: { path,
|
|
14106
|
+
value, nodeId, prop }`, emitted when a state-bound mapped control requests a controlled update.
|
|
13054
14107
|
|
|
13055
14108
|
**CSS parts:** `base` (the root wrapper, `display: contents`), `row`, `col`, `text` (built-in
|
|
13056
14109
|
structural nodes only — a mapped lyra component exposes its own parts instead).
|
|
@@ -13148,6 +14201,18 @@ trigger), `expand-icon`, `empty`, `hint`, `error`.
|
|
|
13148
14201
|
- `catalog` must be homogeneous — the same constraint `lr-model-select`'s `LyraModelCatalog` union
|
|
13149
14202
|
documents.
|
|
13150
14203
|
|
|
14204
|
+
**Additional API surface:**
|
|
14205
|
+
|
|
14206
|
+
- `--lr-voice-picker-preview-active-border` — Active preview border. Default: `var(--lr-color-brand)`.
|
|
14207
|
+
- `--lr-voice-picker-preview-active-color` — Active preview icon. Default: `var(--lr-color-brand)`.
|
|
14208
|
+
- `--lr-voice-picker-option-active-bg` — Active option fill. Default: `var(--lr-color-brand-quiet)`.
|
|
14209
|
+
- `--lr-voice-picker-option-selected-border` — Selected option border. Default: `var(--lr-color-brand)`.
|
|
14210
|
+
- `--lr-voice-picker-option-selected-color` — Selected option text. Default: `var(--lr-color-brand)`.
|
|
14211
|
+
- `--lr-voice-picker-option-selected-bg` — Selected option fill. Default: `transparent`.
|
|
14212
|
+
- `--lr-voice-picker-option-selected-font-weight` — Selected option label weight. Default: `var(--lr-font-weight-semibold)`.
|
|
14213
|
+
- `--lr-voice-picker-preview-hover-bg` — Preview hover fill. Default: `var(--lr-color-brand-quiet)`.
|
|
14214
|
+
- `--lr-voice-picker-preview-hover-color` — Preview hover icon. Default: `var(--lr-color-brand)`.
|
|
14215
|
+
|
|
13151
14216
|
## `lr-agent-workspace`
|
|
13152
14217
|
|
|
13153
14218
|
Responsive, fully controlled shell for an AI conversation and its supporting run, tool, retrieval,
|
|
@@ -13246,6 +14311,181 @@ composed `lr-chat-viewport`), `messages`, `messages-empty`, `details`, `details-
|
|
|
13246
14311
|
**Optional peer deps:** none of its own; the composed `lr-markdown` keeps its `marked`/`dompurify`
|
|
13247
14312
|
optional-peer fallback.
|
|
13248
14313
|
|
|
14314
|
+
## `lr-message-parts`
|
|
14315
|
+
|
|
14316
|
+
Ordered renderer for provider-neutral `MessagePart[]`: text, reasoning, tool call/result, citation,
|
|
14317
|
+
attachment, data/widget, audio, and error parts can interleave without flattening stream order.
|
|
14318
|
+
|
|
14319
|
+
**Properties:** `parts: MessagePart[] = []` (attribute: false); `renderMarkdown: boolean = true`
|
|
14320
|
+
(attribute `render-markdown`, reflected) and `showReasoning: boolean = true` (attribute
|
|
14321
|
+
`show-reasoning`, reflected), both with string-aware true-default conversion;
|
|
14322
|
+
`renderPart?: MessagePartRenderer` (attribute: false), where returning `undefined` delegates that
|
|
14323
|
+
part to the built-in renderer; `label: string = ''`; `accessibleLabel: string | null = null`
|
|
14324
|
+
(attribute `aria-label`, highest naming precedence).
|
|
14325
|
+
|
|
14326
|
+
`MessagePartRenderer = (part: MessagePart, index: number) => unknown`; `MessagePart` and its
|
|
14327
|
+
discriminated part shapes come from the `@aceshooting/lyra-ui/ai` subpath.
|
|
14328
|
+
|
|
14329
|
+
**Events:** `lr-citation-select` (`{ citation }`), `lr-part-retry` (`{ part }`).
|
|
14330
|
+
|
|
14331
|
+
**CSS parts:** `base`, `part`, `part-streaming`, `text`, `reasoning`, `tool-call`, `tool-result`,
|
|
14332
|
+
`citation`, `attachment`, `data`, `audio`, `audio-transcript`, `error`, `retry`.
|
|
14333
|
+
|
|
14334
|
+
**Slots:** none. **Optional peer deps:** those of composed content only: Markdown can use
|
|
14335
|
+
`marked`/`dompurify`, and code content can use `shiki`; every composed primitive retains its own
|
|
14336
|
+
fallback.
|
|
14337
|
+
|
|
14338
|
+
```ts
|
|
14339
|
+
import '@aceshooting/lyra-ui/components/conversation/message-parts/message-parts.js';
|
|
14340
|
+
```
|
|
14341
|
+
|
|
14342
|
+
**Additional API surface:**
|
|
14343
|
+
|
|
14344
|
+
- `lr-anchor-result` event — Passthrough from rendered Markdown.
|
|
14345
|
+
- `lr-citation-open` event — Passthrough from a rendered citation's full-preview action.
|
|
14346
|
+
- `lr-copy` event — Passthrough from rendered JSON content.
|
|
14347
|
+
- `lr-highlight-activate` event — Passthrough from rendered Markdown.
|
|
14348
|
+
- `lr-link-click` event — Passthrough from rendered Markdown.
|
|
14349
|
+
- `lr-preview` event — Passthrough from a rendered attachment.
|
|
14350
|
+
- `lr-remove` event — Passthrough from a rendered attachment.
|
|
14351
|
+
- `lr-render-error` event — Passthrough from rendered Markdown, tool-result, or widget content.
|
|
14352
|
+
- `lr-retry` event — Passthrough from a rendered attachment.
|
|
14353
|
+
- `lr-search-change` event — Passthrough from rendered JSON content.
|
|
14354
|
+
- `lr-text-select` event — Passthrough from rendered Markdown.
|
|
14355
|
+
- `lr-toggle` event — Passthrough from a rendered reasoning panel.
|
|
14356
|
+
- `lr-tool-call-chip-select` event — Passthrough from a rendered tool-call chip.
|
|
14357
|
+
- `lr-tool-chip-select` event — Deprecated tool-call selection alias passthrough.
|
|
14358
|
+
- `lr-widget-action` event — Passthrough from a rendered declarative widget.
|
|
14359
|
+
- `lr-widget-state-change` event — Passthrough from a rendered controlled widget.
|
|
14360
|
+
|
|
14361
|
+
## `lr-prompt-input`
|
|
14362
|
+
|
|
14363
|
+
The composed prompt surface: chat composer, attachment controls/chips, model and voice pickers,
|
|
14364
|
+
retrieval-source scope, mention/slash-command popup, and queued follow-up prompts. It performs no
|
|
14365
|
+
upload, retrieval, or model call.
|
|
14366
|
+
|
|
14367
|
+
**Properties:** `value: string = ''`; `status: 'idle' | 'sending' | 'streaming' = 'idle'`;
|
|
14368
|
+
`placeholder: string = ''`; `disabled: boolean = false` (reflected);
|
|
14369
|
+
`submitOnEnter: boolean = true` (attribute `submit-on-enter`, string-aware true-default converter);
|
|
14370
|
+
`attachments: PromptInputAttachment[] = []`, `attachmentCapabilities: AttachmentCapability[] =
|
|
14371
|
+
['files', 'image', 'audio']`, `mentionItems: PromptSuggestion[] = []`, `commandItems:
|
|
14372
|
+
PromptSuggestion[] = []`, `modelCatalog?: LyraModelCatalog`, `voiceCatalog?: LyraVoiceCatalog`,
|
|
14373
|
+
`sources: LyraSourceEntry[] = []`, `selectedSourceIds: string[] = []`, and `queue:
|
|
14374
|
+
PromptQueueItem[] = []` (all attribute: false); `model: string = ''`; `voice: string = ''`;
|
|
14375
|
+
`label: string = ''`; `accessibleLabel: string | null = null` (attribute `aria-label`).
|
|
14376
|
+
|
|
14377
|
+
`PromptSuggestion` extends `MentionItem { id, label, description?, icon? }` with optional
|
|
14378
|
+
`insertText` (defaults to `label`). `PromptInputAttachment` extends `DocumentRef { id, name,
|
|
14379
|
+
mimeType?, uri?, version? }` with `file?`, `size?`, attachment-chip `status?`, and numeric
|
|
14380
|
+
`progress?`.
|
|
14381
|
+
|
|
14382
|
+
**Methods:** `focus(options?)`, `blur()`, and `click()` forward to the composed chat input;
|
|
14383
|
+
`select()` selects its native text surface. `click()` is inert while disabled.
|
|
14384
|
+
|
|
14385
|
+
**Events:** `lr-input` (`{ value }`), `lr-submit` (`{ value }`), `lr-stop`,
|
|
14386
|
+
`lr-mention-select` (`{ id, label, trigger }`), `lr-attachments-add` (`{ files, capability }`),
|
|
14387
|
+
`lr-attachment-remove` (`{ id }`), `lr-model-change`/`lr-voice-change`
|
|
14388
|
+
(`{ value, inCatalog }`), `lr-sources-change` (`{ selectedIds }`), `lr-queue-change`
|
|
14389
|
+
(`{ items, reason, itemId }`), `lr-send-now` (`{ item }`), `lr-camera-request`,
|
|
14390
|
+
`lr-audio-request`, `lr-attachment-retry` (`{ id }`), and `lr-attachment-preview`
|
|
14391
|
+
(`{ id, name, mimeType, src }`). Child events are stopped and re-emitted from
|
|
14392
|
+
`lr-prompt-input`; all composed interactions are suppressed while `disabled`.
|
|
14393
|
+
|
|
14394
|
+
**Slots:** `controls`, `leading`, `chips`, `trailing`, `footer`.
|
|
14395
|
+
|
|
14396
|
+
**CSS parts:** `base`, `controls`, `sources`, `sources-summary`, `source-picker`, `queue`,
|
|
14397
|
+
`composer`, `leading`, `chips`, `footer`.
|
|
14398
|
+
|
|
14399
|
+
**Optional peer deps:** none of its own.
|
|
14400
|
+
|
|
14401
|
+
```ts
|
|
14402
|
+
import '@aceshooting/lyra-ui/components/conversation/prompt-input/prompt-input.js';
|
|
14403
|
+
```
|
|
14404
|
+
|
|
14405
|
+
## `lr-prompt-queue`
|
|
14406
|
+
|
|
14407
|
+
Controlled editable queue of follow-up turns. Reordering, editing, and removal emit a complete
|
|
14408
|
+
proposed queue; send-now emits the complete selected item.
|
|
14409
|
+
|
|
14410
|
+
**Properties:** `items: PromptQueueItem[] = []` (attribute: false); `editable: boolean = true`
|
|
14411
|
+
(reflected, string-aware true-default converter); `disabled: boolean = false` (reflected);
|
|
14412
|
+
`label: string = ''`; `accessibleLabel: string | null = null` (attribute `aria-label`).
|
|
14413
|
+
`PromptQueueItem = { id: string; value: string; attachments?: DocumentRef[]; createdAt?: number;
|
|
14414
|
+
metadata?: Record<string, unknown> }`.
|
|
14415
|
+
|
|
14416
|
+
**Events:** `lr-queue-change` (`PromptQueueChangeDetail = { items, reason, itemId }`, with
|
|
14417
|
+
`reason: 'edit' | 'remove' | 'reorder'`), `lr-send-now` (`{ item }`). The queue is controlled:
|
|
14418
|
+
these events propose complete next values without mutating `items`.
|
|
14419
|
+
|
|
14420
|
+
**CSS parts:** `base`, `heading`, `list`, `item`, `value`, `editor`, `actions`, `action`, `empty`.
|
|
14421
|
+
|
|
14422
|
+
**Slots:** none. **Optional peer deps:** none.
|
|
14423
|
+
|
|
14424
|
+
```ts
|
|
14425
|
+
import '@aceshooting/lyra-ui/components/conversation/prompt-queue/prompt-queue.js';
|
|
14426
|
+
```
|
|
14427
|
+
|
|
14428
|
+
## `lr-selection-toolbar`
|
|
14429
|
+
|
|
14430
|
+
Nonmodal, Escape-dismissible text-selection toolbar carrying selected text plus a format-neutral
|
|
14431
|
+
`DocumentLocator` into ask, quote, cite, and copy actions.
|
|
14432
|
+
|
|
14433
|
+
**Properties:** `open: boolean = false` (reflected); `text: string = ''`;
|
|
14434
|
+
`anchor: DocumentLocator | null = null`, `rect: DOMRectReadOnly | null = null`, and
|
|
14435
|
+
`actions: SelectionAction[] = ['ask', 'quote', 'cite', 'copy']` (attribute: false);
|
|
14436
|
+
`label: string = ''`; `accessibleLabel: string | null = null` (attribute `aria-label`).
|
|
14437
|
+
`SelectionAction = 'ask' | 'quote' | 'cite' | 'copy'`.
|
|
14438
|
+
|
|
14439
|
+
**Events:** `lr-selection-action` (`SelectionActionDetail = { action, text, anchor }`);
|
|
14440
|
+
`lr-dismiss` (Escape); `lr-copy-error` (`{ error }`). Copy uses the Clipboard API when available;
|
|
14441
|
+
the action event still reports the user intent if writing fails, alongside `lr-copy-error`.
|
|
14442
|
+
|
|
14443
|
+
**CSS parts:** `toolbar`, `action`, `action-ask`, `action-quote`, `action-cite`, `action-copy`.
|
|
14444
|
+
|
|
14445
|
+
**Themeable custom properties:** `--lr-selection-toolbar-inline-start` and
|
|
14446
|
+
`--lr-selection-toolbar-block-start` are normally computed from `rect`; hosts may override them to
|
|
14447
|
+
provide their own fixed-position anchor.
|
|
14448
|
+
|
|
14449
|
+
**Slots:** none. **Optional peer deps:** none.
|
|
14450
|
+
|
|
14451
|
+
```ts
|
|
14452
|
+
import '@aceshooting/lyra-ui/components/conversation/selection-toolbar/selection-toolbar.js';
|
|
14453
|
+
```
|
|
14454
|
+
|
|
14455
|
+
**Additional API surface:**
|
|
14456
|
+
|
|
14457
|
+
- `--lr-selection-toolbar-inline-shift` — Computed inline collision-avoidance offset.
|
|
14458
|
+
- `--lr-selection-toolbar-block-shift` — Computed block collision-avoidance offset.
|
|
14459
|
+
|
|
14460
|
+
## `lr-realtime-session`
|
|
14461
|
+
|
|
14462
|
+
Provider-neutral realtime voice shell composing connection state, `lr-audio-visualizer`,
|
|
14463
|
+
`lr-push-to-talk`, and `lr-transcript-feed`. Transport/authentication/playback remain host-owned.
|
|
14464
|
+
|
|
14465
|
+
**Properties:** `state: RealtimeConnectionState = 'disconnected'` (reflected), where the closed set
|
|
14466
|
+
is `'disconnected' | 'connecting' | 'connected' | 'reconnecting' | 'error'`; `voiceState:
|
|
14467
|
+
AudioVisualizerState = 'idle'` (attribute `voice-state`); `level: number | null = null` (finite,
|
|
14468
|
+
clamped by the composed visualizer); `stream: MediaStream | null = null` and `entries:
|
|
14469
|
+
LyraTranscriptEntry[] = []` (attribute: false); `muted: boolean = false` (reflected);
|
|
14470
|
+
`showCapture: boolean = true` (attribute `show-capture`, reflected, string-aware true-default
|
|
14471
|
+
converter); `errorCode: string = ''` (attribute `error-code`); `label: string = ''`.
|
|
14472
|
+
|
|
14473
|
+
**Events:** `lr-connect`, `lr-disconnect`, `lr-mute-change` (`{ muted }`), `lr-interrupt`; the
|
|
14474
|
+
composed push-to-talk events continue bubbling.
|
|
14475
|
+
|
|
14476
|
+
**Slots:** `controls` adds provider-specific actions beside the built-in session controls.
|
|
14477
|
+
|
|
14478
|
+
**CSS parts:** `base`, `header`, `status`, `activity`, `controls`, `connect`, `disconnect`, `mute`,
|
|
14479
|
+
`interrupt`, `capture`, `transcript`, `error`.
|
|
14480
|
+
|
|
14481
|
+
**Slots:** `controls` — provider-specific actions appended to the built-in session controls.
|
|
14482
|
+
**Optional peer deps:** none. Transport, credentials, capture permission, and media playback
|
|
14483
|
+
remain host-owned.
|
|
14484
|
+
|
|
14485
|
+
```ts
|
|
14486
|
+
import '@aceshooting/lyra-ui/components/conversation/realtime-session/realtime-session.js';
|
|
14487
|
+
```
|
|
14488
|
+
|
|
13249
14489
|
# Agent tooling, tool calls & evaluation (`components/agent-tools/`)
|
|
13250
14490
|
|
|
13251
14491
|
## `lr-tool-call-chip`
|
|
@@ -13300,6 +14540,11 @@ referenced: `--lr-color-text-quiet`, `--lr-color-surface`, `--lr-color-border`,
|
|
|
13300
14540
|
`--lr-space-xs/-s/-m`, `--lr-radius`, `--lr-shadow`, `--lr-focus-ring-*`,
|
|
13301
14541
|
`--lr-transition-fast`.
|
|
13302
14542
|
|
|
14543
|
+
> Retheming a chip from outside `<lr-tool-call-chip>` (e.g. per-tool or per-status colors)?
|
|
14544
|
+
> Set `--lr-theme-*` on the ancestor wrapper, not `--lr-*` directly — see `llms/shared.md`'s
|
|
14545
|
+
> "Theming and design tokens" section for why a `--lr-*` override on a wrapper only reaches that
|
|
14546
|
+
> wrapper's *direct* children, not a nested `<lr-*>` host's shadow DOM.
|
|
14547
|
+
|
|
13303
14548
|
**Optional peer deps:** none.
|
|
13304
14549
|
|
|
13305
14550
|
```html
|
|
@@ -13366,6 +14611,13 @@ shell around it.
|
|
|
13366
14611
|
- `copyable: boolean = false` (reflected) — shows a copy-to-clipboard affordance alongside the
|
|
13367
14612
|
fallback view, for either `fallback` kind: forwarded to `<lr-json-viewer>`'s own `copyable` for
|
|
13368
14613
|
`"json"`, or a `<lr-copy-button>` rendered next to the text for `"text"`.
|
|
14614
|
+
- `status: 'pending'|'running'|'success'|'error'|'denied' = 'success'` (reflected) — the outcome of
|
|
14615
|
+
the currently-rendered result, as reported by the matched renderer's own `context.reportStatus()`
|
|
14616
|
+
(see below). Reset to `'success'` immediately before every `render()` call, so a renderer that
|
|
14617
|
+
never calls `reportStatus` — including every pre-existing 2-arg renderer written before this
|
|
14618
|
+
property existed — leaves it at that default, and a later renderer that stays quiet doesn't
|
|
14619
|
+
inherit a stale outcome left behind by a previous one. Same status vocabulary as
|
|
14620
|
+
`<lr-tool-result-dialog>`/`<lr-tool-call-chip>`.
|
|
13369
14621
|
|
|
13370
14622
|
**Events:** `lr-render-error` (`detail: { toolName: string; error: unknown }`) — fired immediately
|
|
13371
14623
|
before falling back to `<lr-json-viewer>`, whether because no renderer matched, a candidate
|
|
@@ -13408,10 +14660,16 @@ this same module-level registry unless a given `<lr-tool-result-view>`'s `regist
|
|
|
13408
14660
|
set to a different `Map` instance.
|
|
13409
14661
|
|
|
13410
14662
|
**`ToolRendererDefinition`** — the shape of one registered renderer:
|
|
13411
|
-
- `render?: (result: unknown, args: unknown) => unknown` — renders the
|
|
13412
|
-
produced it) as UI. Typed as `unknown` rather than Lit's
|
|
13413
|
-
value works (a plain string, a DOM node, an array of
|
|
13414
|
-
Lit import and don't need this module to add one
|
|
14663
|
+
- `render?: (result: unknown, args: unknown, context: ToolRenderContext) => unknown` — renders the
|
|
14664
|
+
result (and the args that produced it) as UI. Typed as `unknown` rather than Lit's
|
|
14665
|
+
`TemplateResult` so any lit-html-renderable value works (a plain string, a DOM node, an array of
|
|
14666
|
+
templates) — consumers already own their own Lit import and don't need this module to add one.
|
|
14667
|
+
The 3rd `context` argument is additive: it's the *last* positional parameter, so a pre-existing
|
|
14668
|
+
2-arg `render(result, args)` function stays assignable to this type unchanged — JS/TS function
|
|
14669
|
+
assignability allows an implementation with fewer parameters than its declared type. Use
|
|
14670
|
+
`context.reportStatus(status)` (see `ToolRenderContext` below) to signal a non-throwing outcome
|
|
14671
|
+
— e.g. an application-level failure the renderer still drew real UI for — instead of throwing,
|
|
14672
|
+
which discards that UI for the `<lr-json-viewer>` fallback instead
|
|
13415
14673
|
- `matches?: (payload: unknown) => boolean` — facade/shape-based dispatch predicate, consulted only
|
|
13416
14674
|
when no exact `toolName` key matches (see dispatch order below); only ever consulted *before*
|
|
13417
14675
|
`load` resolves when supplied inline at registration time — a definition that needs shape-based
|
|
@@ -13424,6 +14682,27 @@ set to a different `Map` instance.
|
|
|
13424
14682
|
object, so `load: () => import('./my-renderer.js')` works unmodified when that module's default
|
|
13425
14683
|
export is itself a `ToolRendererDefinition`
|
|
13426
14684
|
|
|
14685
|
+
**`ToolRenderContext`** — the shape of `render()`'s 3rd argument:
|
|
14686
|
+
- `reportStatus: (status: ToolResultStatus) => void` — reports this render's outcome without
|
|
14687
|
+
throwing. `ToolResultStatus` is `'pending' | 'running' | 'success' | 'error' | 'denied'`, the same
|
|
14688
|
+
union `<lr-tool-result-dialog>`/`<lr-tool-call-chip>` use, re-exported from this module. Calling
|
|
14689
|
+
it is entirely optional: a renderer that never calls it leaves `<lr-tool-result-view>`'s `status`
|
|
14690
|
+
property at its default, `'success'`. This threads through the lazy `load()` path exactly the
|
|
14691
|
+
same way — a `render()` resolved via `load()` receives the same 3rd `context` argument as one
|
|
14692
|
+
registered directly.
|
|
14693
|
+
|
|
14694
|
+
```ts
|
|
14695
|
+
registerToolRenderer('run_query', {
|
|
14696
|
+
render: (result, _args, context) => {
|
|
14697
|
+
if ((result as { rows?: unknown[] })?.rows === undefined) {
|
|
14698
|
+
context.reportStatus('error');
|
|
14699
|
+
return html`<p class="query-error">The query returned no result set.</p>`;
|
|
14700
|
+
}
|
|
14701
|
+
return html`<query-result-table .rows=${(result as { rows: unknown[] }).rows}></query-result-table>`;
|
|
14702
|
+
},
|
|
14703
|
+
});
|
|
14704
|
+
```
|
|
14705
|
+
|
|
13427
14706
|
**Exports:**
|
|
13428
14707
|
- `registerToolRenderer(name: string, def: ToolRendererDefinition): void` — registers (or
|
|
13429
14708
|
overwrites) the renderer for `name` in the module-level default registry
|
|
@@ -13483,6 +14762,20 @@ registerToolRenderer('web_search', {
|
|
|
13483
14762
|
- `matches` is a linear scan over every registered definition's `matches` in registration order; it
|
|
13484
14763
|
only runs when the exact-name lookup misses, so tool names with a direct registration never pay
|
|
13485
14764
|
that scan cost
|
|
14765
|
+
- `status` is reset to `'success'` immediately before every `render()` call, not merely at
|
|
14766
|
+
construction — a renderer that reported `'error'` on one result does not leave that status
|
|
14767
|
+
behind once dispatch moves on to a different (quiet) renderer; a `reportStatus()` call that
|
|
14768
|
+
arrives asynchronously after a *newer* resolve has already started (a stale promise the previous
|
|
14769
|
+
render kicked off) is detected via the same generation counter as the `load()` staleness guard
|
|
14770
|
+
and discarded rather than clobbering the newer status
|
|
14771
|
+
- **don't type a custom renderer against a hand-rolled, over-generic function signature** (e.g.
|
|
14772
|
+
`render: (...args: any[]) => unknown`, or a locally-declared narrower alias then cast to
|
|
14773
|
+
`ToolRendererDefinition`) — write the registration as a plain object literal (as in every example
|
|
14774
|
+
above) or annotate it as `ToolRendererDefinition` directly, so TypeScript checks the actual
|
|
14775
|
+
current `render`/`matches`/`load` shape, including the `context: ToolRenderContext` 3rd
|
|
14776
|
+
parameter and the exact `ToolResultStatus` string union `reportStatus` accepts. A loosened/`any`
|
|
14777
|
+
signature type-checks either way but silently gives up the compiler's ability to catch a typo'd
|
|
14778
|
+
status string or a dropped `context` parameter
|
|
13486
14779
|
- `fallback` implements exactly two kinds, `"json"` and `"text"`; any *other* value silently behaves
|
|
13487
14780
|
as `"json"`, as does `"text"` whenever `result` isn't a string. Only `"text"` renders
|
|
13488
14781
|
`[part="fallback-text"]`/`[part="fallback-copy"]`
|
|
@@ -13582,6 +14875,17 @@ state, so no additional scroll-lock/focus-trap bookkeeping is needed for that tr
|
|
|
13582
14875
|
- the `maximize`/`close` buttons are always the first elements in the Tab order while open,
|
|
13583
14876
|
regardless of visual position, followed by `body` then `footer` content
|
|
13584
14877
|
|
|
14878
|
+
**Additional API surface:**
|
|
14879
|
+
|
|
14880
|
+
- `--lr-tool-result-dialog-running-color` — Running status foreground. Default: `var(--lr-color-brand)`.
|
|
14881
|
+
- `--lr-tool-result-dialog-running-bg` — Running status background. Default: `var(--lr-color-brand-quiet)`.
|
|
14882
|
+
- `--lr-tool-result-dialog-success-color` — Success status foreground. Default: `var(--lr-color-success)`.
|
|
14883
|
+
- `--lr-tool-result-dialog-success-bg` — Success status background. Default: `var(--lr-color-success-quiet)`.
|
|
14884
|
+
- `--lr-tool-result-dialog-error-color` — Error status foreground. Default: `var(--lr-color-danger)`.
|
|
14885
|
+
- `--lr-tool-result-dialog-error-bg` — Error status background. Default: `var(--lr-color-danger-quiet)`.
|
|
14886
|
+
- `--lr-tool-result-dialog-denied-color` — Denied status foreground. Default: `var(--lr-color-warning)`.
|
|
14887
|
+
- `--lr-tool-result-dialog-denied-bg` — Denied status background. Default: `var(--lr-color-warning-quiet)`.
|
|
14888
|
+
|
|
13585
14889
|
---
|
|
13586
14890
|
|
|
13587
14891
|
## `lr-tool-select-dialog`
|
|
@@ -14231,7 +15535,8 @@ recorded winner, host-writable to reflect a previously-recorded vote back. `item
|
|
|
14231
15535
|
(attribute `item-id`) — an opaque id round-tripped through `lr-vote`. `hideTie: boolean = false`
|
|
14232
15536
|
(attribute `hide-tie`) and `hideBothBad: boolean = false` (attribute `hide-both-bad`) hide the
|
|
14233
15537
|
corresponding vote button. `syncScroll: boolean = false` (attribute `sync-scroll`) links both panes'
|
|
14234
|
-
scroll position.
|
|
15538
|
+
scroll position. `disabled: boolean = false` (reflected) disables every vote button and suppresses
|
|
15539
|
+
`lr-vote`.
|
|
14235
15540
|
|
|
14236
15541
|
**Slots:** `a` (the first output — any content, a chat message, markdown, a viewer), `b` (the second
|
|
14237
15542
|
output), and `prompt` (optional shared-input header above both panes).
|
|
@@ -14374,6 +15679,11 @@ so retinting one tone doesn't repaint the other surface reading that token, and
|
|
|
14374
15679
|
`::part('line')` stylesheet override — the background is applied inline, so a stylesheet rule can't
|
|
14375
15680
|
beat it without `!important`.
|
|
14376
15681
|
|
|
15682
|
+
**Additional API surface:**
|
|
15683
|
+
|
|
15684
|
+
- `--lr-terminal-search-outline-color` — Outline color for a line containing a non-active search match. Default: `var(--lr-color-warning)`.
|
|
15685
|
+
- `--lr-terminal-search-active-outline-color` — Outline color for the active search match's line. Default: `var(--lr-color-brand)`.
|
|
15686
|
+
|
|
14377
15687
|
## `lr-trace-tree`
|
|
14378
15688
|
|
|
14379
15689
|
A collapsible span hierarchy for one agent/LLM trace (Langfuse/LangSmith run-tree style): kind icon,
|
|
@@ -14421,6 +15731,17 @@ side of the lightness midpoint as the ambient surface, so a consumer who sets
|
|
|
14421
15731
|
set `--lr-trace-tree-row-active-color` to match, and should re-check the status-label tones
|
|
14422
15732
|
against the new tint as well.
|
|
14423
15733
|
|
|
15734
|
+
**Additional API surface:**
|
|
15735
|
+
|
|
15736
|
+
- `--lr-trace-tree-toggle-hover-bg` — Toggle hover background. Default: `var(--lr-color-brand-quiet)`.
|
|
15737
|
+
- `--lr-trace-tree-success-color` — Success status text and bar. Default: `var(--lr-color-success)`.
|
|
15738
|
+
- `--lr-trace-tree-error-color` — Error status text and bar. Default: `var(--lr-color-danger)`.
|
|
15739
|
+
- `--lr-trace-tree-denied-color` — Denied status text and bar. Default: `var(--lr-color-warning)`.
|
|
15740
|
+
- `--lr-trace-tree-running-color` — Running status text and stripe. Default: `var(--lr-color-brand)`.
|
|
15741
|
+
- `--lr-trace-tree-pending-color` — Pending status text and bar. Default: `var(--lr-color-text-quiet)`.
|
|
15742
|
+
- `--lr-trace-tree-bar-track-bg` — Duration bar track. Default: `var(--lr-color-surface-raised)`.
|
|
15743
|
+
- `--lr-trace-tree-running-stripe-bg` — Running stripe contrast. Default: `var(--lr-color-brand-quiet)`.
|
|
15744
|
+
|
|
14424
15745
|
## `lr-activity-feed`
|
|
14425
15746
|
|
|
14426
15747
|
An append-only streaming log of granular agent actions ("Searching the web…", "Read
|
|
@@ -14663,6 +15984,15 @@ viewport's aspect ratio.
|
|
|
14663
15984
|
></lr-browser-frame>
|
|
14664
15985
|
```
|
|
14665
15986
|
|
|
15987
|
+
**Additional API surface:**
|
|
15988
|
+
|
|
15989
|
+
- `--lr-browser-frame-controller-background` — Controller badge background. Default: `var(--lr-color-brand-quiet)`.
|
|
15990
|
+
- `--lr-browser-frame-controller-color` — Controller badge text color. Default: `var(--lr-color-brand)`.
|
|
15991
|
+
- `--lr-browser-frame-ping-click-color` — Click-ping border color. Default: `var(--lr-color-brand)`.
|
|
15992
|
+
- `--lr-browser-frame-ping-type-color` — Type-ping border color. Default: `var(--lr-color-success)`.
|
|
15993
|
+
- `--lr-browser-frame-ping-scroll-color` — Scroll-ping border color. Default: `var(--lr-color-warning)`.
|
|
15994
|
+
- `--lr-browser-frame-ping-move-color` — Move-ping border color. Default: `var(--lr-color-text-quiet)`.
|
|
15995
|
+
|
|
14666
15996
|
## `lr-artifact-panel`
|
|
14667
15997
|
|
|
14668
15998
|
Shell around one agent-generated artifact: a title/kind header, a preview↔code toggle, version
|
|
@@ -14792,6 +16122,12 @@ is unset. Like the other density/state properties in this family they are inline
|
|
|
14792
16122
|
their point of use rather than `:host` declarations, so either can be set on the element *or on any
|
|
14793
16123
|
ancestor* — one rule on a run list retunes every compact run inside it.
|
|
14794
16124
|
|
|
16125
|
+
**Additional API surface:**
|
|
16126
|
+
|
|
16127
|
+
- `--lr-agent-run-metric-danger-color` — Danger metric value. Default: `var(--lr-color-danger)`.
|
|
16128
|
+
- `--lr-agent-run-metric-success-color` — Success metric value. Default: `var(--lr-color-success)`.
|
|
16129
|
+
- `--lr-agent-run-metric-warning-color` — Warning metric value. Default: `var(--lr-color-warning)`.
|
|
16130
|
+
|
|
14795
16131
|
## `lr-agent-trace`
|
|
14796
16132
|
|
|
14797
16133
|
Provider-neutral agent/LLM trace view combining span-kind filters, handoff quick-jumps, and a
|
|
@@ -15064,6 +16400,207 @@ retinted independently; `--lr-tool-timeline-pending-approval-border-color` (defa
|
|
|
15064
16400
|
`var(--lr-color-warning)`) — color of the entry body's leading border while that entry's
|
|
15065
16401
|
`data-pending-approval` is `"true"`.
|
|
15066
16402
|
|
|
16403
|
+
**Additional API surface:**
|
|
16404
|
+
|
|
16405
|
+
- `--lr-tool-timeline-running-marker-color` — Running rail dot. Default: `var(--lr-color-brand)`.
|
|
16406
|
+
- `--lr-tool-timeline-success-marker-color` — Success rail dot. Default: `var(--lr-color-success)`.
|
|
16407
|
+
- `--lr-tool-timeline-error-marker-color` — Error rail dot. Default: `var(--lr-color-danger)`.
|
|
16408
|
+
- `--lr-tool-timeline-approved-bg` — Approved badge background. Default: `var(--lr-color-success-quiet)`.
|
|
16409
|
+
- `--lr-tool-timeline-approved-color` — Approved badge foreground. Default: `var(--lr-color-success)`.
|
|
16410
|
+
- `--lr-tool-timeline-denied-bg` — Denied badge background. Default: `var(--lr-color-danger-quiet)`.
|
|
16411
|
+
- `--lr-tool-timeline-denied-color` — Denied badge foreground. Default: `var(--lr-color-danger)`.
|
|
16412
|
+
- `--lr-tool-timeline-error-color` — Expanded error text. Default: `var(--lr-color-danger)`.
|
|
16413
|
+
|
|
16414
|
+
## `lr-agent-eval-dashboard`
|
|
16415
|
+
|
|
16416
|
+
Controlled evaluation overview with metric cards, a dependency-free trend chart, and run-status
|
|
16417
|
+
history. It never launches or scores evaluations.
|
|
16418
|
+
|
|
16419
|
+
**Properties:** `metrics: AgentEvaluationMetric[] = []` (attribute: false), where each metric is
|
|
16420
|
+
`{ id, label, value, format?: 'number' | 'percent' | 'milliseconds' | 'currency' }`; `currency:
|
|
16421
|
+
string = 'USD'` is the ISO 4217 code used by currency-formatted metrics (invalid codes safely fall
|
|
16422
|
+
back to USD). `runs:
|
|
16423
|
+
AgentEvaluationDashboardRun[] = []` (attribute: false), where each run is `{ id, label, status,
|
|
16424
|
+
metrics?: Record<string, number> }`; `metricId: string = ''`; `label: string = ''`; `showChart:
|
|
16425
|
+
boolean = true`; `chartHeight: string = '220px'`.
|
|
16426
|
+
|
|
16427
|
+
**Events:** `lr-metric-change` (`{ metricId }`, emitted when a metric selector is activated) and
|
|
16428
|
+
`lr-run-select` (`{ runId }`).
|
|
16429
|
+
|
|
16430
|
+
**CSS parts:** `base`, `heading`, `metrics`, `metric`, `chart`, `runs`, `runs-heading`, `run`,
|
|
16431
|
+
`run-label`, `run-meta`, `run-status`, `empty`.
|
|
16432
|
+
|
|
16433
|
+
**Additional API surface:**
|
|
16434
|
+
|
|
16435
|
+
- `--lr-agent-eval-dashboard-active-border` — Active metric border. Default: `var(--lr-color-brand)`.
|
|
16436
|
+
- `--lr-agent-eval-dashboard-active-background` — Active metric background. Default: `var(--lr-color-brand-quiet)`.
|
|
16437
|
+
|
|
16438
|
+
## `lr-approval-queue`
|
|
16439
|
+
|
|
16440
|
+
Keyboard-accessible queue of pending tool calls backed by one reusable `lr-tool-approval-dialog`.
|
|
16441
|
+
It never executes tools or persists decisions.
|
|
16442
|
+
|
|
16443
|
+
**Properties:** `requests: ToolApprovalRequest[] = []` (attribute: false), where each request is
|
|
16444
|
+
`{ id, toolName, args, status?: 'pending' | 'approved' | 'denied' }`; `selectedId: string = ''`;
|
|
16445
|
+
`open: boolean = false`; `editable: boolean = true`; `label: string = ''`.
|
|
16446
|
+
|
|
16447
|
+
**Events:** `lr-approval-select` (`{ invocationId }`), `lr-approval-decision` (`{ invocationId,
|
|
16448
|
+
approved, args? }`), and `lr-approval-close` (`{ invocationId, reason }`).
|
|
16449
|
+
|
|
16450
|
+
**CSS parts:** `base`, `heading-row`, `heading`, `count`, `list`, `request`, `request-info`,
|
|
16451
|
+
`tool-name`, `request-id`, `status`, `empty`.
|
|
16452
|
+
|
|
16453
|
+
**Additional API surface:**
|
|
16454
|
+
|
|
16455
|
+
- `--lr-approval-queue-selected-border` — Selected request border. Default: `var(--lr-color-brand)`.
|
|
16456
|
+
|
|
16457
|
+
## `lr-mcp-app`
|
|
16458
|
+
|
|
16459
|
+
Sandbox host for executable MCP App-style resources. Inline documents run in a unique-origin iframe
|
|
16460
|
+
with injected CSP; remote documents are URL-validated. The frame can only request tool calls,
|
|
16461
|
+
messages, navigation, logs, and clamped resizing through typed events. Capabilities are denied
|
|
16462
|
+
unless explicitly enabled in `resource.permissions`.
|
|
16463
|
+
|
|
16464
|
+
**Properties:**
|
|
16465
|
+
|
|
16466
|
+
- `resource: McpAppResource | null = null` (attribute: false) — either inline `html` or a safe
|
|
16467
|
+
remote `src`, plus the required logical `uri`. `McpAppResource = { uri: string; title?: string;
|
|
16468
|
+
html?: string; src?: string; csp?: McpAppCsp; permissions?: McpAppPermissions; metadata?:
|
|
16469
|
+
Record<string, unknown> }`. CSP domain arrays accept HTTP(S) origins only. Permissions are
|
|
16470
|
+
optional booleans for camera, microphone, geolocation, clipboard read, and clipboard write.
|
|
16471
|
+
- `height: number = 320`, `maxHeight: number = 800` (attribute `max-height`) — requested and maximum
|
|
16472
|
+
frame heights in pixels; runtime values and resize requests clamp to 120–10,000.
|
|
16473
|
+
- `label: string = ''`; `accessibleLabel: string | null = null` (attribute `aria-label`) — frame
|
|
16474
|
+
title precedence is host `aria-label`, `label`, resource title, then the localized fallback.
|
|
16475
|
+
|
|
16476
|
+
**Methods:** `postHostContext(context: unknown): void` posts host state into the active frame;
|
|
16477
|
+
`postToolResult(requestId: string, result?: unknown, error?: string): void` resolves a prior tool
|
|
16478
|
+
request. Both are no-ops before a frame exists.
|
|
16479
|
+
|
|
16480
|
+
**Exported types:** `McpAppResource`, `McpAppCsp`, `McpAppPermissions`,
|
|
16481
|
+
`McpAppToolCallDetail`, and `LyraMcpAppEventMap`.
|
|
16482
|
+
|
|
16483
|
+
**Events:** `lr-mcp-ready` (`{ uri }`), `lr-mcp-tool-call` (`{ requestId?, name, args }`),
|
|
16484
|
+
`lr-mcp-send-message` (`{ message }`), `lr-mcp-open-link` (`{ href }`), `lr-mcp-log`
|
|
16485
|
+
(`{ level, value }`), and `lr-mcp-resize` (`{ height }`). These are host-authorized requests; the
|
|
16486
|
+
component does not execute tools, send messages, or navigate itself.
|
|
16487
|
+
|
|
16488
|
+
**CSS parts:** `base`, `frame`, `loading`, `error`.
|
|
16489
|
+
|
|
16490
|
+
**Slots:** none. **Optional peer deps:** none.
|
|
16491
|
+
|
|
16492
|
+
```ts
|
|
16493
|
+
import '@aceshooting/lyra-ui/components/agent-tools/mcp-app/mcp-app.js';
|
|
16494
|
+
```
|
|
16495
|
+
|
|
16496
|
+
## `lr-prompt-studio`
|
|
16497
|
+
|
|
16498
|
+
Prompt-development workbench for ordered role messages, `{{variable}}` substitution, saved
|
|
16499
|
+
versions, resolved preview, and save/run intents. Message and variable edits update the component's
|
|
16500
|
+
current arrays before emitting their complete next state; persistence and execution remain
|
|
16501
|
+
host-owned.
|
|
16502
|
+
|
|
16503
|
+
**Properties:** `messages: PromptStudioMessage[] = []` and
|
|
16504
|
+
`variables: PromptStudioVariable[] = []` are property-only editor state: user edits update the
|
|
16505
|
+
current arrays before `lr-change` is emitted, while the host remains responsible for persistence.
|
|
16506
|
+
`versions: PromptStudioVersion[] = []` is a property-only host-controlled input;
|
|
16507
|
+
`selectedVersionId: string = ''` (attribute `selected-version-id`); `label: string = ''`;
|
|
16508
|
+
`running: boolean = false` and `disabled: boolean = false` (both reflected).
|
|
16509
|
+
|
|
16510
|
+
**Exported types:** `PromptStudioRole = 'system' | 'user' | 'assistant' | 'tool'`;
|
|
16511
|
+
`PromptStudioMessage = { id, role, content, name? }`; `PromptStudioVariable = { name, value,
|
|
16512
|
+
description? }`; `PromptStudioVersion = { id: string; label: string; messages:
|
|
16513
|
+
PromptStudioMessage[]; variables?: PromptStudioVariable[]; createdAt?: string }`; and
|
|
16514
|
+
`PromptStudioState = { messages, variables }`.
|
|
16515
|
+
|
|
16516
|
+
**Events:** `lr-change`, `lr-run`, `lr-save` (all carry complete messages/variables);
|
|
16517
|
+
`lr-version-select` (`{ version }`).
|
|
16518
|
+
|
|
16519
|
+
**CSS parts:** `base`, `toolbar`, `editor`, `messages`, `message`, `message-role`,
|
|
16520
|
+
`message-content`, `remove-message`, `add-message`, `variables`, `variable`, `versions`, `version`,
|
|
16521
|
+
`preview`, `save`, `run`.
|
|
16522
|
+
|
|
16523
|
+
**Slots:** none. **Optional peer deps:** none.
|
|
16524
|
+
|
|
16525
|
+
```ts
|
|
16526
|
+
import '@aceshooting/lyra-ui/components/agent-tools/prompt-studio/prompt-studio.js';
|
|
16527
|
+
```
|
|
16528
|
+
|
|
16529
|
+
**Additional API surface:**
|
|
16530
|
+
|
|
16531
|
+
- `--lr-prompt-studio-field-hover-border` — Enabled field hover border. Default: `var(--lr-color-brand)`.
|
|
16532
|
+
- `--lr-prompt-studio-version-selected-border` — Selected version border. Default: `var(--lr-color-brand)`.
|
|
16533
|
+
- `--lr-prompt-studio-version-selected-bg` — Selected version background. Default: `var(--lr-color-brand-quiet)`.
|
|
16534
|
+
- `--lr-prompt-studio-version-selected-color` — Selected version foreground. Default: `var(--lr-color-text)`.
|
|
16535
|
+
- `--lr-prompt-studio-version-selected-hover-bg` — Selected version hover background. Default: `var(--lr-color-brand-quiet)`.
|
|
16536
|
+
|
|
16537
|
+
## `lr-schema-viewer`
|
|
16538
|
+
|
|
16539
|
+
Recursive JSON Schema inspector with property/branch selection, required and constraint display,
|
|
16540
|
+
validation issues, `$ref` visibility, composition branches, cycle protection, and a depth ceiling.
|
|
16541
|
+
It intentionally does not fetch remote references or validate values.
|
|
16542
|
+
|
|
16543
|
+
**Properties:** `schema: JsonSchemaNode | null = null` and `issues: SchemaValidationIssue[] = []`
|
|
16544
|
+
(attribute: false); `selectedPath: string = ''` (attribute `selected-path`);
|
|
16545
|
+
`maxDepth: number = 20` (attribute `max-depth`, clamped to 100); `label: string = ''`.
|
|
16546
|
+
|
|
16547
|
+
**Exported types:** `JsonSchemaNode` covers `$ref`, type/title/description, properties/items,
|
|
16548
|
+
required/enum/const/default/examples, and oneOf/anyOf/allOf while preserving unknown schema
|
|
16549
|
+
keywords. `SchemaValidationIssue = { path: string; message: string; severity?: 'error' | 'warning'
|
|
16550
|
+
| 'info' }`.
|
|
16551
|
+
|
|
16552
|
+
**Events:** `lr-schema-select` (`{ path, schema }`, with an RFC 6901-style JSON Pointer).
|
|
16553
|
+
|
|
16554
|
+
**CSS parts:** `base`, `tree`, `node`, `node-selected`, `node-trigger`, `name`, `type`, `required`,
|
|
16555
|
+
`description`, `constraints`, `issue`, `limit`, `empty`.
|
|
16556
|
+
|
|
16557
|
+
Rendering is capped at 500 schema nodes; `limit` reports truncation. Cycles stop at the repeated
|
|
16558
|
+
node rather than recursing. **Slots:** none. **Optional peer deps:** none.
|
|
16559
|
+
|
|
16560
|
+
```ts
|
|
16561
|
+
import '@aceshooting/lyra-ui/components/agent-tools/schema-viewer/schema-viewer.js';
|
|
16562
|
+
```
|
|
16563
|
+
|
|
16564
|
+
**Additional API surface:**
|
|
16565
|
+
|
|
16566
|
+
- `part="limit"` — Resource-ceiling status shown when additional nodes are omitted.
|
|
16567
|
+
- `--lr-schema-viewer-selected-border` — Selected node branch. Default: `var(--lr-color-brand)`.
|
|
16568
|
+
- `--lr-schema-viewer-error-border` — Error issue border. Default: `var(--lr-color-danger)`.
|
|
16569
|
+
- `--lr-schema-viewer-error-bg` — Error issue background. Default: `var(--lr-color-danger-quiet)`.
|
|
16570
|
+
- `--lr-schema-viewer-warning-border` — Warning issue border. Default: `var(--lr-color-warning)`.
|
|
16571
|
+
- `--lr-schema-viewer-warning-bg` — Warning issue background. Default: `var(--lr-color-warning-quiet)`.
|
|
16572
|
+
|
|
16573
|
+
## `lr-subagent-panel`
|
|
16574
|
+
|
|
16575
|
+
Controlled nested-agent hierarchy with lifecycle badges, task/model context, guarded progress,
|
|
16576
|
+
selection, cancel, and retry intents. `SubagentRun.parentId` creates nesting; cycles and orphan
|
|
16577
|
+
parents remain renderable instead of recursing forever.
|
|
16578
|
+
|
|
16579
|
+
**Properties:** `runs: SubagentRun[] = []` (attribute: false);
|
|
16580
|
+
`selectedRunId: string = ''` (attribute `selected-run-id`); `label: string = ''`.
|
|
16581
|
+
`SubagentRun = { id: string; parentId?: string; label: string; status: AgentStatusKind; task?:
|
|
16582
|
+
string; model?: string; progress?: number; startedAt?: number; endedAt?: number; metadata?:
|
|
16583
|
+
Record<string, unknown> }`.
|
|
16584
|
+
|
|
16585
|
+
**Events:** `lr-run-select` (`{ run }`), `lr-cancel`/`lr-retry` (`{ runId }`).
|
|
16586
|
+
|
|
16587
|
+
**CSS parts:** `base`, `list`, `run`, `run-selected`, `run-row`, `run-trigger`, `label`, `status`,
|
|
16588
|
+
`task`, `model`, `progress`, `actions`, `cancel`, `retry`, `limit`, `empty`.
|
|
16589
|
+
|
|
16590
|
+
At most 500 runs render, and visual indentation is capped at 12 levels while ARIA hierarchy keeps
|
|
16591
|
+
the logical depth. Progress is finite and clamped. **Slots:** none. **Optional peer deps:** none.
|
|
16592
|
+
|
|
16593
|
+
```ts
|
|
16594
|
+
import '@aceshooting/lyra-ui/components/agent-tools/subagent-panel/subagent-panel.js';
|
|
16595
|
+
```
|
|
16596
|
+
|
|
16597
|
+
**Additional API surface:**
|
|
16598
|
+
|
|
16599
|
+
- `part="limit"` — Resource-ceiling status shown when additional runs are omitted.
|
|
16600
|
+
- `--lr-subagent-panel-selected-border` — Selected run border. Default: `var(--lr-color-brand)`.
|
|
16601
|
+
- `--lr-subagent-panel-progress-track` — Progress track. Default: `var(--lr-color-border)`.
|
|
16602
|
+
- `--lr-subagent-panel-progress-fill` — Progress fill. Default: `var(--lr-color-brand)`.
|
|
16603
|
+
|
|
15067
16604
|
# Retrieval, knowledge graph & grounding (`components/retrieval/`)
|
|
15068
16605
|
|
|
15069
16606
|
## `lr-graph`
|
|
@@ -15226,9 +16763,9 @@ install with `pnpm add d3-force d3-drag d3-zoom d3-selection`).
|
|
|
15226
16763
|
zoom/drag are still pointer-only with no keyboard equivalent. Links (`<line part="link">`) are now
|
|
15227
16764
|
keyboard-operable too (`tabindex="0"`, `role="button"`, `aria-label`, Enter/Space), matching nodes.
|
|
15228
16765
|
- while the `d3-force`/`d3-drag`/`d3-zoom`/`d3-selection` peers are resolving, the host shows a
|
|
15229
|
-
`<lr-skeleton>` sized to `width`/`height` with `aria-busy="true"
|
|
15230
|
-
|
|
15231
|
-
|
|
16766
|
+
`<lr-skeleton>` sized to `width`/`height` with `aria-busy="true"`. If they fail to load (for
|
|
16767
|
+
example, because they are not installed), the graph fails closed with a localized
|
|
16768
|
+
`part="error"` / `role="alert"` message instead of leaving an empty SVG.
|
|
15232
16769
|
- `GraphNode.color` is sanitized (rejects `;`/`{`/`}`) before being written into the
|
|
15233
16770
|
`--lr-node-fill` inline custom property, so an untrusted color string can't break out of that
|
|
15234
16771
|
CSS declaration.
|
|
@@ -15754,9 +17291,9 @@ fired after every toggle including select-all).
|
|
|
15754
17291
|
|
|
15755
17292
|
**CSS parts:** `base`, `search` (the built-in filter `lr-input`, only when `searchable`),
|
|
15756
17293
|
`select-all` (only when `showSelectAll`), `summary` ("{selected} of {total} selected"), `tree`
|
|
15757
|
-
(`role="tree"`), `item` (`role="treeitem"`), `
|
|
15758
|
-
`lr-file-icon` type badge), `label`, `empty` (`noData`
|
|
15759
|
-
filter empties the tree).
|
|
17294
|
+
(`role="tree"`), `item` (`role="treeitem"`), `disclosure` (a folder row's expand/collapse button),
|
|
17295
|
+
`checkbox` (tri-state glyph), `icon` (the `lr-file-icon` type badge), `label`, `empty` (`noData`
|
|
17296
|
+
when `sources` is empty, `noMatches` when a filter empties the tree).
|
|
15760
17297
|
|
|
15761
17298
|
**Themeable custom properties:** `--lr-source-picker-checked-bg` — the background of a fully-checked
|
|
15762
17299
|
selection control: the `select-all` pill (whose resting default is `var(--lr-color-brand-quiet)`) and
|
|
@@ -15939,6 +17476,11 @@ directly — set instead by the `:host([status=...])` rules), plus shared tokens
|
|
|
15939
17476
|
`--lr-color-surface`, `--lr-color-border`, `--lr-shadow`, `--lr-space-s`/`-m`,
|
|
15940
17477
|
`--lr-transition-fast`, `--lr-focus-ring-*`.
|
|
15941
17478
|
|
|
17479
|
+
> Retheming a badge from outside `<lr-citation-badge>` (e.g. per-source or per-confidence colors)?
|
|
17480
|
+
> Set `--lr-theme-*` on the ancestor wrapper, not `--lr-*` directly — see `llms/shared.md`'s
|
|
17481
|
+
> "Theming and design tokens" section for why a `--lr-*` override on a wrapper only reaches that
|
|
17482
|
+
> wrapper's *direct* children, not a nested `<lr-*>` host's shadow DOM.
|
|
17483
|
+
|
|
15942
17484
|
**Optional peer deps:** none.
|
|
15943
17485
|
|
|
15944
17486
|
```html
|
|
@@ -16000,7 +17542,7 @@ direct light-DOM children of the list (plain composition — no `.items` array p
|
|
|
16000
17542
|
- `labelPlural: string = ''` (attribute `label-plural`) — fully consumer-built, already-pluralized
|
|
16001
17543
|
header summary, e.g. `"3 sources"` or `"1 source"`; this component never counts or pluralizes on
|
|
16002
17544
|
its own. Takes precedence over `label` when both are set. If neither is set, the header falls back
|
|
16003
|
-
to the
|
|
17545
|
+
to the localized `sourceListDefaultLabel` string (English default: `"Sources"`).
|
|
16004
17546
|
|
|
16005
17547
|
**Getters:** `sourceCount: number` — read-only, live-updated count of the currently-slotted children,
|
|
16006
17548
|
handy for building a `label-plural` string reactively, e.g. `` list.labelPlural = `${list.sourceCount} sources` ``.
|
|
@@ -16101,10 +17643,9 @@ forwarding scenarios or engines that don't fire `slotchange` for content already
|
|
|
16101
17643
|
time.
|
|
16102
17644
|
|
|
16103
17645
|
**Known gotchas:**
|
|
16104
|
-
-
|
|
16105
|
-
`
|
|
16106
|
-
`
|
|
16107
|
-
`"Sources"` fallback.
|
|
17646
|
+
- `lr-source-list` does not automatically build an “N sources” plural summary: provide
|
|
17647
|
+
`labelPlural` when that is wanted. Its no-label fallback is localized through
|
|
17648
|
+
`sourceListDefaultLabel`, and a per-instance `.strings` override reaches the rendered header.
|
|
16108
17649
|
- `lr-source-card`'s own expand/collapse (`full` slot, `lr-expand` event) is completely
|
|
16109
17650
|
independent of the parent list's `expanded`/`lr-toggle` — collapsing the list doesn't reset an
|
|
16110
17651
|
individual card's `fullExpanded` state, and there is no cross-talk between the two components at
|
|
@@ -16187,8 +17728,9 @@ and `lr-citation-badge` for each evidence entry.
|
|
|
16187
17728
|
**Properties:**
|
|
16188
17729
|
- `assessment: GroundingAssessment | null = null` (attribute: false) — **`GroundingAssessment`,
|
|
16189
17730
|
imported from `@aceshooting/lyra-ui/ai`** (`src/ai/types.ts`): `{ supportedClaims: number;
|
|
16190
|
-
unsupportedClaims: number; coverage: number; confidence?: number; warnings?: string[]
|
|
16191
|
-
`coverage` and `confidence` are 0–1 fractions. `null` renders
|
|
17731
|
+
unsupportedClaims: number; coverage: number; confidence?: number; warnings?: string[];
|
|
17732
|
+
claims?: GroundedClaim[] }`, where `coverage` and `confidence` are 0–1 fractions. `null` renders
|
|
17733
|
+
the empty state
|
|
16192
17734
|
- `citations: Citation[] = []` (attribute: false) — **`Citation` from `@aceshooting/lyra-ui/ai`**:
|
|
16193
17735
|
`{ id: string; chunkId?: string; sourceId?: string; span?: { start: number; end: number };
|
|
16194
17736
|
label?: string }`. Independent of `assessment`; empty omits the whole evidence section. Each entry
|
|
@@ -16198,8 +17740,10 @@ and `lr-citation-badge` for each evidence entry.
|
|
|
16198
17740
|
`GroundingSummaryThresholds { high: number; medium: number }` (exported here), both 0–1 fractions,
|
|
16199
17741
|
applied to both `coverage` and `confidence`: `>= high` → `success` tone, `>= medium` → `warning`,
|
|
16200
17742
|
below → `danger`
|
|
16201
|
-
- `label: string = ''` — accessible group label
|
|
16202
|
-
localized `groundingSummaryLabel`
|
|
17743
|
+
- `label: string = ''` — accessible group label. A host `aria-label` takes precedence, followed by
|
|
17744
|
+
`label`, then the localized `groundingSummaryLabel`
|
|
17745
|
+
- `showClaims: boolean = true` (attribute `show-claims`) — renders `assessment.claims` through
|
|
17746
|
+
`lr-claim-evidence`; set false to keep the aggregate scorecard only
|
|
16203
17747
|
|
|
16204
17748
|
**Events:** `lr-citation-select` (`detail: CitationSelectEventDetail` from
|
|
16205
17749
|
`@aceshooting/lyra-ui/ai` = `{ citation: Citation }`) — emitted when an evidence badge is activated.
|
|
@@ -16214,7 +17758,8 @@ row), `warnings` (omitted when there are none), `warnings-heading`, `warnings-co
|
|
|
16214
17758
|
`warnings-list` (a `<ul>`), `warning` (one `<li>`), `evidence` (omitted when `citations` is empty),
|
|
16215
17759
|
`evidence-heading`, `evidence-count`, `evidence-item` (badge + always-visible label/span text),
|
|
16216
17760
|
`evidence-label` (omitted when `Citation.label` is unset), `evidence-span` (the formatted
|
|
16217
|
-
`Citation.span` range, omitted when unset), `
|
|
17761
|
+
`Citation.span` range, omitted when unset), `claims` (the composed claim-evidence audit), `empty`
|
|
17762
|
+
(shown when `assessment` is `null`).
|
|
16218
17763
|
|
|
16219
17764
|
**Themeable custom properties:** shared tokens only.
|
|
16220
17765
|
|
|
@@ -16260,8 +17805,10 @@ Both `RetryEventDetail` and `CancelEventDetail` come from `@aceshooting/lyra-ui/
|
|
|
16260
17805
|
per-item stage label), `item-progress`,
|
|
16261
17806
|
`item-chunk-count`, `item-embedding-status` (the "N of M chunks embedded" text, only once both
|
|
16262
17807
|
`chunkCount` and `embeddedChunkCount` are set), `item-attempts` (only once `attempts > 0`),
|
|
16263
|
-
`item-error` (only for `stage="failed"` with `error` set), `
|
|
16264
|
-
|
|
17808
|
+
`item-error` (only for `stage="failed"` with `error` set), `failure-live` (the visually hidden
|
|
17809
|
+
assertive region that announces only failures added or transitioned after mount; historical failed
|
|
17810
|
+
rows remain visible without being re-announced), `item-actions`, `retry-button`, `cancel-button`,
|
|
17811
|
+
`empty`.
|
|
16265
17812
|
|
|
16266
17813
|
In virtualized mode (at or above `virtualizeThreshold`) the rows live in the internal
|
|
16267
17814
|
`lr-virtual-list`'s shadow root, and `item`, `item-header`, `item-name`, `item-progress`,
|
|
@@ -16657,8 +18204,9 @@ fetches, ranks, or computes retrieval results itself.
|
|
|
16657
18204
|
stage whose evidence has none of the three renders no disclosure row at all
|
|
16658
18205
|
- `activeStageId: string | null = null` (attribute `active-stage-id`) — controlled selection,
|
|
16659
18206
|
forwarded verbatim to the internal `lr-span-waterfall`'s `activeSpanId`
|
|
16660
|
-
- `label: string = ''` — accessible name for the timeline
|
|
16661
|
-
the waterfall's own localized default
|
|
18207
|
+
- `label: string = ''` — accessible name for the timeline. A host `aria-label` takes precedence,
|
|
18208
|
+
followed by `label`, then the waterfall's own localized default; late attribute changes and
|
|
18209
|
+
removal update that resolved name
|
|
16662
18210
|
|
|
16663
18211
|
**Events:** `lr-stage-select` (`detail: { id: string }`, a stage's bar was activated — click, Enter,
|
|
16664
18212
|
Space), `lr-stage-toggle` (`detail: { id: string; expanded: boolean }`, an evidence panel was
|
|
@@ -16687,3 +18235,142 @@ falls back to that token, so rendering is unchanged. Plus shared tokens otherwis
|
|
|
16687
18235
|
**Known gotchas:**
|
|
16688
18236
|
- Every stage starts collapsed; expansion state is internal `@state` keyed by stage id, not a
|
|
16689
18237
|
controlled property.
|
|
18238
|
+
|
|
18239
|
+
## `lr-rag-answer`
|
|
18240
|
+
|
|
18241
|
+
Controlled grounded-answer surface combining sanitized Markdown, citation badges, grounding
|
|
18242
|
+
assessment, and expandable source previews. It performs no model call, retrieval, citation parsing,
|
|
18243
|
+
or source fetching.
|
|
18244
|
+
|
|
18245
|
+
**Properties:** `answer: string = ''`; `citations: Citation[] = []` (attribute: false);
|
|
18246
|
+
`sources: DocumentRef[] = []` (attribute: false); `assessment: GroundingAssessment | null = null`
|
|
18247
|
+
(attribute: false); `loading: boolean = false`; `error: string = ''`; `showSources: boolean = true`;
|
|
18248
|
+
`showClaims: boolean = true` (attribute `show-claims`); `label: string = ''`; `accessibleLabel:
|
|
18249
|
+
string | null = null` (attribute `aria-label`).
|
|
18250
|
+
|
|
18251
|
+
**Events:** `lr-citation-select` (`{ citation }`), `lr-claim-select` (`{ claim }`), and `lr-retry`.
|
|
18252
|
+
|
|
18253
|
+
**Slots:** `answer` replaces the data-driven Markdown body; `sources` replaces the data-driven
|
|
18254
|
+
source list.
|
|
18255
|
+
|
|
18256
|
+
**CSS parts:** `base`, `answer`, `loading`, `error`, `retry`, `grounding`, `citations`,
|
|
18257
|
+
`citation-list`, `sources`, `source-list`, `section-heading`.
|
|
18258
|
+
|
|
18259
|
+
## `lr-embedding-explorer`
|
|
18260
|
+
|
|
18261
|
+
Dependency-free accessible 2D embedding projection viewer. Coordinates are projected by the host;
|
|
18262
|
+
the component only normalizes them into SVG, colors optional clusters, and emits selection events.
|
|
18263
|
+
|
|
18264
|
+
**Properties:** `points: EmbeddingPoint[] = []` (attribute: false), where each point is `{ id, x,
|
|
18265
|
+
y, label?, sourceId?, cluster? }`; `selectedId: string = ''`; `height: string = '360px'`;
|
|
18266
|
+
`accessibleLabel: string | null = null` (attribute `aria-label`). Non-finite coordinates are
|
|
18267
|
+
omitted.
|
|
18268
|
+
|
|
18269
|
+
**Events:** `lr-point-select` (`{ point }`), activated by click or Enter/Space.
|
|
18270
|
+
|
|
18271
|
+
**CSS parts:** `base`, `plot`, `point`, `empty`.
|
|
18272
|
+
|
|
18273
|
+
**Themeable custom properties:** `--lr-embedding-explorer-selected-stroke` (default
|
|
18274
|
+
`var(--lr-color-brand)`) — stroke color of the selected point. Plus shared tokens.
|
|
18275
|
+
|
|
18276
|
+
## `lr-knowledge-base-admin`
|
|
18277
|
+
|
|
18278
|
+
Tabbed operations shell composing `lr-knowledge-base` and `lr-ingestion-queue`. It forwards source
|
|
18279
|
+
and ingestion actions under namespaced events; host-owned controls such as chunking, embedding,
|
|
18280
|
+
permissions, and connector settings go in the `settings` slot.
|
|
18281
|
+
|
|
18282
|
+
**Properties:** `sources: KnowledgeSource[] = []` (attribute: false); `ingestionItems:
|
|
18283
|
+
IngestionQueueItem[] = []` (attribute: false); `activeTab: 'sources' | 'ingestion' = 'sources'`;
|
|
18284
|
+
`label: string = ''`; `hideIngestion: boolean = false`.
|
|
18285
|
+
|
|
18286
|
+
**Events:** `lr-tab-change` (`{ tab }`), `lr-source-create`, `lr-source-sync`, `lr-source-pause`,
|
|
18287
|
+
`lr-source-delete`, `lr-ingestion-retry`, and `lr-ingestion-cancel` (the latter four preserve the
|
|
18288
|
+
correlated ids/details from their composed primitives).
|
|
18289
|
+
|
|
18290
|
+
**Slots:** `settings` — host-owned KB configuration controls.
|
|
18291
|
+
|
|
18292
|
+
**CSS parts:** `base`, `heading`, `tabs`, `tab`, `panel`, `settings`.
|
|
18293
|
+
|
|
18294
|
+
## `lr-claim-evidence`
|
|
18295
|
+
|
|
18296
|
+
Controlled claim-by-claim grounding audit relating `GroundedClaim[]` to complete `Citation[]`
|
|
18297
|
+
records. Dangling citation ids are ignored rather than rendered as invented evidence.
|
|
18298
|
+
|
|
18299
|
+
**Properties:** `claims: GroundedClaim[] = []` and `citations: Citation[] = []` (attribute: false);
|
|
18300
|
+
`selectedClaimId: string = ''` (attribute `selected-claim-id`); `label: string = ''`.
|
|
18301
|
+
`GroundedClaim = { id, text, status, citationIds, answerRange?, confidence?, explanation? }`, with
|
|
18302
|
+
`status: 'supported' | 'partially-supported' | 'unsupported' | 'contradicted'`. Claim confidence
|
|
18303
|
+
is clamped to 0–1 for localized percent display. `Citation` is the shared AI citation record
|
|
18304
|
+
(`id`, source/chunk ids, label, locator/ranges, quote, metadata).
|
|
18305
|
+
|
|
18306
|
+
**Events:** `lr-claim-select` (`{ claim }`), `lr-citation-select` (`{ citation }`).
|
|
18307
|
+
|
|
18308
|
+
**CSS parts:** `base`, `list`, `claim`, `claim-selected`, `claim-trigger`, `status`, `claim-text`,
|
|
18309
|
+
`confidence`, `explanation`, `evidence`, `empty`.
|
|
18310
|
+
|
|
18311
|
+
Selection is controlled: activation emits the complete claim but does not assign
|
|
18312
|
+
`selectedClaimId`. Evidence preserves `citations` order and silently skips dangling ids.
|
|
18313
|
+
**Slots:** none. **Optional peer deps:** none.
|
|
18314
|
+
|
|
18315
|
+
```ts
|
|
18316
|
+
import '@aceshooting/lyra-ui/components/retrieval/claim-evidence/claim-evidence.js';
|
|
18317
|
+
```
|
|
18318
|
+
|
|
18319
|
+
## `lr-retrieval-compare`
|
|
18320
|
+
|
|
18321
|
+
Side-by-side retrieval/reranking workbench showing effective rank, top-k Jaccard overlap, and
|
|
18322
|
+
dense/sparse/rerank/final score breakdowns.
|
|
18323
|
+
|
|
18324
|
+
**Properties:** `sets: RetrievalComparisonSet[] = []` (attribute: false), where
|
|
18325
|
+
`RetrievalComparisonSet = { id: string; label: string; chunks: RetrievalChunk[] }`;
|
|
18326
|
+
`topK: number = 10` (attribute `top-k`, finite integer with minimum 1);
|
|
18327
|
+
`selectedChunkId: string = ''` (attribute `selected-chunk-id`); `label: string = ''`.
|
|
18328
|
+
`RetrievalChunk` is the shared AI record carrying id/text/score/source plus optional rank, locator,
|
|
18329
|
+
trace metadata, and `scores?: { dense?, sparse?, rerank?, final }`.
|
|
18330
|
+
|
|
18331
|
+
**Events:** `lr-chunk-select` (`{ setId, chunk }`).
|
|
18332
|
+
|
|
18333
|
+
**CSS parts:** `base`, `overlap`, `sets`, `set`, `set-heading`, `chunks`, `chunk`,
|
|
18334
|
+
`chunk-selected`, `chunk-rank`, `chunk-title`, `chunk-text`, `scores`, `score`, `empty`.
|
|
18335
|
+
|
|
18336
|
+
Chunks are ordered by effective rank, then score, then input order before the top-k slice. Overlap
|
|
18337
|
+
is pairwise Jaccard similarity across those visible chunk ids. Selection is controlled.
|
|
18338
|
+
**Slots:** none. **Optional peer deps:** none.
|
|
18339
|
+
|
|
18340
|
+
```ts
|
|
18341
|
+
import '@aceshooting/lyra-ui/components/retrieval/retrieval-compare/retrieval-compare.js';
|
|
18342
|
+
```
|
|
18343
|
+
|
|
18344
|
+
## `lr-rag-eval-dashboard`
|
|
18345
|
+
|
|
18346
|
+
Controlled RAG evaluation overview with latest metric cards, per-metric trends, evaluation slices,
|
|
18347
|
+
and run history. The host computes metrics and owns evaluation execution.
|
|
18348
|
+
|
|
18349
|
+
**Properties:** `metrics: RagEvaluationMetric[] = []` and `runs: RagEvaluationRun[] = []`
|
|
18350
|
+
(attribute: false); `metricId: string = ''` (attribute `metric-id`, with the first metric used for
|
|
18351
|
+
display when unset/unmatched); `slice: string = ''`; `label: string = ''`;
|
|
18352
|
+
`showChart: boolean = true` (attribute `show-chart`, reflected, string-aware true-default
|
|
18353
|
+
converter); `chartHeight: string = '220px'` (attribute `chart-height`).
|
|
18354
|
+
|
|
18355
|
+
`RagEvaluationMetric = { id, label, category, format? }`, where category is
|
|
18356
|
+
`'retrieval' | 'generation' | 'system' | custom-string` and format is `'number' | 'percent'`.
|
|
18357
|
+
`RagEvaluationRun = { id, label, metrics: Record<string, number>; slice?, timestamp?, metadata? }`.
|
|
18358
|
+
|
|
18359
|
+
**Events:** `lr-metric-change` (`{ metricId }`), `lr-slice-change` (`{ slice }`), and
|
|
18360
|
+
`lr-run-select` (`{ run }`). All are controlled intents; the component does not mutate the
|
|
18361
|
+
corresponding selection properties.
|
|
18362
|
+
|
|
18363
|
+
**CSS parts:** `base`, `heading`, `slices`, `slice`, `slice-selected`, `metrics`, `metric`,
|
|
18364
|
+
`metric-selected`, `chart`, `runs`, `runs-heading`, `run`, `empty`.
|
|
18365
|
+
|
|
18366
|
+
Percent values clamp to 0–1 and all numbers use `effectiveLocale`. The chart is built from the
|
|
18367
|
+
filtered run order; the host computes every metric and owns evaluation execution.
|
|
18368
|
+
**Slots:** none. **Optional peer deps:** none.
|
|
18369
|
+
|
|
18370
|
+
```ts
|
|
18371
|
+
import '@aceshooting/lyra-ui/components/retrieval/rag-eval-dashboard/rag-eval-dashboard.js';
|
|
18372
|
+
```
|
|
18373
|
+
|
|
18374
|
+
`lr-grounding-summary` and `lr-rag-answer` now accept `GroundingAssessment.claims` and expose
|
|
18375
|
+
`showClaims: boolean = true`; `lr-retrieval-results` forwards `RetrievalChunk.locator` as the
|
|
18376
|
+
document-viewer-compatible `anchor` in `lr-chunk-open`.
|