@aceshooting/lyra-ui 14.3.2 → 15.0.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 +116 -0
- package/custom-elements.json +1 -1
- package/design-tokens.json +1 -1
- package/dist/cli/migration-contract.json +1 -1
- package/dist/components/agent-tools/activity-feed/activity-feed.class.d.ts +4 -0
- package/dist/components/agent-tools/activity-feed/activity-feed.class.js +3 -3
- package/dist/components/agent-tools/approval-queue/approval-queue.class.js +3 -2
- package/dist/components/agent-tools/artifact-panel/artifact-panel.styles.js +1 -1
- package/dist/components/agent-tools/commit-card/commit-card.styles.js +1 -1
- package/dist/components/agent-tools/compare-panel/compare-panel.styles.js +1 -1
- package/dist/components/agent-tools/confirm-bar/confirm-bar.class.js +8 -3
- package/dist/components/agent-tools/eval-dataset/eval-dataset.class.d.ts +3 -1
- package/dist/components/agent-tools/eval-dataset/eval-dataset.class.js +10 -1
- package/dist/components/agent-tools/eval-dataset/eval-dataset.styles.js +1 -1
- package/dist/components/agent-tools/span-waterfall/span-waterfall.class.js +1 -1
- package/dist/components/agent-tools/subagent-panel/subagent-panel.class.d.ts +19 -1
- package/dist/components/agent-tools/subagent-panel/subagent-panel.class.js +4 -4
- package/dist/components/agent-tools/subagent-panel/subagent-panel.styles.js +1 -1
- package/dist/components/agent-tools/task-list/task-list.class.d.ts +5 -0
- package/dist/components/agent-tools/task-list/task-list.class.js +3 -3
- package/dist/components/agent-tools/terminal/terminal.class.d.ts +1 -1
- package/dist/components/agent-tools/terminal/terminal.styles.js +1 -1
- package/dist/components/agent-tools/test-results/test-results.class.js +1 -1
- package/dist/components/agent-tools/tool-param-form/tool-param-form.class.d.ts +10 -7
- package/dist/components/agent-tools/tool-param-form/tool-param-form.class.js +15 -14
- package/dist/components/agent-tools/tool-param-form/tool-param-form.d.ts +1 -1
- package/dist/components/agent-tools/tool-param-form/tool-param-form.js +1 -1
- package/dist/components/agent-tools/tool-param-form/tool-param-form.styles.js +1 -1
- package/dist/components/agent-tools/tool-result-dialog/tool-result-dialog.class.d.ts +5 -2
- package/dist/components/agent-tools/tool-result-dialog/tool-result-dialog.class.js +1 -1
- package/dist/components/agent-tools/tool-select-dialog/tool-select-dialog.class.d.ts +3 -1
- package/dist/components/agent-tools/tool-select-dialog/tool-select-dialog.class.js +9 -1
- package/dist/components/agent-tools/tool-select-dialog/tool-select-dialog.styles.js +1 -1
- package/dist/components/charts/chart/box-plot.class.d.ts +64 -4
- package/dist/components/charts/chart/box-plot.class.js +5 -5
- package/dist/components/charts/chart/chart-colors.d.ts +10 -0
- package/dist/components/charts/chart/chart-colors.js +1 -1
- package/dist/components/charts/chart/chart.class.d.ts +35 -10
- package/dist/components/charts/chart/chart.class.js +4 -4
- package/dist/components/charts/chart/lite-chart.class.d.ts +10 -2
- package/dist/components/charts/chart/lite-chart.styles.js +1 -1
- package/dist/components/conversation/markdown/markdown.class.d.ts +9 -1
- package/dist/components/conversation/markdown/markdown.class.js +1 -1
- package/dist/components/conversation/message-parts/message-parts.class.d.ts +18 -1
- package/dist/components/conversation/message-parts/message-parts.class.js +4 -4
- package/dist/components/conversation/model-select/model-select.class.d.ts +6 -2
- package/dist/components/conversation/model-select/model-select.class.js +3 -3
- package/dist/components/conversation/prompt-input/prompt-input.styles.js +1 -1
- package/dist/components/conversation/selection-toolbar/selection-toolbar.class.d.ts +5 -1
- package/dist/components/conversation/selection-toolbar/selection-toolbar.class.js +1 -1
- package/dist/components/data/calendar/calendar.class.js +2 -2
- package/dist/components/data/context-meter/context-meter.styles.js +1 -1
- package/dist/components/data/data-grid/data-grid-types.d.ts +8 -2
- package/dist/components/data/data-grid/data-grid.class.d.ts +16 -3
- package/dist/components/data/data-grid/data-grid.class.js +3 -2
- package/dist/components/data/env-list/env-list.styles.js +1 -1
- package/dist/components/data/flow-canvas/flow-canvas.class.d.ts +22 -2
- package/dist/components/data/flow-canvas/flow-canvas.class.js +1 -1
- package/dist/components/data/flow-minimap/flow-minimap.class.d.ts +12 -4
- package/dist/components/data/flow-minimap/flow-minimap.class.js +2 -2
- package/dist/components/data/flow-minimap/flow-minimap.styles.js +1 -1
- package/dist/components/data/graph-query-builder/graph-query-builder.class.d.ts +5 -1
- package/dist/components/data/graph-query-builder/graph-query-builder.class.js +1 -1
- package/dist/components/data/heatmap/heatmap.class.d.ts +12 -1
- package/dist/components/data/heatmap/heatmap.class.js +3 -3
- package/dist/components/data/heatmap/heatmap.styles.js +1 -1
- package/dist/components/forms/button/button.styles.js +1 -1
- package/dist/components/forms/code-editor/code-editor.class.js +1 -1
- package/dist/components/forms/combobox/combobox.class.js +1 -1
- package/dist/components/forms/combobox/combobox.styles.js +1 -1
- package/dist/components/forms/date-picker/date-input.class.js +1 -1
- package/dist/components/forms/date-picker/date-picker.class.d.ts +12 -1
- package/dist/components/forms/date-picker/date-picker.class.js +1 -1
- package/dist/components/forms/icon-button/icon-button.class.d.ts +27 -5
- package/dist/components/forms/icon-button/icon-button.class.js +7 -3
- package/dist/components/forms/input/input.styles.js +1 -1
- package/dist/components/forms/input/time-input.class.d.ts +13 -2
- package/dist/components/forms/input/time-input.class.js +1 -1
- package/dist/components/forms/otp-input/otp-input.class.d.ts +8 -1
- package/dist/components/forms/otp-input/otp-input.class.js +1 -1
- package/dist/components/forms/rubric-form/rubric-form.class.d.ts +1 -1
- package/dist/components/forms/rubric-form/rubric-form.class.js +1 -1
- package/dist/components/forms/select/select.class.d.ts +1 -1
- package/dist/components/forms/select/select.class.js +1 -1
- package/dist/components/forms/slider/slider.class.d.ts +4 -1
- package/dist/components/forms/slider/slider.class.js +1 -1
- package/dist/components/forms/textarea/textarea.class.d.ts +9 -4
- package/dist/components/forms/textarea/textarea.class.js +1 -1
- package/dist/components/forms/time-range/time-range.class.js +1 -1
- package/dist/components/layout/app-rail/app-rail.class.d.ts +7 -2
- package/dist/components/layout/app-rail/app-rail.class.js +1 -1
- package/dist/components/layout/card/card.class.js +2 -2
- package/dist/components/layout/card/card.styles.js +1 -1
- package/dist/components/layout/control-group/control-group.class.js +1 -1
- package/dist/components/layout/dashboard-grid/dashboard-grid.styles.js +1 -1
- package/dist/components/layout/details/details.styles.js +1 -1
- package/dist/components/layout/filter-bar/filter-bar.class.d.ts +13 -3
- package/dist/components/layout/filter-bar/filter-bar.class.js +1 -1
- package/dist/components/layout/menu/dropdown-item.class.d.ts +2 -0
- package/dist/components/layout/menu/menu-item.class.d.ts +28 -1
- package/dist/components/layout/menu/menu-item.class.js +45 -35
- package/dist/components/layout/menu/menu-item.styles.js +1 -1
- package/dist/components/layout/menu/menu.class.js +1 -1
- package/dist/components/layout/multi-split/multi-split.class.d.ts +12 -2
- package/dist/components/layout/multi-split/multi-split.class.js +1 -1
- package/dist/components/layout/page/page.class.js +2 -1
- package/dist/components/layout/page/page.styles.js +1 -1
- package/dist/components/layout/responsive-panel/responsive-panel.class.d.ts +6 -4
- package/dist/components/layout/responsive-panel/responsive-panel.class.js +2 -2
- package/dist/components/layout/responsive-panel/responsive-panel.styles.js +1 -1
- package/dist/components/layout/stepper/stepper.class.js +2 -2
- package/dist/components/layout/virtual-list/virtual-list.class.js +2 -2
- package/dist/components/layout/widget/widget.class.d.ts +12 -2
- package/dist/components/layout/widget/widget.class.js +2 -2
- package/dist/components/media/attachment-trigger/attachment-trigger.class.d.ts +1 -1
- package/dist/components/media/attachment-trigger/attachment-trigger.class.js +3 -3
- package/dist/components/media/file-icon/file-icon.class.d.ts +3 -1
- package/dist/components/media/file-icon/file-icon.class.js +1 -1
- package/dist/components/media/file-input/file-input.class.d.ts +1 -1
- package/dist/components/media/file-input/file-input.class.js +1 -1
- package/dist/components/media/flag/flag.styles.js +1 -1
- package/dist/components/media/image-comparer/image-comparer.class.d.ts +5 -5
- package/dist/components/media/image-comparer/image-comparer.class.js +1 -1
- package/dist/components/media/image-comparer/image-comparer.styles.js +1 -1
- package/dist/components/media/lightbox/lightbox.styles.js +1 -1
- package/dist/components/media/map/map.styles.js +1 -1
- package/dist/components/media/sequence-playback/sequence-playback.class.js +1 -1
- package/dist/components/media/video-playlist/video-playlist.class.js +1 -1
- package/dist/components/media/video-playlist/video-playlist.styles.js +1 -1
- package/dist/components/overlays/alert/alert.class.d.ts +6 -0
- package/dist/components/overlays/alert/alert.styles.js +1 -1
- package/dist/components/overlays/empty/empty.class.js +2 -2
- package/dist/components/overlays/kbd/kbd.styles.js +1 -1
- package/dist/components/overlays/progress/progress-ring.class.d.ts +4 -1
- package/dist/components/overlays/progress/progress.styles.js +1 -1
- package/dist/components/overlays/toast/toast.styles.js +1 -1
- package/dist/components/retrieval/graph/graph-canvas.js +1 -1
- package/dist/components/retrieval/graph/graph.class.d.ts +10 -3
- package/dist/components/retrieval/graph/graph.class.js +1 -1
- package/dist/components/retrieval/graph/graph.styles.js +1 -1
- package/dist/components/retrieval/ingestion-queue/ingestion-queue.class.d.ts +1 -1
- package/dist/components/retrieval/ingestion-queue/ingestion-queue.class.js +6 -6
- package/dist/components/retrieval/knowledge-base-admin/knowledge-base-admin.class.js +2 -2
- package/dist/components/retrieval/mind-map/mind-map.styles.js +1 -1
- package/dist/components/retrieval/neighbor-list/neighbor-list.class.d.ts +3 -3
- package/dist/components/retrieval/neighbor-list/neighbor-list.class.js +3 -3
- package/dist/components/retrieval/node-palette/node-palette.class.d.ts +7 -1
- package/dist/components/retrieval/node-palette/node-palette.class.js +23 -13
- package/dist/components/retrieval/node-palette/node-palette.styles.js +1 -1
- package/dist/components/retrieval/rag-eval-dashboard/rag-eval-dashboard.class.d.ts +4 -1
- package/dist/components/retrieval/rag-eval-dashboard/rag-eval-dashboard.class.js +1 -1
- package/dist/components/retrieval/retrieval-results/retrieval-results.class.js +1 -1
- package/dist/components/retrieval/retrieval-search/retrieval-search.class.js +4 -3
- package/dist/components/retrieval/retrieval-trace/retrieval-trace.class.js +1 -1
- package/dist/components/retrieval/source-list/source-list.class.d.ts +7 -1
- package/dist/components/retrieval/source-list/source-list.class.js +1 -1
- package/dist/components/utility/export-button/export-button.class.d.ts +14 -2
- package/dist/components/utility/export-button/export-button.class.js +3 -3
- package/dist/components/utility/export-button/export-button.styles.js +1 -1
- package/dist/components/utility/json-viewer/json-viewer.styles.js +1 -1
- package/dist/components/utility/known-date/known-date.class.js +1 -1
- package/dist/components/utility/mention-popover/mention-popover.class.d.ts +4 -2
- package/dist/components/utility/mention-popover/mention-popover.class.js +1 -1
- package/dist/components/viewers/csv-viewer/csv-viewer.class.d.ts +9 -1
- package/dist/components/viewers/csv-viewer/csv-viewer.class.js +4 -4
- package/dist/components/viewers/dataset-viewer/dataset-viewer.class.d.ts +1 -1
- package/dist/components/viewers/dataset-viewer/dataset-viewer.class.js +4 -4
- package/dist/components/viewers/document-compare/document-compare.class.d.ts +5 -0
- package/dist/components/viewers/document-compare/document-compare.class.js +9 -4
- package/dist/components/viewers/document-compare/document-compare.styles.js +1 -1
- package/dist/components/viewers/document-preview/document-preview.class.d.ts +9 -1
- package/dist/components/viewers/document-preview/document-preview.class.js +2 -1
- package/dist/components/viewers/notebook-viewer/notebook-viewer.class.d.ts +5 -0
- package/dist/components/viewers/notebook-viewer/notebook-viewer.class.js +1 -1
- package/dist/components/viewers/pdf-viewer/pdf-viewer.class.d.ts +5 -0
- package/dist/components/viewers/spreadsheet-viewer/spreadsheet-viewer.class.d.ts +1 -1
- package/dist/components/viewers/spreadsheet-viewer/spreadsheet-viewer.class.js +3 -3
- package/dist/components/viewers/xml-viewer/xml-viewer.styles.js +1 -1
- package/dist/custom-elements-jsx.d.ts +1 -1
- package/dist/events.d.ts +5 -4
- package/dist/internal/package-metadata.d.ts +1 -1
- package/dist/internal/package-metadata.js +1 -1
- package/dist/lyra.d.ts +1 -1
- package/dist/svelte.d.ts +1 -1
- package/dist/vue.d.ts +1 -1
- package/llms/components/lr-alert.md +11 -3
- package/llms/components/lr-box-plot.md +21 -4
- package/llms/components/lr-chart.md +13 -4
- package/llms/components/lr-code-block.md +5 -4
- package/llms/components/lr-data-grid.md +24 -10
- package/llms/components/lr-document-compare.md +5 -0
- package/llms/components/lr-dropdown-item.md +24 -0
- package/llms/components/lr-eval-dataset.md +5 -4
- package/llms/components/lr-export-button.md +10 -5
- package/llms/components/lr-filter-bar.md +4 -1
- package/llms/components/lr-flow-minimap.md +7 -1
- package/llms/components/lr-icon-button.md +6 -1
- package/llms/components/lr-lite-chart.md +2 -1
- package/llms/components/lr-markdown.md +2 -2
- package/llms/components/lr-menu-item.md +24 -0
- package/llms/components/lr-menu.md +24 -0
- package/llms/components/lr-message-parts.md +7 -0
- package/llms/components/lr-model-settings-panel.md +4 -1
- package/llms/components/lr-node-palette.md +5 -4
- package/llms/components/lr-pdf-viewer.md +7 -0
- package/llms/components/lr-responsive-panel.md +2 -2
- package/llms/components/lr-subagent-panel.md +17 -2
- package/llms/components/lr-thinking-panel.md +4 -0
- package/llms/components/lr-timeline-item.md +1 -1
- package/llms/components/lr-timeline.md +1 -1
- package/llms/components/lr-tool-select-dialog.md +4 -3
- package/llms/components/lr-virtual-list.md +11 -11
- package/llms/peers.md +1 -1
- package/llms-full.txt +205 -59
- package/package.json +7 -7
- package/vscode-css-data.json +1 -1
- package/vscode-html-data.json +1 -1
- package/web-types.json +1 -1
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
- **Release history** [CHANGELOG.md](../../CHANGELOG.md); family-wide breaking-change summaries: [llms-full.txt](../../llms-full.txt)
|
|
10
10
|
- **Deprecations** none
|
|
11
11
|
- **Optional peers** none
|
|
12
|
-
- **Themeable via** 5 parts,
|
|
12
|
+
- **Themeable via** 5 parts, 2 custom properties — see this component's own `@csspart`/`@cssprop` list below
|
|
13
13
|
- **Library-wide behavior** (events, form association, `locale`/`strings`, tokens, TS types): `llms/shared.md`
|
|
14
14
|
|
|
15
15
|
---
|
|
@@ -76,8 +76,16 @@ once. Toast-owned work instead settles and is discarded when its region disconne
|
|
|
76
76
|
subtree remains visible but is inert and aria-hidden.
|
|
77
77
|
|
|
78
78
|
**CSS parts:** `base`, `icon`, `message`, and `close-button` / `close-button__base` on the same
|
|
79
|
-
native close button. The pinned surface exposes no
|
|
80
|
-
|
|
79
|
+
native close button. The pinned surface exposes no custom states, form association, native-event
|
|
80
|
+
relays, or delegated native methods.
|
|
81
|
+
|
|
82
|
+
**Themeable custom properties:** the close button's two state hooks are
|
|
83
|
+
`--lr-alert-close-hover-bg` (its `:hover` surface; default `color-mix(in oklab, transparent,
|
|
84
|
+
var(--lr-color-mix-partner) var(--lr-color-mix-hover))`) and `--lr-alert-close-active-bg` (its
|
|
85
|
+
`:active` surface, scoped independently from the hover property; default `color-mix(in oklab,
|
|
86
|
+
transparent, var(--lr-color-mix-partner) var(--lr-color-mix-active))`). Each is an inline fallback
|
|
87
|
+
at the relevant state, so setting one on the alert or an ancestor rethemes only that close-button
|
|
88
|
+
state.
|
|
81
89
|
|
|
82
90
|
By default the light-DOM `<lr-alert>` host owns `role="alert"`, so initially-open/static alerts and
|
|
83
91
|
alerts shown later expose one assertive, content-derived semantic surface without duplicating it in
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
- **Release history** [CHANGELOG.md](../../CHANGELOG.md); family-wide breaking-change summaries: [llms-full.txt](../../llms-full.txt)
|
|
10
10
|
- **Deprecations** none
|
|
11
11
|
- **Optional peers** `@sgratzl/chartjs-chart-boxplot`, `chart.js` — see `llms/peers.md`
|
|
12
|
-
- **Themeable via** 12 parts,
|
|
12
|
+
- **Themeable via** 12 parts, 32 custom properties — see this component's own `@csspart`/`@cssprop` list below
|
|
13
13
|
- **Library-wide behavior** (events, form association, `locale`/`strings`, tokens, TS types): `llms/shared.md`
|
|
14
14
|
|
|
15
15
|
---
|
|
@@ -117,7 +117,23 @@ bounded-alternative sampling notice)
|
|
|
117
117
|
concrete semantic fallbacks rather than retaining a prior canvas paint), but declared in its own stylesheet, not a
|
|
118
118
|
re-export: `lr-box-plot` has no `zoom`, so no `reset-zoom-button` chrome exists here. A `BoxPlotSeries`
|
|
119
119
|
that sets no `color` is assigned an entry from the same `--lr-color-chart-1..8` ramp `lr-chart` uses,
|
|
120
|
-
so `--lr-theme-color-chart-*` retheming reaches box plots too.
|
|
120
|
+
so `--lr-theme-color-chart-*` retheming reaches box plots too. That resolved color then layers two
|
|
121
|
+
further per-series override tokens for the canvas paint, each wrapping modulo 8 like the underlying
|
|
122
|
+
ramp and mirroring `lr-chart`'s own `--border-color-N`/`--fill-color-N` palette-override mechanism
|
|
123
|
+
under a box-plot-namespaced name, since box-plot has no raw `config` passthrough to piggyback on:
|
|
124
|
+
`--lr-box-plot-border-color-1` through `--lr-box-plot-border-color-8` (defaulting respectively to
|
|
125
|
+
`--lr-color-chart-1` through `--lr-color-chart-8`) set the box-outline stroke color, and
|
|
126
|
+
`--lr-box-plot-fill-color-1` through `--lr-box-plot-fill-color-8` (the same eight defaults) set the
|
|
127
|
+
box fill and its legend swatch. In full, the stroke tokens are `--lr-box-plot-border-color-1`,
|
|
128
|
+
`--lr-box-plot-border-color-2`, `--lr-box-plot-border-color-3`, `--lr-box-plot-border-color-4`,
|
|
129
|
+
`--lr-box-plot-border-color-5`, `--lr-box-plot-border-color-6`, `--lr-box-plot-border-color-7` and
|
|
130
|
+
`--lr-box-plot-border-color-8`; the fill tokens are `--lr-box-plot-fill-color-1`,
|
|
131
|
+
`--lr-box-plot-fill-color-2`, `--lr-box-plot-fill-color-3`, `--lr-box-plot-fill-color-4`,
|
|
132
|
+
`--lr-box-plot-fill-color-5`, `--lr-box-plot-fill-color-6`, `--lr-box-plot-fill-color-7` and
|
|
133
|
+
`--lr-box-plot-fill-color-8`. `--lr-box-plot-border-width` (default `var(--lr-border-width-thin)`)
|
|
134
|
+
sets the canvas box-outline stroke width in pixels — the same override mechanism as `lr-chart`'s
|
|
135
|
+
`--border-width`. `--lr-box-plot-item-radius` (default `0`) sets the radius, in pixels, of the
|
|
136
|
+
individual raw-sample dots drawn alongside each box; `0` disables them. `--lr-chart-pattern-step`
|
|
121
137
|
(default `var(--lr-space-2xs)`) sizes the forced-colors legend texture and
|
|
122
138
|
`--lr-chart-canvas-hover-outline-width` (default `var(--lr-border-width-thin)`) sizes the `canvas`
|
|
123
139
|
hover outline; `--lr-chart-canvas-hover-outline-color` (default `var(--lr-chart-grid-color)`) sets
|
|
@@ -148,8 +164,9 @@ loads are memoized per page.
|
|
|
148
164
|
```
|
|
149
165
|
|
|
150
166
|
**Known gotchas:**
|
|
151
|
-
- no raw `config` passthrough — limited to the properties above
|
|
152
|
-
controller's
|
|
167
|
+
- no raw `config` passthrough — limited to the properties above, plus the `--lr-box-plot-border-width`
|
|
168
|
+
and `--lr-box-plot-item-radius` CSS hooks; the underlying controller's other options
|
|
169
|
+
(`outlierRadius`, `coef`) remain unreachable.
|
|
153
170
|
- Chart.js receives `effectiveLocale`; generated numeric summaries use it, the y axis moves to
|
|
154
171
|
logical start in RTL, and live ancestor `lang`/`dir` changes redraw the already-mounted canvas
|
|
155
172
|
without requiring another box property write. Canvas tooltip/axis colors are token-driven, and
|
|
@@ -93,7 +93,8 @@ structured points retain their y-value formatting.
|
|
|
93
93
|
- `datasets: readonly LyraChartSeries[] = []` (attribute: false) — `LyraChartSeries { readonly
|
|
94
94
|
label: string; readonly data?: readonly (number|null)[]; readonly points?: readonly
|
|
95
95
|
LyraChartPoint[]; readonly color?: string|readonly string[]; ... }`. The deprecated `Series` and
|
|
96
|
-
`ChartPoint` names
|
|
96
|
+
`ChartPoint` names were removed in 9.0.0 — import `LyraChartSeries`/`LyraChartPoint` instead.
|
|
97
|
+
`LyraChartPoint { readonly x: number; readonly
|
|
97
98
|
y: number; readonly r?: number; readonly label?: string }`: `r` is the bubble
|
|
98
99
|
radius, and the optional per-point `label` is retained by events, CSV export, keyboard
|
|
99
100
|
announcements, generated summaries, and the accessible table. Point wording is localized as
|
|
@@ -127,9 +128,11 @@ structured points retain their y-value formatting.
|
|
|
127
128
|
would clip. Its pressed state follows `hiddenDatasets` whenever that controlled snapshot is
|
|
128
129
|
defined, otherwise the effective dataset's declarative `hidden` value before Chart.js is ready
|
|
129
130
|
and across chart type/plugin rebuilds.
|
|
130
|
-
- `legendMode: LyraChartLegendMode = '
|
|
131
|
-
|
|
132
|
-
|
|
131
|
+
- `legendMode: LyraChartLegendMode = 'auto'` (attribute `legend-mode`) — `auto` resolves to `datum`
|
|
132
|
+
on pie, doughnut and polar-area charts and to `dataset` everywhere else, so a single-dataset slice
|
|
133
|
+
chart labels every slice rather than emitting one aggregate row that identifies only the first
|
|
134
|
+
colour. `dataset` forces dataset toggles even on a slice chart. `datum` shows one category toggle
|
|
135
|
+
per slice in pie, doughnut and polar-area charts; other types retain dataset legends. Category names use source labels with localized
|
|
133
136
|
numbered fallbacks. Colors and values come from the first dataset. With multiple datasets/rings,
|
|
134
137
|
a category toggle hides that source index in every ring, matching Chart.js category visibility.
|
|
135
138
|
- `hiddenDatums: readonly number[] = []` (attribute: false) — clone-owned hidden source category
|
|
@@ -304,6 +307,12 @@ token layer yet, the helper reads the `--lr-theme-color-chart-N` inputs directly
|
|
|
304
307
|
a fresh eight-color array each call (safe to mutate) and let chart-adjacent UI, KPI tiles, or the
|
|
305
308
|
`Series` array itself come from one source of truth.
|
|
306
309
|
|
|
310
|
+
The same module also exports `ChartThemeColors`, the resolved chrome colours a chart paints around
|
|
311
|
+
its series. Every field is an already-resolved CSS colour string, because canvas silently ignores a
|
|
312
|
+
raw `var(--lr-…)` string and would paint nothing; `<lr-box-plot>` consumes the same shape, so a
|
|
313
|
+
consumer drawing its own canvas overlay beside a chart can match the grid, tick, legend and tooltip
|
|
314
|
+
chrome exactly rather than re-deriving it.
|
|
315
|
+
|
|
307
316
|
Import the standalone form from `.../chart/chart-colors.js`, not from `.../chart/chart.js`: the
|
|
308
317
|
latter is `<lr-chart>`'s registration entry, so it defines the element (and pulls in `<lr-skeleton>`)
|
|
309
318
|
as a side effect. `chart-colors.js` is side-effect-free and carries nothing but the palette helpers,
|
|
@@ -79,10 +79,11 @@ highlighted markup.
|
|
|
79
79
|
to the default dynamic-import path unchanged. For a TypeScript annotation, use
|
|
80
80
|
`import type { ShikiLanguageInput } from '@aceshooting/lyra-ui/components/conversation/code-block/code-block.js'`;
|
|
81
81
|
the type-only granular import emits no registration side effect.
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
82
|
+
|
|
83
|
+
**Methods:** `scrollToAnchor(target)` — resolves a `line-range` anchor (or a `highlights` id string
|
|
84
|
+
resolving to one) by scrolling its start line into view within `[part="body"]`; resolves `false`
|
|
85
|
+
when the anchor isn't a `line-range`, the id isn't found, or the start line is out of bounds.
|
|
86
|
+
`refreshTheme(): void` re-reads the resolved theme for syntax highlighting.
|
|
86
87
|
|
|
87
88
|
**Events:** `lr-copy` (frozen `detail: { ok: true, text }` — fires only after the raw `code` value
|
|
88
89
|
was written successfully), `lr-error` (`detail: null` — generic notification when clipboard writing
|
|
@@ -94,6 +94,12 @@ ARIA values as page-local positions rather than as the dataset-wide total.
|
|
|
94
94
|
The mirrored `selectedKeys` spelling remains a compatibility alias for this same state.
|
|
95
95
|
- `selectedRows: readonly Row[]` (writable, JS-only) — assigning rows that belong to the current source
|
|
96
96
|
maps them to `selectedRowKeys`; detached rows are ignored and single-selection mode keeps the first.
|
|
97
|
+
- `selectionMode: 'none' | 'single' | 'multiple'` (`selection-mode`) — alias of `selectable` using
|
|
98
|
+
`<lr-table>`'s `selectionMode`/`selection-mode` spelling for the same row-selection concept, so a
|
|
99
|
+
consumer migrating between the two grid components doesn't need to remember two names.
|
|
100
|
+
`selectable` remains canonical (mirrored from `wa-data-grid`); this alias reads and writes
|
|
101
|
+
`selectable` directly, so there is no separate value to fall out of sync, and the bare `''`
|
|
102
|
+
shorthand for `selectable`'s own `multiple` normalizes to `'multiple'` when read back through it.
|
|
97
103
|
- `server: boolean = false` (`server`, reflected).
|
|
98
104
|
- `size: 'xs' | 's' | 'm' | 'l' | 'xl' | 'small' | 'medium' | 'large' = 'm'` (`size`, reflected).
|
|
99
105
|
- `sort: readonly Array<{ readonly id: string; readonly desc: boolean }> = []` (JS-only).
|
|
@@ -106,11 +112,15 @@ ARIA values as page-local positions rather than as the dataset-wide total.
|
|
|
106
112
|
- `withSearch: boolean = false` (`with-search`, reflected).
|
|
107
113
|
|
|
108
114
|
`DataGridColumn<Row>` accepts `id`, dot-path `field`, `label`, `align`, numeric `width` /
|
|
109
|
-
`minWidth` / `maxWidth`, `flex`, `formatter(value, row)`, computed `value(row)`,
|
|
110
|
-
`sortFn`, `comparator`, `sortDescFirst`, `sortUndefined`, `searchable`, `filterable`,
|
|
111
|
-
`filterFn`, `hidden`, `hideable`, `resizable`, `movable`, `pinnable`, `pinned`,
|
|
112
|
-
`aggregation`, and `aggregatedFormatter`. A column with neither `field` nor `value` is an
|
|
113
|
-
column: its formatter receives `undefined`, and it is not sorted or searched by default.
|
|
115
|
+
`minWidth` / `maxWidth`, `flex`, `formatter(value, row)`, `cellTitle(row)`, computed `value(row)`,
|
|
116
|
+
`sortable`, `sortFn`, `comparator`, `sortDescFirst`, `sortUndefined`, `searchable`, `filterable`,
|
|
117
|
+
`filterType`, `filterFn`, `hidden`, `hideable`, `resizable`, `movable`, `pinnable`, `pinned`,
|
|
118
|
+
`footer`, `aggregation`, and `aggregatedFormatter`. A column with neither `field` nor `value` is an
|
|
119
|
+
action column: its formatter receives `undefined`, and it is not sorted or searched by default.
|
|
120
|
+
`cellTitle(row) => string | undefined` renders as the generated cell's native `title`, symmetrical
|
|
121
|
+
with `<lr-table>`'s `columns[].cellTitle` — e.g. the untruncated text behind an ellipsized cell, or
|
|
122
|
+
a formatted timestamp behind a relative one. Returning `undefined` or `''` omits the `title`
|
|
123
|
+
attribute entirely rather than rendering `title=""`, which would suppress an ancestor's own tooltip.
|
|
114
124
|
|
|
115
125
|
Built-in sort algorithms are `alphanumeric`, `alphanumericCaseSensitive`, `text`,
|
|
116
126
|
`textCaseSensitive`, `datetime`, and `basic`; `comparator` takes precedence. Built-in filter types
|
|
@@ -187,12 +197,16 @@ restores the exact pre-gesture width state; after a live move it emits the resto
|
|
|
187
197
|
`lr-filter-change`; `lr-page-change`; `lr-row-collapse`; `lr-row-expand`; `lr-group-collapse` and
|
|
188
198
|
`lr-group-expand` (frozen `{ key, columnId, value, rows }` snapshots); `lr-row-select` with
|
|
189
199
|
canonical `{ selectedRowKeys, selectedRows }` plus mirrored `selectedKeys`; row expand/collapse
|
|
190
|
-
details use canonical `rowKey` plus mirrored `key`;
|
|
191
|
-
`lr-sort-change`;
|
|
200
|
+
details use canonical `rowKey` plus mirrored `key`; cancelable `lr-sort-request` (frozen readonly
|
|
201
|
+
`detail: { sort }`) precedes `lr-sort-change`; vetoing it leaves `sort` unchanged and suppresses
|
|
202
|
+
`lr-sort-change`, mirroring `<lr-table>`'s identical `lr-sort-request`/`lr-sort` veto-then-commit
|
|
203
|
+
contract;
|
|
204
|
+
`lr-copy` (frozen `{ ok: true, text }` after fulfillment); `lr-copy-error`
|
|
192
205
|
(frozen `{ ok: false, text, reason, error }` after failure); `lr-error` (compatibility failure
|
|
193
|
-
notification with no raw platform error text). Every library event bubbles and is composed; only
|
|
194
|
-
|
|
195
|
-
|
|
206
|
+
notification with no raw platform error text). Every library event bubbles and is composed; only
|
|
207
|
+
`lr-cell-contextmenu` and `lr-sort-request` are cancelable. Structured details and their owned
|
|
208
|
+
collections are frozen. The toolbar search and active column-filter inputs re-dispatch `focus` and
|
|
209
|
+
`blur` once from the grid host as bubbling, composed native `FocusEvent`s, preserving `relatedTarget` so
|
|
196
210
|
delegated ancestors can observe editor entry and exit without crossing the shadow boundary.
|
|
197
211
|
|
|
198
212
|
**Slots:** `empty`, `loading`, `no-results`.
|
|
@@ -47,6 +47,11 @@ is absent, it uses the localized comparison label. Dynamic host-label changes up
|
|
|
47
47
|
`sync-scroll="false"`.
|
|
48
48
|
- `anchor: LyraAnchor | string | null = null` (attribute: false) — sends the same target to both
|
|
49
49
|
preview panes; repeated assignment of the same value still re-runs.
|
|
50
|
+
- `maxHeight: string = ''` (attribute `max-height`) — a CSS length (e.g. `"30rem"`) that overrides
|
|
51
|
+
`--lr-document-compare-pane-max-height` declaratively, giving each `view="side-by-side"` pane its
|
|
52
|
+
maximum block size before it scrolls internally. The value is sanitized as a CSS length, so an
|
|
53
|
+
invalid one is ignored and the token default applies; the unset default `''` also defers to the
|
|
54
|
+
token, so setting nothing preserves existing behaviour.
|
|
50
55
|
|
|
51
56
|
**Exported types:** `DocumentCompareVersion`; `LyraDocumentCompareView = 'diff' |
|
|
52
57
|
'side-by-side'`; `DocumentComparePaneSide = 'old' | 'new'`.
|
|
@@ -100,6 +100,23 @@ A focusable action row owned by `<lr-menu>`. The host itself carries `role="menu
|
|
|
100
100
|
- `type: 'normal' | 'checkbox' = 'normal'`
|
|
101
101
|
- `checked: boolean = false` — meaningful only for `type="checkbox"`
|
|
102
102
|
- `loading: boolean = false`
|
|
103
|
+
- `href?: string` — when set to a safe link URL (`http:`/`https:`/`blob:`/`mailto:`/relative; see
|
|
104
|
+
`safeLinkHref`, or `safeDownloadHref` when `download` is set, which drops `mailto:`),
|
|
105
|
+
`[part="base"]` renders as a real `<a href=…>` instead of a `<span>`, and activation (click, or
|
|
106
|
+
the owning menu's Enter/Space handling, which forwards through `click()` for a link item so the
|
|
107
|
+
anchor's own native default action runs) navigates there in addition to firing the usual
|
|
108
|
+
`select()`/`lr-select` contract. An unsafe/unparseable value falls back to the plain `<span>`,
|
|
109
|
+
matching `lr-button`'s identical fallback
|
|
110
|
+
- `target?: string` — native anchor `target`, used only while `href` resolves to a link. Setting it
|
|
111
|
+
(e.g. `'_blank'`) always force-adds `noopener noreferrer` to the rendered anchor's `rel`,
|
|
112
|
+
matching `lr-button`'s identical pattern
|
|
113
|
+
- `rel?: string` — independently settable author relationship tokens, no default. Author tokens are
|
|
114
|
+
merged rather than replaced: `opener` is always stripped, and whenever `target` is set the
|
|
115
|
+
non-removable `noopener noreferrer` floor is added, so a same-tab link (no `target`) keeps
|
|
116
|
+
exactly the author's tokens while a link opening a new context can never lose the guard
|
|
117
|
+
- `download?: string` — native anchor `download` attribute, used only while `href` resolves to a
|
|
118
|
+
link. Presence narrows the safe-URL allowlist to `safeDownloadHref`'s, which drops `mailto:` — a
|
|
119
|
+
mail handoff names no retrievable bytes, so it cannot be a download target
|
|
103
120
|
- `hasSubmenu: boolean` (read-only)
|
|
104
121
|
- `submenuOpen: boolean = false` — transient live state; assigning it drives an existing submenu
|
|
105
122
|
without moving focus and disconnect resets it
|
|
@@ -190,6 +207,13 @@ properties, slots, parts, methods, checkbox/state events, roving focus, and cano
|
|
|
190
207
|
`lr-select` behavior. Its host also exposes native, non-bubbling, composed `focus` and `blur`
|
|
191
208
|
events.
|
|
192
209
|
|
|
210
|
+
**Attributes:** `href`, `target`, `rel`, and `download` — the same link-rendering properties
|
|
211
|
+
documented above for `<lr-menu-item>`, settable directly in markup
|
|
212
|
+
(`<lr-dropdown-item href="/settings" target="_blank">`). The `rel` guard is identical: author
|
|
213
|
+
tokens merge rather than get replaced, `opener` is always stripped, and setting `target` force-adds
|
|
214
|
+
the non-removable `noopener noreferrer` floor, so a same-tab link keeps exactly the author's tokens
|
|
215
|
+
while a link opening a new context can never lose the guard.
|
|
216
|
+
|
|
193
217
|
**Events:** native, non-bubbling, composed, non-cancelable `focus` and `blur` (`FocusEvent`) when
|
|
194
218
|
the focusable host gains or loses focus, plus the shared menu-item events above.
|
|
195
219
|
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
- **Release history** [CHANGELOG.md](../../CHANGELOG.md); family-wide breaking-change summaries: [llms-full.txt](../../llms-full.txt)
|
|
10
10
|
- **Deprecations** none
|
|
11
11
|
- **Optional peers** none
|
|
12
|
-
- **Themeable via**
|
|
12
|
+
- **Themeable via** 11 parts, 0 custom properties — see this component's own `@csspart`/`@cssprop` list below
|
|
13
13
|
- **Library-wide behavior** (events, form association, `locale`/`strings`, tokens, TS types): `llms/shared.md`
|
|
14
14
|
|
|
15
15
|
---
|
|
@@ -38,7 +38,7 @@ expectedOutput?: string; tags?: readonly string[]; metadata?: Record<string, unk
|
|
|
38
38
|
`searchable`; empty string leaves the corresponding browser default in effect
|
|
39
39
|
- `accept: string = ''` — forwarded to the internal `lr-file-input`'s `accept` (e.g. `'.json,.csv'`);
|
|
40
40
|
empty accepts any type
|
|
41
|
-
- `exportFormats:
|
|
41
|
+
- `exportFormats: readonly LyraExportFormatOption[] = ['csv', 'json']` (attribute: false) — forwarded to the
|
|
42
42
|
internal `lr-export-button`
|
|
43
43
|
- `disabled: boolean = false` (reflected) — disables every add/remove/import/export affordance, e.g.
|
|
44
44
|
while a host-side mutation is still in flight
|
|
@@ -57,8 +57,9 @@ loses focus, since native focus neither bubbles nor crosses the shadow boundary.
|
|
|
57
57
|
All three built-in columns are sortable; activating one of their headers produces that commit for
|
|
58
58
|
the host to apply to its controlled `examples` array.
|
|
59
59
|
|
|
60
|
-
**CSS parts:** `base`, `toolbar`, `search`, `search-input`, `
|
|
61
|
-
|
|
60
|
+
**CSS parts:** `base`, `toolbar`, `search`, `search-input`, `search-clear` (replaces the native
|
|
61
|
+
search-cancel glyph the component resets; rendered only while the field has text), `tag-filter`,
|
|
62
|
+
`grid`, `add-button`, `remove-button`, `import`, `export`.
|
|
62
63
|
|
|
63
64
|
**Known gotchas:**
|
|
64
65
|
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
- **Release history** [CHANGELOG.md](../../CHANGELOG.md); family-wide breaking-change summaries: [llms-full.txt](../../llms-full.txt)
|
|
10
10
|
- **Deprecations** none
|
|
11
11
|
- **Optional peers** none
|
|
12
|
-
- **Themeable via**
|
|
12
|
+
- **Themeable via** 6 parts, 0 custom properties — see this component's own `@csspart`/`@cssprop` list below
|
|
13
13
|
- **Library-wide behavior** (events, form association, `locale`/`strings`, tokens, TS types): `llms/shared.md`
|
|
14
14
|
|
|
15
15
|
---
|
|
@@ -59,13 +59,18 @@ extension?: string }`. Descriptor labels/descriptions are consumer-supplied, alr
|
|
|
59
59
|
substitute your own server-generated download instead of the built-in client-side one),
|
|
60
60
|
`lr-export-complete` (`detail: { format: 'csv' | 'json' }`, fires only after a non-cancelled
|
|
61
61
|
built-in download completes), `lr-export-error` (`detail: { format: 'csv' | 'json', error:
|
|
62
|
-
unknown }`, fires when a built-in export cannot be serialized or downloaded;
|
|
63
|
-
|
|
64
|
-
|
|
62
|
+
unknown }`, fires when a built-in export cannot be serialized or downloaded; the same failure is
|
|
63
|
+
also shown via the trigger's `trigger-error` part and announced through the shared light-DOM live
|
|
64
|
+
region, so a listener is needed only for additional handling; activation does not throw into
|
|
65
|
+
consumer code), `lr-show`, `lr-hide` (cancelable format-menu visibility transitions; self-imposed
|
|
66
|
+
closes caused by disablement, loading, or an unusable format list emit neither event)
|
|
65
67
|
|
|
66
68
|
**Slots:** none.
|
|
67
69
|
|
|
68
|
-
**CSS parts:** `trigger`, `
|
|
70
|
+
**CSS parts:** `trigger`, `trigger-error` (present alongside `trigger` on the same button —
|
|
71
|
+
`part="trigger trigger-error"` — after a built-in CSV/JSON export fails; cleared on the next export
|
|
72
|
+
attempt regardless of outcome — style with `::part(trigger-error)`), `menu`, `menu-item`,
|
|
73
|
+
`format-label`, `format-description`
|
|
69
74
|
|
|
70
75
|
**Themeable custom properties:** shared tokens only, including `--lr-popover-viewport-clamp`
|
|
71
76
|
(default `92vw`) — the shared narrow-viewport ceiling the `menu`'s max-inline-size is `min()`ed
|
|
@@ -193,7 +193,10 @@ abort stale contexts, whose callbacks become inert.
|
|
|
193
193
|
|
|
194
194
|
The adapter's required `clearValue` is used when the active chip is removed. Its optional
|
|
195
195
|
`isEmpty(value)` defines domain emptiness; without one, the bar compares against `clearValue`
|
|
196
|
-
(including shallow string-array equality). Its optional `formatValue` controls chip
|
|
196
|
+
(including shallow string-array equality). Its optional `formatValue(value, locale)` controls chip
|
|
197
|
+
display; `locale` is the filter bar's `effectiveLocale`, the same value every built-in filter
|
|
198
|
+
type's own chip formatting already receives, so an existing single-argument `formatValue`
|
|
199
|
+
implementation keeps working unchanged — JS simply ignores a second parameter it never declared.
|
|
197
200
|
Consequently `false` remains a meaningful active value unless the adapter explicitly declares it
|
|
198
201
|
empty. Custom values may be strings, string arrays, booleans, or `undefined`, so controls such as
|
|
199
202
|
`lr-time-range`, `lr-checkbox`, and an async-backed `lr-combobox` can participate in the same
|
|
@@ -28,12 +28,18 @@ disagree.
|
|
|
28
28
|
is used (the slotted-into-a-corner-slot case, the primary wiring)
|
|
29
29
|
- `label: string = ''` — accessible name for the map region. A host `aria-label` takes precedence,
|
|
30
30
|
followed by `label`, then the localized default
|
|
31
|
+
- `frame: 'card' | 'plain' = 'card'` (reflected) — container treatment, on the library-wide `frame`
|
|
32
|
+
vocabulary. `'plain'` removes `[part="base"]`'s border, background and corner radius, for a
|
|
33
|
+
minimap placed in a host panel or toolbar that already draws its own surface, so the frame isn't
|
|
34
|
+
doubled. The map's own hover/click affordances and the viewport rect stay either way — only the
|
|
35
|
+
outer `base` decoration goes. Mirrors `lr-flow-controls`'/`lr-flow-run-status`'s identical `frame`.
|
|
31
36
|
|
|
32
37
|
**Events:** none.
|
|
33
38
|
|
|
34
39
|
**Slots:** none.
|
|
35
40
|
|
|
36
|
-
**CSS parts:** `base
|
|
41
|
+
**CSS parts:** `base` (the root wrapper; drops its border, background and corner radius under
|
|
42
|
+
`frame="plain"`), `map` (the scaled SVG), `node` (one rect per node), `viewport` (the
|
|
37
43
|
exact visible view rectangle), `viewport-hit-area` (the transparent draggable/focusable target),
|
|
38
44
|
`instructions` (visually hidden keyboard help), and `live-region` (the `aria-hidden` mirror of the
|
|
39
45
|
latest viewport-change text).
|
|
@@ -55,7 +55,12 @@ app-wide with `registerLyraLocale()` (see `llms/shared.md`); don't rely on the f
|
|
|
55
55
|
button whose purpose isn't generic.
|
|
56
56
|
|
|
57
57
|
Host `aria-haspopup` and `aria-expanded` values are forwarded reactively to the shadow-internal
|
|
58
|
-
native button.
|
|
58
|
+
native button. `aria-pressed` (`true`, `false`, `mixed`) supports icon-only toggle actions such as
|
|
59
|
+
mute, favorite, or pin; `aria-current` (`page`, `step`, `location`, `date`, `time`, `true`, `false`)
|
|
60
|
+
supports current-item icon buttons such as an active nav/pagination target. Both follow attribute
|
|
61
|
+
changes, removal, and button/link replacement without changing the native role; an empty or
|
|
62
|
+
unsupported token is omitted — mirroring `lr-button`'s own `aria-pressed`/`aria-current`
|
|
63
|
+
forwarding. Host `aria-describedby` targets in the host's own root are resolved through
|
|
59
64
|
`ariaDescribedByElements`. Host `aria-controls` targets use the corresponding
|
|
60
65
|
`ariaControlsElements` API, so using `<lr-icon-button slot="trigger">` inside `<lr-menu>` exposes
|
|
61
66
|
the menu relationship and expanded state on the element that actually receives focus. Supporting
|
|
@@ -28,7 +28,8 @@ passthrough). Not a subclass of `LyraChart`.
|
|
|
28
28
|
- `labels: readonly string[] = []` (attribute: false)
|
|
29
29
|
- `datasets: readonly LyraLiteChartSeries[] = []` (attribute: false) —
|
|
30
30
|
`LyraLiteChartSeries { readonly label: string; readonly data: readonly (number|null)[];
|
|
31
|
-
readonly color?: string }
|
|
31
|
+
readonly color?: string }`. The legacy `LiteSeries` name was removed in 9.0.0 — import
|
|
32
|
+
`LyraLiteChartSeries` instead.
|
|
32
33
|
`color` accepts a valid CSS `color`, while invalid values,
|
|
33
34
|
declaration-breaking input, and `url()` paint servers fall back to the built-in palette. A
|
|
34
35
|
runtime entry whose required `data` member is not an array is dropped while valid siblings
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
Sanitized Markdown-to-HTML rendering (GFM tables, fenced code blocks, links, blockquotes) built on
|
|
20
20
|
two optional peer dependencies — `marked` (parsing) and `dompurify` (sanitizing) — both lazy-loaded
|
|
21
21
|
independently via `markdown-loader.ts`'s `loadMarkdownDeps()` on first connect, cached per page the
|
|
22
|
-
same way `chart-loader.ts`/`map-loader.ts` cache their load promise so every `<lr-markdown>`
|
|
22
|
+
same way `chart-core-loader.ts`/`map-loader.ts` cache their load promise so every `<lr-markdown>`
|
|
23
23
|
instance on a page shares one load. `heading`/`code`/`blockquote`/`table`/`link`/`image` tokens are
|
|
24
24
|
rendered through a `marked` renderer override that injects `part="..."` attributes directly into the
|
|
25
25
|
produced HTML in a single pass (no second DOM walk after insertion).
|
|
@@ -180,7 +180,7 @@ rendered fenced or indented `code-block`), plus shared tokens `--lr-space-xs/-s/
|
|
|
180
180
|
`--lr-radius`.
|
|
181
181
|
|
|
182
182
|
**Optional peer deps:** `marked`, `dompurify` (both lazy-loaded via `markdown-loader.ts`'s
|
|
183
|
-
`loadMarkdownDeps()`, mirroring `chart-loader.ts`'s two-independent-optional-peers shape). Each half
|
|
183
|
+
`loadMarkdownDeps()`, mirroring `chart-core-loader.ts`'s two-independent-optional-peers shape). Each half
|
|
184
184
|
is loaded and caught independently — a consumer who installs only `marked` and explicitly sets
|
|
185
185
|
`html-mode="trusted"` (so `dompurify` is never needed) is a valid, supported combination. Also `shiki`,
|
|
186
186
|
the same optional peer `<lr-code-block>` uses, for `highlightCode`'s fenced-block syntax
|
|
@@ -100,6 +100,23 @@ A focusable action row owned by `<lr-menu>`. The host itself carries `role="menu
|
|
|
100
100
|
- `type: 'normal' | 'checkbox' = 'normal'`
|
|
101
101
|
- `checked: boolean = false` — meaningful only for `type="checkbox"`
|
|
102
102
|
- `loading: boolean = false`
|
|
103
|
+
- `href?: string` — when set to a safe link URL (`http:`/`https:`/`blob:`/`mailto:`/relative; see
|
|
104
|
+
`safeLinkHref`, or `safeDownloadHref` when `download` is set, which drops `mailto:`),
|
|
105
|
+
`[part="base"]` renders as a real `<a href=…>` instead of a `<span>`, and activation (click, or
|
|
106
|
+
the owning menu's Enter/Space handling, which forwards through `click()` for a link item so the
|
|
107
|
+
anchor's own native default action runs) navigates there in addition to firing the usual
|
|
108
|
+
`select()`/`lr-select` contract. An unsafe/unparseable value falls back to the plain `<span>`,
|
|
109
|
+
matching `lr-button`'s identical fallback
|
|
110
|
+
- `target?: string` — native anchor `target`, used only while `href` resolves to a link. Setting it
|
|
111
|
+
(e.g. `'_blank'`) always force-adds `noopener noreferrer` to the rendered anchor's `rel`,
|
|
112
|
+
matching `lr-button`'s identical pattern
|
|
113
|
+
- `rel?: string` — independently settable author relationship tokens, no default. Author tokens are
|
|
114
|
+
merged rather than replaced: `opener` is always stripped, and whenever `target` is set the
|
|
115
|
+
non-removable `noopener noreferrer` floor is added, so a same-tab link (no `target`) keeps
|
|
116
|
+
exactly the author's tokens while a link opening a new context can never lose the guard
|
|
117
|
+
- `download?: string` — native anchor `download` attribute, used only while `href` resolves to a
|
|
118
|
+
link. Presence narrows the safe-URL allowlist to `safeDownloadHref`'s, which drops `mailto:` — a
|
|
119
|
+
mail handoff names no retrievable bytes, so it cannot be a download target
|
|
103
120
|
- `hasSubmenu: boolean` (read-only)
|
|
104
121
|
- `submenuOpen: boolean = false` — transient live state; assigning it drives an existing submenu
|
|
105
122
|
without moving focus and disconnect resets it
|
|
@@ -190,6 +207,13 @@ properties, slots, parts, methods, checkbox/state events, roving focus, and cano
|
|
|
190
207
|
`lr-select` behavior. Its host also exposes native, non-bubbling, composed `focus` and `blur`
|
|
191
208
|
events.
|
|
192
209
|
|
|
210
|
+
**Attributes:** `href`, `target`, `rel`, and `download` — the same link-rendering properties
|
|
211
|
+
documented above for `<lr-menu-item>`, settable directly in markup
|
|
212
|
+
(`<lr-dropdown-item href="/settings" target="_blank">`). The `rel` guard is identical: author
|
|
213
|
+
tokens merge rather than get replaced, `opener` is always stripped, and setting `target` force-adds
|
|
214
|
+
the non-removable `noopener noreferrer` floor, so a same-tab link keeps exactly the author's tokens
|
|
215
|
+
while a link opening a new context can never lose the guard.
|
|
216
|
+
|
|
193
217
|
**Events:** native, non-bubbling, composed, non-cancelable `focus` and `blur` (`FocusEvent`) when
|
|
194
218
|
the focusable host gains or loses focus, plus the shared menu-item events above.
|
|
195
219
|
|
|
@@ -100,6 +100,23 @@ A focusable action row owned by `<lr-menu>`. The host itself carries `role="menu
|
|
|
100
100
|
- `type: 'normal' | 'checkbox' = 'normal'`
|
|
101
101
|
- `checked: boolean = false` — meaningful only for `type="checkbox"`
|
|
102
102
|
- `loading: boolean = false`
|
|
103
|
+
- `href?: string` — when set to a safe link URL (`http:`/`https:`/`blob:`/`mailto:`/relative; see
|
|
104
|
+
`safeLinkHref`, or `safeDownloadHref` when `download` is set, which drops `mailto:`),
|
|
105
|
+
`[part="base"]` renders as a real `<a href=…>` instead of a `<span>`, and activation (click, or
|
|
106
|
+
the owning menu's Enter/Space handling, which forwards through `click()` for a link item so the
|
|
107
|
+
anchor's own native default action runs) navigates there in addition to firing the usual
|
|
108
|
+
`select()`/`lr-select` contract. An unsafe/unparseable value falls back to the plain `<span>`,
|
|
109
|
+
matching `lr-button`'s identical fallback
|
|
110
|
+
- `target?: string` — native anchor `target`, used only while `href` resolves to a link. Setting it
|
|
111
|
+
(e.g. `'_blank'`) always force-adds `noopener noreferrer` to the rendered anchor's `rel`,
|
|
112
|
+
matching `lr-button`'s identical pattern
|
|
113
|
+
- `rel?: string` — independently settable author relationship tokens, no default. Author tokens are
|
|
114
|
+
merged rather than replaced: `opener` is always stripped, and whenever `target` is set the
|
|
115
|
+
non-removable `noopener noreferrer` floor is added, so a same-tab link (no `target`) keeps
|
|
116
|
+
exactly the author's tokens while a link opening a new context can never lose the guard
|
|
117
|
+
- `download?: string` — native anchor `download` attribute, used only while `href` resolves to a
|
|
118
|
+
link. Presence narrows the safe-URL allowlist to `safeDownloadHref`'s, which drops `mailto:` — a
|
|
119
|
+
mail handoff names no retrievable bytes, so it cannot be a download target
|
|
103
120
|
- `hasSubmenu: boolean` (read-only)
|
|
104
121
|
- `submenuOpen: boolean = false` — transient live state; assigning it drives an existing submenu
|
|
105
122
|
without moving focus and disconnect resets it
|
|
@@ -190,6 +207,13 @@ properties, slots, parts, methods, checkbox/state events, roving focus, and cano
|
|
|
190
207
|
`lr-select` behavior. Its host also exposes native, non-bubbling, composed `focus` and `blur`
|
|
191
208
|
events.
|
|
192
209
|
|
|
210
|
+
**Attributes:** `href`, `target`, `rel`, and `download` — the same link-rendering properties
|
|
211
|
+
documented above for `<lr-menu-item>`, settable directly in markup
|
|
212
|
+
(`<lr-dropdown-item href="/settings" target="_blank">`). The `rel` guard is identical: author
|
|
213
|
+
tokens merge rather than get replaced, `opener` is always stripped, and setting `target` force-adds
|
|
214
|
+
the non-removable `noopener noreferrer` floor, so a same-tab link keeps exactly the author's tokens
|
|
215
|
+
while a link opening a new context can never lose the guard.
|
|
216
|
+
|
|
193
217
|
**Events:** native, non-bubbling, composed, non-cancelable `focus` and `blur` (`FocusEvent`) when
|
|
194
218
|
the focusable host gains or loses focus, plus the shared menu-item events above.
|
|
195
219
|
|
|
@@ -27,6 +27,13 @@ allocating every preceding part for each citation in a citation-heavy or growing
|
|
|
27
27
|
**Properties:** `parts: MessagePart[] = []` (attribute: false); `contentMode: MessagePartsContentMode =
|
|
28
28
|
'markdown'` (attribute `content-mode`, reflected) and `showReasoning: boolean = true` (attribute
|
|
29
29
|
`show-reasoning`, reflected, with string-aware true-default conversion);
|
|
30
|
+
`maxRenderedParts: number = 0` (attribute `max-rendered-parts`) — `0` (the default) renders every
|
|
31
|
+
part, unbounded, matching every prior release; a positive value windows rendering to the newest N
|
|
32
|
+
parts without touching the host's `parts` data. Citation ranks are unaffected by the window: they
|
|
33
|
+
are still derived from the full sequence first, in the same linear prepass, so a badge's number
|
|
34
|
+
stays stable even once an earlier citation rolls out of the rendered window. Opt in for a message
|
|
35
|
+
that can grow an unusually large number of interleaved parts (e.g. a long agentic run with many
|
|
36
|
+
tool-call/tool-result pairs), where unbounded live DOM can visibly stall the main thread.
|
|
30
37
|
`renderPart?: MessagePartRenderer` (attribute: false), where returning `undefined` delegates that
|
|
31
38
|
part to the built-in renderer; `accessibleLabel: string | null = null` (attribute `aria-label`).
|
|
32
39
|
|
|
@@ -88,7 +88,10 @@ The internal `lr-slider` renders with its own value readout suppressed (`.showVa
|
|
|
88
88
|
the current temperature is instead shown via this component's own `[part="temperature-value"]` span,
|
|
89
89
|
which formats `temperature` through the cached `Intl.NumberFormat` for the effective locale with up
|
|
90
90
|
to 20 fractional digits, matching `lr-slider`'s own numeric readout. For example, `temperature="0.7"`
|
|
91
|
-
under `locale="de-DE"` displays `0,7`.
|
|
91
|
+
under `locale="de-DE"` displays `0,7`. When the full decimal expansion would exceed 24 characters —
|
|
92
|
+
reachable only through an extreme `temperatureMin`/`temperatureMax`/`temperatureStep` combination —
|
|
93
|
+
the readout switches to bounded scientific notation at up to 6 significant digits instead, so
|
|
94
|
+
`1e308` renders as `7E+307` rather than a 300-digit string that would overflow the label.
|
|
92
95
|
|
|
93
96
|
The panel's own `temperature` property mirrors the nested slider's _live_ value on every one of its
|
|
94
97
|
`lr-input` events (drag/key-repeat), not just its committed `lr-change` — so `temperature` (and
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
- **Release history** [CHANGELOG.md](../../CHANGELOG.md); family-wide breaking-change summaries: [llms-full.txt](../../llms-full.txt)
|
|
10
10
|
- **Deprecations** none
|
|
11
11
|
- **Optional peers** none
|
|
12
|
-
- **Themeable via**
|
|
12
|
+
- **Themeable via** 12 parts, 0 custom properties — see this component's own `@csspart`/`@cssprop` list below
|
|
13
13
|
- **Library-wide behavior** (events, form association, `locale`/`strings`, tokens, TS types): `llms/shared.md`
|
|
14
14
|
|
|
15
15
|
---
|
|
@@ -66,9 +66,10 @@ re-rendered group order confirms the host applied it.
|
|
|
66
66
|
**Slots:** `header` (content above the search field, e.g. a heading or tabs), `footer` (content
|
|
67
67
|
below the list).
|
|
68
68
|
|
|
69
|
-
**CSS parts:** `base`, `search
|
|
70
|
-
`
|
|
71
|
-
|
|
69
|
+
**CSS parts:** `base`, `search-field` (wrapper around the search input and its clear button),
|
|
70
|
+
`search`, `search-clear` (clears the query; rendered only while the field has text), `list` (the
|
|
71
|
+
listbox), `group-header`, `item`, `item-icon`, `item-label`, `item-description`, `empty`
|
|
72
|
+
(no-results message), `live-region` (result-count announcement).
|
|
72
73
|
|
|
73
74
|
**Themeable custom properties:** shared tokens only.
|
|
74
75
|
|
|
@@ -129,6 +129,13 @@ span boundary that `Range.surroundContents()` can't wrap stays unpainted (still
|
|
|
129
129
|
localized label; later loading and error transitions use the shared document-level polite and
|
|
130
130
|
assertive sinks, respectively, without adding live semantics inside the viewer shadow.
|
|
131
131
|
|
|
132
|
+
**Known capability boundaries** — deliberate, not defects, and stated here so they need not be
|
|
133
|
+
rediscovered: text search and `LyraAnchor` text-quote resolution match **exact** text only, after
|
|
134
|
+
whitespace and soft-hyphen normalization, with no fuzzy or approximate mode. Non-Latin
|
|
135
|
+
cMap-encoded fonts get no special handling beyond whatever the `pdfjs-dist` peer resolves on its
|
|
136
|
+
own — no `cMapUrl`/`cMapPacked` is configured. A scanned or image-only PDF has no text layer at
|
|
137
|
+
all, so it has nothing to select, search or anchor into; it still renders and paginates normally.
|
|
138
|
+
|
|
132
139
|
`page`, `page-canvas`, `text-layer`, `text-span`, `search-match` and `search-match-active` are
|
|
133
140
|
rendered inside the virtualizing `lr-virtual-list`'s own shadow root and forwarded out through
|
|
134
141
|
`exportparts`, so `lr-pdf-viewer::part(page)` (and each of the others) works from a consumer
|
|
@@ -28,7 +28,7 @@ invention (no `wa-*`/`sl-*` counterpart).
|
|
|
28
28
|
against the component's allocation; `'inline'`/`'overlay'` force that presentation.
|
|
29
29
|
- `effectiveMode: LyraResponsivePanelEffectiveMode` (readonly) — the currently resolved
|
|
30
30
|
`'inline'|'overlay'` presentation.
|
|
31
|
-
- `
|
|
31
|
+
- `shape: LyraResponsivePanelShape = 'fullscreen'` (reflected) — only affects the overlay
|
|
32
32
|
presentation's visual treatment: `'fullscreen'` covers the whole viewport; `'bottom-sheet'`
|
|
33
33
|
anchors to its block-end edge and does not cover the full height. Has no visual effect while the effective
|
|
34
34
|
presentation resolves to `'inline'`.
|
|
@@ -115,7 +115,7 @@ presentation participates in the shared modal stack rather than nesting a `<lr-d
|
|
|
115
115
|
The granular route exports the pure
|
|
116
116
|
`resolveResponsivePanelEffectiveMode(mode: LyraResponsivePanelMode,
|
|
117
117
|
belowBreakpoint: boolean): LyraResponsivePanelEffectiveMode` resolver alongside the
|
|
118
|
-
`LyraResponsivePanelMode`/`LyraResponsivePanelEffectiveMode`/`
|
|
118
|
+
`LyraResponsivePanelMode`/`LyraResponsivePanelEffectiveMode`/`LyraResponsivePanelShape`/
|
|
119
119
|
`LyraResponsivePanelCloseReason`/`LyraResponsivePanelModeChangeDetail` types. It's the same logic
|
|
120
120
|
the element's allocation observer calls: `'inline'`/`'overlay'` pass straight through
|
|
121
121
|
unchanged; `'auto'` resolves to `'overlay'` when `belowBreakpoint` is true, `'inline'` otherwise —
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
- **Release history** [CHANGELOG.md](../../CHANGELOG.md); family-wide breaking-change summaries: [llms-full.txt](../../llms-full.txt)
|
|
10
10
|
- **Deprecations** none
|
|
11
11
|
- **Optional peers** none
|
|
12
|
-
- **Themeable via** 16 parts,
|
|
12
|
+
- **Themeable via** 16 parts, 7 custom properties — see this component's own `@csspart`/`@cssprop` list below
|
|
13
13
|
- **Library-wide behavior** (events, form association, `locale`/`strings`, tokens, TS types): `llms/shared.md`
|
|
14
14
|
|
|
15
15
|
---
|
|
@@ -23,7 +23,14 @@ parents remain renderable instead of recursing forever.
|
|
|
23
23
|
**Properties:** `runs: SubagentRun[] = []` (attribute: false);
|
|
24
24
|
`selectedRunId: string | null = null` (attribute `selected-run-id`); `label?: string` — an
|
|
25
25
|
accessible-name override for the `role="tree"` element, where omission reads back `undefined` and
|
|
26
|
-
localizes the default while any supplied string, including `''`, renders verbatim
|
|
26
|
+
localizes the default while any supplied string, including `''`, renders verbatim; `compact: boolean
|
|
27
|
+
= false` (reflected) — tighter run-row padding/gaps and smaller task/model text, the same density
|
|
28
|
+
convention `lr-task-list`/`lr-stack-trace`/`lr-thinking-panel`/`lr-terminal` already pair with
|
|
29
|
+
`frame`; purely a density knob, since each run's own border stays, so reach for `frame="plain"` to
|
|
30
|
+
drop the chrome entirely; `frame: LyraFrame = 'card'` (reflected) — container treatment for each run
|
|
31
|
+
row, in the library-wide `frame` vocabulary (`'card' | 'plain'`). `'card'` keeps each run's own
|
|
32
|
+
border/radius; `'plain'` drops it, for a transcript or message-bubble context that already draws its
|
|
33
|
+
own border around a nested `<lr-subagent-panel>` and would otherwise double it.
|
|
27
34
|
`SubagentRun = { id: string; parentId?: string; label: string; status: AgentStatusKind; task?:
|
|
28
35
|
string; model?: string; readonly progressRatio?: number; startedAt?: number; endedAt?: number;
|
|
29
36
|
metadata?: Record<string, unknown> }`. `progressRatio` represents completion from `0` to `1`,
|
|
@@ -56,3 +63,11 @@ import "@aceshooting/lyra-ui/components/agent-tools/subagent-panel/subagent-pane
|
|
|
56
63
|
- `--lr-subagent-panel-selected-border` — Selected run border. Default: `var(--lr-color-brand)`.
|
|
57
64
|
- `--lr-subagent-panel-progress-track` — Progress track. Default: `var(--lr-color-border)`.
|
|
58
65
|
- `--lr-subagent-panel-progress-fill` — Progress fill. Default: `var(--lr-color-brand)`.
|
|
66
|
+
- `--lr-subagent-panel-compact-trigger-padding` — `[part="run-trigger"]` padding while `compact`.
|
|
67
|
+
Default: `var(--lr-space-2xs) var(--lr-space-s)`.
|
|
68
|
+
- `--lr-subagent-panel-compact-trigger-gap` — Gap between `[part="run-trigger"]`'s
|
|
69
|
+
label/status/task/model/progress while `compact`. Default: `var(--lr-space-2xs)`.
|
|
70
|
+
- `--lr-subagent-panel-compact-font-size` — `[part="task"]`/`[part="model"]` font size while
|
|
71
|
+
`compact`. Default: `var(--lr-font-size-2xs)`.
|
|
72
|
+
- `--lr-subagent-panel-compact-action-padding` — `[part="cancel"]`/`[part="retry"]` padding while
|
|
73
|
+
`compact`. Default: `var(--lr-space-2xs)`.
|
|
@@ -42,6 +42,10 @@ plain text) — this component has no dependency on either.
|
|
|
42
42
|
behavior differences, see prose below.
|
|
43
43
|
- `durationMs?: number` (attribute `duration-ms`) — how long the reasoning took. Omitted entirely
|
|
44
44
|
(nothing rendered in `'post-hoc'`, a pulsing placeholder in `'live'`) while unset.
|
|
45
|
+
- `follow: boolean = true` (reflected) — whether live, expanded content follows the transcript tail.
|
|
46
|
+
A user scroll updates this property and emits `lr-follow-change`; a direct assignment is
|
|
47
|
+
controlled input and emits nothing. Being a `true`-defaulting boolean, `follow="false"` in plain
|
|
48
|
+
HTML is honoured (it uses `trueDefaultBooleanConverter`), so the attribute form is load-bearing.
|
|
45
49
|
|
|
46
50
|
**Methods:** `scrollToBottom(): void` — scrolls `[part="body"]` to its current bottom immediately
|
|
47
51
|
(no smooth-scroll animation). Safe to call directly, e.g. from a host that wants to force a
|