@aceshooting/lyra-ui 7.7.0 → 7.8.1
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 +279 -0
- package/custom-elements.json +5954 -4329
- package/dist/components/agent-tools/artifact-panel/artifact-panel.class.d.ts +4 -0
- package/dist/components/agent-tools/artifact-panel/artifact-panel.class.d.ts.map +1 -1
- package/dist/components/agent-tools/artifact-panel/artifact-panel.class.js +11 -4
- package/dist/components/agent-tools/artifact-panel/artifact-panel.class.js.map +1 -1
- package/dist/components/agent-tools/browser-frame/browser-frame.class.d.ts +4 -0
- package/dist/components/agent-tools/browser-frame/browser-frame.class.d.ts.map +1 -1
- package/dist/components/agent-tools/browser-frame/browser-frame.class.js +13 -4
- package/dist/components/agent-tools/browser-frame/browser-frame.class.js.map +1 -1
- package/dist/components/agent-tools/commit-card/commit-card.class.d.ts +4 -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 +10 -3
- package/dist/components/agent-tools/commit-card/commit-card.class.js.map +1 -1
- package/dist/components/agent-tools/confirm-bar/confirm-bar.class.d.ts +6 -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 +6 -0
- package/dist/components/agent-tools/confirm-bar/confirm-bar.class.js.map +1 -1
- package/dist/components/agent-tools/mcp-app/mcp-app.class.js +1 -1
- package/dist/components/agent-tools/mcp-app/mcp-app.class.js.map +1 -1
- package/dist/components/agent-tools/stack-trace/stack-trace.class.d.ts.map +1 -1
- package/dist/components/agent-tools/stack-trace/stack-trace.class.js +8 -1
- package/dist/components/agent-tools/stack-trace/stack-trace.class.js.map +1 -1
- package/dist/components/agent-tools/terminal/terminal.class.d.ts +8 -2
- package/dist/components/agent-tools/terminal/terminal.class.d.ts.map +1 -1
- package/dist/components/agent-tools/terminal/terminal.class.js +12 -4
- package/dist/components/agent-tools/terminal/terminal.class.js.map +1 -1
- package/dist/components/agent-tools/tool-approval-dialog/tool-approval-dialog.class.d.ts.map +1 -1
- package/dist/components/agent-tools/tool-approval-dialog/tool-approval-dialog.class.js +2 -1
- package/dist/components/agent-tools/tool-approval-dialog/tool-approval-dialog.class.js.map +1 -1
- package/dist/components/charts/chart/box-plot.styles.d.ts.map +1 -1
- package/dist/components/charts/chart/box-plot.styles.js +4 -0
- package/dist/components/charts/chart/box-plot.styles.js.map +1 -1
- package/dist/components/charts/chart/chart.styles.d.ts.map +1 -1
- package/dist/components/charts/chart/chart.styles.js +6 -0
- 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 +3 -2
- package/dist/components/charts/chart/lite-chart.class.js.map +1 -1
- package/dist/components/conversation/code-block/code-block-shared.d.ts.map +1 -1
- package/dist/components/conversation/code-block/code-block-shared.js +9 -1
- package/dist/components/conversation/code-block/code-block-shared.js.map +1 -1
- package/dist/components/conversation/conversation-item/conversation-item.class.d.ts.map +1 -1
- package/dist/components/conversation/conversation-item/conversation-item.class.js +2 -1
- package/dist/components/conversation/conversation-item/conversation-item.class.js.map +1 -1
- package/dist/components/conversation/markdown/markdown-core.class.d.ts.map +1 -1
- package/dist/components/conversation/markdown/markdown-core.class.js +2 -1
- package/dist/components/conversation/markdown/markdown-core.class.js.map +1 -1
- package/dist/components/conversation/markdown/markdown-shared.d.ts +6 -1
- package/dist/components/conversation/markdown/markdown-shared.d.ts.map +1 -1
- package/dist/components/conversation/markdown/markdown-shared.js +6 -3
- package/dist/components/conversation/markdown/markdown-shared.js.map +1 -1
- package/dist/components/conversation/markdown/markdown.class.d.ts.map +1 -1
- package/dist/components/conversation/markdown/markdown.class.js +2 -1
- package/dist/components/conversation/markdown/markdown.class.js.map +1 -1
- package/dist/components/conversation/message-actions/message-actions.class.d.ts.map +1 -1
- package/dist/components/conversation/message-actions/message-actions.class.js +2 -1
- package/dist/components/conversation/message-actions/message-actions.class.js.map +1 -1
- package/dist/components/conversation/realtime-session/realtime-session.class.d.ts.map +1 -1
- package/dist/components/conversation/realtime-session/realtime-session.class.js +2 -1
- package/dist/components/conversation/realtime-session/realtime-session.class.js.map +1 -1
- package/dist/components/conversation/suggestion-chips/suggestion-chips.class.d.ts.map +1 -1
- package/dist/components/conversation/suggestion-chips/suggestion-chips.class.js +2 -1
- package/dist/components/conversation/suggestion-chips/suggestion-chips.class.js.map +1 -1
- package/dist/components/conversation/thread-list/thread-list.class.d.ts.map +1 -1
- package/dist/components/conversation/thread-list/thread-list.class.js +2 -1
- 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 +2 -1
- package/dist/components/conversation/voice-picker/voice-picker.class.js.map +1 -1
- package/dist/components/data/calendar/calendar.styles.d.ts.map +1 -1
- package/dist/components/data/calendar/calendar.styles.js +6 -1
- package/dist/components/data/calendar/calendar.styles.js.map +1 -1
- package/dist/components/data/document-library/document-library.class.d.ts +6 -0
- package/dist/components/data/document-library/document-library.class.d.ts.map +1 -1
- package/dist/components/data/document-library/document-library.class.js +7 -0
- package/dist/components/data/document-library/document-library.class.js.map +1 -1
- package/dist/components/data/env-list/env-list.class.d.ts.map +1 -1
- package/dist/components/data/env-list/env-list.class.js +2 -1
- package/dist/components/data/env-list/env-list.class.js.map +1 -1
- package/dist/components/data/heatmap/heatmap.class.d.ts +4 -0
- package/dist/components/data/heatmap/heatmap.class.d.ts.map +1 -1
- package/dist/components/data/heatmap/heatmap.class.js +9 -3
- package/dist/components/data/heatmap/heatmap.class.js.map +1 -1
- package/dist/components/data/query-builder/query-builder.class.d.ts +4 -0
- package/dist/components/data/query-builder/query-builder.class.d.ts.map +1 -1
- package/dist/components/data/query-builder/query-builder.class.js +10 -2
- package/dist/components/data/query-builder/query-builder.class.js.map +1 -1
- package/dist/components/data/table/table.class.d.ts.map +1 -1
- package/dist/components/data/table/table.class.js +11 -5
- package/dist/components/data/table/table.class.js.map +1 -1
- package/dist/components/data/table/table.styles.d.ts.map +1 -1
- package/dist/components/data/table/table.styles.js +4 -1
- package/dist/components/data/table/table.styles.js.map +1 -1
- package/dist/components/data/timeline/timeline.class.d.ts +3 -1
- package/dist/components/data/timeline/timeline.class.d.ts.map +1 -1
- package/dist/components/data/timeline/timeline.class.js +9 -3
- package/dist/components/data/timeline/timeline.class.js.map +1 -1
- package/dist/components/data/timeline/timeline.styles.d.ts.map +1 -1
- package/dist/components/data/timeline/timeline.styles.js +10 -5
- package/dist/components/data/timeline/timeline.styles.js.map +1 -1
- package/dist/components/data/tree/tree.class.d.ts +4 -0
- package/dist/components/data/tree/tree.class.d.ts.map +1 -1
- package/dist/components/data/tree/tree.class.js +18 -7
- package/dist/components/data/tree/tree.class.js.map +1 -1
- package/dist/components/data/word-cloud/word-cloud.class.d.ts +4 -0
- package/dist/components/data/word-cloud/word-cloud.class.d.ts.map +1 -1
- package/dist/components/data/word-cloud/word-cloud.class.js +7 -1
- package/dist/components/data/word-cloud/word-cloud.class.js.map +1 -1
- package/dist/components/forms/radio/radio-group.class.d.ts.map +1 -1
- package/dist/components/forms/radio/radio-group.class.js +6 -1
- package/dist/components/forms/radio/radio-group.class.js.map +1 -1
- 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/layout/command-palette/command-palette.class.d.ts +7 -0
- package/dist/components/layout/command-palette/command-palette.class.d.ts.map +1 -1
- package/dist/components/layout/command-palette/command-palette.class.js +45 -7
- package/dist/components/layout/command-palette/command-palette.class.js.map +1 -1
- package/dist/components/layout/dashboard-grid/dashboard-grid.class.d.ts +3 -0
- package/dist/components/layout/dashboard-grid/dashboard-grid.class.d.ts.map +1 -1
- package/dist/components/layout/dashboard-grid/dashboard-grid.class.js +21 -3
- package/dist/components/layout/dashboard-grid/dashboard-grid.class.js.map +1 -1
- package/dist/components/layout/segmented/segmented.class.d.ts +3 -1
- package/dist/components/layout/segmented/segmented.class.d.ts.map +1 -1
- package/dist/components/layout/segmented/segmented.class.js +11 -5
- package/dist/components/layout/segmented/segmented.class.js.map +1 -1
- package/dist/components/layout/segmented/segmented.styles.d.ts.map +1 -1
- package/dist/components/layout/segmented/segmented.styles.js +12 -6
- package/dist/components/layout/segmented/segmented.styles.js.map +1 -1
- package/dist/components/layout/stepper/stepper.class.d.ts +1 -0
- package/dist/components/layout/stepper/stepper.class.d.ts.map +1 -1
- package/dist/components/layout/stepper/stepper.class.js +10 -6
- package/dist/components/layout/stepper/stepper.class.js.map +1 -1
- package/dist/components/layout/stepper/stepper.styles.d.ts.map +1 -1
- package/dist/components/layout/stepper/stepper.styles.js +28 -12
- package/dist/components/layout/stepper/stepper.styles.js.map +1 -1
- package/dist/components/layout/tabs/tabs.class.d.ts +3 -1
- package/dist/components/layout/tabs/tabs.class.d.ts.map +1 -1
- package/dist/components/layout/tabs/tabs.class.js +10 -4
- package/dist/components/layout/tabs/tabs.class.js.map +1 -1
- package/dist/components/layout/tabs/tabs.styles.d.ts.map +1 -1
- package/dist/components/layout/tabs/tabs.styles.js +10 -5
- package/dist/components/layout/tabs/tabs.styles.js.map +1 -1
- package/dist/components/layout/virtual-list/virtual-list.class.d.ts +16 -0
- package/dist/components/layout/virtual-list/virtual-list.class.d.ts.map +1 -1
- package/dist/components/layout/virtual-list/virtual-list.class.js +26 -7
- package/dist/components/layout/virtual-list/virtual-list.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 +7 -0
- package/dist/components/layout/widget/widget.styles.js.map +1 -1
- package/dist/components/media/attachment-chip/attachment-chip.class.d.ts.map +1 -1
- package/dist/components/media/attachment-chip/attachment-chip.class.js +5 -1
- package/dist/components/media/attachment-chip/attachment-chip.class.js.map +1 -1
- package/dist/components/media/av-player/av-player.class.d.ts +8 -4
- package/dist/components/media/av-player/av-player.class.d.ts.map +1 -1
- package/dist/components/media/av-player/av-player.class.js +14 -8
- package/dist/components/media/av-player/av-player.class.js.map +1 -1
- package/dist/components/media/zoomable-frame/zoomable-frame.class.d.ts.map +1 -1
- package/dist/components/media/zoomable-frame/zoomable-frame.class.js +2 -2
- package/dist/components/media/zoomable-frame/zoomable-frame.class.js.map +1 -1
- package/dist/components/overlays/progress/progress-ring.class.d.ts.map +1 -1
- package/dist/components/overlays/progress/progress-ring.class.js +6 -0
- package/dist/components/overlays/progress/progress-ring.class.js.map +1 -1
- package/dist/components/overlays/rating/rating.styles.d.ts.map +1 -1
- package/dist/components/overlays/rating/rating.styles.js +5 -1
- package/dist/components/overlays/rating/rating.styles.js.map +1 -1
- package/dist/components/retrieval/citation-badge/citation-badge.styles.d.ts.map +1 -1
- package/dist/components/retrieval/citation-badge/citation-badge.styles.js +5 -0
- package/dist/components/retrieval/citation-badge/citation-badge.styles.js.map +1 -1
- package/dist/components/retrieval/embedding-explorer/embedding-explorer.class.d.ts +18 -1
- package/dist/components/retrieval/embedding-explorer/embedding-explorer.class.d.ts.map +1 -1
- package/dist/components/retrieval/embedding-explorer/embedding-explorer.class.js +30 -3
- package/dist/components/retrieval/embedding-explorer/embedding-explorer.class.js.map +1 -1
- package/dist/components/retrieval/embedding-explorer/embedding-explorer.styles.d.ts.map +1 -1
- package/dist/components/retrieval/embedding-explorer/embedding-explorer.styles.js +8 -1
- package/dist/components/retrieval/embedding-explorer/embedding-explorer.styles.js.map +1 -1
- package/dist/components/retrieval/entity-chip/entity-chip.styles.d.ts.map +1 -1
- package/dist/components/retrieval/entity-chip/entity-chip.styles.js +4 -0
- package/dist/components/retrieval/entity-chip/entity-chip.styles.js.map +1 -1
- package/dist/components/retrieval/graph/graph.class.d.ts.map +1 -1
- package/dist/components/retrieval/graph/graph.class.js +2 -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.map +1 -1
- package/dist/components/retrieval/knowledge-base-admin/knowledge-base-admin.class.js +2 -1
- package/dist/components/retrieval/knowledge-base-admin/knowledge-base-admin.class.js.map +1 -1
- package/dist/components/retrieval/memory-panel/memory-panel.class.d.ts +25 -0
- package/dist/components/retrieval/memory-panel/memory-panel.class.d.ts.map +1 -1
- package/dist/components/retrieval/memory-panel/memory-panel.class.js +71 -1
- package/dist/components/retrieval/memory-panel/memory-panel.class.js.map +1 -1
- package/dist/components/retrieval/node-palette/node-palette.class.d.ts.map +1 -1
- package/dist/components/retrieval/node-palette/node-palette.class.js +2 -1
- package/dist/components/retrieval/node-palette/node-palette.class.js.map +1 -1
- package/dist/components/retrieval/path-strip/path-strip.class.d.ts.map +1 -1
- package/dist/components/retrieval/path-strip/path-strip.class.js +2 -1
- package/dist/components/retrieval/path-strip/path-strip.class.js.map +1 -1
- package/dist/components/retrieval/retrieval-results/retrieval-results.class.d.ts.map +1 -1
- package/dist/components/retrieval/retrieval-results/retrieval-results.class.js +2 -5
- package/dist/components/retrieval/retrieval-results/retrieval-results.class.js.map +1 -1
- package/dist/components/retrieval/source-picker/source-picker.class.d.ts.map +1 -1
- package/dist/components/retrieval/source-picker/source-picker.class.js +2 -1
- package/dist/components/retrieval/source-picker/source-picker.class.js.map +1 -1
- package/dist/components/utility/export-button/export-button.class.d.ts.map +1 -1
- package/dist/components/utility/export-button/export-button.class.js +3 -2
- package/dist/components/utility/export-button/export-button.class.js.map +1 -1
- package/dist/components/utility/known-date/known-date.class.d.ts.map +1 -1
- package/dist/components/utility/known-date/known-date.class.js +2 -1
- package/dist/components/utility/known-date/known-date.class.js.map +1 -1
- package/dist/components/utility/mention-popover/mention-popover.class.d.ts.map +1 -1
- package/dist/components/utility/mention-popover/mention-popover.class.js +2 -1
- package/dist/components/utility/mention-popover/mention-popover.class.js.map +1 -1
- package/dist/components/utility/tour/tour.class.d.ts.map +1 -1
- package/dist/components/utility/tour/tour.class.js +5 -0
- package/dist/components/utility/tour/tour.class.js.map +1 -1
- package/dist/components/viewers/csv-viewer/csv-viewer.class.js +1 -1
- package/dist/components/viewers/csv-viewer/csv-viewer.class.js.map +1 -1
- package/dist/components/viewers/dataset-viewer/dataset-viewer.class.js +1 -1
- package/dist/components/viewers/dataset-viewer/dataset-viewer.class.js.map +1 -1
- package/dist/components/viewers/document-preview/document-preview.class.d.ts.map +1 -1
- package/dist/components/viewers/document-preview/document-preview.class.js +4 -1
- package/dist/components/viewers/document-preview/document-preview.class.js.map +1 -1
- package/dist/components/viewers/document-preview/document-preview.styles.js +2 -2
- package/dist/components/viewers/docx-viewer/docx-viewer.class.js +2 -2
- package/dist/components/viewers/docx-viewer/docx-viewer.class.js.map +1 -1
- package/dist/components/viewers/email-viewer/email-viewer.class.d.ts.map +1 -1
- package/dist/components/viewers/email-viewer/email-viewer.class.js +2 -1
- package/dist/components/viewers/email-viewer/email-viewer.class.js.map +1 -1
- package/dist/components/viewers/highlight-layer/highlight-layer.class.d.ts.map +1 -1
- package/dist/components/viewers/highlight-layer/highlight-layer.class.js +2 -1
- package/dist/components/viewers/highlight-layer/highlight-layer.class.js.map +1 -1
- package/dist/components/viewers/include/include.class.d.ts.map +1 -1
- package/dist/components/viewers/include/include.class.js +6 -1
- package/dist/components/viewers/include/include.class.js.map +1 -1
- package/dist/components/viewers/notebook-viewer/notebook-viewer.class.d.ts +16 -2
- package/dist/components/viewers/notebook-viewer/notebook-viewer.class.d.ts.map +1 -1
- package/dist/components/viewers/notebook-viewer/notebook-viewer.class.js +36 -12
- package/dist/components/viewers/notebook-viewer/notebook-viewer.class.js.map +1 -1
- package/dist/components/viewers/page-rail/page-rail.class.d.ts.map +1 -1
- package/dist/components/viewers/page-rail/page-rail.class.js +2 -1
- package/dist/components/viewers/page-rail/page-rail.class.js.map +1 -1
- package/dist/components/viewers/pdf-viewer/pdf-viewer.class.d.ts +3 -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 +5 -2
- package/dist/components/viewers/pdf-viewer/pdf-viewer.class.js.map +1 -1
- package/dist/components/viewers/pdf-viewer/pdf-viewer.styles.js +1 -1
- package/dist/components/viewers/pptx-viewer/pptx-viewer.class.d.ts.map +1 -1
- package/dist/components/viewers/pptx-viewer/pptx-viewer.class.js +6 -1
- package/dist/components/viewers/pptx-viewer/pptx-viewer.class.js.map +1 -1
- package/dist/components/viewers/spreadsheet-viewer/spreadsheet-viewer.class.js +1 -1
- package/dist/components/viewers/spreadsheet-viewer/spreadsheet-viewer.class.js.map +1 -1
- package/dist/components/viewers/xml-viewer/xml-viewer.class.d.ts +8 -2
- package/dist/components/viewers/xml-viewer/xml-viewer.class.d.ts.map +1 -1
- package/dist/components/viewers/xml-viewer/xml-viewer.class.js +19 -7
- package/dist/components/viewers/xml-viewer/xml-viewer.class.js.map +1 -1
- package/dist/internal/active-element.d.ts +42 -0
- package/dist/internal/active-element.d.ts.map +1 -0
- package/dist/internal/active-element.js +60 -0
- package/dist/internal/active-element.js.map +1 -0
- package/dist/internal/anchor-target.d.ts.map +1 -1
- package/dist/internal/anchor-target.js +7 -1
- package/dist/internal/anchor-target.js.map +1 -1
- package/dist/internal/lyra-element.d.ts +18 -6
- package/dist/internal/lyra-element.d.ts.map +1 -1
- package/dist/internal/lyra-element.js +35 -15
- package/dist/internal/lyra-element.js.map +1 -1
- package/dist/internal/overlay-manager.d.ts.map +1 -1
- package/dist/internal/overlay-manager.js +2 -8
- package/dist/internal/overlay-manager.js.map +1 -1
- package/dist/internal/scroll-overflow.d.ts +60 -0
- package/dist/internal/scroll-overflow.d.ts.map +1 -0
- package/dist/internal/scroll-overflow.js +90 -0
- package/dist/internal/scroll-overflow.js.map +1 -0
- package/dist/internal/text-quote.d.ts +15 -0
- package/dist/internal/text-quote.d.ts.map +1 -1
- package/dist/internal/text-quote.js +13 -6
- package/dist/internal/text-quote.js.map +1 -1
- package/dist/internal/text-viewer-target.d.ts +0 -6
- package/dist/internal/text-viewer-target.d.ts.map +1 -1
- package/dist/internal/text-viewer-target.js +68 -21
- package/dist/internal/text-viewer-target.js.map +1 -1
- package/dist/internal/tokens.styles.d.ts.map +1 -1
- package/dist/internal/tokens.styles.js +17 -0
- package/dist/internal/tokens.styles.js.map +1 -1
- package/llms/components/lr-chat-viewport.md +2 -2
- package/llms/components/lr-embedding-explorer.md +8 -3
- package/llms/components/lr-memory-panel.md +11 -2
- package/llms/components/lr-notebook-viewer.md +4 -1
- package/llms/components/lr-pdf-viewer.md +6 -3
- package/llms/components/lr-segmented.md +3 -2
- package/llms/components/lr-usage-badge.md +1 -1
- package/llms/tokens.md +2 -1
- package/llms-full.txt +32 -11
- package/package.json +40 -38
- package/vscode-css-data.json +16 -2
- package/vscode-html-data.json +10 -10
- package/web-types.json +21 -13
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,284 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 7.8.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- d699c7c: Stop letting a throwing `ShadowRoot.activeElement` getter escape a component. `ShadowRoot.activeElement`
|
|
8
|
+
is not universally safe to read: under happy-dom 20.11.1 — the DOM a large share of consumers get by
|
|
9
|
+
default from Vitest — that getter _itself_ throws `TypeError: Cannot read properties of undefined
|
|
10
|
+
(reading 'getRootNode')` whenever the document has no active element. Optional chaining was no
|
|
11
|
+
defence, because `root?.activeElement` only guards `root` being nullish and the throw happens
|
|
12
|
+
_inside_ the getter, after `?.` has already decided to proceed.
|
|
13
|
+
|
|
14
|
+
Because these reads live in `willUpdate()` and in keydown handlers, the symptom was not a failed
|
|
15
|
+
assertion but an _unhandled rejection_: one downstream suite reported 120 in a single run, all the
|
|
16
|
+
same stack, from an `<lr-segmented>` re-rendering after its items changed. The suite still passed
|
|
17
|
+
while the runner exited non-zero, and the stack pointed at library internals rather than anything
|
|
18
|
+
the consumer wrote.
|
|
19
|
+
|
|
20
|
+
Reported against `<lr-segmented>`, but a sweep found the same read at **every** focus-rehoming,
|
|
21
|
+
roving-tabindex and focus-restoration site in the library — 30 modules across 11 families, including
|
|
22
|
+
`<lr-tabs>`, `<lr-stepper>`, `<lr-table>`, `<lr-tree>`, `<lr-graph>`, `<lr-combobox>`'s siblings and
|
|
23
|
+
the shared overlay manager. All of them now read through a new internal helper that returns `null`
|
|
24
|
+
instead of throwing; `<lr-tree>`'s nested-shadow-root walk was the worst case, reading the raw
|
|
25
|
+
getter in its _loop condition_ where a guard on the assignment alone would not have helped.
|
|
26
|
+
|
|
27
|
+
Returning `null` is the honest answer: a DOM that cannot say what is focused is indistinguishable,
|
|
28
|
+
for these call sites, from one where nothing is — and every one of them already handles that as the
|
|
29
|
+
ordinary state, so the guard degrades to skipping focus restoration. Real browsers never take the
|
|
30
|
+
catch, so behavior there is unchanged.
|
|
31
|
+
|
|
32
|
+
- 21b1051: Declare `flag-peer.js` in `package.json#sideEffects`, so `<lr-flag>` still resolves images in a
|
|
33
|
+
production build. `sideEffects` is an explicit allowlist, and every entry in it was derived from a
|
|
34
|
+
`*.class.ts` file's sibling registration module. `flag-peer.ts` has no `*.class.ts` of its own, so
|
|
35
|
+
neither the generator nor the completeness check ever visited it and it shipped undeclared. It is a
|
|
36
|
+
side-effect-only module — a consumer writes a bare `import '.../flag-peer.js'` and reads no export
|
|
37
|
+
— so any bundler honoring `sideEffects` dropped it outright. `setFlagUrlResolver()` then never ran,
|
|
38
|
+
`loadFlagUrlResolver()` cached `Promise.resolve(null)`, and every `<lr-flag>` given a
|
|
39
|
+
`country`/`language` rendered the localized "flag unavailable" alert instead of an image. Silently:
|
|
40
|
+
that null-resolver path logs nothing, and dev servers don't tree-shake, so it only ever appeared in
|
|
41
|
+
a built artifact.
|
|
42
|
+
|
|
43
|
+
Both scripts now derive `*-peer.ts` and `*-register.ts` modules, plus the per-family
|
|
44
|
+
`components/<family>/index.ts` barrels, straight from the file tree rather than carrying them over
|
|
45
|
+
from the previous `package.json` — so a rename or a family move can't strand an entry again. The
|
|
46
|
+
completeness check fails on the missing `flag-peer` entries before the fix and passes after.
|
|
47
|
+
|
|
48
|
+
- 899543f: Centre content that a hit-area floor makes narrower than its own box, in `<lr-calendar>`,
|
|
49
|
+
`<lr-citation-badge>`, `<lr-entity-chip>`, `<lr-rating>` and the `<lr-chart>` / box-plot legend
|
|
50
|
+
items. These carry the same defect reported against `<lr-widget>`'s view toggle: a flex part with a
|
|
51
|
+
`min-inline-size: var(--lr-icon-button-size)` floor (a WCAG 2.5.8 tappable-size requirement, not a
|
|
52
|
+
layout intent) but no `justify-content`, so whenever the content is narrower than that floor the
|
|
53
|
+
default `justify-content: normal` — resolving to `flex-start` — dumps every pixel of slack on the
|
|
54
|
+
trailing side.
|
|
55
|
+
|
|
56
|
+
`<lr-calendar>` was the most visible: its month-nav buttons hold a single chevron glyph and rendered
|
|
57
|
+
**8.8px** off centre, sitting right next to a symmetric month title. `<lr-citation-badge>` left its
|
|
58
|
+
one- or two-digit number hugging the badge's leading edge, and `<lr-entity-chip>` did the same to a
|
|
59
|
+
short entity label inside an otherwise symmetric pill.
|
|
60
|
+
|
|
61
|
+
Adding `justify-content: center` only changes rendering in precisely the buggy case: once content
|
|
62
|
+
already fills or exceeds the floor there is no slack left to redistribute and the declaration is a
|
|
63
|
+
no-op, so every component whose content was already wide enough renders exactly as before. The chart
|
|
64
|
+
legends were checked for the overflow case specifically — long series names wrap rather than
|
|
65
|
+
overflow, and both legends are wrapping horizontal rows, so per-item centring cannot make a column
|
|
66
|
+
of items ragged.
|
|
67
|
+
|
|
68
|
+
The sweep also cleared roughly ten other parts carrying the same floor where `flex-start` is
|
|
69
|
+
correct — full-width header and list rows, whose content should start-align regardless.
|
|
70
|
+
|
|
71
|
+
Rendered-geometry regression tests (measuring the glyph's centre against its button's) cover
|
|
72
|
+
`<lr-widget>` and `<lr-calendar>`; both reproduce the offset without the fix, the widget one at the
|
|
73
|
+
same 4.5px the report cited.
|
|
74
|
+
|
|
75
|
+
- 8a67993: Stop driving mask alpha from `--lr-color-shadow` in `<lr-segmented>`, `<lr-tabs>`, `<lr-stepper>`,
|
|
76
|
+
`<lr-timeline>` and `<lr-document-preview>`. All five used `var(--lr-color-shadow)` for the
|
|
77
|
+
_opaque_ stops of a `mask-image` gradient — 22 references across 12 declarations. A mask reads
|
|
78
|
+
alpha only, but that token is a documented consumer theming input (`--lr-theme-color-shadow`) whose
|
|
79
|
+
job is coloring shadows: setting it to something translucent such as `rgb(0 0 0 / 0.25)`, entirely
|
|
80
|
+
reasonable for a shadow color, silently dropped the mask alpha across the _entire_ element rather
|
|
81
|
+
than just its edges. Every affected component then rendered uniformly washed out — indistinguishable
|
|
82
|
+
from a broken disabled state, with nothing pointing back at the shadow token as the cause. It worked
|
|
83
|
+
only because that token's default happens to be opaque black.
|
|
84
|
+
|
|
85
|
+
The opaque stops now use a new `--lr-mask-opaque`, declared in the internal tokens sheet.
|
|
86
|
+
Deliberately **not** themeable and deliberately not a second alias of the shadow token: "opaque" is
|
|
87
|
+
not a design decision a consumer tunes — a mask's opaque stop must be opaque by definition — so
|
|
88
|
+
giving it its own `--lr-theme-*` hook would just reintroduce the same footgun under a new name.
|
|
89
|
+
|
|
90
|
+
`<lr-document-preview>`'s determinate progress ring was the least obvious casualty: its mask punches
|
|
91
|
+
the ring's centre out, so a translucent shadow theme faded the whole ring rather than cutting a hole
|
|
92
|
+
in it.
|
|
93
|
+
|
|
94
|
+
Regression-tested in all five components by rendering under `--lr-theme-color-shadow: rgb(0 0 0 /
|
|
95
|
+
0.25)` and asserting the resolved computed mask, which reproduces `rgba(0, 0, 0, 0.25)` at the
|
|
96
|
+
opaque stops without the fix.
|
|
97
|
+
|
|
98
|
+
- 8a67993: Paint the horizontal edge fade only while the track actually overflows, in `<lr-segmented>`,
|
|
99
|
+
`<lr-tabs>`, `<lr-stepper>`, and `<lr-timeline>`. All four applied their `--lr-scroll-fade-size`
|
|
100
|
+
`mask-image` unconditionally, described in-code as an intentionally static, observer-free
|
|
101
|
+
affordance. That is only harmless when there _is_ overflow. On a track that fits, the fade is pure
|
|
102
|
+
damage: at the `2rem`-per-edge default a two-option `<lr-segmented>` (`Overall | Daily`) is
|
|
103
|
+
narrower than its own two fades, so both labels rendered half-transparent and the control read as
|
|
104
|
+
permanently disabled; a short `<lr-tabs>` row dimmed its first and last tab for no reason.
|
|
105
|
+
|
|
106
|
+
A new internal `ScrollOverflowController` measures `scrollWidth` vs `clientWidth` and toggles a
|
|
107
|
+
`data-scroll-overflow` attribute on the track (inside the shadow root — not consumer-visible DOM),
|
|
108
|
+
which now gates each mask rule. It re-measures from two sources, because they catch different
|
|
109
|
+
changes: a `ResizeObserver` on the track for container resizes, and the host's own update cycle for
|
|
110
|
+
content changes, which need not alter the track's border box at all. Overflowing tracks keep
|
|
111
|
+
exactly their previous rendering.
|
|
112
|
+
|
|
113
|
+
Note for anyone spying on `ResizeObserver` construction: `<lr-stepper>` now arms one of its own
|
|
114
|
+
regardless of the `orientationBreakpoint` feature.
|
|
115
|
+
|
|
116
|
+
- 899543f: Center the glyph in an icon-only `<lr-widget>` view toggle. `[part="view-toggle"]` set
|
|
117
|
+
`align-items: center` but no `justify-content`, unlike the sibling `collapse-button` /
|
|
118
|
+
`fullscreen-button` rules, which set both. `min-inline-size` floors the pill at the square
|
|
119
|
+
icon-button size, so a 13px glyph inside a 40px pill has slack that the default
|
|
120
|
+
`justify-content: normal` (→ `flex-start`) dumps entirely on the trailing side — measured 4.5px off
|
|
121
|
+
true center once the asymmetric inline padding is counted, and plainly visible as an off-center
|
|
122
|
+
icon in a round toggle. A labeled toggle was never affected: its content already fills a pill that
|
|
123
|
+
sizes to fit.
|
|
124
|
+
|
|
125
|
+
## 7.8.0
|
|
126
|
+
|
|
127
|
+
### Minor Changes
|
|
128
|
+
|
|
129
|
+
- 2c3934b: `<lr-embedding-explorer>`'s `height` property now actually sizes the plot. It was rendered as an
|
|
130
|
+
SVG `height` presentation attribute while the component's own stylesheet declared
|
|
131
|
+
`[part='plot'] { block-size: auto }` — and any stylesheet declaration outranks a presentation
|
|
132
|
+
attribute, so the property was inert at every value, including its documented `360px` default: the
|
|
133
|
+
plot always sized itself from the `viewBox` aspect ratio instead.
|
|
134
|
+
|
|
135
|
+
`height` is now published on the host as the new `--lr-embedding-explorer-height` custom property,
|
|
136
|
+
which `[part='plot']`'s `block-size` reads. Consequences worth knowing before upgrading:
|
|
137
|
+
|
|
138
|
+
- The default `height="360px"` now takes effect, so a plot wider than 640px is no longer as tall as
|
|
139
|
+
its allocation implies. Set `height="auto"` to keep the previous aspect-ratio-preserved sizing.
|
|
140
|
+
- A value the browser cannot parse as a `block-size` is dropped rather than applied, leaving the
|
|
141
|
+
`auto` behavior instead of collapsing the plot.
|
|
142
|
+
- A consumer's own `::part(plot) { block-size: ... }` rule still overrides `height`, and the
|
|
143
|
+
narrow-allocation `min-block-size` floor still raises it.
|
|
144
|
+
|
|
145
|
+
- 2c3934b: `<lr-memory-panel>` no longer strands keyboard focus when a row action opens its confirmation step.
|
|
146
|
+
Activating "Add to long-term memory", "Remove", or "Forget all" destroys the button that had focus,
|
|
147
|
+
and nothing moved focus into the `lr-confirm-bar` that replaces it, so focus fell back to `<body>`:
|
|
148
|
+
a keyboard user was dumped at the top of the page with nothing announced, and had to re-tab through
|
|
149
|
+
the whole document to reach the confirmation they had just opened. Focus now moves into the
|
|
150
|
+
confirmation (its Deny control -- the safe action -- falling back to the bar's status element), and
|
|
151
|
+
is handed back to the row (or to the "Forget all" control) once the decision resolves. Pressing
|
|
152
|
+
Escape while the confirmation holds focus now cancels it exactly like pressing Deny: no event is
|
|
153
|
+
emitted, focus returns the same way, and the key does not propagate past the panel.
|
|
154
|
+
- 2c3934b: `<lr-notebook-viewer>`: `searchNext()` and `searchPrevious()` now resolve `true` when the active
|
|
155
|
+
match moved and `false` when there was nothing to move to, matching the shared viewer search
|
|
156
|
+
contract (`LyraTextViewerTarget`) that every other searchable viewer already honors. They
|
|
157
|
+
previously returned nothing, so a find-in-page host driving several viewers polymorphically —
|
|
158
|
+
`if (await viewer.searchNext()) { ... }`, or awaiting the call before reading its own match
|
|
159
|
+
counter — got `undefined` from the notebook viewer alone and took its falsy "no more matches"
|
|
160
|
+
branch on every press, even mid-notebook.
|
|
161
|
+
|
|
162
|
+
This is an additive widening: the methods return a resolved promise instead of nothing, and callers
|
|
163
|
+
that ignored the return value are unaffected. `search()` already resolved the match count and is
|
|
164
|
+
unchanged.
|
|
165
|
+
|
|
166
|
+
- 80e0ef1: Repair four regressions left by earlier fixes:
|
|
167
|
+
|
|
168
|
+
- `<lr-radio-group>`: arrow-key selection now emits `input` and `change` alongside `lr-change`, as
|
|
169
|
+
click and Space already did and as native `<input type=radio>` does. The earlier fix for a
|
|
170
|
+
duplicate `lr-change` had left the keyboard path emitting only the group event, so a consumer
|
|
171
|
+
bound to the native-mirroring events silently missed every keyboard selection.
|
|
172
|
+
- `<lr-progress-ring>`: an unslotted ring is named from the localized fallback again. Its slot's
|
|
173
|
+
fallback content is the formatted percent, and `assignedNodes({flatten:true})` returns fallback
|
|
174
|
+
children when nothing is assigned, so the control had been naming itself "40%" and no
|
|
175
|
+
`registerLyraLocale()` override could reach it.
|
|
176
|
+
- `<lr-tour>`: opening a detached tour no longer locks scroll on the document or installs a global
|
|
177
|
+
Escape handler with nothing visible, matching the guard `<lr-dialog>` already had.
|
|
178
|
+
- `text-quote` anchors and highlights now case-fold with the component's locale in
|
|
179
|
+
`<lr-docx-viewer>`, `<lr-pdf-viewer>`, `<lr-markdown>` and `<lr-markdown-core>`. Under `lang="tr"`
|
|
180
|
+
a quote of "istanbul" silently failed to match "İSTANBUL" in these four while resolving correctly
|
|
181
|
+
in every viewer built on the shared text-viewer mixin.
|
|
182
|
+
|
|
183
|
+
- d8a026d: Give `<lr-table>`'s sorted column header an opaque default fill. The header is `position: sticky`
|
|
184
|
+
and the sorted-state rule defaulted to `transparent`, so in any height-capped table the body rows
|
|
185
|
+
scrolled visibly through the sorted column's header cell.
|
|
186
|
+
|
|
187
|
+
Give `<lr-pdf-viewer>`'s toolbar buttons a hover fill that differs from the toolbar behind them —
|
|
188
|
+
the rule existed but resolved to the toolbar's own opaque token, so hovering produced no visual
|
|
189
|
+
change at all. Retunable via the new `--lr-pdf-viewer-toolbar-button-hover-bg`.
|
|
190
|
+
|
|
191
|
+
Correct three `<lr-chat-message>` snippets in the authored reference that used `role="user"`. The
|
|
192
|
+
property reflects to `data-role`, so `role` was never observed: consumers copying those examples
|
|
193
|
+
got a message rendered as the default `assistant`, plus an invalid ARIA role token in the DOM.
|
|
194
|
+
|
|
195
|
+
- 2c3934b: `<lr-xml-viewer>`, `<lr-av-player>`, and `<lr-terminal>` now resolve a boolean from `searchNext()`
|
|
196
|
+
and `searchPrevious()`, matching the shared `LyraTextViewerTarget` search contract that
|
|
197
|
+
`search()` already followed on all three. They returned `void`, so a host driving several
|
|
198
|
+
searchable components through that one typed surface — `if (await viewer.searchNext())` — read
|
|
199
|
+
`undefined` and took the "nothing to move to" branch on every press.
|
|
200
|
+
|
|
201
|
+
### Patch Changes
|
|
202
|
+
|
|
203
|
+
- ed7f463: Stop retaining one live `Range` per search match in every text viewer. `<lr-archive-viewer>`,
|
|
204
|
+
`<lr-calendar-viewer>`, `<lr-contact-viewer>`, `<lr-email-viewer>`, `<lr-geojson-view>`,
|
|
205
|
+
`<lr-html-viewer>`, `<lr-include>`, and `<lr-pptx-viewer>` share a search mixin that held a live
|
|
206
|
+
`Range` for every match. The engine revalidates each retained `Range` on every DOM mutation in its
|
|
207
|
+
document, so a short query over a long document made every later mutation dramatically slower.
|
|
208
|
+
Matches are now kept as inert offsets, and only a bounded window around the active match is
|
|
209
|
+
materialized and painted. `matchCount`, `searchNext()`, and `searchPrevious()` still cover every
|
|
210
|
+
match.
|
|
211
|
+
- 2d149dc: `<lr-dashboard-grid>` no longer starts a cell drag when the pointer lands on a button, link, or
|
|
212
|
+
input inside the cell. The guard compared a slotted light-DOM control against a shadow-root wrapper
|
|
213
|
+
with `contains()`, which never crosses the slot boundary, so it could never fire and every control
|
|
214
|
+
click inside a draggable cell dragged the cell instead of activating the control.
|
|
215
|
+
|
|
216
|
+
`<lr-tree>` no longer throws on the first arrow key when a `<lr-tree-node>` is written declaratively
|
|
217
|
+
into its documented slot. `item` is `attribute: false`, so such a node has none until a host assigns
|
|
218
|
+
one, and the keyboard handler read `item.id` unguarded.
|
|
219
|
+
|
|
220
|
+
- 9083c9b: `<lr-document-library>` now sorts its Updated column chronologically. It ordered rows correctly by
|
|
221
|
+
timestamp itself, then handed the composed `<lr-table>` both those rows and a `sortKey` without
|
|
222
|
+
`sort-mode="server"`, so the table sorted them a second time in client mode — from the column's
|
|
223
|
+
rendered output, which is a _formatted_ date. The result was alphabetical by month name.
|
|
224
|
+
- 2c3934b: `<lr-env-list>` no longer paints its screen-reader-only "Value hidden" announcement as visible text
|
|
225
|
+
beside the mask. The template emitted `class="sr-only"` but the component never adopted the shared
|
|
226
|
+
stylesheet that defines that class, and no rule in `LyraElement.styles` supplies it.
|
|
227
|
+
- 2c3934b: Hide the anchor-announcement live region in `<lr-include>` and `<lr-pptx-viewer>`.
|
|
228
|
+
|
|
229
|
+
Both viewers render the shared anchor-target mixin's `role="status"` live region, which the mixin
|
|
230
|
+
marks up with `class="sr-only"`, but neither component's shadow stylesheet defined that class. The
|
|
231
|
+
region therefore laid out as an ordinary block, so the first anchor jump (or a failed one) painted
|
|
232
|
+
its localized announcement — "Jumped to highlighted passage." / "Passage not found in this
|
|
233
|
+
document." — as visible body text: beside the transcluded fragment for `<lr-include>`, and as an
|
|
234
|
+
extra row under the fidelity notice for `<lr-pptx-viewer>`. The announcement is now visually hidden
|
|
235
|
+
and screen-reader-only, matching every other viewer that adopts the same mixin.
|
|
236
|
+
|
|
237
|
+
- 0e2dbf3: `LyraElement`'s internal `scheduleAfterUpdate()` now coalesces per key instead of collapsing every
|
|
238
|
+
caller in an update cycle onto one slot. It tracked pending work in a single boolean, so the second
|
|
239
|
+
caller in a cycle early-returned and its callback was dropped and never replayed — a component that
|
|
240
|
+
scheduled two genuinely different pieces of after-update work silently lost one of them. Repeated
|
|
241
|
+
schedules under the same key still collapse to one run, so the load path keeps producing one fetch
|
|
242
|
+
per cycle rather than one per property write.
|
|
243
|
+
- 2cd5fb5: `<lr-artifact-panel>`, `<lr-commit-card>`, `<lr-heatmap>`, `<lr-query-builder>`, `<lr-tree>`, and
|
|
244
|
+
`<lr-word-cloud>` now format the numbers they interpolate into localized strings with the effective
|
|
245
|
+
locale. `localize()` substitutes values with a bare `String(value)` and does no number formatting,
|
|
246
|
+
so these rendered Western digits inside otherwise fully-translated sentences — under a locale using
|
|
247
|
+
its own numbering system (`ar-u-nu-arab`, `hi-u-nu-deva`, …) a single announcement mixed two digit
|
|
248
|
+
sets.
|
|
249
|
+
|
|
250
|
+
`<lr-attachment-chip>` also no longer falls back to an empty `src` on its thumbnail `<img>`; an
|
|
251
|
+
empty `src` is a valid URL that resolves against the document, so it would make the browser
|
|
252
|
+
re-request the page as an image.
|
|
253
|
+
|
|
254
|
+
- df4dac8: Reject non-integer index segments in anchor resolution. A range-only guard (`i < 0 || i >= len`)
|
|
255
|
+
does not reject `NaN` (both comparisons are false) or a fractional index, so `<lr-xml-viewer>`
|
|
256
|
+
reported `lr-anchor-result { found: true }` and announced "Jumped to…" for a `node-path` that
|
|
257
|
+
matched nothing, and a non-trailing bad segment threw — rejecting `scrollToAnchor()` so
|
|
258
|
+
`lr-anchor-result` never fired at all, and surfacing as an unhandled rejection on the declarative
|
|
259
|
+
`anchor` path. `<lr-notebook-viewer>` had the same false-positive shape, and
|
|
260
|
+
`<lr-virtual-list>.scrollToIndex(NaN)` silently scrolled the list to the top.
|
|
261
|
+
|
|
262
|
+
`DocumentAnchorTarget` now also degrades a throwing `applyAnchor()` to "not resolved" instead of
|
|
263
|
+
letting it reject, so the mixin keeps its documented promise of always reporting a definite result.
|
|
264
|
+
|
|
265
|
+
- c76ebf8: Fix `<lr-mcp-app>`'s remote `src` mode, which never loaded: binding `srcdoc` to an empty string
|
|
266
|
+
still produced a _present_ `srcdoc=""` attribute, and the HTML spec's iframe processing branches on
|
|
267
|
+
that attribute's presence, so the frame navigated to `about:srcdoc` and ignored `src` entirely
|
|
268
|
+
(while still firing `lr-mcp-ready`). The same empty-string-vs-absent shape is fixed in
|
|
269
|
+
`<lr-av-player>` (a bare player painted a "Failed to load the media" alert before a `src` was set)
|
|
270
|
+
and `<lr-zoomable-frame>` (a rejected `src` rendered a broken-image glyph).
|
|
271
|
+
|
|
272
|
+
Validate consumer-supplied CSS lengths before they reach an inline style declaration list, so a
|
|
273
|
+
crafted value can no longer inject extra declarations: `<lr-stack-trace>`'s `max-height`,
|
|
274
|
+
`<lr-code-block>`/`<lr-code-block-core>`'s `max-height`, `<lr-table>`'s column
|
|
275
|
+
`width`/`minWidth`/`maxWidth`, and `<lr-browser-frame>`'s agent-supplied ping coordinates (which are
|
|
276
|
+
now also clamped to the documented 0-100 range instead of serializing `NaN`).
|
|
277
|
+
|
|
278
|
+
- ed7f463: `<lr-virtual-list>` no longer rescans the whole `items` array on every scroll frame to resolve
|
|
279
|
+
`active-id`. The lookup is now memoized on the `items`/`active-id`/`keyFunction` identities, so
|
|
280
|
+
scrolling a large list stops calling `keyFunction` once per item per frame.
|
|
281
|
+
|
|
3
282
|
## 7.7.0
|
|
4
283
|
|
|
5
284
|
### Minor Changes
|