@aceshooting/lyra-ui 16.0.0 → 18.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +758 -0
- package/README.md +2 -2
- package/custom-elements.json +1 -1
- package/dist/cli/migration-contract.json +1 -1
- package/dist/components/agent-tools/browser-frame/browser-frame.class.d.ts +3 -3
- package/dist/components/agent-tools/browser-frame/browser-frame.class.js +2 -2
- package/dist/components/agent-tools/compare-panel/compare-panel.class.d.ts +2 -2
- package/dist/components/agent-tools/compare-panel/compare-panel.class.js +3 -3
- package/dist/components/agent-tools/confirm-bar/confirm-bar.class.d.ts +37 -13
- package/dist/components/agent-tools/confirm-bar/confirm-bar.class.js +2 -2
- package/dist/components/agent-tools/task-list/task-list.class.js +2 -2
- package/dist/components/agent-tools/tool-call-chip/tool-call-chip.class.d.ts +4 -0
- package/dist/components/agent-tools/tool-call-chip/tool-call-chip.class.js +2 -2
- package/dist/components/agent-tools/tool-param-form/tool-param-form.class.d.ts +3 -3
- package/dist/components/agent-tools/tool-param-form/tool-param-form.class.js +1 -1
- package/dist/components/charts/chart/chart.class.d.ts +117 -17
- package/dist/components/charts/chart/chart.class.js +3 -3
- package/dist/components/charts/chart/histogram-bin.d.ts +5 -1
- package/dist/components/charts/chart/histogram-bin.js +1 -1
- package/dist/components/charts/chart/lite-chart.class.d.ts +9 -0
- package/dist/components/conversation/code-block/code-block.styles.js +1 -1
- package/dist/components/conversation/message-actions/message-actions.styles.js +1 -1
- package/dist/components/conversation/model-select/model-select.class.d.ts +13 -4
- package/dist/components/conversation/model-select/model-select.class.js +2 -1
- package/dist/components/conversation/model-select/model-select.styles.js +1 -1
- package/dist/components/conversation/streaming-text/streaming-text-base.class.d.ts +40 -2
- package/dist/components/conversation/streaming-text/streaming-text-base.class.js +2 -2
- package/dist/components/conversation/streaming-text/streaming-text-core.class.d.ts +27 -3
- package/dist/components/conversation/streaming-text/streaming-text-core.class.js +11 -0
- package/dist/components/conversation/streaming-text/streaming-text.class.d.ts +31 -3
- package/dist/components/conversation/streaming-text/streaming-text.class.js +11 -0
- package/dist/components/conversation/suggestion-chips/suggestion-chips.class.d.ts +30 -2
- package/dist/components/conversation/suggestion-chips/suggestion-chips.class.js +4 -3
- package/dist/components/conversation/suggestion-chips/suggestion-chips.styles.js +1 -1
- package/dist/components/conversation/thread-list/thread-list.class.js +1 -1
- package/dist/components/conversation/transcript-feed/transcript-feed.class.js +1 -1
- package/dist/components/conversation/usage-badge/usage-badge-overlay-runtime.js +1 -1
- package/dist/components/conversation/usage-badge/usage-badge.class.d.ts +4 -0
- package/dist/components/conversation/voice-picker/voice-picker.class.d.ts +16 -4
- package/dist/components/conversation/voice-picker/voice-picker.class.js +2 -1
- package/dist/components/conversation/voice-picker/voice-picker.styles.js +1 -1
- package/dist/components/data/context-meter/context-meter.class.d.ts +23 -4
- package/dist/components/data/context-meter/context-meter.class.js +10 -7
- package/dist/components/data/context-meter/context-meter.styles.js +1 -1
- package/dist/components/data/data-grid/data-grid.class.d.ts +5 -2
- package/dist/components/data/data-grid/data-grid.class.js +1 -1
- package/dist/components/data/flow-canvas/flow-canvas.class.d.ts +32 -5
- package/dist/components/data/flow-canvas/flow-canvas.class.js +3 -1
- package/dist/components/data/flow-canvas/flow-canvas.styles.js +1 -1
- package/dist/components/data/flow-canvas/flow-model.js +1 -1
- package/dist/components/data/flow-canvas/flow-types.d.ts +10 -1
- package/dist/components/data/gauge/gauge.class.d.ts +15 -2
- package/dist/components/data/gauge/gauge.class.js +20 -20
- package/dist/components/data/gauge/gauge.styles.js +1 -1
- package/dist/components/data/graph-query-builder/graph-query-builder.class.d.ts +14 -5
- package/dist/components/data/graph-query-builder/graph-query-builder.class.js +2 -2
- package/dist/components/data/sequence-strip/sequence-strip.class.d.ts +28 -2
- package/dist/components/data/sequence-strip/sequence-strip.class.js +3 -2
- package/dist/components/data/sequence-strip/sequence-strip.styles.js +1 -1
- package/dist/components/data/table/table.class.d.ts +155 -30
- package/dist/components/data/table/table.class.js +6 -4
- package/dist/components/data/table/table.styles.js +1 -1
- package/dist/components/data/timeline/timeline-item.class.d.ts +9 -1
- package/dist/components/data/timeline/timeline-item.class.js +2 -2
- package/dist/components/data/word-cloud/word-cloud.class.js +1 -1
- package/dist/components/data/word-cloud/word-cloud.styles.js +1 -1
- package/dist/components/forms/button/button.class.d.ts +30 -1
- package/dist/components/forms/button/button.class.js +2 -2
- package/dist/components/forms/checkbox/checkbox.class.d.ts +8 -6
- package/dist/components/forms/checkbox/checkbox.class.js +2 -2
- package/dist/components/forms/checkbox-group/checkbox-group.class.d.ts +7 -5
- package/dist/components/forms/checkbox-group/checkbox-group.class.js +1 -1
- package/dist/components/forms/color-picker/color-picker.class.d.ts +16 -2
- package/dist/components/forms/color-picker/color-picker.class.js +2 -2
- package/dist/components/forms/color-picker/color-picker.styles.js +1 -1
- package/dist/components/forms/combobox/combobox.class.d.ts +52 -7
- package/dist/components/forms/combobox/combobox.class.js +2 -2
- package/dist/components/forms/combobox/combobox.styles.js +1 -1
- package/dist/components/forms/date-picker/date-input.class.d.ts +4 -0
- package/dist/components/forms/date-picker/date-input.class.js +1 -1
- package/dist/components/forms/icon-button/icon-button.class.d.ts +20 -3
- package/dist/components/forms/icon-button/icon-button.class.js +1 -1
- package/dist/components/forms/icon-button/icon-button.styles.js +1 -1
- package/dist/components/forms/input/input.class.d.ts +5 -2
- package/dist/components/forms/input/input.class.js +1 -1
- package/dist/components/forms/input/time-input.class.d.ts +4 -0
- package/dist/components/forms/input/time-input.class.js +1 -1
- package/dist/components/forms/locale-picker/locale-picker.class.d.ts +11 -5
- package/dist/components/forms/locale-picker/locale-picker.class.js +1 -1
- package/dist/components/forms/otp-input/otp-input.class.d.ts +7 -2
- package/dist/components/forms/otp-input/otp-input.class.js +2 -2
- package/dist/components/forms/radio/radio-button.class.d.ts +2 -1
- package/dist/components/forms/radio/radio-group.class.d.ts +9 -4
- package/dist/components/forms/radio/radio-group.class.js +1 -1
- package/dist/components/forms/radio/radio.class.d.ts +13 -7
- package/dist/components/forms/radio/radio.class.js +1 -1
- package/dist/components/forms/rubric-form/rubric-form.class.d.ts +16 -6
- package/dist/components/forms/rubric-form/rubric-form.class.js +2 -2
- package/dist/components/forms/select/select.class.d.ts +50 -13
- package/dist/components/forms/select/select.class.js +2 -2
- package/dist/components/forms/slider/slider.class.d.ts +4 -2
- package/dist/components/forms/slider/slider.class.js +1 -1
- package/dist/components/forms/switch/switch.class.d.ts +8 -6
- package/dist/components/forms/switch/switch.class.js +1 -1
- package/dist/components/forms/textarea/textarea.class.d.ts +5 -3
- package/dist/components/forms/textarea/textarea.class.js +1 -1
- package/dist/components/forms/time-range/time-range.class.d.ts +12 -7
- package/dist/components/forms/time-range/time-range.class.js +1 -1
- package/dist/components/forms/time-range/time-range.styles.js +1 -1
- package/dist/components/forms/token-input/token-input.class.d.ts +6 -4
- package/dist/components/forms/token-input/token-input.class.js +1 -1
- package/dist/components/layout/app-rail/app-rail-item.class.d.ts +109 -4
- package/dist/components/layout/app-rail/app-rail-item.class.js +34 -29
- package/dist/components/layout/app-rail/app-rail-item.styles.js +1 -1
- package/dist/components/layout/app-rail/app-rail.class.d.ts +25 -3
- package/dist/components/layout/app-rail/app-rail.styles.js +1 -1
- package/dist/components/layout/app-rail-group/app-rail-group.class.d.ts +2 -2
- package/dist/components/layout/app-rail-group/app-rail-group.class.js +2 -2
- package/dist/components/layout/carousel/carousel.class.d.ts +1 -1
- package/dist/components/layout/carousel/carousel.class.js +1 -1
- package/dist/components/layout/details/accordion.class.d.ts +2 -2
- package/dist/components/layout/details/accordion.class.js +2 -2
- package/dist/components/layout/filter-bar/filter-bar-register.d.ts +1 -0
- package/dist/components/layout/filter-bar/filter-bar-register.js +1 -0
- package/dist/components/layout/filter-bar/filter-bar.class.d.ts +153 -16
- package/dist/components/layout/filter-bar/filter-bar.class.js +8 -5
- package/dist/components/layout/menu/menu-item.class.d.ts +3 -3
- package/dist/components/layout/menu/menu-item.class.js +3 -3
- package/dist/components/layout/menu/menu.class.d.ts +5 -1
- package/dist/components/layout/menu/menu.class.js +2 -2
- package/dist/components/layout/reorder-list/reorder-item.styles.js +1 -1
- package/dist/components/layout/reorder-list/reorder-list.class.js +1 -1
- package/dist/components/layout/virtual-list/virtual-list.class.d.ts +107 -2
- package/dist/components/layout/virtual-list/virtual-list.class.js +12 -7
- package/dist/components/media/attachment-trigger/attachment-trigger.styles.js +1 -1
- package/dist/components/media/avatar-group/avatar-group.class.d.ts +12 -1
- package/dist/components/media/avatar-group/avatar-group.class.js +2 -2
- package/dist/components/media/drop-zone/drop-zone.class.d.ts +32 -11
- package/dist/components/media/drop-zone/drop-zone.class.js +2 -2
- package/dist/components/media/file-input/file-input.class.d.ts +40 -19
- package/dist/components/media/file-input/file-input.class.js +2 -2
- package/dist/components/media/map/map.class.d.ts +138 -12
- package/dist/components/media/map/map.class.js +25 -20
- package/dist/components/media/map/map.styles.js +1 -1
- package/dist/components/overlays/callout/callout.styles.js +1 -1
- package/dist/components/overlays/dialog/dialog.styles.js +1 -1
- package/dist/components/overlays/overlay/dropdown.class.d.ts +13 -3
- package/dist/components/overlays/overlay/dropdown.class.js +2 -2
- package/dist/components/overlays/overlay/popover.class.d.ts +12 -3
- package/dist/components/overlays/overlay/popover.class.js +2 -2
- package/dist/components/overlays/rating/rating.class.d.ts +9 -7
- package/dist/components/overlays/rating/rating.class.js +1 -1
- package/dist/components/retrieval/citation-badge/citation-badge.class.d.ts +5 -1
- package/dist/components/retrieval/citation-badge/citation-badge.class.js +1 -1
- package/dist/components/retrieval/embedding-explorer/embedding-explorer.styles.js +1 -1
- package/dist/components/retrieval/entity-chip/entity-chip.class.d.ts +5 -1
- package/dist/components/retrieval/entity-chip/entity-chip.class.js +1 -1
- package/dist/components/retrieval/graph-legend/graph-legend.styles.js +1 -1
- package/dist/components/retrieval/retrieval-value-format.js +1 -1
- package/dist/components/retrieval/source-list/source-list.styles.js +1 -1
- package/dist/components/utility/copy-button/copy-button.class.d.ts +23 -11
- package/dist/components/utility/copy-button/copy-button.class.js +2 -2
- package/dist/components/utility/copy-button/copy-button.styles.js +1 -1
- package/dist/components/utility/diff-view/diff-view.styles.js +1 -1
- package/dist/components/utility/export-button/export-button.class.d.ts +4 -0
- package/dist/components/utility/export-button/export-button.class.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 +38 -3
- package/dist/components/utility/mention-popover/mention-popover.class.js +2 -1
- package/dist/components/utility/mention-popover/mention-popover.styles.js +1 -1
- package/dist/components/utility/poll-status/poll-status.styles.js +1 -1
- package/dist/components/utility/tour/tour.class.d.ts +4 -0
- package/dist/components/utility/tour/tour.class.js +1 -1
- package/dist/components/utility/tour/tour.styles.js +1 -1
- package/dist/components/viewers/document-preview/document-preview.class.js +2 -2
- package/dist/components/viewers/docx-viewer/docx-viewer.class.js +2 -2
- package/dist/components/viewers/ebook-viewer/ebook-viewer.class.js +2 -2
- package/dist/components/viewers/highlight-layer/highlight-layer.class.js +2 -2
- package/dist/components/viewers/notebook-viewer/notebook-viewer.class.js +2 -2
- package/dist/components/viewers/pdf-viewer/pdf-viewer.class.js +2 -2
- package/dist/components/viewers/pptx-viewer/pptx-viewer.class.js +2 -2
- package/dist/components/viewers/xml-viewer/xml-viewer.class.js +2 -2
- package/dist/custom-elements-jsx.d.ts +2 -2
- package/dist/events.d.ts +20 -13
- package/dist/internal/aggregate-file-limits.d.ts +33 -0
- package/dist/internal/aggregate-file-limits.js +1 -0
- package/dist/internal/catalog-picker.d.ts +15 -2
- package/dist/internal/catalog-picker.js +1 -1
- package/dist/internal/debounce-controller.d.ts +14 -0
- package/dist/internal/debounce-controller.js +1 -1
- package/dist/internal/default-strings.generated.d.ts +1 -1
- package/dist/internal/default-strings.generated.js +2 -2
- package/dist/internal/focus-navigation.d.ts +45 -0
- package/dist/internal/focus-navigation.js +1 -1
- package/dist/internal/form-associated.js +1 -1
- package/dist/internal/initial-slot-collection.d.ts +30 -0
- package/dist/internal/initial-slot-collection.js +1 -0
- package/dist/internal/intl-cache.js +1 -1
- package/dist/internal/invalid-event-alias.d.ts +46 -0
- package/dist/internal/invalid-event-alias.js +1 -1
- package/dist/internal/localization-runtime.d.ts +24 -0
- package/dist/internal/localization-runtime.js +1 -1
- package/dist/internal/localization-types.d.ts +1 -1
- package/dist/internal/localization.js +1 -1
- package/dist/internal/package-metadata.d.ts +1 -1
- package/dist/internal/package-metadata.js +1 -1
- package/dist/internal/positioning-strategy.d.ts +3 -1
- package/dist/internal/state-part.d.ts +49 -0
- package/dist/internal/state-part.js +1 -0
- package/dist/internal/variants.styles.js +1 -1
- package/dist/lyra.d.ts +1 -1
- package/dist/lyra.js +1 -1
- package/dist/svelte.d.ts +2 -2
- package/dist/testing/index.d.ts +1 -1
- package/dist/testing/index.js +1 -1
- package/dist/testing/lyra-tag-event-map.d.ts +2 -2
- package/dist/testing/lyra-tag-event-map.js +1 -1
- package/dist/testing/wait-for-mount.d.ts +46 -0
- package/dist/testing/wait-for-mount.js +1 -0
- package/dist/theme/theme-bootstrap.js +1 -1
- package/dist/theme/theme.d.ts +11 -2
- package/dist/theme/theme.js +1 -1
- package/dist/translations/ar/layout.js +1 -1
- package/dist/translations/ar/retrieval.js +1 -1
- package/dist/translations/ar/shared.js +1 -1
- package/dist/translations/de/layout.js +1 -1
- package/dist/translations/de/retrieval.js +1 -1
- package/dist/translations/de/shared.js +1 -1
- package/dist/translations/es/layout.js +1 -1
- package/dist/translations/es/retrieval.js +1 -1
- package/dist/translations/es/shared.js +1 -1
- package/dist/translations/fa/layout.js +1 -1
- package/dist/translations/fa/retrieval.js +1 -1
- package/dist/translations/fa/shared.js +1 -1
- package/dist/translations/fr/layout.js +1 -1
- package/dist/translations/fr/retrieval.js +1 -1
- package/dist/translations/fr/shared.js +1 -1
- package/dist/translations/he/layout.js +1 -1
- package/dist/translations/he/retrieval.js +1 -1
- package/dist/translations/he/shared.js +1 -1
- package/dist/translations/it/layout.js +1 -1
- package/dist/translations/it/retrieval.js +1 -1
- package/dist/translations/it/shared.js +1 -1
- package/dist/translations/ja/layout.js +1 -1
- package/dist/translations/ja/retrieval.js +1 -1
- package/dist/translations/ja/shared.js +1 -1
- package/dist/translations/pt-BR/layout.js +1 -1
- package/dist/translations/pt-BR/retrieval.js +1 -1
- package/dist/translations/pt-BR/shared.js +1 -1
- package/dist/translations/ro/agent-tools.d.ts +1 -0
- package/dist/translations/ro/agent-tools.js +1 -0
- package/dist/translations/ro/charts.d.ts +1 -0
- package/dist/translations/ro/charts.js +1 -0
- package/dist/translations/ro/conversation.d.ts +1 -0
- package/dist/translations/ro/conversation.js +1 -0
- package/dist/translations/ro/data.d.ts +1 -0
- package/dist/translations/ro/data.js +1 -0
- package/dist/translations/ro/forms.d.ts +1 -0
- package/dist/translations/ro/forms.js +1 -0
- package/dist/translations/ro/layout.d.ts +1 -0
- package/dist/translations/ro/layout.js +1 -0
- package/dist/translations/ro/media.d.ts +1 -0
- package/dist/translations/ro/media.js +1 -0
- package/dist/translations/ro/overlays.d.ts +1 -0
- package/dist/translations/ro/overlays.js +1 -0
- package/dist/translations/ro/retrieval.d.ts +1 -0
- package/dist/translations/ro/retrieval.js +1 -0
- package/dist/translations/ro/shared.d.ts +1 -0
- package/dist/translations/ro/shared.js +1 -0
- package/dist/translations/ro/utility.d.ts +1 -0
- package/dist/translations/ro/utility.js +1 -0
- package/dist/translations/ro/viewers.d.ts +1 -0
- package/dist/translations/ro/viewers.js +5 -0
- package/dist/translations/ro.d.ts +1 -0
- package/dist/translations/ro.js +1 -0
- package/dist/translations/ru/layout.js +1 -1
- package/dist/translations/ru/retrieval.js +1 -1
- package/dist/translations/ru/shared.js +1 -1
- package/dist/translations/zh-CN/layout.js +1 -1
- package/dist/translations/zh-CN/retrieval.js +1 -1
- package/dist/translations/zh-CN/shared.js +1 -1
- package/dist/utilities/format.d.ts +17 -0
- package/dist/utilities/format.js +1 -1
- package/dist/vue.d.ts +2 -2
- package/llms/components/lr-app-rail-group.md +87 -10
- package/llms/components/lr-app-rail-item.md +88 -11
- package/llms/components/lr-app-rail.md +88 -11
- package/llms/components/lr-attachment-trigger.md +21 -0
- package/llms/components/lr-bar-chart.md +3 -2
- package/llms/components/lr-bubble-chart.md +3 -2
- package/llms/components/lr-button.md +5 -4
- package/llms/components/lr-callout.md +10 -0
- package/llms/components/lr-card.md +2 -1
- package/llms/components/lr-chart.md +43 -12
- package/llms/components/lr-citation-badge.md +7 -1
- package/llms/components/lr-code-block.md +21 -0
- package/llms/components/lr-color-picker.md +12 -7
- package/llms/components/lr-combobox.md +20 -1
- package/llms/components/lr-confirm-bar.md +36 -7
- package/llms/components/lr-context-meter.md +17 -4
- package/llms/components/lr-date-input.md +7 -1
- package/llms/components/lr-date-picker.md +6 -0
- package/llms/components/lr-dialog.md +21 -0
- package/llms/components/lr-doughnut-chart.md +3 -2
- package/llms/components/lr-drawer.md +10 -0
- package/llms/components/lr-drop-zone.md +16 -7
- package/llms/components/lr-dropdown-item.md +7 -0
- package/llms/components/lr-entity-chip.md +7 -1
- package/llms/components/lr-export-button.md +7 -1
- package/llms/components/lr-file-input.md +21 -10
- package/llms/components/lr-filter-bar.md +177 -18
- package/llms/components/lr-flow-canvas.md +16 -9
- package/llms/components/lr-gauge.md +22 -2
- package/llms/components/lr-histogram.md +7 -2
- package/llms/components/lr-icon-button.md +17 -8
- package/llms/components/lr-input.md +3 -1
- package/llms/components/lr-line-chart.md +3 -2
- package/llms/components/lr-lite-chart.md +13 -0
- package/llms/components/lr-locale-picker.md +7 -1
- package/llms/components/lr-map.md +63 -6
- package/llms/components/lr-mention-popover.md +16 -3
- package/llms/components/lr-menu-item.md +7 -0
- package/llms/components/lr-menu.md +8 -1
- package/llms/components/lr-message-actions.md +10 -0
- package/llms/components/lr-model-select.md +8 -3
- package/llms/components/lr-native-time-input.md +8 -1
- package/llms/components/lr-number-input.md +8 -1
- package/llms/components/lr-option.md +19 -0
- package/llms/components/lr-otp-input.md +6 -0
- package/llms/components/lr-pie-chart.md +3 -2
- package/llms/components/lr-polar-area-chart.md +3 -2
- package/llms/components/lr-prompt-input.md +2 -2
- package/llms/components/lr-radar-chart.md +3 -2
- package/llms/components/lr-reorder-item.md +12 -0
- package/llms/components/lr-reorder-list.md +12 -0
- package/llms/components/lr-scatter-chart.md +3 -2
- package/llms/components/lr-select.md +19 -2
- package/llms/components/lr-sequence-strip.md +10 -4
- package/llms/components/lr-streaming-text-core.md +28 -11
- package/llms/components/lr-streaming-text.md +41 -6
- package/llms/components/lr-suggestion-chips.md +8 -4
- package/llms/components/lr-table.md +47 -10
- package/llms/components/lr-textarea.md +1 -1
- package/llms/components/lr-time-input.md +7 -1
- package/llms/components/lr-tool-call-chip.md +7 -1
- package/llms/components/lr-tour.md +7 -1
- package/llms/components/lr-usage-badge.md +7 -1
- package/llms/components/lr-virtual-list.md +53 -0
- package/llms/components/lr-voice-picker.md +7 -3
- package/llms/shared.md +175 -19
- package/llms/tokens.md +17 -1
- package/llms-full.txt +1214 -169
- package/package.json +43 -3
- package/registrations.json +1 -1
- 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** `dompurify`, `katex`, `marked`, `shiki` — see `llms/peers.md`
|
|
12
|
-
- **Themeable via**
|
|
12
|
+
- **Themeable via** 13 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
|
---
|
|
@@ -36,6 +36,32 @@ not a delta — this component does no accumulation or ordering of its own.
|
|
|
36
36
|
`<lr-code-block>`/`<lr-markdown>` support. Unset leaves the composed element's own default
|
|
37
37
|
untouched.
|
|
38
38
|
|
|
39
|
+
The rest of `<lr-markdown>`'s configuration surface forwards verbatim too, each defaulting to
|
|
40
|
+
exactly `<lr-markdown>`'s own default so leaving it unset renders identically to before these
|
|
41
|
+
properties existed:
|
|
42
|
+
|
|
43
|
+
- `tabSize: number = 4` (attribute `tab-size`) — forwarded to the composed `<lr-markdown>`'s own
|
|
44
|
+
`tabSize`.
|
|
45
|
+
- `htmlMode: 'sanitize' | 'escape' | 'trusted' = 'sanitize'` (attribute `html-mode`) — forwarded to
|
|
46
|
+
the composed `<lr-markdown>`'s own `htmlMode`.
|
|
47
|
+
- `gfm: boolean = true` — forwarded to the composed `<lr-markdown>`'s own `gfm`.
|
|
48
|
+
- `linkTarget: string | null = '_blank'` (attribute `link-target`) — forwarded to the composed
|
|
49
|
+
`<lr-markdown>`'s own `linkTarget`; the composed element always applies its own
|
|
50
|
+
`rel="noopener noreferrer"` guard whenever a `target` is emitted, including a forwarded
|
|
51
|
+
non-default value, and never a bare `opener`.
|
|
52
|
+
- `internalLinkPrefix: string = ''` (attribute `internal-link-prefix`) — forwarded to the composed
|
|
53
|
+
`<lr-markdown>`'s own `internalLinkPrefix`.
|
|
54
|
+
- `headingOffset: number = 0` (attribute `heading-offset`) — forwarded to the composed
|
|
55
|
+
`<lr-markdown>`'s own `headingOffset`.
|
|
56
|
+
- `highlightCode: boolean = true` (attribute `highlight-code`) — forwarded to the composed
|
|
57
|
+
`<lr-markdown>`'s own `highlightCode`.
|
|
58
|
+
- `headingAnchors: boolean = false` (attribute `heading-anchors`) — forwarded to the composed
|
|
59
|
+
`<lr-markdown>`'s own `headingAnchors`.
|
|
60
|
+
- `math: boolean = false` — forwarded to the composed `<lr-markdown>`'s own `math`; the transitive
|
|
61
|
+
`katex` peer is requested only once this is set.
|
|
62
|
+
- `maxHeight: string = ''` (attribute `max-height`) — forwarded to the composed `<lr-markdown>`'s
|
|
63
|
+
own `maxHeight`.
|
|
64
|
+
|
|
39
65
|
**Exported helper:** `looksLikeMarkdown(text: string): boolean` — runs a fixed, ordered list of
|
|
40
66
|
lightweight regexes (ATX heading, fenced code block, `**bold**`, `_italic_`, inline code, bullet
|
|
41
67
|
list item, numbered list item, `[text](url)` link, blockquote) against the whole string and returns
|
|
@@ -57,7 +83,12 @@ never see that update happen. See `<lr-thinking-panel>`'s own reference at `llms
|
|
|
57
83
|
|
|
58
84
|
**Slots:** none — content renders from `content`, not a slot.
|
|
59
85
|
|
|
60
|
-
**CSS parts:** `base`, `cursor` (only rendered while `streaming` is `true`)
|
|
86
|
+
**CSS parts:** `base`, `cursor` (only rendered while `streaming` is `true`), plus every part
|
|
87
|
+
`<lr-markdown>` documents forwarded verbatim (no aliasing — none collides with `base`/`cursor`)
|
|
88
|
+
from the composed `<lr-markdown>` in Markdown mode via `exportparts`: `content`, `heading`,
|
|
89
|
+
`paragraph`, `list`, `code-block`, `inline-code`, `link`, `table`, `blockquote`, `img`, `math`. A
|
|
90
|
+
host-level `lr-streaming-text::part(link)`/`::part(img)` rule reaches the rendered `<a>`/`<img>`
|
|
91
|
+
exactly as the same rule does applied directly to `<lr-markdown>`.
|
|
61
92
|
|
|
62
93
|
**Themeable custom properties:** `--lr-inline-cursor-width` (default
|
|
63
94
|
`var(--lr-size-0-125rem)`, the shared inline cursor width), `--lr-inline-cursor-height` (default
|
|
@@ -72,8 +103,9 @@ does not register it separately), so its optional-peer module graph includes `ma
|
|
|
72
103
|
stay on the peer-free plain-text path; Markdown rendering lazy-loads `marked` plus the default
|
|
73
104
|
`dompurify` sanitizer and falls back to readable plain text if either is unavailable. Fenced code
|
|
74
105
|
can additionally use `shiki`, whose absence only leaves code unhighlighted. The composed Markdown
|
|
75
|
-
implementation contains the opt-in `katex` loader
|
|
76
|
-
|
|
106
|
+
implementation contains the opt-in `katex` loader; this wrapper forwards its own `math` property
|
|
107
|
+
(default `false`) to the composed element verbatim, so `katex` is requested only once a consumer
|
|
108
|
+
sets `math` here.
|
|
77
109
|
|
|
78
110
|
```html
|
|
79
111
|
<lr-streaming-text id="out" coalesce-ms="80" streaming></lr-streaming-text>
|
|
@@ -98,8 +130,11 @@ never be left stranded mid-window, and a stream restarting on a reused element c
|
|
|
98
130
|
showing the previous stream's stale final content for the length of the window.
|
|
99
131
|
|
|
100
132
|
Rendering itself is never reimplemented here: Markdown mode composes `<lr-markdown>` directly,
|
|
101
|
-
forwarding this component's own `streaming` through as that component's `streaming` hint prop
|
|
102
|
-
`languages` verbatim
|
|
133
|
+
forwarding this component's own `streaming` through as that component's `streaming` hint prop,
|
|
134
|
+
`languages` verbatim, and the rest of `<lr-markdown>`'s configuration surface verbatim too
|
|
135
|
+
(`tabSize`, `htmlMode`, `gfm`, `linkTarget`, `internalLinkPrefix`, `headingOffset`,
|
|
136
|
+
`highlightCode`, `headingAnchors`, `math`, `maxHeight` — see **Properties** above); plain-text mode
|
|
137
|
+
renders into a `white-space: pre-wrap` span instead. The
|
|
103
138
|
blinking cursor degrades
|
|
104
139
|
to a static, always-visible bar under `prefers-reduced-motion: reduce`. In plain-text mode it sits
|
|
105
140
|
inline at the tail of the final character; in Markdown mode it renders as its own trailing block
|
|
@@ -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** 6 parts,
|
|
12
|
+
- **Themeable via** 6 parts, 4 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
|
---
|
|
@@ -25,12 +25,15 @@ identifier disappears, focus repairs to the nearest surviving occurrence without
|
|
|
25
25
|
external focus move.
|
|
26
26
|
|
|
27
27
|
**Properties:** `suggestions: readonly LyraChatSuggestion[] = []` (attribute: false) —
|
|
28
|
-
`LyraChatSuggestion { suggestionId: string; label: string; icon?: string; detail?: string }`
|
|
28
|
+
`LyraChatSuggestion { suggestionId: string; label: string; icon?: string; detail?: string; disabled?: boolean }`
|
|
29
29
|
(exported here). Identifiers must be nonempty and unique; invalid/later duplicates are omitted with
|
|
30
30
|
the first valid occurrence winning. The input is clone-owned, bounded, and frozen; reassign a new
|
|
31
31
|
array after changing the sequence or a row. `icon` is an optional
|
|
32
32
|
peer-neutral literal hint (for example, an emoji), rendered decoratively before the text, and
|
|
33
|
-
`detail` is an optional secondary line.
|
|
33
|
+
`detail` is an optional secondary line. `disabled` marks a suggestion non-actionable: its chip
|
|
34
|
+
renders a genuinely disabled `<button>` (no roving tab stop, no hover/press affordance), activating
|
|
35
|
+
it emits nothing, and arrow-key/Home/End roving navigation steps past it. Empty renders nothing at
|
|
36
|
+
all. `wrap: boolean = false`
|
|
34
37
|
(reflected) — wraps into multiple rows instead of a single horizontally scrollable line. `label?:
|
|
35
38
|
string` — accessible name for the group. Omitting it uses the localized `suggestionsLabel`; an
|
|
36
39
|
explicit empty string intentionally leaves the group unnamed.
|
|
@@ -49,7 +52,8 @@ cannot do (once the chips wrap, the row fills the available inline size and each
|
|
|
49
52
|
start). `--lr-suggestion-chips-hover-bg` (default `var(--lr-color-brand-quiet)`) — a `chip`'s
|
|
50
53
|
background on hover. `--lr-suggestion-chips-hover-border` (default `var(--lr-color-brand)`) — a
|
|
51
54
|
`chip`'s border color on hover. All three are declared as `var()` fallbacks at the point of use, not
|
|
52
|
-
on `:host`.
|
|
55
|
+
on `:host`. `--lr-suggestion-chips-disabled-opacity` (default `0.5`) — opacity of a chip whose
|
|
56
|
+
suggestion sets `disabled`. Plus shared tokens `--lr-space-xs/-m/-2xs`,
|
|
53
57
|
`--lr-color-border/-surface/-text/-text-quiet`, `--lr-radius-pill`, `--lr-font-size-xs`,
|
|
54
58
|
`--lr-focus-ring-width/-color/-offset`.
|
|
55
59
|
|
|
@@ -61,9 +61,11 @@ unchanged.
|
|
|
61
61
|
headerCell?, width?, minWidth?, maxWidth?,
|
|
62
62
|
resizable?, sortable?, sortValue?, defaultSortDir?: 'asc'|'desc', align?: 'start'|'end',
|
|
63
63
|
priority?: 'medium'|'low',
|
|
64
|
-
sticky?: 'start'|'end', editTrigger?: 'double-click'|'always', editValue?,
|
|
64
|
+
sticky?: 'start'|'end', editTrigger?: 'double-click'|'always', editValue?, editLabel?: (row) => string,
|
|
65
|
+
editType?: 'text'|'number'|'select',
|
|
65
66
|
editOptions?: { value: string; label: string }[], footer?, cellStyle?, heatValue?,
|
|
66
|
-
cell: (row) => unknown }` —
|
|
67
|
+
cell: (row) => unknown }` — `cell` is required for every `editTrigger` except `'always'`, whose
|
|
68
|
+
persistent editor renders unconditionally so the table's render path never falls back to it —
|
|
67
69
|
`sortValue(row) => string | number | null | undefined` supplies the comparable value backing
|
|
68
70
|
client-mode sorting for that column: a finite number sorts numerically, a string sorts through an
|
|
69
71
|
`Intl.Collator` built from the component's effective locale with `numeric: true` (so `item2`
|
|
@@ -103,13 +105,15 @@ cell: (row) => unknown }` —
|
|
|
103
105
|
own ramp-token convention; `cellStyle` is applied directly to the generated `<td>` via `styleMap` — e.g. a computed heat-tint
|
|
104
106
|
background a `cell()`-returned inner element can't paint into the cell's own padding — omit it for
|
|
105
107
|
no per-cell style override (the default, unchanged output);
|
|
106
|
-
`editTrigger: 'double-click'` opens a native editor on that cell's double-click
|
|
107
|
-
time), while `'always'` renders a persistent editor in every body cell from first paint, for a
|
|
108
|
+
`editTrigger: 'double-click'` opens a native editor on that cell's double-click, `F2`, or `Enter`
|
|
109
|
+
(one cell at a time), while `'always'` renders a persistent editor in every body cell from first paint, for a
|
|
108
110
|
settings/rate-style column meant to be typed straight into — while `editValue` supplies the editor
|
|
109
111
|
value and `editType` selects `'text'`, `'number'`, or `'select'` (a native `<select>` populated
|
|
110
112
|
from `editOptions: { value: string; label: string }[]`, one `<option>` per entry in order; a
|
|
111
113
|
`'select'` column with no `editOptions` renders an empty, valueless `<select>` instead of
|
|
112
|
-
throwing)
|
|
114
|
+
throwing); `editLabel(row) => string`, read once per row exactly like `editValue`/`cellTitle`,
|
|
115
|
+
overrides that editor's accessible name — omit it and every editor in the column shares the same
|
|
116
|
+
interpolated `tableEditCell` name instead (see the accessibility note under `editTrigger` below)
|
|
113
117
|
`cellTitle(row) => string | undefined` is the `title` analogue of `cellStyle`, applied directly to
|
|
114
118
|
the generated `<td>` — e.g. the untruncated text behind an ellipsized cell, or a formatted
|
|
115
119
|
timestamp behind a relative one;
|
|
@@ -131,8 +135,21 @@ cell: (row) => unknown }` —
|
|
|
131
135
|
Enter commits and closes, Escape cancels and closes, and blur-after-change commits. `'always'`
|
|
132
136
|
renders an editor in
|
|
133
137
|
every body cell of that column, permanently:
|
|
134
|
-
- **
|
|
135
|
-
|
|
138
|
+
- **Keyboard entry (`'double-click'` columns).** The resting (not-currently-editing) cell of a
|
|
139
|
+
`'double-click'` column is its own roving-focus stop — `tabindex="-1"`, carrying `[data-editable]`
|
|
140
|
+
— reachable once the row itself has focus: ArrowRight (ArrowLeft under RTL) enters at the first
|
|
141
|
+
editable cell in the row and steps forward through any further ones; ArrowLeft (ArrowRight under
|
|
142
|
+
RTL) steps back and, from the first editable cell, returns focus to the row. None of this is a Tab
|
|
143
|
+
stop — a table with a `'double-click'` column gains no new entry in the page's Tab order, only a
|
|
144
|
+
new arrow-reachable one — and a table with no `editTrigger` column at all renders no `tabindex`/
|
|
145
|
+
`[data-editable]` anywhere. `F2` or `Enter` on the focused cell opens its editor; `Enter` on the
|
|
146
|
+
row itself (no cell focused) still only activates the row. `editCell(rowKey, columnKey)` (see
|
|
147
|
+
Methods above) is the same open action as a public method. Closing the editor, by commit or by
|
|
148
|
+
cancel, returns focus to the cell that opened it.
|
|
149
|
+
- **Focus model (`'always'` columns).** Each editor is a plain tab stop — no `tabindex` of its own
|
|
150
|
+
— exactly like the
|
|
151
|
+
existing row-expand toggle, and stays _outside_ the header/row/cell roving-tabindex model. Tab
|
|
152
|
+
walks
|
|
136
153
|
down the column; arrow keys still navigate the grid from a row's own roving stop, and act as
|
|
137
154
|
ordinary caret movement once focus is inside a field. Non-editable columns are unaffected.
|
|
138
155
|
- **Value binding.** A persistent `'text'`/`'number'` editor binds its `value` as a **content
|
|
@@ -151,8 +168,14 @@ cell: (row) => unknown }` —
|
|
|
151
168
|
`<input>` (the typed value rides along) and the table restores focus to the same logical cell
|
|
152
169
|
afterwards. If the focused row leaves the rendered page entirely (pagination, filtering), focus
|
|
153
170
|
is simply lost rather than yanked to whichever unrelated row now sits in that position.
|
|
154
|
-
- Each editor
|
|
155
|
-
|
|
171
|
+
- **Accessible name.** Each editor's name is `columns[].editLabel(row)` when the column defines
|
|
172
|
+
it, or otherwise the interpolated `tableEditCell` string (`Edit {column}`) — identical for every
|
|
173
|
+
row in that column, since the default has no row context. That default is adequate for
|
|
174
|
+
`'double-click'`, where at most one editor is ever open, but not for `'always'`: every row's
|
|
175
|
+
editor there is a permanent, individually focusable Tab stop, so leaving `editLabel` unset on an
|
|
176
|
+
`'always'` column exposes as many identically named controls as there are rows (e.g. fifty "Edit
|
|
177
|
+
Status" comboboxes), failing WCAG 2.4.6 and 1.3.1. Define `editLabel` for any `'always'` column
|
|
178
|
+
to give each row's editor its own name.
|
|
156
179
|
- `hasHiddenPriorityColumns: boolean = false` (attribute `has-hidden-priority-columns`, reflected) —
|
|
157
180
|
computed/read-only and true only while a priority column is actually hidden. It becomes false
|
|
158
181
|
when `priorityColumnsVisible` reveals the columns. Measured via a `ResizeObserver` on
|
|
@@ -290,6 +313,14 @@ cell: (row) => unknown }` —
|
|
|
290
313
|
rendered panel anyway, `expandedContentElement(rowKey)` (below) resolves that `<td>`;
|
|
291
314
|
`rowElement(rowKey)` does not, because the panel is a sibling `<tr>` rather than part of the row
|
|
292
315
|
- `canExpand?: (row: T) => boolean` (attribute: false) — optional per-row gate for expansion
|
|
316
|
+
- `rowExpandLabel?: (row: T, expanded: boolean) => string | undefined` (attribute: false) —
|
|
317
|
+
accessible name for one row's expand/collapse chevron, read once per render for that row,
|
|
318
|
+
exactly like a column's `editLabel`/`cellTitle`; consumer-owned text used verbatim, never
|
|
319
|
+
passed through localization. Omit it and every chevron shares the same localized
|
|
320
|
+
`expand`/`collapse` name, which carries no row context — fine for a handful of rows, but each
|
|
321
|
+
chevron is its own Tab stop, so a long table otherwise announces the same two names over and
|
|
322
|
+
over with no way to tell the rows apart. There is no default row context to derive one from
|
|
323
|
+
here: this component has no row-header notion (`rowKey` is an opaque identity, not a label)
|
|
293
324
|
- `expansionMode: 'none'|'single'|'multiple' = 'none'` (attribute `expansion-mode`, reflected) —
|
|
294
325
|
mirrors `selectionMode` member for member, for expansion. The default `'none'` keeps
|
|
295
326
|
`expandedRowKeys` fully consumer-controlled: an activation only reports `lr-row-expand-toggle`.
|
|
@@ -396,8 +427,14 @@ cell: (row) => unknown }` —
|
|
|
396
427
|
- `expandedContentElement(rowKey)` — the rendered `[part='expanded-cell']` holding that row's
|
|
397
428
|
`expandedContent(row)` output, or `null` when the row is not currently rendered, is not expanded,
|
|
398
429
|
or the table sets no `expandedContent`
|
|
430
|
+
- `editCell(rowKey, columnKey)` — opens the inline editor at that row/column pair, exactly as a
|
|
431
|
+
double-click, `F2`, or `Enter` on the cell's own focus stop would (see `columns[].editTrigger`
|
|
432
|
+
below) — the entry point for a consumer's own key binding or menu action. A no-op for an unknown
|
|
433
|
+
row key, an unknown column key, or a column with no `editTrigger`. For an `editTrigger: 'always'`
|
|
434
|
+
column (already open from first paint) it moves focus into that editor instead of opening
|
|
435
|
+
anything.
|
|
399
436
|
|
|
400
|
-
|
|
437
|
+
The first three exist for code that has to reach content a `cell(row)`/`expandedContent(row)` callback
|
|
401
438
|
rendered into this component's shadow root — measuring it, scrolling it into view, or applying a
|
|
402
439
|
style `::part()` cannot express, since only pseudo-classes may follow a part selector. One method per
|
|
403
440
|
callback, and the split is not cosmetic: the expansion panel is a **sibling** `<tr part='expanded-row'>`
|
|
@@ -82,7 +82,7 @@ disabled state.
|
|
|
82
82
|
| `enterKeyHint` | `enterkeyhint` | `string` | `''` | Virtual-keyboard Enter-key hint forwarded to the native `<textarea>`. |
|
|
83
83
|
| `minlength` | `minlength` | `number \| undefined` | `undefined` | Minimum text length; forwarded to the native `<textarea>` and reported as `validity.tooShort`. |
|
|
84
84
|
| `maxlength` | `maxlength` | `number \| undefined` | `undefined` | Maximum text length; forwarded to the native `<textarea>` (which also stops typing past it) and reported as `validity.tooLong`. |
|
|
85
|
-
| `debounce` | `debounce` | `number \| undefined` | `undefined` | How long (ms) to wait after the last keystroke before emitting one `lr-input-settled`, while `input`/`lr-input` keep firing per keystroke as before. Omitted, `0`, or non-finite means no debounce: `lr-input-settled` never fires. A pending debounce is flushed immediately by `change`/Enter/blur and cancelled with no stray settle by disconnection and a programmatic `value` write. Shares its `DebounceController` primitive with `lr-filter-bar`'s own per-filter `debounce` and with `lr-input`'s identical property. |
|
|
85
|
+
| `debounce` | `debounce` | `number \| undefined` | `undefined` | How long (ms) to wait after the last keystroke before emitting one `lr-input-settled`, while `input`/`lr-input` keep firing per keystroke as before. Omitted, `0`, or non-finite means no debounce: `lr-input-settled` never fires. A pending debounce is flushed immediately by `change`/Enter/blur and cancelled with no stray settle by disconnection and by a programmatic `value` write that changes the value. A write of the value already held leaves it pending, so a framework binding that writes the just-typed value back on each render (the controlled-input pattern) still settles. Shares its `DebounceController` primitive with `lr-filter-bar`'s own per-filter `debounce` and with `lr-input`'s identical property. |
|
|
86
86
|
| `name` | `name` | `string` | `''` | Form field name. |
|
|
87
87
|
| `disabled` | `disabled` | `boolean` | `false` | Disables the control. |
|
|
88
88
|
| `required` | `required` | `boolean` | `false` | Participates in native constraint validation. |
|
|
@@ -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** 23 parts,
|
|
12
|
+
- **Themeable via** 23 parts, 35 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
|
---
|
|
@@ -178,6 +178,12 @@ mode the raised tone is already distinct from the page, so this panel never had
|
|
|
178
178
|
reads-as-a-hole problem the family exists to fix. Setting `--lr-overlay-surface` still repaints it
|
|
179
179
|
along with every other popup.
|
|
180
180
|
|
|
181
|
+
`--lr-positioning-strategy` (16.0.0) — the `popup` panel reads this same cascading
|
|
182
|
+
`absolute`/`fixed` override documented on `<lr-popover>` when it is (re)positioned, falling back to
|
|
183
|
+
its own `fixed` default when nothing is set. There is no per-instance `positioning-strategy`
|
|
184
|
+
property on `<lr-time-input>`; set the custom property on `:root`, a theme, or one clipping
|
|
185
|
+
ancestor to change every unset time input beneath it.
|
|
186
|
+
|
|
181
187
|
```html
|
|
182
188
|
<lr-time-input
|
|
183
189
|
label="Start time"
|
|
@@ -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** 10 parts,
|
|
12
|
+
- **Themeable via** 10 parts, 10 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
|
---
|
|
@@ -86,6 +86,12 @@ The anchored detail tooltip is a floating surface and paints from the **shared o
|
|
|
86
86
|
declared on `:host`, so one declaration on `:root` — or on any ancestor, to scope it — retints this
|
|
87
87
|
surface together with every other floating surface in the library. `--lr-overlay-radius` (default `var(--lr-radius)`) is the matching corner radius.
|
|
88
88
|
|
|
89
|
+
`--lr-positioning-strategy` (16.0.0) — the detail tooltip reads this same cascading
|
|
90
|
+
`absolute`/`fixed` override documented on `<lr-popover>` when it is (re)positioned, falling back to
|
|
91
|
+
its own `fixed` default when nothing is set. There is no per-instance `positioning-strategy`
|
|
92
|
+
property on `<lr-tool-call-chip>`; set the custom property on `:root`, a theme, or one clipping
|
|
93
|
+
ancestor to change every unset chip beneath it.
|
|
94
|
+
|
|
89
95
|
**Optional peer deps:** none.
|
|
90
96
|
|
|
91
97
|
```html
|
|
@@ -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 parts,
|
|
12
|
+
- **Themeable via** 12 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
|
---
|
|
@@ -104,6 +104,12 @@ shared ceiling that keeps any floating surface inside a narrow viewport. `lr-tou
|
|
|
104
104
|
retuning `--lr-theme-popover-viewport-clamp` once at `:root` narrows or widens all three together
|
|
105
105
|
rather than per component.
|
|
106
106
|
|
|
107
|
+
`--lr-positioning-strategy` (16.0.0) — the step popover reads this same cascading `absolute`/`fixed`
|
|
108
|
+
override documented on `<lr-popover>` when a step is (re)positioned, falling back to its own `fixed`
|
|
109
|
+
default when nothing is set. There is no per-instance `positioning-strategy` property on `<lr-tour>`;
|
|
110
|
+
set the custom property on `:root`, a theme, or one clipping ancestor to change every unset tour
|
|
111
|
+
beneath it.
|
|
112
|
+
|
|
107
113
|
**Known gotchas:**
|
|
108
114
|
|
|
109
115
|
- By default the spotlighted target is **non-interactive**: it stays visible and announceable (not
|
|
@@ -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** 7 parts,
|
|
12
|
+
- **Themeable via** 7 parts, 5 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
|
---
|
|
@@ -56,6 +56,12 @@ family** (16.0.0): `--lr-overlay-surface` (default `var(--lr-color-surface-overl
|
|
|
56
56
|
ancestor, to scope it — retints this surface together with every other floating surface in the
|
|
57
57
|
library. `--lr-overlay-radius` (default `var(--lr-radius)`) is the matching corner radius.
|
|
58
58
|
|
|
59
|
+
`--lr-positioning-strategy` (16.0.0) — the breakdown tooltip reads this same cascading
|
|
60
|
+
`absolute`/`fixed` override documented on `<lr-popover>` when it is (re)positioned, falling back to
|
|
61
|
+
its own `fixed` default when nothing is set. There is no per-instance `positioning-strategy`
|
|
62
|
+
property on `<lr-usage-badge>`; set the custom property on `:root`, a theme, or one clipping
|
|
63
|
+
ancestor to change every unset usage badge beneath it.
|
|
64
|
+
|
|
59
65
|
```html
|
|
60
66
|
<lr-chat-message message-role="assistant" status="sent">
|
|
61
67
|
<lr-usage-badge
|
|
@@ -101,6 +101,17 @@ list's `base` scroll container exposes horizontal scrolling for that explicit op
|
|
|
101
101
|
number `56` and fixes every row to that many pixels. Property callers assign a number, not a
|
|
102
102
|
numeric string. Anything else (non-numeric, zero, negative, non-finite) safely canonicalizes to
|
|
103
103
|
`'auto'` rather than throwing.
|
|
104
|
+
- `rowProjection: 'shadow' | 'light' = 'shadow'` (attribute `row-projection`) — where
|
|
105
|
+
`renderItem`'s output is instantiated. `'shadow'` (default) stamps it inside this component's own
|
|
106
|
+
shadow root, so only inherited custom properties and the public row parts reach it. `'light'`
|
|
107
|
+
renders the windowed rows into the host's own light DOM instead, assigned into the shadow viewport
|
|
108
|
+
through internal named slots, so ordinary document CSS styles a virtualized row exactly as it
|
|
109
|
+
styles the same row unvirtualized. The component keeps owning windowing, measurement, spacer
|
|
110
|
+
sizing, `scrollToIndex()`, the external-scroller mode and the ARIA contract either way, and
|
|
111
|
+
positioning stays on the shadow-side `[part="row"]` wrapper that document CSS cannot select — so
|
|
112
|
+
consumer styles can never break windowing. Any other value canonicalizes to `'shadow'`. Left
|
|
113
|
+
unset, the rendered output is byte-identical to before and the host's light DOM stays empty.
|
|
114
|
+
See **Light-DOM row projection** below for the trade-offs it carries.
|
|
104
115
|
- `itemRole: 'listitem' | 'row' = 'listitem'` (attribute `item-role`) — `'listitem'` (default)
|
|
105
116
|
preserves the plain `role="list"`/`role="listitem"` mapping with `aria-setsize`/`aria-posinset`.
|
|
106
117
|
`'row'` additionally maps `[part="base"]` to `role="rowgroup"`, `[part="spacer"]` to
|
|
@@ -355,4 +366,46 @@ default estimate with sparse `ResizeObserver` measurements for rows that have ac
|
|
|
355
366
|
decides: groups render before the rows, so an active row wins while (and only while) it needs to,
|
|
356
367
|
which is right — a group header is a non-interactive `pointer-events: none` label.
|
|
357
368
|
|
|
369
|
+
### Light-DOM row projection
|
|
370
|
+
|
|
371
|
+
`rowProjection="light"` exists for one shape: an application whose list rows are already styled by
|
|
372
|
+
its own global stylesheet, and which therefore could not adopt virtualization without rehoming a
|
|
373
|
+
dozen descendant rules per row into a new custom element or a growing set of custom properties. In
|
|
374
|
+
projection mode the windowed rows render into the host's own light DOM, so ordinary document CSS
|
|
375
|
+
reaches row content directly.
|
|
376
|
+
|
|
377
|
+
Positioning, measurement and semantics stay where they were. The `[part="row"]` wrapper remains in
|
|
378
|
+
the shadow root and keeps `position: absolute`, the per-frame `transform`, `role`, `aria-setsize`/
|
|
379
|
+
`aria-posinset` (or `aria-rowindex`) and the `ResizeObserver` box — document CSS cannot select it,
|
|
380
|
+
so consumer styles can never break windowing. The whole part vocabulary (`base`, `spacer`, `row`,
|
|
381
|
+
`group`, `sticky-group`) keeps matching in both modes, and `row-height="auto"` still measures
|
|
382
|
+
projected content because the light row is an ordinary in-flow child of that wrapper.
|
|
383
|
+
|
|
384
|
+
`projectedRows: HTMLElement[]` returns the projected light-DOM row wrappers in item order, and is
|
|
385
|
+
empty outside projection mode. The exported type is `LyraVirtualListRowProjection`; the reserved
|
|
386
|
+
attributes marking library-owned light-DOM nodes are exported as `VIRTUAL_LIST_ROW_ATTRIBUTE`
|
|
387
|
+
(`data-lr-virtual-list-row`) and `VIRTUAL_LIST_STICKY_ATTRIBUTE` (`data-lr-virtual-list-sticky`).
|
|
388
|
+
|
|
389
|
+
**Known gotchas, all inherent to handing the cascade back to the consumer:**
|
|
390
|
+
|
|
391
|
+
- **One component-owned wrapper sits between the host and your markup.** A slot cannot assign a text
|
|
392
|
+
node or a multi-root fragment by attribute, so each row's content lives inside a wrapper carrying
|
|
393
|
+
`data-lr-virtual-list-row`. Descendant selectors (`lr-virtual-list .row-title`) port unchanged;
|
|
394
|
+
child combinators (`lr-virtual-list > .row`), `:nth-child`, `:first-child` and sibling combinators
|
|
395
|
+
written against the unvirtualized markup do not. `:nth-child` on the wrappers reflects the current
|
|
396
|
+
*window*, not the item index.
|
|
397
|
+
- **`closest('[part="row"]')` stops resolving.** A delegated listener on the host now sees an
|
|
398
|
+
un-retargeted `event.target` inside the light DOM. Use `closest('[data-lr-virtual-list-row]')`.
|
|
399
|
+
- **The document cascade now reaches row content**, including resets and element-level rules that
|
|
400
|
+
previously could not, so a projected row can look different from the same row in shadow mode.
|
|
401
|
+
- **Per-row light-DOM state does not survive a disconnect/reconnect.** Disconnect removes the
|
|
402
|
+
projected rows completely (no rows, no markers, no anchor left behind), so a reparenting move
|
|
403
|
+
rebuilds them. Scroll position, measurements and the window are unaffected — they live in
|
|
404
|
+
component state, not in the rows.
|
|
405
|
+
- **Projection activates one task after hydration.** A server render has no DOM to project into, so
|
|
406
|
+
the first window is shadow-rendered, hydration matches the server markup, and the rows then swap
|
|
407
|
+
into the light DOM on the next task.
|
|
408
|
+
- **A row taken out of flow collapses its wrapper.** `position: fixed`/`absolute` or
|
|
409
|
+
`display: none` on your own row leaves nothing for the wrapper to measure.
|
|
410
|
+
|
|
358
411
|
---
|
|
@@ -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** 17 parts,
|
|
12
|
+
- **Themeable via** 17 parts, 28 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
|
---
|
|
@@ -43,8 +43,11 @@ popup. Ordinary keyboard behavior resumes after composition.
|
|
|
43
43
|
**Exported types:** `LyraVoiceCatalogEntry extends LyraCatalogEntry { language?: string;
|
|
44
44
|
description?: string; previewUrl?: string }` — `language`/`description` render as a quiet
|
|
45
45
|
`[part="option-meta"]` second line. Voice catalogs use the shared
|
|
46
|
-
`LyraCatalog<LyraVoiceCatalogEntry>` homogeneous readonly union documented under `lr-model-select
|
|
47
|
-
|
|
46
|
+
`LyraCatalog<LyraVoiceCatalogEntry>` homogeneous readonly union documented under `lr-model-select`,
|
|
47
|
+
including the shared `disabled` field: a disabled voice row cannot be selected by click or keyboard
|
|
48
|
+
and is stepped over by arrow-key/Home/End navigation, but its own `[part="option-preview"]` stays
|
|
49
|
+
independently clickable, since previewing a voice is a separate affordance from selecting it. The
|
|
50
|
+
public `size` property uses `LyraSize`, including the long-form aliases.
|
|
48
51
|
`LyraVoicePickerSelectionDirection = 'forward' | 'backward' | 'none'` is the native
|
|
49
52
|
selection direction exposed in free-text mode.
|
|
50
53
|
|
|
@@ -204,6 +207,7 @@ trigger), `expand-icon`, `empty`, `hint`, `error`.
|
|
|
204
207
|
- `--lr-voice-picker-option-selected-font-weight` — Selected option label weight. Default: `var(--lr-font-weight-semibold)`.
|
|
205
208
|
- `--lr-voice-picker-option-synthetic-border-style` — Synthetic stale-value row border style. Default: `dashed`.
|
|
206
209
|
- `--lr-voice-picker-option-synthetic-border-color` — Synthetic stale-value row border color. Default: `var(--lr-color-border)`.
|
|
210
|
+
- `--lr-voice-picker-option-disabled-opacity` — Opacity of an option row whose catalog entry sets `disabled`. Default: `0.5`.
|
|
207
211
|
- `--lr-voice-picker-option-synthetic-font-style` — Synthetic stale-value option-label font style. Default: `italic`.
|
|
208
212
|
- `--lr-voice-picker-preview-hover-bg` — Preview hover fill. Default: `var(--lr-color-brand-quiet)`.
|
|
209
213
|
- `--lr-voice-picker-preview-hover-color` — Preview hover icon. Default: `var(--lr-color-brand)`.
|