@aceshooting/lyra-ui 7.7.0 → 7.8.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.
Files changed (170) hide show
  1. package/CHANGELOG.md +157 -0
  2. package/custom-elements.json +5951 -4326
  3. package/dist/components/agent-tools/artifact-panel/artifact-panel.class.d.ts +4 -0
  4. package/dist/components/agent-tools/artifact-panel/artifact-panel.class.d.ts.map +1 -1
  5. package/dist/components/agent-tools/artifact-panel/artifact-panel.class.js +11 -4
  6. package/dist/components/agent-tools/artifact-panel/artifact-panel.class.js.map +1 -1
  7. package/dist/components/agent-tools/browser-frame/browser-frame.class.d.ts +4 -0
  8. package/dist/components/agent-tools/browser-frame/browser-frame.class.d.ts.map +1 -1
  9. package/dist/components/agent-tools/browser-frame/browser-frame.class.js +13 -4
  10. package/dist/components/agent-tools/browser-frame/browser-frame.class.js.map +1 -1
  11. package/dist/components/agent-tools/commit-card/commit-card.class.d.ts +4 -0
  12. package/dist/components/agent-tools/commit-card/commit-card.class.d.ts.map +1 -1
  13. package/dist/components/agent-tools/commit-card/commit-card.class.js +10 -3
  14. package/dist/components/agent-tools/commit-card/commit-card.class.js.map +1 -1
  15. package/dist/components/agent-tools/confirm-bar/confirm-bar.class.d.ts +6 -0
  16. package/dist/components/agent-tools/confirm-bar/confirm-bar.class.d.ts.map +1 -1
  17. package/dist/components/agent-tools/confirm-bar/confirm-bar.class.js +6 -0
  18. package/dist/components/agent-tools/confirm-bar/confirm-bar.class.js.map +1 -1
  19. package/dist/components/agent-tools/mcp-app/mcp-app.class.js +1 -1
  20. package/dist/components/agent-tools/mcp-app/mcp-app.class.js.map +1 -1
  21. package/dist/components/agent-tools/stack-trace/stack-trace.class.d.ts.map +1 -1
  22. package/dist/components/agent-tools/stack-trace/stack-trace.class.js +8 -1
  23. package/dist/components/agent-tools/stack-trace/stack-trace.class.js.map +1 -1
  24. package/dist/components/agent-tools/terminal/terminal.class.d.ts +8 -2
  25. package/dist/components/agent-tools/terminal/terminal.class.d.ts.map +1 -1
  26. package/dist/components/agent-tools/terminal/terminal.class.js +12 -4
  27. package/dist/components/agent-tools/terminal/terminal.class.js.map +1 -1
  28. package/dist/components/conversation/code-block/code-block-shared.d.ts.map +1 -1
  29. package/dist/components/conversation/code-block/code-block-shared.js +9 -1
  30. package/dist/components/conversation/code-block/code-block-shared.js.map +1 -1
  31. package/dist/components/conversation/markdown/markdown-core.class.d.ts.map +1 -1
  32. package/dist/components/conversation/markdown/markdown-core.class.js +2 -1
  33. package/dist/components/conversation/markdown/markdown-core.class.js.map +1 -1
  34. package/dist/components/conversation/markdown/markdown-shared.d.ts +6 -1
  35. package/dist/components/conversation/markdown/markdown-shared.d.ts.map +1 -1
  36. package/dist/components/conversation/markdown/markdown-shared.js +6 -3
  37. package/dist/components/conversation/markdown/markdown-shared.js.map +1 -1
  38. package/dist/components/conversation/markdown/markdown.class.d.ts.map +1 -1
  39. package/dist/components/conversation/markdown/markdown.class.js +2 -1
  40. package/dist/components/conversation/markdown/markdown.class.js.map +1 -1
  41. package/dist/components/data/document-library/document-library.class.d.ts +6 -0
  42. package/dist/components/data/document-library/document-library.class.d.ts.map +1 -1
  43. package/dist/components/data/document-library/document-library.class.js +7 -0
  44. package/dist/components/data/document-library/document-library.class.js.map +1 -1
  45. package/dist/components/data/env-list/env-list.class.d.ts.map +1 -1
  46. package/dist/components/data/env-list/env-list.class.js +2 -1
  47. package/dist/components/data/env-list/env-list.class.js.map +1 -1
  48. package/dist/components/data/heatmap/heatmap.class.d.ts +4 -0
  49. package/dist/components/data/heatmap/heatmap.class.d.ts.map +1 -1
  50. package/dist/components/data/heatmap/heatmap.class.js +9 -3
  51. package/dist/components/data/heatmap/heatmap.class.js.map +1 -1
  52. package/dist/components/data/query-builder/query-builder.class.d.ts +4 -0
  53. package/dist/components/data/query-builder/query-builder.class.d.ts.map +1 -1
  54. package/dist/components/data/query-builder/query-builder.class.js +8 -1
  55. package/dist/components/data/query-builder/query-builder.class.js.map +1 -1
  56. package/dist/components/data/table/table.class.d.ts.map +1 -1
  57. package/dist/components/data/table/table.class.js +8 -3
  58. package/dist/components/data/table/table.class.js.map +1 -1
  59. package/dist/components/data/table/table.styles.d.ts.map +1 -1
  60. package/dist/components/data/table/table.styles.js +4 -1
  61. package/dist/components/data/table/table.styles.js.map +1 -1
  62. package/dist/components/data/tree/tree.class.d.ts +4 -0
  63. package/dist/components/data/tree/tree.class.d.ts.map +1 -1
  64. package/dist/components/data/tree/tree.class.js +16 -4
  65. package/dist/components/data/tree/tree.class.js.map +1 -1
  66. package/dist/components/data/word-cloud/word-cloud.class.d.ts +4 -0
  67. package/dist/components/data/word-cloud/word-cloud.class.d.ts.map +1 -1
  68. package/dist/components/data/word-cloud/word-cloud.class.js +7 -1
  69. package/dist/components/data/word-cloud/word-cloud.class.js.map +1 -1
  70. package/dist/components/forms/radio/radio-group.class.d.ts.map +1 -1
  71. package/dist/components/forms/radio/radio-group.class.js +6 -1
  72. package/dist/components/forms/radio/radio-group.class.js.map +1 -1
  73. package/dist/components/forms/radio/radio.class.d.ts.map +1 -1
  74. package/dist/components/forms/radio/radio.class.js +5 -0
  75. package/dist/components/forms/radio/radio.class.js.map +1 -1
  76. package/dist/components/layout/command-palette/command-palette.class.d.ts +7 -0
  77. package/dist/components/layout/command-palette/command-palette.class.d.ts.map +1 -1
  78. package/dist/components/layout/command-palette/command-palette.class.js +45 -7
  79. package/dist/components/layout/command-palette/command-palette.class.js.map +1 -1
  80. package/dist/components/layout/dashboard-grid/dashboard-grid.class.d.ts +3 -0
  81. package/dist/components/layout/dashboard-grid/dashboard-grid.class.d.ts.map +1 -1
  82. package/dist/components/layout/dashboard-grid/dashboard-grid.class.js +19 -2
  83. package/dist/components/layout/dashboard-grid/dashboard-grid.class.js.map +1 -1
  84. package/dist/components/layout/virtual-list/virtual-list.class.d.ts +16 -0
  85. package/dist/components/layout/virtual-list/virtual-list.class.d.ts.map +1 -1
  86. package/dist/components/layout/virtual-list/virtual-list.class.js +26 -7
  87. package/dist/components/layout/virtual-list/virtual-list.class.js.map +1 -1
  88. package/dist/components/media/attachment-chip/attachment-chip.class.d.ts.map +1 -1
  89. package/dist/components/media/attachment-chip/attachment-chip.class.js +5 -1
  90. package/dist/components/media/attachment-chip/attachment-chip.class.js.map +1 -1
  91. package/dist/components/media/av-player/av-player.class.d.ts +8 -4
  92. package/dist/components/media/av-player/av-player.class.d.ts.map +1 -1
  93. package/dist/components/media/av-player/av-player.class.js +14 -8
  94. package/dist/components/media/av-player/av-player.class.js.map +1 -1
  95. package/dist/components/media/zoomable-frame/zoomable-frame.class.d.ts.map +1 -1
  96. package/dist/components/media/zoomable-frame/zoomable-frame.class.js +2 -2
  97. package/dist/components/media/zoomable-frame/zoomable-frame.class.js.map +1 -1
  98. package/dist/components/overlays/progress/progress-ring.class.d.ts.map +1 -1
  99. package/dist/components/overlays/progress/progress-ring.class.js +6 -0
  100. package/dist/components/overlays/progress/progress-ring.class.js.map +1 -1
  101. package/dist/components/retrieval/embedding-explorer/embedding-explorer.class.d.ts +18 -1
  102. package/dist/components/retrieval/embedding-explorer/embedding-explorer.class.d.ts.map +1 -1
  103. package/dist/components/retrieval/embedding-explorer/embedding-explorer.class.js +28 -2
  104. package/dist/components/retrieval/embedding-explorer/embedding-explorer.class.js.map +1 -1
  105. package/dist/components/retrieval/embedding-explorer/embedding-explorer.styles.d.ts.map +1 -1
  106. package/dist/components/retrieval/embedding-explorer/embedding-explorer.styles.js +8 -1
  107. package/dist/components/retrieval/embedding-explorer/embedding-explorer.styles.js.map +1 -1
  108. package/dist/components/retrieval/memory-panel/memory-panel.class.d.ts +25 -0
  109. package/dist/components/retrieval/memory-panel/memory-panel.class.d.ts.map +1 -1
  110. package/dist/components/retrieval/memory-panel/memory-panel.class.js +69 -0
  111. package/dist/components/retrieval/memory-panel/memory-panel.class.js.map +1 -1
  112. package/dist/components/utility/tour/tour.class.d.ts.map +1 -1
  113. package/dist/components/utility/tour/tour.class.js +5 -0
  114. package/dist/components/utility/tour/tour.class.js.map +1 -1
  115. package/dist/components/viewers/csv-viewer/csv-viewer.class.js +1 -1
  116. package/dist/components/viewers/csv-viewer/csv-viewer.class.js.map +1 -1
  117. package/dist/components/viewers/dataset-viewer/dataset-viewer.class.js +1 -1
  118. package/dist/components/viewers/dataset-viewer/dataset-viewer.class.js.map +1 -1
  119. package/dist/components/viewers/document-preview/document-preview.class.d.ts.map +1 -1
  120. package/dist/components/viewers/document-preview/document-preview.class.js +4 -1
  121. package/dist/components/viewers/document-preview/document-preview.class.js.map +1 -1
  122. package/dist/components/viewers/docx-viewer/docx-viewer.class.js +2 -2
  123. package/dist/components/viewers/docx-viewer/docx-viewer.class.js.map +1 -1
  124. package/dist/components/viewers/include/include.class.d.ts.map +1 -1
  125. package/dist/components/viewers/include/include.class.js +6 -1
  126. package/dist/components/viewers/include/include.class.js.map +1 -1
  127. package/dist/components/viewers/notebook-viewer/notebook-viewer.class.d.ts +16 -2
  128. package/dist/components/viewers/notebook-viewer/notebook-viewer.class.d.ts.map +1 -1
  129. package/dist/components/viewers/notebook-viewer/notebook-viewer.class.js +36 -12
  130. package/dist/components/viewers/notebook-viewer/notebook-viewer.class.js.map +1 -1
  131. package/dist/components/viewers/pdf-viewer/pdf-viewer.class.d.ts +3 -0
  132. package/dist/components/viewers/pdf-viewer/pdf-viewer.class.d.ts.map +1 -1
  133. package/dist/components/viewers/pdf-viewer/pdf-viewer.class.js +5 -2
  134. package/dist/components/viewers/pdf-viewer/pdf-viewer.class.js.map +1 -1
  135. package/dist/components/viewers/pdf-viewer/pdf-viewer.styles.js +1 -1
  136. package/dist/components/viewers/pptx-viewer/pptx-viewer.class.d.ts.map +1 -1
  137. package/dist/components/viewers/pptx-viewer/pptx-viewer.class.js +6 -1
  138. package/dist/components/viewers/pptx-viewer/pptx-viewer.class.js.map +1 -1
  139. package/dist/components/viewers/spreadsheet-viewer/spreadsheet-viewer.class.js +1 -1
  140. package/dist/components/viewers/spreadsheet-viewer/spreadsheet-viewer.class.js.map +1 -1
  141. package/dist/components/viewers/xml-viewer/xml-viewer.class.d.ts +8 -2
  142. package/dist/components/viewers/xml-viewer/xml-viewer.class.d.ts.map +1 -1
  143. package/dist/components/viewers/xml-viewer/xml-viewer.class.js +19 -7
  144. package/dist/components/viewers/xml-viewer/xml-viewer.class.js.map +1 -1
  145. package/dist/internal/anchor-target.d.ts.map +1 -1
  146. package/dist/internal/anchor-target.js +7 -1
  147. package/dist/internal/anchor-target.js.map +1 -1
  148. package/dist/internal/lyra-element.d.ts +18 -6
  149. package/dist/internal/lyra-element.d.ts.map +1 -1
  150. package/dist/internal/lyra-element.js +35 -15
  151. package/dist/internal/lyra-element.js.map +1 -1
  152. package/dist/internal/text-quote.d.ts +15 -0
  153. package/dist/internal/text-quote.d.ts.map +1 -1
  154. package/dist/internal/text-quote.js +13 -6
  155. package/dist/internal/text-quote.js.map +1 -1
  156. package/dist/internal/text-viewer-target.d.ts +0 -6
  157. package/dist/internal/text-viewer-target.d.ts.map +1 -1
  158. package/dist/internal/text-viewer-target.js +68 -21
  159. package/dist/internal/text-viewer-target.js.map +1 -1
  160. package/llms/components/lr-chat-viewport.md +2 -2
  161. package/llms/components/lr-embedding-explorer.md +8 -3
  162. package/llms/components/lr-memory-panel.md +11 -2
  163. package/llms/components/lr-notebook-viewer.md +4 -1
  164. package/llms/components/lr-pdf-viewer.md +6 -3
  165. package/llms/components/lr-usage-badge.md +1 -1
  166. package/llms-full.txt +29 -9
  167. package/package.json +2 -2
  168. package/vscode-css-data.json +15 -1
  169. package/vscode-html-data.json +7 -7
  170. package/web-types.json +17 -9
@@ -8,7 +8,7 @@ import {} from 'lit';
8
8
  import { state } from 'lit/decorators.js';
9
9
  import { LyraElement } from './lyra-element.js';
10
10
  import { DocumentAnchorTarget } from './anchor-target.js';
11
- import { findTextQuoteRanges, resolveTextQuote, scopeFromElement } from './text-quote.js';
11
+ import { findTextQuoteMatches, rangeFromTextQuoteMatch, resolveTextQuote, scopeFromElement, } from './text-quote.js';
12
12
  import { acquireHighlightHandle } from './text-highlights.js';
13
13
  /**
14
14
  * Shared anchor/search behavior for viewers whose loaded output is ordinary DOM text. The mixin
@@ -16,13 +16,22 @@ import { acquireHighlightHandle } from './text-highlights.js';
16
16
  * emitting selection/search events, and painting both host highlights and search matches through
17
17
  * the same Custom Highlight/`<mark>` fallback used by the richer document viewers.
18
18
  */
19
+ /** How many search matches are materialized into live Ranges at once. A live Range is revalidated
20
+ * by the engine on every DOM mutation in its document, so retaining one per match turned a
21
+ * one-letter query over a large document into a multi-thousand-fold mutation slowdown. The window
22
+ * only bounds *painting*: `matchCount` and next/previous still cover every match. */
23
+ const SEARCH_PAINT_WINDOW = 200;
19
24
  export function TextViewerTarget(Base) {
20
25
  class TextViewerTargetElement extends DocumentAnchorTarget(Base) {
21
26
  constructor() {
22
27
  super(...arguments);
23
28
  this.anchorKinds = ['text-quote', 'fragment'];
24
29
  this.searchQuery = '';
25
- this.searchRanges = [];
30
+ /** Matches as inert offsets, never as retained live `Range`s -- see `TextQuoteMatch`. The
31
+ * full set is kept so `matchCount` and next/previous stay exact; only `SEARCH_PAINT_WINDOW`
32
+ * of them are materialized into Ranges at a time. */
33
+ this.searchMatches = [];
34
+ this.paintedRangeCount = 0;
26
35
  this.searchActiveIndex = -1;
27
36
  this.selectionRoot = null;
28
37
  this.lastSearchText = '';
@@ -63,7 +72,7 @@ export function TextViewerTarget(Base) {
63
72
  if (this.searchQuery &&
64
73
  !changed.has('searchQuery') &&
65
74
  (searchText !== this.lastSearchText || localeChanged)) {
66
- // updateSearchRanges() assigns reactive searchRanges. Defer that assignment until this
75
+ // updateSearchRanges() assigns reactive searchMatches. Defer that assignment until this
67
76
  // update has completed; doing it directly from updated() schedules a second Lit update
68
77
  // from inside the first one and emits Lit's change-in-update warning. This queue is
69
78
  // deliberately separate from LyraElement's coalesced viewer-load queue: a locale and
@@ -112,29 +121,29 @@ export function TextViewerTarget(Base) {
112
121
  if (!(await this.waitForUpdateOrDisconnect()))
113
122
  return 0;
114
123
  this.updateSearchRanges();
115
- this.searchActiveIndex = this.searchRanges.length > 0 ? 0 : -1;
124
+ this.searchActiveIndex = this.searchMatches.length > 0 ? 0 : -1;
116
125
  this.paintRanges();
117
126
  this.emit('lr-search-change', {
118
127
  query: this.searchQuery,
119
- matchCount: this.searchRanges.length,
128
+ matchCount: this.searchMatches.length,
120
129
  activeIndex: this.searchActiveIndex,
121
130
  });
122
131
  await this.scrollSearchMatch();
123
- return this.searchRanges.length;
132
+ return this.searchMatches.length;
124
133
  }
125
134
  async searchNext() {
126
- if (!this.searchRanges.length)
135
+ if (!this.searchMatches.length)
127
136
  return false;
128
- this.searchActiveIndex = (this.searchActiveIndex + 1) % this.searchRanges.length;
137
+ this.searchActiveIndex = (this.searchActiveIndex + 1) % this.searchMatches.length;
129
138
  this.paintRanges();
130
139
  this.emitSearchChange();
131
140
  await this.scrollSearchMatch();
132
141
  return true;
133
142
  }
134
143
  async searchPrevious() {
135
- if (!this.searchRanges.length)
144
+ if (!this.searchMatches.length)
136
145
  return false;
137
- this.searchActiveIndex = (this.searchActiveIndex - 1 + this.searchRanges.length) % this.searchRanges.length;
146
+ this.searchActiveIndex = (this.searchActiveIndex - 1 + this.searchMatches.length) % this.searchMatches.length;
138
147
  this.paintRanges();
139
148
  this.emitSearchChange();
140
149
  await this.scrollSearchMatch();
@@ -144,7 +153,7 @@ export function TextViewerTarget(Base) {
144
153
  this.searchQuery = '';
145
154
  this.lastSearchText = '';
146
155
  this.lastSearchLocale = '';
147
- this.searchRanges = [];
156
+ this.searchMatches = [];
148
157
  this.searchActiveIndex = -1;
149
158
  this.paintRanges();
150
159
  this.emit('lr-search-change', { query: '', matchCount: 0, activeIndex: -1 });
@@ -154,8 +163,8 @@ export function TextViewerTarget(Base) {
154
163
  const scope = root ? scopeFromElement(root) : null;
155
164
  this.lastSearchText = scope?.text ?? '';
156
165
  this.lastSearchLocale = this.effectiveLocale;
157
- this.searchRanges = scope
158
- ? findTextQuoteRanges(scope, this.searchQuery, this.effectiveLocale)
166
+ this.searchMatches = scope
167
+ ? findTextQuoteMatches(scope, this.searchQuery, this.effectiveLocale)
159
168
  : [];
160
169
  }
161
170
  scheduleSearchRecompute() {
@@ -168,8 +177,8 @@ export function TextViewerTarget(Base) {
168
177
  return;
169
178
  const previousIndex = this.searchActiveIndex;
170
179
  this.updateSearchRanges();
171
- this.searchActiveIndex = this.searchRanges.length > 0
172
- ? Math.min(Math.max(previousIndex, 0), this.searchRanges.length - 1)
180
+ this.searchActiveIndex = this.searchMatches.length > 0
181
+ ? Math.min(Math.max(previousIndex, 0), this.searchMatches.length - 1)
173
182
  : -1;
174
183
  this.paintRanges();
175
184
  this.emitSearchChange();
@@ -178,12 +187,12 @@ export function TextViewerTarget(Base) {
178
187
  emitSearchChange() {
179
188
  this.emit('lr-search-change', {
180
189
  query: this.searchQuery,
181
- matchCount: this.searchRanges.length,
190
+ matchCount: this.searchMatches.length,
182
191
  activeIndex: this.searchActiveIndex,
183
192
  });
184
193
  }
185
194
  async scrollSearchMatch() {
186
- const range = this.searchRanges[this.searchActiveIndex];
195
+ const range = this.activeSearchRange();
187
196
  if (!range)
188
197
  return;
189
198
  const target = range.commonAncestorContainer.nodeType === Node.ELEMENT_NODE
@@ -215,6 +224,31 @@ export function TextViewerTarget(Base) {
215
224
  }
216
225
  return false;
217
226
  }
227
+ /** The slice of `searchMatches` painted right now: the active match plus the neighbours on
228
+ * either side, clamped to the array. Wrapping past either end re-centres the window. */
229
+ searchPaintWindow() {
230
+ if (this.searchMatches.length <= SEARCH_PAINT_WINDOW)
231
+ return this.searchMatches;
232
+ const centre = this.searchActiveIndex < 0 ? 0 : this.searchActiveIndex;
233
+ const half = SEARCH_PAINT_WINDOW >> 1;
234
+ const start = Math.max(0, Math.min(centre - half, this.searchMatches.length - SEARCH_PAINT_WINDOW));
235
+ return this.searchMatches.slice(start, start + SEARCH_PAINT_WINDOW);
236
+ }
237
+ /** Materializes just the active match. Separate from the painted window because the active
238
+ * Range is also what `scrollSearchMatch()` scrolls to. */
239
+ activeSearchRange() {
240
+ const match = this.searchMatches[this.searchActiveIndex];
241
+ if (!match)
242
+ return null;
243
+ const root = this.textContentRoot();
244
+ return root ? rangeFromTextQuoteMatch(scopeFromElement(root), match) : null;
245
+ }
246
+ /** How many live Ranges the last paint actually retained. `protected`, not public API: it
247
+ * exists so the shared search contract test can assert the window stays bounded, which is
248
+ * otherwise only observable through engine-internal Highlight registry state. */
249
+ searchPaintedRangeCount() {
250
+ return this.paintedRangeCount;
251
+ }
218
252
  paintRanges() {
219
253
  if (!this.isConnected) {
220
254
  this.searchHandle?.release();
@@ -241,15 +275,28 @@ export function TextViewerTarget(Base) {
241
275
  add(highlight.tone ?? 'accent', resolveTextQuote(scopeFromElement(root), highlight.anchor, this.effectiveLocale));
242
276
  }
243
277
  }
244
- for (const range of this.searchRanges)
245
- add('accent', range);
278
+ // Materialize only a bounded window around the active match. Everything outside it is off
279
+ // screen by construction (the viewport can't show 800 matches at once), and each Range
280
+ // handed to the Highlight API is retained live for as long as it is painted.
281
+ const scope = this.searchMatches.length > 0 ? scopeFromElement(root) : null;
282
+ let painted = 0;
283
+ if (scope) {
284
+ for (const match of this.searchPaintWindow()) {
285
+ const range = rangeFromTextQuoteMatch(scope, match);
286
+ if (range) {
287
+ add('accent', range);
288
+ painted++;
289
+ }
290
+ }
291
+ }
292
+ this.paintedRangeCount = painted;
246
293
  const tones = ['accent', 'success', 'warning', 'danger', 'neutral'];
247
294
  for (const tone of tones)
248
295
  this.searchHandle.setRanges(tone, rangesByTone.get(tone) ?? []);
249
296
  const active = this.highlights.find((highlight) => highlight.id === this.activeHighlightId);
250
297
  this.searchHandle.setActive(active?.anchor.kind === 'text-quote'
251
298
  ? resolveTextQuote(scopeFromElement(root), active.anchor, this.effectiveLocale)
252
- : this.searchRanges[this.searchActiveIndex] ?? null);
299
+ : this.activeSearchRange());
253
300
  }
254
301
  }
255
302
  __decorate([
@@ -257,7 +304,7 @@ export function TextViewerTarget(Base) {
257
304
  ], TextViewerTargetElement.prototype, "searchQuery", void 0);
258
305
  __decorate([
259
306
  state()
260
- ], TextViewerTargetElement.prototype, "searchRanges", void 0);
307
+ ], TextViewerTargetElement.prototype, "searchMatches", void 0);
261
308
  __decorate([
262
309
  state()
263
310
  ], TextViewerTargetElement.prototype, "searchActiveIndex", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"text-viewer-target.js","sourceRoot":"","sources":["../../src/internal/text-viewer-target.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"text-viewer-target.js","sourceRoot":"","sources":["../../src/internal/text-viewer-target.ts"],"names":[],"mappings":"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"}
@@ -74,8 +74,8 @@ inline style) still wins over the built-in one.
74
74
 
75
75
  ```html
76
76
  <lr-chat-viewport unread-start-index="12" @lr-follow-change=${(e) => console.log(e.detail.following)}>
77
- <lr-chat-message role="user">…</lr-chat-message>
78
- <lr-chat-message role="assistant" status="streaming">
77
+ <lr-chat-message data-role="user">…</lr-chat-message>
78
+ <lr-chat-message data-role="assistant" status="streaming">
79
79
  <lr-streaming-text streaming .content=${partial}></lr-streaming-text>
80
80
  </lr-chat-message>
81
81
  </lr-chat-viewport>
@@ -6,7 +6,7 @@
6
6
  - **Class** `LyraEmbeddingExplorer`, also available unregistered from `@aceshooting/lyra-ui/components/retrieval/embedding-explorer/embedding-explorer.class.js`
7
7
  - **Family** `components/retrieval/` — see `llms/index.md` for its siblings
8
8
  - **Optional peers** none
9
- - **Themeable via** 4 parts, 1 custom property — see this component's own `@csspart`/`@cssprop` list below
9
+ - **Themeable via** 4 parts, 2 custom properties — see this component's own `@csspart`/`@cssprop` list below
10
10
  - **Library-wide behavior** (events, form association, `locale`/`strings`, tokens, TS types): `llms/shared.md`
11
11
 
12
12
  ---
@@ -17,7 +17,9 @@ Dependency-free accessible 2D embedding projection viewer. Coordinates are proje
17
17
  the component only normalizes them into SVG, colors optional clusters, and emits selection events.
18
18
 
19
19
  **Properties:** `points: EmbeddingPoint[] = []` (attribute: false), where each point is `{ id, x,
20
- y, label?, sourceId?, cluster? }`; `selectedId: string = ''`; `height: string = '360px'`;
20
+ y, label?, sourceId?, cluster? }`; `selectedId: string = ''`; `height: string = '360px'` (any CSS length valid for `block-size`,
21
+ including `auto` for `viewBox`-derived aspect-ratio sizing; applied on the host as
22
+ `--lr-embedding-explorer-height`, and a value the browser cannot parse falls back to `auto`);
21
23
  `accessibleLabel: string | null = null` (attribute `aria-label`). Non-finite coordinates are
22
24
  omitted. Pointer and programmatic focus synchronize the single roving tab stop, and every point
23
25
  keeps at least a 24×24 CSS px pointer target at narrow allocations without enlarging its marker.
@@ -27,4 +29,7 @@ keeps at least a 24×24 CSS px pointer target at narrow allocations without enla
27
29
  **CSS parts:** `base`, `plot`, `point`, `empty`.
28
30
 
29
31
  **Themeable custom properties:** `--lr-embedding-explorer-selected-stroke` (default
30
- `var(--lr-color-brand)`) — stroke color of the selected point. Plus shared tokens.
32
+ `var(--lr-color-brand)`) — stroke color of the selected point; `--lr-embedding-explorer-height`
33
+ (default `360px`) — the `block-size` of `[part="plot"]`, set on the host from `height`. A consumer's
34
+ own `::part(plot) { block-size: ... }` rule still overrides it, and the narrow-allocation
35
+ `min-block-size` floor still raises it. Plus shared tokens.
@@ -6,7 +6,7 @@
6
6
  - **Class** `LyraMemoryPanel`, also available unregistered from `@aceshooting/lyra-ui/components/retrieval/memory-panel/memory-panel.class.js`
7
7
  - **Family** `components/retrieval/` — see `llms/index.md` for its siblings
8
8
  - **Optional peers** none
9
- - **Themeable via** 17 parts, 3 custom properties — see this component's own `@csspart`/`@cssprop` list below
9
+ - **Themeable via** 18 parts, 3 custom properties — see this component's own `@csspart`/`@cssprop` list below
10
10
  - **Library-wide behavior** (events, form association, `locale`/`strings`, tokens, TS types): `llms/shared.md`
11
11
 
12
12
  ---
@@ -53,7 +53,16 @@ heading text), `section-empty`, `list` (`role="list"`, omitted while that sectio
53
53
  somewhere to land after a confirmation resolves), `item-row`, `item-text`, `confidence` (carries
54
54
  `data-tone`; omitted when `confidence` is unset), `expand-toggle` / `item-body` (both omitted when
55
55
  `provenance` is unset; `item-body` is `hidden` while collapsed), `item-actions`, `add-button`,
56
- `remove-button`, `forget-all-button`.
56
+ `remove-button`, `forget-all-button`, `forget-all-confirm` (the `lr-confirm-bar` that replaces
57
+ `forget-all-button` while the bulk confirmation is pending).
58
+
59
+ **Keyboard/focus contract:** activating an action from the keyboard replaces that control with an
60
+ `lr-confirm-bar`, and focus moves into the bar (landing on Deny, the safe action) rather than
61
+ falling to `<body>` when the control unmounts. Cancelling — Escape or Deny — returns focus to the
62
+ control the confirmation replaced: the row's own action for a per-item confirmation, and
63
+ `forget-all-button` for the bulk one. This holds through a controlled `shortTerm`/`longTerm`
64
+ replacement that closes an open confirmation. Escape only stops propagating when it actually closed
65
+ a confirmation, so it never blocks an enclosing dialog for nothing.
57
66
 
58
67
  **Themeable custom properties:** `--lr-memory-panel-confidence-success-color` (default
59
68
  `var(--lr-color-success)`), `--lr-memory-panel-confidence-warning-color` (default
@@ -41,7 +41,10 @@ anchor-target contract).
41
41
  **Methods:** `search(query)` resolves the match count over cell sources and text outputs — a
42
42
  matching cell counts as one match (empty/whitespace query behaves like `clearSearch()`);
43
43
  `searchNext()`/`searchPrevious()` advance/step back through matches, scrolling to and marking the
44
- target cell with the persistent active-cell paint; `clearSearch()` clears the query and matches.
44
+ target cell with the persistent active-cell paint, and each resolves `true` once the active match
45
+ moved or `false` when there are none — the same `Promise<boolean>` every other searchable viewer
46
+ resolves, so one find-in-page host can drive them all; `clearSearch()` clears the query and
47
+ matches.
45
48
 
46
49
  **Events:** `lr-load` — `detail: { cellCount, language }`, fired once a notebook has been parsed
47
50
  and validated (`language` from `metadata.language_info.name`/`kernelspec.language`, else `''`).
@@ -6,7 +6,7 @@
6
6
  - **Class** `LyraPdfViewer`, also available unregistered from `@aceshooting/lyra-ui/components/viewers/pdf-viewer/pdf-viewer.class.js`
7
7
  - **Family** `components/viewers/` — see `llms/index.md` for its siblings
8
8
  - **Optional peers** `pdfjs-dist` — see `llms/peers.md`
9
- - **Themeable via** 17 parts, 1 custom property — see this component's own `@csspart`/`@cssprop` list below
9
+ - **Themeable via** 17 parts, 2 custom properties — see this component's own `@csspart`/`@cssprop` list below
10
10
  - **Library-wide behavior** (events, form association, `locale`/`strings`, tokens, TS types): `llms/shared.md`
11
11
 
12
12
  ---
@@ -89,8 +89,11 @@ matched against the element the selected text originates in:
89
89
 
90
90
  **Themeable custom properties:** `--lr-pdf-viewer-height` (default `var(--lr-size-24rem)`) — block
91
91
  size of the virtualized page list (`[part="pages"]`); also settable via the `maxHeight` property,
92
- which writes this token inline on `[part="base"]`. Everything below the page list is retuned
93
- through the exported parts above rather than through dedicated custom properties.
92
+ which writes this token inline on `[part="base"]`. `--lr-pdf-viewer-toolbar-button-hover-bg`
93
+ (default `var(--lr-color-surface)`) hover fill of the toolbar buttons; it defaults to the surface
94
+ fill rather than the toolbar's own `--lr-color-brand-quiet` tint precisely so the hover state is
95
+ visible against the toolbar behind it. Everything else below the page list is retuned through the
96
+ exported parts above rather than through dedicated custom properties.
94
97
 
95
98
  **Optional peer dependency:** install `pdfjs-dist` with `pnpm add pdfjs-dist`. The component registers
96
99
  a lazy `application/pdf` renderer with `<lr-document-viewer>` so the PDF library is loaded only when
@@ -37,7 +37,7 @@ tokens); the visible strip itself is prop-driven only.
37
37
  segment or the default slot has content), `tokens-in`, `tokens-out`, `cost`, `latency`, `tooltip`.
38
38
 
39
39
  ```html
40
- <lr-chat-message role="assistant" status="sent">
40
+ <lr-chat-message data-role="assistant" status="sent">
41
41
  <lr-usage-badge slot="badges" tokens-in="1204" tokens-out="386"
42
42
  cost-text="$0.012" latency-ms="2350"></lr-usage-badge>
43
43
  <lr-markdown .content=${answer}></lr-markdown>
package/llms-full.txt CHANGED
@@ -11986,8 +11986,11 @@ matched against the element the selected text originates in:
11986
11986
 
11987
11987
  **Themeable custom properties:** `--lr-pdf-viewer-height` (default `var(--lr-size-24rem)`) — block
11988
11988
  size of the virtualized page list (`[part="pages"]`); also settable via the `maxHeight` property,
11989
- which writes this token inline on `[part="base"]`. Everything below the page list is retuned
11990
- through the exported parts above rather than through dedicated custom properties.
11989
+ which writes this token inline on `[part="base"]`. `--lr-pdf-viewer-toolbar-button-hover-bg`
11990
+ (default `var(--lr-color-surface)`) hover fill of the toolbar buttons; it defaults to the surface
11991
+ fill rather than the toolbar's own `--lr-color-brand-quiet` tint precisely so the hover state is
11992
+ visible against the toolbar behind it. Everything else below the page list is retuned through the
11993
+ exported parts above rather than through dedicated custom properties.
11991
11994
 
11992
11995
  **Optional peer dependency:** install `pdfjs-dist` with `pnpm add pdfjs-dist`. The component registers
11993
11996
  a lazy `application/pdf` renderer with `<lr-document-viewer>` so the PDF library is loaded only when
@@ -12257,7 +12260,10 @@ anchor-target contract).
12257
12260
  **Methods:** `search(query)` resolves the match count over cell sources and text outputs — a
12258
12261
  matching cell counts as one match (empty/whitespace query behaves like `clearSearch()`);
12259
12262
  `searchNext()`/`searchPrevious()` advance/step back through matches, scrolling to and marking the
12260
- target cell with the persistent active-cell paint; `clearSearch()` clears the query and matches.
12263
+ target cell with the persistent active-cell paint, and each resolves `true` once the active match
12264
+ moved or `false` when there are none — the same `Promise<boolean>` every other searchable viewer
12265
+ resolves, so one find-in-page host can drive them all; `clearSearch()` clears the query and
12266
+ matches.
12261
12267
 
12262
12268
  **Events:** `lr-load` — `detail: { cellCount, language }`, fired once a notebook has been parsed
12263
12269
  and validated (`language` from `metadata.language_info.name`/`kernelspec.language`, else `''`).
@@ -14391,8 +14397,8 @@ inline style) still wins over the built-in one.
14391
14397
 
14392
14398
  ```html
14393
14399
  <lr-chat-viewport unread-start-index="12" @lr-follow-change=${(e) => console.log(e.detail.following)}>
14394
- <lr-chat-message role="user">…</lr-chat-message>
14395
- <lr-chat-message role="assistant" status="streaming">
14400
+ <lr-chat-message data-role="user">…</lr-chat-message>
14401
+ <lr-chat-message data-role="assistant" status="streaming">
14396
14402
  <lr-streaming-text streaming .content=${partial}></lr-streaming-text>
14397
14403
  </lr-chat-message>
14398
14404
  </lr-chat-viewport>
@@ -14663,7 +14669,7 @@ tokens); the visible strip itself is prop-driven only.
14663
14669
  segment or the default slot has content), `tokens-in`, `tokens-out`, `cost`, `latency`, `tooltip`.
14664
14670
 
14665
14671
  ```html
14666
- <lr-chat-message role="assistant" status="sent">
14672
+ <lr-chat-message data-role="assistant" status="sent">
14667
14673
  <lr-usage-badge slot="badges" tokens-in="1204" tokens-out="386"
14668
14674
  cost-text="$0.012" latency-ms="2350"></lr-usage-badge>
14669
14675
  <lr-markdown .content=${answer}></lr-markdown>
@@ -18807,7 +18813,16 @@ heading text), `section-empty`, `list` (`role="list"`, omitted while that sectio
18807
18813
  somewhere to land after a confirmation resolves), `item-row`, `item-text`, `confidence` (carries
18808
18814
  `data-tone`; omitted when `confidence` is unset), `expand-toggle` / `item-body` (both omitted when
18809
18815
  `provenance` is unset; `item-body` is `hidden` while collapsed), `item-actions`, `add-button`,
18810
- `remove-button`, `forget-all-button`.
18816
+ `remove-button`, `forget-all-button`, `forget-all-confirm` (the `lr-confirm-bar` that replaces
18817
+ `forget-all-button` while the bulk confirmation is pending).
18818
+
18819
+ **Keyboard/focus contract:** activating an action from the keyboard replaces that control with an
18820
+ `lr-confirm-bar`, and focus moves into the bar (landing on Deny, the safe action) rather than
18821
+ falling to `<body>` when the control unmounts. Cancelling — Escape or Deny — returns focus to the
18822
+ control the confirmation replaced: the row's own action for a per-item confirmation, and
18823
+ `forget-all-button` for the bulk one. This holds through a controlled `shortTerm`/`longTerm`
18824
+ replacement that closes an open confirmation. Escape only stops propagating when it actually closed
18825
+ a confirmation, so it never blocks an enclosing dialog for nothing.
18811
18826
 
18812
18827
  **Themeable custom properties:** `--lr-memory-panel-confidence-success-color` (default
18813
18828
  `var(--lr-color-success)`), `--lr-memory-panel-confidence-warning-color` (default
@@ -19074,7 +19089,9 @@ Dependency-free accessible 2D embedding projection viewer. Coordinates are proje
19074
19089
  the component only normalizes them into SVG, colors optional clusters, and emits selection events.
19075
19090
 
19076
19091
  **Properties:** `points: EmbeddingPoint[] = []` (attribute: false), where each point is `{ id, x,
19077
- y, label?, sourceId?, cluster? }`; `selectedId: string = ''`; `height: string = '360px'`;
19092
+ y, label?, sourceId?, cluster? }`; `selectedId: string = ''`; `height: string = '360px'` (any CSS length valid for `block-size`,
19093
+ including `auto` for `viewBox`-derived aspect-ratio sizing; applied on the host as
19094
+ `--lr-embedding-explorer-height`, and a value the browser cannot parse falls back to `auto`);
19078
19095
  `accessibleLabel: string | null = null` (attribute `aria-label`). Non-finite coordinates are
19079
19096
  omitted. Pointer and programmatic focus synchronize the single roving tab stop, and every point
19080
19097
  keeps at least a 24×24 CSS px pointer target at narrow allocations without enlarging its marker.
@@ -19084,7 +19101,10 @@ keeps at least a 24×24 CSS px pointer target at narrow allocations without enla
19084
19101
  **CSS parts:** `base`, `plot`, `point`, `empty`.
19085
19102
 
19086
19103
  **Themeable custom properties:** `--lr-embedding-explorer-selected-stroke` (default
19087
- `var(--lr-color-brand)`) — stroke color of the selected point. Plus shared tokens.
19104
+ `var(--lr-color-brand)`) — stroke color of the selected point; `--lr-embedding-explorer-height`
19105
+ (default `360px`) — the `block-size` of `[part="plot"]`, set on the host from `height`. A consumer's
19106
+ own `::part(plot) { block-size: ... }` rule still overrides it, and the narrow-allocation
19107
+ `min-block-size` floor still raises it. Plus shared tokens.
19088
19108
 
19089
19109
  ## `lr-knowledge-base-admin`
19090
19110
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aceshooting/lyra-ui",
3
- "version": "7.7.0",
3
+ "version": "7.8.0",
4
4
  "description": "Free, independent Lit web components: an open-source alternative to Shoelace and Web Awesome with accessible forms, dashboards, charts, and agent UI.",
5
5
  "keywords": [
6
6
  "web-components",
@@ -773,7 +773,7 @@
773
773
  "ical.js": "^2.2.1",
774
774
  "jszip": "^3.10.1",
775
775
  "katex": "^0.18.1",
776
- "libphonenumber-js": "^1.13.9",
776
+ "libphonenumber-js": "^1.13.10",
777
777
  "mammoth": "^1.12.0",
778
778
  "maplibre-gl": "^6.0.0",
779
779
  "marked": "^18.0.7",
@@ -1982,6 +1982,13 @@
1982
1982
  "value": "**`<lr-email-viewer>`** (default: `none`) — Maximum block size of `[part=\"body\"]` before it scrolls internally. The `maxHeight` property sets this token inline on `[part=\"base\"]`."
1983
1983
  }
1984
1984
  },
1985
+ {
1986
+ "name": "--lr-embedding-explorer-height",
1987
+ "description": {
1988
+ "kind": "markdown",
1989
+ "value": "**`<lr-embedding-explorer>`** (default: `360px`) — The plot's `block-size`. Set on the host from the `height` property, whose default supplies the `360px`; a value the browser cannot parse as a `block-size` is dropped, leaving the `viewBox`-derived aspect-ratio size. A consumer's own `::part(plot) { block-size: ... }` rule still overrides it, and the narrow-allocation `min-block-size` floor still raises it."
1990
+ }
1991
+ },
1985
1992
  {
1986
1993
  "name": "--lr-embedding-explorer-selected-stroke",
1987
1994
  "description": {
@@ -3435,7 +3442,14 @@
3435
3442
  "name": "--lr-pdf-viewer-height",
3436
3443
  "description": {
3437
3444
  "kind": "markdown",
3438
- "value": "**`<lr-pdf-viewer>`** (default: `var(--lr-size-24rem)`) — Block size of the virtualized page list. Also settable via the `max-height` property."
3445
+ "value": "**`<lr-pdf-viewer>`** (default: `var(--lr-size-24rem)`) — Block size of the virtualized page list."
3446
+ }
3447
+ },
3448
+ {
3449
+ "name": "--lr-pdf-viewer-toolbar-button-hover-bg",
3450
+ "description": {
3451
+ "kind": "markdown",
3452
+ "value": "**`<lr-pdf-viewer>`** (default: `var(--lr-color-surface)`) — Hover fill of the toolbar buttons. Defaults to the surface fill rather than the toolbar's own tint so the hover state is actually visible against it. Also settable via the `max-height` property."
3439
3453
  }
3440
3454
  },
3441
3455
  {