@aceshooting/lyra-ui 7.3.0 → 7.5.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 +94 -0
- package/custom-elements.json +1747 -381
- package/dist/components/agent-tools/activity-feed/activity-feed.class.d.ts.map +1 -1
- package/dist/components/agent-tools/activity-feed/activity-feed.class.js +1 -0
- package/dist/components/agent-tools/activity-feed/activity-feed.class.js.map +1 -1
- package/dist/components/agent-tools/approval-queue/approval-queue.class.d.ts.map +1 -1
- package/dist/components/agent-tools/approval-queue/approval-queue.class.js +1 -0
- package/dist/components/agent-tools/approval-queue/approval-queue.class.js.map +1 -1
- package/dist/components/agent-tools/browser-frame/browser-frame.styles.d.ts.map +1 -1
- package/dist/components/agent-tools/browser-frame/browser-frame.styles.js +3 -0
- package/dist/components/agent-tools/browser-frame/browser-frame.styles.js.map +1 -1
- package/dist/components/agent-tools/commit-card/commit-card.class.d.ts +3 -0
- package/dist/components/agent-tools/commit-card/commit-card.class.d.ts.map +1 -1
- package/dist/components/agent-tools/commit-card/commit-card.class.js +21 -1
- package/dist/components/agent-tools/commit-card/commit-card.class.js.map +1 -1
- package/dist/components/agent-tools/compare-panel/compare-panel.class.d.ts.map +1 -1
- package/dist/components/agent-tools/compare-panel/compare-panel.class.js +7 -1
- package/dist/components/agent-tools/compare-panel/compare-panel.class.js.map +1 -1
- package/dist/components/agent-tools/confirm-bar/confirm-bar.class.d.ts +4 -0
- package/dist/components/agent-tools/confirm-bar/confirm-bar.class.d.ts.map +1 -1
- package/dist/components/agent-tools/confirm-bar/confirm-bar.class.js +4 -0
- package/dist/components/agent-tools/confirm-bar/confirm-bar.class.js.map +1 -1
- package/dist/components/agent-tools/confirm-bar/confirm-bar.styles.js +2 -2
- package/dist/components/agent-tools/prompt-studio/prompt-studio.class.d.ts +2 -0
- package/dist/components/agent-tools/prompt-studio/prompt-studio.class.d.ts.map +1 -1
- package/dist/components/agent-tools/prompt-studio/prompt-studio.class.js +24 -9
- package/dist/components/agent-tools/prompt-studio/prompt-studio.class.js.map +1 -1
- package/dist/components/agent-tools/prompt-studio/prompt-studio.styles.d.ts.map +1 -1
- package/dist/components/agent-tools/prompt-studio/prompt-studio.styles.js +23 -2
- package/dist/components/agent-tools/prompt-studio/prompt-studio.styles.js.map +1 -1
- package/dist/components/agent-tools/result-card/result-card.class.d.ts +4 -0
- package/dist/components/agent-tools/result-card/result-card.class.d.ts.map +1 -1
- package/dist/components/agent-tools/result-card/result-card.class.js +4 -0
- package/dist/components/agent-tools/result-card/result-card.class.js.map +1 -1
- package/dist/components/agent-tools/result-card/result-card.styles.d.ts.map +1 -1
- package/dist/components/agent-tools/result-card/result-card.styles.js +2 -0
- package/dist/components/agent-tools/result-card/result-card.styles.js.map +1 -1
- package/dist/components/agent-tools/schema-viewer/schema-viewer.class.d.ts +2 -0
- package/dist/components/agent-tools/schema-viewer/schema-viewer.class.d.ts.map +1 -1
- package/dist/components/agent-tools/schema-viewer/schema-viewer.class.js +2 -0
- package/dist/components/agent-tools/schema-viewer/schema-viewer.class.js.map +1 -1
- package/dist/components/agent-tools/schema-viewer/schema-viewer.styles.d.ts.map +1 -1
- package/dist/components/agent-tools/schema-viewer/schema-viewer.styles.js +4 -0
- package/dist/components/agent-tools/schema-viewer/schema-viewer.styles.js.map +1 -1
- package/dist/components/agent-tools/subagent-panel/subagent-panel.class.d.ts +6 -1
- package/dist/components/agent-tools/subagent-panel/subagent-panel.class.d.ts.map +1 -1
- package/dist/components/agent-tools/subagent-panel/subagent-panel.class.js +61 -3
- package/dist/components/agent-tools/subagent-panel/subagent-panel.class.js.map +1 -1
- package/dist/components/agent-tools/task-list/task-list.class.d.ts +2 -0
- package/dist/components/agent-tools/task-list/task-list.class.d.ts.map +1 -1
- package/dist/components/agent-tools/task-list/task-list.class.js +2 -0
- package/dist/components/agent-tools/task-list/task-list.class.js.map +1 -1
- package/dist/components/agent-tools/task-list/task-list.styles.d.ts.map +1 -1
- package/dist/components/agent-tools/task-list/task-list.styles.js +1 -0
- package/dist/components/agent-tools/task-list/task-list.styles.js.map +1 -1
- package/dist/components/agent-tools/test-results/test-results.class.d.ts.map +1 -1
- package/dist/components/agent-tools/test-results/test-results.class.js +15 -10
- package/dist/components/agent-tools/test-results/test-results.class.js.map +1 -1
- package/dist/components/agent-tools/tool-param-form/tool-param-form.class.d.ts +3 -0
- package/dist/components/agent-tools/tool-param-form/tool-param-form.class.d.ts.map +1 -1
- package/dist/components/agent-tools/tool-param-form/tool-param-form.class.js +5 -0
- package/dist/components/agent-tools/tool-param-form/tool-param-form.class.js.map +1 -1
- package/dist/components/charts/chart/box-plot.class.d.ts.map +1 -1
- package/dist/components/charts/chart/box-plot.class.js +31 -0
- package/dist/components/charts/chart/box-plot.class.js.map +1 -1
- package/dist/components/charts/chart/chart-loader.d.ts +2 -2
- package/dist/components/charts/chart/chart-loader.d.ts.map +1 -1
- package/dist/components/charts/chart/chart-loader.js +7 -1
- package/dist/components/charts/chart/chart-loader.js.map +1 -1
- package/dist/components/charts/chart/chart.class.d.ts +5 -1
- package/dist/components/charts/chart/chart.class.d.ts.map +1 -1
- package/dist/components/charts/chart/chart.class.js +17 -2
- package/dist/components/charts/chart/chart.class.js.map +1 -1
- package/dist/components/charts/chart/chart.styles.d.ts.map +1 -1
- package/dist/components/charts/chart/chart.styles.js +5 -1
- package/dist/components/charts/chart/chart.styles.js.map +1 -1
- package/dist/components/charts/chart/lite-chart.class.d.ts.map +1 -1
- package/dist/components/charts/chart/lite-chart.class.js +2 -0
- package/dist/components/charts/chart/lite-chart.class.js.map +1 -1
- package/dist/components/conversation/code-block/code-block-core.class.d.ts +7 -8
- 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 +75 -227
- package/dist/components/conversation/code-block/code-block-core.class.js.map +1 -1
- package/dist/components/conversation/code-block/code-block-shared.d.ts +173 -7
- package/dist/components/conversation/code-block/code-block-shared.d.ts.map +1 -1
- package/dist/components/conversation/code-block/code-block-shared.js +312 -6
- package/dist/components/conversation/code-block/code-block-shared.js.map +1 -1
- package/dist/components/conversation/code-block/code-block.class.d.ts +6 -7
- package/dist/components/conversation/code-block/code-block.class.d.ts.map +1 -1
- package/dist/components/conversation/code-block/code-block.class.js +70 -231
- package/dist/components/conversation/code-block/code-block.class.js.map +1 -1
- package/dist/components/conversation/markdown/markdown-core.class.d.ts +9 -22
- package/dist/components/conversation/markdown/markdown-core.class.d.ts.map +1 -1
- package/dist/components/conversation/markdown/markdown-core.class.js +87 -314
- package/dist/components/conversation/markdown/markdown-core.class.js.map +1 -1
- package/dist/components/conversation/markdown/markdown-shared.d.ts +213 -9
- package/dist/components/conversation/markdown/markdown-shared.d.ts.map +1 -1
- package/dist/components/conversation/markdown/markdown-shared.js +362 -8
- package/dist/components/conversation/markdown/markdown-shared.js.map +1 -1
- package/dist/components/conversation/markdown/markdown.class.d.ts +9 -22
- package/dist/components/conversation/markdown/markdown.class.d.ts.map +1 -1
- package/dist/components/conversation/markdown/markdown.class.js +81 -311
- package/dist/components/conversation/markdown/markdown.class.js.map +1 -1
- package/dist/components/conversation/message-feedback/message-feedback.class.d.ts.map +1 -1
- package/dist/components/conversation/message-feedback/message-feedback.class.js +4 -1
- package/dist/components/conversation/message-feedback/message-feedback.class.js.map +1 -1
- package/dist/components/conversation/prompt-input/prompt-input.styles.d.ts.map +1 -1
- package/dist/components/conversation/prompt-input/prompt-input.styles.js +9 -2
- package/dist/components/conversation/prompt-input/prompt-input.styles.js.map +1 -1
- package/dist/components/conversation/selection-toolbar/selection-toolbar.class.d.ts.map +1 -1
- package/dist/components/conversation/selection-toolbar/selection-toolbar.class.js +8 -1
- package/dist/components/conversation/selection-toolbar/selection-toolbar.class.js.map +1 -1
- package/dist/components/conversation/thread-list/thread-list.class.d.ts +11 -2
- package/dist/components/conversation/thread-list/thread-list.class.d.ts.map +1 -1
- package/dist/components/conversation/thread-list/thread-list.class.js +43 -25
- package/dist/components/conversation/thread-list/thread-list.class.js.map +1 -1
- package/dist/components/conversation/voice-picker/voice-picker.class.d.ts.map +1 -1
- package/dist/components/conversation/voice-picker/voice-picker.class.js +5 -1
- package/dist/components/conversation/voice-picker/voice-picker.class.js.map +1 -1
- package/dist/components/data/document-library/document-library.class.d.ts.map +1 -1
- package/dist/components/data/document-library/document-library.class.js +4 -1
- package/dist/components/data/document-library/document-library.class.js.map +1 -1
- package/dist/components/data/env-list/env-list.styles.d.ts.map +1 -1
- package/dist/components/data/env-list/env-list.styles.js +5 -0
- package/dist/components/data/env-list/env-list.styles.js.map +1 -1
- package/dist/components/data/flow-canvas/flow-canvas.class.js +1 -1
- package/dist/components/data/flow-canvas/flow-canvas.class.js.map +1 -1
- package/dist/components/data/flow-minimap/flow-minimap.styles.d.ts.map +1 -1
- package/dist/components/data/flow-minimap/flow-minimap.styles.js +6 -0
- package/dist/components/data/flow-minimap/flow-minimap.styles.js.map +1 -1
- package/dist/components/data/graph-query-builder/graph-query-builder.class.d.ts.map +1 -1
- package/dist/components/data/graph-query-builder/graph-query-builder.class.js +10 -1
- package/dist/components/data/graph-query-builder/graph-query-builder.class.js.map +1 -1
- package/dist/components/data/heatmap/heatmap.class.d.ts.map +1 -1
- package/dist/components/data/heatmap/heatmap.class.js +17 -2
- package/dist/components/data/heatmap/heatmap.class.js.map +1 -1
- package/dist/components/data/pagination/pagination.class.d.ts +2 -0
- package/dist/components/data/pagination/pagination.class.d.ts.map +1 -1
- package/dist/components/data/pagination/pagination.class.js +2 -0
- package/dist/components/data/pagination/pagination.class.js.map +1 -1
- package/dist/components/data/pagination/pagination.styles.d.ts.map +1 -1
- package/dist/components/data/pagination/pagination.styles.js +7 -2
- package/dist/components/data/pagination/pagination.styles.js.map +1 -1
- package/dist/components/data/table/table.class.d.ts +7 -2
- package/dist/components/data/table/table.class.d.ts.map +1 -1
- package/dist/components/data/table/table.class.js +40 -6
- package/dist/components/data/table/table.class.js.map +1 -1
- package/dist/components/data/tree/tree-node.class.d.ts +2 -0
- package/dist/components/data/tree/tree-node.class.d.ts.map +1 -1
- package/dist/components/data/tree/tree-node.class.js +2 -0
- package/dist/components/data/tree/tree-node.class.js.map +1 -1
- package/dist/components/forms/color-picker/color-picker.class.d.ts.map +1 -1
- package/dist/components/forms/color-picker/color-picker.class.js +9 -0
- package/dist/components/forms/color-picker/color-picker.class.js.map +1 -1
- package/dist/components/forms/date-picker/date-picker.class.d.ts +2 -0
- package/dist/components/forms/date-picker/date-picker.class.d.ts.map +1 -1
- package/dist/components/forms/date-picker/date-picker.class.js +2 -0
- package/dist/components/forms/date-picker/date-picker.class.js.map +1 -1
- package/dist/components/forms/date-picker/date-picker.styles.d.ts.map +1 -1
- package/dist/components/forms/date-picker/date-picker.styles.js +8 -3
- package/dist/components/forms/date-picker/date-picker.styles.js.map +1 -1
- package/dist/components/forms/emoji-picker/emoji-data-loader.js +28 -2
- package/dist/components/forms/emoji-picker/emoji-data-loader.js.map +1 -1
- package/dist/components/forms/emoji-picker/emoji-picker.class.d.ts +4 -0
- package/dist/components/forms/emoji-picker/emoji-picker.class.d.ts.map +1 -1
- package/dist/components/forms/emoji-picker/emoji-picker.class.js +8 -2
- package/dist/components/forms/emoji-picker/emoji-picker.class.js.map +1 -1
- package/dist/components/forms/emoji-picker/emoji-types.d.ts +9 -0
- package/dist/components/forms/emoji-picker/emoji-types.d.ts.map +1 -1
- package/dist/components/forms/input/input.styles.d.ts.map +1 -1
- package/dist/components/forms/input/input.styles.js +17 -4
- package/dist/components/forms/input/input.styles.js.map +1 -1
- package/dist/components/forms/locale-picker/locale-picker.class.d.ts +1 -1
- package/dist/components/forms/locale-picker/locale-picker.class.d.ts.map +1 -1
- package/dist/components/forms/locale-picker/locale-picker.class.js +3 -1
- package/dist/components/forms/locale-picker/locale-picker.class.js.map +1 -1
- package/dist/components/forms/radio/radio.class.d.ts +5 -0
- package/dist/components/forms/radio/radio.class.d.ts.map +1 -1
- package/dist/components/forms/radio/radio.class.js +5 -0
- package/dist/components/forms/radio/radio.class.js.map +1 -1
- package/dist/components/forms/radio/radio.styles.d.ts.map +1 -1
- package/dist/components/forms/radio/radio.styles.js +5 -2
- package/dist/components/forms/radio/radio.styles.js.map +1 -1
- package/dist/components/forms/select/select.class.d.ts +9 -1
- package/dist/components/forms/select/select.class.d.ts.map +1 -1
- package/dist/components/forms/select/select.class.js +9 -1
- package/dist/components/forms/select/select.class.js.map +1 -1
- package/dist/components/forms/slider/slider.class.d.ts +8 -0
- package/dist/components/forms/slider/slider.class.d.ts.map +1 -1
- package/dist/components/forms/slider/slider.class.js +14 -0
- package/dist/components/forms/slider/slider.class.js.map +1 -1
- package/dist/components/forms/swatch-picker/swatch-picker.class.d.ts +12 -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 -0
- package/dist/components/forms/swatch-picker/swatch-picker.class.js.map +1 -1
- package/dist/components/forms/textarea/textarea.class.d.ts +6 -0
- package/dist/components/forms/textarea/textarea.class.d.ts.map +1 -1
- package/dist/components/forms/textarea/textarea.class.js +16 -1
- package/dist/components/forms/textarea/textarea.class.js.map +1 -1
- package/dist/components/forms/time-range/time-range.class.d.ts +9 -0
- package/dist/components/forms/time-range/time-range.class.d.ts.map +1 -1
- package/dist/components/forms/time-range/time-range.class.js +15 -0
- package/dist/components/forms/time-range/time-range.class.js.map +1 -1
- package/dist/components/layout/button-group/button-group.styles.d.ts.map +1 -1
- package/dist/components/layout/button-group/button-group.styles.js +10 -1
- package/dist/components/layout/button-group/button-group.styles.js.map +1 -1
- package/dist/components/layout/drilldown-panel/drilldown-panel.class.d.ts.map +1 -1
- package/dist/components/layout/drilldown-panel/drilldown-panel.class.js +5 -1
- package/dist/components/layout/drilldown-panel/drilldown-panel.class.js.map +1 -1
- package/dist/components/layout/filter-bar/filter-bar.class.d.ts.map +1 -1
- package/dist/components/layout/filter-bar/filter-bar.class.js +4 -1
- package/dist/components/layout/filter-bar/filter-bar.class.js.map +1 -1
- package/dist/components/layout/split/split.class.d.ts +8 -0
- package/dist/components/layout/split/split.class.d.ts.map +1 -1
- package/dist/components/layout/split/split.class.js +8 -0
- package/dist/components/layout/split/split.class.js.map +1 -1
- package/dist/components/layout/split/split.styles.d.ts.map +1 -1
- package/dist/components/layout/split/split.styles.js +26 -10
- package/dist/components/layout/split/split.styles.js.map +1 -1
- package/dist/components/layout/virtual-list/virtual-list.styles.d.ts.map +1 -1
- package/dist/components/layout/virtual-list/virtual-list.styles.js +27 -7
- package/dist/components/layout/virtual-list/virtual-list.styles.js.map +1 -1
- package/dist/components/layout/widget/widget.class.d.ts +4 -0
- package/dist/components/layout/widget/widget.class.d.ts.map +1 -1
- package/dist/components/layout/widget/widget.class.js +4 -0
- package/dist/components/layout/widget/widget.class.js.map +1 -1
- package/dist/components/layout/widget/widget.styles.d.ts.map +1 -1
- package/dist/components/layout/widget/widget.styles.js +9 -3
- package/dist/components/layout/widget/widget.styles.js.map +1 -1
- package/dist/components/media/flag/flag.class.d.ts +1 -1
- package/dist/components/media/flag/flag.class.d.ts.map +1 -1
- package/dist/components/media/flag/flag.class.js +2 -1
- package/dist/components/media/flag/flag.class.js.map +1 -1
- package/dist/components/media/image-viewer/image-viewer.styles.d.ts.map +1 -1
- package/dist/components/media/image-viewer/image-viewer.styles.js +1 -0
- package/dist/components/media/image-viewer/image-viewer.styles.js.map +1 -1
- package/dist/components/overlays/chip/chip-group.class.d.ts +4 -0
- package/dist/components/overlays/chip/chip-group.class.d.ts.map +1 -1
- package/dist/components/overlays/chip/chip-group.class.js +4 -0
- package/dist/components/overlays/chip/chip-group.class.js.map +1 -1
- package/dist/components/overlays/chip/chip-group.styles.d.ts.map +1 -1
- package/dist/components/overlays/chip/chip-group.styles.js +7 -2
- package/dist/components/overlays/chip/chip-group.styles.js.map +1 -1
- package/dist/components/overlays/rating/rating.styles.d.ts.map +1 -1
- package/dist/components/overlays/rating/rating.styles.js +11 -4
- package/dist/components/overlays/rating/rating.styles.js.map +1 -1
- package/dist/components/retrieval/claim-evidence/claim-evidence.class.d.ts.map +1 -1
- package/dist/components/retrieval/claim-evidence/claim-evidence.class.js +4 -1
- package/dist/components/retrieval/claim-evidence/claim-evidence.class.js.map +1 -1
- package/dist/components/retrieval/graph/graph-canvas.d.ts +25 -0
- package/dist/components/retrieval/graph/graph-canvas.d.ts.map +1 -1
- package/dist/components/retrieval/graph/graph-canvas.js +30 -1
- package/dist/components/retrieval/graph/graph-canvas.js.map +1 -1
- package/dist/components/retrieval/graph/graph.class.d.ts +2 -1
- package/dist/components/retrieval/graph/graph.class.d.ts.map +1 -1
- package/dist/components/retrieval/graph/graph.class.js +12 -1
- package/dist/components/retrieval/graph/graph.class.js.map +1 -1
- package/dist/components/retrieval/knowledge-base-admin/knowledge-base-admin.class.d.ts +5 -0
- package/dist/components/retrieval/knowledge-base-admin/knowledge-base-admin.class.d.ts.map +1 -1
- package/dist/components/retrieval/knowledge-base-admin/knowledge-base-admin.class.js +5 -0
- package/dist/components/retrieval/knowledge-base-admin/knowledge-base-admin.class.js.map +1 -1
- package/dist/components/retrieval/knowledge-base-admin/knowledge-base-admin.styles.d.ts.map +1 -1
- package/dist/components/retrieval/knowledge-base-admin/knowledge-base-admin.styles.js +7 -3
- package/dist/components/retrieval/knowledge-base-admin/knowledge-base-admin.styles.js.map +1 -1
- 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 +10 -1
- package/dist/components/retrieval/knowledge-graph-explorer/knowledge-graph-explorer.class.js.map +1 -1
- package/dist/components/utility/diff-view/diff-view.styles.d.ts.map +1 -1
- package/dist/components/utility/diff-view/diff-view.styles.js +11 -0
- package/dist/components/utility/diff-view/diff-view.styles.js.map +1 -1
- package/dist/components/viewers/archive-viewer/archive-viewer-register.js +16 -3
- package/dist/components/viewers/archive-viewer/archive-viewer-register.js.map +1 -1
- package/dist/components/viewers/document-viewer/document-viewer.class.d.ts.map +1 -1
- package/dist/components/viewers/document-viewer/document-viewer.class.js +1 -0
- package/dist/components/viewers/document-viewer/document-viewer.class.js.map +1 -1
- package/dist/components/viewers/docx-viewer/docx-viewer.js +6 -1
- package/dist/components/viewers/docx-viewer/docx-viewer.js.map +1 -1
- package/dist/components/viewers/ebook-viewer/ebook-viewer.class.d.ts +10 -4
- package/dist/components/viewers/ebook-viewer/ebook-viewer.class.d.ts.map +1 -1
- package/dist/components/viewers/ebook-viewer/ebook-viewer.class.js +31 -6
- package/dist/components/viewers/ebook-viewer/ebook-viewer.class.js.map +1 -1
- package/dist/components/viewers/html-viewer/html-viewer.js +7 -0
- package/dist/components/viewers/html-viewer/html-viewer.js.map +1 -1
- package/dist/components/viewers/notebook-viewer/notebook-viewer.class.d.ts +3 -0
- package/dist/components/viewers/notebook-viewer/notebook-viewer.class.d.ts.map +1 -1
- package/dist/components/viewers/notebook-viewer/notebook-viewer.class.js +7 -1
- package/dist/components/viewers/notebook-viewer/notebook-viewer.class.js.map +1 -1
- package/dist/components/viewers/pdf-viewer/pdf-viewer.class.d.ts +4 -0
- package/dist/components/viewers/pdf-viewer/pdf-viewer.class.d.ts.map +1 -1
- package/dist/components/viewers/pdf-viewer/pdf-viewer.class.js +8 -4
- package/dist/components/viewers/pdf-viewer/pdf-viewer.class.js.map +1 -1
- package/dist/components/viewers/pptx-viewer/pptx-viewer.js +11 -1
- package/dist/components/viewers/pptx-viewer/pptx-viewer.js.map +1 -1
- package/dist/components/viewers/svg-viewer/svg-viewer.class.d.ts +29 -17
- package/dist/components/viewers/svg-viewer/svg-viewer.class.d.ts.map +1 -1
- package/dist/components/viewers/svg-viewer/svg-viewer.class.js +27 -22
- package/dist/components/viewers/svg-viewer/svg-viewer.class.js.map +1 -1
- package/dist/components/viewers/svg-viewer/svg-viewer.d.ts.map +1 -1
- package/dist/components/viewers/svg-viewer/svg-viewer.js +7 -6
- package/dist/components/viewers/svg-viewer/svg-viewer.js.map +1 -1
- package/dist/internal/form-associated.d.ts +21 -0
- package/dist/internal/form-associated.d.ts.map +1 -1
- package/dist/internal/form-associated.js +25 -8
- package/dist/internal/form-associated.js.map +1 -1
- package/dist/internal/localization.d.ts +1 -1
- package/dist/internal/localization.d.ts.map +1 -1
- package/dist/internal/localization.js +17 -0
- package/dist/internal/localization.js.map +1 -1
- package/llms/components/lr-agent-run.md +3 -2
- package/llms/components/lr-approval-queue.md +6 -1
- package/llms/components/lr-archive-viewer.md +6 -2
- package/llms/components/lr-artifact-panel.md +7 -3
- package/llms/components/lr-attachment-chip.md +8 -6
- package/llms/components/lr-avatar.md +6 -4
- package/llms/components/lr-bar-chart.md +4 -2
- package/llms/components/lr-bubble-chart.md +4 -2
- package/llms/components/lr-button-group.md +10 -0
- package/llms/components/lr-button.md +11 -6
- package/llms/components/lr-chart.md +8 -2
- package/llms/components/lr-chip-group.md +9 -2
- package/llms/components/lr-chip.md +8 -1
- package/llms/components/lr-commit-card.md +11 -3
- package/llms/components/lr-confirm-bar.md +9 -1
- package/llms/components/lr-date-input.md +4 -0
- package/llms/components/lr-date-picker.md +5 -1
- package/llms/components/lr-document-viewer.md +1 -1
- package/llms/components/lr-doughnut-chart.md +4 -2
- package/llms/components/lr-emoji-picker.md +16 -4
- package/llms/components/lr-export-button.md +2 -1
- package/llms/components/lr-flag.md +9 -5
- package/llms/components/lr-graph-query-builder.md +6 -5
- package/llms/components/lr-heatmap.md +12 -7
- package/llms/components/lr-histogram.md +3 -2
- package/llms/components/lr-html-viewer.md +4 -1
- package/llms/components/lr-json-viewer.md +2 -1
- package/llms/components/lr-knowledge-base-admin.md +10 -1
- package/llms/components/lr-known-date.md +8 -4
- package/llms/components/lr-line-chart.md +4 -2
- package/llms/components/lr-locale-picker.md +1 -1
- package/llms/components/lr-model-select.md +3 -0
- package/llms/components/lr-notebook-viewer.md +4 -2
- package/llms/components/lr-pagination.md +6 -3
- package/llms/components/lr-pdf-viewer.md +5 -2
- package/llms/components/lr-pie-chart.md +4 -2
- package/llms/components/lr-polar-area-chart.md +4 -2
- package/llms/components/lr-pptx-viewer.md +3 -1
- package/llms/components/lr-push-to-talk.md +4 -0
- package/llms/components/lr-radar-chart.md +4 -2
- package/llms/components/lr-radio.md +7 -1
- package/llms/components/lr-result-card.md +9 -3
- package/llms/components/lr-result-field.md +8 -2
- package/llms/components/lr-retrieval-results.md +12 -7
- package/llms/components/lr-scatter-chart.md +4 -2
- package/llms/components/lr-schema-viewer.md +13 -1
- package/llms/components/lr-sequence-strip.md +21 -16
- package/llms/components/lr-slider.md +4 -0
- package/llms/components/lr-split.md +9 -1
- package/llms/components/lr-stepper.md +5 -3
- package/llms/components/lr-svg-viewer.md +24 -8
- package/llms/components/lr-table.md +21 -3
- package/llms/components/lr-task-list.md +7 -3
- package/llms/components/lr-terminal.md +10 -4
- package/llms/components/lr-textarea.md +5 -0
- package/llms/components/lr-thread-list.md +16 -4
- package/llms/components/lr-time-range.md +6 -0
- package/llms/components/lr-tool-call-chip.md +4 -3
- package/llms/components/lr-tool-param-form.md +7 -2
- package/llms/components/lr-tool-result-dialog.md +2 -1
- package/llms/components/lr-tree-node.md +1 -1
- package/llms/components/lr-virtual-list.md +8 -7
- package/llms/components/lr-widget.md +6 -1
- package/llms/shared.md +1 -1
- package/llms-full.txt +381 -127
- package/package.json +7 -4
- package/vscode-css-data.json +169 -1
- package/vscode-html-data.json +38 -38
- package/web-types.json +138 -37
package/llms-full.txt
CHANGED
|
@@ -381,7 +381,7 @@ The side-effect-free `@aceshooting/lyra-ui/localization.js` entry exports
|
|
|
381
381
|
`LYRA_DEFAULT_STRINGS`, and the types `LyraLocaleStrings` / `LyraMessageKey`. The package root
|
|
382
382
|
continues to re-export the same surface for compatibility, but it also registers the non-peer-gated
|
|
383
383
|
component graph; use the dedicated entry when the application only needs locale setup.
|
|
384
|
-
**`LYRA_DEFAULT_STRINGS` is the authoritative key list** (
|
|
384
|
+
**`LYRA_DEFAULT_STRINGS` is the authoritative key list** (1170 keys, matching the
|
|
385
385
|
`LyraMessageKey` union) — read it to find the key to override rather than guessing one. Lookup
|
|
386
386
|
falls back exact locale → base language → English. Date, number, byte, relative-time and calendar
|
|
387
387
|
output goes through `Intl`.
|
|
@@ -1291,6 +1291,10 @@ and `dateTimeFormat(locale, options)`.
|
|
|
1291
1291
|
- `--lr-date-picker-month-gap` — Gap between visible months. Default: `var(--lr-space-l)`.
|
|
1292
1292
|
- `--lr-date-picker-header-gap` — Month-header child gap. Default: `var(--lr-space-s)`.
|
|
1293
1293
|
- `--lr-date-picker-radius` — Calendar and control corner radius. Default: `var(--lr-radius)`.
|
|
1294
|
+
- `--lr-date-picker-nav-hover-bg` — Hover background of the previous/next month-navigation buttons.
|
|
1295
|
+
Default: `var(--lr-color-brand-quiet)`. An inline `var()` fallback rather than a `:host`
|
|
1296
|
+
declaration, and the rule wraps its selector in `:where()` so a consumer's own
|
|
1297
|
+
`::part(previous):hover` still wins without `!important`.
|
|
1294
1298
|
- `--lr-date-input-placeholder-color` — Placeholder text color. Default: `var(--lr-color-text-quiet)`.
|
|
1295
1299
|
- `--lr-date-input-gap` — Gap between input-row children. Default: `var(--lr-space-xs)`.
|
|
1296
1300
|
- `--lr-date-input-radius` — Input-row corner radius. Default: `var(--lr-radius)`.
|
|
@@ -1317,6 +1321,7 @@ submission/validation/reset via `name`/`value`/`disabled`/`required`/`checkValid
|
|
|
1317
1321
|
| `rows` | `rows` | `number` | `3` | Visible text rows. |
|
|
1318
1322
|
| `resize` | `resize` | `'none' \| 'vertical' \| 'both' \| 'auto'` | `'vertical'` | Native CSS `resize` behavior, plus `'auto'` (`ResizeObserver`-driven grow-to-content, no manual handle). |
|
|
1319
1323
|
| `placeholder` | `placeholder` | `string` | `''` | Placeholder text. |
|
|
1324
|
+
| `readonly` | `readonly` | `boolean` | `false` | Native read-only behavior: prevents user edits while preserving focus, selection/copy, form submission, and silent programmatic editing methods. Reflected. |
|
|
1320
1325
|
| `label` | `label` | `string` | `''` | Visible label text. Unset: no label chrome renders. |
|
|
1321
1326
|
| `hint` | `hint` | `string` | `''` | Hint text below the field. |
|
|
1322
1327
|
| `errorText` | `error-text` | `string` | `''` | Error text below the field (overridden by slotted `error` content). |
|
|
@@ -1340,6 +1345,10 @@ submission/validation/reset via `name`/`value`/`disabled`/`required`/`checkValid
|
|
|
1340
1345
|
(from `maxlength`) — the complete set a native `<textarea>` can produce. Leaving `minlength` and
|
|
1341
1346
|
`maxlength` unset constrains nothing, exactly as before they existed.
|
|
1342
1347
|
|
|
1348
|
+
While `readonly`, all three constraint flags are suspended and `checkValidity()` succeeds, matching
|
|
1349
|
+
native textarea behavior. The value remains a successful form value and is restored by form reset;
|
|
1350
|
+
unsetting `readonly` restores the applicable required and length constraints.
|
|
1351
|
+
|
|
1343
1352
|
Two behaviors are worth knowing, both inherited from the platform and both shared with `lr-input`:
|
|
1344
1353
|
|
|
1345
1354
|
- **An empty value is never `tooShort`.** Native `minlength` only applies to a non-empty value, so
|
|
@@ -1500,18 +1509,23 @@ loud fill token), `--lr-button-outlined-border` (default `--lr-color-border-stro
|
|
|
1500
1509
|
`--lr-color-border`) — the `appearance="quiet"` foreground/border pair, also variant-independent,
|
|
1501
1510
|
`--lr-button-hover-brightness` (default `1.08`, the `:hover` filter intensity),
|
|
1502
1511
|
`--lr-button-active-scale` (default `0.9875`, the `:active` press-scale, disabled under
|
|
1503
|
-
`prefers-reduced-motion`), `--lr-button-spinner-duration` (default `
|
|
1504
|
-
rotation period;
|
|
1512
|
+
`prefers-reduced-motion`), `--lr-button-spinner-duration` (default `var(--lr-transition-ambient)`, i.e.
|
|
1513
|
+
`1.8s ease-in-out`, the `loading` spinner's rotation period; that token itself collapses to
|
|
1514
|
+
`0.001ms linear` under `prefers-reduced-motion`, so the spinner effectively stops),
|
|
1505
1515
|
`--lr-button-outlined-fill` (default `transparent`, the `appearance="outlined"` background — also
|
|
1506
1516
|
variant-independent; set it to tint an outlined button with, say, a faint surface wash behind the
|
|
1507
1517
|
outline, without a `::part(base)` rule. Note that the `:hover` `filter: brightness()` applies to
|
|
1508
1518
|
whatever fill is set, so a tinted outlined button visibly brightens on hover where a transparent
|
|
1509
1519
|
one did not),
|
|
1510
1520
|
and the per-`size`
|
|
1511
|
-
`min-block-size` floors `--lr-button-size-2xs` (`
|
|
1512
|
-
`--lr-button-size-
|
|
1513
|
-
`--lr-button-size-
|
|
1514
|
-
|
|
1521
|
+
`min-block-size` floors `--lr-button-size-2xs` (`var(--lr-size-1-25rem)`, 1.25rem),
|
|
1522
|
+
`--lr-button-size-xs` (`var(--lr-size-1-5rem)`, 1.5rem), `--lr-button-size-s`
|
|
1523
|
+
(`var(--lr-size-1-875rem)`, 1.875rem), `--lr-button-size-m` (`var(--lr-size-2-5rem)`, 2.5rem),
|
|
1524
|
+
`--lr-button-size-l` (`var(--lr-size-3rem)`, 3rem), `--lr-button-size-xl`
|
|
1525
|
+
(`var(--lr-size-3-5rem)`, 3.5rem) — each read only by its own `size` tier, and all ignored by
|
|
1526
|
+
`appearance="link"`. The `s`/`m`/`l`/`xl` floors are deliberately at or above the
|
|
1527
|
+
`--lr-icon-button-size` (2.5rem) hit-area minimum from `m` upward; they resolve through shared
|
|
1528
|
+
`--lr-size-*` tokens rather than literal rem values, so a retheme moves them together. `--lr-button-gap` (default `--lr-space-2xs`, the gap between the icon/label
|
|
1515
1529
|
and any slotted content) and `--lr-button-radius` (default `--lr-radius`, the corner radius) are
|
|
1516
1530
|
both retunable without a `::part(base)` rule but — unlike the four size knobs below — do not vary
|
|
1517
1531
|
by `size` tier; `appearance="link"` ignores `--lr-button-radius` (it renders with zero radius).
|
|
@@ -2098,6 +2112,12 @@ consumer-facing `disabled` property/attribute itself.
|
|
|
2098
2112
|
PageDown key press, `detail: { start, end }`), `lr-change` (fired on pointer release /
|
|
2099
2113
|
key-up-commit, or when a preset button is clicked, `detail: { start, end }`)
|
|
2100
2114
|
|
|
2115
|
+
**Methods:** `focus(options?)`, `blur()`, and `click()` forward to `[part="handle-start"]`. A
|
|
2116
|
+
two-handle control has no single canonical target, so the start handle is the one they address —
|
|
2117
|
+
call `.focus()` on `::part(handle-end)` yourself if you need the other. Without these overrides the
|
|
2118
|
+
host's own `focus()`/`blur()`/`click()` are no-ops, because the real control lives in the shadow
|
|
2119
|
+
root.
|
|
2120
|
+
|
|
2101
2121
|
**Slots:** none.
|
|
2102
2122
|
|
|
2103
2123
|
**CSS parts:** `base`, `track`, `range`, `handle-start`, `handle-end`, `presets`, `preset-button`
|
|
@@ -2514,6 +2534,10 @@ pointerup for a drag, or on keyup for a keyboard step, so a single Arrow/Home/En
|
|
|
2514
2534
|
fires both `lr-input` and `lr-change`, mirroring native `<input type=range>`'s own `change`-on-every-
|
|
2515
2535
|
committed-step behavior)
|
|
2516
2536
|
|
|
2537
|
+
**Methods:** `focus(options?)`, `blur()`, and `click()` forward to the internal `[part="thumb"]`
|
|
2538
|
+
control — without them the host's own `focus()`/`blur()`/`click()` would be no-ops, because the
|
|
2539
|
+
`role="slider"` element they need to reach lives in the shadow root.
|
|
2540
|
+
|
|
2517
2541
|
**Slots:** none.
|
|
2518
2542
|
|
|
2519
2543
|
**CSS parts:** `base` (row wrapping the track and optional value readout), `track`, `fill` (filled
|
|
@@ -2586,6 +2610,12 @@ element (or on `lr-radio` in your own stylesheet) moves the label. Exactly the s
|
|
|
2586
2610
|
purpose, and sideways-inheritance caveat as `--lr-checkbox-label-indent` — see `lr-checkbox` above
|
|
2587
2611
|
for the formula to align a sibling hint element.
|
|
2588
2612
|
|
|
2613
|
+
`--lr-radio-checked-border-color` (default `var(--lr-color-brand)`) and `--lr-radio-checked-dot-color`
|
|
2614
|
+
(default `var(--lr-color-brand)`) recolor `[part='circle']`'s border and `[part='dot']`'s background
|
|
2615
|
+
while `checked` — a component-scoped indirection (the same pattern `lr-checkbox`'s own
|
|
2616
|
+
`--lr-checkbox-checked-bg`/`-border` pair uses) so a consumer can retint just this control's checked
|
|
2617
|
+
ring/dot without hijacking the shared `--lr-color-brand` token everything else reads.
|
|
2618
|
+
|
|
2589
2619
|
```html
|
|
2590
2620
|
<lr-radio name="format" value="json">JSON</lr-radio>
|
|
2591
2621
|
```
|
|
@@ -2810,9 +2840,14 @@ Ships the same opt-in `label`/`hint`/`errorText` form-control chrome as `lr-sele
|
|
|
2810
2840
|
`error` CSS parts) — left unset, none of that chrome renders.
|
|
2811
2841
|
|
|
2812
2842
|
**Properties:** the shared form properties `name`, `value`, `disabled`, and `required`, plus
|
|
2813
|
-
`groups: EmojiPickerGroup[] = []` (attribute: false) — `EmojiPickerGroup { key, label,
|
|
2814
|
-
EmojiPickerItem[] }`, `EmojiPickerItem { emoji, name, shortcodes? }`; the search field matches
|
|
2815
|
-
and every `shortcodes` entry, case-insensitively.
|
|
2843
|
+
`groups: EmojiPickerGroup[] = []` (attribute: false) — `EmojiPickerGroup { key, label, labelKey?,
|
|
2844
|
+
emojis: EmojiPickerItem[] }`, `EmojiPickerItem { emoji, name, shortcodes? }`; the search field matches
|
|
2845
|
+
`name` and every `shortcodes` entry, case-insensitively. `labelKey` is an optional `LyraMessageKey`
|
|
2846
|
+
naming `label`'s localized form — set only by the built-in `emoji-picker-element-data` adapter, whose
|
|
2847
|
+
headings come from emojibase's fixed group ids, so an auto-loaded emoji set's group headings follow
|
|
2848
|
+
`registerLyraLocale()`/`.strings` instead of staying English. A hand-authored group leaves it unset
|
|
2849
|
+
and its `label` renders verbatim, because a consumer-supplied heading is caller-owned content this
|
|
2850
|
+
library never translates. Empty (the default, before the auto-loader
|
|
2816
2851
|
resolves) renders just the search input and the empty state. `accessibleLabel` (`aria-label`)
|
|
2817
2852
|
forwards a host-supplied accessible name to the internal `role="listbox"` grid; empty falls back to
|
|
2818
2853
|
the localized default grid label. `label: string = ''` — visible label rendered above the
|
|
@@ -2884,7 +2919,14 @@ windowed row are additionally capped at 20 regardless of available width.
|
|
|
2884
2919
|
**Optional peer dependency:** install `emoji-picker-element-data` with
|
|
2885
2920
|
`pnpm add emoji-picker-element-data` for the built-in auto-loaded default emoji set — omit it and
|
|
2886
2921
|
supply `groups` directly instead. The loader never throws; a missing or failed peer logs one
|
|
2887
|
-
`console.warn` and simply leaves `groups` empty.
|
|
2922
|
+
`console.warn` and simply leaves `groups` empty. The adapter buckets the peer's flat entry list by
|
|
2923
|
+
its numeric `group` id and tags each bucket with both the English `label` and the matching
|
|
2924
|
+
`labelKey` — `emojiPickerGroupSmileysEmotion`, `emojiPickerGroupPeopleBody`,
|
|
2925
|
+
`emojiPickerGroupComponent`, `emojiPickerGroupAnimalsNature`, `emojiPickerGroupFoodDrink`,
|
|
2926
|
+
`emojiPickerGroupTravelPlaces`, `emojiPickerGroupActivities`, `emojiPickerGroupObjects`,
|
|
2927
|
+
`emojiPickerGroupSymbols`, `emojiPickerGroupFlags` (group ids 0–9, in that order). Override any of
|
|
2928
|
+
them through `registerLyraLocale()` or a `.strings` object to translate the headings. An unknown
|
|
2929
|
+
future group id gets no `labelKey` and falls back to a generated `Group {id}` label.
|
|
2888
2930
|
|
|
2889
2931
|
**Additional API surface:**
|
|
2890
2932
|
|
|
@@ -2989,7 +3031,7 @@ peer warning duplication; `lr-flag` itself already logs one) when the optional
|
|
|
2989
3031
|
```html
|
|
2990
3032
|
<lr-locale-picker label="Language"></lr-locale-picker>
|
|
2991
3033
|
<script type="module">
|
|
2992
|
-
import { registerLyraLocale } from '@aceshooting/lyra-ui';
|
|
3034
|
+
import { registerLyraLocale } from '@aceshooting/lyra-ui/localization.js';
|
|
2993
3035
|
registerLyraLocale('fr', { close: 'Fermer' });
|
|
2994
3036
|
document
|
|
2995
3037
|
.querySelector('lr-locale-picker')
|
|
@@ -3209,7 +3251,8 @@ own "consumer computes/renders" contract rather than assuming addition.
|
|
|
3209
3251
|
via the retheme-able `--lr-table-heat-tint-lo`/`-hi` custom properties, matching `lr-heatmap`'s
|
|
3210
3252
|
own ramp-token convention; `cellStyle` is applied directly to the generated `<td>` via `styleMap` — e.g. a computed heat-tint
|
|
3211
3253
|
background a `cell()`-returned inner element can't paint into the cell's own padding — omit it for
|
|
3212
|
-
no per-cell style override (the default, unchanged output);
|
|
3254
|
+
no per-cell style override (the default, unchanged output);
|
|
3255
|
+
`editable` enables inline editing —
|
|
3213
3256
|
`true` opens a native editor on that cell's double-click (one cell at a time), `'always'` instead
|
|
3214
3257
|
renders a persistent editor in every body cell of the column from first paint, for a
|
|
3215
3258
|
settings/rate-style column meant to be typed straight into — while `editValue` supplies the editor
|
|
@@ -3221,7 +3264,16 @@ own "consumer computes/renders" contract rather than assuming addition.
|
|
|
3221
3264
|
the live width in CSS pixels. Drag it, or use logical ArrowLeft/ArrowRight for 10px steps (mirrored
|
|
3222
3265
|
under RTL), Shift+Arrow for 50px steps, Home for the minimum, and End for an explicit pixel
|
|
3223
3266
|
`maxWidth`; explicit pixel `minWidth`/`maxWidth` values bound both input paths. The separator
|
|
3224
|
-
exposes its current/minimum/bounded-maximum pixel width through ARIA value attributes.
|
|
3267
|
+
exposes its current/minimum/bounded-maximum pixel width through ARIA value attributes. Only the
|
|
3268
|
+
*commit* is vetoable — see `lr-column-resize` under Events.
|
|
3269
|
+
- **`cellStyle` beats `heatValue`, always.** `styleMap` writes an inline `style=` attribute, and an
|
|
3270
|
+
inline style outranks any stylesheet rule in the cascade regardless of specificity, while the heat
|
|
3271
|
+
tint is painted by a shadow-stylesheet rule. So a `cellStyle` returning
|
|
3272
|
+
`background`/`backgroundColor` on a column that also defines `heatValue` silently and completely
|
|
3273
|
+
erases that column's tint — no warning, and the cell still contributes to the shared domain, so the
|
|
3274
|
+
*other* tinted columns' scale shifts around a cell that shows no tint at all. Define both on one
|
|
3275
|
+
column only when that override is the intent; to tint *and* style, return only non-background
|
|
3276
|
+
declarations (`color`, `fontWeight`, `textAlign`, …) from `cellStyle`.
|
|
3225
3277
|
- `columns[].editable: boolean | 'always'` — a widening of the original `boolean`, non-breaking.
|
|
3226
3278
|
`true` is unchanged: double-click a cell to open its editor, one at a time, Enter commits and
|
|
3227
3279
|
closes, Escape cancels and closes, blur-after-change commits. `'always'` renders an editor in
|
|
@@ -3382,7 +3434,15 @@ own "consumer computes/renders" contract rather than assuming addition.
|
|
|
3382
3434
|
`lr-selection-change` (`detail: { keys }`) when selection is enabled, `lr-filter-change`
|
|
3383
3435
|
(`detail: { text }`), and `lr-page-change` (`detail: { page }`) from the controlled
|
|
3384
3436
|
filter/pagination surfaces, and `lr-cell-edit` (`detail: { row, key, value }`) for editable
|
|
3385
|
-
columns, and `lr-column-resize` (`detail: { key, width }`) on every pointer or
|
|
3437
|
+
columns, and `lr-column-resize` (`detail: { key, width }`, `width` in CSS pixels) on every pointer or
|
|
3438
|
+
keyboard resize step. **Only the commit is cancelable.** A pointer drag fires the event once per
|
|
3439
|
+
pixel of movement as non-cancelable live feedback, then exactly once more — `cancelable: true` — for
|
|
3440
|
+
the width committed at drag-end (and only when that width actually differs from the pre-drag one).
|
|
3441
|
+
A keyboard step (Arrow/Shift+Arrow/Home/End) is already one discrete action, so it fires that single
|
|
3442
|
+
cancelable commit directly, with no live-feedback stream. Calling `preventDefault()` on a cancelable
|
|
3443
|
+
emission reverts the column to its pre-gesture width (or removes the override entirely if the column
|
|
3444
|
+
had never been resized); calling it on a mid-drag step does nothing, by design — a veto is a decision
|
|
3445
|
+
about the final width, not about every pixel the pointer passes through.
|
|
3386
3446
|
The internal filter/cell-editor native inputs' `focus` and `blur` are also re-dispatched from the
|
|
3387
3447
|
host as bubbling, composed events (the native ones are neither).
|
|
3388
3448
|
|
|
@@ -3583,8 +3643,11 @@ The internal page input's `focus` and `blur` are also bridged as bubbling, compo
|
|
|
3583
3643
|
`--lr-pagination-font-size` (both default from `size`), `--lr-pagination-control-padding` (default
|
|
3584
3644
|
`var(--lr-space-xs)`) — inner padding of the previous/next buttons and the page input, deliberately
|
|
3585
3645
|
uniform across every `size` tier because the control's outer footprint is already fixed by
|
|
3586
|
-
`--lr-pagination-control-size`, so this only adjusts the icon/digit inset —
|
|
3587
|
-
|
|
3646
|
+
`--lr-pagination-control-size`, so this only adjusts the icon/digit inset —
|
|
3647
|
+
`--lr-pagination-invalid-border` (default `var(--lr-color-danger)`) — border color of
|
|
3648
|
+
`[part="page-input"]` while the typed page is out of range (`aria-invalid="true"`); a state hook
|
|
3649
|
+
declared as an inline `var()` fallback, since `::part(page-input)[aria-invalid='true']` is invalid
|
|
3650
|
+
CSS — plus shared color, spacing, border, radius, disabled-opacity, and focus-ring tokens.
|
|
3588
3651
|
|
|
3589
3652
|
**Optional peer deps:** none.
|
|
3590
3653
|
|
|
@@ -3940,13 +4003,18 @@ bar between them, while `legendStops` is supplied), `legend-stop` (one per `lege
|
|
|
3940
4003
|
closes the legend row, present in both the gradient and the `legendStops` branch),
|
|
3941
4004
|
`legend-annotation` (one per labeled `annotations` entry)
|
|
3942
4005
|
|
|
3943
|
-
**Themeable custom properties:** `--lr-heatmap-scale-lo` (default
|
|
3944
|
-
`--lr-heatmap-scale-hi` (default
|
|
3945
|
-
quartile-bucket ramp endpoints (calendar mode), resolved via `getComputedStyle` each
|
|
3946
|
-
CSS color syntax — hex/rgb/hsl/oklch/named — works, resolved through a scratch
|
|
3947
|
-
|
|
3948
|
-
|
|
3949
|
-
|
|
4006
|
+
**Themeable custom properties:** `--lr-heatmap-scale-lo` (default `var(--lr-color-brand-quiet)`),
|
|
4007
|
+
`--lr-heatmap-scale-hi` (default `var(--lr-color-brand)`) — the sequential color-ramp endpoints
|
|
4008
|
+
(matrix mode) or quartile-bucket ramp endpoints (calendar mode), resolved via `getComputedStyle` each
|
|
4009
|
+
draw (any valid CSS color syntax — hex/rgb/hsl/oklch/named — works, resolved through a scratch
|
|
4010
|
+
canvas). These defaults are declared on `:host`, so they follow the theme (including dark mode)
|
|
4011
|
+
rather than being pinned to a literal color; the hard-coded `#cde2fb`/`#0969da` pair in the source is
|
|
4012
|
+
only a last-resort constant for the case where the custom property resolves to an empty string (no
|
|
4013
|
+
stylesheet applied at all), not the shipped default.
|
|
4014
|
+
`--lr-heatmap-no-data-fill` (default `var(--lr-color-no-data)` — the no-data cell fill, same
|
|
4015
|
+
resolve-via-`getComputedStyle` pattern), `--lr-heatmap-label-font` (default
|
|
4016
|
+
`var(--lr-size-10px) var(--lr-font)` — the canvas-drawn axis/month/weekday label font),
|
|
4017
|
+
`--lr-heatmap-focus-ring-color` (default
|
|
3950
4018
|
`var(--lr-focus-ring-color)` — the canvas-drawn ring stroked around the keyboard-focused cell;
|
|
3951
4019
|
also reused by `[part="canvas"]`'s own `:focus-visible` outline so the two stay visually in sync),
|
|
3952
4020
|
`--lr-heatmap-color-steps-gradient` (default
|
|
@@ -4030,20 +4098,24 @@ same color as `--lr-heatmap-focus-ring-color`).
|
|
|
4030
4098
|
|
|
4031
4099
|
A compact, one-thin-cell-per-item strip visualizing a sequence of categorical states, with an
|
|
4032
4100
|
optional secondary per-cell marker. Pure CSS/flex — no chart.js, no SVG, no canvas — sized/named
|
|
4033
|
-
consistently with the sparkline/heatmap family,
|
|
4034
|
-
|
|
4035
|
-
|
|
4036
|
-
|
|
4037
|
-
|
|
4038
|
-
|
|
4039
|
-
|
|
4101
|
+
consistently with the sparkline/heatmap family, and read as a glanceable aggregate. `[part="base"]`
|
|
4102
|
+
is a labeled `role="list"` and each cell a named `role="listitem"` (`aria-label`, `aria-posinset`,
|
|
4103
|
+
`aria-setsize`), so the sequence is walkable item by item rather than collapsed into one summary
|
|
4104
|
+
string. Exactly one cell is tabbable at a time (roving `tabindex`); ArrowLeft/ArrowRight and
|
|
4105
|
+
Home/End move the stop — direction-aware, so the arrows swap under RTL — and focusing a cell shows
|
|
4106
|
+
the same `[part="tooltip"]` detail that pointer hover does, wired through `aria-describedby`. Cells
|
|
4107
|
+
are inspectable, not actionable: there is no per-cell click/activation event, so unlike
|
|
4108
|
+
`<lr-heatmap>` there is nothing to fire on Enter/Space. Setting `showLegend` additionally renders a
|
|
4109
|
+
static `[part="legend"]` key below the strip, so the color-to-category mapping is readable without
|
|
4110
|
+
visiting each cell.
|
|
4040
4111
|
|
|
4041
4112
|
**Properties:**
|
|
4042
4113
|
- `items: SequenceStripItem[] = []` (attribute: false) — `{ id, category, marker?, label? }`;
|
|
4043
4114
|
`marker` renders a small bottom marker on that cell independent of the category color (e.g. a
|
|
4044
|
-
subagent-dispatched turn); `label` is per-item hover
|
|
4045
|
-
category's own `label` (or its
|
|
4046
|
-
|
|
4115
|
+
subagent-dispatched turn); `label` is per-item hover/focus tooltip text *and* that cell's own
|
|
4116
|
+
`role="listitem"` accessible name, falling back to the matching category's own `label` (or its
|
|
4117
|
+
`key`) when unset — it is not read by `[part="base"]`'s auto-generated `aria-label`, which
|
|
4118
|
+
summarizes by category/count only
|
|
4047
4119
|
- `categories: SequenceStripCategory[] = []` (attribute: false) — `{ key, color, label? }`; `color`
|
|
4048
4120
|
is the cell background for every item whose `category` matches `key` (an item whose `category`
|
|
4049
4121
|
matches no entry renders `transparent`); `label` is used in the auto-generated `aria-label` summary
|
|
@@ -4058,9 +4130,9 @@ mapping is readable without hovering each cell.
|
|
|
4058
4130
|
order. The key describes the *scheme*, not the current data: a category with no matching item
|
|
4059
4131
|
still gets a row, and an item whose `category` matches no entry adds none. Deliberately
|
|
4060
4132
|
non-interactive — it toggles nothing and emits nothing (`lr-graph-legend` is the interactive,
|
|
4061
|
-
filtering legend). Because it only repeats the category names `[part="base"]`
|
|
4062
|
-
|
|
4063
|
-
|
|
4133
|
+
filtering legend). Because it only repeats the category names `[part="base"]`'s own `aria-label`
|
|
4134
|
+
summary already announces, the legend is `aria-hidden` — visible on screen, announced exactly
|
|
4135
|
+
once — and it wraps onto further rows in a narrow allocation rather than overflowing
|
|
4064
4136
|
- `markerLabel?: string` (attribute `marker-label`) — names what an item's `marker` *means* (e.g.
|
|
4065
4137
|
`"Subagent"`). Setting it does two things: with `showLegend` on it adds one trailing
|
|
4066
4138
|
`[part="legend-item"]`, whose `[part="legend-marker-swatch"]` reproduces the cell's own marker
|
|
@@ -4072,9 +4144,10 @@ mapping is readable without hovering each cell.
|
|
|
4072
4144
|
|
|
4073
4145
|
**Slots:** none.
|
|
4074
4146
|
|
|
4075
|
-
**CSS parts:** `base` (the root strip, `role="
|
|
4076
|
-
by its category), `marker` (the small bottom
|
|
4077
|
-
|
|
4147
|
+
**CSS parts:** `base` (the root strip, `role="list"`), `cell` (each item's `role="listitem"` cell,
|
|
4148
|
+
background-colored by its category and carrying the roving `tabindex`), `marker` (the small bottom
|
|
4149
|
+
marker on a cell whose item sets `marker: true`), `tooltip` (the detail tooltip showing the active
|
|
4150
|
+
item's label, hidden until a cell is hovered or focused),
|
|
4078
4151
|
`legend` (the static category key rendered below the strip when `showLegend` is set — `aria-hidden`,
|
|
4079
4152
|
as it repeats the strip's own `aria-label`), `legend-item` (one swatch + label pair, one per
|
|
4080
4153
|
`categories` entry, plus one trailing marker row when `markerLabel` is set), `legend-swatch` (the
|
|
@@ -4860,11 +4933,12 @@ relationship and node-type filters, hop limits, validation, and saved queries.
|
|
|
4860
4933
|
`validationMessage`, `willValidate`, `checkValidity`, `reportValidity`, `formDisabledCallback`,
|
|
4861
4934
|
`formResetCallback`, `formStateRestoreCallback`. **Events:** `lr-input`, `lr-validity-change`,
|
|
4862
4935
|
`lr-query-run`, `lr-query-save`, `lr-query-load`, `lr-query-delete`. **Slots:** `actions`. **CSS
|
|
4863
|
-
parts:** `base`, `
|
|
4864
|
-
|
|
4865
|
-
`
|
|
4866
|
-
`
|
|
4867
|
-
`saved-
|
|
4936
|
+
parts:** `base`, `label`, `hint`, `error` (the three form-control chrome parts every
|
|
4937
|
+
form-associated control in this library exposes — see `lr-select`), `path-fields`, `start-input`,
|
|
4938
|
+
`end-input`, `relationship-picker`, `relationship-chips`, `node-type-picker`, `node-type-chips`,
|
|
4939
|
+
`direction`, `filter-group`, `min-hops`, `max-hops`, `footer`, `run-button`, `save-button`,
|
|
4940
|
+
`save-row`, `save-name-input`, `saved-queries`, `saved-queries-label`, `saved-list`, `saved-item`,
|
|
4941
|
+
`saved-load-button`, `saved-delete-button`, `saved-empty`.
|
|
4868
4942
|
|
|
4869
4943
|
**Additional API surface:**
|
|
4870
4944
|
|
|
@@ -5042,6 +5116,14 @@ fired only when an enabled `orientationBreakpoint` actually changes `effectiveOr
|
|
|
5042
5116
|
|
|
5043
5117
|
**Themeable custom properties:** `--lr-split-overlay-color` (default `var(--lr-color-overlay)`) —
|
|
5044
5118
|
the `'floating'` drawer's `[part='backdrop']` scrim; scoped to `[part='base']`, not the viewport.
|
|
5119
|
+
`--lr-split-divider-hit-slop` (default `calc((var(--lr-size-3px) - var(--lr-icon-button-size)) / 2)`,
|
|
5120
|
+
i.e. `-18.5px` at the shipped token values) — the per-side inset of `[part='divider']`'s invisible
|
|
5121
|
+
`::before` hit area along the resize axis. It is negative on purpose: the `::before` box extends past
|
|
5122
|
+
the divider's own edges so the *effective* pointer/touch target reaches the shared
|
|
5123
|
+
`--lr-icon-button-size` WCAG 2.5.8 floor (40px) while the divider anyone can see stays 3px. Unlike
|
|
5124
|
+
most properties here it is **declared on `:host`**, so an override has to target the element itself —
|
|
5125
|
+
an ancestor rule is shadowed. Overriding it directly is rarely the right move: retheme
|
|
5126
|
+
`--lr-size-3px` or `--lr-icon-button-size` and the slop recomputes to keep exactly closing the gap.
|
|
5045
5127
|
Otherwise shared tokens only.
|
|
5046
5128
|
|
|
5047
5129
|
**Optional peer deps:** none.
|
|
@@ -5202,6 +5284,11 @@ override the library-wide `--lr-color-brand-quiet`/`--lr-color-brand` tokens, re
|
|
|
5202
5284
|
element that reads them. Left unset, each falls back to exactly the token the rule used before, so
|
|
5203
5285
|
rendering is unchanged.
|
|
5204
5286
|
|
|
5287
|
+
`--lr-widget-view-toggle-hover-bg` (default `var(--lr-color-brand-quiet)`) and
|
|
5288
|
+
`--lr-widget-view-toggle-hover-color` (default `var(--lr-color-text)`) are the same shape for the
|
|
5289
|
+
*hover* state, and the `:hover` rule wraps its selector in `:where()` so a consumer's own
|
|
5290
|
+
`::part(view-toggle):hover` override wins without `!important`.
|
|
5291
|
+
|
|
5205
5292
|
**Optional peer deps:** none.
|
|
5206
5293
|
|
|
5207
5294
|
```html
|
|
@@ -5322,6 +5409,16 @@ container inline-size).
|
|
|
5322
5409
|
**Themeable custom properties:** `--lr-button-group-gap` (default `var(--lr-space-2xs)`) — gap
|
|
5323
5410
|
between slotted controls on both axes.
|
|
5324
5411
|
|
|
5412
|
+
**Sizing gotcha — give it an explicit width.** `:host` is `display: inline-flex` *and* declares
|
|
5413
|
+
`container-type: inline-size` unconditionally (that is what makes the 20rem `@container` rule above
|
|
5414
|
+
fire at all). Inline-size containment means the box's own content can no longer contribute to its
|
|
5415
|
+
width, so in any context where the host would otherwise be shrink-to-fit — plain block flow, an
|
|
5416
|
+
`inline-flex`/`flex` parent, anywhere with no definite width — the group collapses to its
|
|
5417
|
+
`min-inline-size` floor of `var(--lr-icon-button-size)` (2.5rem) instead of growing to fit the
|
|
5418
|
+
slotted buttons. Give `<lr-button-group>` a definite width (`inline-size`, `width: 100%`, `flex: 1`,
|
|
5419
|
+
or a grid track) whenever it isn't already in a layout that supplies one. The floor itself is the
|
|
5420
|
+
safeguard: without it the same shape rendered at literally `0px`.
|
|
5421
|
+
|
|
5325
5422
|
---
|
|
5326
5423
|
|
|
5327
5424
|
## `lr-scroller`
|
|
@@ -5520,8 +5617,10 @@ text color of the `current` step. `--lr-stepper-current-font-weight` (default
|
|
|
5520
5617
|
`var(--lr-font-weight-semibold)`) — font weight of the `current` step's label.
|
|
5521
5618
|
`--lr-stepper-error-color` (default `var(--lr-color-danger)`) —
|
|
5522
5619
|
text color of an `error` step. `--lr-stepper-current-index-bg` (default `var(--lr-color-brand)`) and
|
|
5523
|
-
`--lr-stepper-current-index-color` (default `var(--lr-color-
|
|
5524
|
-
of the `current` step's numbered `step-index` chip.
|
|
5620
|
+
`--lr-stepper-current-index-color` (default `var(--lr-color-on-brand)`) — background and text color
|
|
5621
|
+
of the `current` step's numbered `step-index` chip. The text color reads the dedicated on-brand
|
|
5622
|
+
foreground token, not `--lr-color-surface`, so the chip stays legible in dark mode and under forced
|
|
5623
|
+
colors, where surface and on-brand diverge. Each is an inline `var()` fallback at the point
|
|
5525
5624
|
of use, never declared on `:host`, so it can be set on the element or on any ancestor; and each is
|
|
5526
5625
|
scoped to its own `data-state`, so recoloring the current step leaves `pending`/`completed`/`error`
|
|
5527
5626
|
steps alone. The hooks exist because `::part(step)[data-state='current']` is invalid CSS — Shadow
|
|
@@ -5529,7 +5628,7 @@ Parts forbids an attribute selector after `::part()` — so state-specific themi
|
|
|
5529
5628
|
overriding a library-wide `--lr-color-*` token and repainting everything else that read it. Unset,
|
|
5530
5629
|
each falls back to the token its rule used before. Otherwise shared tokens —
|
|
5531
5630
|
`--lr-space-m`/`-xs`/`-2xs`,
|
|
5532
|
-
`--lr-color-text-quiet`/`-text`/`-danger`/`-brand`/`-
|
|
5631
|
+
`--lr-color-text-quiet`/`-text`/`-danger`/`-brand`/`-on-brand`, `--lr-radius`/`-pill`,
|
|
5533
5632
|
`--lr-font-size-xs`, `--lr-font-weight-semibold`, `--lr-opacity-disabled`,
|
|
5534
5633
|
`--lr-focus-ring-*`.
|
|
5535
5634
|
|
|
@@ -6000,19 +6099,20 @@ history sidebar); it is not the right approach for a hundred-thousand-row list w
|
|
|
6000
6099
|
- A sticky band only appears when `renderStickyGroup` *and* at least one valid `groups` entry are
|
|
6001
6100
|
both present; `groups` alone renders positioned markers with nothing pinned, and
|
|
6002
6101
|
`renderStickyGroup` alone renders no overlay element at all.
|
|
6003
|
-
- **A row that renders a popup needs the
|
|
6102
|
+
- **A row that renders a popup needs the active-row lift, and this is why `[part='row']` has one.**
|
|
6004
6103
|
Each row carries `will-change: transform` (a compositor hint for the per-frame translate), which
|
|
6005
6104
|
makes every row its own stacking context. Rows otherwise carry no `z-index`, so they paint in DOM
|
|
6006
6105
|
order and each one paints over the previous. Anything a row renders that overflows its own box —
|
|
6007
6106
|
an `<lr-menu>` popup in a row-action menu, a tooltip, an outward focus ring — is therefore painted
|
|
6008
6107
|
*underneath* every following row, no matter how high its own `z-index` is: that `z-index` only
|
|
6009
6108
|
orders siblings inside the row's own context. The last row always looks correct, which is exactly
|
|
6010
|
-
why a short fixture never catches it.
|
|
6011
|
-
|
|
6012
|
-
|
|
6013
|
-
|
|
6014
|
-
|
|
6015
|
-
|
|
6109
|
+
why a short fixture never catches it. A row lifts to `--lr-layer-content` while something inside
|
|
6110
|
+
it holds focus or while it contains an open `lr-menu`. The explicit menu-open branch covers
|
|
6111
|
+
imperative opening and virtual measurement/render cycles, where focus can temporarily return to
|
|
6112
|
+
the document while the popup remains visible. The value deliberately *matches*
|
|
6113
|
+
`[part='group']`'s rather than exceeding it, so the two land on the same layer and DOM order
|
|
6114
|
+
decides: groups render before the rows, so an active row wins while (and only while) it needs to,
|
|
6115
|
+
which is right — a group header is a non-interactive `pointer-events: none` label.
|
|
6016
6116
|
|
|
6017
6117
|
---
|
|
6018
6118
|
|
|
@@ -7495,7 +7595,14 @@ usage)
|
|
|
7495
7595
|
`overflow-indicator` (the "+N" / "Show less" toggle button; only rendered while `max-visible` is
|
|
7496
7596
|
actively causing an overflow — a locally-styled pill, not an instantiated real `<lr-chip>`)
|
|
7497
7597
|
|
|
7498
|
-
**Themeable custom properties:**
|
|
7598
|
+
**Themeable custom properties:** `--lr-chip-group-overflow-expanded-color` (default
|
|
7599
|
+
`var(--lr-color-text)`) — text color of `[part="overflow-indicator"]` while expanded
|
|
7600
|
+
(`aria-expanded="true"`). A state hook: an inline `var()` fallback at the point of use, never a
|
|
7601
|
+
`:host` declaration, so it can be set on the element *or on any ancestor*. It exists because
|
|
7602
|
+
`::part(overflow-indicator)[aria-expanded='true']` is invalid CSS — Shadow Parts forbids an attribute
|
|
7603
|
+
selector after `::part()` — so retinting only the expanded state otherwise meant re-pointing the
|
|
7604
|
+
library-wide `--lr-color-text` token. Left unset, rendering is unchanged. Otherwise shared tokens
|
|
7605
|
+
(`--lr-space-xs`, `--lr-space-s`,
|
|
7499
7606
|
`--lr-color-border`, `--lr-color-surface`, `--lr-color-text-quiet`, `--lr-color-text`,
|
|
7500
7607
|
`--lr-color-brand`, `--lr-focus-ring-width`, `--lr-focus-ring-color`,
|
|
7501
7608
|
`--lr-focus-ring-offset`, `--lr-transition-fast`).
|
|
@@ -7887,7 +7994,8 @@ shared-clamp note.
|
|
|
7887
7994
|
```
|
|
7888
7995
|
|
|
7889
7996
|
Package-level CSV utilities (used internally, also exported for standalone use — `import {
|
|
7890
|
-
escapeCsvField, buildCsv, downloadBlob } from
|
|
7997
|
+
escapeCsvField, buildCsv, downloadBlob } from
|
|
7998
|
+
'@aceshooting/lyra-ui/components/utility/export-button/csv.js'`):
|
|
7891
7999
|
```ts
|
|
7892
8000
|
escapeCsvField(value: unknown): string // quotes/escapes; neutralizes formula-injection (=,+,@,tab,CR) with a leading apostrophe — a bare leading '-' is deliberately left alone (OWASP guidance: it's not itself formula syntax, and guarding it would mangle ordinary negative numbers)
|
|
7893
8001
|
buildCsv(rows: Record<string, unknown>[], columns: CsvColumn[]): string // CRLF-joined, header row included
|
|
@@ -8052,7 +8160,8 @@ while it matches `search`, and `data-active` while it is the current cursor posi
|
|
|
8052
8160
|
present for row alignment on leaf/empty nodes),
|
|
8053
8161
|
`copy-button` (a copy-to-clipboard button — the top-level one in `toolbar` (aria-label "Copy JSON to
|
|
8054
8162
|
clipboard") or a per-node one (aria-label `Copy ${key/type}`, e.g. "Copy age"); only rendered when
|
|
8055
|
-
`copyable`)
|
|
8163
|
+
`copyable`), `limit` (the localized notice rendered below the tree when the depth/node traversal
|
|
8164
|
+
budget truncates rendering or search — absent entirely for any document within budget)
|
|
8056
8165
|
|
|
8057
8166
|
**Themeable custom properties:** `--lr-json-viewer-max-height` (default `none` — grows with content
|
|
8058
8167
|
until `max-height` is set), `--lr-json-viewer-font` (default `var(--lr-font-mono)`),
|
|
@@ -8716,10 +8825,14 @@ The two height knobs work as a pair on `[part='field-input']`, the same way
|
|
|
8716
8825
|
- Auto-advance (typing a field's last digit moves to the next) and backspace-into-the-previous-field
|
|
8717
8826
|
are this library's own additions, not Web Awesome parity. Auto-advance is purely digit-count
|
|
8718
8827
|
based, never value based.
|
|
8719
|
-
- Each `<input>`
|
|
8720
|
-
composite `value` is zero-padded.
|
|
8721
|
-
- Non-digit
|
|
8722
|
-
|
|
8828
|
+
- Each `<input>` keeps exactly the digits that were typed — never zero-padded, range-clamped, or
|
|
8829
|
+
reverted to a previous value; only the composite `value` is normalized to zero-padded ISO.
|
|
8830
|
+
- Non-digit characters are stripped in the `input` handler before they reach field state (the
|
|
8831
|
+
native `<input>`'s own value is rewritten in the same tick). Locale-specific numerals *are*
|
|
8832
|
+
accepted and transliterated to ASCII, not rejected: Arabic-Indic (`٠`–`٩`) and Extended
|
|
8833
|
+
Arabic-Indic/Persian (`۰`–`۹`) digits are mapped unconditionally, and the digits of
|
|
8834
|
+
`effectiveLocale`'s own numbering system are added on top via `Intl.NumberFormat`, so typing
|
|
8835
|
+
`٢٠٢٦` into the year field commits `2026`.
|
|
8723
8836
|
- ArrowLeft/ArrowRight cross fields at a field's text boundary, and the *physical* key meaning
|
|
8724
8837
|
"next field" flips under an inherited `dir="rtl"`; the locale-derived field order itself does not.
|
|
8725
8838
|
- A blank composite is `valueMissing` only when **all three** fields are blank; a partially typed
|
|
@@ -8920,7 +9033,8 @@ Country/language flag image. Flag artwork ships in a **separate, optional peer p
|
|
|
8920
9033
|
|
|
8921
9034
|
**Slots:** none.
|
|
8922
9035
|
|
|
8923
|
-
**CSS parts:** `image`
|
|
9036
|
+
**CSS parts:** `image` (the underlying `<img>`, present only once a URL has resolved), `error`
|
|
9037
|
+
(the localized `role="alert"` rendered instead when the peer resolver is unavailable or rejects)
|
|
8924
9038
|
|
|
8925
9039
|
**Themeable custom properties:** `--lr-flag-radius` (default `calc(var(--lr-radius) * 0.33)` —
|
|
8926
9040
|
non-`round` corner radius), `--lr-flag-aspect-ratio` (default `4 / 3`), and
|
|
@@ -8929,7 +9043,7 @@ non-`round` corner radius), `--lr-flag-aspect-ratio` (default `4 / 3`), and
|
|
|
8929
9043
|
**Optional peer deps:** `@aceshooting/lyra-flags` — required for the component to actually render an
|
|
8930
9044
|
image when `country` or `language` is used. Import `components/flag/flag-peer.js` once to opt into
|
|
8931
9045
|
that resolver; a pre-resolved `src` works without the peer registration entry. If the peer is not
|
|
8932
|
-
installed,
|
|
9046
|
+
installed, the component fails closed with a localized `[part="error"]` alert (see gotchas).
|
|
8933
9047
|
|
|
8934
9048
|
Also exported from the package root:
|
|
8935
9049
|
`languageToCountry(language: string): string | undefined` and the `LANGUAGE_TO_COUNTRY` lookup
|
|
@@ -8969,7 +9083,7 @@ pronounces the endonym in its own language, and use `variant="compact"` at icon
|
|
|
8969
9083
|
```
|
|
8970
9084
|
|
|
8971
9085
|
```js
|
|
8972
|
-
import { localeNativeName, languageToCountry } from '@aceshooting/lyra-ui';
|
|
9086
|
+
import { localeNativeName, languageToCountry } from '@aceshooting/lyra-ui/components/media/flag/language-map.js';
|
|
8973
9087
|
|
|
8974
9088
|
const rows = ['en', 'fr', 'de', 'pt-BR', 'ja', 'ar'].map((tag) => ({
|
|
8975
9089
|
tag,
|
|
@@ -8998,9 +9112,12 @@ import '@aceshooting/lyra-ui/components/media/flag/flag-peer.js';
|
|
|
8998
9112
|
registers the component without importing the optional flag asset graph. Requires the optional
|
|
8999
9113
|
peer `@aceshooting/lyra-flags` to actually render an image; without it the component still shows a
|
|
9000
9114
|
`<lr-skeleton variant="rect">` placeholder (with `aria-busy="true"` on
|
|
9001
|
-
the host) while resolving, then
|
|
9115
|
+
the host) while resolving, then **fails closed** into a localized `<span part="error" role="alert">`
|
|
9116
|
+
(the `flagLoadError` message key, `"Flag unavailable"` by default) plus a one-time `console.warn`
|
|
9002
9117
|
once the resolver rejects (lazy `import()`, cached module-wide so the warning fires only once per
|
|
9003
|
-
page even with many `<lr-flag>` instances).
|
|
9118
|
+
page even with many `<lr-flag>` instances). An *empty* template is a different, non-error outcome:
|
|
9119
|
+
the peer resolved fine but returned no URL for that code (e.g. `country="zz"`) — no `[part="error"]`,
|
|
9120
|
+
no `<img>`, no warning.
|
|
9004
9121
|
- Rendering is async even when the peer *is* installed: `src` resolves after an `import()` +
|
|
9005
9122
|
resolver call, so there's a brief loading-skeleton window on first paint/attribute change — don't
|
|
9006
9123
|
assume the `<img>` exists synchronously right after setting `country`/`language`.
|
|
@@ -9519,7 +9636,7 @@ size renders nothing instead of `"NaN B"`.
|
|
|
9519
9636
|
<lr-attachment-chip name="report.pdf" size="245000" mime-type="application/pdf" status="done"></lr-attachment-chip>
|
|
9520
9637
|
<lr-attachment-chip id="att-2" status="uploading" progress="42"></lr-attachment-chip>
|
|
9521
9638
|
<script type="module">
|
|
9522
|
-
import { formatFileSize } from '@aceshooting/lyra-ui';
|
|
9639
|
+
import { formatFileSize } from '@aceshooting/lyra-ui/components/media/attachment-chip/file-size.js';
|
|
9523
9640
|
|
|
9524
9641
|
const chip = document.createElement('lr-attachment-chip');
|
|
9525
9642
|
chip.file = pickedFile; // name/size/mime-type/thumbnail all derived from the File
|
|
@@ -9530,11 +9647,13 @@ size renders nothing instead of `"NaN B"`.
|
|
|
9530
9647
|
</script>
|
|
9531
9648
|
```
|
|
9532
9649
|
|
|
9533
|
-
The image thumbnail for a real `File` is a
|
|
9534
|
-
|
|
9535
|
-
|
|
9536
|
-
`
|
|
9537
|
-
|
|
9650
|
+
The image thumbnail for a real `File` is a cached `URL.createObjectURL()` blob URL, allocated in
|
|
9651
|
+
`willUpdate()` — the update lifecycle, deliberately **never** from `render()`, so rendering stays a
|
|
9652
|
+
pure projection of already-prepared state and URL allocation never happens as a render side effect.
|
|
9653
|
+
It is created only when `file` is an image (or `previewable` is set), reused for as long as the same
|
|
9654
|
+
`File` object stays assigned, and revoked when `file` changes to a different `File`, to a non-image,
|
|
9655
|
+
or to `undefined`, and again on disconnect. Because the same pass that allocates also revokes the
|
|
9656
|
+
previous entry, reassigning `file` several times before the next paint leaks nothing.
|
|
9538
9657
|
|
|
9539
9658
|
**Known gotchas:**
|
|
9540
9659
|
- `file` always wins over `name`/`size`/`mimeType` when both are set — assigning those props while
|
|
@@ -9797,10 +9916,12 @@ icon/glyph, only shown while the slot has assigned content), `image` (the `<img>
|
|
|
9797
9916
|
while `src` is set, hasn't failed to load, and no icon is slotted), `initials` (the fallback
|
|
9798
9917
|
initials text, rendered whenever neither `icon` nor `image` is).
|
|
9799
9918
|
|
|
9800
|
-
**Themeable custom properties:** `--lr-avatar-size` (default `2rem`, swapped to
|
|
9801
|
-
per `size="sm"`/`"lg"`), `--lr-avatar-bg` (default
|
|
9802
|
-
var(--lr-color-border)
|
|
9803
|
-
|
|
9919
|
+
**Themeable custom properties:** `--lr-avatar-size` (default `var(--lr-size-2rem)`, swapped to
|
|
9920
|
+
`var(--lr-size-1-5rem)`/`var(--lr-size-2-5rem)` per `size="sm"`/`"lg"`), `--lr-avatar-bg` (default
|
|
9921
|
+
`var(--lr-color-border)`, swapped per non-neutral `tone` to that tone's `-quiet` fill; there is no
|
|
9922
|
+
`--lr-color-surface-alt` token in this library, despite what older copies of this page claimed),
|
|
9923
|
+
`--lr-avatar-color` (default `var(--lr-color-text)`, swapped per non-neutral `tone` to that tone's
|
|
9924
|
+
loud color), `--lr-avatar-font-size` (default
|
|
9804
9925
|
`var(--lr-font-size-sm)`) — the font size of the initials fallback, and of any `em`-sized slotted
|
|
9805
9926
|
glyph. `size` swaps it per tier too (`var(--lr-font-size-xs)` at `sm`, `var(--lr-font-size-md)` at
|
|
9806
9927
|
`lg`), so the initials track the circle instead of staying one fixed size across every tier;
|
|
@@ -10338,7 +10459,13 @@ properties only cascade downward); `--lr-chart-grid-color` (default `var(--lr-co
|
|
|
10338
10459
|
`getComputedStyle` on every draw (Chart.js renders to canvas, not the DOM, so it can't consume CSS
|
|
10339
10460
|
`var()` directly), driving the grid lines, tick labels **and axis titles** (`xLabel`/`yLabel`/
|
|
10340
10461
|
`y2Label` title text reuses `--lr-chart-tick-color` too — there's no separate title-color token),
|
|
10341
|
-
legend text, and tooltip background/text respectively; plus
|
|
10462
|
+
legend text, and tooltip background/text respectively; plus
|
|
10463
|
+
`--lr-chart-canvas-hover-outline-width` (default `var(--lr-border-width-thin)`) — the width of
|
|
10464
|
+
`[part="canvas"]`'s own `:hover` outline. Unlike the tokens above, this one is a real CSS
|
|
10465
|
+
declaration on a DOM element (the outline is painted by the stylesheet, not by Chart.js), so it is
|
|
10466
|
+
consumed directly with no `getComputedStyle` bridging; it is an inline `var()` fallback at the point
|
|
10467
|
+
of use, so it can be set on the element or any ancestor, and left unset the outline is exactly the
|
|
10468
|
+
`--lr-border-width-thin` it always was. Plus shared `--lr-space-xs`.
|
|
10342
10469
|
|
|
10343
10470
|
**Optional peer deps:** `chart.js` (mandatory peer, lazy-imported on every `connectedCallback()`
|
|
10344
10471
|
regardless of `zoom`), `chartjs-plugin-zoom` (lazy-imported *additionally* only when `zoom` is — or
|
|
@@ -10595,7 +10722,9 @@ dependency fails to load — see `llms/components/lr-chart.md`).
|
|
|
10595
10722
|
|
|
10596
10723
|
**Themeable custom properties:** `--lr-chart-height`, `--lr-chart-grid-color`,
|
|
10597
10724
|
`--lr-chart-tick-color`, `--lr-chart-legend-color`, `--lr-chart-tooltip-bg`,
|
|
10598
|
-
`--lr-chart-tooltip-text
|
|
10725
|
+
`--lr-chart-tooltip-text`, `--lr-chart-canvas-hover-outline-width` — all inherited from `LyraChart`,
|
|
10726
|
+
identical in meaning and default (see `lr-chart` above); each of the eight variants below reads the
|
|
10727
|
+
same set, so one rule retunes them together.
|
|
10599
10728
|
|
|
10600
10729
|
**Optional peer deps:** same as `lr-chart` — `chart.js`, plus `chartjs-plugin-zoom` only once
|
|
10601
10730
|
`zoom` is set, and `chartjs-plugin-datalabels` only once `data-labels`/`stack-totals` is set.
|
|
@@ -10659,7 +10788,8 @@ dependency fails to load — inherited from `LyraChart`, unaffected by the binni
|
|
|
10659
10788
|
|
|
10660
10789
|
**Themeable custom properties:** `--lr-chart-height`, `--lr-chart-grid-color`,
|
|
10661
10790
|
`--lr-chart-tick-color`, `--lr-chart-legend-color`, `--lr-chart-tooltip-bg`,
|
|
10662
|
-
`--lr-chart-tooltip-text` — inherited from `LyraChart`,
|
|
10791
|
+
`--lr-chart-tooltip-text`, `--lr-chart-canvas-hover-outline-width` — inherited from `LyraChart`,
|
|
10792
|
+
identical in meaning.
|
|
10663
10793
|
|
|
10664
10794
|
**Optional peer deps:** the same `chart.js` (+ `chartjs-plugin-zoom` when `zoom` is set) peers.
|
|
10665
10795
|
|
|
@@ -11000,7 +11130,7 @@ Register a renderer once during application setup. The definition may load a hea
|
|
|
11000
11130
|
only when a matching document is opened:
|
|
11001
11131
|
|
|
11002
11132
|
```ts
|
|
11003
|
-
import { registerDocumentRenderer } from '@aceshooting/lyra-ui';
|
|
11133
|
+
import { registerDocumentRenderer } from '@aceshooting/lyra-ui/components/viewers/document-viewer/registry.js';
|
|
11004
11134
|
|
|
11005
11135
|
registerDocumentRenderer('application/x-example', {
|
|
11006
11136
|
render: (file) => `Preview: ${file.name}`,
|
|
@@ -11175,8 +11305,12 @@ stylesheet.
|
|
|
11175
11305
|
|
|
11176
11306
|
**Optional peer dependency:** install `jszip` with `pnpm add jszip`. The lazy registry registers
|
|
11177
11307
|
`application/zip` and `application/x-zip-compressed`, with a `.zip` filename fallback, and imports
|
|
11178
|
-
the viewer only when a matching archive is opened.
|
|
11179
|
-
|
|
11308
|
+
the viewer only when a matching archive is opened. Both registrations declare
|
|
11309
|
+
`capabilities: { anchors: ['text-quote', 'fragment'], search: true, textSelect: true }` — sibling to
|
|
11310
|
+
`load`, not inside it, so feature detection can read the capabilities without paying for the lazy
|
|
11311
|
+
import. Opening a `.zip` through `<lr-document-viewer>` forwards `anchor`/`highlights` to the mounted
|
|
11312
|
+
viewer, so a deep link into an entry name survives the registry hop. `.tar`, `.rar`, and other
|
|
11313
|
+
archive formats fall through to `<lr-document-preview>`'s generic download fallback.
|
|
11180
11314
|
|
|
11181
11315
|
Remote resources are capped at 25 MB; exceeding it surfaces the localized
|
|
11182
11316
|
`documentPreviewResourceTooLarge` message instead of the entry listing.
|
|
@@ -11257,7 +11391,9 @@ and `lr-render-error` with `detail.error`.
|
|
|
11257
11391
|
|
|
11258
11392
|
**Optional peer dependency:** install `@aiden0z/pptx-renderer` with
|
|
11259
11393
|
`pnpm add @aiden0z/pptx-renderer`. The registry matches the official PPTX MIME type and `.pptx`
|
|
11260
|
-
filenames
|
|
11394
|
+
filenames, declaring `{ anchors: ['text-quote', 'fragment'], search: true, textSelect: true }`
|
|
11395
|
+
capabilities and forwarding `anchor`/`highlights` to the mounted viewer, so a deep link opened
|
|
11396
|
+
through `<lr-document-viewer>` survives the registry hop.
|
|
11261
11397
|
|
|
11262
11398
|
Remote resources are capped at 25 MB; exceeding it surfaces the localized
|
|
11263
11399
|
`documentPreviewResourceTooLarge` message instead of the presentation.
|
|
@@ -11266,26 +11402,42 @@ Remote resources are capped at 25 MB; exceeding it surfaces the localized
|
|
|
11266
11402
|
|
|
11267
11403
|
Fetches an SVG document, sanitizes it with the optional `dompurify` peer, and renders it inline.
|
|
11268
11404
|
|
|
11405
|
+
Adopts `DocumentAnchorTarget` (the same shared mixin `lr-pdf-viewer`/`lr-csv-viewer` use): a `region`
|
|
11406
|
+
anchor addresses one `highlights` entry, matched by reference or by structural equality of its `rect`
|
|
11407
|
+
(and optional `page`). Assigning `anchor` or calling `scrollToAnchor()` scrolls the matching
|
|
11408
|
+
`[part="region-highlight"]` into view and fires `lr-anchor-result`. No other anchor kind resolves
|
|
11409
|
+
here — a sanitized SVG document has neither pages nor extractable text to quote, which is also why
|
|
11410
|
+
its registry entry declares `capabilities: { anchors: ['region'], search: false, textSelect: false }`.
|
|
11411
|
+
|
|
11269
11412
|
**Properties:** `src`, `name`, and `maxHeight` (attribute `max-height`) are strings. `maxHeight` caps
|
|
11270
11413
|
the scrollable body. `zoomable: boolean = false` (reflected) — wraps the rendered content in an
|
|
11271
11414
|
internal `<lr-zoomable-frame>`. `false` (the default) preserves the exact pre-`zoomable` DOM — an
|
|
11272
11415
|
inline thumbnail (e.g. in a chat stream) must not unexpectedly grow a focusable zoom-chrome viewport;
|
|
11273
|
-
an inspection surface opts in. `
|
|
11274
|
-
|
|
11416
|
+
an inspection surface opts in. `anchor: LyraAnchor | string | null = null` (attribute: false) —
|
|
11417
|
+
declaratively jump to an anchor (a `LyraAnchor` object, or a `highlights` entry's `id`). Assigning it
|
|
11418
|
+
calls `scrollToAnchor()` and fires `lr-anchor-result`; re-assigning the same value re-triggers the
|
|
11419
|
+
scroll, it is not reference-gated. `highlights: LyraHighlight[] = []` (attribute: false) —
|
|
11420
|
+
display-only `region` highlights painted over the rendered SVG; unchanged behavior, now inherited
|
|
11421
|
+
from `DocumentAnchorTarget` rather than declared locally. `activeHighlightId: string | null = null`
|
|
11275
11422
|
(attribute `active-highlight-id`) — the `highlights` entry, if any, currently treated as active
|
|
11276
11423
|
(`data-active` on its `region-highlight`). `anchorKinds` is a readonly `['region']` (this viewer's
|
|
11277
11424
|
supported `LyraAnchor.kind` values for the shared anchor-target contract).
|
|
11278
11425
|
|
|
11279
|
-
**Methods:** `scrollToAnchor(target)
|
|
11280
|
-
|
|
11281
|
-
|
|
11282
|
-
`
|
|
11426
|
+
**Methods:** `scrollToAnchor(target): Promise<boolean>` — scrolls the `highlights` entry matching
|
|
11427
|
+
`target` (a `region`-kind `LyraAnchor`, matched by reference or by structural equality of
|
|
11428
|
+
`rect`/`page`; or a `highlights[].id` string) into view, honoring `prefers-reduced-motion`. Resolves
|
|
11429
|
+
`true` when a match was found and scrolled, `false` otherwise, and always fires `lr-anchor-result`
|
|
11430
|
+
carrying the same boolean. Called before the SVG has finished loading it retries for up to 5s (real
|
|
11431
|
+
timers) rather than failing immediately.
|
|
11283
11432
|
|
|
11284
11433
|
**Events:** `lr-render-error` with `detail.error` when fetching or sanitizing fails.
|
|
11285
11434
|
`lr-highlight-activate` (`detail: { id }`) — a region highlight was clicked or activated via
|
|
11286
|
-
Enter/Space.
|
|
11435
|
+
Enter/Space. `lr-anchor-result` (`detail: { found: boolean }`) — fired after an `anchor` assignment
|
|
11436
|
+
or a `scrollToAnchor()` call is applied, whether or not a match was found.
|
|
11287
11437
|
|
|
11288
|
-
**CSS parts:** `base`, `body`, `svg`, `spinner`, `error`, `
|
|
11438
|
+
**CSS parts:** `base`, `body`, `svg`, `spinner`, `error`, `anchor-live-region` (the visually-hidden
|
|
11439
|
+
`role="status"` element announcing anchor-jump results to assistive tech),
|
|
11440
|
+
`highlight-layer` (wrapper around every
|
|
11289
11441
|
rendered region highlight), `region-highlight` (one region highlight, `data-tone`, `data-active`),
|
|
11290
11442
|
`region-highlight-target` (transparent activation geometry with an independent minimum hit area),
|
|
11291
11443
|
`highlight-actions` (non-overlapping actions for multiple highlights), `region-highlight-action`
|
|
@@ -11332,7 +11484,10 @@ inside a bounded, scrollable body.
|
|
|
11332
11484
|
**Themeable custom properties:** `--lr-html-viewer-max-height` (default `none`) — maximum block size
|
|
11333
11485
|
of `[part="body"]`; also settable via the `max-height` property, which writes this token inline.
|
|
11334
11486
|
|
|
11335
|
-
**Optional peer dependency:** `dompurify`.
|
|
11487
|
+
**Optional peer dependency:** `dompurify`. The registry matches `text/html` and `.htm`/`.html`
|
|
11488
|
+
filenames, declaring `{ anchors: ['text-quote', 'fragment'], search: true, textSelect: true }`
|
|
11489
|
+
capabilities and forwarding `anchor`/`highlights` onto the created element, so a deep link opened
|
|
11490
|
+
through `<lr-document-viewer>` survives the registry hop.
|
|
11336
11491
|
|
|
11337
11492
|
Remote resources are capped at 25 MB; exceeding it surfaces the localized
|
|
11338
11493
|
`documentPreviewResourceTooLarge` message instead of the document.
|
|
@@ -11468,7 +11623,10 @@ table of contents as `PdfOutlineItem[]` (`{ title, page?, children? }`), `[]` wh
|
|
|
11468
11623
|
`clearSearch()`); `searchNext()` and `searchPrevious()` advance/step back through matches (wrapping,
|
|
11469
11624
|
resolving `false` when there are none); `clearSearch()` clears the query, matches, and painted marks.
|
|
11470
11625
|
|
|
11471
|
-
**CSS parts:** `base`, `toolbar`, `
|
|
11626
|
+
**CSS parts:** `base`, `toolbar`, `previous-button`, `next-button`, `zoom-out-button`,
|
|
11627
|
+
`zoom-in-button` (the four toolbar controls — previously reachable only through `::part(toolbar)
|
|
11628
|
+
button`, which is invalid: a descendant combinator after `::part()` never matches, so each button now
|
|
11629
|
+
carries its own part name), `page-indicator`, `zoom-indicator`, `pages`, `page`, `page-canvas`
|
|
11472
11630
|
(the canvas one page's content is painted onto), `text-layer`, `text-span` (one generated text run
|
|
11473
11631
|
inside a page's text layer — PDF.js creates these imperatively, and they carry the part so a rule can
|
|
11474
11632
|
reach them without a descendant combinator), `search-match` (a `<mark>` painted into a mounted page's
|
|
@@ -11726,8 +11884,10 @@ Execution is a hard non-goal. Markdown cells render through `lr-markdown`, code
|
|
|
11726
11884
|
`lr-code-block` (using the notebook's kernel language for syntax highlighting), and raw cells as
|
|
11727
11885
|
plain preformatted text. A code cell's `execute_result`/`display_data` outputs prefer, in order,
|
|
11728
11886
|
`image/png`, `image/jpeg`, `image/svg+xml` (sanitized), `text/html` (sanitized), `application/json`
|
|
11729
|
-
(via `lr-json-viewer`), then `text/plain`. Stream/error outputs render as
|
|
11730
|
-
|
|
11887
|
+
(via `lr-json-viewer`), then `text/plain`. Stream/error outputs render as preformatted text (tinted
|
|
11888
|
+
`danger` for stderr/tracebacks) with embedded ANSI SGR color/style escapes interpreted through the
|
|
11889
|
+
same shared `internal/ansi.ts` parser `lr-terminal` uses — a traceback keeps its coloring instead of
|
|
11890
|
+
showing raw `ESC[` sequences. Sanitizing raw HTML/SVG output markup lazy-loads the
|
|
11731
11891
|
optional peer `dompurify`; without it, the output renders a localized notice instead of raw markup.
|
|
11732
11892
|
Cells are virtualized through `lr-virtual-list`. `node-path` anchors resolve `path[0]` as a cell
|
|
11733
11893
|
index; `fragment` anchors resolve a cell's own `id`. No execution, no kernels, no editing, no
|
|
@@ -12951,6 +13111,9 @@ visually-distinct row (dashed border, italic label, "not in catalog" badge) comp
|
|
|
12951
13111
|
from the listbox or committed in free-text mode; `inCatalog` reflects whether that value was
|
|
12952
13112
|
actually present in `normalizedCatalog`, so a consumer can flag a freshly-typed custom value
|
|
12953
13113
|
distinctly from a real catalog pick)
|
|
13114
|
+
- `change` (`Event`, no detail) — fired alongside `lr-change`, mirroring `<lr-select>`/
|
|
13115
|
+
`<lr-combobox>`'s native-style value-change pair so native form bindings/framework `v-model`
|
|
13116
|
+
handlers behave consistently across the picker family.
|
|
12954
13117
|
- `blur` (no detail) — re-dispatched from the free-text mode's internal `<input>`'s own `blur`,
|
|
12955
13118
|
bubbling and composed unlike the native event. Closed-dropdown mode's trigger `<button>` has no
|
|
12956
13119
|
equivalent re-dispatch, matching `<lr-select>`'s own trigger.
|
|
@@ -13742,6 +13905,10 @@ and it repainted every other danger surface with it.
|
|
|
13742
13905
|
|
|
13743
13906
|
- `blur()` — Forwards host blur to the internal push-to-talk control.
|
|
13744
13907
|
- `focus()` — Forwards host focus to the internal push-to-talk control.
|
|
13908
|
+
- `click()` — Programmatically starts or stops a take, mirroring a real pointer/keyboard
|
|
13909
|
+
activation: in `mode="toggle"` it forwards to the trigger's native `click()`; otherwise it calls
|
|
13910
|
+
`stop()` while `state` is `recording` or `start()` otherwise. A no-op while `disabled` or
|
|
13911
|
+
unsupported.
|
|
13745
13912
|
|
|
13746
13913
|
## `lr-transcript-feed`
|
|
13747
13914
|
|
|
@@ -13956,13 +14123,17 @@ icon — the item has no default slot to receive one); unset renders the built-i
|
|
|
13956
14123
|
`renderActions?: (thread: ChatThread) => TemplateResult` (attribute: false) — data mode only:
|
|
13957
14124
|
appends host-supplied content (re-invoked per row on every render, e.g. a `lr-menu` with custom
|
|
13958
14125
|
actions) after the built-in `rowActions` output in each row's `actions` slot; events it fires reach
|
|
13959
|
-
the host normally and never trigger `lr-select`.
|
|
14126
|
+
the host normally and never trigger `lr-select`. An open nested `lr-menu` keeps its virtual row
|
|
14127
|
+
above later rows even if focus temporarily leaves the menu. Unset renders only the built-in
|
|
14128
|
+
`rowActions`.
|
|
13960
14129
|
`renderLeading?: (thread: ChatThread) => TemplateResult` (attribute: false) — renders non-interactive
|
|
13961
14130
|
leading content in each virtualized row. `renderExcerpt?: (thread: ChatThread) => TemplateResult`
|
|
13962
14131
|
(attribute: false) — renders rich content into the row item's own `excerpt` slot, winning over the
|
|
13963
14132
|
plain-string `excerpt` property (e.g. a server-highlighted search-match snippet), while leaving the
|
|
13964
|
-
built-in title layout and inline-rename affordance untouched.
|
|
13965
|
-
|
|
14133
|
+
built-in title layout and inline-rename affordance untouched. `<mark>` descendants returned by this
|
|
14134
|
+
hook receive the default, component-themeable highlight treatment documented below.
|
|
14135
|
+
`renderMeta?: (thread: ChatThread) => TemplateResult` (attribute: false) — appends structured
|
|
14136
|
+
metadata in the row's meta region.
|
|
13966
14137
|
`renderRowContent?: (thread: ChatThread) => TemplateResult` (attribute: false) — replaces the
|
|
13967
14138
|
conversation item's title/excerpt/meta content area with custom non-interactive row content.
|
|
13968
14139
|
`formatGroupLabel?: (key: ThreadBucketKey, date?: Date) => string` (attribute: false) — overrides
|
|
@@ -14005,6 +14176,14 @@ prefix: `row-item-base`, `row-item-active-indicator`, `row-item-option`, `row-it
|
|
|
14005
14176
|
`row-item-title`, `row-item-title-input`, `row-item-rename-button`, `row-item-excerpt`,
|
|
14006
14177
|
`row-item-meta`, `row-item-timestamp`, `row-item-actions`.
|
|
14007
14178
|
|
|
14179
|
+
**Themeable excerpt highlights:** `<mark>` descendants returned by `renderExcerpt` use
|
|
14180
|
+
`--lr-thread-list-excerpt-highlight-background` (default `var(--lr-color-warning-quiet)`),
|
|
14181
|
+
`--lr-thread-list-excerpt-highlight-foreground` (default `inherit`),
|
|
14182
|
+
`--lr-thread-list-excerpt-highlight-radius` (default `var(--lr-radius-xs)`), and
|
|
14183
|
+
`--lr-thread-list-excerpt-highlight-padding` (default `0`). These properties inherit through the
|
|
14184
|
+
internal virtual-list shadow tree, so set them on `lr-thread-list` or any ancestor. They do not style
|
|
14185
|
+
marks returned by `renderRowContent` or any other hook.
|
|
14186
|
+
|
|
14008
14187
|
**Keep the two prefixes straight — they are different surfaces.** The `row-*` parts wrap *this*
|
|
14009
14188
|
component's own render-callback output (`wrapRow`, `renderLeading`, `renderExcerpt`,
|
|
14010
14189
|
`renderRowContent`, `renderMeta`, `renderActions`); the `row-item-*` parts are the row item's
|
|
@@ -14591,9 +14770,10 @@ the built-in glyph for the current `status` is used)
|
|
|
14591
14770
|
`summary`), `category`, `name`, `summary`, `meta` (wrapper around `status-text` and `duration`),
|
|
14592
14771
|
`status-text`, `duration`, `tooltip` (the floating detail popup, only meaningful while open)
|
|
14593
14772
|
|
|
14594
|
-
**Themeable custom properties:** `--lr-tool-call-chip-spin` (default `
|
|
14595
|
-
|
|
14596
|
-
|
|
14773
|
+
**Themeable custom properties:** `--lr-tool-call-chip-spin` (default `var(--lr-transition-ambient)`,
|
|
14774
|
+
i.e. `1.8s ease-in-out` at the shipped token value and `0.001ms linear` under
|
|
14775
|
+
`prefers-reduced-motion` — running-icon animation duration/timing) and `--lr-transition-ambient`
|
|
14776
|
+
(default `1.8s ease-in-out` — pending-icon pulse duration/timing). `--lr-tool-call-chip-accent`, `--lr-tool-call-chip-bg`, and
|
|
14597
14777
|
`--lr-tool-call-chip-border` are internal per-status variables reassigned by this component's own
|
|
14598
14778
|
`:host([status="…"])` rules (e.g. `pending` → `--lr-color-text-quiet`/`--lr-color-surface`/
|
|
14599
14779
|
`--lr-color-border`; `running` → brand; `success` → success; `error` → danger; `denied` → warning),
|
|
@@ -14892,7 +15072,8 @@ tool name/status/duration), `tool-name`, `status`, `duration`, `header-actions`,
|
|
|
14892
15072
|
0.5)` — the backdrop scrim color; component-specific since no shared overlay token exists),
|
|
14893
15073
|
`--lr-tool-result-dialog-maximized-inset` (default `var(--lr-space-l)` — inset applied to the
|
|
14894
15074
|
panel while `[maximized]`, overridable e.g. to leave a persistent app rail visible), and
|
|
14895
|
-
`--lr-tool-result-dialog-spin` (default `
|
|
15075
|
+
`--lr-tool-result-dialog-spin` (default `var(--lr-transition-ambient)`, i.e. `1.8s ease-in-out`,
|
|
15076
|
+
and effectively stopped under reduced motion because that token collapses to `0.001ms linear`), plus shared
|
|
14896
15077
|
tokens `--lr-color-surface/-border/-text-quiet/-brand/-brand-quiet/-success/-success-quiet/
|
|
14897
15078
|
-danger/-danger-quiet/-warning/-warning-quiet`, `--lr-space-*`, `--lr-radius`, `--lr-shadow`,
|
|
14898
15079
|
`--lr-icon-button-size`, `--lr-focus-ring-*`, `--lr-transition-base`.
|
|
@@ -15426,7 +15607,12 @@ set `valid: false` while `formError`, rather than a fabricated field key, carrie
|
|
|
15426
15607
|
|
|
15427
15608
|
**Slots:** none.
|
|
15428
15609
|
|
|
15429
|
-
**CSS parts:** `base`, `field`, `label`, `description`, `error`, `unsupported`, `empty
|
|
15610
|
+
**CSS parts:** `base`, `field`, `label`, `control`, `description`, `error`, `unsupported`, `empty`.
|
|
15611
|
+
`control` is the native `<input>` for a `'string'` (non-enum) or `'number'`/`'integer'` field — one
|
|
15612
|
+
shared part name across both the text and number inputs, and deliberately *not* present on the
|
|
15613
|
+
`'boolean'` (`<lr-checkbox>`), enum (`<lr-select>`), or unsupported-type fallback branches, which are
|
|
15614
|
+
composed components with their own part surfaces rather than raw natives. It is purely an additive
|
|
15615
|
+
external theming hook: the internal `.control` class the stylesheet targets is unchanged.
|
|
15430
15616
|
|
|
15431
15617
|
**Themeable custom properties:** no component-specific custom properties; shared tokens only —
|
|
15432
15618
|
`--lr-space-l/-xs/-s`, `--lr-color-border`, `--lr-radius`, `--lr-color-surface`,
|
|
@@ -15541,8 +15727,14 @@ whenever the slot has no assigned content), `body`.
|
|
|
15541
15727
|
|
|
15542
15728
|
**Themeable custom properties:** `--lr-result-card-compact-header-padding` (default
|
|
15543
15729
|
`var(--lr-space-xs)`) — `[part="header"]` block/inline padding while `compact`;
|
|
15544
|
-
`--lr-result-card-compact-
|
|
15545
|
-
while `compact
|
|
15730
|
+
`--lr-result-card-compact-header-gap` (default `var(--lr-space-xs)`) — gap between
|
|
15731
|
+
`[part="header"]`'s title and actions while `compact`, one step tighter than the uncompacted
|
|
15732
|
+
`--lr-space-s`; `--lr-result-card-compact-body-padding` (default `var(--lr-space-xs)`) —
|
|
15733
|
+
`[part="body"]` padding while `compact`; `--lr-result-card-compact-body-gap` (default
|
|
15734
|
+
`var(--lr-space-2xs)`) — gap between `[part="body"]`'s children while `compact`, one step tighter
|
|
15735
|
+
than the uncompacted `--lr-space-xs`. The two gap knobs mean `compact` now tightens interior spacing,
|
|
15736
|
+
not only the padding box — a compact card no longer keeps full-size gaps inside a shrunken frame.
|
|
15737
|
+
Plus shared tokens — `--lr-space-2xs`/`-xs`/`-s`, `--lr-color-border`/`-surface`/`-text`,
|
|
15546
15738
|
`--lr-radius`.
|
|
15547
15739
|
|
|
15548
15740
|
### `lr-result-field`
|
|
@@ -15692,9 +15884,13 @@ indicator, only rendered when `collapsible`), `body` (the list of items, `hidden
|
|
|
15692
15884
|
`item-detail`, and `item-children` (the nested `role="list"` wrapper around a top-level item's
|
|
15693
15885
|
children).
|
|
15694
15886
|
|
|
15695
|
-
**Themeable custom properties:** `--lr-task-list-spin` (default `
|
|
15696
|
-
|
|
15887
|
+
**Themeable custom properties:** `--lr-task-list-spin` (default `var(--lr-transition-ambient)`, i.e.
|
|
15888
|
+
`1.8s ease-in-out`, collapsing to `0.001ms linear` under `prefers-reduced-motion`) — running-status
|
|
15889
|
+
icon spin animation duration/timing; `--lr-task-list-compact-header-padding` (default
|
|
15697
15890
|
`var(--lr-space-2xs) var(--lr-space-s)`) — `[part="header"]` padding while `compact`;
|
|
15891
|
+
`--lr-task-list-compact-header-gap` (default `var(--lr-space-2xs)`) — gap between `[part="header"]`'s
|
|
15892
|
+
label/summary/toggle while `compact`, one step tighter than the header's uncompacted
|
|
15893
|
+
`--lr-space-xs`, so `compact` tightens the header's *interior* spacing and not just its padding;
|
|
15698
15894
|
`--lr-task-list-compact-gap` (default `var(--lr-space-2xs)`) — gap between `[part="body"]`'s item
|
|
15699
15895
|
rows while `compact`; `--lr-task-list-compact-body-padding` (default `var(--lr-space-2xs)
|
|
15700
15896
|
var(--lr-space-s) var(--lr-space-s)`) — `[part="body"]` padding while `compact`.
|
|
@@ -15711,12 +15907,18 @@ codes. `maxScrollback: number = 5000` (attribute `max-scrollback`), `follow: boo
|
|
|
15711
15907
|
string = 'terminal.log'`, `announceOutput: boolean = false` (attribute `announce-output`),
|
|
15712
15908
|
`accessibleLabel: string = ''` (attribute `aria-label`), `highlights: LyraHighlight[] = []` (attribute:
|
|
15713
15909
|
false), and `activeHighlightId: string | null = null` (attribute: false). `anchorKinds` is a readonly
|
|
15714
|
-
`['
|
|
15910
|
+
`['line-range']` — a scrollback buffer addresses positions by line number, so `line-range` is the
|
|
15911
|
+
only kind `scrollToAnchor()` resolves; `page`/`text-quote`/`region` belong to the paginated document
|
|
15912
|
+
viewers, not here. `<lr-terminal>` is not registered in the document-renderer registry, so this field
|
|
15913
|
+
is a plain readonly property rather than the `DocumentAnchorTarget` mixin's `override readonly` one.
|
|
15715
15914
|
|
|
15716
15915
|
**Methods:** `write(text)` appends ANSI-parsed text to the buffer. `clear()` empties the buffer.
|
|
15717
|
-
`scrollToBottom()` and `scrollToAnchor(anchor)
|
|
15718
|
-
`
|
|
15719
|
-
|
|
15916
|
+
`scrollToBottom()` and `scrollToAnchor(anchor): Promise<boolean>` control scroll position.
|
|
15917
|
+
`search(query): Promise<number>` (resolves the match count after the resulting render),
|
|
15918
|
+
`searchNext()`, `searchPrevious()`, and `clearSearch()` drive in-buffer text search — matching is
|
|
15919
|
+
line-granular (a match identifies a whole line, not a character range) and capped, so `matchCount`
|
|
15920
|
+
stops climbing on a pathologically repetitive buffer. `getPlainText()` returns the SGR-stripped
|
|
15921
|
+
plain text of the whole buffer.
|
|
15720
15922
|
|
|
15721
15923
|
**Events:** `lr-copy` (`detail: { text }`), `lr-download` (`detail: { filename }`),
|
|
15722
15924
|
`lr-follow-change` (`detail: { following }`), `lr-search-change` (`detail: { query, matchCount,
|
|
@@ -15876,8 +16078,16 @@ when both are set.
|
|
|
15876
16078
|
}`), and `lr-copy` (`detail: { text: string }`, the full hash was copied).
|
|
15877
16079
|
|
|
15878
16080
|
**CSS parts:** `base`, `subject`, `body`, `hash`, `meta`, `author`, `time`, `diffstat`, `additions`,
|
|
15879
|
-
`deletions`, `files-toggle`, `file` (carries `data-status`), `file-path`, `file-
|
|
15880
|
-
`file-deletions`, `copy-button`, and `actions`.
|
|
16081
|
+
`deletions`, `files-toggle`, `file` (carries `data-status`), `file-path`, `file-status`,
|
|
16082
|
+
`file-additions`, `file-deletions`, `copy-button`, and `actions`.
|
|
16083
|
+
|
|
16084
|
+
`file-status` is the one-letter git-status badge (`A`/`M`/`D`/`R`/`U`/`C`/`!`) rendered inside
|
|
16085
|
+
`[part="file-path"]`, present only for a file that has a `status`. The letter alone is meaningless to
|
|
16086
|
+
a screen reader, so the element carries the localized expansion as its `aria-label` — "Modified",
|
|
16087
|
+
"Added", … — reusing `<lr-file-tree>`'s shared `gitStatusAdded`/`gitStatusModified`/
|
|
16088
|
+
`gitStatusDeleted`/`gitStatusRenamed`/`gitStatusUntracked`/`gitStatusConflicted`/`gitStatusIgnored`
|
|
16089
|
+
message keys, so one `registerLyraLocale()` registration (or one `.strings` override) translates the
|
|
16090
|
+
badge in both components at once.
|
|
15881
16091
|
|
|
15882
16092
|
**Themeable custom properties:** `--lr-commit-card-compact-padding` (default `var(--lr-space-s)`) —
|
|
15883
16093
|
`[part="base"]` padding while `compact`.
|
|
@@ -15976,6 +16186,14 @@ They are inline `var()` fallbacks at their point of use rather than `:host` decl
|
|
|
15976
16186
|
them can be set on the element *or on any ancestor*, which is what makes "give every compact confirm
|
|
15977
16187
|
bar in this panel a hairline border" a one-rule change on the panel.
|
|
15978
16188
|
|
|
16189
|
+
Two further properties recolor the decided state: `--lr-confirm-bar-approved-color` (default
|
|
16190
|
+
`var(--lr-color-success)`) and `--lr-confirm-bar-denied-color` (default `var(--lr-color-danger)`) —
|
|
16191
|
+
`[part="status"]`'s text/icon color under `:host([decision='approved'])` and
|
|
16192
|
+
`:host([decision='denied'])` respectively. Same inline-`var()`-fallback shape as the compact set.
|
|
16193
|
+
They exist because `::part(status)[decision]` is invalid CSS, so recoloring just this component's
|
|
16194
|
+
decided state previously meant re-pointing the library-wide `--lr-color-success`/`-danger` tokens and
|
|
16195
|
+
repainting everything else that reads them.
|
|
16196
|
+
|
|
15979
16197
|
**Known gotchas:**
|
|
15980
16198
|
- `[part="status"]` is always rendered and must never be given `display: none`. Deciding moves focus
|
|
15981
16199
|
to it synchronously, before the Deny/Approve buttons unmount, so hiding it would drop focus to
|
|
@@ -16076,9 +16294,13 @@ entry is the latest version. `activeVersionId: string | null = null` (attribute
|
|
|
16076
16294
|
`aria-busy` on the body and shows a text indicator (not animated, so it stays legible under reduced
|
|
16077
16295
|
motion). `copyText: string = ''` (attribute `copy-text`) — the text copied to the clipboard by the
|
|
16078
16296
|
copy button; empty hides the button. `downloadSrc: string = ''` (attribute `download-src`) — the
|
|
16079
|
-
download URL, sanitized through `
|
|
16080
|
-
|
|
16081
|
-
|
|
16297
|
+
download URL, sanitized through `safeDownloadHref()` (`http:`/`https:`/`blob:` only — narrower than
|
|
16298
|
+
the media/resource allowlist, which also permits `data:`); an empty value hides the button. The
|
|
16299
|
+
sanitizer runs at click time, not render time, so a *non-empty but rejected* URL still renders the
|
|
16300
|
+
button and simply emits nothing when pressed. The component never navigates on its own: it emits
|
|
16301
|
+
`lr-download` with the sanitized `src` and leaves the actual download to the host.
|
|
16302
|
+
`downloadName: string = ''` (attribute `download-name`) — the suggested filename reported in the
|
|
16303
|
+
`lr-download` event detail.
|
|
16082
16304
|
|
|
16083
16305
|
**Slots:** default — preview-view content (markdown/html-viewer/browser-frame/image). `code` —
|
|
16084
16306
|
code-view content (typically a `lr-code-block`); the preview/code toggle only renders once this
|
|
@@ -16179,8 +16401,9 @@ this component's own retry counter, reset when `run.id` changes).
|
|
|
16179
16401
|
`reasoning`, `output`, `actions`, `cancel-button`, `retry-button`, `metric-label`, `metric-value`
|
|
16180
16402
|
(carries `data-variant`), `empty`.
|
|
16181
16403
|
|
|
16182
|
-
**Themeable custom properties:** `--lr-agent-run-spin` (default `
|
|
16183
|
-
|
|
16404
|
+
**Themeable custom properties:** `--lr-agent-run-spin` (default `var(--lr-transition-ambient)`, i.e.
|
|
16405
|
+
`1.8s ease-in-out`, collapsing to `0.001ms linear` under `prefers-reduced-motion`) — the
|
|
16406
|
+
current-step icon's rotation duration/timing. `--lr-agent-run-compact-padding` (default
|
|
16184
16407
|
`var(--lr-space-s)`) and `--lr-agent-run-compact-gap` (default `var(--lr-space-s)`) — `[part="base"]`'s
|
|
16185
16408
|
padding, and the gap between its header and body, while `compact`; both are ignored while `compact`
|
|
16186
16409
|
is unset. Like the other density/state properties in this family they are inline `var()` fallbacks at
|
|
@@ -16513,7 +16736,12 @@ It never executes tools or persists decisions.
|
|
|
16513
16736
|
approved, args? }`), and `lr-approval-close` (`{ invocationId, reason }`).
|
|
16514
16737
|
|
|
16515
16738
|
**CSS parts:** `base`, `heading-row`, `heading`, `count`, `list`, `request`, `request-info`,
|
|
16516
|
-
`tool-name`, `request-id`, `status`, `empty`.
|
|
16739
|
+
`tool-name`, `request-id`, `status`, `empty`. The `[part='request']` row matching `selectedId`
|
|
16740
|
+
carries both `data-selected` (the styling hook) and `aria-current="true"` (the semantic one), so the
|
|
16741
|
+
selection is announced, not merely painted. Following this library's convention for `aria-current` —
|
|
16742
|
+
and unlike `aria-pressed`/`aria-expanded`/`aria-selected`, which must render both states — an
|
|
16743
|
+
unselected row omits the attribute rather than writing `"false"`, because ARIA already defines
|
|
16744
|
+
`aria-current`'s own default as false.
|
|
16517
16745
|
|
|
16518
16746
|
**Additional API surface:**
|
|
16519
16747
|
|
|
@@ -16619,6 +16847,18 @@ keywords. `SchemaValidationIssue = { path: string; message: string; severity?: '
|
|
|
16619
16847
|
**CSS parts:** `base`, `tree`, `node`, `node-selected`, `node-trigger`, `name`, `type`, `required`,
|
|
16620
16848
|
`description`, `constraints`, `issue`, `limit`, `empty`.
|
|
16621
16849
|
|
|
16850
|
+
`[part='issue']` carries `data-severity` and each severity has its own styling: `error` reads the
|
|
16851
|
+
danger tokens, `warning` the warning tokens, and `info` its own pair —
|
|
16852
|
+
`--lr-schema-viewer-info-border` (default `var(--lr-color-brand)`) and `--lr-schema-viewer-info-bg`
|
|
16853
|
+
(default `var(--lr-color-brand-quiet)`). Brand rather than a dedicated info palette because this
|
|
16854
|
+
library has no `--lr-color-info-*` token; before these existed an `info` issue rendered identically
|
|
16855
|
+
to an `error`, which read as a false alarm. Both are inline `var()` fallbacks at their point of use,
|
|
16856
|
+
so either can be set on the element or on any ancestor — `::part(issue)[data-severity='info']` is
|
|
16857
|
+
invalid CSS, so this is the only way to recolor one severity without touching the others.
|
|
16858
|
+
|
|
16859
|
+
**Themeable custom properties:** `--lr-schema-viewer-info-border`, `--lr-schema-viewer-info-bg` (see
|
|
16860
|
+
above); otherwise shared tokens only.
|
|
16861
|
+
|
|
16622
16862
|
Rendering is capped at 500 schema nodes; `limit` reports truncation. Cycles stop at the repeated
|
|
16623
16863
|
node rather than recursing. **Slots:** none. **Optional peer deps:** none.
|
|
16624
16864
|
|
|
@@ -18102,19 +18342,24 @@ Large sets window through an internal `lr-virtual-list`.
|
|
|
18102
18342
|
**Properties:**
|
|
18103
18343
|
- `chunks: RetrievalChunk[] = []` (attribute: false) — **`RetrievalChunk`, imported from
|
|
18104
18344
|
`@aceshooting/lyra-ui/ai`** (`src/ai/types.ts`): `{ id: string; text: string; score: number;
|
|
18105
|
-
source: DocumentRef; metadata?: Record<string, unknown
|
|
18106
|
-
|
|
18107
|
-
|
|
18108
|
-
|
|
18345
|
+
source: DocumentRef; metadata?: Record<string, unknown>; rank?: number; locator?: DocumentLocator;
|
|
18346
|
+
queryId?: string; stage?: string; traceId?: string; scores?: RetrievalScoreBreakdown }`. The raw,
|
|
18347
|
+
un-deduplicated/unsorted/ungrouped result set; host-owned. Internally mapped to
|
|
18348
|
+
`lr-chunk-inspector`'s flatter `LyraChunk` via `source.id → sourceId`, `source.name → title`, and
|
|
18349
|
+
`locator → anchor`; a `page`-kind `locator` additionally supplies the inspector's visible `page`.
|
|
18350
|
+
Nothing is ever guessed from `metadata` — a chunk with no `locator` simply leaves `anchor`/`page`
|
|
18351
|
+
unset
|
|
18109
18352
|
- `selectedIds: string[] = []` (attribute: false) — controlled selection by chunk `id`. The component
|
|
18110
18353
|
updates its own copy on toggle *then* emits `lr-select`; reassign to control. An id with no
|
|
18111
18354
|
matching chunk is harmless
|
|
18112
18355
|
- `selectable: boolean = true` (reflected) — shows a per-row `lr-checkbox`
|
|
18113
18356
|
- `dedupe: boolean = true` (reflected) — drops duplicate `id`s, keeping the higher `score`
|
|
18114
18357
|
- `sort: 'score' | 'none' = 'score'` — `'score'` sorts descending; `'none'` preserves given order
|
|
18115
|
-
- `grouping: 'source' | 'none' = 'none'` — `'source'` buckets rows under a header per `source.id
|
|
18116
|
-
|
|
18117
|
-
`
|
|
18358
|
+
- `grouping: 'source' | 'none' = 'none'` — `'source'` buckets rows under a header per `source.id`
|
|
18359
|
+
(the header text is that source's `name`, or a localized "untitled source" when it has none).
|
|
18360
|
+
Buckets appear in order of first appearance in the already-`sort`ed list, so with the default
|
|
18361
|
+
`sort="score"` that is best-scoring-chunk order, and with `sort="none"` it is the order the chunks
|
|
18362
|
+
arrived in. Grouping **always** virtualizes, regardless of `virtualizeAt`
|
|
18118
18363
|
- `presentation: 'compact' | 'expanded' = 'expanded'` — `'expanded'` shows each chunk's full row
|
|
18119
18364
|
(score bar, text preview with its own toggle) plus any `metadata`; `'compact'` shows title + score
|
|
18120
18365
|
bar only and omits `metadata` entirely
|
|
@@ -18361,6 +18606,15 @@ correlated ids/details from their composed primitives).
|
|
|
18361
18606
|
|
|
18362
18607
|
**CSS parts:** `base`, `heading`, `tabs`, `tab`, `panel`, `settings`.
|
|
18363
18608
|
|
|
18609
|
+
**Themeable custom properties:** `--lr-knowledge-base-admin-tab-selected-border` (default
|
|
18610
|
+
`var(--lr-color-brand)`) and `--lr-knowledge-base-admin-tab-selected-color` (default
|
|
18611
|
+
`var(--lr-color-text)`) — the bottom-border and text color of the selected `[part="tab"]`. State
|
|
18612
|
+
hooks: inline `var()` fallbacks at the point of use rather than `:host` declarations, so either can
|
|
18613
|
+
be set on the element *or on any ancestor*, and the rule wraps its `[aria-selected='true']` qualifier
|
|
18614
|
+
in `:where()` so a consumer's own `::part(tab)` override still wins. They exist because
|
|
18615
|
+
`::part(tab)[aria-selected='true']` is invalid CSS — Shadow Parts forbids an attribute selector after
|
|
18616
|
+
`::part()`. Left unset, rendering is unchanged.
|
|
18617
|
+
|
|
18364
18618
|
## `lr-claim-evidence`
|
|
18365
18619
|
|
|
18366
18620
|
Controlled claim-by-claim grounding audit relating `GroundedClaim[]` to complete `Citation[]`
|