@aceshooting/lyra-ui 6.1.0 → 6.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +140 -0
- package/README.md +10 -5
- package/custom-elements.json +7947 -860
- package/dist/components/agent-tools/agent-eval-dashboard/agent-eval-dashboard.class.d.ts +67 -0
- package/dist/components/agent-tools/agent-eval-dashboard/agent-eval-dashboard.class.d.ts.map +1 -0
- package/dist/components/agent-tools/agent-eval-dashboard/agent-eval-dashboard.class.js +78 -0
- package/dist/components/agent-tools/agent-eval-dashboard/agent-eval-dashboard.class.js.map +1 -0
- package/dist/components/agent-tools/agent-eval-dashboard/agent-eval-dashboard.d.ts +2 -0
- package/dist/components/agent-tools/agent-eval-dashboard/agent-eval-dashboard.d.ts.map +1 -0
- package/dist/components/agent-tools/agent-eval-dashboard/agent-eval-dashboard.js +5 -0
- package/dist/components/agent-tools/agent-eval-dashboard/agent-eval-dashboard.js.map +1 -0
- package/dist/components/agent-tools/agent-eval-dashboard/agent-eval-dashboard.styles.d.ts +2 -0
- package/dist/components/agent-tools/agent-eval-dashboard/agent-eval-dashboard.styles.d.ts.map +1 -0
- package/dist/components/agent-tools/agent-eval-dashboard/agent-eval-dashboard.styles.js +17 -0
- package/dist/components/agent-tools/agent-eval-dashboard/agent-eval-dashboard.styles.js.map +1 -0
- package/dist/components/agent-tools/agent-trace/agent-trace.class.js +1 -1
- package/dist/components/agent-tools/agent-trace/agent-trace.class.js.map +1 -1
- package/dist/components/agent-tools/agent-trace/agent-trace.styles.d.ts.map +1 -1
- package/dist/components/agent-tools/agent-trace/agent-trace.styles.js +2 -0
- package/dist/components/agent-tools/agent-trace/agent-trace.styles.js.map +1 -1
- package/dist/components/agent-tools/approval-queue/approval-queue.class.d.ts +77 -0
- package/dist/components/agent-tools/approval-queue/approval-queue.class.d.ts.map +1 -0
- package/dist/components/agent-tools/approval-queue/approval-queue.class.js +144 -0
- package/dist/components/agent-tools/approval-queue/approval-queue.class.js.map +1 -0
- package/dist/components/agent-tools/approval-queue/approval-queue.d.ts +2 -0
- package/dist/components/agent-tools/approval-queue/approval-queue.d.ts.map +1 -0
- package/dist/components/agent-tools/approval-queue/approval-queue.js +5 -0
- package/dist/components/agent-tools/approval-queue/approval-queue.js.map +1 -0
- package/dist/components/agent-tools/approval-queue/approval-queue.styles.d.ts +2 -0
- package/dist/components/agent-tools/approval-queue/approval-queue.styles.d.ts.map +1 -0
- package/dist/components/agent-tools/approval-queue/approval-queue.styles.js +96 -0
- package/dist/components/agent-tools/approval-queue/approval-queue.styles.js.map +1 -0
- package/dist/components/agent-tools/confirm-bar/confirm-bar.class.js +2 -2
- package/dist/components/agent-tools/confirm-bar/confirm-bar.class.js.map +1 -1
- package/dist/components/agent-tools/context-inspector/context-inspector.class.d.ts +1 -0
- package/dist/components/agent-tools/context-inspector/context-inspector.class.d.ts.map +1 -1
- package/dist/components/agent-tools/context-inspector/context-inspector.class.js +4 -1
- package/dist/components/agent-tools/context-inspector/context-inspector.class.js.map +1 -1
- package/dist/components/agent-tools/evaluation-run/evaluation-run.class.js +1 -1
- package/dist/components/agent-tools/evaluation-run/evaluation-run.class.js.map +1 -1
- package/dist/components/agent-tools/span-waterfall/span-waterfall.class.d.ts.map +1 -1
- package/dist/components/agent-tools/span-waterfall/span-waterfall.class.js +10 -8
- package/dist/components/agent-tools/span-waterfall/span-waterfall.class.js.map +1 -1
- package/dist/components/agent-tools/stack-trace/stack-trace.class.js +1 -1
- package/dist/components/agent-tools/stack-trace/stack-trace.class.js.map +1 -1
- package/dist/components/agent-tools/terminal/terminal.class.js +1 -1
- package/dist/components/agent-tools/terminal/terminal.class.js.map +1 -1
- package/dist/components/agent-tools/thinking-panel/thinking-panel.class.d.ts.map +1 -1
- package/dist/components/agent-tools/thinking-panel/thinking-panel.class.js +11 -5
- package/dist/components/agent-tools/thinking-panel/thinking-panel.class.js.map +1 -1
- package/dist/components/agent-tools/tool-call-chip/tool-call-chip.class.js +1 -1
- package/dist/components/agent-tools/tool-call-chip/tool-call-chip.class.js.map +1 -1
- package/dist/components/agent-tools/tool-result-view/registry.d.ts +38 -1
- package/dist/components/agent-tools/tool-result-view/registry.d.ts.map +1 -1
- package/dist/components/agent-tools/tool-result-view/registry.js.map +1 -1
- package/dist/components/agent-tools/tool-result-view/tool-result-view.class.d.ts +16 -1
- package/dist/components/agent-tools/tool-result-view/tool-result-view.class.d.ts.map +1 -1
- package/dist/components/agent-tools/tool-result-view/tool-result-view.class.js +32 -1
- package/dist/components/agent-tools/tool-result-view/tool-result-view.class.js.map +1 -1
- package/dist/components/agent-tools/trace-tree/trace-tree.class.d.ts.map +1 -1
- package/dist/components/agent-tools/trace-tree/trace-tree.class.js +21 -10
- package/dist/components/agent-tools/trace-tree/trace-tree.class.js.map +1 -1
- package/dist/components/charts/chart/box-plot.class.d.ts +4 -0
- package/dist/components/charts/chart/box-plot.class.d.ts.map +1 -1
- package/dist/components/charts/chart/box-plot.class.js +43 -11
- package/dist/components/charts/chart/box-plot.class.js.map +1 -1
- package/dist/components/charts/chart/chart-loader.d.ts +39 -0
- package/dist/components/charts/chart/chart-loader.d.ts.map +1 -1
- package/dist/components/charts/chart/chart-loader.js +53 -0
- package/dist/components/charts/chart/chart-loader.js.map +1 -1
- package/dist/components/charts/chart/chart.class.d.ts +113 -10
- package/dist/components/charts/chart/chart.class.d.ts.map +1 -1
- package/dist/components/charts/chart/chart.class.js +293 -20
- package/dist/components/charts/chart/chart.class.js.map +1 -1
- package/dist/components/charts/chart/lite-chart.class.d.ts +17 -5
- package/dist/components/charts/chart/lite-chart.class.d.ts.map +1 -1
- package/dist/components/charts/chart/lite-chart.class.js +60 -9
- package/dist/components/charts/chart/lite-chart.class.js.map +1 -1
- package/dist/components/conversation/agent-workspace/agent-workspace.class.d.ts +4 -0
- package/dist/components/conversation/agent-workspace/agent-workspace.class.d.ts.map +1 -1
- package/dist/components/conversation/agent-workspace/agent-workspace.class.js +17 -4
- package/dist/components/conversation/agent-workspace/agent-workspace.class.js.map +1 -1
- package/dist/components/conversation/audio-visualizer/audio-visualizer.class.d.ts +2 -7
- package/dist/components/conversation/audio-visualizer/audio-visualizer.class.d.ts.map +1 -1
- package/dist/components/conversation/audio-visualizer/audio-visualizer.class.js +29 -58
- package/dist/components/conversation/audio-visualizer/audio-visualizer.class.js.map +1 -1
- package/dist/components/conversation/code-block/code-block-core.class.d.ts.map +1 -1
- package/dist/components/conversation/code-block/code-block-core.class.js +12 -1
- package/dist/components/conversation/code-block/code-block-core.class.js.map +1 -1
- package/dist/components/conversation/code-block/code-block.class.d.ts.map +1 -1
- package/dist/components/conversation/code-block/code-block.class.js +3 -0
- package/dist/components/conversation/code-block/code-block.class.js.map +1 -1
- package/dist/components/conversation/conversation-item/conversation-item.class.d.ts +7 -0
- package/dist/components/conversation/conversation-item/conversation-item.class.d.ts.map +1 -1
- package/dist/components/conversation/conversation-item/conversation-item.class.js +8 -0
- package/dist/components/conversation/conversation-item/conversation-item.class.js.map +1 -1
- package/dist/components/conversation/conversation-item/conversation-item.styles.d.ts.map +1 -1
- package/dist/components/conversation/conversation-item/conversation-item.styles.js +12 -0
- package/dist/components/conversation/conversation-item/conversation-item.styles.js.map +1 -1
- package/dist/components/conversation/markdown/markdown-core.class.d.ts.map +1 -1
- package/dist/components/conversation/markdown/markdown-core.class.js +2 -1
- package/dist/components/conversation/markdown/markdown-core.class.js.map +1 -1
- package/dist/components/conversation/markdown/markdown.class.d.ts.map +1 -1
- package/dist/components/conversation/markdown/markdown.class.js +2 -1
- package/dist/components/conversation/markdown/markdown.class.js.map +1 -1
- package/dist/components/conversation/message-actions/message-actions.class.d.ts.map +1 -1
- package/dist/components/conversation/message-actions/message-actions.class.js +5 -2
- package/dist/components/conversation/message-actions/message-actions.class.js.map +1 -1
- package/dist/components/conversation/model-select/model-select.class.d.ts +4 -0
- package/dist/components/conversation/model-select/model-select.class.d.ts.map +1 -1
- package/dist/components/conversation/model-select/model-select.class.js +4 -0
- package/dist/components/conversation/model-select/model-select.class.js.map +1 -1
- package/dist/components/conversation/model-select/model-select.styles.d.ts.map +1 -1
- package/dist/components/conversation/model-select/model-select.styles.js +7 -3
- package/dist/components/conversation/model-select/model-select.styles.js.map +1 -1
- package/dist/components/conversation/thread-list/thread-list.class.d.ts +2 -0
- package/dist/components/conversation/thread-list/thread-list.class.d.ts.map +1 -1
- package/dist/components/conversation/thread-list/thread-list.class.js +4 -2
- package/dist/components/conversation/thread-list/thread-list.class.js.map +1 -1
- package/dist/components/conversation/typing-indicator/typing-indicator.class.d.ts +4 -2
- package/dist/components/conversation/typing-indicator/typing-indicator.class.d.ts.map +1 -1
- package/dist/components/conversation/typing-indicator/typing-indicator.class.js +4 -2
- package/dist/components/conversation/typing-indicator/typing-indicator.class.js.map +1 -1
- package/dist/components/conversation/typing-indicator/typing-indicator.styles.d.ts.map +1 -1
- package/dist/components/conversation/typing-indicator/typing-indicator.styles.js +35 -21
- package/dist/components/conversation/typing-indicator/typing-indicator.styles.js.map +1 -1
- package/dist/components/data/graph-query-builder/graph-query-builder.styles.d.ts.map +1 -1
- package/dist/components/data/graph-query-builder/graph-query-builder.styles.js +2 -0
- package/dist/components/data/graph-query-builder/graph-query-builder.styles.js.map +1 -1
- package/dist/components/data/heatmap/heatmap.class.d.ts +1 -6
- package/dist/components/data/heatmap/heatmap.class.d.ts.map +1 -1
- package/dist/components/data/heatmap/heatmap.class.js +118 -136
- package/dist/components/data/heatmap/heatmap.class.js.map +1 -1
- package/dist/components/data/table/table.class.d.ts +27 -0
- package/dist/components/data/table/table.class.d.ts.map +1 -1
- package/dist/components/data/table/table.class.js +67 -2
- package/dist/components/data/table/table.class.js.map +1 -1
- package/dist/components/data/table/table.styles.d.ts.map +1 -1
- package/dist/components/data/table/table.styles.js +17 -2
- package/dist/components/data/table/table.styles.js.map +1 -1
- package/dist/components/data/tree/tree.class.d.ts +16 -1
- package/dist/components/data/tree/tree.class.d.ts.map +1 -1
- package/dist/components/data/tree/tree.class.js.map +1 -1
- package/dist/components/data/word-cloud/word-cloud.class.d.ts +17 -0
- package/dist/components/data/word-cloud/word-cloud.class.d.ts.map +1 -1
- package/dist/components/data/word-cloud/word-cloud.class.js +43 -0
- package/dist/components/data/word-cloud/word-cloud.class.js.map +1 -1
- package/dist/components/data/word-cloud/word-cloud.styles.d.ts.map +1 -1
- package/dist/components/data/word-cloud/word-cloud.styles.js +18 -15
- package/dist/components/data/word-cloud/word-cloud.styles.js.map +1 -1
- package/dist/components/forms/button/button.class.d.ts +51 -7
- package/dist/components/forms/button/button.class.d.ts.map +1 -1
- package/dist/components/forms/button/button.class.js +102 -15
- package/dist/components/forms/button/button.class.js.map +1 -1
- package/dist/components/forms/button/button.styles.d.ts.map +1 -1
- package/dist/components/forms/button/button.styles.js +12 -4
- package/dist/components/forms/button/button.styles.js.map +1 -1
- package/dist/components/forms/checkbox/checkbox.class.d.ts +3 -0
- package/dist/components/forms/checkbox/checkbox.class.d.ts.map +1 -1
- package/dist/components/forms/checkbox/checkbox.class.js +19 -2
- package/dist/components/forms/checkbox/checkbox.class.js.map +1 -1
- package/dist/components/forms/combobox/combobox.class.d.ts +61 -10
- package/dist/components/forms/combobox/combobox.class.d.ts.map +1 -1
- package/dist/components/forms/combobox/combobox.class.js +62 -17
- 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 +7 -3
- package/dist/components/forms/combobox/combobox.styles.js.map +1 -1
- package/dist/components/forms/date-picker/date-input.styles.js +1 -1
- package/dist/components/forms/emoji-picker/emoji-picker.styles.d.ts.map +1 -1
- package/dist/components/forms/emoji-picker/emoji-picker.styles.js +4 -5
- package/dist/components/forms/emoji-picker/emoji-picker.styles.js.map +1 -1
- package/dist/components/forms/icon-button/icon-button.class.d.ts +3 -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 +3 -0
- 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 +25 -1
- package/dist/components/forms/input/input.class.d.ts.map +1 -1
- package/dist/components/forms/input/input.class.js +51 -4
- package/dist/components/forms/input/input.class.js.map +1 -1
- package/dist/components/forms/select/select.class.d.ts +23 -4
- package/dist/components/forms/select/select.class.d.ts.map +1 -1
- package/dist/components/forms/select/select.class.js +24 -8
- 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/swatch-picker/swatch-picker.class.d.ts +16 -0
- package/dist/components/forms/swatch-picker/swatch-picker.class.d.ts.map +1 -1
- package/dist/components/forms/swatch-picker/swatch-picker.class.js +22 -4
- package/dist/components/forms/swatch-picker/swatch-picker.class.js.map +1 -1
- package/dist/components/forms/swatch-picker/swatch-picker.styles.d.ts.map +1 -1
- package/dist/components/forms/swatch-picker/swatch-picker.styles.js +31 -4
- package/dist/components/forms/swatch-picker/swatch-picker.styles.js.map +1 -1
- package/dist/components/forms/textarea/textarea.class.d.ts +30 -0
- package/dist/components/forms/textarea/textarea.class.d.ts.map +1 -1
- package/dist/components/forms/textarea/textarea.class.js +54 -0
- package/dist/components/forms/textarea/textarea.class.js.map +1 -1
- package/dist/components/forms/token-input/token-input.styles.d.ts.map +1 -1
- package/dist/components/forms/token-input/token-input.styles.js +6 -1
- package/dist/components/forms/token-input/token-input.styles.js.map +1 -1
- package/dist/components/layout/app-rail/app-rail.class.d.ts +16 -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 +36 -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/card/card.class.d.ts +6 -0
- package/dist/components/layout/card/card.class.d.ts.map +1 -1
- package/dist/components/layout/card/card.class.js +9 -1
- package/dist/components/layout/card/card.class.js.map +1 -1
- package/dist/components/layout/dashboard-grid/dashboard-grid.styles.d.ts.map +1 -1
- package/dist/components/layout/dashboard-grid/dashboard-grid.styles.js +2 -0
- package/dist/components/layout/dashboard-grid/dashboard-grid.styles.js.map +1 -1
- package/dist/components/layout/segmented/segmented.class.d.ts +10 -1
- package/dist/components/layout/segmented/segmented.class.d.ts.map +1 -1
- package/dist/components/layout/segmented/segmented.class.js +29 -2
- package/dist/components/layout/segmented/segmented.class.js.map +1 -1
- package/dist/components/layout/split/split.class.d.ts +14 -3
- package/dist/components/layout/split/split.class.d.ts.map +1 -1
- package/dist/components/layout/split/split.class.js +65 -35
- package/dist/components/layout/split/split.class.js.map +1 -1
- package/dist/components/layout/widget/widget.class.d.ts +10 -0
- package/dist/components/layout/widget/widget.class.d.ts.map +1 -1
- package/dist/components/layout/widget/widget.class.js +29 -1
- package/dist/components/layout/widget/widget.class.js.map +1 -1
- package/dist/components/media/attachment-chip/attachment-chip.styles.d.ts.map +1 -1
- package/dist/components/media/attachment-chip/attachment-chip.styles.js +7 -8
- package/dist/components/media/attachment-chip/attachment-chip.styles.js.map +1 -1
- package/dist/components/media/file-input/file-input.class.d.ts +16 -1
- package/dist/components/media/file-input/file-input.class.d.ts.map +1 -1
- package/dist/components/media/file-input/file-input.class.js +42 -2
- package/dist/components/media/file-input/file-input.class.js.map +1 -1
- package/dist/components/media/file-input/file-input.styles.d.ts.map +1 -1
- package/dist/components/media/file-input/file-input.styles.js +12 -0
- package/dist/components/media/file-input/file-input.styles.js.map +1 -1
- package/dist/components/media/media-card/media-card.class.d.ts +6 -2
- package/dist/components/media/media-card/media-card.class.d.ts.map +1 -1
- package/dist/components/media/media-card/media-card.class.js +7 -3
- package/dist/components/media/media-card/media-card.class.js.map +1 -1
- package/dist/components/media/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/overlays/empty/empty.class.d.ts +3 -0
- package/dist/components/overlays/empty/empty.class.d.ts.map +1 -1
- package/dist/components/overlays/empty/empty.class.js +3 -0
- package/dist/components/overlays/empty/empty.class.js.map +1 -1
- package/dist/components/overlays/empty/empty.styles.d.ts.map +1 -1
- package/dist/components/overlays/empty/empty.styles.js +6 -0
- package/dist/components/overlays/empty/empty.styles.js.map +1 -1
- package/dist/components/overlays/overlay/popover.class.d.ts +9 -0
- package/dist/components/overlays/overlay/popover.class.d.ts.map +1 -1
- package/dist/components/overlays/overlay/popover.class.js +13 -0
- package/dist/components/overlays/overlay/popover.class.js.map +1 -1
- package/dist/components/retrieval/chunk-inspector/chunk-inspector.class.d.ts +1 -0
- package/dist/components/retrieval/chunk-inspector/chunk-inspector.class.d.ts.map +1 -1
- package/dist/components/retrieval/chunk-inspector/chunk-inspector.class.js +11 -5
- package/dist/components/retrieval/chunk-inspector/chunk-inspector.class.js.map +1 -1
- package/dist/components/retrieval/embedding-explorer/embedding-explorer.class.d.ts +54 -0
- package/dist/components/retrieval/embedding-explorer/embedding-explorer.class.d.ts.map +1 -0
- package/dist/components/retrieval/embedding-explorer/embedding-explorer.class.js +147 -0
- package/dist/components/retrieval/embedding-explorer/embedding-explorer.class.js.map +1 -0
- package/dist/components/retrieval/embedding-explorer/embedding-explorer.d.ts +2 -0
- package/dist/components/retrieval/embedding-explorer/embedding-explorer.d.ts.map +1 -0
- package/dist/components/retrieval/embedding-explorer/embedding-explorer.js +5 -0
- package/dist/components/retrieval/embedding-explorer/embedding-explorer.js.map +1 -0
- package/dist/components/retrieval/embedding-explorer/embedding-explorer.styles.d.ts +2 -0
- package/dist/components/retrieval/embedding-explorer/embedding-explorer.styles.d.ts.map +1 -0
- package/dist/components/retrieval/embedding-explorer/embedding-explorer.styles.js +51 -0
- package/dist/components/retrieval/embedding-explorer/embedding-explorer.styles.js.map +1 -0
- package/dist/components/retrieval/graph/graph.class.d.ts +1 -0
- package/dist/components/retrieval/graph/graph.class.d.ts.map +1 -1
- package/dist/components/retrieval/graph/graph.class.js +21 -6
- package/dist/components/retrieval/graph/graph.class.js.map +1 -1
- package/dist/components/retrieval/knowledge-base-admin/knowledge-base-admin.class.d.ts +73 -0
- package/dist/components/retrieval/knowledge-base-admin/knowledge-base-admin.class.d.ts.map +1 -0
- package/dist/components/retrieval/knowledge-base-admin/knowledge-base-admin.class.js +109 -0
- package/dist/components/retrieval/knowledge-base-admin/knowledge-base-admin.class.js.map +1 -0
- package/dist/components/retrieval/knowledge-base-admin/knowledge-base-admin.d.ts +2 -0
- package/dist/components/retrieval/knowledge-base-admin/knowledge-base-admin.d.ts.map +1 -0
- package/dist/components/retrieval/knowledge-base-admin/knowledge-base-admin.js +5 -0
- package/dist/components/retrieval/knowledge-base-admin/knowledge-base-admin.js.map +1 -0
- package/dist/components/retrieval/knowledge-base-admin/knowledge-base-admin.styles.d.ts +2 -0
- package/dist/components/retrieval/knowledge-base-admin/knowledge-base-admin.styles.d.ts.map +1 -0
- package/dist/components/retrieval/knowledge-base-admin/knowledge-base-admin.styles.js +56 -0
- package/dist/components/retrieval/knowledge-base-admin/knowledge-base-admin.styles.js.map +1 -0
- package/dist/components/retrieval/knowledge-graph-explorer/knowledge-graph-explorer.class.d.ts +1 -0
- package/dist/components/retrieval/knowledge-graph-explorer/knowledge-graph-explorer.class.d.ts.map +1 -1
- package/dist/components/retrieval/knowledge-graph-explorer/knowledge-graph-explorer.class.js +12 -4
- package/dist/components/retrieval/knowledge-graph-explorer/knowledge-graph-explorer.class.js.map +1 -1
- package/dist/components/retrieval/rag-answer/rag-answer.class.d.ts +58 -0
- package/dist/components/retrieval/rag-answer/rag-answer.class.d.ts.map +1 -0
- package/dist/components/retrieval/rag-answer/rag-answer.class.js +110 -0
- package/dist/components/retrieval/rag-answer/rag-answer.class.js.map +1 -0
- package/dist/components/retrieval/rag-answer/rag-answer.d.ts +2 -0
- package/dist/components/retrieval/rag-answer/rag-answer.d.ts.map +1 -0
- package/dist/components/retrieval/rag-answer/rag-answer.js +5 -0
- package/dist/components/retrieval/rag-answer/rag-answer.js.map +1 -0
- package/dist/components/retrieval/rag-answer/rag-answer.styles.d.ts +2 -0
- package/dist/components/retrieval/rag-answer/rag-answer.styles.d.ts.map +1 -0
- package/dist/components/retrieval/rag-answer/rag-answer.styles.js +13 -0
- package/dist/components/retrieval/rag-answer/rag-answer.styles.js.map +1 -0
- package/dist/components/retrieval/retrieval-results/retrieval-results.class.d.ts.map +1 -1
- package/dist/components/retrieval/retrieval-results/retrieval-results.class.js +6 -3
- package/dist/components/retrieval/retrieval-results/retrieval-results.class.js.map +1 -1
- package/dist/components/utility/diff-view/diff-view.class.d.ts +4 -2
- package/dist/components/utility/diff-view/diff-view.class.d.ts.map +1 -1
- package/dist/components/utility/diff-view/diff-view.class.js +16 -6
- package/dist/components/utility/diff-view/diff-view.class.js.map +1 -1
- package/dist/components/utility/icon/icon.class.d.ts.map +1 -1
- package/dist/components/utility/icon/icon.class.js +5 -0
- package/dist/components/utility/icon/icon.class.js.map +1 -1
- package/dist/components/viewers/archive-viewer/archive-viewer.class.d.ts +16 -2
- package/dist/components/viewers/archive-viewer/archive-viewer.class.d.ts.map +1 -1
- package/dist/components/viewers/archive-viewer/archive-viewer.class.js +14 -4
- package/dist/components/viewers/archive-viewer/archive-viewer.class.js.map +1 -1
- package/dist/components/viewers/calendar-viewer/calendar-viewer.class.d.ts +14 -2
- package/dist/components/viewers/calendar-viewer/calendar-viewer.class.d.ts.map +1 -1
- package/dist/components/viewers/calendar-viewer/calendar-viewer.class.js +10 -2
- package/dist/components/viewers/calendar-viewer/calendar-viewer.class.js.map +1 -1
- package/dist/components/viewers/contact-viewer/contact-viewer.class.d.ts +14 -2
- package/dist/components/viewers/contact-viewer/contact-viewer.class.d.ts.map +1 -1
- package/dist/components/viewers/contact-viewer/contact-viewer.class.js +10 -2
- package/dist/components/viewers/contact-viewer/contact-viewer.class.js.map +1 -1
- package/dist/components/viewers/document-preview/document-preview.class.js +2 -2
- package/dist/components/viewers/document-preview/document-preview.class.js.map +1 -1
- package/dist/components/viewers/document-viewer/document-viewer.class.js +2 -2
- package/dist/components/viewers/document-viewer/document-viewer.class.js.map +1 -1
- package/dist/components/viewers/email-viewer/email-viewer.class.d.ts +14 -2
- package/dist/components/viewers/email-viewer/email-viewer.class.d.ts.map +1 -1
- package/dist/components/viewers/email-viewer/email-viewer.class.js +10 -2
- package/dist/components/viewers/email-viewer/email-viewer.class.js.map +1 -1
- package/dist/components/viewers/geojson-view/geojson-view.class.d.ts +15 -2
- package/dist/components/viewers/geojson-view/geojson-view.class.d.ts.map +1 -1
- package/dist/components/viewers/geojson-view/geojson-view.class.js +13 -2
- package/dist/components/viewers/geojson-view/geojson-view.class.js.map +1 -1
- package/dist/components/viewers/html-viewer/html-viewer.class.d.ts +14 -2
- package/dist/components/viewers/html-viewer/html-viewer.class.d.ts.map +1 -1
- package/dist/components/viewers/html-viewer/html-viewer.class.js +11 -3
- package/dist/components/viewers/html-viewer/html-viewer.class.js.map +1 -1
- package/dist/components/viewers/include/include.class.d.ts +15 -2
- package/dist/components/viewers/include/include.class.d.ts.map +1 -1
- package/dist/components/viewers/include/include.class.js +13 -2
- package/dist/components/viewers/include/include.class.js.map +1 -1
- package/dist/components/viewers/pptx-viewer/pptx-viewer.class.d.ts +15 -2
- package/dist/components/viewers/pptx-viewer/pptx-viewer.class.d.ts.map +1 -1
- package/dist/components/viewers/pptx-viewer/pptx-viewer.class.js +14 -3
- package/dist/components/viewers/pptx-viewer/pptx-viewer.class.js.map +1 -1
- package/dist/internal/form-associated.d.ts.map +1 -1
- package/dist/internal/form-associated.js +57 -1
- package/dist/internal/form-associated.js.map +1 -1
- package/dist/internal/length-constraints.d.ts +27 -0
- package/dist/internal/length-constraints.d.ts.map +1 -0
- package/dist/internal/length-constraints.js +42 -0
- package/dist/internal/length-constraints.js.map +1 -0
- package/dist/internal/localization.d.ts +1 -1
- package/dist/internal/localization.d.ts.map +1 -1
- package/dist/internal/localization.js +27 -0
- package/dist/internal/localization.js.map +1 -1
- package/dist/internal/persisted-state.d.ts +27 -0
- package/dist/internal/persisted-state.d.ts.map +1 -0
- package/dist/internal/persisted-state.js +57 -0
- package/dist/internal/persisted-state.js.map +1 -0
- package/dist/internal/root-registration-allowlist.d.ts +1 -1
- package/dist/internal/root-registration-allowlist.d.ts.map +1 -1
- package/dist/internal/root-registration-allowlist.js +5 -0
- package/dist/internal/root-registration-allowlist.js.map +1 -1
- package/dist/internal/safe-url.d.ts +13 -2
- package/dist/internal/safe-url.d.ts.map +1 -1
- package/dist/internal/safe-url.js +27 -4
- package/dist/internal/safe-url.js.map +1 -1
- package/dist/internal/text-quote.d.ts +4 -0
- package/dist/internal/text-quote.d.ts.map +1 -1
- package/dist/internal/text-quote.js +21 -0
- package/dist/internal/text-quote.js.map +1 -1
- package/dist/internal/text-viewer-target.d.ts +27 -0
- package/dist/internal/text-viewer-target.d.ts.map +1 -0
- package/dist/internal/text-viewer-target.js +179 -0
- package/dist/internal/text-viewer-target.js.map +1 -0
- package/dist/internal/theme-watcher.d.ts +32 -0
- package/dist/internal/theme-watcher.d.ts.map +1 -0
- package/dist/internal/theme-watcher.js +67 -0
- package/dist/internal/theme-watcher.js.map +1 -0
- package/dist/lyra.d.ts +17 -5
- package/dist/lyra.d.ts.map +1 -1
- package/dist/lyra.js +11 -0
- package/dist/lyra.js.map +1 -1
- package/dist/theme/gemstones.d.ts +22 -0
- package/dist/theme/gemstones.d.ts.map +1 -0
- package/dist/theme/gemstones.js +44 -0
- package/dist/theme/gemstones.js.map +1 -0
- package/dist/theme/theme.d.ts +60 -0
- package/dist/theme/theme.d.ts.map +1 -0
- package/dist/theme/theme.js +132 -0
- package/dist/theme/theme.js.map +1 -0
- package/llms/components/lr-accordion-item.md +1 -0
- package/llms/components/lr-accordion.md +1 -0
- package/llms/components/lr-activity-feed.md +1 -0
- package/llms/components/lr-agent-eval-dashboard.md +29 -0
- package/llms/components/lr-agent-run.md +1 -0
- package/llms/components/lr-agent-trace.md +1 -0
- package/llms/components/lr-agent-workspace.md +1 -0
- package/llms/components/lr-animated-image.md +1 -0
- package/llms/components/lr-animation.md +1 -0
- package/llms/components/lr-app-rail-item.md +8 -2
- package/llms/components/lr-app-rail.md +8 -2
- package/llms/components/lr-approval-queue.md +27 -0
- package/llms/components/lr-archive-viewer.md +9 -3
- package/llms/components/lr-artifact-panel.md +1 -0
- package/llms/components/lr-attachment-chip.md +1 -0
- package/llms/components/lr-attachment-trigger.md +1 -0
- package/llms/components/lr-audio-visualizer.md +1 -0
- package/llms/components/lr-av-player.md +1 -0
- package/llms/components/lr-avatar-group.md +1 -0
- package/llms/components/lr-avatar.md +1 -0
- package/llms/components/lr-badge.md +1 -0
- package/llms/components/lr-bar-chart.md +5 -3
- package/llms/components/lr-box-plot.md +5 -3
- package/llms/components/lr-branch-picker.md +1 -0
- package/llms/components/lr-breadcrumb-item.md +1 -0
- package/llms/components/lr-breadcrumb.md +1 -0
- package/llms/components/lr-browser-frame.md +1 -0
- package/llms/components/lr-bubble-chart.md +5 -3
- package/llms/components/lr-button-group.md +1 -0
- package/llms/components/lr-button.md +29 -3
- package/llms/components/lr-calendar-viewer.md +7 -1
- package/llms/components/lr-calendar.md +1 -0
- package/llms/components/lr-callout.md +1 -0
- package/llms/components/lr-card.md +6 -0
- package/llms/components/lr-carousel-item.md +1 -0
- package/llms/components/lr-carousel.md +1 -0
- package/llms/components/lr-chart.md +50 -14
- package/llms/components/lr-chat-composer.md +1 -0
- package/llms/components/lr-chat-message.md +6 -0
- package/llms/components/lr-chat-viewport.md +1 -0
- package/llms/components/lr-checkbox-group.md +1 -0
- package/llms/components/lr-checkbox.md +5 -0
- package/llms/components/lr-checkpoint.md +1 -0
- package/llms/components/lr-chip-group.md +1 -0
- package/llms/components/lr-chip.md +1 -0
- package/llms/components/lr-chunk-inspector.md +1 -0
- package/llms/components/lr-citation-badge.md +6 -0
- package/llms/components/lr-code-block-core.md +1 -0
- package/llms/components/lr-code-block.md +1 -0
- package/llms/components/lr-code-editor.md +1 -0
- package/llms/components/lr-color-picker.md +1 -0
- package/llms/components/lr-combobox.md +61 -14
- package/llms/components/lr-command-palette.md +1 -0
- package/llms/components/lr-commit-card.md +1 -0
- package/llms/components/lr-community-card.md +1 -0
- package/llms/components/lr-compare-panel.md +1 -0
- package/llms/components/lr-confirm-bar.md +1 -0
- package/llms/components/lr-contact-viewer.md +7 -1
- package/llms/components/lr-context-inspector.md +1 -0
- package/llms/components/lr-context-meter.md +1 -0
- package/llms/components/lr-control-group.md +1 -0
- package/llms/components/lr-conversation-item.md +10 -2
- package/llms/components/lr-copy-button.md +1 -0
- package/llms/components/lr-csv-viewer.md +1 -0
- package/llms/components/lr-dashboard-grid.md +1 -0
- package/llms/components/lr-dataset-viewer.md +1 -0
- package/llms/components/lr-date-input.md +1 -0
- package/llms/components/lr-date-picker.md +1 -0
- package/llms/components/lr-details.md +1 -0
- package/llms/components/lr-dialog.md +1 -0
- package/llms/components/lr-diff-view.md +1 -0
- package/llms/components/lr-divider.md +1 -0
- package/llms/components/lr-dock-panel.md +1 -0
- package/llms/components/lr-document-compare.md +1 -0
- package/llms/components/lr-document-library.md +1 -0
- package/llms/components/lr-document-preview.md +5 -3
- package/llms/components/lr-document-viewer.md +1 -0
- package/llms/components/lr-docx-viewer.md +1 -0
- package/llms/components/lr-doughnut-chart.md +5 -3
- package/llms/components/lr-drawer.md +1 -0
- package/llms/components/lr-drilldown-panel.md +1 -0
- package/llms/components/lr-dropdown-item.md +1 -0
- package/llms/components/lr-dropdown.md +1 -0
- package/llms/components/lr-ebook-viewer.md +1 -0
- package/llms/components/lr-email-viewer.md +7 -1
- package/llms/components/lr-embedding-explorer.md +26 -0
- package/llms/components/lr-emoji-picker.md +1 -0
- package/llms/components/lr-empty.md +4 -1
- package/llms/components/lr-entity-card.md +1 -0
- package/llms/components/lr-entity-chip.md +1 -0
- package/llms/components/lr-entity-dossier.md +1 -0
- package/llms/components/lr-env-list.md +1 -0
- package/llms/components/lr-eval-dataset.md +1 -0
- package/llms/components/lr-eval-result.md +1 -0
- package/llms/components/lr-evaluation-run.md +1 -0
- package/llms/components/lr-export-button.md +1 -0
- package/llms/components/lr-file-icon.md +1 -0
- package/llms/components/lr-file-input.md +14 -1
- package/llms/components/lr-file-tree.md +1 -0
- package/llms/components/lr-filter-bar.md +1 -0
- package/llms/components/lr-flag.md +1 -0
- package/llms/components/lr-flow-canvas.md +1 -0
- package/llms/components/lr-flow-controls.md +1 -0
- package/llms/components/lr-flow-minimap.md +1 -0
- package/llms/components/lr-flow-node.md +1 -0
- package/llms/components/lr-flow-run-overlay.md +1 -0
- package/llms/components/lr-format-bytes.md +1 -0
- package/llms/components/lr-format-date.md +1 -0
- package/llms/components/lr-format-number.md +1 -0
- package/llms/components/lr-gauge.md +1 -0
- package/llms/components/lr-generation-status.md +1 -0
- package/llms/components/lr-geojson-view.md +5 -1
- package/llms/components/lr-graph-legend.md +1 -0
- package/llms/components/lr-graph-query-builder.md +1 -0
- package/llms/components/lr-graph.md +1 -0
- package/llms/components/lr-grounding-summary.md +1 -0
- package/llms/components/lr-handoff-divider.md +1 -0
- package/llms/components/lr-heatmap.md +1 -0
- package/llms/components/lr-highlight-layer.md +1 -0
- package/llms/components/lr-histogram.md +5 -3
- package/llms/components/lr-html-viewer.md +7 -1
- package/llms/components/lr-icon-button.md +10 -4
- package/llms/components/lr-icon.md +1 -0
- package/llms/components/lr-image-comparer.md +1 -0
- package/llms/components/lr-image-viewer.md +1 -0
- package/llms/components/lr-include.md +6 -0
- package/llms/components/lr-ingestion-queue.md +1 -0
- package/llms/components/lr-input.md +21 -1
- package/llms/components/lr-intersection-observer.md +1 -0
- package/llms/components/lr-json-viewer.md +1 -0
- package/llms/components/lr-kbd.md +1 -0
- package/llms/components/lr-knowledge-base-admin.md +30 -0
- package/llms/components/lr-knowledge-base.md +1 -0
- package/llms/components/lr-knowledge-graph-explorer.md +1 -0
- package/llms/components/lr-known-date.md +1 -0
- package/llms/components/lr-lightbox.md +1 -0
- package/llms/components/lr-line-chart.md +5 -3
- package/llms/components/lr-lite-chart.md +20 -2
- package/llms/components/lr-live-region.md +1 -0
- package/llms/components/lr-locale-picker.md +1 -0
- package/llms/components/lr-map.md +1 -0
- package/llms/components/lr-markdown-core.md +1 -0
- package/llms/components/lr-markdown.md +1 -0
- package/llms/components/lr-media-card.md +1 -0
- package/llms/components/lr-memory-panel.md +1 -0
- package/llms/components/lr-mention-popover.md +1 -0
- package/llms/components/lr-menu-item.md +1 -0
- package/llms/components/lr-menu.md +1 -0
- package/llms/components/lr-message-actions.md +1 -0
- package/llms/components/lr-message-feedback.md +1 -0
- package/llms/components/lr-mind-map.md +1 -0
- package/llms/components/lr-model-select.md +8 -1
- package/llms/components/lr-model-settings-panel.md +1 -0
- package/llms/components/lr-mutation-observer.md +1 -0
- package/llms/components/lr-neighbor-list.md +1 -0
- package/llms/components/lr-node-palette.md +1 -0
- package/llms/components/lr-notebook-viewer.md +1 -0
- package/llms/components/lr-number-input.md +5 -3
- package/llms/components/lr-option.md +61 -14
- package/llms/components/lr-page-rail.md +1 -0
- package/llms/components/lr-pagination.md +1 -0
- package/llms/components/lr-path-strip.md +1 -0
- package/llms/components/lr-pdf-viewer.md +1 -0
- package/llms/components/lr-phone-input.md +1 -0
- package/llms/components/lr-pie-chart.md +5 -3
- package/llms/components/lr-playback.md +1 -0
- package/llms/components/lr-polar-area-chart.md +5 -3
- package/llms/components/lr-policy-summary.md +1 -0
- package/llms/components/lr-poll-status.md +1 -0
- package/llms/components/lr-popover.md +4 -0
- package/llms/components/lr-pptx-viewer.md +7 -2
- package/llms/components/lr-progress-bar.md +1 -0
- package/llms/components/lr-progress-ring.md +1 -0
- package/llms/components/lr-provenance-panel.md +1 -0
- package/llms/components/lr-push-to-talk.md +1 -0
- package/llms/components/lr-qr-code.md +1 -0
- package/llms/components/lr-query-builder.md +1 -0
- package/llms/components/lr-radar-chart.md +5 -3
- package/llms/components/lr-radio-group.md +1 -0
- package/llms/components/lr-radio.md +1 -0
- package/llms/components/lr-rag-answer.md +31 -0
- package/llms/components/lr-random-content.md +1 -0
- package/llms/components/lr-rating.md +1 -0
- package/llms/components/lr-relative-time.md +1 -0
- package/llms/components/lr-reorder-item.md +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-results.md +1 -0
- package/llms/components/lr-retrieval-search.md +1 -0
- package/llms/components/lr-retrieval-trace.md +1 -0
- package/llms/components/lr-rubric-form.md +1 -0
- package/llms/components/lr-scatter-chart.md +5 -3
- package/llms/components/lr-scroller.md +1 -0
- package/llms/components/lr-segmented.md +8 -0
- package/llms/components/lr-select.md +16 -3
- package/llms/components/lr-sequence-strip.md +1 -0
- package/llms/components/lr-skeleton.md +1 -0
- package/llms/components/lr-slider.md +1 -0
- package/llms/components/lr-source-card.md +1 -0
- package/llms/components/lr-source-list.md +1 -0
- package/llms/components/lr-source-picker.md +1 -0
- package/llms/components/lr-span-waterfall.md +1 -0
- package/llms/components/lr-sparkline.md +1 -0
- package/llms/components/lr-spinner.md +1 -0
- package/llms/components/lr-split.md +11 -3
- package/llms/components/lr-spreadsheet-viewer.md +1 -0
- package/llms/components/lr-stack-trace.md +1 -0
- package/llms/components/lr-stat.md +1 -0
- package/llms/components/lr-stepper.md +1 -0
- package/llms/components/lr-stream-status.md +1 -0
- package/llms/components/lr-streaming-text.md +1 -0
- package/llms/components/lr-suggestion-chips.md +1 -0
- package/llms/components/lr-svg-viewer.md +1 -0
- package/llms/components/lr-swatch-picker.md +29 -6
- package/llms/components/lr-switch.md +1 -0
- package/llms/components/lr-table.md +19 -5
- package/llms/components/lr-tabs.md +1 -0
- package/llms/components/lr-tag.md +1 -0
- package/llms/components/lr-task-list.md +1 -0
- package/llms/components/lr-terminal.md +1 -0
- package/llms/components/lr-test-results.md +1 -0
- package/llms/components/lr-textarea.md +20 -0
- package/llms/components/lr-thinking-panel.md +1 -0
- package/llms/components/lr-thread-list.md +2 -1
- package/llms/components/lr-time-input.md +4 -2
- package/llms/components/lr-time-range.md +1 -0
- package/llms/components/lr-timeline-item.md +1 -0
- package/llms/components/lr-timeline.md +1 -0
- package/llms/components/lr-toast-item.md +3 -2
- package/llms/components/lr-toast.md +3 -2
- package/llms/components/lr-token-input.md +1 -0
- package/llms/components/lr-tool-approval-dialog.md +1 -0
- package/llms/components/lr-tool-call-chip.md +6 -0
- package/llms/components/lr-tool-param-form.md +1 -0
- package/llms/components/lr-tool-result-dialog.md +1 -0
- package/llms/components/lr-tool-result-view.md +53 -4
- package/llms/components/lr-tool-select-dialog.md +1 -0
- package/llms/components/lr-tool-timeline.md +1 -0
- package/llms/components/lr-tooltip.md +1 -0
- package/llms/components/lr-tour.md +1 -0
- package/llms/components/lr-trace-tree.md +1 -0
- package/llms/components/lr-transcript-feed.md +1 -0
- package/llms/components/lr-tree-node.md +1 -0
- package/llms/components/lr-tree.md +1 -0
- package/llms/components/lr-typing-indicator.md +13 -8
- package/llms/components/lr-usage-badge.md +1 -0
- package/llms/components/lr-virtual-list.md +1 -0
- package/llms/components/lr-voice-picker.md +1 -0
- package/llms/components/lr-widget-renderer.md +1 -0
- package/llms/components/lr-widget.md +13 -0
- package/llms/components/lr-word-cloud.md +9 -2
- package/llms/components/lr-xml-viewer.md +1 -0
- package/llms/components/lr-zoomable-frame.md +1 -0
- package/llms/index.md +8 -3
- package/llms/peers.md +2 -1
- package/llms/shared.md +88 -0
- package/llms-full.txt +684 -105
- package/llms.txt +2 -2
- package/package.json +20 -2
- package/vscode-css-data.json +176 -1
- package/vscode-html-data.json +551 -23
- package/web-types.json +676 -25
package/web-types.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json.schemastore.org/web-types",
|
|
3
3
|
"name": "@aceshooting/lyra-ui",
|
|
4
|
-
"version": "6.
|
|
4
|
+
"version": "6.2.0",
|
|
5
5
|
"description-markup": "markdown",
|
|
6
6
|
"contributions": {
|
|
7
7
|
"html": {
|
|
@@ -141,6 +141,57 @@
|
|
|
141
141
|
}
|
|
142
142
|
]
|
|
143
143
|
},
|
|
144
|
+
{
|
|
145
|
+
"name": "lr-agent-eval-dashboard",
|
|
146
|
+
"description": "`<lr-agent-eval-dashboard>` — a controlled evaluation overview with metric cards, a trend chart,\nand run-status history. It never launches or scores evaluations.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The root dashboard wrapper. |\n| `chart` | The trend chart. |\n| `empty` | The empty history message. |\n| `heading` | The visible heading. |\n| `metric` | One metric card. |\n| `metrics` | The metric-card grid. |\n| `run` | One run row. |\n| `run-label` | A run label. |\n| `run-meta` | Status and metric value. |\n| `run-status` | A run status badge. |\n| `runs` | The run history. |\n| `runs-heading` | The run history heading. |",
|
|
147
|
+
"attributes": [
|
|
148
|
+
{
|
|
149
|
+
"name": "chart-height",
|
|
150
|
+
"description": "Type: `string` \nDefault: `'220px'`",
|
|
151
|
+
"value": {
|
|
152
|
+
"type": [
|
|
153
|
+
"string"
|
|
154
|
+
]
|
|
155
|
+
}
|
|
156
|
+
},
|
|
157
|
+
{
|
|
158
|
+
"name": "label",
|
|
159
|
+
"description": "Type: `string` \nDefault: `''`",
|
|
160
|
+
"value": {
|
|
161
|
+
"type": [
|
|
162
|
+
"string"
|
|
163
|
+
]
|
|
164
|
+
}
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
"name": "locale",
|
|
168
|
+
"description": "Optional locale override. Otherwise the nearest `locale`/`lang` ancestor is used.\n\nType: `string` \nDefault: `''`",
|
|
169
|
+
"value": {
|
|
170
|
+
"type": [
|
|
171
|
+
"string"
|
|
172
|
+
]
|
|
173
|
+
}
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
"name": "metric-id",
|
|
177
|
+
"description": "Type: `string` \nDefault: `''`",
|
|
178
|
+
"value": {
|
|
179
|
+
"type": [
|
|
180
|
+
"string"
|
|
181
|
+
]
|
|
182
|
+
}
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
"name": "show-chart",
|
|
186
|
+
"description": "Type: `boolean` \nDefault: `true`",
|
|
187
|
+
"value": {
|
|
188
|
+
"type": [
|
|
189
|
+
"boolean"
|
|
190
|
+
]
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
]
|
|
194
|
+
},
|
|
144
195
|
{
|
|
145
196
|
"name": "lr-agent-run",
|
|
146
197
|
"description": "`<lr-agent-run>` — the top-level shell for one `AgentRun`: lifecycle-status badge, elapsed\ntime, current step, model/cost summary, and built-in Cancel/Retry controls in a header, plus\nfour named composition slots (`tasks`/`tools`/`reasoning`/`output`) for the run's actual\ncontent. This is deliberately a SHELL, not a new step-rendering surface — every piece of\nper-step or per-invocation rendering routes through an existing primitive:\n\n- **Elapsed time**: composes `<lr-generation-status>` (`active`/`started-at`, its own built-in\n Stop button hidden via `show-stop=\"false\"` since this component renders its own Cancel/Retry\n pair instead) for the *live, ticking* readout while the run is genuinely in progress\n (`running`/`collecting`/`waiting-input`/`waiting-approval`). `<lr-stream-status>` doesn't fit:\n its `phase` vocabulary\n (`idle`/`connecting`/`streaming`/`stalled`) models transport/connection health, not an agent\n run's nine built-in lifecycle statuses (plus application-defined extensions), and it exposes no elapsed-time readout at all — exactly the\n distinction `<lr-generation-status>`'s own class doc already draws between the two. Once the\n run reaches a terminal state (`done`/`error`/`cancelled`) with both a `startedAt` and an\n `endedAt`, this component instead renders a small locally-formatted static duration\n (`endedAt - startedAt`): `<lr-generation-status>`'s freeze-on-`active=false` semantics only\n ever freeze at whatever it last computed *live*, so mounting it directly against a completed\n run loaded from history (e.g. `startedAt` yesterday, `endedAt` five minutes later, loaded\n today) would either show a stale zero or the wrong multi-hour span — it has no way to render a\n fixed historical span on demand. That static fallback reuses the same small `formatDuration()`\n algorithm `<lr-usage-badge>` and `<lr-tool-call-chip>` already duplicate locally for the same\n reason (see this file's own copy).\n- **Model + cost summary**: composes `<lr-usage-badge>`, fed `run.costEstimate` (formatted via\n `formatCost`, or a plain `Intl.NumberFormat` by default — this library never assumes a\n currency, see `<lr-format-number>`'s own explicit `currency` prop) as its `cost-text`.\n `run.model` (a plain string with no analogous `<lr-usage-badge>` property) renders alongside\n as plain text.\n- **Current step**: a single-line summary of whichever `run.steps` entry currently has\n `status.kind === 'running'` (the last such entry, if more than one) — a plain text line, not a\n list, so it doesn't duplicate `<lr-task-list>`'s own per-item rendering.\n- **Tasks slot default content**: when the host doesn't slot anything into `tasks` and\n `run.steps` is non-empty, this component's own `<slot>` fallback renders a `<lr-task-list>`\n populated by mapping every `AgentStep` to a `TaskItem` (see `toTaskItem()`) — a plain data\n adapter between the two existing shapes, not new rendering.\n- **Status badge**: composes `<lr-badge>`. **Empty state**: composes `<lr-empty>` when `run` is\n `null`.\n\n`tools`/`reasoning`/`output` are plain named slots with no default content — entirely the\nhost's own composition (typically `<lr-tool-call-chip>`/`<lr-tool-result-view>` rows,\nreasoning/streaming text, and final output respectively). An `actions` slot adds extra header\ncontrols alongside the built-in Cancel/Retry pair. The `header` and `summary` slots replace the\nbuilt-in lifecycle header and model/usage/metrics summary respectively. `statusLabels` and\n`statusVariants` make application-defined lifecycle kinds first-class, while `metrics` renders\narbitrary labeled values such as prompt and completion token counts.\n\nThe built-in Cancel button renders while `showCancel` is true and the run's status is one of\n`TICKING_KINDS` (still genuinely in progress); Retry renders while `showRetry` is true and the\nstatus is `error` or `cancelled`. Clicking either fires `lr-cancel`/`lr-retry` with\n`CancelEventDetail`/`RetryEventDetail` from `src/ai/types.ts` — this component never cancels or\nretries anything itself, it only requests. `RetryEventDetail.attempt` is a 1-based counter\nlocal to this component, incremented on every `lr-retry` click and reset to `0` whenever\n`run.id` changes (a genuinely new run replacing the old one, as opposed to the same run's status\nmerely updating in place).\n\nLifecycle transitions into an attention-needing or terminal state (`waiting-input`,\n`waiting-approval`, `done`, `error`, `cancelled`) are announced through an internal\n`<lr-live-region>`, mirroring `<lr-stream-status>`'s own stall/recover announcements —\n`running`/`idle` transitions are frequent and not independently actionable, so they stay\nsilent, and whatever status a freshly-assigned `run` (a new `run.id`) happens to already carry\nis never itself treated as an eventful transition, only a later in-place change is.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| `actions` | Extra header actions alongside the built-in Cancel/Retry buttons. |\n| `header` | Replaces the built-in lifecycle header and its built-in actions. |\n| `output` | The run's final output content. No default content. |\n| `reasoning` | Reasoning/thinking content. No default content. |\n| `summary` | Replaces the built-in model, usage, and metrics summary. |\n| `tasks` | Task/plan content. Falls back to a `<lr-task-list>` built from `run.steps` when nothing is slotted and `run.steps` is non-empty. |\n| `tools` | Tool-call content (e.g. `<lr-tool-call-chip>`/`<lr-tool-result-view>` rows). No default content. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `actions` | Wrapper around the `actions` slot and the built-in Cancel/Retry buttons. |\n| `base` | The root container. |\n| `body` | Wrapper around the four composition slots. |\n| `cancel-button` | The built-in Cancel button. Only rendered while cancelable (see the class doc). |\n| `current-step` | Wrapper around the current-step icon and label. Only rendered while a step has `status.kind === 'running'`. |\n| `current-step-icon` | The spinning current-step icon. |\n| `current-step-label` | The current step's `label` text. |\n| `elapsed` | The composed `<lr-generation-status>`, only rendered while the run is actively ticking (see the class doc). |\n| `elapsed-static` | The static formatted duration for a terminal run with both `startedAt` and `endedAt`. |\n| `empty` | The `<lr-empty>` shown when `run` is `null`. |\n| `header` | The header row wrapping status, elapsed time, current step, summary, and actions. |\n| `metric` | One arbitrary metric in the built-in summary. |\n| `metric-label` | The metric's label. |\n| `metric-value` | The metric's value. |\n| `model` | `run.model`, when set. |\n| `output` | The `output` slot. |\n| `reasoning` | The `reasoning` slot. |\n| `retry-button` | The built-in Retry button. Only rendered while retryable. |\n| `status` | Wrapper around the status badge and optional status message. |\n| `status-badge` | The resolved `<lr-badge>` lifecycle-status pill. |\n| `status-message` | `run.status.message`, when set. |\n| `summary` | Wrapper around the model text and the composed `<lr-usage-badge>`. Only rendered while `run.model` or a valid `run.costEstimate` is present. |\n| `tasks` | The `tasks` slot. |\n| `tools` | The `tools` slot. |\n| `usage` | The composed `<lr-usage-badge>`. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-agent-run-spin` (default: `1s linear`) — Current-step icon spin animation duration and timing.\n- `--lr-agent-run-compact-padding` (default: `var(--lr-space-s)`) — `[part=\"base\"]` padding while `compact`.\n- `--lr-agent-run-compact-gap` (default: `var(--lr-space-s)`) — Gap between `[part=\"base\"]`'s header and body while `compact`.",
|
|
@@ -709,12 +760,16 @@
|
|
|
709
760
|
},
|
|
710
761
|
{
|
|
711
762
|
"name": "resizable",
|
|
712
|
-
"description": "Opts a continuously draggable width in for the `'full'` state — exposes a `[part=\"resizer\"]`\nhandle (pointer-drag and `ArrowLeft`/`ArrowRight` keyboard stepping, RTL-aware) clamped to\n`[minRailWidthPx, maxRailWidthPx]`.
|
|
763
|
+
"description": "Opts a continuously draggable width in for the `'full'` state — exposes a `[part=\"resizer\"]`\nhandle (pointer-drag and `ArrowLeft`/`ArrowRight` keyboard stepping, RTL-aware) clamped to\n`[minRailWidthPx, maxRailWidthPx]`. Set `storageKey` to persist the chosen width (and `open`)\nacross reloads; otherwise listen for `lr-rail-resize` and persist `widthPx` yourself. `false`\n(the default) renders no resizer and leaves the fixed-width `--lr-app-rail-width` CSS token\nexactly as before this property existed.\n\nType: `boolean` \nDefault: `false`",
|
|
713
764
|
"value": {
|
|
714
765
|
"type": [
|
|
715
766
|
"boolean"
|
|
716
767
|
]
|
|
717
768
|
}
|
|
769
|
+
},
|
|
770
|
+
{
|
|
771
|
+
"name": "storage-key",
|
|
772
|
+
"description": "When set, persists `open` and `railWidthPx` to `localStorage` under\n`lr-app-rail:${storageKey}`, restoring them on the next mount — mirrors `lr-split`'s\n`storage-key`. `mode` is breakpoint-derived and is never persisted. Unset (the default) means\nno persistence, exactly as before.\n\nType: `string | undefined`"
|
|
718
773
|
}
|
|
719
774
|
]
|
|
720
775
|
},
|
|
@@ -778,9 +833,60 @@
|
|
|
778
833
|
}
|
|
779
834
|
]
|
|
780
835
|
},
|
|
836
|
+
{
|
|
837
|
+
"name": "lr-approval-queue",
|
|
838
|
+
"description": "`<lr-approval-queue>` — a controlled queue of tool calls that need human approval, with a\nkeyboard-accessible request list and a single reused `<lr-tool-approval-dialog>`. It never\nexecutes tools, applies permissions, or persists decisions; the host owns those operations.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The root queue wrapper. |\n| `count` | The pending-count text. |\n| `empty` | The empty state. |\n| `heading` | The visible queue heading. |\n| `heading-row` | The heading and pending-count row. |\n| `list` | The request list. |\n| `request` | One selectable request row. |\n| `request-id` | The stable request id. |\n| `request-info` | Request name and id wrapper. |\n| `status` | The request status badge. |\n| `tool-name` | The proposed tool name. |",
|
|
839
|
+
"attributes": [
|
|
840
|
+
{
|
|
841
|
+
"name": "editable",
|
|
842
|
+
"description": "Allows argument editing in the nested approval dialog.\n\nType: `boolean` \nDefault: `true`",
|
|
843
|
+
"value": {
|
|
844
|
+
"type": [
|
|
845
|
+
"boolean"
|
|
846
|
+
]
|
|
847
|
+
}
|
|
848
|
+
},
|
|
849
|
+
{
|
|
850
|
+
"name": "label",
|
|
851
|
+
"description": "Accessible name and visible heading.\n\nType: `string` \nDefault: `''`",
|
|
852
|
+
"value": {
|
|
853
|
+
"type": [
|
|
854
|
+
"string"
|
|
855
|
+
]
|
|
856
|
+
}
|
|
857
|
+
},
|
|
858
|
+
{
|
|
859
|
+
"name": "locale",
|
|
860
|
+
"description": "Optional locale override. Otherwise the nearest `locale`/`lang` ancestor is used.\n\nType: `string` \nDefault: `''`",
|
|
861
|
+
"value": {
|
|
862
|
+
"type": [
|
|
863
|
+
"string"
|
|
864
|
+
]
|
|
865
|
+
}
|
|
866
|
+
},
|
|
867
|
+
{
|
|
868
|
+
"name": "open",
|
|
869
|
+
"description": "Whether the decision dialog is open.\n\nType: `boolean` \nDefault: `false`",
|
|
870
|
+
"value": {
|
|
871
|
+
"type": [
|
|
872
|
+
"boolean"
|
|
873
|
+
]
|
|
874
|
+
}
|
|
875
|
+
},
|
|
876
|
+
{
|
|
877
|
+
"name": "selected-id",
|
|
878
|
+
"description": "The request currently shown in the dialog.\n\nType: `string` \nDefault: `''`",
|
|
879
|
+
"value": {
|
|
880
|
+
"type": [
|
|
881
|
+
"string"
|
|
882
|
+
]
|
|
883
|
+
}
|
|
884
|
+
}
|
|
885
|
+
]
|
|
886
|
+
},
|
|
781
887
|
{
|
|
782
888
|
"name": "lr-archive-viewer",
|
|
783
|
-
"description": "Lists names and uncompressed sizes in a ZIP archive without rendering entry contents. File sizes\nare measured through JSZip's public async API, so opening an archive decompresses each file once.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The root container. |\n| `entry` | An archive entry row. |\n| `entry-icon` | The decorative folder or file icon. |\n| `entry-name` | The entry path. |\n| `entry-name-dir` | The entry path of a directory row (also carries `entry-name`). |\n| `entry-size` | The human-readable file size. |\n| `error` | The error region. |\n| `spinner` | The loading region. |",
|
|
889
|
+
"description": "Lists names and uncompressed sizes in a ZIP archive without rendering entry contents. File sizes\nare measured through JSZip's public async API, so opening an archive decompresses each file once.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The root container. |\n| `body` | The archive listing body. |\n| `entry` | An archive entry row. |\n| `entry-icon` | The decorative folder or file icon. |\n| `entry-name` | The entry path. |\n| `entry-name-dir` | The entry path of a directory row (also carries `entry-name`). |\n| `entry-size` | The human-readable file size. |\n| `error` | The error region. |\n| `spinner` | The loading region. |",
|
|
784
890
|
"attributes": [
|
|
785
891
|
{
|
|
786
892
|
"name": "locale",
|
|
@@ -1444,6 +1550,15 @@
|
|
|
1444
1550
|
]
|
|
1445
1551
|
}
|
|
1446
1552
|
},
|
|
1553
|
+
{
|
|
1554
|
+
"name": "data-labels",
|
|
1555
|
+
"description": "Draws each data point's value on the chart via the optional\n`chartjs-plugin-datalabels` peer. Unset (the default) leaves labels off for\nthis and every other chart on the page — the plugin registers globally, so\n`buildConfig()` explicitly disables it per-chart until this is set. The\nscreen-reader equivalent is the always-present data table (see\n`show-data-table`); labels are a purely visual, canvas-only addition.\n\nType: `boolean` \nDefault: `false`",
|
|
1556
|
+
"value": {
|
|
1557
|
+
"type": [
|
|
1558
|
+
"boolean"
|
|
1559
|
+
]
|
|
1560
|
+
}
|
|
1561
|
+
},
|
|
1447
1562
|
{
|
|
1448
1563
|
"name": "height",
|
|
1449
1564
|
"description": "Type: `string` \nDefault: `'280px'`",
|
|
@@ -1498,6 +1613,15 @@
|
|
|
1498
1613
|
]
|
|
1499
1614
|
}
|
|
1500
1615
|
},
|
|
1616
|
+
{
|
|
1617
|
+
"name": "stack-totals",
|
|
1618
|
+
"description": "When the chart is `stacked` (bar/line only), draws the per-category stack\ntotal above each stack, via the same optional `chartjs-plugin-datalabels`\npeer as `data-labels`. Null/undefined points are skipped; a category whose\nevery value is null shows no total. Unset (the default) draws nothing.\n\nType: `boolean` \nDefault: `false`",
|
|
1619
|
+
"value": {
|
|
1620
|
+
"type": [
|
|
1621
|
+
"boolean"
|
|
1622
|
+
]
|
|
1623
|
+
}
|
|
1624
|
+
},
|
|
1501
1625
|
{
|
|
1502
1626
|
"name": "stacked",
|
|
1503
1627
|
"description": "Stacks the `x`/`y`(/`y2`) scale entries `buildScales()` returns; only meaningful for `bar` and `line` types.\n\nType: `boolean` \nDefault: `false`",
|
|
@@ -1556,7 +1680,7 @@
|
|
|
1556
1680
|
},
|
|
1557
1681
|
{
|
|
1558
1682
|
"name": "lr-box-plot",
|
|
1559
|
-
"description": "`<lr-box-plot>` — a box-and-whisker chart from precomputed five-number\nsummaries (no raw sample data is shipped to the browser). Beyond Web\nAwesome's chart set — useful for summarizing distributions.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| `data-table` | An optional consumer-provided accessible table alternative. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The chart wrapper. |\n| `canvas` | The box-plot canvas. |\n| `data-table` | The optional generated or slotted data table. |\n| `description` | The accessible box-plot summary. |",
|
|
1683
|
+
"description": "`<lr-box-plot>` — a box-and-whisker chart from precomputed five-number\nsummaries (no raw sample data is shipped to the browser). Beyond Web\nAwesome's chart set — useful for summarizing distributions.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| `data-table` | An optional consumer-provided accessible table alternative. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The chart wrapper. |\n| `canvas` | The box-plot canvas. |\n| `data-table` | The optional generated or slotted data table. |\n| `description` | The accessible box-plot summary. |\n| `error` | `role=\"alert\"` message shown instead of the canvas when the optional box-plot peer dependency fails to load. |",
|
|
1560
1684
|
"attributes": [
|
|
1561
1685
|
{
|
|
1562
1686
|
"name": "accessible-description",
|
|
@@ -1831,6 +1955,15 @@
|
|
|
1831
1955
|
]
|
|
1832
1956
|
}
|
|
1833
1957
|
},
|
|
1958
|
+
{
|
|
1959
|
+
"name": "data-labels",
|
|
1960
|
+
"description": "Draws each data point's value on the chart via the optional\n`chartjs-plugin-datalabels` peer. Unset (the default) leaves labels off for\nthis and every other chart on the page — the plugin registers globally, so\n`buildConfig()` explicitly disables it per-chart until this is set. The\nscreen-reader equivalent is the always-present data table (see\n`show-data-table`); labels are a purely visual, canvas-only addition.\n\nType: `boolean` \nDefault: `false`",
|
|
1961
|
+
"value": {
|
|
1962
|
+
"type": [
|
|
1963
|
+
"boolean"
|
|
1964
|
+
]
|
|
1965
|
+
}
|
|
1966
|
+
},
|
|
1834
1967
|
{
|
|
1835
1968
|
"name": "height",
|
|
1836
1969
|
"description": "Type: `string` \nDefault: `'280px'`",
|
|
@@ -1885,6 +2018,15 @@
|
|
|
1885
2018
|
]
|
|
1886
2019
|
}
|
|
1887
2020
|
},
|
|
2021
|
+
{
|
|
2022
|
+
"name": "stack-totals",
|
|
2023
|
+
"description": "When the chart is `stacked` (bar/line only), draws the per-category stack\ntotal above each stack, via the same optional `chartjs-plugin-datalabels`\npeer as `data-labels`. Null/undefined points are skipped; a category whose\nevery value is null shows no total. Unset (the default) draws nothing.\n\nType: `boolean` \nDefault: `false`",
|
|
2024
|
+
"value": {
|
|
2025
|
+
"type": [
|
|
2026
|
+
"boolean"
|
|
2027
|
+
]
|
|
2028
|
+
}
|
|
2029
|
+
},
|
|
1888
2030
|
{
|
|
1889
2031
|
"name": "stacked",
|
|
1890
2032
|
"description": "Stacks the `x`/`y`(/`y2`) scale entries `buildScales()` returns; only meaningful for `bar` and `line` types.\n\nType: `boolean` \nDefault: `false`",
|
|
@@ -1943,7 +2085,7 @@
|
|
|
1943
2085
|
},
|
|
1944
2086
|
{
|
|
1945
2087
|
"name": "lr-button",
|
|
1946
|
-
"description": "`<lr-button>` — a generic action-button primitive. Renders an internal native\n`<button part=\"base\">`. `type=\"submit\"`/`type=\"reset\"`\nare handled by this component itself via the host's own `closest('form')` — a shadow-internal\nnative `<button type=\"submit\">` does not participate in an ancestor light-DOM form's submission\non its own, since form-submitter semantics don't cross the shadow boundary.\n\nA host `aria-label` is forwarded to the internal button as a literal string (for an
|
|
2088
|
+
"description": "`<lr-button>` — a generic action-button primitive. Renders an internal native\n`<button part=\"base\">`. `type=\"submit\"`/`type=\"reset\"`\nare handled by this component itself via the host's own `closest('form')` — a shadow-internal\nnative `<button type=\"submit\">` does not participate in an ancestor light-DOM form's submission\non its own, since form-submitter semantics don't cross the shadow boundary.\n\nWhen `href` is set to a safe link URL (`http:`/`https:`/`blob:`/`mailto:`/relative — see\n`safeLinkHref`, or `safeDownloadHref` which drops `mailto:` when `download` is set) the root\nrenders as a real `<a part=\"base\" href=…>` instead — for a link styled\nas a button (e.g. a CTA). Native navigation is then the anchor's own activation, so the\nsubmit/reset click handler and `type` (submit/reset) have no effect in that mode. When the\nbutton is disabled (its own `disabled` or an ancestor `<fieldset disabled>`) the anchor renders\nwith `aria-disabled=\"true\"` and **no `href`** — an href-less anchor is not focusable or\nnavigable, so a disabled link button genuinely cannot be activated (unlike a bare\n`aria-disabled` on a still-navigable link). An unsafe/unparseable `href` falls back to the\nnative `<button>`.\n\nA host `aria-label` is forwarded to the internal button/anchor as a literal string (for an\nicon-only button with no visible label); external `aria-labelledby`/`aria-describedby` idrefs\nare not copied across the shadow boundary.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| (default) | Default slot: the button's label content. |\n| `end` | Trailing icon/content, rendered after the label. |\n| `start` | Leading icon/content, rendered before the label. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The internal native `<button>` (or an `<a>` when `href` resolves to a safe link). |\n| `end` | The `end` slot wrapper. |\n| `label` | The default-slot label wrapper. |\n| `spinner` | The loading spinner, present only while `loading` is `true`. |\n| `start` | The `start` slot wrapper. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-button-width` (default: `100%`) — Inline size of the internal button. The host defaults it to `100%` so the native button follows the host's own width; override to `auto` (or any other value) for a compact inline composition.\n- `--lr-button-hover-brightness` (default: `1.08`) — `filter: brightness()` multiplier applied while hovering a non-disabled button.\n- `--lr-button-active-scale` (default: `0.9875`) — `transform: scale()` factor applied while a non-disabled button is pressed.\n- `--lr-button-spinner-duration` (default: `1s`) — Rotation period of the `loading` spinner.\n- `--lr-button-accent` (default: `var(--lr-color-text)`) — Text/glyph color for the chrome-less appearances (`outlined`, `plain`, `link`). Swapped per `variant` to that variant's semantic color.\n- `--lr-button-fill` (default: `var(--lr-color-surface)`) — Background of `appearance=\"filled\"`. Swapped per `variant` to that variant's semantic color.\n- `--lr-button-on-fill` (default: `var(--lr-color-text)`) — Text color on top of `--lr-button-fill`. Swapped per `variant` to that variant's `on-*` color.\n- `--lr-button-accent-fill` (default: `var(--lr-color-neutral)`) — Background of `appearance=\"accent\"` (and its border color). Swapped per `variant` to that variant's semantic color.\n- `--lr-button-accent-on-fill` (default: `var(--lr-color-on-neutral)`) — Text color on top of `--lr-button-accent-fill`. Swapped per `variant` to that variant's `on-*` color.\n- `--lr-button-border` (default: `var(--lr-color-border)`) — Border color of the internal button. Swapped per `variant` to that variant's semantic color.\n- `--lr-button-outlined-border` (default: `var(--lr-color-border-strong)`) — Border color of `appearance=\"outlined\"`, which overrides `--lr-button-border`.\n- `--lr-button-outlined-fill` (default: `transparent`) — Background of `appearance=\"outlined\"`. Transparent by default; set it to tint the button (e.g. a faint surface wash behind the outline) without a `::part(base)` rule. Like `--lr-button-quiet-*`, it is deliberately *not* swapped per `variant`. Note that the `:hover` `filter: brightness()` applies to whatever fill is set, so a tinted outlined button now visibly brightens on hover where a transparent one did not.\n- `--lr-button-quiet-border` (default: `var(--lr-color-border)`) — Border color of `appearance=\"quiet\"`.\n- `--lr-button-quiet-text` (default: `var(--lr-color-text-quiet)`) — Text color of `appearance=\"quiet\"`.\n- `--lr-button-size-2xs` (default: `var(--lr-size-1-25rem)`) — `min-block-size` at `size=\"2xs\"`.\n- `--lr-button-size-xs` (default: `var(--lr-size-1-5rem)`) — `min-block-size` at `size=\"xs\"`.\n- `--lr-button-size-s` (default: `var(--lr-size-1-875rem)`) — `min-block-size` at `size=\"s\"`. Matches `lr-input`/`lr-select`/`lr-combobox`'s own `size=\"s\"` control height.\n- `--lr-button-size-m` (default: `var(--lr-size-2-5rem)`) — `min-block-size` at `size=\"m\"`. Matches `lr-input`/`lr-select`/`lr-combobox`'s own default control height, so a default-size button sitting next to a default-size input/select/combobox in the same row lines up.\n- `--lr-button-size-l` (default: `var(--lr-size-3rem)`) — `min-block-size` at `size=\"l\"`. Matches `lr-input`/`lr-select`/`lr-combobox`'s own `size=\"l\"` control height.\n- `--lr-button-size-xl` (default: `var(--lr-size-3-5rem)`) — `min-block-size` at `size=\"xl\"`. Matches `lr-input`/`lr-select`/`lr-combobox`'s own `size=\"xl\"` control height.\n- `--lr-button-padding-block` (default: `var(--lr-space-xs)`) — Block padding of the internal button, re-assigned per `size` tier (the default is the `m` tier's value). Override it to retune a tier without a `::part(base)` rule; `appearance=\"link\"` ignores it (it renders with zero padding).\n- `--lr-button-padding-inline` (default: `var(--lr-space-m)`) — Inline padding of the internal button, re-assigned per `size` tier (the default is the `m` tier's value). `appearance=\"link\"` ignores it.\n- `--lr-button-font-size` (default: `var(--lr-font-size-m)`) — Font size of the internal button, re-assigned per `size` tier (the default is the `m` tier's value). `appearance=\"link\"` ignores it and inherits the ambient font instead.\n- `--lr-button-min-height` (default: `var(--lr-button-size-m)`) — The active tier's `min-block-size` floor. Re-assigned per `size` tier to that tier's own `--lr-button-size-*` token, and used as the fallback when `--lr-button-height` is unset.\n- `--lr-button-height` — Exact height of the internal button. **Undeclared by default** — so the button keeps the active tier's `min-block-size` floor and an `auto` height, exactly as before. Set it (e.g. to pin the button to a fixed toolbar row) to both floor *and* cap the height. Never declare it as `auto`: a declared value wins over the `var()` fallback arm and would make every tier's floor dead code. `appearance=\"link\"` ignores it.\n- `--lr-button-gap` (default: `var(--lr-space-2xs)`) — Gap between the icon/label and any slotted content in the internal button. Unlike the size knobs above it does not vary by `size` tier. Override it to retune without a `::part(base)` rule.\n- `--lr-button-radius` (default: `var(--lr-radius)`) — Corner radius of the internal button. Does not vary by `size` tier. `appearance=\"link\"` ignores it (it renders with zero radius).\n- `--lr-button-shadow` — Box shadow of the internal button. **Undeclared by default**, so `box-shadow` falls back to `none` — byte-identical to before this property existed. Set it (e.g. an elevated/floating action button) without a `::part(base)` rule.",
|
|
1947
2089
|
"attributes": [
|
|
1948
2090
|
{
|
|
1949
2091
|
"name": "appearance",
|
|
@@ -1963,6 +2105,14 @@
|
|
|
1963
2105
|
]
|
|
1964
2106
|
}
|
|
1965
2107
|
},
|
|
2108
|
+
{
|
|
2109
|
+
"name": "download",
|
|
2110
|
+
"description": "Native anchor `download` attribute, used only while `href` resolves to a link. Ignored in\n`<button>` mode.\n\nType: `string | undefined`"
|
|
2111
|
+
},
|
|
2112
|
+
{
|
|
2113
|
+
"name": "href",
|
|
2114
|
+
"description": "When set to a safe link URL, the button's root renders as a real `<a href=…>` instead of a\n`<button>` — for a link styled as a button (e.g. a CTA). Unset (the default) renders a plain\n`<button>`, byte-for-byte as before. Only `http:`/`https:`/`blob:`/`mailto:`/relative URLs are\nhonored (see `safeLinkHref`); an unsafe/unparseable value falls back to the native `<button>`.\nSetting `download` narrows the allowlist to `safeDownloadHref`'s, which drops `mailto:` — a\nmail handoff names no retrievable bytes, so it cannot be a download target.\n`type` (submit/reset) has no effect while the anchor renders — an anchor has no submit/reset\nconcept, and native navigation is its own activation. While the button is disabled the anchor\nrenders with no `href` (see the class doc comment), so a disabled link button cannot navigate.\n\nType: `string | undefined`"
|
|
2115
|
+
},
|
|
1966
2116
|
{
|
|
1967
2117
|
"name": "loading",
|
|
1968
2118
|
"description": "Shows an internal spinner in place of interaction affordance and disables the button, without\nclearing `disabled` — a consumer's own `disabled` state and a transient `loading` state are\nindependent (mirrors `<lr-export-button>`'s own `loading`/`disabled` pair).\n\nType: `boolean` \nDefault: `false`",
|
|
@@ -1990,6 +2140,10 @@
|
|
|
1990
2140
|
]
|
|
1991
2141
|
}
|
|
1992
2142
|
},
|
|
2143
|
+
{
|
|
2144
|
+
"name": "target",
|
|
2145
|
+
"description": "Native anchor `target`, used only while `href` resolves to a link. Setting this to `'_blank'`\n(or any other target) automatically derives `rel=\"noopener noreferrer\"` on the rendered anchor\n— matching `lr-card`'s/`lr-stat`'s identical pattern; `rel` is never independently settable, to\nclose the reverse-tabnabbing vector. Ignored in `<button>` mode.\n\nType: `string | undefined`"
|
|
2146
|
+
},
|
|
1993
2147
|
{
|
|
1994
2148
|
"name": "type",
|
|
1995
2149
|
"description": "Forwarded to this component's own submit/reset handling — see the class doc comment above\nfor why this component (not the shadow-internal `<button>`) owns that behavior.\n\nType: `ButtonType` \nDefault: `'button'`",
|
|
@@ -2242,6 +2396,10 @@
|
|
|
2242
2396
|
"string"
|
|
2243
2397
|
]
|
|
2244
2398
|
}
|
|
2399
|
+
},
|
|
2400
|
+
{
|
|
2401
|
+
"name": "target",
|
|
2402
|
+
"description": "Native anchor target, used only while `href` resolves to a link. Setting this to `'_blank'`\n(or any other target) automatically derives `rel=\"noopener noreferrer\"` on the rendered\nanchor -- there is no separately-settable `rel` property, so a consumer can't forget it and\nleave the opened page holding a `window.opener` back-reference (reverse-tabnabbing). Matches\n`lr-stat`'s/`lr-app-rail-item`'s identical pattern.\n\nType: `string | undefined`"
|
|
2245
2403
|
}
|
|
2246
2404
|
]
|
|
2247
2405
|
},
|
|
@@ -2335,7 +2493,7 @@
|
|
|
2335
2493
|
},
|
|
2336
2494
|
{
|
|
2337
2495
|
"name": "lr-chart",
|
|
2338
|
-
"description": "`<lr-chart>` — the core Chart.js wrapper every other `lr-*-chart` tag\nsubclasses. Requires the optional peer
|
|
2496
|
+
"description": "`<lr-chart>` — the core Chart.js wrapper every other `lr-*-chart` tag\nsubclasses. Requires the optional peer dep `chart.js`; `chartjs-plugin-zoom`\n(for `zoom`) and `chartjs-plugin-datalabels` (for `data-labels`/`stack-totals`)\nare further optional peers loaded only on demand.\n\n**API mirror note:** the real `wa-chart` docs page\n(https://webawesome.com/docs/components/chart/) documents a `config:\nChartJS['config']` property alongside its simplified attributes — \"a\nflexible wrapper around Chart.js\" supporting *both* simplified attributes\nand full Chart.js configuration passthrough, not a `data`/`options` prop\npair. `lr-chart` mirrors that dual surface: the `Series`-based\n`datasets`/`labels`/`type`/`legend`/`xLabel`/`yLabel`/`zoom` attributes\nbelow are the simplified surface (compatible with WA's `type`, `xLabel`,\n`yLabel`, `withoutLegend`-equivalent `legend`, etc.), and the additional\n`config` property is the raw-passthrough escape hatch — a\n`Partial<ChartConfiguration>` deep-merged over the generated config in\n`buildConfig()`, mirroring WA's `config` property without discarding the\n`Series` shape the rest of this component family (subclasses, box-plot,\nhistogram) is built on.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| `center` | Optional overlay content positioned at the chart area's center. Useful for doughnut and pie totals. |\n| `data-table` | An optional consumer-provided accessible table alternative. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The chart wrapper. |\n| `canvas` | The Chart.js canvas. |\n| `center` | The chart-area-centered overlay wrapper for the `center` slot. |\n| `data-table` | The optional generated or slotted data table. |\n| `description` | The accessible chart summary. |\n| `error` | `role=\"alert\"` message shown instead of `canvas` when the optional `chart.js` peer dependency is not installed. |\n| `reset-zoom-button` | The reset-zoom control when zoom is active. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-chart-height` (default: `var(--lr-size-280px)`) — The host's `block-size`. Set on the host element from the `height` property on every change (custom properties only cascade downward, so it cannot be set from inside the shadow root); a host-level override is overwritten the next time `height` changes.\n- `--lr-chart-grid-color` (default: `var(--lr-color-border)`) — Grid-line color. Resolved via `getComputedStyle` on every draw (Chart.js paints to canvas and cannot consume `var()`).\n- `--lr-chart-tick-color` (default: `var(--lr-color-text-quiet)`) — Axis tick-label color; also used for the `xLabel`/`yLabel`/`y2Label` axis-title text (there is no separate title-color token). Resolved via `getComputedStyle` on every draw.\n- `--lr-chart-legend-color` (default: `var(--lr-color-text)`) — Legend label color. Resolved via `getComputedStyle` on every draw.\n- `--lr-chart-tooltip-bg` (default: `var(--lr-color-surface)`) — Tooltip background color. Resolved via `getComputedStyle` on every draw.\n- `--lr-chart-tooltip-text` (default: `var(--lr-color-text)`) — Tooltip text color. Resolved via `getComputedStyle` on every draw.",
|
|
2339
2497
|
"attributes": [
|
|
2340
2498
|
{
|
|
2341
2499
|
"name": "accessible-description",
|
|
@@ -2373,6 +2531,15 @@
|
|
|
2373
2531
|
]
|
|
2374
2532
|
}
|
|
2375
2533
|
},
|
|
2534
|
+
{
|
|
2535
|
+
"name": "data-labels",
|
|
2536
|
+
"description": "Draws each data point's value on the chart via the optional\n`chartjs-plugin-datalabels` peer. Unset (the default) leaves labels off for\nthis and every other chart on the page — the plugin registers globally, so\n`buildConfig()` explicitly disables it per-chart until this is set. The\nscreen-reader equivalent is the always-present data table (see\n`show-data-table`); labels are a purely visual, canvas-only addition.\n\nType: `boolean` \nDefault: `false`",
|
|
2537
|
+
"value": {
|
|
2538
|
+
"type": [
|
|
2539
|
+
"boolean"
|
|
2540
|
+
]
|
|
2541
|
+
}
|
|
2542
|
+
},
|
|
2376
2543
|
{
|
|
2377
2544
|
"name": "height",
|
|
2378
2545
|
"description": "Type: `string` \nDefault: `'280px'`",
|
|
@@ -2427,6 +2594,15 @@
|
|
|
2427
2594
|
]
|
|
2428
2595
|
}
|
|
2429
2596
|
},
|
|
2597
|
+
{
|
|
2598
|
+
"name": "stack-totals",
|
|
2599
|
+
"description": "When the chart is `stacked` (bar/line only), draws the per-category stack\ntotal above each stack, via the same optional `chartjs-plugin-datalabels`\npeer as `data-labels`. Null/undefined points are skipped; a category whose\nevery value is null shows no total. Unset (the default) draws nothing.\n\nType: `boolean` \nDefault: `false`",
|
|
2600
|
+
"value": {
|
|
2601
|
+
"type": [
|
|
2602
|
+
"boolean"
|
|
2603
|
+
]
|
|
2604
|
+
}
|
|
2605
|
+
},
|
|
2430
2606
|
{
|
|
2431
2607
|
"name": "stacked",
|
|
2432
2608
|
"description": "Stacks the `x`/`y`(/`y2`) scale entries `buildScales()` returns; only meaningful for `bar` and `line` types.\n\nType: `boolean` \nDefault: `false`",
|
|
@@ -2798,7 +2974,7 @@
|
|
|
2798
2974
|
},
|
|
2799
2975
|
{
|
|
2800
2976
|
"name": "lr-checkbox",
|
|
2801
|
-
"description": "`<lr-checkbox>` — a boolean form control. Structurally the same idea as\n`<lr-switch>` (form-associated via `ElementInternals`, click and\nSpace both toggle) but with checkbox semantics: `role=\"checkbox\"` +\nan `aria-checked` that can also be `\"mixed\"`, and a visual box/checkmark\ninstead of a track/thumb.\n\n`checked` is not a plain string, so this attaches `ElementInternals`\ndirectly and implements its own `updateValidity()` rather than using the\n`FormAssociated` mixin — see `<lr-combobox>` for the same\ndirect-`ElementInternals` shape with a non-string value.\n\nDeliberately no hint/error chrome of its own -- the default slot already carries real, visible\nlabel text (see `@slot` below), so a labeled-field frame built around `label`/`hint`/`errorText`\nprops has nothing to add here. A consumer needing hint/error messaging composes it in their own\nwrapper (e.g. `<lr-tool-param-form>` folds a boolean field's validation error into adjacent\ndescription text / `aria-label` rather than a `<lr-checkbox>`-owned slot), the same way a\nnative `<input type=\"checkbox\">` plus `<label>` pairs with an externally-owned error node.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| (default) | Label text, rendered next to the box. Clicking it toggles the checkbox, the same as clicking a native checkbox's associated `<label>`. If left empty, set `aria-label` on the host so the control still has an accessible name. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The whole interactive control (`role=\"checkbox\"`); wraps the box and label. |\n| `box` | The small square that shows the checkmark/indeterminate dash. |\n| `checkmark` | The checkmark (or indeterminate dash) glyph inside the box. |\n| `label` | The wrapper around the default slot. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-checkbox-label-indent` (default: `calc(min(var(--lr-icon-button-size), 1.75rem) + var(--lr-space-s))`) — The inline distance from the control's start edge to the start of the label text, i.e. the box's own floor plus the gap next to it. Published so a consumer composing per-option hint text under the label can align it without re-deriving that formula from the shadow styles, and used as the source of the real gap so the two cannot drift. Setting it on the element (or on `lr-checkbox` in your own stylesheet) moves the label; because custom properties inherit down and not sideways, it is *not* readable from a sibling node in your tree — align a sibling by computing the same formula from `--lr-theme-icon-button-size` and `--lr-theme-space-s`, which you control.\n- `--lr-checkbox-checked-bg` (default: `var(--lr-color-brand)`) — Background of `[part='box']` while `checked` or `indeterminate`. Retint just this control's checked fill without touching the shared `--lr-color-brand` token every other component also reads.\n- `--lr-checkbox-checked-border` (default: `var(--lr-color-brand)`) — Border color of `[part='box']` while `checked` or `indeterminate`.",
|
|
2977
|
+
"description": "`<lr-checkbox>` — a boolean form control. Structurally the same idea as\n`<lr-switch>` (form-associated via `ElementInternals`, click and\nSpace both toggle) but with checkbox semantics: `role=\"checkbox\"` +\nan `aria-checked` that can also be `\"mixed\"`, and a visual box/checkmark\ninstead of a track/thumb.\n\n`checked` is not a plain string, so this attaches `ElementInternals`\ndirectly and implements its own `updateValidity()` rather than using the\n`FormAssociated` mixin — see `<lr-combobox>` for the same\ndirect-`ElementInternals` shape with a non-string value.\n\nDeliberately no hint/error chrome of its own -- the default slot already carries real, visible\nlabel text (see `@slot` below), so a labeled-field frame built around `label`/`hint`/`errorText`\nprops has nothing to add here. A consumer needing hint/error messaging composes it in their own\nwrapper (e.g. `<lr-tool-param-form>` folds a boolean field's validation error into adjacent\ndescription text / `aria-label` rather than a `<lr-checkbox>`-owned slot), the same way a\nnative `<input type=\"checkbox\">` plus `<label>` pairs with an externally-owned error node.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| (default) | Label text, rendered next to the box. Clicking it toggles the checkbox, the same as clicking a native checkbox's associated `<label>`. If left empty, set `aria-label` on the host so the control still has an accessible name. A host `aria-describedby` attribute is forwarded to the internal `role=\"checkbox\"` so externally-owned descriptions can be associated with this individual control. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The whole interactive control (`role=\"checkbox\"`); wraps the box and label. |\n| `box` | The small square that shows the checkmark/indeterminate dash. |\n| `checkmark` | The checkmark (or indeterminate dash) glyph inside the box. |\n| `label` | The wrapper around the default slot. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-checkbox-label-indent` (default: `calc(min(var(--lr-icon-button-size), 1.75rem) + var(--lr-space-s))`) — The inline distance from the control's start edge to the start of the label text, i.e. the box's own floor plus the gap next to it. Published so a consumer composing per-option hint text under the label can align it without re-deriving that formula from the shadow styles, and used as the source of the real gap so the two cannot drift. Setting it on the element (or on `lr-checkbox` in your own stylesheet) moves the label; because custom properties inherit down and not sideways, it is *not* readable from a sibling node in your tree — align a sibling by computing the same formula from `--lr-theme-icon-button-size` and `--lr-theme-space-s`, which you control.\n- `--lr-checkbox-checked-bg` (default: `var(--lr-color-brand)`) — Background of `[part='box']` while `checked` or `indeterminate`. Retint just this control's checked fill without touching the shared `--lr-color-brand` token every other component also reads.\n- `--lr-checkbox-checked-border` (default: `var(--lr-color-brand)`) — Border color of `[part='box']` while `checked` or `indeterminate`.",
|
|
2802
2978
|
"attributes": [
|
|
2803
2979
|
{
|
|
2804
2980
|
"name": "checked",
|
|
@@ -3693,7 +3869,7 @@
|
|
|
3693
3869
|
},
|
|
3694
3870
|
{
|
|
3695
3871
|
"name": "lr-combobox",
|
|
3696
|
-
"description": "`<lr-combobox>` — a filterable single/multi select that combines a text\ninput with a listbox. Mirrors the core `<wa-combobox>` API under `lr-`.\n\nOptions are `<lr-option value>` children. Emits native-style `change`/`input`\n(like Web Awesome) plus `lr-show`/`lr-hide`/`lr-clear`.\nStandard size tiers share their outer control height with sibling Lyra controls; the decorative\nexpand icon scales inside that allocation without creating an independent action target.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| (default) | `<lr-option>` elements. |\n| `end` | Adornment after the filter input and the built-in clear action, and before the expand icon — so consumer content never sits outboard of the dropdown chevron. |\n| `error` | Custom error content. |\n| `hint` | Custom hint content. |\n| `label` | Custom label content. |\n| `start` | Adornment at the inline-start of the trigger row, before the selected-value tags and the filter input. Slotted content is decorative chrome, not an option: `collectOptions()` only ever collects `<lr-option>` elements from the default slot. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `clear-button` | The clear button. |\n| `combobox` | The input container (positioning anchor). |\n| `combobox-input` | The text input. |\n| `end` | Wrapper around the `end` adornment slot; `hidden` while nothing is slotted. |\n| `error` | The error message. |\n| `expand-icon` | The dropdown indicator. |\n| `form-control` | The outer wrapper around label, combobox, listbox, error and hint. |\n| `form-control-label` | The `<label>` element. |\n| `hint` | The hint message. |\n| `listbox` | The options popover. |\n| `option` | An option row. |\n| `option-badge` | An async option row's optional trailing metadata badge. |\n| `option-dot` | An option row's leading status dot (when `dot-color` is set). |\n| `option-icon` | An async option row's optional decorative leading visual. |\n| `option-label` | An option row's label/sub wrapper. |\n| `option-overflow` | The \"+N more\" indicator shown when rows are capped by `maxRender`. |\n| `option-sub` | An option row's secondary line (when `sub` is set). |\n| `start` | Wrapper around the `start` adornment slot; `hidden` while nothing is slotted. |\n| `tag` | An individual selected tag. |\n| `tag__remove-button` | A tag's remove button. |\n| `tags` | The multi-select tag container. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-combobox-trigger-padding` — Padding inside the input container.\n- `--lr-combobox-trigger-min-height` — Minimum input-container block size, scaled by `size`.\n- `--lr-combobox-trigger-height` — Exact input-container height. Unset by default, which leaves `--lr-combobox-trigger-min-height` as a floor only; set it to a length to both floor and cap the row (e.g. to pixel-match `<lr-input>`/`<lr-select>` in the same toolbar). Because it is never declared by the component itself, it can be set from an ancestor or an outer-tree rule as well as inline on the element. Intended for a single-row combobox: in `multiple` mode a tag row long enough to wrap overflows the pinned box visibly (nothing is clipped or made unreachable), so leave it unset there.\n- `--lr-combobox-font-size` — Input text size.\n- `--lr-combobox-tag-padding` — Selected-tag padding.\n- `--lr-combobox-tag-font-size` — Selected-tag text size.\n- `--lr-combobox-expand-size` — Decorative expand-icon box size, scaled by `size`.\n- `--lr-combobox-gap` (default: `var(--lr-space-xs)`) — Gap between the start/end adornments, tags, and filter input inside the trigger row. Unlike the size knobs above it does not vary by `size` tier. Override it to retune without a `::part(combobox)` rule.\n- `--lr-combobox-radius` (default: `var(--lr-radius)`) — Corner radius of the trigger row (`[part='combobox']`). Does not vary by `size` tier.\n- `--lr-combobox-option-active-bg` (default: `var(--lr-color-brand-quiet)`) — Background of a hovered or keyboard-active option row.",
|
|
3872
|
+
"description": "`<lr-combobox>` — a filterable single/multi select that combines a text\ninput with a listbox. Mirrors the core `<wa-combobox>` API under `lr-`.\n\nOptions are `<lr-option value>` children. Emits native-style `change`/`input`\n(like Web Awesome) plus `lr-show`/`lr-hide`/`lr-clear`.\nStandard size tiers share their outer control height with sibling Lyra controls; the decorative\nexpand icon scales inside that allocation without creating an independent action target.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| (default) | `<lr-option>` elements. |\n| `end` | Adornment after the filter input and the built-in clear action, and before the expand icon — so consumer content never sits outboard of the dropdown chevron. |\n| `error` | Custom error content. |\n| `hint` | Custom hint content. |\n| `label` | Custom label content. |\n| `start` | Adornment at the inline-start of the trigger row, before the selected-value tags and the filter input. Slotted content is decorative chrome, not an option: `collectOptions()` only ever collects `<lr-option>` elements from the default slot. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `clear-button` | The clear button. |\n| `combobox` | The input container (positioning anchor). |\n| `combobox-input` | The text input. |\n| `end` | Wrapper around the `end` adornment slot; `hidden` while nothing is slotted. |\n| `error` | The error message. |\n| `expand-icon` | The dropdown indicator. |\n| `form-control` | The outer wrapper around label, combobox, listbox, error and hint. |\n| `form-control-label` | The `<label>` element. |\n| `hint` | The hint message. |\n| `listbox` | The options popover. |\n| `option` | An option row. |\n| `option-badge` | An async option row's optional trailing metadata badge. |\n| `option-dot` | An option row's leading status dot (when `dot-color` is set). |\n| `option-icon` | An async option row's optional decorative leading visual. |\n| `option-label` | An option row's label/sub wrapper. |\n| `option-overflow` | The \"+N more\" indicator shown when rows are capped by `maxRender`. |\n| `option-sub` | An option row's secondary line (when `sub` is set). |\n| `start` | Wrapper around the `start` adornment slot; `hidden` while nothing is slotted. |\n| `tag` | An individual selected tag. |\n| `tag__remove-button` | A tag's remove button. |\n| `tags` | The multi-select tag container. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-combobox-trigger-padding` — Padding inside the input container.\n- `--lr-combobox-trigger-min-height` — Minimum input-container block size, scaled by `size`.\n- `--lr-combobox-trigger-height` — Exact input-container height. Unset by default, which leaves `--lr-combobox-trigger-min-height` as a floor only; set it to a length to both floor and cap the row (e.g. to pixel-match `<lr-input>`/`<lr-select>` in the same toolbar). Because it is never declared by the component itself, it can be set from an ancestor or an outer-tree rule as well as inline on the element. Intended for a single-row combobox: in `multiple` mode a tag row long enough to wrap overflows the pinned box visibly (nothing is clipped or made unreachable), so leave it unset there.\n- `--lr-combobox-font-size` — Input text size.\n- `--lr-combobox-tag-padding` — Selected-tag padding.\n- `--lr-combobox-tag-font-size` — Selected-tag text size.\n- `--lr-combobox-expand-size` — Decorative expand-icon box size, scaled by `size`.\n- `--lr-combobox-gap` (default: `var(--lr-space-xs)`) — Gap between the start/end adornments, tags, and filter input inside the trigger row. Unlike the size knobs above it does not vary by `size` tier. Override it to retune without a `::part(combobox)` rule.\n- `--lr-combobox-radius` (default: `var(--lr-radius)`) — Corner radius of the trigger row (`[part='combobox']`). Does not vary by `size` tier.\n- `--lr-combobox-option-active-bg` (default: `var(--lr-color-brand-quiet)`) — Background of a hovered or keyboard-active option row.\n- `--lr-combobox-option-selected-bg` (default: `transparent`) — Background of the currently-selected option row. Not declared on `:host`; retheme without hijacking `--lr-color-brand`.\n- `--lr-combobox-option-selected-border` (default: `var(--lr-color-brand)`) — Border color of the selected option row.\n- `--lr-combobox-option-selected-color` (default: `var(--lr-color-brand)`) — Text color of the selected option row.\n- `--lr-combobox-option-selected-font-weight` (default: `var(--lr-font-weight-semibold)`) — Font weight of the selected option row.",
|
|
3697
3873
|
"attributes": [
|
|
3698
3874
|
{
|
|
3699
3875
|
"name": "autocapitalize",
|
|
@@ -3823,7 +3999,7 @@
|
|
|
3823
3999
|
},
|
|
3824
4000
|
{
|
|
3825
4001
|
"name": "max-render",
|
|
3826
|
-
"description": "Maximum number of rows rendered before the rest collapse behind the overflow indicator\n(the current selection is always kept visible regardless). Sanitized to a finite,\nnon-negative integer.\n\nType: `number`",
|
|
4002
|
+
"description": "Maximum number of rows rendered before the rest collapse behind the overflow indicator\n(the current selection is always kept visible regardless). Sanitized to a finite,\nnon-negative integer.\n\nRows render in full rather than as a recycled scroll window, because the filter input's\n`aria-activedescendant` is an IDREF and can only resolve within its own tree scope — rows\nhosted inside a nested windowing element would sit one shadow root deeper than the input\nthat must point at them. Raising this to cover a few-hundred-entry list (countries,\ncurrencies, time zones) is the intended use; past roughly a thousand rows, `source` narrows\nthe set before it becomes DOM and is the better tool.\n\nType: `number`",
|
|
3827
4003
|
"value": {
|
|
3828
4004
|
"type": [
|
|
3829
4005
|
"number"
|
|
@@ -3893,6 +4069,15 @@
|
|
|
3893
4069
|
]
|
|
3894
4070
|
}
|
|
3895
4071
|
},
|
|
4072
|
+
{
|
|
4073
|
+
"name": "source-delay",
|
|
4074
|
+
"description": "Debounce (ms) between the last keystroke and the `source` call. Sanitized to a finite\nduration clamped to `[0, browser-timer-ceiling]`; `0` fires on every keystroke, a\nnon-finite value falls back to the `200` default.\n\nType: `number`",
|
|
4075
|
+
"value": {
|
|
4076
|
+
"type": [
|
|
4077
|
+
"number"
|
|
4078
|
+
]
|
|
4079
|
+
}
|
|
4080
|
+
},
|
|
3896
4081
|
{
|
|
3897
4082
|
"name": "spellcheck",
|
|
3898
4083
|
"description": "Type: `boolean` \nDefault: `true`",
|
|
@@ -4391,7 +4576,7 @@
|
|
|
4391
4576
|
},
|
|
4392
4577
|
{
|
|
4393
4578
|
"name": "lr-conversation-item",
|
|
4394
|
-
"description": "`<lr-conversation-item>` — a selectable row representing one chat\nsession in a history sidebar list. Usable standalone or as the\n`renderItem()` payload of a sibling virtualized-list component; this\nmodule has no dependency on that (or any) other component.\n\nTakes `title`/`excerpt`/`timestamp` as individual primitive props rather\nthan one opaque bound object, deliberately consistent with how\n`<lr-chat-message>` takes individual props instead of a single\n`.message` blob -- every other component in this family follows that\nshape, so this one does too even though a single bound `.session` object\nwould also have been a reasonable design.\n\nIdentifying *which* session a `lr-select` click/keypress was about: this\nreuses the platform's own `id` attribute (every element already has one)\nrather than inventing a second, differently-named id-carrying prop --\nconsumers already have the event's `target`/`currentTarget` (and thus\n`.id`), the same reasoning `<lr-attachment-chip>` documents for its own\nidentically-shaped choice. `lr-select` therefore carries no detail\npayload at all.\n\n`role=\"button\"` on `[part=\"option\"]` so the item has valid semantics both\nstandalone and when placed in a larger history-list layout. A conversation\nrow activates one current session; it is not itself a listbox option and\ntherefore does not require a particular owner role.\n\n`role=\"button\"` forbids focusable\ndescendants -- verified against axe-core's `nested-interactive` rule,\nwhich flags it. That's why the rename button and the `actions` slot are\nrendered as DOM *siblings* of `[part=\"option\"]` (both inside\n`[part=\"base\"]`) rather than nested inside it: `[part=\"option\"]` only ever\ncontains plain text/`<time>` content. The in-place rename `<input>` is the\nsame problem one level deeper -- it replaces the title *inside*\n`[part=\"option\"]` while renaming -- so `[part=\"option\"]` sheds its\n`role`/`tabindex`/`aria-current`/`aria-label` entirely for the duration\nof an edit. A row mid-edit is a text field, so suspending the button\nsemantics is also the more accurate\ndescription of what's on screen.\n\nInline rename is a dedicated pencil/edit icon button (not a double-click\non the title) -- double-click has no keyboard/screen-reader equivalent\nand would silently swallow the row's own single-click `lr-select`,\nwhereas a button is independently focusable, has its own accessible name,\nand composes cleanly with click-to-select.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| `actions` | Overflow/icon-button controls (for example a pin/delete button or a `lr-menu` trigger) rendered at the trailing edge of the row. |\n| `content` | Replaces the built-in title, excerpt, and meta content area with host-supplied non-interactive row content. |\n| `excerpt` | Full override of the excerpt presentation (e.g. a search-hit snippet with `<mark>` highlighting). Wins over the `excerpt` property whenever it has assigned content, even if `excerpt` is also set. Only non-focusable content should be slotted here — see the `excerpt` property's own doc for why. |\n| `leading` | Non-interactive leading content such as an avatar, purpose icon, or status indicator. It is rendered inside the selectable region before the title/excerpt content. |\n| `meta` | Small, non-focusable structured fields for the row (e.g. a day label, cost, request count) rendered below the title/excerpt. Entirely app-supplied; this component computes none of it. Only non-focusable content should be slotted here, for the same `nested-interactive` reason as `excerpt`. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `actions` | The wrapper around the `actions` slot. |\n| `base` | The outer row wrapper (plain, no ARIA role) laying out `[part=\"option\"]`, the rename button, and `actions`. |\n| `content` | Wrapper around the title and excerpt. |\n| `excerpt` | The last-message preview snippet. Only rendered when `excerpt` is non-empty. |\n| `leading` | The wrapper around the `leading` slot, inside `option`. Always rendered, but `hidden` while that slot is empty. |\n| `meta` | The wrapper around the `meta` slot. Only rendered in the built-in content path (not when the `content` slot is used), and `hidden` while the `meta` slot is empty. |\n| `option` | The selectable region (`role=\"button\"`, removed while renaming -- see the class doc). Wraps `content` and `timestamp`. |\n| `rename-button` | The pencil/edit affordance that starts a rename (only rendered while `editable` and not already renaming). |\n| `timestamp` | The formatted `timestamp`, rendered in a `<time>` element. Only rendered when `timestamp` is set and valid. |\n| `title` | The title text, shown while not renaming. |\n| `title-input` | The in-place rename `<input>`, shown only while renaming. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-conversation-item-active-bg` (default: `var(--lr-color-brand-quiet)`) — Background of the row while `active`. **Contrast-sensitive:** it is one half of a documented WCAG-AA pair — the active row's text is sized/toned for this background, so an override has to keep at least a 4.5:1 ratio against `--lr-conversation-item-active-color` (excerpt/timestamp) and against `--lr-color-text` (the title, which is not restyled by the pair).\n- `--lr-conversation-item-active-color` (default: `var(--lr-color-text)`) — Text color of `[part=\"excerpt\"]` and `[part=\"timestamp\"]` while `active`. **Contrast-sensitive:** it exists precisely because `--lr-color-text-quiet` only reaches ~4.25:1 against the active background; override it together with `--lr-conversation-item-active-bg`, never alone.\n- `--lr-conversation-item-compact-padding` (default: `var(--lr-space-xs) var(--lr-space-s)`) — `[part=\"base\"]` padding while `compact`.\n- `--lr-conversation-item-compact-gap` (default: `var(--lr-space-2xs)`) — Gap between `[part=\"base\"]`'s columns while `compact`.",
|
|
4579
|
+
"description": "`<lr-conversation-item>` — a selectable row representing one chat\nsession in a history sidebar list. Usable standalone or as the\n`renderItem()` payload of a sibling virtualized-list component; this\nmodule has no dependency on that (or any) other component.\n\nTakes `title`/`excerpt`/`timestamp` as individual primitive props rather\nthan one opaque bound object, deliberately consistent with how\n`<lr-chat-message>` takes individual props instead of a single\n`.message` blob -- every other component in this family follows that\nshape, so this one does too even though a single bound `.session` object\nwould also have been a reasonable design.\n\nIdentifying *which* session a `lr-select` click/keypress was about: this\nreuses the platform's own `id` attribute (every element already has one)\nrather than inventing a second, differently-named id-carrying prop --\nconsumers already have the event's `target`/`currentTarget` (and thus\n`.id`), the same reasoning `<lr-attachment-chip>` documents for its own\nidentically-shaped choice. `lr-select` therefore carries no detail\npayload at all.\n\n`role=\"button\"` on `[part=\"option\"]` so the item has valid semantics both\nstandalone and when placed in a larger history-list layout. A conversation\nrow activates one current session; it is not itself a listbox option and\ntherefore does not require a particular owner role.\n\n`role=\"button\"` forbids focusable\ndescendants -- verified against axe-core's `nested-interactive` rule,\nwhich flags it. That's why the rename button and the `actions` slot are\nrendered as DOM *siblings* of `[part=\"option\"]` (both inside\n`[part=\"base\"]`) rather than nested inside it: `[part=\"option\"]` only ever\ncontains plain text/`<time>` content. The in-place rename `<input>` is the\nsame problem one level deeper -- it replaces the title *inside*\n`[part=\"option\"]` while renaming -- so `[part=\"option\"]` sheds its\n`role`/`tabindex`/`aria-current`/`aria-label` entirely for the duration\nof an edit. A row mid-edit is a text field, so suspending the button\nsemantics is also the more accurate\ndescription of what's on screen.\n\nInline rename is a dedicated pencil/edit icon button (not a double-click\non the title) -- double-click has no keyboard/screen-reader equivalent\nand would silently swallow the row's own single-click `lr-select`,\nwhereas a button is independently focusable, has its own accessible name,\nand composes cleanly with click-to-select.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| `actions` | Overflow/icon-button controls (for example a pin/delete button or a `lr-menu` trigger) rendered at the trailing edge of the row. |\n| `content` | Replaces the built-in title, excerpt, and meta content area with host-supplied non-interactive row content. |\n| `excerpt` | Full override of the excerpt presentation (e.g. a search-hit snippet with `<mark>` highlighting). Wins over the `excerpt` property whenever it has assigned content, even if `excerpt` is also set. Only non-focusable content should be slotted here — see the `excerpt` property's own doc for why. |\n| `leading` | Non-interactive leading content such as an avatar, purpose icon, or status indicator. It is rendered inside the selectable region before the title/excerpt content. |\n| `meta` | Small, non-focusable structured fields for the row (e.g. a day label, cost, request count) rendered below the title/excerpt. Entirely app-supplied; this component computes none of it. Only non-focusable content should be slotted here, for the same `nested-interactive` reason as `excerpt`. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `actions` | The wrapper around the `actions` slot. |\n| `active-indicator` | A decorative inline indicator rendered only while the row is active. |\n| `base` | The outer row wrapper (plain, no ARIA role) laying out `[part=\"option\"]`, the rename button, and `actions`. |\n| `content` | Wrapper around the title and excerpt. |\n| `excerpt` | The last-message preview snippet. Only rendered when `excerpt` is non-empty. |\n| `leading` | The wrapper around the `leading` slot, inside `option`. Always rendered, but `hidden` while that slot is empty. |\n| `meta` | The wrapper around the `meta` slot. Only rendered in the built-in content path (not when the `content` slot is used), and `hidden` while the `meta` slot is empty. |\n| `option` | The selectable region (`role=\"button\"`, removed while renaming -- see the class doc). Wraps `content` and `timestamp`. |\n| `rename-button` | The pencil/edit affordance that starts a rename (only rendered while `editable` and not already renaming). |\n| `timestamp` | The formatted `timestamp`, rendered in a `<time>` element. Only rendered when `timestamp` is set and valid. |\n| `title` | The title text, shown while not renaming. |\n| `title-input` | The in-place rename `<input>`, shown only while renaming. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-conversation-item-active-bg` (default: `var(--lr-color-brand-quiet)`) — Background of the row while `active`. **Contrast-sensitive:** it is one half of a documented WCAG-AA pair — the active row's text is sized/toned for this background, so an override has to keep at least a 4.5:1 ratio against `--lr-conversation-item-active-color` (excerpt/timestamp) and against `--lr-color-text` (the title, which is not restyled by the pair).\n- `--lr-conversation-item-active-color` (default: `var(--lr-color-text)`) — Text color of `[part=\"excerpt\"]` and `[part=\"timestamp\"]` while `active`. **Contrast-sensitive:** it exists precisely because `--lr-color-text-quiet` only reaches ~4.25:1 against the active background; override it together with `--lr-conversation-item-active-bg`, never alone.\n- `--lr-conversation-item-active-indicator-color` (default: `var(--lr-color-brand)`) — Color of the decorative `[part=\"active-indicator\"]` while `active`.\n- `--lr-conversation-item-active-indicator-width` (default: `var(--lr-size-2px)`) — Inline size of `[part=\"active-indicator\"]` while `active`.\n- `--lr-conversation-item-active-indicator-inset-inline` (default: `0 auto`) — Logical inline-start and inline-end insets for `[part=\"active-indicator\"]`; set `auto 0` to place it at inline-end.\n- `--lr-conversation-item-compact-padding` (default: `var(--lr-space-xs) var(--lr-space-s)`) — `[part=\"base\"]` padding while `compact`.\n- `--lr-conversation-item-compact-gap` (default: `var(--lr-space-2xs)`) — Gap between `[part=\"base\"]`'s columns while `compact`.",
|
|
4395
4580
|
"attributes": [
|
|
4396
4581
|
{
|
|
4397
4582
|
"name": "active",
|
|
@@ -5699,6 +5884,15 @@
|
|
|
5699
5884
|
]
|
|
5700
5885
|
}
|
|
5701
5886
|
},
|
|
5887
|
+
{
|
|
5888
|
+
"name": "data-labels",
|
|
5889
|
+
"description": "Draws each data point's value on the chart via the optional\n`chartjs-plugin-datalabels` peer. Unset (the default) leaves labels off for\nthis and every other chart on the page — the plugin registers globally, so\n`buildConfig()` explicitly disables it per-chart until this is set. The\nscreen-reader equivalent is the always-present data table (see\n`show-data-table`); labels are a purely visual, canvas-only addition.\n\nType: `boolean` \nDefault: `false`",
|
|
5890
|
+
"value": {
|
|
5891
|
+
"type": [
|
|
5892
|
+
"boolean"
|
|
5893
|
+
]
|
|
5894
|
+
}
|
|
5895
|
+
},
|
|
5702
5896
|
{
|
|
5703
5897
|
"name": "height",
|
|
5704
5898
|
"description": "Type: `string` \nDefault: `'280px'`",
|
|
@@ -5753,6 +5947,15 @@
|
|
|
5753
5947
|
]
|
|
5754
5948
|
}
|
|
5755
5949
|
},
|
|
5950
|
+
{
|
|
5951
|
+
"name": "stack-totals",
|
|
5952
|
+
"description": "When the chart is `stacked` (bar/line only), draws the per-category stack\ntotal above each stack, via the same optional `chartjs-plugin-datalabels`\npeer as `data-labels`. Null/undefined points are skipped; a category whose\nevery value is null shows no total. Unset (the default) draws nothing.\n\nType: `boolean` \nDefault: `false`",
|
|
5953
|
+
"value": {
|
|
5954
|
+
"type": [
|
|
5955
|
+
"boolean"
|
|
5956
|
+
]
|
|
5957
|
+
}
|
|
5958
|
+
},
|
|
5756
5959
|
{
|
|
5757
5960
|
"name": "stacked",
|
|
5758
5961
|
"description": "Stacks the `x`/`y`(/`y2`) scale entries `buildScales()` returns; only meaningful for `bar` and `line` types.\n\nType: `boolean` \nDefault: `false`",
|
|
@@ -6131,6 +6334,43 @@
|
|
|
6131
6334
|
}
|
|
6132
6335
|
]
|
|
6133
6336
|
},
|
|
6337
|
+
{
|
|
6338
|
+
"name": "lr-embedding-explorer",
|
|
6339
|
+
"description": "`<lr-embedding-explorer>` — a dependency-free, accessible 2D embedding projection viewer. It\nnormalizes host-provided coordinates into an SVG plot, colors optional clusters, and exposes\nclick/keyboard selection. It does not run PCA/UMAP/t-SNE, fetch chunks, or mutate points.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The root wrapper. |\n| `empty` | The empty state. |\n| `plot` | The SVG projection plot. |\n| `point` | One focusable embedding point. |",
|
|
6340
|
+
"attributes": [
|
|
6341
|
+
{
|
|
6342
|
+
"name": "aria-label",
|
|
6343
|
+
"description": "Accessible name for the plot.\n\nType: `string | null` \nDefault: `null`"
|
|
6344
|
+
},
|
|
6345
|
+
{
|
|
6346
|
+
"name": "height",
|
|
6347
|
+
"description": "SVG block size.\n\nType: `string` \nDefault: `'360px'`",
|
|
6348
|
+
"value": {
|
|
6349
|
+
"type": [
|
|
6350
|
+
"string"
|
|
6351
|
+
]
|
|
6352
|
+
}
|
|
6353
|
+
},
|
|
6354
|
+
{
|
|
6355
|
+
"name": "locale",
|
|
6356
|
+
"description": "Optional locale override. Otherwise the nearest `locale`/`lang` ancestor is used.\n\nType: `string` \nDefault: `''`",
|
|
6357
|
+
"value": {
|
|
6358
|
+
"type": [
|
|
6359
|
+
"string"
|
|
6360
|
+
]
|
|
6361
|
+
}
|
|
6362
|
+
},
|
|
6363
|
+
{
|
|
6364
|
+
"name": "selected-id",
|
|
6365
|
+
"description": "The selected point id. Controlled by the host.\n\nType: `string` \nDefault: `''`",
|
|
6366
|
+
"value": {
|
|
6367
|
+
"type": [
|
|
6368
|
+
"string"
|
|
6369
|
+
]
|
|
6370
|
+
}
|
|
6371
|
+
}
|
|
6372
|
+
]
|
|
6373
|
+
},
|
|
6134
6374
|
{
|
|
6135
6375
|
"name": "lr-emoji-picker",
|
|
6136
6376
|
"description": "`<lr-emoji-picker>` — a searchable, keyboard-navigable, form-associated emoji picker. In the\nsame \"zero/optional-peer dependency\" spirit as `<lr-lite-chart>`/`<lr-heatmap>`: `groups` is\nfully consumer-suppliable (this component ships no emoji data of its own), with an *optional*\nconvenience auto-loader for a default set — see `emoji-data-loader.ts` and the class doc there for\nexactly what that covers.\n\nKeyboard model: the grid is a roving-tabindex listbox (a single Tab stop — only the active emoji\nis tabbable). Arrow keys move the active option (Left/Right follow reading direction and swap\nunder RTL; Up/Down move by one visual row, measured from the live wrap layout), Home/End jump to\nthe first/last option, and Enter/Space picks. The search input doubles as a `role=\"combobox\"`\nover the same listbox: the arrow keys and Enter also work there while focus stays in the input,\nwith `aria-activedescendant` tracking the active option. Large data sets automatically window\ntheir visible rows so scrolling does not create one button per supplied emoji in the DOM.\n\nShips the same opt-in `label`/`hint`/`errorText` form-control chrome as `<lr-select>`/\n`<lr-color-picker>` (props + matching named slots + `form-control`/`form-control-label`/`hint`/\n`error` parts) — left unset, the chrome stays hidden. When `label` (or the `label` slot) is set\nand `aria-label`/`accessibleLabel` is not, the grid's accessible name switches from the\nlocalized default to `aria-labelledby` pointing at the visible label, mirroring\n`<lr-checkbox-group>`'s identical `accessibleLabel`-wins-over-`aria-labelledby` precedence.\n\n`disabled` (from the `FormAssociated` mixin) gates every self-rendered interactive\nsub-control — the search input and every emoji button — not just one of them.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| `error` | Custom error content. |\n| `hint` | Custom hint content. |\n| `label` | Custom label content. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The wrapper around the search input and grid. |\n| `emoji` | Each emoji's own `<button>`; its box and glyph both scale with the `size` property (`--lr-emoji-picker-item-size`/`-glyph-size`), with the hit area floored at a flat 24px (WCAG 2.5.8) rather than the shared `--lr-icon-button-size`. |\n| `empty` | The empty-state message, shown when the search matches nothing. |\n| `error` | The error message. |\n| `form-control` | The outer wrapper around label, base, error and hint. |\n| `form-control-label` | The visible label. |\n| `grid` | The keyboard-navigable emoji grid. |\n| `group-label` | Each group's heading, rendered above its emojis. |\n| `hint` | The hint message. |\n| `search` | The search/filter `<input>` (`role=\"combobox\"` over the grid). |\n| `virtual-items` | The flex row holding one windowed row's emoji buttons. |\n| `virtual-label` | The `aria-hidden` placeholder that reserves a row's group-label band when that row has no label, keeping every row the same height. Rendered on the windowed path only. |\n| `virtual-row` | One windowed row, absolutely positioned at the `--lr-emoji-picker-row-height` pitch. Rendered on the windowed path only. |\n| `virtual-spacer` | The full-height scroll spacer that gives the grid its scrollbar while only the visible rows exist in the DOM. Rendered on the windowed path only. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-emoji-picker-item-size` (default: `var(--lr-icon-button-size)`) — Each emoji button's box. Clamped up to `--lr-icon-button-size`: a smaller value does not shrink the button.\n- `--lr-emoji-picker-glyph-size` (default: `var(--lr-font-size-lg)`) — Font size of the emoji glyph, scaled by the `size` property to keep the glyph proportional to the item box.\n- `--lr-emoji-picker-gap` (default: `var(--lr-space-2xs)`) — Gap between emoji within a windowed row.\n- `--lr-emoji-picker-row-height` (default: `calc(var(--lr-emoji-picker-item-size) + var(--lr-space-l))`) — One windowed row's height. Must stay at or above the item size plus the group-label band, or consecutive absolutely-positioned rows overlap.\n- `--lr-emoji-picker-active-bg` (default: `var(--lr-color-brand-quiet)`) — Background of the keyboard-active (`data-active`) **and** hovered emoji button — the two share a single rule, so this one hook retints both consistently. Declared as an inline `var()` fallback (never on `:host`), so setting it on the element or an ancestor recolors only the emoji highlight without hijacking the library-wide `--lr-color-brand-quiet` token.",
|
|
@@ -6220,7 +6460,7 @@
|
|
|
6220
6460
|
},
|
|
6221
6461
|
{
|
|
6222
6462
|
"name": "lr-empty",
|
|
6223
|
-
"description": "`<lr-empty>` — a generic empty/no-data state. First-party invention (no\nWeb Awesome equivalent); fills a gap common to dashboard-style apps.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| (default) | Custom icon or illustration (defaults to none). |\n| `actions` | Buttons/links shown below the description. |\n| `description` | Rich description content (overrides the `description` attribute). |\n| `heading` | Rich heading content (overrides the `heading` attribute). |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `actions` | The wrapper around the `actions`-slotted content. |\n| `base` | The outer container. |\n| `description` | The description paragraph. |\n| `heading` | The heading paragraph. |\n| `icon` | The wrapper around the default-slotted icon/illustration. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-empty-compact-align` — Cross-axis and text alignment used in compact mode; set to `center` for dense but centered empty states.\n- `--lr-empty-compact-padding` (default: `var(--lr-space-xs)`) — Padding used in compact mode; accepts any padding shorthand (e.g. `8px 2px`).\n- `--lr-empty-compact-gap` (default: `var(--lr-space-2xs)`) — Gap between the icon, title, and description in compact mode.",
|
|
6463
|
+
"description": "`<lr-empty>` — a generic empty/no-data state. First-party invention (no\nWeb Awesome equivalent); fills a gap common to dashboard-style apps.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| (default) | Custom icon or illustration (defaults to none). |\n| `actions` | Buttons/links shown below the description. |\n| `description` | Rich description content (overrides the `description` attribute). |\n| `heading` | Rich heading content (overrides the `heading` attribute). |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `actions` | The wrapper around the `actions`-slotted content. |\n| `base` | The outer container. |\n| `description` | The description paragraph. |\n| `heading` | The heading paragraph. |\n| `icon` | The wrapper around the default-slotted icon/illustration. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-empty-compact-align` — Cross-axis and text alignment used in compact mode; set to `center` for dense but centered empty states.\n- `--lr-empty-compact-padding` (default: `var(--lr-space-xs)`) — Padding used in compact mode; accepts any padding shorthand (e.g. `8px 2px`).\n- `--lr-empty-compact-gap` (default: `var(--lr-space-2xs)`) — Gap between the icon, title, and description in compact mode.\n- `--lr-empty-compact-font-size` — Heading font size used in compact mode. Unset by default (no fallback), so the heading keeps its ordinary inherited font size until a consumer opts in.",
|
|
6224
6464
|
"attributes": [
|
|
6225
6465
|
{
|
|
6226
6466
|
"name": "compact",
|
|
@@ -6724,7 +6964,7 @@
|
|
|
6724
6964
|
},
|
|
6725
6965
|
{
|
|
6726
6966
|
"name": "lr-file-input",
|
|
6727
|
-
"description": "`<lr-file-input>` — a drag-drop + click-to-browse file dropzone. Emits\nraw `File[]`; parsing (CSV/XLSX/etc.) is left to the host, since that's\nwhere files ultimately get uploaded and processed anyway.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| (default) | Custom drop-zone content, overrides the visible `label` text. The accessible name comes from a host `aria-label` when present, then falls back to `label`, so icon-only slot content remains announced correctly. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The dropzone's root, clickable/focusable container. |\n| `input` | The visually-hidden native `<input type=\"file\">`. |\n| `status` | The visually-hidden live region announcing drag accept/reject state. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-file-input-compact-padding` (default: `var(--lr-space-s)`) — `[part=\"base\"]` padding while `compact`.\n- `--lr-file-input-compact-gap` (default: `var(--lr-space-2xs)`) — Gap between the dropzone's slotted children while `compact`.\n- `--lr-file-input-compact-font-size` (default: `var(--lr-font-size-sm)`) — Label font size while `compact`.\n- `--lr-file-input-accept-border-color` (default: `var(--lr-color-success)`) — Border color of `[part=\"base\"][data-drag-state=\"accept\"]`.\n- `--lr-file-input-accept-bg` (default: `color-mix(in srgb, var(--lr-color-success) 8%, transparent)`) — Background of `[part=\"base\"][data-drag-state=\"accept\"]`.\n- `--lr-file-input-reject-border-color` (default: `var(--lr-color-danger)`) — Border color of `[part=\"base\"][data-drag-state=\"reject\"]`.\n- `--lr-file-input-reject-bg` (default: `color-mix(in srgb, var(--lr-color-danger) 8%, transparent)`) — Background of `[part=\"base\"][data-drag-state=\"reject\"]`.",
|
|
6967
|
+
"description": "`<lr-file-input>` — a drag-drop + click-to-browse file dropzone. Emits\nraw `File[]`; parsing (CSV/XLSX/etc.) is left to the host, since that's\nwhere files ultimately get uploaded and processed anyway.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| (default) | Custom drop-zone content, overrides the visible `label` text. The accessible name comes from a host `aria-label` when present, then falls back to `label`, so icon-only slot content remains announced correctly. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The dropzone's root, clickable/focusable container. |\n| `input` | The visually-hidden native `<input type=\"file\">`. |\n| `rejection` | The visible `role=\"alert\"` region listing each currently-rejected file alongside its reason, rendered in addition to (never in place of) the sr-only `status` summary. |\n| `status` | The visually-hidden live region announcing drag accept/reject state and accepted/rejected selection counts. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-file-input-compact-padding` (default: `var(--lr-space-s)`) — `[part=\"base\"]` padding while `compact`.\n- `--lr-file-input-compact-gap` (default: `var(--lr-space-2xs)`) — Gap between the dropzone's slotted children while `compact`.\n- `--lr-file-input-compact-font-size` (default: `var(--lr-font-size-sm)`) — Label font size while `compact`.\n- `--lr-file-input-accept-border-color` (default: `var(--lr-color-success)`) — Border color of `[part=\"base\"][data-drag-state=\"accept\"]`.\n- `--lr-file-input-accept-bg` (default: `color-mix(in srgb, var(--lr-color-success) 8%, transparent)`) — Background of `[part=\"base\"][data-drag-state=\"accept\"]`.\n- `--lr-file-input-reject-border-color` (default: `var(--lr-color-danger)`) — Border color of `[part=\"base\"][data-drag-state=\"reject\"]`.\n- `--lr-file-input-reject-bg` (default: `color-mix(in srgb, var(--lr-color-danger) 8%, transparent)`) — Background of `[part=\"base\"][data-drag-state=\"reject\"]`.",
|
|
6728
6968
|
"attributes": [
|
|
6729
6969
|
{
|
|
6730
6970
|
"name": "accept",
|
|
@@ -7979,6 +8219,15 @@
|
|
|
7979
8219
|
]
|
|
7980
8220
|
}
|
|
7981
8221
|
},
|
|
8222
|
+
{
|
|
8223
|
+
"name": "data-labels",
|
|
8224
|
+
"description": "Draws each data point's value on the chart via the optional\n`chartjs-plugin-datalabels` peer. Unset (the default) leaves labels off for\nthis and every other chart on the page — the plugin registers globally, so\n`buildConfig()` explicitly disables it per-chart until this is set. The\nscreen-reader equivalent is the always-present data table (see\n`show-data-table`); labels are a purely visual, canvas-only addition.\n\nType: `boolean` \nDefault: `false`",
|
|
8225
|
+
"value": {
|
|
8226
|
+
"type": [
|
|
8227
|
+
"boolean"
|
|
8228
|
+
]
|
|
8229
|
+
}
|
|
8230
|
+
},
|
|
7982
8231
|
{
|
|
7983
8232
|
"name": "height",
|
|
7984
8233
|
"description": "Type: `string` \nDefault: `'280px'`",
|
|
@@ -8042,6 +8291,15 @@
|
|
|
8042
8291
|
]
|
|
8043
8292
|
}
|
|
8044
8293
|
},
|
|
8294
|
+
{
|
|
8295
|
+
"name": "stack-totals",
|
|
8296
|
+
"description": "When the chart is `stacked` (bar/line only), draws the per-category stack\ntotal above each stack, via the same optional `chartjs-plugin-datalabels`\npeer as `data-labels`. Null/undefined points are skipped; a category whose\nevery value is null shows no total. Unset (the default) draws nothing.\n\nType: `boolean` \nDefault: `false`",
|
|
8297
|
+
"value": {
|
|
8298
|
+
"type": [
|
|
8299
|
+
"boolean"
|
|
8300
|
+
]
|
|
8301
|
+
}
|
|
8302
|
+
},
|
|
8045
8303
|
{
|
|
8046
8304
|
"name": "stacked",
|
|
8047
8305
|
"description": "Stacks the `x`/`y`(/`y2`) scale entries `buildScales()` returns; only meaningful for `bar` and `line` types.\n\nType: `boolean` \nDefault: `false`",
|
|
@@ -8184,7 +8442,7 @@
|
|
|
8184
8442
|
},
|
|
8185
8443
|
{
|
|
8186
8444
|
"name": "lr-icon-button",
|
|
8187
|
-
"description": "`<lr-icon-button>` — an accessible icon-only action button.\n\nSet `icon` for one of `<lr-icon>`'s named glyphs, or slot your own content instead. Slotted\ncontent is a **sibling** of the built-in glyph rather than being piped through `<lr-icon>`, so\nany complete element — an `<svg>`, an `<img>`, an `<lr-flag>` — renders at its own natural\naspect ratio instead of being forced into a 1:1 box. Bare SVG geometry (`<path>`, `<circle>`,\nand a handful of other raw primitives) with no enclosing `<svg>` of its own is detected and\ncloned into a real, internal SVG-namespaced element so it still paints — the same fallback\n`<lr-icon>`'s own custom-content slot uses, but narrowly scoped so a custom element (e.g. a\nslotted `<lr-flag>`) is never run through it.\n\nForm-associated (mirroring `<lr-button>`'s identical shape): discoverable through\n`form.elements`, and `type=\"submit\"`/`type=\"reset\"` are handled by this component itself via\nthe host's own `closest('form')` — a shadow-internal native `<button type=\"submit\">` does not\nparticipate in an ancestor light-DOM form's submission on its own, since form-submitter\nsemantics don't cross the shadow boundary.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| (default) | Optional custom icon content, rendered beside (not inside) the `icon` glyph. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `button` | Native button. |\n| `fallback` | The internal SVG-namespaced clone target for slotted bare geometry. Carries the same `fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.75\" stroke-linecap=\"round\" stroke-linejoin=\"round\"` defaults `<lr-icon>`'s own wrapper svg does, so bare stroke-style geometry (no fill/stroke of its own) renders outlined instead of as a solid shape; an explicit `fill`/`stroke`/etc. already present on the slotted node still wins for that node. Only present in the DOM while at least one top-level slotted element needs it; a complete `<svg>`, `<img>`, or custom element never mounts it. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-icon-button-size` (default: `2.5rem`) — Minimum tappable inline and block size of the native button — a **floor**, not a fixed size: content larger than it grows the button and keeps its own aspect ratio, while a small glyph pads out to it. A library-wide token (declared on `:root` by `tokens.styles.ts`, and the shared minimum tappable size several other components size their icon controls against), so overriding it globally resizes all of them together.\n- `--lr-icon-button-radius` (default: `var(--lr-radius)`) — Corner radius of the native button.",
|
|
8445
|
+
"description": "`<lr-icon-button>` — an accessible icon-only action button.\n\nSet `icon` for one of `<lr-icon>`'s named glyphs, or slot your own content instead. Slotted\ncontent is a **sibling** of the built-in glyph rather than being piped through `<lr-icon>`, so\nany complete element — an `<svg>`, an `<img>`, an `<lr-flag>` — renders at its own natural\naspect ratio instead of being forced into a 1:1 box. Bare SVG geometry (`<path>`, `<circle>`,\nand a handful of other raw primitives) with no enclosing `<svg>` of its own is detected and\ncloned into a real, internal SVG-namespaced element so it still paints — the same fallback\n`<lr-icon>`'s own custom-content slot uses, but narrowly scoped so a custom element (e.g. a\nslotted `<lr-flag>`) is never run through it.\n\nForm-associated (mirroring `<lr-button>`'s identical shape): discoverable through\n`form.elements`, and `type=\"submit\"`/`type=\"reset\"` are handled by this component itself via\nthe host's own `closest('form')` — a shadow-internal native `<button type=\"submit\">` does not\nparticipate in an ancestor light-DOM form's submission on its own, since form-submitter\nsemantics don't cross the shadow boundary.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| (default) | Optional custom icon content, rendered beside (not inside) the `icon` glyph. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `button` | Native button. |\n| `fallback` | The internal SVG-namespaced clone target for slotted bare geometry. Carries the same `fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.75\" stroke-linecap=\"round\" stroke-linejoin=\"round\"` defaults `<lr-icon>`'s own wrapper svg does, so bare stroke-style geometry (no fill/stroke of its own) renders outlined instead of as a solid shape; an explicit `fill`/`stroke`/etc. already present on the slotted node still wins for that node. Only present in the DOM while at least one top-level slotted element needs it; a complete `<svg>`, `<img>`, or custom element never mounts it. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-icon-button-size` (default: `2.5rem`) — Minimum tappable inline and block size of the native button — a **floor**, not a fixed size: content larger than it grows the button and keeps its own aspect ratio, while a small glyph pads out to it. A library-wide token (declared on `:root` by `tokens.styles.ts`, and the shared minimum tappable size several other components size their icon controls against), so overriding it globally resizes all of them together.\n- `--lr-icon-button-radius` (default: `var(--lr-radius)`) — Corner radius of the native button.\n- `--lr-icon-button-background` (default: `transparent`) — Background fill of the native button.\n- `--lr-icon-button-background-hover` (default: `var(--lr-color-surface)`) — Background fill on hover.\n- `--lr-icon-button-color` (default: `inherit`) — Icon/text color of the native button.",
|
|
8188
8446
|
"attributes": [
|
|
8189
8447
|
{
|
|
8190
8448
|
"name": "aria-label",
|
|
@@ -8455,7 +8713,7 @@
|
|
|
8455
8713
|
},
|
|
8456
8714
|
{
|
|
8457
8715
|
"name": "lr-input",
|
|
8458
|
-
"description": "`<lr-input>` — a single-line plain-text input primitive, the `lr-*` equivalent of a plain\n`wa-input`, form-associated via the `FormAssociated` mixin (same shape as `<lr-textarea>`).\n\nShips the same opt-in `label`/`hint`/`errorText` form-control chrome as `<lr-textarea>`/\n`<lr-select>` (props + matching named slots + `form-control`/`form-control-label`/`hint`/`error`\nparts) — left unset, the chrome stays hidden. `size` uses the same `xs`–`xl` scale as\n`<lr-select>`/`<lr-combobox>`. `type=\"password\"` always renders a\n`password-toggle` eye-icon button that flips the internal native input between\n`type=\"password\"`/`type=\"text\"` and tracks `passwordVisible`. `type=\"email\"`/`type=\"number\"`\n(with `min`/`max`/`step`) delegate constraint validation to the internal native `<input>`'s own\nbrowser-computed `validity`, bridged into this element's `ElementInternals` by `updateValidity()
|
|
8716
|
+
"description": "`<lr-input>` — a single-line plain-text input primitive, the `lr-*` equivalent of a plain\n`wa-input`, form-associated via the `FormAssociated` mixin (same shape as `<lr-textarea>`).\n\nShips the same opt-in `label`/`hint`/`errorText` form-control chrome as `<lr-textarea>`/\n`<lr-select>` (props + matching named slots + `form-control`/`form-control-label`/`hint`/`error`\nparts) — left unset, the chrome stays hidden. `size` uses the same `xs`–`xl` scale as\n`<lr-select>`/`<lr-combobox>`. `type=\"password\"` always renders a\n`password-toggle` eye-icon button that flips the internal native input between\n`type=\"password\"`/`type=\"text\"` and tracks `passwordVisible`. `type=\"email\"`/`type=\"number\"`\n(with `min`/`max`/`step`) delegate constraint validation to the internal native `<input>`'s own\nbrowser-computed `validity`, bridged into this element's `ElementInternals` by `updateValidity()`\n— as do `minlength`/`maxlength`/`pattern`, which constrain the text-bearing types.\n`type=\"search\"`/`type=\"time\"` forward straight through to the native input with no additional\nchrome or validation, the same as `type=\"text\"`.\n\nA host `aria-label` is forwarded to the internal textbox via the typed `accessibleLabel` property;\nexternal `aria-labelledby`/`aria-describedby` idrefs are not copied across the shadow boundary.\n\nForwards the full native selection/editing surface (`selectionStart`/`selectionEnd`,\n`setSelectionRange()`, `setRangeText()`), the same as `<lr-textarea>`, in addition to\n`focus()`/`blur()`/`select()`.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| `end` | Adornment after the native input and built-in actions. |\n| `error` | Custom error content. |\n| `hint` | Custom hint content. |\n| `label` | Custom label content. |\n| `start` | Adornment before the native input. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `clear-button` | The clear action, rendered for non-empty clearable text/search inputs. |\n| `end` | Wrapper around the `end` adornment slot. |\n| `error` | The error message. |\n| `form-control` | The outer wrapper around label, input, error and hint. |\n| `form-control-label` | The `<label>` element. |\n| `hint` | The hint message. |\n| `input` | The native `<input>` element. |\n| `input-wrapper` | The row wrapping the native input and the password-toggle button. |\n| `password-toggle` | The show/hide-password button, present only when `type=\"password\"`. |\n| `start` | Wrapper around the `start` adornment slot. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-input-control-min-height` — Outer control height floor, scaled by `size`.\n- `--lr-input-control-height` — Exact outer control height. Unset by default, which leaves `--lr-input-control-min-height` as a floor only; set it to a length to both floor and cap the control row (e.g. to pixel-match `<lr-select>`/`<lr-combobox>` in the same toolbar). Because it is never declared by the component itself, it can be set from an ancestor or an outer-tree rule as well as inline on the element.\n- `--lr-input-padding-block` — Block padding of the native input, scaled by `size`.\n- `--lr-input-padding-inline` — Inline padding of the control row, scaled by `size`.\n- `--lr-input-font-size` — Font size of the native input, scaled by `size`.\n- `--lr-input-gap` (default: `var(--lr-space-xs)`) — Gap between the start/end adornments and the native input in the control row. Unlike the size knobs above it does not vary by `size` tier. Override it to retune without a `::part(input-wrapper)` rule.\n- `--lr-input-radius` (default: `var(--lr-radius)`) — Corner radius of the control row. Does not vary by `size` tier.",
|
|
8459
8717
|
"attributes": [
|
|
8460
8718
|
{
|
|
8461
8719
|
"name": "aria-label",
|
|
@@ -8564,10 +8822,18 @@
|
|
|
8564
8822
|
"name": "max",
|
|
8565
8823
|
"description": "Upper counterpart of `min`, with the same parsing and the same default of `undefined`.\n\nType: `number | string | undefined`"
|
|
8566
8824
|
},
|
|
8825
|
+
{
|
|
8826
|
+
"name": "maxlength",
|
|
8827
|
+
"description": "Upper counterpart of `minlength` (native `maxlength`/`tooLong`), with the same parsing and the\nsame default of `undefined`. Note that native `maxlength` also *prevents* typing beyond the\nlimit; it reports `tooLong` for values that arrive some other way (paste of a longer value,\na programmatic assignment).\n\nType: `number | undefined`"
|
|
8828
|
+
},
|
|
8567
8829
|
{
|
|
8568
8830
|
"name": "min",
|
|
8569
8831
|
"description": "`type=\"number\"` only — forwarded to the internal native `<input>`'s own `min`/`max`/`step`\nand consulted by that same native input's constraint validation (see `updateValidity()`).\nDefaults to `undefined` (no lower bound). The `min` attribute is parsed as a number here; the\ndeclared type also admits a string so a subclass bound to a non-numeric native input type can\nnarrow the attribute parsing to that type's own literal form (`<lr-time-input>`'s `09:00`)\nwithout redeclaring the whole property surface.\n\nType: `number | string | undefined`"
|
|
8570
8832
|
},
|
|
8833
|
+
{
|
|
8834
|
+
"name": "minlength",
|
|
8835
|
+
"description": "Minimum text length, forwarded to the internal native `<input>`'s own `minlength` and\nconsulted by that same native input's constraint validation (`tooShort`, see\n`updateValidity()`). Defaults to `undefined` (no lower bound). Like native `minlength`, an\nempty value never violates it — pair it with `required` to also reject empty. Ignored by the\nnative input for `type=\"number\"`/`type=\"time\"`, exactly as the platform specifies.\n\nType: `number | undefined`"
|
|
8836
|
+
},
|
|
8571
8837
|
{
|
|
8572
8838
|
"name": "name",
|
|
8573
8839
|
"description": "Type: `string`",
|
|
@@ -8586,6 +8852,10 @@
|
|
|
8586
8852
|
]
|
|
8587
8853
|
}
|
|
8588
8854
|
},
|
|
8855
|
+
{
|
|
8856
|
+
"name": "pattern",
|
|
8857
|
+
"description": "A regular expression the value must match in full, forwarded to the internal native\n`<input>`'s own `pattern` and validated by it (`patternMismatch`). Defaults to `undefined`\n(no pattern). Compiled by the browser with the `v` flag and anchored to the whole value, so\nno `^`/`$` is needed; an empty value never violates it.\n\nType: `string | undefined`"
|
|
8858
|
+
},
|
|
8589
8859
|
{
|
|
8590
8860
|
"name": "placeholder",
|
|
8591
8861
|
"description": "Type: `string` \nDefault: `''`",
|
|
@@ -8791,6 +9061,48 @@
|
|
|
8791
9061
|
}
|
|
8792
9062
|
]
|
|
8793
9063
|
},
|
|
9064
|
+
{
|
|
9065
|
+
"name": "lr-knowledge-base-admin",
|
|
9066
|
+
"description": "`<lr-knowledge-base-admin>` — a responsive operations shell composing the existing controlled\nsource inventory and ingestion queue into one tabbed knowledge-base view. It forwards every\nsource/ingestion action under a namespaced event and never creates connectors, uploads files, or\nchanges indexing configuration itself. Put configuration controls in the `settings` slot.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| `settings` | Optional host-owned ingestion, chunking, embedding, or permissions controls. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The root admin wrapper. |\n| `heading` | The visible heading. |\n| `panel` | The active panel. |\n| `settings` | The settings slot wrapper. |\n| `tab` | One tab button. |\n| `tabs` | The tablist. |",
|
|
9067
|
+
"attributes": [
|
|
9068
|
+
{
|
|
9069
|
+
"name": "active-tab",
|
|
9070
|
+
"description": "Active tab. Controlled by the host after `lr-tab-change` if desired.\n\nType: `KnowledgeBaseAdminTab` \nDefault: `'sources'`",
|
|
9071
|
+
"value": {
|
|
9072
|
+
"type": [
|
|
9073
|
+
"KnowledgeBaseAdminTab"
|
|
9074
|
+
]
|
|
9075
|
+
}
|
|
9076
|
+
},
|
|
9077
|
+
{
|
|
9078
|
+
"name": "hide-ingestion",
|
|
9079
|
+
"description": "Hides the ingestion tab and queue.\n\nType: `boolean` \nDefault: `false`",
|
|
9080
|
+
"value": {
|
|
9081
|
+
"type": [
|
|
9082
|
+
"boolean"
|
|
9083
|
+
]
|
|
9084
|
+
}
|
|
9085
|
+
},
|
|
9086
|
+
{
|
|
9087
|
+
"name": "label",
|
|
9088
|
+
"description": "Accessible name and visible heading.\n\nType: `string` \nDefault: `''`",
|
|
9089
|
+
"value": {
|
|
9090
|
+
"type": [
|
|
9091
|
+
"string"
|
|
9092
|
+
]
|
|
9093
|
+
}
|
|
9094
|
+
},
|
|
9095
|
+
{
|
|
9096
|
+
"name": "locale",
|
|
9097
|
+
"description": "Optional locale override. Otherwise the nearest `locale`/`lang` ancestor is used.\n\nType: `string` \nDefault: `''`",
|
|
9098
|
+
"value": {
|
|
9099
|
+
"type": [
|
|
9100
|
+
"string"
|
|
9101
|
+
]
|
|
9102
|
+
}
|
|
9103
|
+
}
|
|
9104
|
+
]
|
|
9105
|
+
},
|
|
8794
9106
|
{
|
|
8795
9107
|
"name": "lr-knowledge-graph-explorer",
|
|
8796
9108
|
"description": "`<lr-knowledge-graph-explorer>` — an orchestration-level surface for exploring a knowledge\ngraph: the `lr-graph` canvas plus entity search, type filters, neighborhood expansion, pinned\nnodes, path finding between pins, node selection, and a details overlay. Composes existing\nprimitives rather than re-implementing graph rendering: `lr-graph` (canvas/pan-zoom/selection),\n`lr-graph-legend` (type filters), `lr-entity-card` (the details popover's default content),\n`lr-neighbor-list` (the selected entity's relationships), `lr-path-strip` (a found path), and\n`lr-popover.showAt()` (the details overlay itself).\n\n**How the details popover finds its viewport position.** `lr-graph.getNodePosition()` and the\n`lr-node-click` event's `{ x, y }` are in the graph's own *local drawing space* (pre pan/zoom),\nnever viewport pixels -- passing them straight to `showAt()` would anchor the popover at the\nwrong place as soon as the graph has panned or zoomed even once. A direct node click resolves\nthe correct viewport rect the way this library's own documented `lr-graph` + `lr-popover.showAt()`\ncomposition does: for `renderer=\"svg\"` (the default), `event.composedPath()` (the native `click`\nthat bubbles out of `lr-graph`'s shadow root) locates the actual clicked `[part=\"node\"]` element,\nwhose `getBoundingClientRect()` is already viewport-relative; for `renderer=\"canvas\"` (no\nper-node DOM element to find), the click event's own `clientX`/`clientY` are used directly, since\ncanvas hit-testing already treats those as viewport coordinates internally. While the popover\nstays open after an `renderer=\"svg\"` click, this component re-reads that same resolved node\nelement's `getBoundingClientRect()` and re-calls `showAt()` every time the composed `lr-graph`\nemits its own `lr-viewport-change` (a frame-coalesced pan/zoom/simulation-tick signal) --\nschedules no `requestAnimationFrame` loop of its own, unlike an idle popover polling the DOM on\nevery frame regardless of whether anything actually moved. Selecting a node any other\nway -- a search result, a neighbor row, a path-strip element, keyboard Enter/Space on a graph\nnode (which never dispatches a native `click`) -- has no click event to read a rect from, so it\ninstead calls the public `lr-graph.focusNode(id)` (which centers that node in the viewport) and\nthen anchors the popover at the graph element's own `getBoundingClientRect()` center once that\nsettles; no continuous tracking applies to that path.\n\n**Controlled vs. self-managed state.** `nodes`/`links`/`nodeTypes`/`communities`/`entityDetails`/\n`path` are purely host-supplied data, rendered as given. `hiddenTypes`/`selectedNodeId`/\n`searchQuery`/`pinnedNodeIds` are this component's own genuinely new contribution: it wires them\ninto `lr-graph`'s existing controlled props (`hiddenTypes`, `selectedNodeIds`, `dimmedNodeIds`,\n`dimmedLinkIds`) itself, toggling its own copy on interaction (the same self-toggle-then-emit\ncontract `lr-graph-legend` already uses) so every feature works with zero host wiring, while\nstill being presettable/observable properties and emitting events (`lr-pin-change`,\n`lr-path-request`, plus every composed primitive's own event bubbling straight through\nunmodified) for a host that wants to persist or react to them.\n\n`highlight` controls what drives that dimming, on top of the always-active search-match\ndimming: `'selection'` (the default) dims by the selected node's immediate neighborhood;\n`'hover'` also dims by whichever node is currently pointer-hovered (falling back to the selected\nnode's neighborhood while nothing is hovered); `'none'` turns this component's own dimming off\nentirely, forwarding empty `dimmedNodeIds`/`dimmedLinkIds` regardless of search/selection state\n-- for a host that wants to drive `lr-graph`'s dimming through a different composition instead.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| `details` | Overrides the details popover's default content (an `lr-entity-card` with a nested `lr-neighbor-list` and a pin toggle). Receives no data -- a consumer overriding this slot reads the selected entity from `selectedNodeId`/`nodes` itself. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The root `role=\"group\"` wrapper. |\n| `detail-card` | The default-content `lr-entity-card`, only present while `selectedNodeId` resolves to a node. |\n| `detail-popover` | The composed `lr-popover` hosting the details overlay. |\n| `graph` | The composed `lr-graph`. |\n| `legend` | The composed `lr-graph-legend`. |\n| `path` | The composed `lr-path-strip`, only rendered while `path` is non-empty. |\n| `pinned` | The pinned-nodes row, only rendered while `pinnedNodeIds` is non-empty. |\n| `pinned-heading` | The pinned-nodes row's leading label. |\n| `search` | The composed `lr-entity-card` search `lr-input`. |\n| `search-empty` | The \"no matches\" message, shown when `searchQuery` is non-empty but no node matches. |\n| `search-result` | One search-match row (`role=\"listitem\"`, wrapping a `<button>`). |\n| `search-results` | The search-match list, only rendered while `searchQuery` is non-empty. |\n| `toolbar` | The row wrapping the search input and the type-filter legend. |",
|
|
@@ -9131,6 +9443,15 @@
|
|
|
9131
9443
|
]
|
|
9132
9444
|
}
|
|
9133
9445
|
},
|
|
9446
|
+
{
|
|
9447
|
+
"name": "data-labels",
|
|
9448
|
+
"description": "Draws each data point's value on the chart via the optional\n`chartjs-plugin-datalabels` peer. Unset (the default) leaves labels off for\nthis and every other chart on the page — the plugin registers globally, so\n`buildConfig()` explicitly disables it per-chart until this is set. The\nscreen-reader equivalent is the always-present data table (see\n`show-data-table`); labels are a purely visual, canvas-only addition.\n\nType: `boolean` \nDefault: `false`",
|
|
9449
|
+
"value": {
|
|
9450
|
+
"type": [
|
|
9451
|
+
"boolean"
|
|
9452
|
+
]
|
|
9453
|
+
}
|
|
9454
|
+
},
|
|
9134
9455
|
{
|
|
9135
9456
|
"name": "height",
|
|
9136
9457
|
"description": "Type: `string` \nDefault: `'280px'`",
|
|
@@ -9185,6 +9506,15 @@
|
|
|
9185
9506
|
]
|
|
9186
9507
|
}
|
|
9187
9508
|
},
|
|
9509
|
+
{
|
|
9510
|
+
"name": "stack-totals",
|
|
9511
|
+
"description": "When the chart is `stacked` (bar/line only), draws the per-category stack\ntotal above each stack, via the same optional `chartjs-plugin-datalabels`\npeer as `data-labels`. Null/undefined points are skipped; a category whose\nevery value is null shows no total. Unset (the default) draws nothing.\n\nType: `boolean` \nDefault: `false`",
|
|
9512
|
+
"value": {
|
|
9513
|
+
"type": [
|
|
9514
|
+
"boolean"
|
|
9515
|
+
]
|
|
9516
|
+
}
|
|
9517
|
+
},
|
|
9188
9518
|
{
|
|
9189
9519
|
"name": "stacked",
|
|
9190
9520
|
"description": "Stacks the `x`/`y`(/`y2`) scale entries `buildScales()` returns; only meaningful for `bar` and `line` types.\n\nType: `boolean` \nDefault: `false`",
|
|
@@ -9243,7 +9573,7 @@
|
|
|
9243
9573
|
},
|
|
9244
9574
|
{
|
|
9245
9575
|
"name": "lr-lite-chart",
|
|
9246
|
-
"description": "`<lr-lite-chart>` — a dependency-free bar/line chart, plain SVG/DOM\nrendering with zero peer dependencies (unlike `lr-chart`, which wraps\n`chart.js`). For a project whose architecture forbids a charting\ndependency outright, this covers the common bar/line case: grouped or\nstacked bars, multi-series lines, per-point click, and hover tooltips\n(native SVG `<title>`, no positioning JS needed) — not a full `lr-chart`\nreplacement (no zoom/pan, no pie/doughnut/radar/scatter/bubble types, no\nhorizontal/dual-y-axis, no raw-config passthrough).\n\nBecause this renders real DOM (not canvas), it reuses `lr-chart`'s\n`--lr-chart-*` theme tokens directly via CSS `var()` — no\n`getComputedStyle()`-based re-theming step is needed the way `chart.ts`\nneeds one for its canvas.\n\nBy default (`layout=\"fit\"`) the plot always squeezes to the measured host\nwidth. Three independent, opt-in escape hatches for dense/aligned data:\n`layout=\"scroll\"` (+ `barWidth`) gives every bar a fixed pixel width and\nlets the plot overflow the host horizontally (scrollable) instead of\nsqueezing; `maxLabels` decimates which x-axis text labels render (bars\nalways still render) once there are more categories than that; and\n`barX` lets a consumer hand in its own per-category x-coordinate function\n— e.g. to pixel-align this chart's bars with a sibling `lr-heatmap`'s\ncalendar columns — overriding the internal slot math for both bars and\ntheir labels. All three are additive and no-ops when left unset.\n\nSeven further additive, opt-in properties: `pointText` overrides the\nper-bar/per-point `<title>`/`aria-label` tooltip text (mirrors\n`lr-heatmap`'s `cellText` hook), falling back to the built-in raw-value\ntemplate when unset; `roundedBars` draws bars as a rounded-top path\ninstead of a square-cornered rect; `skipZero` omits a bar entirely (not\njust zero-height) for an exactly-`0` value; `padLeft`/`barGapRatio`\noverride the internal `PAD_LEFT`/`BAR_GROUP_GAP` layout constants; `scale`\n(`type=\"bar\"` only) switches the bar-height mapping from the default\nlinear `niceDomain` fraction to a `Math.sqrt(value / domainMax)`\ncompression (mirroring `lr-heatmap`'s matrix-mode `sqrt` scale) so a\nskewed dataset's smaller bars don't get washed out by one dominant value\n— gridlines/tick labels stay on the linear domain regardless, only the bar\nmarks' own height changes, and `type=\"line\"` ignores `scale` entirely; and\n`hideAxis` suppresses `renderGrid()`'s gridlines/tick labels altogether\n(x-axis category labels, rendered separately, are unaffected). An eighth,\n`legendText`, appends a formatter-supplied string after each series' label in the\nbuilt-in legend row (e.g. a value or share) — no-op while `legend` is unset, matching the same\nfallback-to-unchanged convention as every other hook here;\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `axis-label` | Each axis tick label. |\n| `axis-title` | The x/y axis title text, when set. |\n| `bar` | Each bar rect (type=\"bar\"). Carries `data-selected` when its category index is in `selectedIndex`. |\n| `base` | The host's flex layout wrapper. |\n| `data-list` | A visually hidden list of all plotted data points. |\n| `grid-line` | Each horizontal gridline. |\n| `legend` | The legend row, when `legend` is set. |\n| `legend-item` | Each legend entry. |\n| `legend-swatch` | Each legend entry's color swatch. |\n| `legend-text` | Extra per-item text after the series label, rendered only when `legendText` is set. |\n| `line` | Each series' stroked line path (type=\"line\"). |\n| `live-region` | The current mark announcement for keyboard users. |\n| `point` | Each series' per-point hit target (type=\"line\"). |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-lite-chart-selected-outline-color` (default: `var(--lr-color-brand)`) — Stroke for a bar/point whose category index is in `selectedIndex`.",
|
|
9576
|
+
"description": "`<lr-lite-chart>` — a dependency-free bar/line chart, plain SVG/DOM\nrendering with zero peer dependencies (unlike `lr-chart`, which wraps\n`chart.js`). For a project whose architecture forbids a charting\ndependency outright, this covers the common bar/line case: grouped or\nstacked bars, multi-series lines, per-point click, and hover tooltips\n(native SVG `<title>`, no positioning JS needed) — not a full `lr-chart`\nreplacement (no zoom/pan, no pie/doughnut/radar/scatter/bubble types, no\nhorizontal/dual-y-axis, no raw-config passthrough).\n\nBecause this renders real DOM (not canvas), it reuses `lr-chart`'s\n`--lr-chart-*` theme tokens directly via CSS `var()` — no\n`getComputedStyle()`-based re-theming step is needed the way `chart.ts`\nneeds one for its canvas.\n\nBy default (`layout=\"fit\"`) the plot always squeezes to the measured host\nwidth. Three independent, opt-in escape hatches for dense/aligned data:\n`layout=\"scroll\"` (+ `barWidth`) gives every bar a fixed pixel width and\nlets the plot overflow the host horizontally (scrollable) instead of\nsqueezing; `maxLabels` decimates which x-axis text labels render (bars\nalways still render) once there are more categories than that; and\n`barX` lets a consumer hand in its own per-category x-coordinate function\n— e.g. to pixel-align this chart's bars with a sibling `lr-heatmap`'s\ncalendar columns — overriding the internal slot math for both bars and\ntheir labels. All three are additive and no-ops when left unset.\n\nSeven further additive, opt-in properties: `pointText` overrides the\nper-bar/per-point `<title>`/`aria-label` tooltip text (mirrors\n`lr-heatmap`'s `cellText` hook), falling back to the built-in raw-value\ntemplate when unset; `roundedBars` draws bars as a rounded-top path\ninstead of a square-cornered rect; `skipZero` omits a bar entirely (not\njust zero-height) for an exactly-`0` value; `padLeft`/`barGapRatio`\noverride the internal `PAD_LEFT`/`BAR_GROUP_GAP` layout constants; `scale`\n(`type=\"bar\"` only) switches the bar-height mapping from the default\nlinear `niceDomain` fraction to a `Math.sqrt(value / domainMax)`\ncompression (mirroring `lr-heatmap`'s matrix-mode `sqrt` scale) so a\nskewed dataset's smaller bars don't get washed out by one dominant value\n— gridlines/tick labels stay on the linear domain regardless, only the bar\nmarks' own height changes, and `type=\"line\"` ignores `scale` entirely; and\n`hideAxis` suppresses `renderGrid()`'s gridlines/tick labels altogether\n(x-axis category labels, rendered separately, are unaffected). An eighth,\n`legendText`, appends a formatter-supplied string after each series' label in the\nbuilt-in legend row (e.g. a value or share) — no-op while `legend` is unset, matching the same\nfallback-to-unchanged convention as every other hook here;\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `axis-label` | Each axis tick label. |\n| `axis-title` | The x/y axis title text, when set. |\n| `bar` | Each bar rect (type=\"bar\"). Carries `data-selected` when its category index is in `selectedIndex`. |\n| `base` | The host's flex layout wrapper. |\n| `data-list` | A visually hidden list of all plotted data points (single-series only). |\n| `data-table` | A visually hidden category×series data table, rendered instead of `data-list` when there is more than one dataset so a screen-reader user hears series grouping rather than one flattened N×M sequence. |\n| `grid-line` | Each horizontal gridline. |\n| `legend` | The legend row, when `legend` is set. |\n| `legend-item` | Each legend entry. |\n| `legend-swatch` | Each legend entry's color swatch. |\n| `legend-text` | Extra per-item text after the series label, rendered only when `legendText` is set. |\n| `line` | Each series' stroked line path (type=\"line\"). |\n| `live-region` | The current mark announcement for keyboard users. |\n| `point` | Each series' per-point hit target (type=\"line\"). |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-lite-chart-selected-outline-color` (default: `var(--lr-color-brand)`) — Stroke for a bar/point whose category index is in `selectedIndex`.",
|
|
9247
9577
|
"attributes": [
|
|
9248
9578
|
{
|
|
9249
9579
|
"name": "accessible-label",
|
|
@@ -10207,7 +10537,7 @@
|
|
|
10207
10537
|
},
|
|
10208
10538
|
{
|
|
10209
10539
|
"name": "lr-model-select",
|
|
10210
|
-
"description": "`<lr-model-select>` — a provider/model picker that renders as a closed\ndropdown when a fixed `catalog` is available, or as a filterable free-text\ncombobox when it isn't (or when `allow-custom` explicitly permits typing\nsomething outside the catalog). Built directly on the shared\ntrigger-button/aria-activedescendant listbox technique `<lr-select>` uses\nand the filter-as-you-type suggestion-popup technique `<lr-combobox>`\nuses — not by composing either element, since the mode switch and the\nstale-value handling below are specific to this control.\n\nA `value` that isn't present in `catalog` (e.g. a model id saved from a\nprovider whose live catalog has since changed) is never silently dropped:\n`effectiveEntries` appends it to the rendered option list as a synthetic,\nvisually-distinct row (dashed border, italic label, \"not in catalog\"\nbadge — see `model-select.styles.ts`) computed fresh from `catalog` +\n`value` on every render, without ever mutating the `catalog` property\nitself.\n\nShips an opt-in `hint`/`errorText` form-control chrome (props + matching named slots +\n`hint`/`error` parts), mirroring `<lr-select>`'s exact pattern -- left unset, neither renders.\nPairs with the existing `label` prop/part (also mirroring `<lr-select>`) for a full\nlabel/hint/error field.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| `error` | Custom error content. |\n| `hint` | Custom hint content. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `combobox` | The text-input container (free-text mode's positioning anchor). |\n| `combobox-input` | The free-text mode's text input. |\n| `empty` | The empty-listbox message, shown when no rows match. |\n| `error` | The error message. |\n| `expand-icon` | The dropdown indicator. |\n| `form-control-label` | The `<label>` element (only rendered — and only contributes to the accessible name — once `label` is non-empty). |\n| `hint` | The hint message. |\n| `listbox` | The options popover (shared by both modes). |\n| `option` | An option row. |\n| `option-badge` | The \"not in catalog\" badge on a synthetic stale-value row. |\n| `option-label` | An option row's label. |\n| `provider-badge` | The optional leading `provider` label. |\n| `trigger` | The trigger button (closed-dropdown mode's positioning anchor). |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-model-select-trigger-padding` (default: `var(--lr-space-xs) var(--lr-space-s)`) — Trigger/combobox padding shorthand, scaled by `size`.\n- `--lr-model-select-trigger-min-height` (default: `var(--lr-size-2-5rem)`) — Trigger/combobox block-size floor, scaled by `size`.\n- `--lr-model-select-font-size` (default: `var(--lr-font-size-md)`) — Trigger/combobox font size, scaled by `size`.\n- `--lr-model-select-expand-size` (default: `var(--lr-size-1-75rem)`) — Decorative expand-icon box size, scaled by `size`.\n- `--lr-model-select-option-active-bg` (default: `var(--lr-color-brand-quiet)`) — Background of a hovered or keyboard-active option row.",
|
|
10540
|
+
"description": "`<lr-model-select>` — a provider/model picker that renders as a closed\ndropdown when a fixed `catalog` is available, or as a filterable free-text\ncombobox when it isn't (or when `allow-custom` explicitly permits typing\nsomething outside the catalog). Built directly on the shared\ntrigger-button/aria-activedescendant listbox technique `<lr-select>` uses\nand the filter-as-you-type suggestion-popup technique `<lr-combobox>`\nuses — not by composing either element, since the mode switch and the\nstale-value handling below are specific to this control.\n\nA `value` that isn't present in `catalog` (e.g. a model id saved from a\nprovider whose live catalog has since changed) is never silently dropped:\n`effectiveEntries` appends it to the rendered option list as a synthetic,\nvisually-distinct row (dashed border, italic label, \"not in catalog\"\nbadge — see `model-select.styles.ts`) computed fresh from `catalog` +\n`value` on every render, without ever mutating the `catalog` property\nitself.\n\nShips an opt-in `hint`/`errorText` form-control chrome (props + matching named slots +\n`hint`/`error` parts), mirroring `<lr-select>`'s exact pattern -- left unset, neither renders.\nPairs with the existing `label` prop/part (also mirroring `<lr-select>`) for a full\nlabel/hint/error field.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| `error` | Custom error content. |\n| `hint` | Custom hint content. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `combobox` | The text-input container (free-text mode's positioning anchor). |\n| `combobox-input` | The free-text mode's text input. |\n| `empty` | The empty-listbox message, shown when no rows match. |\n| `error` | The error message. |\n| `expand-icon` | The dropdown indicator. |\n| `form-control-label` | The `<label>` element (only rendered — and only contributes to the accessible name — once `label` is non-empty). |\n| `hint` | The hint message. |\n| `listbox` | The options popover (shared by both modes). |\n| `option` | An option row. |\n| `option-badge` | The \"not in catalog\" badge on a synthetic stale-value row. |\n| `option-label` | An option row's label. |\n| `provider-badge` | The optional leading `provider` label. |\n| `trigger` | The trigger button (closed-dropdown mode's positioning anchor). |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-model-select-trigger-padding` (default: `var(--lr-space-xs) var(--lr-space-s)`) — Trigger/combobox padding shorthand, scaled by `size`.\n- `--lr-model-select-trigger-min-height` (default: `var(--lr-size-2-5rem)`) — Trigger/combobox block-size floor, scaled by `size`.\n- `--lr-model-select-font-size` (default: `var(--lr-font-size-md)`) — Trigger/combobox font size, scaled by `size`.\n- `--lr-model-select-expand-size` (default: `var(--lr-size-1-75rem)`) — Decorative expand-icon box size, scaled by `size`.\n- `--lr-model-select-option-active-bg` (default: `var(--lr-color-brand-quiet)`) — Background of a hovered or keyboard-active option row.\n- `--lr-model-select-option-selected-bg` (default: `transparent`) — Background of the currently-selected option row. Not declared on `:host`; retheme without hijacking `--lr-color-brand`.\n- `--lr-model-select-option-selected-border` (default: `var(--lr-color-brand)`) — Border color of the selected option row.\n- `--lr-model-select-option-selected-color` (default: `var(--lr-color-brand)`) — Text color of the selected option row.\n- `--lr-model-select-option-selected-font-weight` (default: `var(--lr-font-weight-semibold)`) — Font weight of the selected option row.",
|
|
10211
10541
|
"attributes": [
|
|
10212
10542
|
{
|
|
10213
10543
|
"name": "allow-custom",
|
|
@@ -10750,10 +11080,18 @@
|
|
|
10750
11080
|
"name": "max",
|
|
10751
11081
|
"description": "Upper counterpart of `min`, with the same parsing and the same default of `undefined`.\n\nType: `number | string | undefined`"
|
|
10752
11082
|
},
|
|
11083
|
+
{
|
|
11084
|
+
"name": "maxlength",
|
|
11085
|
+
"description": "Upper counterpart of `minlength` (native `maxlength`/`tooLong`), with the same parsing and the\nsame default of `undefined`. Note that native `maxlength` also *prevents* typing beyond the\nlimit; it reports `tooLong` for values that arrive some other way (paste of a longer value,\na programmatic assignment).\n\nType: `number | undefined`"
|
|
11086
|
+
},
|
|
10753
11087
|
{
|
|
10754
11088
|
"name": "min",
|
|
10755
11089
|
"description": "`type=\"number\"` only — forwarded to the internal native `<input>`'s own `min`/`max`/`step`\nand consulted by that same native input's constraint validation (see `updateValidity()`).\nDefaults to `undefined` (no lower bound). The `min` attribute is parsed as a number here; the\ndeclared type also admits a string so a subclass bound to a non-numeric native input type can\nnarrow the attribute parsing to that type's own literal form (`<lr-time-input>`'s `09:00`)\nwithout redeclaring the whole property surface.\n\nType: `number | string | undefined`"
|
|
10756
11090
|
},
|
|
11091
|
+
{
|
|
11092
|
+
"name": "minlength",
|
|
11093
|
+
"description": "Minimum text length, forwarded to the internal native `<input>`'s own `minlength` and\nconsulted by that same native input's constraint validation (`tooShort`, see\n`updateValidity()`). Defaults to `undefined` (no lower bound). Like native `minlength`, an\nempty value never violates it — pair it with `required` to also reject empty. Ignored by the\nnative input for `type=\"number\"`/`type=\"time\"`, exactly as the platform specifies.\n\nType: `number | undefined`"
|
|
11094
|
+
},
|
|
10757
11095
|
{
|
|
10758
11096
|
"name": "password-visible",
|
|
10759
11097
|
"description": "`type=\"password\"` only — whether the field currently reveals its raw text. Toggled by the\nbuilt-in `password-toggle` button; also settable by a consumer up front.\n\nType: `boolean` \nDefault: `false`",
|
|
@@ -10763,6 +11101,10 @@
|
|
|
10763
11101
|
]
|
|
10764
11102
|
}
|
|
10765
11103
|
},
|
|
11104
|
+
{
|
|
11105
|
+
"name": "pattern",
|
|
11106
|
+
"description": "A regular expression the value must match in full, forwarded to the internal native\n`<input>`'s own `pattern` and validated by it (`patternMismatch`). Defaults to `undefined`\n(no pattern). Compiled by the browser with the `v` flag and anchored to the whole value, so\nno `^`/`$` is needed; an empty value never violates it.\n\nType: `string | undefined`"
|
|
11107
|
+
},
|
|
10766
11108
|
{
|
|
10767
11109
|
"name": "placeholder",
|
|
10768
11110
|
"description": "Type: `string` \nDefault: `''`",
|
|
@@ -11406,6 +11748,15 @@
|
|
|
11406
11748
|
]
|
|
11407
11749
|
}
|
|
11408
11750
|
},
|
|
11751
|
+
{
|
|
11752
|
+
"name": "data-labels",
|
|
11753
|
+
"description": "Draws each data point's value on the chart via the optional\n`chartjs-plugin-datalabels` peer. Unset (the default) leaves labels off for\nthis and every other chart on the page — the plugin registers globally, so\n`buildConfig()` explicitly disables it per-chart until this is set. The\nscreen-reader equivalent is the always-present data table (see\n`show-data-table`); labels are a purely visual, canvas-only addition.\n\nType: `boolean` \nDefault: `false`",
|
|
11754
|
+
"value": {
|
|
11755
|
+
"type": [
|
|
11756
|
+
"boolean"
|
|
11757
|
+
]
|
|
11758
|
+
}
|
|
11759
|
+
},
|
|
11409
11760
|
{
|
|
11410
11761
|
"name": "height",
|
|
11411
11762
|
"description": "Type: `string` \nDefault: `'280px'`",
|
|
@@ -11460,6 +11811,15 @@
|
|
|
11460
11811
|
]
|
|
11461
11812
|
}
|
|
11462
11813
|
},
|
|
11814
|
+
{
|
|
11815
|
+
"name": "stack-totals",
|
|
11816
|
+
"description": "When the chart is `stacked` (bar/line only), draws the per-category stack\ntotal above each stack, via the same optional `chartjs-plugin-datalabels`\npeer as `data-labels`. Null/undefined points are skipped; a category whose\nevery value is null shows no total. Unset (the default) draws nothing.\n\nType: `boolean` \nDefault: `false`",
|
|
11817
|
+
"value": {
|
|
11818
|
+
"type": [
|
|
11819
|
+
"boolean"
|
|
11820
|
+
]
|
|
11821
|
+
}
|
|
11822
|
+
},
|
|
11463
11823
|
{
|
|
11464
11824
|
"name": "stacked",
|
|
11465
11825
|
"description": "Stacks the `x`/`y`(/`y2`) scale entries `buildScales()` returns; only meaningful for `bar` and `line` types.\n\nType: `boolean` \nDefault: `false`",
|
|
@@ -11625,6 +11985,15 @@
|
|
|
11625
11985
|
]
|
|
11626
11986
|
}
|
|
11627
11987
|
},
|
|
11988
|
+
{
|
|
11989
|
+
"name": "data-labels",
|
|
11990
|
+
"description": "Draws each data point's value on the chart via the optional\n`chartjs-plugin-datalabels` peer. Unset (the default) leaves labels off for\nthis and every other chart on the page — the plugin registers globally, so\n`buildConfig()` explicitly disables it per-chart until this is set. The\nscreen-reader equivalent is the always-present data table (see\n`show-data-table`); labels are a purely visual, canvas-only addition.\n\nType: `boolean` \nDefault: `false`",
|
|
11991
|
+
"value": {
|
|
11992
|
+
"type": [
|
|
11993
|
+
"boolean"
|
|
11994
|
+
]
|
|
11995
|
+
}
|
|
11996
|
+
},
|
|
11628
11997
|
{
|
|
11629
11998
|
"name": "height",
|
|
11630
11999
|
"description": "Type: `string` \nDefault: `'280px'`",
|
|
@@ -11679,6 +12048,15 @@
|
|
|
11679
12048
|
]
|
|
11680
12049
|
}
|
|
11681
12050
|
},
|
|
12051
|
+
{
|
|
12052
|
+
"name": "stack-totals",
|
|
12053
|
+
"description": "When the chart is `stacked` (bar/line only), draws the per-category stack\ntotal above each stack, via the same optional `chartjs-plugin-datalabels`\npeer as `data-labels`. Null/undefined points are skipped; a category whose\nevery value is null shows no total. Unset (the default) draws nothing.\n\nType: `boolean` \nDefault: `false`",
|
|
12054
|
+
"value": {
|
|
12055
|
+
"type": [
|
|
12056
|
+
"boolean"
|
|
12057
|
+
]
|
|
12058
|
+
}
|
|
12059
|
+
},
|
|
11682
12060
|
{
|
|
11683
12061
|
"name": "stacked",
|
|
11684
12062
|
"description": "Stacks the `x`/`y`(/`y2`) scale entries `buildScales()` returns; only meaningful for `bar` and `line` types.\n\nType: `boolean` \nDefault: `false`",
|
|
@@ -12239,6 +12617,15 @@
|
|
|
12239
12617
|
]
|
|
12240
12618
|
}
|
|
12241
12619
|
},
|
|
12620
|
+
{
|
|
12621
|
+
"name": "data-labels",
|
|
12622
|
+
"description": "Draws each data point's value on the chart via the optional\n`chartjs-plugin-datalabels` peer. Unset (the default) leaves labels off for\nthis and every other chart on the page — the plugin registers globally, so\n`buildConfig()` explicitly disables it per-chart until this is set. The\nscreen-reader equivalent is the always-present data table (see\n`show-data-table`); labels are a purely visual, canvas-only addition.\n\nType: `boolean` \nDefault: `false`",
|
|
12623
|
+
"value": {
|
|
12624
|
+
"type": [
|
|
12625
|
+
"boolean"
|
|
12626
|
+
]
|
|
12627
|
+
}
|
|
12628
|
+
},
|
|
12242
12629
|
{
|
|
12243
12630
|
"name": "height",
|
|
12244
12631
|
"description": "Type: `string` \nDefault: `'280px'`",
|
|
@@ -12293,6 +12680,15 @@
|
|
|
12293
12680
|
]
|
|
12294
12681
|
}
|
|
12295
12682
|
},
|
|
12683
|
+
{
|
|
12684
|
+
"name": "stack-totals",
|
|
12685
|
+
"description": "When the chart is `stacked` (bar/line only), draws the per-category stack\ntotal above each stack, via the same optional `chartjs-plugin-datalabels`\npeer as `data-labels`. Null/undefined points are skipped; a category whose\nevery value is null shows no total. Unset (the default) draws nothing.\n\nType: `boolean` \nDefault: `false`",
|
|
12686
|
+
"value": {
|
|
12687
|
+
"type": [
|
|
12688
|
+
"boolean"
|
|
12689
|
+
]
|
|
12690
|
+
}
|
|
12691
|
+
},
|
|
12296
12692
|
{
|
|
12297
12693
|
"name": "stacked",
|
|
12298
12694
|
"description": "Stacks the `x`/`y`(/`y2`) scale entries `buildScales()` returns; only meaningful for `bar` and `line` types.\n\nType: `boolean` \nDefault: `false`",
|
|
@@ -12487,6 +12883,70 @@
|
|
|
12487
12883
|
}
|
|
12488
12884
|
]
|
|
12489
12885
|
},
|
|
12886
|
+
{
|
|
12887
|
+
"name": "lr-rag-answer",
|
|
12888
|
+
"description": "`<lr-rag-answer>` — a controlled grounded-answer surface combining sanitized Markdown, citation\nbadges, a grounding assessment, and source previews. It performs no model call, retrieval,\ncitation parsing, or source fetching.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| `answer` | Replaces the data-driven Markdown answer body. |\n| `sources` | Replaces the data-driven source list. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `answer` | The answer content wrapper. |\n| `base` | The root answer wrapper. |\n| `citation-list` | The citation badge row. |\n| `citations` | The citation section. |\n| `error` | The caller-supplied error message. |\n| `grounding` | The grounding assessment. |\n| `loading` | The loading indicator. |\n| `retry` | The retry button. |\n| `section-heading` | A localized section heading. |\n| `source-list` | The data-driven source list. |\n| `sources` | The source section. |",
|
|
12889
|
+
"attributes": [
|
|
12890
|
+
{
|
|
12891
|
+
"name": "answer",
|
|
12892
|
+
"description": "Type: `string` \nDefault: `''`",
|
|
12893
|
+
"value": {
|
|
12894
|
+
"type": [
|
|
12895
|
+
"string"
|
|
12896
|
+
]
|
|
12897
|
+
}
|
|
12898
|
+
},
|
|
12899
|
+
{
|
|
12900
|
+
"name": "aria-label",
|
|
12901
|
+
"description": "Type: `string | null` \nDefault: `null`"
|
|
12902
|
+
},
|
|
12903
|
+
{
|
|
12904
|
+
"name": "error",
|
|
12905
|
+
"description": "Type: `string` \nDefault: `''`",
|
|
12906
|
+
"value": {
|
|
12907
|
+
"type": [
|
|
12908
|
+
"string"
|
|
12909
|
+
]
|
|
12910
|
+
}
|
|
12911
|
+
},
|
|
12912
|
+
{
|
|
12913
|
+
"name": "label",
|
|
12914
|
+
"description": "Type: `string` \nDefault: `''`",
|
|
12915
|
+
"value": {
|
|
12916
|
+
"type": [
|
|
12917
|
+
"string"
|
|
12918
|
+
]
|
|
12919
|
+
}
|
|
12920
|
+
},
|
|
12921
|
+
{
|
|
12922
|
+
"name": "loading",
|
|
12923
|
+
"description": "Type: `boolean` \nDefault: `false`",
|
|
12924
|
+
"value": {
|
|
12925
|
+
"type": [
|
|
12926
|
+
"boolean"
|
|
12927
|
+
]
|
|
12928
|
+
}
|
|
12929
|
+
},
|
|
12930
|
+
{
|
|
12931
|
+
"name": "locale",
|
|
12932
|
+
"description": "Optional locale override. Otherwise the nearest `locale`/`lang` ancestor is used.\n\nType: `string` \nDefault: `''`",
|
|
12933
|
+
"value": {
|
|
12934
|
+
"type": [
|
|
12935
|
+
"string"
|
|
12936
|
+
]
|
|
12937
|
+
}
|
|
12938
|
+
},
|
|
12939
|
+
{
|
|
12940
|
+
"name": "show-sources",
|
|
12941
|
+
"description": "Type: `boolean` \nDefault: `true`",
|
|
12942
|
+
"value": {
|
|
12943
|
+
"type": [
|
|
12944
|
+
"boolean"
|
|
12945
|
+
]
|
|
12946
|
+
}
|
|
12947
|
+
}
|
|
12948
|
+
]
|
|
12949
|
+
},
|
|
12490
12950
|
{
|
|
12491
12951
|
"name": "lr-random-content",
|
|
12492
12952
|
"description": "`<lr-random-content>` — displays a randomly (or sequentially) chosen\nsubset of its slotted children and hides the rest, for A/B copy testing,\ntestimonial/quote rotation, or varying marketing copy on each render or\ninterval without any custom JS beyond slotting the candidates.\n\nNot a form-associated control and has no textual chrome of its own — a\npure content-rotation primitive over caller-supplied children, so the\nlabel/hint/error frame doesn't apply.\n\nThe host renders `display: block` by default, like the rest of this\nfamily. A consumer needing an inline text-fragment swap inside a sentence\ncan override `lr-random-content { display: inline; }` from outside —\nthat isn't baked in here, since `display: contents` on the host risks\naccessibility-tree inconsistencies across engines.\n\nThere is no built-in trigger UI (no next/previous/shuffle button):\nselection is driven only by `autoplay`/`autoplayInterval` and the public\n`randomize()` method. Consequently there is no keyboard interaction and no\nRTL-aware arrow-key handling to implement here — that guarantee only\napplies to components with roving/arrow-key navigation, which this one\nstructurally lacks.\n\n`fade-left`/`fade-right` are physical-direction transforms (matching the\nupstream naming this component mirrors), not \"previous/next\" navigational\nsemantics like a carousel chevron, so they are deliberately **not**\nmirrored under `:host(:dir(rtl))`.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| (default) | The pool of candidate children. Only direct element children are eligible. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The wrapping element around the default slot. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-random-content-animation-duration` (default: `300ms`) — Duration of the entrance animation.\n- `--lr-random-content-animation-easing` (default: `ease`) — Easing function for the entrance animation.\n- `--lr-random-content-animation-translate` (default: `var(--lr-size-0-5em)`) — Translation distance for directional animations.",
|
|
@@ -13213,6 +13673,15 @@
|
|
|
13213
13673
|
]
|
|
13214
13674
|
}
|
|
13215
13675
|
},
|
|
13676
|
+
{
|
|
13677
|
+
"name": "data-labels",
|
|
13678
|
+
"description": "Draws each data point's value on the chart via the optional\n`chartjs-plugin-datalabels` peer. Unset (the default) leaves labels off for\nthis and every other chart on the page — the plugin registers globally, so\n`buildConfig()` explicitly disables it per-chart until this is set. The\nscreen-reader equivalent is the always-present data table (see\n`show-data-table`); labels are a purely visual, canvas-only addition.\n\nType: `boolean` \nDefault: `false`",
|
|
13679
|
+
"value": {
|
|
13680
|
+
"type": [
|
|
13681
|
+
"boolean"
|
|
13682
|
+
]
|
|
13683
|
+
}
|
|
13684
|
+
},
|
|
13216
13685
|
{
|
|
13217
13686
|
"name": "height",
|
|
13218
13687
|
"description": "Type: `string` \nDefault: `'280px'`",
|
|
@@ -13267,6 +13736,15 @@
|
|
|
13267
13736
|
]
|
|
13268
13737
|
}
|
|
13269
13738
|
},
|
|
13739
|
+
{
|
|
13740
|
+
"name": "stack-totals",
|
|
13741
|
+
"description": "When the chart is `stacked` (bar/line only), draws the per-category stack\ntotal above each stack, via the same optional `chartjs-plugin-datalabels`\npeer as `data-labels`. Null/undefined points are skipped; a category whose\nevery value is null shows no total. Unset (the default) draws nothing.\n\nType: `boolean` \nDefault: `false`",
|
|
13742
|
+
"value": {
|
|
13743
|
+
"type": [
|
|
13744
|
+
"boolean"
|
|
13745
|
+
]
|
|
13746
|
+
}
|
|
13747
|
+
},
|
|
13270
13748
|
{
|
|
13271
13749
|
"name": "stacked",
|
|
13272
13750
|
"description": "Stacks the `x`/`y`(/`y2`) scale entries `buildScales()` returns; only meaningful for `bar` and `line` types.\n\nType: `boolean` \nDefault: `false`",
|
|
@@ -13427,7 +13905,7 @@
|
|
|
13427
13905
|
},
|
|
13428
13906
|
{
|
|
13429
13907
|
"name": "lr-select",
|
|
13430
|
-
"description": "`<lr-select>` — a plain closed-list dropdown: a direct `<lr-*>`\ncounterpart to `<wa-select>`/`<wa-option>`. Trigger is a button (not a text\ninput) -- click/Enter/Space/ArrowDown opens it, there's no typing-to-filter.\nA printable keypress instead jumps (or, while closed, directly selects) the\nnext option whose label starts with what's been typed, like a native\n`<select>`'s type-ahead.\n\nOptions are `<lr-option value>` children, the same element `<lr-combobox>`\nuses. Unlike `lr-combobox` this is single-select only, with no filter/\nsource/with-clear/max-options-visible/empty-text/max-render/multiple surface\n-- see `<lr-combobox>` for the filterable/multi-select case.\n\nReuses `lr-combobox`'s popup positioning (`internal/positioner.js`) and\nclick-outside/Escape/Home/End/Arrow-key listbox navigation patterns,\nadapted to a trigger button that keeps DOM focus throughout (the listbox's\n\"active\" row is conveyed via `aria-activedescendant`, never actual focus),\nmatching the WAI-ARIA \"select-only combobox\" pattern.\n\nWhen `autoCommitSingleOption` is set and exactly one option is enabled\n(regardless of how many disabled ones exist alongside it), the popup never\nopens at all: a click, Enter, Space, ArrowDown, or ArrowUp on the trigger\ncommits that sole option directly, and the trigger renders as a plain\n`role=\"button\"` with no chevron/`aria-haspopup`/`aria-expanded` rather than\na combobox with a permanently inert popup state — opening a one-row list to\npick the only available choice is pure friction with no real decision\nbehind it. This never changes `value`/validity defaults on its own — an\nunselected single-option select stays unselected (and a `required` one\nstays invalid) exactly like the multi-option case, until the trigger is\nactually activated. `autoCommitSingleOption` defaults to `false`: by\ndefault a select always renders the normal combobox/listbox/chevron\ntrigger no matter how many options are enabled, matching pre-1.3.0\nbehavior — opt in explicitly if a narrowing-to-one option list should\nauto-commit.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| (default) | `<lr-option>` elements. |\n| `end` | Adornment after the selected-value label and before the expand icon. |\n| `error` | Custom error content. |\n| `hint` | Custom hint content. |\n| `label` | Custom label content. |\n| `start` | Adornment at the inline-start of the trigger row, before the selected-value label. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `end` | Wrapper around the `end` adornment slot; `hidden` while nothing is slotted. |\n| `error` | The error message. |\n| `expand-icon` | The dropdown indicator. |\n| `form-control` | The outer wrapper around label, trigger, listbox, error and hint. |\n| `form-control-label` | The `<label>` element. |\n| `group-label` | An option group's heading row (shown when any option declares a `group`). |\n| `hint` | The hint message. |\n| `listbox` | The options popover. |\n| `option` | An option row. |\n| `option-dot` | An option row's leading status dot (when `dot-color` is set). |\n| `option-label` | An option row's label/sub wrapper. |\n| `option-sub` | An option row's secondary line (when `sub` is set). |\n| `start` | Wrapper around the `start` adornment slot; `hidden` while nothing is slotted. |\n| `trigger` | The trigger button (positioning anchor). |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-select-expand-size` — Decorative expand-icon box size, scaled by `size`.\n- `--lr-select-gap` — Gap between the trigger's start adornment, label, end adornment, and expand icon. Doesn't vary by `size`.\n- `--lr-select-radius` — Trigger corner radius. Doesn't vary by `size`.\n- `--lr-select-trigger-padding` — Trigger padding shorthand, scaled by `size`.\n- `--lr-select-trigger-min-height` — Trigger block-size floor, scaled by `size`, and live at every tier including the default `m` (`2.5rem`, matching `<lr-input>`/`<lr-combobox>` at that tier).\n- `--lr-select-font-size` — Trigger font size, scaled by `size`.\n- `--lr-select-option-active-bg` (default: `var(--lr-color-brand-quiet)`) — Background of the hovered/keyboard-active option row. Not declared on `:host`, so a value set on any ancestor is never shadowed -- retheme just this row state without hijacking the shared `--lr-color-brand-quiet` token used by every other component's own hover/active state.\n- `--lr-select-trigger-height` — Exact trigger height. Unset by default, which leaves `--lr-select-trigger-min-height` as a floor only; set it to a length to both floor and cap the trigger (e.g. to pixel-match a sibling field in the same toolbar row). Because it is never declared by the component itself, it can be set from an ancestor or an outer-tree rule as well as inline on the element.",
|
|
13908
|
+
"description": "`<lr-select>` — a plain closed-list dropdown: a direct `<lr-*>`\ncounterpart to `<wa-select>`/`<wa-option>`. Trigger is a button (not a text\ninput) -- click/Enter/Space/ArrowDown opens it, there's no typing-to-filter.\nA printable keypress instead jumps (or, while closed, directly selects) the\nnext option whose label starts with what's been typed, like a native\n`<select>`'s type-ahead.\n\nOptions are `<lr-option value>` children, the same element `<lr-combobox>`\nuses. Unlike `lr-combobox` this is single-select only, with no filter/\nsource/with-clear/max-options-visible/empty-text/max-render/multiple surface\n-- see `<lr-combobox>` for the filterable/multi-select case.\n\nReuses `lr-combobox`'s popup positioning (`internal/positioner.js`) and\nclick-outside/Escape/Home/End/Arrow-key listbox navigation patterns,\nadapted to a trigger button that keeps DOM focus throughout (the listbox's\n\"active\" row is conveyed via `aria-activedescendant`, never actual focus),\nmatching the WAI-ARIA \"select-only combobox\" pattern.\n\nWhen `autoCommitSingleOption` is set and exactly one option is enabled\n(regardless of how many disabled ones exist alongside it), the popup never\nopens at all: a click, Enter, Space, ArrowDown, or ArrowUp on the trigger\ncommits that sole option directly, and the trigger renders as a plain\n`role=\"button\"` with no chevron/`aria-haspopup`/`aria-expanded` rather than\na combobox with a permanently inert popup state — opening a one-row list to\npick the only available choice is pure friction with no real decision\nbehind it. This never changes `value`/validity defaults on its own — an\nunselected single-option select stays unselected (and a `required` one\nstays invalid) exactly like the multi-option case, until the trigger is\nactually activated. `autoCommitSingleOption` defaults to `false`: by\ndefault a select always renders the normal combobox/listbox/chevron\ntrigger no matter how many options are enabled, matching pre-1.3.0\nbehavior — opt in explicitly if a narrowing-to-one option list should\nauto-commit.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| (default) | `<lr-option>` elements. |\n| `end` | Adornment after the selected-value label and before the expand icon. |\n| `error` | Custom error content. |\n| `hint` | Custom hint content. |\n| `label` | Custom label content. |\n| `start` | Adornment at the inline-start of the trigger row, before the selected-value label. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `end` | Wrapper around the `end` adornment slot; `hidden` while nothing is slotted. |\n| `error` | The error message. |\n| `expand-icon` | The dropdown indicator. |\n| `form-control` | The outer wrapper around label, trigger, listbox, error and hint. |\n| `form-control-label` | The `<label>` element. |\n| `group-label` | An option group's heading row (shown when any option declares a `group`). |\n| `hint` | The hint message. |\n| `listbox` | The options popover. |\n| `option` | An option row. |\n| `option-dot` | An option row's leading status dot (when `dot-color` is set). |\n| `option-label` | An option row's label/sub wrapper. |\n| `option-sub` | An option row's secondary line (when `sub` is set). |\n| `start` | Wrapper around the `start` adornment slot; `hidden` while nothing is slotted. |\n| `trigger` | The trigger button (positioning anchor). |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-select-expand-size` — Decorative expand-icon box size, scaled by `size`.\n- `--lr-select-gap` — Gap between the trigger's start adornment, label, end adornment, and expand icon. Doesn't vary by `size`.\n- `--lr-select-radius` — Trigger corner radius. Doesn't vary by `size`.\n- `--lr-select-trigger-padding` — Trigger padding shorthand, scaled by `size`.\n- `--lr-select-trigger-min-height` — Trigger block-size floor, scaled by `size`, and live at every tier including the default `m` (`2.5rem`, matching `<lr-input>`/`<lr-combobox>` at that tier).\n- `--lr-select-font-size` — Trigger font size, scaled by `size`.\n- `--lr-select-option-active-bg` (default: `var(--lr-color-brand-quiet)`) — Background of the hovered/keyboard-active option row. Not declared on `:host`, so a value set on any ancestor is never shadowed -- retheme just this row state without hijacking the shared `--lr-color-brand-quiet` token used by every other component's own hover/active state.\n- `--lr-select-option-selected-bg` (default: `transparent`) — Background of the currently-selected option row. Not declared on `:host`; retheme just the selected row without hijacking `--lr-color-brand`.\n- `--lr-select-option-selected-border` (default: `var(--lr-color-brand)`) — Border color of the selected option row.\n- `--lr-select-option-selected-color` (default: `var(--lr-color-brand)`) — Text color of the selected option row.\n- `--lr-select-option-selected-font-weight` (default: `var(--lr-font-weight-semibold)`) — Font weight of the selected option row.\n- `--lr-select-trigger-height` — Exact trigger height. Unset by default, which leaves `--lr-select-trigger-min-height` as a floor only; set it to a length to both floor and cap the trigger (e.g. to pixel-match a sibling field in the same toolbar row). Because it is never declared by the component itself, it can be set from an ancestor or an outer-tree rule as well as inline on the element.",
|
|
13431
13909
|
"attributes": [
|
|
13432
13910
|
{
|
|
13433
13911
|
"name": "auto-commit-single-option",
|
|
@@ -14544,7 +15022,7 @@
|
|
|
14544
15022
|
},
|
|
14545
15023
|
{
|
|
14546
15024
|
"name": "lr-swatch-picker",
|
|
14547
|
-
"description": "`<lr-swatch-picker>` -- a single-select picker over a small, fixed set of color swatches with\nthe WAI-ARIA APG `radiogroup` contract built in: `role=\"radiogroup\"`/`role=\"radio\"`, roving\ntabindex, automatic activation (click or arrow-key move both select immediately, like a native\nradio group), cyclic Arrow/Home/End navigation. Distinct from `<lr-color-picker>`'s freeform\nnative color input -- this picks exactly one of N designer-chosen named colors, the shape apps\notherwise hand-roll as a row of round accent-color buttons.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The `role=\"radiogroup\"` root. |\n| `swatch` | A single `role=\"radio\"` color swatch's interactive hit target; sized via `--lr-swatch-picker-hit-size` (defaults to `--lr-size-2-5rem`, swapped per `size` tier and floored at 24px), independent of the smaller visible fill/icon rendered inside it. The selected one is `[part='swatch'][aria-checked='true']`. |\n| `swatch-fill` | The compact filled circle rendered when the option has no custom `icon`. |\n| `swatch-icon` | Optional custom shape supplied by the option's `icon` field; when present it replaces `swatch-fill` and the swatch renders unfilled/unbordered behind it. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-swatch-picker-selected-color` (default: `var(--lr-color-brand)`) — Ring color drawn around the selected swatch, themeable independently of the focus ring and every other ring color.\n- `--lr-swatch-picker-selected-blur` (default: `0`) — Blur radius of that same ring. 0 by default (a crisp ring); set a real length (e.g. 0.4rem) for a soft glow instead.\n- `--lr-swatch-picker-shine-duration` (default: `0s`) — Duration of a rhythmic brighten-and-settle \"shine\" on the selected swatch. `0s` (the default) is a no-op -- today's static look for every existing consumer. Set a real duration (e.g. 1.6s) for a pulsing shine; disabled outright under `prefers-reduced-motion: reduce`. Independent of `--lr-swatch-picker-selected-blur` (a separate `filter: brightness()` animation, not `box-shadow`), so the two compose freely, and works identically for a plain color circle and an icon swatch alike.\n- `--lr-swatch-picker-hit-size` (default: `var(--lr-size-2-5rem)`) — Hit-area size (both min-inline-size and min-block-size) for the swatch button, swapped per tier and floored at 24px.\n- `--lr-swatch-picker-fill-size` (default: `var(--lr-size-1-5rem)`) — Visible fill/icon diameter for the swatch, swapped per tier.",
|
|
15025
|
+
"description": "`<lr-swatch-picker>` -- a single-select picker over a small, fixed set of color swatches with\nthe WAI-ARIA APG `radiogroup` contract built in: `role=\"radiogroup\"`/`role=\"radio\"`, roving\ntabindex, automatic activation (click or arrow-key move both select immediately, like a native\nradio group), cyclic Arrow/Home/End navigation. Distinct from `<lr-color-picker>`'s freeform\nnative color input -- this picks exactly one of N designer-chosen named colors, the shape apps\notherwise hand-roll as a row of round accent-color buttons.\n\n`mode=\"gemstone\"` uses the shared faceted gemstone glyph for options carrying a `gemstone`\nkey and opts into the gemstone glow/shine defaults. The `options` array still controls display\norder and `value` still controls the initial selection.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The `role=\"radiogroup\"` root. |\n| `swatch` | A single `role=\"radio\"` color swatch's interactive hit target; sized via `--lr-swatch-picker-hit-size` (defaults to `--lr-size-2-5rem`, swapped per `size` tier and floored at 24px), independent of the smaller visible fill/icon rendered inside it. The selected one is `[part='swatch'][aria-checked='true']`. |\n| `swatch-fill` | The compact filled circle rendered when the option has no custom `icon`. |\n| `swatch-icon` | Optional custom shape supplied by the option's `icon` field; when present it replaces `swatch-fill` and the swatch renders unfilled/unbordered behind it. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-swatch-picker-selected-color` (default: `var(--lr-color-brand)`) — Ring color drawn around the selected swatch, themeable independently of the focus ring and every other ring color.\n- `--lr-swatch-picker-selected-blur` (default: `0`) — Blur radius of that same ring. 0 by default (a crisp ring); set a real length (e.g. 0.4rem) for a soft glow instead.\n- `--lr-swatch-picker-shine-duration` (default: `0s`) — Duration of a rhythmic brighten-and-settle \"shine\" on the selected swatch. `0s` (the default) is a no-op -- today's static look for every existing consumer. Set a real duration (e.g. 1.6s) for a pulsing shine; disabled outright under `prefers-reduced-motion: reduce`. Independent of `--lr-swatch-picker-selected-blur` (a separate `filter: brightness()` animation, not `box-shadow`), so the two compose freely, and works identically for a plain color circle and an icon swatch alike.\n- `--lr-swatch-picker-gemstone-selected-blur` (default: `var(--lr-size-0-5rem)`) — Selected glow blur used by `mode=\"gemstone\"` when `--lr-swatch-picker-selected-blur` is not overridden.\n- `--lr-swatch-picker-gemstone-shine-duration` (default: `1.8s`) — Selected shine duration used by `mode=\"gemstone\"` when `--lr-swatch-picker-shine-duration` is not overridden.\n- `--lr-swatch-picker-hit-size` (default: `var(--lr-size-2-5rem)`) — Hit-area size (both min-inline-size and min-block-size) for the swatch button, swapped per tier and floored at 24px.\n- `--lr-swatch-picker-fill-size` (default: `var(--lr-size-1-5rem)`) — Visible fill/icon diameter for the swatch, swapped per tier.",
|
|
14548
15026
|
"attributes": [
|
|
14549
15027
|
{
|
|
14550
15028
|
"name": "label",
|
|
@@ -14564,6 +15042,15 @@
|
|
|
14564
15042
|
]
|
|
14565
15043
|
}
|
|
14566
15044
|
},
|
|
15045
|
+
{
|
|
15046
|
+
"name": "mode",
|
|
15047
|
+
"description": "Visual treatment. `swatch` preserves the plain-circle default; `gemstone` renders the shared\ngemstone glyph for options with a `gemstone` key and enables its glow/shine recipe.\n\nType: `LyraSwatchPickerMode` \nDefault: `'swatch'`",
|
|
15048
|
+
"value": {
|
|
15049
|
+
"type": [
|
|
15050
|
+
"LyraSwatchPickerMode"
|
|
15051
|
+
]
|
|
15052
|
+
}
|
|
15053
|
+
},
|
|
14567
15054
|
{
|
|
14568
15055
|
"name": "size",
|
|
14569
15056
|
"description": "Visual size — scales the swatch hit-area and fill diameter proportionally, hit-area\nfloored at 24px (WCAG 2.5.8); not pixel-matched to `lr-input`'s row-height scale.\n\nType: `LyraSwatchPickerSize` \nDefault: `'m'`",
|
|
@@ -14659,8 +15146,17 @@
|
|
|
14659
15146
|
},
|
|
14660
15147
|
{
|
|
14661
15148
|
"name": "lr-table",
|
|
14662
|
-
"description": "`<lr-table>` — a presentational, sort/select-aware data table.\n\nHeader/row activation is delegated: one `click` and one `keydown`\nlistener on `<table>` resolve the target via `closest('[data-col-key]'\n| '[data-row-key]')` and a key→object lookup map, instead of allocating\nfresh per-column/per-row closures on every render. Both listeners guard\nagainst nested interactive `cell()` content first (see\n`INTERACTIVE_SELECTOR`) so a button/link/input inside a cell owns its own\nactivation instead of triggering `lr-row-click`.\n\nKeyboard focus follows a roving-tabindex pattern (one `tabindex=\"0\"` stop\namong the header cells, one among the body rows — see `focusedColKey()` /\n`focusedRowKey()`), matching this repo's other `role=\"grid\"`/composite\nwidgets. Left/Right/Home/End move within the header row; Up/Down/Home/End\nmove within the body; Down from the header enters the body's roving stop,\nand Up from the body's first row returns to the header's roving stop.\nEnter/Space still only sort/activate (see `activateColumn()` /\n`activateRow()`).\n\nSet `aria-label` on the host to give the `role=\"grid\"` element an\naccessible name; it's forwarded into the shadow DOM's `<table>`.\n\n`columns[].priority` ('medium' | 'low') hides that column under\n`[part='base']`'s `@container` breakpoints; `[part='reveal-columns-button']`\nforces them all back into view. Rather than a *static* check of whether any\ncolumn merely declares a `priority`, the button (and the public\n`columnsHidden` property, see below) reflects whether a `priority` column\nis *actually* hidden right now — measured via `ResizeObserver` on\n`[part='base']` plus a post-render DOM check — or the public `showAllColumns`\nforce-visible mode is currently active (so there's still a way to toggle\nit back off). `showAllColumns` defaults to `false` and toggles itself on\n`[part='reveal-columns-button']` activation with no external wiring\nrequired, but is also settable up front (property or the reflected\n`show-all-columns` attribute) to restore a previously-persisted\npreference, and readable back — directly or via the `lr-columns-revealed`\nevent — to persist the current one. `columns[].sticky` pins a column's\nheader/cells to the inline-start (default/`true`) or inline-end (`'end'`)\nedge while the table scrolls horizontally.\n\n`expandedContent` (a table-level `(row: T) => unknown`, not a per-column\nhook, since the resulting panel spans every column via `colspan`) makes\nevery row render a leading chevron-toggle cell before its data columns.\n`canExpand` optionally gates which rows actually get an interactive\ntoggle — a row that fails it still gets a blank leading cell for column\nalignment. Which rows are currently open is fully consumer-owned via\n`expandedKeys` (a `Set<string | number>` of row keys, per `rowKey`/\n`keyOf()`) — the table only reads it and emits `lr-row-expand-toggle`\non activation, mirroring `sortKey`/`selectedKey`'s existing\npresentational-only convention.\n\nSelection is opt-in through the `selectionMode` property. Use `single` or\n`multiple` to self-manage row selection; the default `none` remains\npresentational. `selectedKeys` contains the raw keys selected in multiple\nmode.\n\n`filterable` adds a compact search field above the grid. `filterText` is\ncontrolled and emits `lr-filter-change`; `filter` can provide a typed\npredicate, otherwise the row is matched against its JSON representation.\n`pageSize` enables controlled pagination through the existing\n`<lr-pagination>` primitive. Client mode slices `rows`; server mode\nrenders the supplied page unchanged while using `totalItems` for the\nnavigation summary. `loading` keeps the table shell busy; `loadingAppearance`\nchooses how — the default `'spinner'` replaces the grid with an indeterminate\nspinner, while `'skeleton'` keeps the real `<colgroup>`/`<thead>` (and the\nfilter/pagination chrome) and fills the body with `skeletonRows` placeholder\nrows, so column geometry survives the load instead of collapsing and\nreflowing. Either way exactly one `role=\"status\"` live region announces the\nstate — every placeholder opts out of `<lr-skeleton>`'s own announcement.\nColumns with `editable: true` open a native text/number editor on\ndouble-click and emit `lr-cell-edit`; row mutation remains consumer-owned.\n`editable: 'always'` instead renders that editor in every body cell of the\ncolumn from first paint — a settings/rate-style column meant to be typed\nstraight into. Persistent editors are plain tab stops (no `tabindex` of their\nown, exactly like the row-expand toggle) outside the header/row roving model,\nso arrow keys still navigate the grid from a row's own tab stop and act as\ncaret movement once focus is inside a field. Enter commits and keeps focus;\nEscape has nothing to cancel back to, so it is left uncancelled for an\nancestor dialog/popover. Their value binds as a content attribute, so once\nthe user has typed into one an out-of-band `rows` update to that same cell no\nlonger replaces the draft; an untouched editor still picks up a new value.\nFocus is restored across a re-sort that moves the editor's node, and dropped\n(never re-aimed at an unrelated row) when its row leaves the rendered page.\n`spellcheck`/`autocapitalize`/`autoCorrect` forward to the filter input and, for a `'text'`\n(the default) `editType`, the inline cell editor -- no effect on a `'number'` cell editor.\n`groupBy` inserts non-focusable group header rows before each group; use\n`groupLabel` when the raw group key needs custom content.\n\n`columns[].heatValue` opts a column into heat-tint mode: its numeric return value is normalized\nagainst a shared scale spanning every `heatValue`-defining column across every currently-rendered\nrow (auto-derived, or overridden via `heatTintScale`) and painted as a `color-mix()` background via\nthe retheme-able `--lr-table-heat-tint-lo`/`-hi` custom properties (matching `lr-heatmap`'s own\nramp-token convention). `rowTotal`/`grandTotal` add a trailing column mirroring `expandedContent`'s\nleading one: `rowTotal(row)` renders per-row, `grandTotal(rows)` renders at its intersection with\nthe footer row (only when a column also defines `footer`) — both share `footer`'s own\n\"consumer computes/renders\" contract rather than assuming addition.\n\nThe built-in empty state is addressable rather than fixed: every `<lr-empty>` the table renders\ncarries `part=\"empty\"` and re-exports its own inner parts as `empty-heading`/`empty-description`/\n`empty-icon`/`empty-actions`/`empty-base`, the two *data*-empty branches (no rows at all, and\nfiltered/paginated down to zero) render it as the fallback content of a named `empty` slot so a\nconsumer can replace it wholesale, and `emptyCompact` overrides each branch's built-in `compact`\ndefault. The no-columns branch is deliberately **not** slot-replaceable — it reports a\nconfiguration problem (`noColumnsHeading`), not \"this query returned nothing\", and a single slot\ncovering all three would collapse that distinction.\n\n`layout` sets a floor on the `<table>`'s `table-layout`: `'fixed'` forces it even with no column\nwidths, while the default `'auto'` still resolves to `fixed` whenever a column declares a `width`\nor a drag-resize is in flight (column resizing does not work under `table-layout: auto`).\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| `empty` | Replaces the built-in empty state on the two *data*-empty branches (no rows at all, and filtered/paginated down to zero). Left unfilled, the built-in `[part='empty']` `<lr-empty>` renders as this slot's fallback content. The no-columns branch renders its own `noColumnsHeading` state and is not slot-replaceable. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The root wrapper around the `<table>` and its footer controls. |\n| `cell` | Each body `<td>`. |\n| `cell-editor` | The native inline cell editor: shown after a double-click on an `editable: true` cell, and rendered persistently in every body cell of an `editable: 'always'` column. |\n| `empty` | The built-in `<lr-empty>` host, in all three empty states (no columns configured, no rows at all, and filtered/paginated down to zero rows). The two data-empty states render it as the `empty` slot's fallback, so it disappears once that slot is filled. Note that the no-columns and no-rows states return the empty element as the shadow root's own root, with no `[part='base']` wrapper around it — `::part(base)` does not apply in those two states, only in the filtered-to-zero one. |\n| `empty-actions` | Exported from the built-in `<lr-empty>`'s `actions` part. |\n| `empty-base` | Exported from the built-in `<lr-empty>`'s own `base` part. |\n| `empty-description` | Exported from the built-in `<lr-empty>`'s `description` part. |\n| `empty-heading` | Exported from the built-in `<lr-empty>`'s `heading` part. |\n| `empty-icon` | Exported from the built-in `<lr-empty>`'s `icon` part. |\n| `expand-toggle-cell` | Each row's (and the header's) leading chevron-toggle cell, rendered only when `expandedContent` is set. |\n| `expanded-cell` | The single `colspan`-spanning `<td>` inside `expanded-row`, containing `expandedContent(row)`. |\n| `expanded-row` | The full-width panel `<tr>` rendered beneath a row whose key is in `expandedKeys`. |\n| `filter` | The optional row-filter input. |\n| `filter-label` | The `<label>` wrapping the filter input. |\n| `foot` | The `<tfoot>`, only rendered when at least one column defines `footer`. |\n| `footer-cell` | A single footer cell. |\n| `footer-row` | The single footer row. |\n| `group-cell` | The full-width group header cell. |\n| `group-row` | A non-focusable group header row. |\n| `head` | The `<thead>` element. |\n| `header-cell` | Each `<th>` header cell. |\n| `loading` | The loading-state wrapper. Under `loadingAppearance=\"spinner\"` (the default) it is the visible block holding the spinner; under `\"skeleton\"` it is the visually-hidden `role=\"status\"` node, since the placeholder rows are the visible affordance. |\n| `more-button` | The \"load more\" control, shown when `hasMore` is true. |\n| `pagination` | The optional pagination component. |\n| `resize-handle` | The focusable separator used to resize a `resizable` column. |\n| `reveal-columns-button` | The button that toggles `priority`-hidden columns back into view. |\n| `row` | Each body `<tr>`. |\n| `row-expand-icon` | The chevron icon inside `row-expand-toggle`. |\n| `row-expand-toggle` | The `<button>` inside `expand-toggle-cell`, absent for a row that fails `canExpand`. |\n| `row-total-cell` | Each body row's trailing `<td>` holding `rowTotal(row)`, rendered only when `rowTotal` is set. The corresponding footer-row cell (holding `grandTotal`) is a `footer-cell` instead, matching every other footer cell. |\n| `skeleton` | Each `<lr-skeleton>` placeholder inside a `loadingAppearance=\"skeleton\"` body cell. Its rows and cells reuse the ordinary `row`/`cell`/`row-total-cell` parts (that is what keeps them geometrically identical to real rows), so this is the part to target for the placeholder's own look — e.g. `::part(skeleton) { --lr-skeleton-h: 2em; }`. |\n| `sort-icon` | The chevron shown in the active sortable column's header cell. |\n| `table` | The `<table role=\"grid\">` element. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-table-resize-min-width` (default: `var(--lr-size-3rem)`) — Default minimum width for a resizable column without an explicit pixel `minWidth`.\n- `--lr-table-resize-handle-opacity` (default: `0.12`) — Hover/focus opacity of the resize handle.\n- `--lr-table-max-height` (default: `none`) — Cap on the scroll container's block size, past which the table body scrolls.\n- `--lr-table-heat-tint-lo` (default: `var(--lr-color-brand-quiet)`) — Low endpoint of the heat-tint ramp used by `heatValue` columns.\n- `--lr-table-heat-tint-hi` (default: `var(--lr-color-brand)`) — High endpoint of the heat-tint ramp used by `heatValue` columns.\n- `--lr-table-heat-t` — This cell's position on the heat-tint ramp, as a percentage string. Set inline by the component on each `[data-heat]` cell; not consumer-settable.\n- `--lr-table-row-selected-bg` (default: `var(--lr-color-brand-quiet)`) — Background of a row whose `aria-selected` is `true`. Shadow Parts forbids an attribute selector after `::part()`, so `::part(row)[aria-selected]` is invalid CSS and the selected row could otherwise only be restyled by hijacking the library-wide `--lr-color-brand-quiet` token.\n- `--lr-table-sticky-offset` (default: `0`) — Distance a `sticky` column pins from the inline edge. Measured and set inline per column by the component so multiple sticky columns stack instead of overlapping; falls back to `0` for the first one, or before the first measurement pass.",
|
|
15149
|
+
"description": "`<lr-table>` — a presentational, sort/select-aware data table.\n\nHeader/row activation is delegated: one `click` and one `keydown`\nlistener on `<table>` resolve the target via `closest('[data-col-key]'\n| '[data-row-key]')` and a key→object lookup map, instead of allocating\nfresh per-column/per-row closures on every render. Both listeners guard\nagainst nested interactive `cell()` content first (see\n`INTERACTIVE_SELECTOR`) so a button/link/input inside a cell owns its own\nactivation instead of triggering `lr-row-click`.\n\nKeyboard focus follows a roving-tabindex pattern (one `tabindex=\"0\"` stop\namong the header cells, one among the body rows — see `focusedColKey()` /\n`focusedRowKey()`), matching this repo's other `role=\"grid\"`/composite\nwidgets. Left/Right/Home/End move within the header row; Up/Down/Home/End\nmove within the body; Down from the header enters the body's roving stop,\nand Up from the body's first row returns to the header's roving stop.\nEnter/Space still only sort/activate (see `activateColumn()` /\n`activateRow()`).\n\nSet `aria-label` on the host to give the `role=\"grid\"` element an\naccessible name; it's forwarded into the shadow DOM's `<table>`.\n\n`columns[].priority` ('medium' | 'low') hides that column under\n`[part='base']`'s `@container` breakpoints; `[part='reveal-columns-button']`\nforces them all back into view. Rather than a *static* check of whether any\ncolumn merely declares a `priority`, the button (and the public\n`columnsHidden` property, see below) reflects whether a `priority` column\nis *actually* hidden right now — measured via `ResizeObserver` on\n`[part='base']` plus a post-render DOM check — or the public `showAllColumns`\nforce-visible mode is currently active (so there's still a way to toggle\nit back off). `showAllColumns` defaults to `false` and toggles itself on\n`[part='reveal-columns-button']` activation with no external wiring\nrequired, but is also settable up front (property or the reflected\n`show-all-columns` attribute) to restore a previously-persisted\npreference, and readable back — directly or via the `lr-columns-revealed`\nevent — to persist the current one. `columns[].sticky` pins a column's\nheader/cells to the inline-start (default/`true`) or inline-end (`'end'`)\nedge while the table scrolls horizontally.\n\n`expandedContent` (a table-level `(row: T) => unknown`, not a per-column\nhook, since the resulting panel spans every column via `colspan`) makes\nevery row render a leading chevron-toggle cell before its data columns.\n`canExpand` optionally gates which rows actually get an interactive\ntoggle — a row that fails it still gets a blank leading cell for column\nalignment. Which rows are currently open is fully consumer-owned via\n`expandedKeys` (a `Set<string | number>` of row keys, per `rowKey`/\n`keyOf()`) — the table only reads it and emits `lr-row-expand-toggle`\non activation, mirroring `sortKey`/`selectedKey`'s existing\npresentational-only convention.\n\nSelection is opt-in through the `selectionMode` property. Use `single` or\n`multiple` to self-manage row selection; the default `none` remains\npresentational. `selectedKeys` contains the raw keys selected in multiple\nmode.\n\n`filterable` adds a compact search field above the grid. `filterText` is\ncontrolled and emits `lr-filter-change`; `filter` can provide a typed\npredicate, otherwise the row is matched against its JSON representation.\n`pageSize` enables controlled pagination through the existing\n`<lr-pagination>` primitive. Client mode slices `rows`; server mode\nrenders the supplied page unchanged while using `totalItems` for the\nnavigation summary. `loading` keeps the table shell busy; `loadingAppearance`\nchooses how — the default `'spinner'` replaces the grid with an indeterminate\nspinner, while `'skeleton'` keeps the real `<colgroup>`/`<thead>` (and the\nfilter/pagination chrome) and fills the body with `skeletonRows` placeholder\nrows, so column geometry survives the load instead of collapsing and\nreflowing. Either way exactly one `role=\"status\"` live region announces the\nstate — every placeholder opts out of `<lr-skeleton>`'s own announcement.\nColumns with `editable: true` open a native text/number editor on\ndouble-click and emit `lr-cell-edit`; row mutation remains consumer-owned.\n`editable: 'always'` instead renders that editor in every body cell of the\ncolumn from first paint — a settings/rate-style column meant to be typed\nstraight into. Persistent editors are plain tab stops (no `tabindex` of their\nown, exactly like the row-expand toggle) outside the header/row roving model,\nso arrow keys still navigate the grid from a row's own tab stop and act as\ncaret movement once focus is inside a field. Enter commits and keeps focus;\nEscape has nothing to cancel back to, so it is left uncancelled for an\nancestor dialog/popover. Their value binds as a content attribute, so once\nthe user has typed into one an out-of-band `rows` update to that same cell no\nlonger replaces the draft; an untouched editor still picks up a new value.\nFocus is restored across a re-sort that moves the editor's node, and dropped\n(never re-aimed at an unrelated row) when its row leaves the rendered page.\n`spellcheck`/`autocapitalize`/`autoCorrect` forward to the filter input and, for a `'text'`\n(the default) `editType`, the inline cell editor -- no effect on a `'number'` cell editor.\n`groupBy` inserts non-focusable group header rows before each group; use\n`groupLabel` when the raw group key needs custom content.\n\n`columns[].heatValue` opts a column into heat-tint mode: its numeric return value is normalized\nagainst a shared scale spanning every `heatValue`-defining column across every currently-rendered\nrow (auto-derived, or overridden via `heatTintScale`) and painted as a `color-mix()` background via\nthe retheme-able `--lr-table-heat-tint-lo`/`-hi` custom properties (matching `lr-heatmap`'s own\nramp-token convention). `rowTotal`/`grandTotal` add a trailing column mirroring `expandedContent`'s\nleading one: `rowTotal(row)` renders per-row, `grandTotal(rows)` renders at its intersection with\nthe footer row (only when a column also defines `footer`) — both share `footer`'s own\n\"consumer computes/renders\" contract rather than assuming addition.\n\nThe built-in empty state is addressable rather than fixed: every `<lr-empty>` the table renders\ncarries `part=\"empty\"` and re-exports its own inner parts as `empty-heading`/`empty-description`/\n`empty-icon`/`empty-actions`/`empty-base`, the two *data*-empty branches (no rows at all, and\nfiltered/paginated down to zero) render it as the fallback content of a named `empty` slot so a\nconsumer can replace it wholesale, and `emptyCompact` overrides each branch's built-in `compact`\ndefault. The no-columns branch is deliberately **not** slot-replaceable — it reports a\nconfiguration problem (`noColumnsHeading`), not \"this query returned nothing\", and a single slot\ncovering all three would collapse that distinction.\n\n`layout` sets a floor on the `<table>`'s `table-layout`: `'fixed'` forces it even with no column\nwidths, while the default `'auto'` still resolves to `fixed` whenever a column declares a `width`\nor a drag-resize is in flight (column resizing does not work under `table-layout: auto`).\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| `empty` | Replaces the built-in empty state on the two *data*-empty branches (no rows at all, and filtered/paginated down to zero). Left unfilled, the built-in `[part='empty']` `<lr-empty>` renders as this slot's fallback content. The no-columns branch renders its own `noColumnsHeading` state and is not slot-replaceable. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The root wrapper around the `<table>` and its footer controls. |\n| `caption` | The `<caption>` element, rendered only when `caption` is set. |\n| `cell` | Each body `<td>`. |\n| `cell-editor` | The native inline cell editor: shown after a double-click on an `editable: true` cell, and rendered persistently in every body cell of an `editable: 'always'` column. |\n| `empty` | The built-in `<lr-empty>` host, in all three empty states (no columns configured, no rows at all, and filtered/paginated down to zero rows). The two data-empty states render it as the `empty` slot's fallback, so it disappears once that slot is filled. Note that the no-columns and no-rows states return the empty element as the shadow root's own root, with no `[part='base']` wrapper around it — `::part(base)` does not apply in those two states, only in the filtered-to-zero one. |\n| `empty-actions` | Exported from the built-in `<lr-empty>`'s `actions` part. |\n| `empty-base` | Exported from the built-in `<lr-empty>`'s own `base` part. |\n| `empty-description` | Exported from the built-in `<lr-empty>`'s `description` part. |\n| `empty-heading` | Exported from the built-in `<lr-empty>`'s `heading` part. |\n| `empty-icon` | Exported from the built-in `<lr-empty>`'s `icon` part. |\n| `expand-toggle-cell` | Each row's (and the header's) leading chevron-toggle cell, rendered only when `expandedContent` is set. |\n| `expanded-cell` | The single `colspan`-spanning `<td>` inside `expanded-row`, containing `expandedContent(row)`. |\n| `expanded-row` | The full-width panel `<tr>` rendered beneath a row whose key is in `expandedKeys`. |\n| `filter` | The optional row-filter input. |\n| `filter-label` | The `<label>` wrapping the filter input. |\n| `foot` | The `<tfoot>`, only rendered when at least one column defines `footer`. |\n| `footer-cell` | A single footer cell. |\n| `footer-row` | The single footer row. |\n| `group-cell` | The full-width group header cell. |\n| `group-row` | A non-focusable group header row. |\n| `head` | The `<thead>` element. |\n| `header-cell` | Each `<th>` header cell. |\n| `loading` | The loading-state wrapper. Under `loadingAppearance=\"spinner\"` (the default) it is the visible block holding the spinner; under `\"skeleton\"` it is the visually-hidden `role=\"status\"` node, since the placeholder rows are the visible affordance. |\n| `more-button` | The \"load more\" control, shown when `hasMore` is true. |\n| `pagination` | The optional pagination component. |\n| `resize-handle` | The focusable separator used to resize a `resizable` column. |\n| `reveal-columns-button` | The button that toggles `priority`-hidden columns back into view. |\n| `row` | Each body `<tr>`. |\n| `row-expand-icon` | The chevron icon inside `row-expand-toggle`. |\n| `row-expand-toggle` | The `<button>` inside `expand-toggle-cell`, absent for a row that fails `canExpand`. |\n| `row-total-cell` | Each body row's trailing `<td>` holding `rowTotal(row)`, rendered only when `rowTotal` is set. The corresponding footer-row cell (holding `grandTotal`) is a `footer-cell` instead, matching every other footer cell. |\n| `skeleton` | Each `<lr-skeleton>` placeholder inside a `loadingAppearance=\"skeleton\"` body cell. Its rows and cells reuse the ordinary `row`/`cell`/`row-total-cell` parts (that is what keeps them geometrically identical to real rows), so this is the part to target for the placeholder's own look — e.g. `::part(skeleton) { --lr-skeleton-h: 2em; }`. |\n| `sort-icon` | The chevron shown in the active sortable column's header cell. |\n| `table` | The `<table role=\"grid\">` element. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-table-resize-min-width` (default: `var(--lr-size-3rem)`) — Default minimum width for a resizable column without an explicit pixel `minWidth`.\n- `--lr-table-resize-handle-opacity` (default: `0.12`) — Hover/focus opacity of the resize handle.\n- `--lr-table-max-height` (default: `none`) — Cap on the scroll container's block size, past which the table body scrolls.\n- `--lr-table-heat-tint-lo` (default: `var(--lr-color-brand-quiet)`) — Low endpoint of the heat-tint ramp used by `heatValue` columns.\n- `--lr-table-heat-tint-hi` (default: `var(--lr-color-brand)`) — High endpoint of the heat-tint ramp used by `heatValue` columns.\n- `--lr-table-heat-t` — This cell's position on the heat-tint ramp, as a percentage string. Set inline by the component on each `[data-heat]` cell; not consumer-settable.\n- `--lr-table-row-selected-bg` (default: `var(--lr-color-brand-quiet)`) — Background of a row whose `aria-selected` is `true`. Shadow Parts forbids an attribute selector after `::part()`, so `::part(row)[aria-selected]` is invalid CSS and the selected row could otherwise only be restyled by hijacking the library-wide `--lr-color-brand-quiet` token.\n- `--lr-table-header-sorted-bg` (default: `transparent`) — Background of the currently-sorted column's header cell (`[aria-sort]` other than `none`). Same rationale as `--lr-table-row-selected-bg`: `::part(header-cell)[aria-sort]` is invalid CSS, so this token is the supported way to recolor the sorted header without hijacking a library-wide token.\n- `--lr-table-header-sorted-color` (default: `inherit`) — Text color of the currently-sorted column's header cell.\n- `--lr-table-sticky-offset` (default: `0`) — Distance a `sticky` column pins from the inline edge. Measured and set inline per column by the component so multiple sticky columns stack instead of overlapping; falls back to `0` for the first one, or before the first measurement pass.",
|
|
14663
15150
|
"attributes": [
|
|
15151
|
+
{
|
|
15152
|
+
"name": "accessible-label",
|
|
15153
|
+
"description": "Accessible name for the `role=\"grid\"` — a typed alternative to setting `aria-label` on the\nhost. When set it becomes the grid's `aria-label`; a host `aria-label` is used as a fallback\nwhen this is unset. Consumer-supplied text, so it is NOT run through `this.localize()`.\n\nType: `string` \nDefault: `''`",
|
|
15154
|
+
"value": {
|
|
15155
|
+
"type": [
|
|
15156
|
+
"string"
|
|
15157
|
+
]
|
|
15158
|
+
}
|
|
15159
|
+
},
|
|
14664
15160
|
{
|
|
14665
15161
|
"name": "autocapitalize",
|
|
14666
15162
|
"description": "Forwarded to the same inputs' native `autocapitalize`. Empty string omits the attribute\n(browser default).\n\nType: `string` \nDefault: `''`",
|
|
@@ -14679,6 +15175,15 @@
|
|
|
14679
15175
|
]
|
|
14680
15176
|
}
|
|
14681
15177
|
},
|
|
15178
|
+
{
|
|
15179
|
+
"name": "caption",
|
|
15180
|
+
"description": "Optional visible caption rendered as the table's `<caption>`. Also names the grid (via\n`aria-labelledby`) when no `accessibleLabel`/host `aria-label` is set. Consumer-supplied\ntext, not localized.\n\nType: `string` \nDefault: `''`",
|
|
15181
|
+
"value": {
|
|
15182
|
+
"type": [
|
|
15183
|
+
"string"
|
|
15184
|
+
]
|
|
15185
|
+
}
|
|
15186
|
+
},
|
|
14682
15187
|
{
|
|
14683
15188
|
"name": "columns-hidden",
|
|
14684
15189
|
"description": "Whether a `priority` column is *actually* hidden right now by\ntable.styles.ts's `@container` rules, or `showAllColumns` force-visible\nmode is currently active — the same computed value that gates whether\n`[part='reveal-columns-button']` renders at all (see `render()`), kept\nin sync by `recomputeColumnsHidden()`. Computed/read-only by\nconvention: consumers may read it (and listen for\n`lr-columns-hidden-change`), but setting it directly has no lasting\neffect, since it's recomputed on the very next render or\n`[part='base']` resize.\n\nType: `boolean` \nDefault: `false`",
|
|
@@ -14911,6 +15416,10 @@
|
|
|
14911
15416
|
]
|
|
14912
15417
|
}
|
|
14913
15418
|
},
|
|
15419
|
+
{
|
|
15420
|
+
"name": "storage-key",
|
|
15421
|
+
"description": "Persists `showAllColumns` to `localStorage` across reloads when set. Namespaced as\n`lr-table:${storageKey}` -- mirrors `lr-app-rail`'s identical `storage-key` pattern.\n\nType: `string | undefined`"
|
|
15422
|
+
},
|
|
14914
15423
|
{
|
|
14915
15424
|
"name": "total-items",
|
|
14916
15425
|
"description": "Total item count for server pagination; `-1` derives it from filtered rows.\n\nType: `number` \nDefault: `-1`",
|
|
@@ -15165,7 +15674,7 @@
|
|
|
15165
15674
|
},
|
|
15166
15675
|
{
|
|
15167
15676
|
"name": "lr-textarea",
|
|
15168
|
-
"description": "`<lr-textarea>` — a multiline plain-text input primitive, form-associated via the\n`FormAssociated` mixin (see `<lr-chat-composer>`/`<lr-date-input>` for the same shape), so it\nparticipates in native `<form>` submission/validation/reset like any other text control --\n`name`/`value`/`disabled`/`required`/`checkValidity()`/`reportValidity()` all come from that mixin.\n\nShips an opt-in `label`/`hint`/`errorText` form-control chrome (props + matching named slots +\n`form-control-label`/`hint`/`error` parts), mirroring `<lr-select>`'s exact pattern -- left\nunset, the chrome remains hidden. A consumer preferring their own form-field layout can still\nignore these and wrap the element. A host `aria-label` is forwarded to the internal textbox;\nexternal `aria-labelledby`/`aria-describedby` idrefs are not copied across the shadow boundary.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| `error` | Custom error content. |\n| `hint` | Custom hint content. |\n| `label` | Custom label content. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `error` | The error message. |\n| `form-control` | The outer wrapper around label, textarea, error and hint. |\n| `form-control-label` | The `<label>` element. |\n| `hint` | The hint message. |\n| `textarea` | The native `<textarea>` element. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-textarea-max-block-size` (default: `none`) — Maximum auto-grown block size before the textarea scrolls.",
|
|
15677
|
+
"description": "`<lr-textarea>` — a multiline plain-text input primitive, form-associated via the\n`FormAssociated` mixin (see `<lr-chat-composer>`/`<lr-date-input>` for the same shape), so it\nparticipates in native `<form>` submission/validation/reset like any other text control --\n`name`/`value`/`disabled`/`required`/`checkValidity()`/`reportValidity()` all come from that mixin.\n\nShips an opt-in `label`/`hint`/`errorText` form-control chrome (props + matching named slots +\n`form-control-label`/`hint`/`error` parts), mirroring `<lr-select>`'s exact pattern -- left\nunset, the chrome remains hidden. A consumer preferring their own form-field layout can still\nignore these and wrap the element. A host `aria-label` is forwarded to the internal textbox;\nexternal `aria-labelledby`/`aria-describedby` idrefs are not copied across the shadow boundary.\n\n`minlength`/`maxlength` are forwarded to the internal native `<textarea>` and bridged into this\nelement's own `ElementInternals` as `tooShort`/`tooLong` by `updateValidity()`.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| `error` | Custom error content. |\n| `hint` | Custom hint content. |\n| `label` | Custom label content. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `error` | The error message. |\n| `form-control` | The outer wrapper around label, textarea, error and hint. |\n| `form-control-label` | The `<label>` element. |\n| `hint` | The hint message. |\n| `textarea` | The native `<textarea>` element. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-textarea-max-block-size` (default: `none`) — Maximum auto-grown block size before the textarea scrolls.",
|
|
15169
15678
|
"attributes": [
|
|
15170
15679
|
{
|
|
15171
15680
|
"name": "aria-label",
|
|
@@ -15261,6 +15770,14 @@
|
|
|
15261
15770
|
]
|
|
15262
15771
|
}
|
|
15263
15772
|
},
|
|
15773
|
+
{
|
|
15774
|
+
"name": "maxlength",
|
|
15775
|
+
"description": "Upper counterpart of `minlength` (native `maxlength`/`tooLong`), with the same parsing and\nthe same default of `undefined`. Note that native `maxlength` also *prevents* typing beyond\nthe limit; it reports `tooLong` for values that arrive some other way (paste of a longer\nvalue, a programmatic assignment).\n\nType: `number | undefined`"
|
|
15776
|
+
},
|
|
15777
|
+
{
|
|
15778
|
+
"name": "minlength",
|
|
15779
|
+
"description": "Minimum text length, forwarded to the native `<textarea>`'s own `minlength` and reported as\n`tooShort` by `updateValidity()`. Defaults to `undefined` (no lower bound). Like native\n`minlength`, an empty value never violates it — pair it with `required` to also reject\nempty.\n\nType: `number | undefined`"
|
|
15780
|
+
},
|
|
15264
15781
|
{
|
|
15265
15782
|
"name": "name",
|
|
15266
15783
|
"description": "Type: `string`",
|
|
@@ -15374,7 +15891,7 @@
|
|
|
15374
15891
|
},
|
|
15375
15892
|
{
|
|
15376
15893
|
"name": "lr-thread-list",
|
|
15377
|
-
"description": "`<lr-thread-list>` — the conversation sidebar: a grouped, searchable list of chat sessions with\npin/archive/delete/rename affordances. *Data mode* (non-empty `threads`, or empty `threads` with\nnothing slotted) renders every row as a `<lr-conversation-item>` inside an internal\n`<lr-virtual-list>` — virtualized by construction, scroll position and per-row state survive a\n`threads` replacement; zero rows renders the built-in empty state. *Slotted mode* (empty `threads`\n*and* real slotted content) renders host-supplied `<lr-conversation-item>`s from the default slot\nas-is: no grouping, virtualization, or row actions in that mode — those are data-mode-only by design\n(shadow DOM cannot inject group headers between slotted children).\n\nNo thread CRUD or persistence: every mutation (`lr-thread-pin`/`-archive`/`-delete`/`-rename`) is\na controlled event carrying the *requested* new state — the host mutates `threads`.\n\nData mode: a host needing content with no home in `lr-conversation-item`'s own\n`title`/`excerpt`/`meta`/`actions` surface sets `wrapRow` to wrap the already-built row. For\ncommon row composition, `renderLeading`, `renderExcerpt`, `renderMeta`, and `renderRowContent`\nprovide focused virtualized render hooks -- `renderExcerpt` renders into the row item's own\n`excerpt` slot (winning over the plain-string `excerpt` property) for rich per-row content such\nas a highlighted search snippet. A host needing a fully custom\n`actions` surface itself — beyond `rowActions`'s closed `pin | archive | delete` set, e.g. a\n`<lr-menu>` with Rename/Delete — sets `renderActions` instead; its content is appended after any\nbuilt-in `rowActions` output in the same slot, and `wrapRow` continues to compose around the result.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| (default) | Slotted mode only: host-supplied `lr-conversation-item`s, rendered in order. Each top-level assigned element that doesn't already carry an explicit `role` is given `role=\"listitem\"`, since `[part=\"list\"]` is `role=\"list\"` in this mode and `lr-conversation-item` deliberately doesn't self-apply that role (see its own class doc). |\n| `empty` | Replaces the built-in empty state. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The root. |\n| `empty` | The empty/no-matches state. |\n| `group-header` | A date/custom group header in data mode. |\n| `group-icon` | The decorative expand/collapse glyph. |\n| `group-label` | The group label inside `group-toggle`. |\n| `group-sticky` | `sticky-groups` only: the pinned copy of the current group's header, exported from the internal `lr-virtual-list`'s sticky layer. It wraps a full copy of the `group-header`/`group-toggle`/`group-label`/`group-icon` markup (which therefore styles both the real header row and the pinned copy), and carries `aria-hidden` — style it for the pinned band itself, e.g. a shadow or a border under the band. |\n| `group-toggle` | The controlled group expand/collapse button. |\n| `list` | The list region. |\n| `pin-glyph` | The small pin indicator shown in a pinned row's `meta` slot (data mode). |\n| `row` | Exported from the internal `lr-virtual-list`'s `row` part (data mode). |\n| `row-action` | A built-in pin/archive/delete icon button (data mode, when `rowActions` includes it). |\n| `row-actions` | The wrapper around built-in and `renderActions` output. |\n| `row-content` | The wrapper around `renderRowContent` output. |\n| `row-excerpt` | The wrapper around `renderExcerpt` output, slotted into the row item's own `excerpt` slot. |\n| `row-item-actions` | Data mode: the row item's `actions` wrapper. |\n| `row-item-base` | Data mode: the row `<lr-conversation-item>`'s own `base` part — the box whose padding sets row height. `row-item-*` parts are the item's *internals*; the `row-*` parts above wrap this component's own callback output and are a different surface. Styling row density here replaces the older `::part(row) { --lr-theme-*: … }` workaround, which retheme'd the whole row subtree (`renderActions` popups included). |\n| `row-item-content` | Data mode: the row item's title/excerpt content column. |\n| `row-item-excerpt` | Data mode: the row item's excerpt line. |\n| `row-item-leading` | Data mode: the row item's `leading` wrapper. |\n| `row-item-meta` | Data mode: the row item's `meta` wrapper. |\n| `row-item-option` | Data mode: the row item's selectable `option` region. |\n| `row-item-rename-button` | Data mode: the row item's pencil/rename affordance. |\n| `row-item-timestamp` | Data mode: the row item's `<time>` element. |\n| `row-item-title` | Data mode: the row item's title text. |\n| `row-item-title-input` | Data mode: the row item's in-place rename `<input>`. |\n| `row-leading` | The wrapper around `renderLeading` output. |\n| `row-meta` | A wrapper around built-in or `renderMeta` metadata. |\n| `row-wrapper` | The wrapper around `wrapRow` output (data mode, only when `wrapRow` is set). Row-only: group headers are never passed through `wrapRow`, so they never carry it. |\n| `search` | The search field wrapper. |\n| `search-input` | The `<input type=\"search\">`. |\n| `viewport` | The real scroll container, exported from the internal `lr-virtual-list`. It fills this component's height with no consumer CSS (and falls back to `lr-virtual-list`'s own 24rem `--lr-virtual-list-height` default when the container has no resolvable height). |",
|
|
15894
|
+
"description": "`<lr-thread-list>` — the conversation sidebar: a grouped, searchable list of chat sessions with\npin/archive/delete/rename affordances. *Data mode* (non-empty `threads`, or empty `threads` with\nnothing slotted) renders every row as a `<lr-conversation-item>` inside an internal\n`<lr-virtual-list>` — virtualized by construction, scroll position and per-row state survive a\n`threads` replacement; zero rows renders the built-in empty state. *Slotted mode* (empty `threads`\n*and* real slotted content) renders host-supplied `<lr-conversation-item>`s from the default slot\nas-is: no grouping, virtualization, or row actions in that mode — those are data-mode-only by design\n(shadow DOM cannot inject group headers between slotted children).\n\nNo thread CRUD or persistence: every mutation (`lr-thread-pin`/`-archive`/`-delete`/`-rename`) is\na controlled event carrying the *requested* new state — the host mutates `threads`.\n\nData mode: a host needing content with no home in `lr-conversation-item`'s own\n`title`/`excerpt`/`meta`/`actions` surface sets `wrapRow` to wrap the already-built row. For\ncommon row composition, `renderLeading`, `renderExcerpt`, `renderMeta`, and `renderRowContent`\nprovide focused virtualized render hooks -- `renderExcerpt` renders into the row item's own\n`excerpt` slot (winning over the plain-string `excerpt` property) for rich per-row content such\nas a highlighted search snippet. A host needing a fully custom\n`actions` surface itself — beyond `rowActions`'s closed `pin | archive | delete` set, e.g. a\n`<lr-menu>` with Rename/Delete — sets `renderActions` instead; its content is appended after any\nbuilt-in `rowActions` output in the same slot, and `wrapRow` continues to compose around the result.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| (default) | Slotted mode only: host-supplied `lr-conversation-item`s, rendered in order. Each top-level assigned element that doesn't already carry an explicit `role` is given `role=\"listitem\"`, since `[part=\"list\"]` is `role=\"list\"` in this mode and `lr-conversation-item` deliberately doesn't self-apply that role (see its own class doc). |\n| `empty` | Replaces the built-in empty state. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The root. |\n| `empty` | The empty/no-matches state. |\n| `group-header` | A date/custom group header in data mode. |\n| `group-icon` | The decorative expand/collapse glyph. |\n| `group-label` | The group label inside `group-toggle`. |\n| `group-sticky` | `sticky-groups` only: the pinned copy of the current group's header, exported from the internal `lr-virtual-list`'s sticky layer. It wraps a full copy of the `group-header`/`group-toggle`/`group-label`/`group-icon` markup (which therefore styles both the real header row and the pinned copy), and carries `aria-hidden` — style it for the pinned band itself, e.g. a shadow or a border under the band. |\n| `group-toggle` | The controlled group expand/collapse button. |\n| `list` | The list region. |\n| `pin-glyph` | The small pin indicator shown in a pinned row's `meta` slot (data mode). |\n| `row` | Exported from the internal `lr-virtual-list`'s `row` part (data mode). |\n| `row-action` | A built-in pin/archive/delete icon button (data mode, when `rowActions` includes it). |\n| `row-actions` | The wrapper around built-in and `renderActions` output. |\n| `row-content` | The wrapper around `renderRowContent` output. |\n| `row-excerpt` | The wrapper around `renderExcerpt` output, slotted into the row item's own `excerpt` slot. |\n| `row-item-actions` | Data mode: the row item's `actions` wrapper. |\n| `row-item-active-indicator` | Data mode: the row item's decorative active indicator, exported from `lr-conversation-item`. |\n| `row-item-base` | Data mode: the row `<lr-conversation-item>`'s own `base` part — the box whose padding sets row height. `row-item-*` parts are the item's *internals*; the `row-*` parts above wrap this component's own callback output and are a different surface. Styling row density here replaces the older `::part(row) { --lr-theme-*: … }` workaround, which retheme'd the whole row subtree (`renderActions` popups included). |\n| `row-item-content` | Data mode: the row item's title/excerpt content column. |\n| `row-item-excerpt` | Data mode: the row item's excerpt line. |\n| `row-item-leading` | Data mode: the row item's `leading` wrapper. |\n| `row-item-meta` | Data mode: the row item's `meta` wrapper. |\n| `row-item-option` | Data mode: the row item's selectable `option` region. |\n| `row-item-rename-button` | Data mode: the row item's pencil/rename affordance. |\n| `row-item-timestamp` | Data mode: the row item's `<time>` element. |\n| `row-item-title` | Data mode: the row item's title text. |\n| `row-item-title-input` | Data mode: the row item's in-place rename `<input>`. |\n| `row-leading` | The wrapper around `renderLeading` output. |\n| `row-meta` | A wrapper around built-in or `renderMeta` metadata. |\n| `row-wrapper` | The wrapper around `wrapRow` output (data mode, only when `wrapRow` is set). Row-only: group headers are never passed through `wrapRow`, so they never carry it. |\n| `search` | The search field wrapper. |\n| `search-input` | The `<input type=\"search\">`. |\n| `viewport` | The real scroll container, exported from the internal `lr-virtual-list`. It fills this component's height with no consumer CSS (and falls back to `lr-virtual-list`'s own 24rem `--lr-virtual-list-height` default when the container has no resolvable height). |",
|
|
15378
15895
|
"attributes": [
|
|
15379
15896
|
{
|
|
15380
15897
|
"name": "active-id",
|
|
@@ -15561,10 +16078,18 @@
|
|
|
15561
16078
|
"name": "max",
|
|
15562
16079
|
"description": "Latest selectable time, in the same form as `min`, reported by the native input as\n`rangeOverflow`. Defaults to `undefined` (no upper bound).\n\nType: `number | string | undefined`"
|
|
15563
16080
|
},
|
|
16081
|
+
{
|
|
16082
|
+
"name": "maxlength",
|
|
16083
|
+
"description": "Upper counterpart of `minlength` (native `maxlength`/`tooLong`), with the same parsing and the\nsame default of `undefined`. Note that native `maxlength` also *prevents* typing beyond the\nlimit; it reports `tooLong` for values that arrive some other way (paste of a longer value,\na programmatic assignment).\n\nType: `number | undefined`"
|
|
16084
|
+
},
|
|
15564
16085
|
{
|
|
15565
16086
|
"name": "min",
|
|
15566
16087
|
"description": "Earliest selectable time, as the native `<input type=\"time\">` spells it (`HH:MM`, or\n`HH:MM:SS` alongside a seconds-precision `step`). Forwarded verbatim to that native input,\nwhose own constraint validation reports `rangeUnderflow`. Defaults to `undefined` (no lower\nbound). Unlike `<lr-input type=\"number\">`'s numeric `min`, the attribute form is *not*\nparsed as a number.\n\nType: `number | string | undefined`"
|
|
15567
16088
|
},
|
|
16089
|
+
{
|
|
16090
|
+
"name": "minlength",
|
|
16091
|
+
"description": "Minimum text length, forwarded to the internal native `<input>`'s own `minlength` and\nconsulted by that same native input's constraint validation (`tooShort`, see\n`updateValidity()`). Defaults to `undefined` (no lower bound). Like native `minlength`, an\nempty value never violates it — pair it with `required` to also reject empty. Ignored by the\nnative input for `type=\"number\"`/`type=\"time\"`, exactly as the platform specifies.\n\nType: `number | undefined`"
|
|
16092
|
+
},
|
|
15568
16093
|
{
|
|
15569
16094
|
"name": "password-visible",
|
|
15570
16095
|
"description": "`type=\"password\"` only — whether the field currently reveals its raw text. Toggled by the\nbuilt-in `password-toggle` button; also settable by a consumer up front.\n\nType: `boolean` \nDefault: `false`",
|
|
@@ -15574,6 +16099,10 @@
|
|
|
15574
16099
|
]
|
|
15575
16100
|
}
|
|
15576
16101
|
},
|
|
16102
|
+
{
|
|
16103
|
+
"name": "pattern",
|
|
16104
|
+
"description": "A regular expression the value must match in full, forwarded to the internal native\n`<input>`'s own `pattern` and validated by it (`patternMismatch`). Defaults to `undefined`\n(no pattern). Compiled by the browser with the `v` flag and anchored to the whole value, so\nno `^`/`$` is needed; an empty value never violates it.\n\nType: `string | undefined`"
|
|
16105
|
+
},
|
|
15577
16106
|
{
|
|
15578
16107
|
"name": "placeholder",
|
|
15579
16108
|
"description": "Type: `string` \nDefault: `''`",
|
|
@@ -16274,7 +16803,7 @@
|
|
|
16274
16803
|
},
|
|
16275
16804
|
{
|
|
16276
16805
|
"name": "lr-tool-result-view",
|
|
16277
|
-
"description": "`<lr-tool-result-view>` — renders a tool call's result via whichever\ncustom renderer a host app has registered for it (see `registerToolRenderer()`\nin `registry.ts`), falling back to `<lr-json-viewer>` whenever no\nrenderer matches, a candidate renderer's `matches()` predicate throws during\ndispatch, a renderer's optional `load()` rejects, or its `render()` throws.\nThis component owns none of the actual visual weight of a\npopulated tool result — that's entirely whatever the registered renderer\nreturns; this is just the dispatch + fallback + loading-state shell.\n\nDispatch runs against `registry` when set, otherwise against the\nmodule-level default registry `registerToolRenderer()` writes to — see\n`findToolRenderer()`'s two-step (exact name, then shape-based `matches()`)\nlookup order for the full rule.\n\n`fallback` implements two kinds: `\"json\"` (the default, an unconditional `<lr-json-viewer>`)\nand `\"text\"`, which renders a *string* `result` as preformatted text instead — falling back to\nthe `\"json\"` behavior when `result` isn't a string, so setting `fallback=\"text\"` defensively\nagainst an unpredictable result shape never renders broken output. `copyable` adds a\ncopy-to-clipboard affordance to either fallback kind (forwarded to `<lr-json-viewer>`'s own\n`copyable` for `\"json\"`; a `<lr-copy-button>` alongside the text for `\"text\"`).\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The root wrapper around the resolved renderer's output (or the loading/fallback view). |\n| `fallback-copy` | The `<lr-copy-button>` shown when `copyable` is set alongside the `fallback=\"text\"` kind (only present when both are set). |\n| `fallback-text` | The `<pre>` element for the `fallback=\"text\"` kind's preformatted result text (only present in that mode). |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-tool-result-view-font` (default: `var(--lr-font-mono)`) — Font family for the `fallback=\"text\"` preformatted output.",
|
|
16806
|
+
"description": "`<lr-tool-result-view>` — renders a tool call's result via whichever\ncustom renderer a host app has registered for it (see `registerToolRenderer()`\nin `registry.ts`), falling back to `<lr-json-viewer>` whenever no\nrenderer matches, a candidate renderer's `matches()` predicate throws during\ndispatch, a renderer's optional `load()` rejects, or its `render()` throws.\nThis component owns none of the actual visual weight of a\npopulated tool result — that's entirely whatever the registered renderer\nreturns; this is just the dispatch + fallback + loading-state shell.\n\nDispatch runs against `registry` when set, otherwise against the\nmodule-level default registry `registerToolRenderer()` writes to — see\n`findToolRenderer()`'s two-step (exact name, then shape-based `matches()`)\nlookup order for the full rule.\n\n`fallback` implements two kinds: `\"json\"` (the default, an unconditional `<lr-json-viewer>`)\nand `\"text\"`, which renders a *string* `result` as preformatted text instead — falling back to\nthe `\"json\"` behavior when `result` isn't a string, so setting `fallback=\"text\"` defensively\nagainst an unpredictable result shape never renders broken output. `copyable` adds a\ncopy-to-clipboard affordance to either fallback kind (forwarded to `<lr-json-viewer>`'s own\n`copyable` for `\"json\"`; a `<lr-copy-button>` alongside the text for `\"text\"`).\n\nA matched renderer's `render()` is also handed a 3rd `context` argument\n(`{ reportStatus }`) it can use to signal a non-throwing outcome (e.g. an application-level\nfailure it still drew a real UI for) — see `ToolRenderContext` in `registry.ts`. This is purely\nadditive: a pre-existing 2-arg `render(result, args)` function stays assignable unchanged, and a\nrenderer that never calls `reportStatus` leaves `status` at its default, `'success'`.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The root wrapper around the resolved renderer's output (or the loading/fallback view). |\n| `fallback-copy` | The `<lr-copy-button>` shown when `copyable` is set alongside the `fallback=\"text\"` kind (only present when both are set). |\n| `fallback-text` | The `<pre>` element for the `fallback=\"text\"` kind's preformatted result text (only present in that mode). |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-tool-result-view-font` (default: `var(--lr-font-mono)`) — Font family for the `fallback=\"text\"` preformatted output.",
|
|
16278
16807
|
"attributes": [
|
|
16279
16808
|
{
|
|
16280
16809
|
"name": "copyable",
|
|
@@ -16303,6 +16832,15 @@
|
|
|
16303
16832
|
]
|
|
16304
16833
|
}
|
|
16305
16834
|
},
|
|
16835
|
+
{
|
|
16836
|
+
"name": "status",
|
|
16837
|
+
"description": "The outcome of the currently-rendered result, as reported by the matched renderer's optional\n`context.reportStatus()` third `render()` argument (see `ToolRenderContext` in `registry.ts`).\nReset to `'success'` immediately before every `render()` call, so a renderer that never calls\n`reportStatus` — including every pre-existing 2-arg renderer — leaves it at that default, and a\nlater renderer that stays quiet doesn't inherit a stale outcome from a previous one. Reuses the\nsame vocabulary as `<lr-tool-result-dialog>`'s own `status` property.\n\nType: `ToolResultStatus` \nDefault: `'success'`",
|
|
16838
|
+
"value": {
|
|
16839
|
+
"type": [
|
|
16840
|
+
"ToolResultStatus"
|
|
16841
|
+
]
|
|
16842
|
+
}
|
|
16843
|
+
},
|
|
16306
16844
|
{
|
|
16307
16845
|
"name": "tool-name",
|
|
16308
16846
|
"description": "The tool's name — the primary dispatch key (see `findToolRenderer()`).\n\nType: `string` \nDefault: `''`",
|
|
@@ -16765,7 +17303,7 @@
|
|
|
16765
17303
|
},
|
|
16766
17304
|
{
|
|
16767
17305
|
"name": "lr-typing-indicator",
|
|
16768
|
-
"description": "`<lr-typing-indicator>` — a purely presentational \"assistant is\nresponding\" presence cue. No events, no interactivity: a consumer mounts\nit while a response is being generated and removes it (or hides it) once\nreal content has arrived.\n\nThree visual variants share one component rather than three separate tags\nbecause callers pick between them along a single axis — how the\nsurrounding surface wants the cue to read — and nothing else about the\ncomponent differs:\n- `dots` (default) — three dots with a staggered bounce, the classic\n \"typing…\" affordance for a standalone status line.\n- `pulse` — a single breathing dot, a quieter cue for a tighter space\n (e.g. next to an avatar).\n- `cursor` — a blinking vertical bar, meant to sit inline at the tail end\n of streamed text that is still being appended to.\n\nAccessibility: this indicator typically mounts and unmounts around a real\ngeneration lifecycle (appears when a response starts, disappears once one\narrives) rather than emitting a stream of updates of its own, so it does\n*not* route through `<lr-live-region>`/`Announcer`\n(`../../internal/announcer.js`) — that machinery exists to coalesce many\nrapidly-changing announcements into one, and there is only ever a single\nannouncement here: the mount itself. A plain `role=\"status\"` plus an\naccessible name derived from `label` is sufficient, set both as an\n`aria-label` on the host *and* as a visually-hidden text node in the\nshadow tree, so the name survives even if only one of the two is picked up\nby a given assistive-tech/browser pairing. An untouched-default, empty, or\nwhitespace-only `label` falls back to the localized \"Thinking…\" copy in\nboth places, rather than leaving the component with no accessible name at\nall. An `aria-label` set directly on the host element (the idiomatic way to\nname any custom element) wins over the `label`-derived default, in both\nplaces -- the host attribute is never silently clobbered on first render.\nThe animated dots/pulse/cursor\nshape is `aria-hidden=\"true\"` — it's decorative; `label` is the entire\naccessible content, so nothing narrates individual animation frames.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The decorative (`aria-hidden`) wrapper around the animated shape. |\n| `cursor` | The blinking bar in the `cursor` variant. |\n| `dot` | Each of the three dots in the `dots` variant. |\n| `pulse` | The single pulsing dot in the `pulse` variant. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-
|
|
17306
|
+
"description": "`<lr-typing-indicator>` — a purely presentational \"assistant is\nresponding\" presence cue. No events, no interactivity: a consumer mounts\nit while a response is being generated and removes it (or hides it) once\nreal content has arrived.\n\nThree visual variants share one component rather than three separate tags\nbecause callers pick between them along a single axis — how the\nsurrounding surface wants the cue to read — and nothing else about the\ncomponent differs:\n- `dots` (default) — three dots with a staggered bounce, the classic\n \"typing…\" affordance for a standalone status line.\n- `pulse` — a single breathing dot, a quieter cue for a tighter space\n (e.g. next to an avatar).\n- `cursor` — a blinking vertical bar, meant to sit inline at the tail end\n of streamed text that is still being appended to.\n\nAccessibility: this indicator typically mounts and unmounts around a real\ngeneration lifecycle (appears when a response starts, disappears once one\narrives) rather than emitting a stream of updates of its own, so it does\n*not* route through `<lr-live-region>`/`Announcer`\n(`../../internal/announcer.js`) — that machinery exists to coalesce many\nrapidly-changing announcements into one, and there is only ever a single\nannouncement here: the mount itself. A plain `role=\"status\"` plus an\naccessible name derived from `label` is sufficient, set both as an\n`aria-label` on the host *and* as a visually-hidden text node in the\nshadow tree, so the name survives even if only one of the two is picked up\nby a given assistive-tech/browser pairing. An untouched-default, empty, or\nwhitespace-only `label` falls back to the localized \"Thinking…\" copy in\nboth places, rather than leaving the component with no accessible name at\nall. An `aria-label` set directly on the host element (the idiomatic way to\nname any custom element) wins over the `label`-derived default, in both\nplaces -- the host attribute is never silently clobbered on first render.\nThe animated dots/pulse/cursor\nshape is `aria-hidden=\"true\"` — it's decorative; `label` is the entire\naccessible content, so nothing narrates individual animation frames.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The decorative (`aria-hidden`) wrapper around the animated shape. |\n| `cursor` | The blinking bar in the `cursor` variant. |\n| `dot` | Each of the three dots in the `dots` variant. |\n| `pulse` | The single pulsing dot in the `pulse` variant. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-typing-duration` (default: `var(--lr-transition-ambient)`) — Animation duration and timing function for the dot-bounce/pulse/cursor-blink loop, shared by all variants. Aliases the shared `--lr-transition-ambient` token (default `1.8s ease-in-out`) by default, so retiming just this component doesn't affect other ambient-looping components in the library.\n- `--lr-typing-dot-stagger-1` (default: `600ms`) — Delay for the second dot in the dots variant.\n- `--lr-typing-dot-stagger-2` (default: `1200ms`) — Delay for the third dot in the dots variant.",
|
|
16769
17307
|
"attributes": [
|
|
16770
17308
|
{
|
|
16771
17309
|
"name": "label",
|
|
@@ -17184,6 +17722,10 @@
|
|
|
17184
17722
|
]
|
|
17185
17723
|
}
|
|
17186
17724
|
},
|
|
17725
|
+
{
|
|
17726
|
+
"name": "storage-key",
|
|
17727
|
+
"description": "Persists `collapsed` to `localStorage` across reloads when set. Namespaced as\n`lr-widget:${storageKey}` -- mirrors `lr-app-rail`'s/`lr-table`'s identical `storage-key`\npattern. Unset (the default) touches storage not at all.\n\nType: `string | undefined`"
|
|
17728
|
+
},
|
|
17187
17729
|
{
|
|
17188
17730
|
"name": "sublabel",
|
|
17189
17731
|
"description": "Type: `string` \nDefault: `''`",
|
|
@@ -17212,7 +17754,7 @@
|
|
|
17212
17754
|
},
|
|
17213
17755
|
{
|
|
17214
17756
|
"name": "lr-word-cloud",
|
|
17215
|
-
"description": "`<lr-word-cloud>` — a zero-dependency SVG word/tag cloud. First-party\ninvention (no Web Awesome equivalent). Each word's rendered size is scaled\nfrom its `weight` and placed via an outward Archimedean-spiral search (the\nstandard word-cloud heuristic: heaviest words placed first, each one\nspiraling out from the center until it clears every word already placed).\n\nUnlike sibling `lr-sparkline`/`lr-heatmap` (one `role=\"img\"` glyph\nstanding in for an aggregate value), the individual words here are the\nmeaningful interactive content — but with up to `MAX_WORDS` of them, making\nevery single one its own tab stop would be a poor keyboard experience.\nInstead, like `lr-heatmap`'s cells, the whole `[part=\"svg\"]` is one tab\nstop with roving arrow-key focus (Home/End jump to the first/last word,\nEnter/Space activates the focused one), a drawn `[part=\"focus-ring\"]`, and\na visually-hidden `aria-live=\"polite\"` status announcement. The SVG focus\ntarget carries the group role and accessible name so the semantics follow\nthe element a keyboard user actually focuses.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The word-cloud wrapper. |\n| `empty` | The empty-state message. |\n| `focus-ring` | The keyboard focus ring. |\n| `live-region` | The visually hidden announcement region. |\n| `svg` | The word-cloud SVG. |\n| `word` | A rendered word. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-word-cloud-color-1` (default: `var(--lr-color-brand)`) — First entry of the default categorical palette.\n- `--lr-word-cloud-color-2` (default: `var(--lr-color-success)`) — Second entry of the default categorical palette.\n- `--lr-word-cloud-color-3` (default: `var(--lr-color-warning)`) — Third entry of the default categorical palette.\n- `--lr-word-cloud-color-4` (default: `var(--lr-color-danger)`) — Fourth entry of the default categorical palette.\n- `--lr-word-cloud-color-5` (default: `var(--lr-color-chart-1)`) — Fifth entry of the default categorical palette.\n- `--lr-word-cloud-color-6` (default: `var(--lr-color-chart-2)`) — Sixth entry of the default categorical palette.\n- `--lr-word-cloud-color-7` (default: `var(--lr-color-chart-3)`) — Seventh entry of the default categorical palette.\n- `--lr-word-cloud-color-8` (default: `var(--lr-color-chart-4)`) — Eighth entry of the default categorical palette.",
|
|
17757
|
+
"description": "`<lr-word-cloud>` — a zero-dependency SVG word/tag cloud. First-party\ninvention (no Web Awesome equivalent). Each word's rendered size is scaled\nfrom its `weight` and placed via an outward Archimedean-spiral search (the\nstandard word-cloud heuristic: heaviest words placed first, each one\nspiraling out from the center until it clears every word already placed).\n\nUnlike sibling `lr-sparkline`/`lr-heatmap` (one `role=\"img\"` glyph\nstanding in for an aggregate value), the individual words here are the\nmeaningful interactive content — but with up to `MAX_WORDS` of them, making\nevery single one its own tab stop would be a poor keyboard experience.\nInstead, like `lr-heatmap`'s cells, the whole `[part=\"svg\"]` is one tab\nstop with roving arrow-key focus (Home/End jump to the first/last word,\nEnter/Space activates the focused one), a drawn `[part=\"focus-ring\"]`, and\na visually-hidden `aria-live=\"polite\"` status announcement. The SVG focus\ntarget carries the group role and accessible name so the semantics follow\nthe element a keyboard user actually focuses.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The word-cloud wrapper. |\n| `empty` | The empty-state message. |\n| `focus-ring` | The keyboard focus ring. |\n| `legend` | The optional color key below the cloud. |\n| `legend-item` | One named color entry. |\n| `legend-label` | The visible legend label. |\n| `legend-swatch` | The color swatch for a legend entry. |\n| `live-region` | The visually hidden announcement region. |\n| `svg` | The word-cloud SVG. |\n| `word` | A rendered word. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-word-cloud-color-1` (default: `var(--lr-color-brand)`) — First entry of the default categorical palette.\n- `--lr-word-cloud-color-2` (default: `var(--lr-color-success)`) — Second entry of the default categorical palette.\n- `--lr-word-cloud-color-3` (default: `var(--lr-color-warning)`) — Third entry of the default categorical palette.\n- `--lr-word-cloud-color-4` (default: `var(--lr-color-danger)`) — Fourth entry of the default categorical palette.\n- `--lr-word-cloud-color-5` (default: `var(--lr-color-chart-1)`) — Fifth entry of the default categorical palette.\n- `--lr-word-cloud-color-6` (default: `var(--lr-color-chart-2)`) — Sixth entry of the default categorical palette.\n- `--lr-word-cloud-color-7` (default: `var(--lr-color-chart-3)`) — Seventh entry of the default categorical palette.\n- `--lr-word-cloud-color-8` (default: `var(--lr-color-chart-4)`) — Eighth entry of the default categorical palette.",
|
|
17216
17758
|
"attributes": [
|
|
17217
17759
|
{
|
|
17218
17760
|
"name": "locale",
|
|
@@ -17248,6 +17790,15 @@
|
|
|
17248
17790
|
"WordCloudScale"
|
|
17249
17791
|
]
|
|
17250
17792
|
}
|
|
17793
|
+
},
|
|
17794
|
+
{
|
|
17795
|
+
"name": "show-legend",
|
|
17796
|
+
"description": "Renders the supplied or derived legend entries below the cloud. It is non-interactive and\ndoes not alter word activation or palette selection.\n\nType: `boolean` \nDefault: `false`",
|
|
17797
|
+
"value": {
|
|
17798
|
+
"type": [
|
|
17799
|
+
"boolean"
|
|
17800
|
+
]
|
|
17801
|
+
}
|
|
17251
17802
|
}
|
|
17252
17803
|
]
|
|
17253
17804
|
},
|
|
@@ -17699,6 +18250,10 @@
|
|
|
17699
18250
|
"name": "--lr-button-radius",
|
|
17700
18251
|
"description": "**`<lr-button>`** (default: `var(--lr-radius)`) — Corner radius of the internal button. Does not vary by `size` tier. `appearance=\"link\"` ignores it (it renders with zero radius)."
|
|
17701
18252
|
},
|
|
18253
|
+
{
|
|
18254
|
+
"name": "--lr-button-shadow",
|
|
18255
|
+
"description": "**`<lr-button>`** — Box shadow of the internal button. **Undeclared by default**, so `box-shadow` falls back to `none` — byte-identical to before this property existed. Set it (e.g. an elevated/floating action button) without a `::part(base)` rule."
|
|
18256
|
+
},
|
|
17702
18257
|
{
|
|
17703
18258
|
"name": "--lr-button-size-2xs",
|
|
17704
18259
|
"description": "**`<lr-button>`** (default: `var(--lr-size-1-25rem)`) — `min-block-size` at `size=\"2xs\"`."
|
|
@@ -17963,6 +18518,22 @@
|
|
|
17963
18518
|
"name": "--lr-combobox-option-active-bg",
|
|
17964
18519
|
"description": "**`<lr-combobox>`** (default: `var(--lr-color-brand-quiet)`) — Background of a hovered or keyboard-active option row."
|
|
17965
18520
|
},
|
|
18521
|
+
{
|
|
18522
|
+
"name": "--lr-combobox-option-selected-bg",
|
|
18523
|
+
"description": "**`<lr-combobox>`** (default: `transparent`) — Background of the currently-selected option row. Not declared on `:host`; retheme without hijacking `--lr-color-brand`."
|
|
18524
|
+
},
|
|
18525
|
+
{
|
|
18526
|
+
"name": "--lr-combobox-option-selected-border",
|
|
18527
|
+
"description": "**`<lr-combobox>`** (default: `var(--lr-color-brand)`) — Border color of the selected option row."
|
|
18528
|
+
},
|
|
18529
|
+
{
|
|
18530
|
+
"name": "--lr-combobox-option-selected-color",
|
|
18531
|
+
"description": "**`<lr-combobox>`** (default: `var(--lr-color-brand)`) — Text color of the selected option row."
|
|
18532
|
+
},
|
|
18533
|
+
{
|
|
18534
|
+
"name": "--lr-combobox-option-selected-font-weight",
|
|
18535
|
+
"description": "**`<lr-combobox>`** (default: `var(--lr-font-weight-semibold)`) — Font weight of the selected option row."
|
|
18536
|
+
},
|
|
17966
18537
|
{
|
|
17967
18538
|
"name": "--lr-combobox-radius",
|
|
17968
18539
|
"description": "**`<lr-combobox>`** (default: `var(--lr-radius)`) — Corner radius of the trigger row (`[part='combobox']`). Does not vary by `size` tier."
|
|
@@ -18059,6 +18630,18 @@
|
|
|
18059
18630
|
"name": "--lr-conversation-item-active-color",
|
|
18060
18631
|
"description": "**`<lr-conversation-item>`** (default: `var(--lr-color-text)`) — Text color of `[part=\"excerpt\"]` and `[part=\"timestamp\"]` while `active`. **Contrast-sensitive:** it exists precisely because `--lr-color-text-quiet` only reaches ~4.25:1 against the active background; override it together with `--lr-conversation-item-active-bg`, never alone."
|
|
18061
18632
|
},
|
|
18633
|
+
{
|
|
18634
|
+
"name": "--lr-conversation-item-active-indicator-color",
|
|
18635
|
+
"description": "**`<lr-conversation-item>`** (default: `var(--lr-color-brand)`) — Color of the decorative `[part=\"active-indicator\"]` while `active`."
|
|
18636
|
+
},
|
|
18637
|
+
{
|
|
18638
|
+
"name": "--lr-conversation-item-active-indicator-inset-inline",
|
|
18639
|
+
"description": "**`<lr-conversation-item>`** (default: `0 auto`) — Logical inline-start and inline-end insets for `[part=\"active-indicator\"]`; set `auto 0` to place it at inline-end."
|
|
18640
|
+
},
|
|
18641
|
+
{
|
|
18642
|
+
"name": "--lr-conversation-item-active-indicator-width",
|
|
18643
|
+
"description": "**`<lr-conversation-item>`** (default: `var(--lr-size-2px)`) — Inline size of `[part=\"active-indicator\"]` while `active`."
|
|
18644
|
+
},
|
|
18062
18645
|
{
|
|
18063
18646
|
"name": "--lr-conversation-item-compact-gap",
|
|
18064
18647
|
"description": "**`<lr-conversation-item>`** (default: `var(--lr-space-2xs)`) — Gap between `[part=\"base\"]`'s columns while `compact`."
|
|
@@ -18215,6 +18798,10 @@
|
|
|
18215
18798
|
"name": "--lr-empty-compact-align",
|
|
18216
18799
|
"description": "**`<lr-empty>`** — Cross-axis and text alignment used in compact mode; set to `center` for dense but centered empty states."
|
|
18217
18800
|
},
|
|
18801
|
+
{
|
|
18802
|
+
"name": "--lr-empty-compact-font-size",
|
|
18803
|
+
"description": "**`<lr-empty>`** — Heading font size used in compact mode. Unset by default (no fallback), so the heading keeps its ordinary inherited font size until a consumer opts in."
|
|
18804
|
+
},
|
|
18218
18805
|
{
|
|
18219
18806
|
"name": "--lr-empty-compact-gap",
|
|
18220
18807
|
"description": "**`<lr-empty>`** (default: `var(--lr-space-2xs)`) — Gap between the icon, title, and description in compact mode."
|
|
@@ -18435,6 +19022,18 @@
|
|
|
18435
19022
|
"name": "--lr-html-viewer-max-height",
|
|
18436
19023
|
"description": "**`<lr-html-viewer>`** (default: `none`) — Maximum block size of `[part=\"body\"]` before it scrolls internally. The `maxHeight` property sets this token inline on `[part=\"base\"]`."
|
|
18437
19024
|
},
|
|
19025
|
+
{
|
|
19026
|
+
"name": "--lr-icon-button-background",
|
|
19027
|
+
"description": "**`<lr-icon-button>`** (default: `transparent`) — Background fill of the native button."
|
|
19028
|
+
},
|
|
19029
|
+
{
|
|
19030
|
+
"name": "--lr-icon-button-background-hover",
|
|
19031
|
+
"description": "**`<lr-icon-button>`** (default: `var(--lr-color-surface)`) — Background fill on hover."
|
|
19032
|
+
},
|
|
19033
|
+
{
|
|
19034
|
+
"name": "--lr-icon-button-color",
|
|
19035
|
+
"description": "**`<lr-icon-button>`** (default: `inherit`) — Icon/text color of the native button."
|
|
19036
|
+
},
|
|
18438
19037
|
{
|
|
18439
19038
|
"name": "--lr-icon-button-radius",
|
|
18440
19039
|
"description": "**`<lr-icon-button>`** (default: `var(--lr-radius)`) — Corner radius of the native button."
|
|
@@ -18655,6 +19254,22 @@
|
|
|
18655
19254
|
"name": "--lr-model-select-option-active-bg",
|
|
18656
19255
|
"description": "**`<lr-model-select>`** (default: `var(--lr-color-brand-quiet)`) — Background of a hovered or keyboard-active option row."
|
|
18657
19256
|
},
|
|
19257
|
+
{
|
|
19258
|
+
"name": "--lr-model-select-option-selected-bg",
|
|
19259
|
+
"description": "**`<lr-model-select>`** (default: `transparent`) — Background of the currently-selected option row. Not declared on `:host`; retheme without hijacking `--lr-color-brand`."
|
|
19260
|
+
},
|
|
19261
|
+
{
|
|
19262
|
+
"name": "--lr-model-select-option-selected-border",
|
|
19263
|
+
"description": "**`<lr-model-select>`** (default: `var(--lr-color-brand)`) — Border color of the selected option row."
|
|
19264
|
+
},
|
|
19265
|
+
{
|
|
19266
|
+
"name": "--lr-model-select-option-selected-color",
|
|
19267
|
+
"description": "**`<lr-model-select>`** (default: `var(--lr-color-brand)`) — Text color of the selected option row."
|
|
19268
|
+
},
|
|
19269
|
+
{
|
|
19270
|
+
"name": "--lr-model-select-option-selected-font-weight",
|
|
19271
|
+
"description": "**`<lr-model-select>`** (default: `var(--lr-font-weight-semibold)`) — Font weight of the selected option row."
|
|
19272
|
+
},
|
|
18658
19273
|
{
|
|
18659
19274
|
"name": "--lr-model-select-trigger-min-height",
|
|
18660
19275
|
"description": "**`<lr-model-select>`** (default: `var(--lr-size-2-5rem)`) — Trigger/combobox block-size floor, scaled by `size`."
|
|
@@ -18883,6 +19498,22 @@
|
|
|
18883
19498
|
"name": "--lr-select-option-active-bg",
|
|
18884
19499
|
"description": "**`<lr-select>`** (default: `var(--lr-color-brand-quiet)`) — Background of the hovered/keyboard-active option row. Not declared on `:host`, so a value set on any ancestor is never shadowed -- retheme just this row state without hijacking the shared `--lr-color-brand-quiet` token used by every other component's own hover/active state."
|
|
18885
19500
|
},
|
|
19501
|
+
{
|
|
19502
|
+
"name": "--lr-select-option-selected-bg",
|
|
19503
|
+
"description": "**`<lr-select>`** (default: `transparent`) — Background of the currently-selected option row. Not declared on `:host`; retheme just the selected row without hijacking `--lr-color-brand`."
|
|
19504
|
+
},
|
|
19505
|
+
{
|
|
19506
|
+
"name": "--lr-select-option-selected-border",
|
|
19507
|
+
"description": "**`<lr-select>`** (default: `var(--lr-color-brand)`) — Border color of the selected option row."
|
|
19508
|
+
},
|
|
19509
|
+
{
|
|
19510
|
+
"name": "--lr-select-option-selected-color",
|
|
19511
|
+
"description": "**`<lr-select>`** (default: `var(--lr-color-brand)`) — Text color of the selected option row."
|
|
19512
|
+
},
|
|
19513
|
+
{
|
|
19514
|
+
"name": "--lr-select-option-selected-font-weight",
|
|
19515
|
+
"description": "**`<lr-select>`** (default: `var(--lr-font-weight-semibold)`) — Font weight of the selected option row."
|
|
19516
|
+
},
|
|
18886
19517
|
{
|
|
18887
19518
|
"name": "--lr-select-radius",
|
|
18888
19519
|
"description": "**`<lr-select>`** — Trigger corner radius. Doesn't vary by `size`."
|
|
@@ -19063,6 +19694,14 @@
|
|
|
19063
19694
|
"name": "--lr-swatch-picker-fill-size",
|
|
19064
19695
|
"description": "**`<lr-swatch-picker>`** (default: `var(--lr-size-1-5rem)`) — Visible fill/icon diameter for the swatch, swapped per tier."
|
|
19065
19696
|
},
|
|
19697
|
+
{
|
|
19698
|
+
"name": "--lr-swatch-picker-gemstone-selected-blur",
|
|
19699
|
+
"description": "**`<lr-swatch-picker>`** (default: `var(--lr-size-0-5rem)`) — Selected glow blur used by `mode=\"gemstone\"` when `--lr-swatch-picker-selected-blur` is not overridden."
|
|
19700
|
+
},
|
|
19701
|
+
{
|
|
19702
|
+
"name": "--lr-swatch-picker-gemstone-shine-duration",
|
|
19703
|
+
"description": "**`<lr-swatch-picker>`** (default: `1.8s`) — Selected shine duration used by `mode=\"gemstone\"` when `--lr-swatch-picker-shine-duration` is not overridden."
|
|
19704
|
+
},
|
|
19066
19705
|
{
|
|
19067
19706
|
"name": "--lr-swatch-picker-hit-size",
|
|
19068
19707
|
"description": "**`<lr-swatch-picker>`** (default: `var(--lr-size-2-5rem)`) — Hit-area size (both min-inline-size and min-block-size) for the swatch button, swapped per tier and floored at 24px."
|
|
@@ -19091,6 +19730,14 @@
|
|
|
19091
19730
|
"name": "--lr-switch-track-inline-size",
|
|
19092
19731
|
"description": "**`<lr-switch>`** (default: `var(--lr-size-2-25rem)`) — Inline size of the track, and (with the block size) the distance the thumb travels when checked."
|
|
19093
19732
|
},
|
|
19733
|
+
{
|
|
19734
|
+
"name": "--lr-table-header-sorted-bg",
|
|
19735
|
+
"description": "**`<lr-table>`** (default: `transparent`) — Background of the currently-sorted column's header cell (`[aria-sort]` other than `none`). Same rationale as `--lr-table-row-selected-bg`: `::part(header-cell)[aria-sort]` is invalid CSS, so this token is the supported way to recolor the sorted header without hijacking a library-wide token."
|
|
19736
|
+
},
|
|
19737
|
+
{
|
|
19738
|
+
"name": "--lr-table-header-sorted-color",
|
|
19739
|
+
"description": "**`<lr-table>`** (default: `inherit`) — Text color of the currently-sorted column's header cell."
|
|
19740
|
+
},
|
|
19094
19741
|
{
|
|
19095
19742
|
"name": "--lr-table-heat-t",
|
|
19096
19743
|
"description": "**`<lr-table>`** — This cell's position on the heat-tint ramp, as a percentage string. Set inline by the component on each `[data-heat]` cell; not consumer-settable."
|
|
@@ -19417,7 +20064,7 @@
|
|
|
19417
20064
|
},
|
|
19418
20065
|
{
|
|
19419
20066
|
"name": "--lr-transition-ambient",
|
|
19420
|
-
"description": "**`<lr-chat-message>`** (default: `1.8s ease-in-out`) — Streaming-indicator animation duration and timing function.\n\n**`<lr-skeleton>`** (default: `1.8s ease-in-out`) — Animation duration and timing function shared by the pulse and sheen effects.\n\n**`<lr-tool-call-chip>`** (default: `1.8s ease-in-out`) — Pending-icon pulse duration and timing
|
|
20067
|
+
"description": "**`<lr-chat-message>`** (default: `1.8s ease-in-out`) — Streaming-indicator animation duration and timing function.\n\n**`<lr-skeleton>`** (default: `1.8s ease-in-out`) — Animation duration and timing function shared by the pulse and sheen effects.\n\n**`<lr-tool-call-chip>`** (default: `1.8s ease-in-out`) — Pending-icon pulse duration and timing."
|
|
19421
20068
|
},
|
|
19422
20069
|
{
|
|
19423
20070
|
"name": "--lr-tree-depth",
|
|
@@ -19431,6 +20078,10 @@
|
|
|
19431
20078
|
"name": "--lr-typing-dot-stagger-2",
|
|
19432
20079
|
"description": "**`<lr-typing-indicator>`** (default: `1200ms`) — Delay for the third dot in the dots variant."
|
|
19433
20080
|
},
|
|
20081
|
+
{
|
|
20082
|
+
"name": "--lr-typing-duration",
|
|
20083
|
+
"description": "**`<lr-typing-indicator>`** (default: `var(--lr-transition-ambient)`) — Animation duration and timing function for the dot-bounce/pulse/cursor-blink loop, shared by all variants. Aliases the shared `--lr-transition-ambient` token (default `1.8s ease-in-out`) by default, so retiming just this component doesn't affect other ambient-looping components in the library."
|
|
20084
|
+
},
|
|
19434
20085
|
{
|
|
19435
20086
|
"name": "--lr-virtual-list-height",
|
|
19436
20087
|
"description": "**`<lr-virtual-list>`** (default: `var(--lr-size-24rem)`) — The scroll viewport's height. A virtualized list needs a bounded scroll extent, so this ships a default rather than collapsing to zero when a caller does not size the host."
|