@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** `maplibre-gl` — see `llms/peers.md`
|
|
12
|
-
- **Themeable via**
|
|
12
|
+
- **Themeable via** 22 parts, 8 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
|
---
|
|
@@ -72,10 +72,18 @@ LyraMapLegendPattern }`, where `LyraMapLegendPattern` is `'solid' | 'diagonal' |
|
|
|
72
72
|
'crosshatch'`. Pattern is required so color is never the sole category cue. At most 100 valid
|
|
73
73
|
rows, 256 characters per label, and 8,192 aggregate label characters are retained; colors are
|
|
74
74
|
bounded before validation. The overlay scrolls within the map allocation.
|
|
75
|
+
A row may also carry its own `value`: the category key that row stands for — the same string a
|
|
76
|
+
`point.colors`/`point.icons` entry matches against `point.field`/`point.iconField`. It is
|
|
77
|
+
trimmed, bounded to 256 characters (sliced, never ellipsized, so a bounded key still matches) and
|
|
78
|
+
**retained** in the canonical readback; a non-string, empty or whitespace-only key leaves no
|
|
79
|
+
`value` property on the frozen row at all. It is what makes a row operable under
|
|
80
|
+
`legendInteractive`, and it does not count toward the label budget.
|
|
75
81
|
A row may also carry `icon`, deliberately the same record a `point.icons` entry uses — hand the
|
|
76
82
|
legend the very icon object its point layer renders and the key shows the symbol drawn on the
|
|
77
|
-
map instead of describing it in colour alone. The
|
|
78
|
-
accepted so a pass-through needs no reshaping, and
|
|
83
|
+
map instead of describing it in colour alone. The **icon record's own** `value` is a separate
|
|
84
|
+
field from the row-level one above: it is accepted so a pass-through needs no reshaping, and it
|
|
85
|
+
is still left out of the canonical readback. A row's key is never derived from its glyph's, which
|
|
86
|
+
would silently make a row interactive that the author never marked;
|
|
79
87
|
`path`, `viewBox`, `mode`, `strokeWidth`, `lineCap` and `lineJoin` keep their point-icon meaning
|
|
80
88
|
and their point-icon defaults, and the same validation applies (path data only, at most 8,192
|
|
81
89
|
characters, positive `viewBox` dimensions). An unusable record is dropped and that row keeps
|
|
@@ -84,6 +92,22 @@ LyraMapLegendPattern }`, where `LyraMapLegendPattern` is `'solid' | 'diagonal' |
|
|
|
84
92
|
omittedCount, truncatedLabelCount, truncated }` result for the latest assignment. A truncated
|
|
85
93
|
projection renders a localized visible `1–N of M items` summary rather than silently claiming
|
|
86
94
|
the bounded rows are complete.
|
|
95
|
+
- `legendInteractive: boolean = false` (attribute `legend-interactive`, reflected) — opt-in: turns
|
|
96
|
+
every legend row that carries a `value` into a keyboard-operable visibility toggle, and leaves a
|
|
97
|
+
row without one inert. Unset, the legend renders exactly the read-only key it rendered before —
|
|
98
|
+
no `button`, no extra attribute, and no extra MapLibre paint key. Each toggle is an independently
|
|
99
|
+
tabbable native `button`, so Enter and Space are the platform's own activation and there is no
|
|
100
|
+
roving tabindex: a 100-row interactive legend contributes 100 tab stops, exactly as a 100-series
|
|
101
|
+
`lr-chart` legend does. Each interactive row also grows to the shared `--lr-icon-button-size`
|
|
102
|
+
hit-area floor (WCAG 2.5.8), which the panel's existing `max-block-size` and scrolling contain.
|
|
103
|
+
- `hiddenCategories: readonly string[] = []` (attribute: false) — the complete controlled set of
|
|
104
|
+
muted category keys, mirroring `lr-chart`'s `hiddenDatasets`. Clone-owned and frozen; non-string,
|
|
105
|
+
empty, whitespace-only and duplicate entries are dropped (first occurrence wins, matching
|
|
106
|
+
`point.colors`), and at most 100 keys are retained. Honoured on the **first** render and the
|
|
107
|
+
first MapLibre paint, not only after a user toggle, so a host can restore a saved selection. An
|
|
108
|
+
empty array deliberately means every category is visible. It is controlled public state and
|
|
109
|
+
survives a disconnect/reconnect. A hidden key that matches no category is harmless. Assigning it
|
|
110
|
+
programmatically emits nothing.
|
|
87
111
|
- `choropleth?: LyraMapChoroplethLayer` (attribute: false) — `LyraMapChoroplethLayer { sourceId:
|
|
88
112
|
string; geojson: GeoJSON.FeatureCollection; field: string; stops: [number, string][]; interpolation?:
|
|
89
113
|
'linear' | 'logarithmic' | 'step'; stepBaseColor?: string }` (interpolated
|
|
@@ -364,7 +388,8 @@ payload beside the map.
|
|
|
364
388
|
`LyraMapHeatmapZoomValue`, `LyraMapLineOptions`, `LyraMapPointOptions`, `LyraMapPointRadiusOptions`,
|
|
365
389
|
`LyraMapPointRadiusInterpolation`, `LyraMapPointIcon`, `LyraMapPointIconMode`,
|
|
366
390
|
`LyraMapPointIconLineCap`, `LyraMapPointIconLineJoin`, `LyraMapMarker`, `LyraMapMarkerActivationDetail`,
|
|
367
|
-
`LyraMapMarkerActivationSource`, `LyraMapStyleSpecification`, and
|
|
391
|
+
`LyraMapMarkerActivationSource`, `LyraMapLegendToggleDetail`, `LyraMapStyleSpecification`, and
|
|
392
|
+
`LyraMapInstance`.
|
|
368
393
|
The former `LegendEntry`, `ChoroplethLayer`, `GeoJsonDataLayer`, and `MapMarker` names are removed
|
|
369
394
|
in v9 rather than retained as aliases.
|
|
370
395
|
|
|
@@ -380,7 +405,17 @@ shared `maplibre-gl` import without constructing a map or allocating a WebGL con
|
|
|
380
405
|
an element.
|
|
381
406
|
|
|
382
407
|
**Events:** `lr-map-load` (fired once, after the underlying map's own `'load'`),
|
|
383
|
-
`lr-map-
|
|
408
|
+
`lr-map-legend-toggle` (**cancelable**; frozen `LyraMapLegendToggleDetail { value, visible,
|
|
409
|
+
hiddenCategories }` — the activated row's category key, its proposed visibility, and the complete
|
|
410
|
+
proposed hidden set in the order it would be committed, with the array detached and frozen so a
|
|
411
|
+
listener cannot mutate the component's state through it). `preventDefault()` is a genuine veto, not
|
|
412
|
+
a notification: `hiddenCategories` is not written, the row's `aria-pressed` does not change, the
|
|
413
|
+
MapLibre paint is untouched, and nothing is announced — which is exactly what a host needs to own
|
|
414
|
+
the set and assign its own value instead. There is deliberately no second, confirmation event: the
|
|
415
|
+
committed state is `hiddenCategories`, which the host already observes, so a paired before/after
|
|
416
|
+
vocabulary would be permanent public surface nobody asked for. The event is a DOM-interaction
|
|
417
|
+
proposal only, so a programmatic `hiddenCategories` assignment reconciles without emitting it.
|
|
418
|
+
Also `lr-map-marker-activate` (non-cancelable; frozen `LyraMapMarkerActivationDetail { id, lngLat,
|
|
384
419
|
marker, source }`; `id` is the trimmed explicit identity or `undefined`, `marker` is the accepted
|
|
385
420
|
declarative snapshot, and `source` is `'pointer' | 'keyboard'`), and `lr-map-click`
|
|
386
421
|
(frozen `detail: { readonly lngLat: readonly [lng, lat], readonly feature?, readonly origin?,
|
|
@@ -404,7 +439,8 @@ markup as described above.
|
|
|
404
439
|
stays positioned with the map instead of floating beside it. Supplying it opens the panel even
|
|
405
440
|
when `legend` and `legendGradient` are both empty.
|
|
406
441
|
|
|
407
|
-
**CSS parts:** `base`, `container`, `legend`, `legend-swatch`, `legend-
|
|
442
|
+
**CSS parts:** `base`, `container`, `legend`, `legend-swatch`, `legend-toggle`,
|
|
443
|
+
`legend-toggle-hidden`, `legend-gradient`, `legend-lo`,
|
|
408
444
|
`legend-hi`, `legend-limit`, `marker`, `popup`,
|
|
409
445
|
`popup-content`, `popup-close-button`, `attribution`, `attribution-toggle`, `navigation`,
|
|
410
446
|
`zoom-in`, `zoom-out`, `compass`, `scale`, `error`.
|
|
@@ -429,6 +465,18 @@ visible label carries its meaning. That association is advertised only while it
|
|
|
429
465
|
the optional `maplibre-gl` peer is still loading, and after any failure, there is no map
|
|
430
466
|
container in the tree, so `legend` withholds `aria-controls` rather than leaving a dangling
|
|
431
467
|
idref.
|
|
468
|
+
Under `legendInteractive`, a row carrying a `value` wraps its swatch and label in a
|
|
469
|
+
`legend-toggle` `button` with `aria-pressed` rendered as the literal `"true"`/`"false"` — never
|
|
470
|
+
omitted, because a missing attribute reports "not a toggle button" rather than "unpressed". The
|
|
471
|
+
button's accessible name is its own visible label (caller-supplied data, so deliberately not
|
|
472
|
+
localized), scoped by the legend's own localized group name; no `aria-label` restates the state,
|
|
473
|
+
which would make assistive tech announce it twice. A hidden row's button additionally carries the
|
|
474
|
+
`legend-toggle-hidden` token — state lives in the part name, so `::part(legend-toggle-hidden)` is a
|
|
475
|
+
reachable hook — and dims only its `aria-hidden` swatch while re-colouring the label through the
|
|
476
|
+
quiet text token, so the label keeps AA contrast rather than fading with the whole button. In
|
|
477
|
+
forced colors the hidden row falls back to `line-through`, which survives a system-color collapse.
|
|
478
|
+
Each activation is announced through the shared light-DOM polite live region, using the same
|
|
479
|
+
`legendTypeShown`/`legendTypeHidden` strings `lr-graph-legend` announces with.
|
|
432
480
|
`legend-limit` is the localized bounded-projection summary. The five peer-chrome parts project
|
|
433
481
|
stable Lyra names onto MapLibre-generated DOM without erasing peer-supplied part tokens;
|
|
434
482
|
`marker` retains a 24px minimum target in both axes even when a peer/custom marker has no intrinsic
|
|
@@ -460,6 +508,15 @@ integration; there is no declarative controls property.
|
|
|
460
508
|
- `--lr-map-choropleth-fill-opacity` (default `0.75`) — fill opacity for the declarative
|
|
461
509
|
`choropleth` layer and polygon fills in every `dataLayers` entry. It intentionally inherits from
|
|
462
510
|
an ancestor, so one scoped declaration rethemes every nested map without setting each host.
|
|
511
|
+
- `--lr-map-hidden-category-opacity` (default `0.15`) — opacity a category listed in
|
|
512
|
+
`hiddenCategories` is muted to in the rendered MapLibre paint: `circle-opacity` and
|
|
513
|
+
`circle-stroke-opacity` on the points layer and `icon-opacity` on the point-icon symbol layer.
|
|
514
|
+
Like the fill-opacity token it is read from the resolved cascade on every paint, because MapLibre
|
|
515
|
+
draws to a WebGL canvas the CSS cascade never reaches, and it inherits from an ancestor. A
|
|
516
|
+
`kind: 'heatmap'` entry is out of scope: a density surface has no per-category field to mute.
|
|
517
|
+
- `--lr-map-legend-hidden-swatch-opacity` (default `0.5`) — opacity of a hidden interactive legend
|
|
518
|
+
row's decorative swatch. Only the `aria-hidden` swatch dims; the label re-colours through
|
|
519
|
+
`--lr-color-text-quiet` instead, so it never drops below 4.5:1.
|
|
463
520
|
- `--lr-map-popup-close-button-hover-bg` (default `var(--lr-color-brand-quiet)`) and
|
|
464
521
|
`--lr-map-popup-close-button-hover-color` (default `var(--lr-color-brand)`) — hover background
|
|
465
522
|
and foreground of `popup-close-button`.
|
|
@@ -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, 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
|
---
|
|
@@ -41,6 +41,11 @@ preserving null readback; an explicitly empty query remains empty.
|
|
|
41
41
|
pre-`query`-filtering. Assignment takes a shallow frozen snapshot. Runtime rows without a string
|
|
42
42
|
`label` remain in that diagnostic snapshot but are omitted from filtering/rendering before the
|
|
43
43
|
built-in or custom predicate runs, so one malformed provider row cannot take down valid siblings.
|
|
44
|
+
An entry's `disabled` marks that row non-actionable: `aria-disabled="true"` replaces its
|
|
45
|
+
selected/active affordances, activating it (click, or Enter/Tab while highlighted) commits
|
|
46
|
+
nothing and emits no `lr-mention-select`, and ArrowDown/ArrowUp highlighting -- including the
|
|
47
|
+
default pre-highlighted first row -- steps past it instead of landing on it. Omitted or `false`
|
|
48
|
+
renders the row exactly as before this field existed.
|
|
44
49
|
- `query: string = ''` — the text typed since the trigger character; drives the built-in filtering
|
|
45
50
|
(see `filter`).
|
|
46
51
|
- `open: boolean = false` (reflected)
|
|
@@ -85,7 +90,7 @@ preserving null readback; an explicitly empty query remains empty.
|
|
|
85
90
|
disconnect/adoption, a newer transfer, or failed ownership resolves `false` without moving focus.
|
|
86
91
|
|
|
87
92
|
**Exported types:** `LyraMentionItem { suggestionId: string; label: string; description?: string;
|
|
88
|
-
icon?: string }`; `LyraMentionFilter = (item: LyraMentionItem, query: string) => boolean`;
|
|
93
|
+
icon?: string; disabled?: boolean }`; `LyraMentionFilter = (item: LyraMentionItem, query: string) => boolean`;
|
|
89
94
|
`LyraMentionFocusOptions { ownsFocus?: () => boolean }`;
|
|
90
95
|
`LyraMentionSelectDetail { suggestionId: string; index: number; label: string }`.
|
|
91
96
|
|
|
@@ -106,7 +111,9 @@ renders `open="false"` on first paint)
|
|
|
106
111
|
`var(--lr-color-brand-quiet)`) — background of the hovered or `[data-active]`
|
|
107
112
|
(keyboard-highlighted) suggestion row. Component-scoped indirection over the shared
|
|
108
113
|
`--lr-color-brand-quiet` token, so a consumer can retheme just this highlighted/active row without
|
|
109
|
-
repainting every other component that reuses the same shared token.
|
|
114
|
+
repainting every other component that reuses the same shared token.
|
|
115
|
+
`--lr-mention-popover-option-disabled-opacity` (default `0.5`) — opacity of a row whose `items`
|
|
116
|
+
entry sets `disabled`. Plus shared tokens —
|
|
110
117
|
`--lr-space-xs`/`-s`/`-m` (popup padding,
|
|
111
118
|
row padding/gap), `--lr-radius`
|
|
112
119
|
(row corners — the popup's own corner is the overlay family's, below),
|
|
@@ -123,6 +130,12 @@ The popup is a floating surface and paints from the **shared overlay-surface fam
|
|
|
123
130
|
declared on `:host`, so one declaration on `:root` — or on any ancestor, to scope it — retints this
|
|
124
131
|
surface together with every other floating surface in the library. `--lr-overlay-radius` (default `var(--lr-radius)`) is the matching corner radius.
|
|
125
132
|
|
|
133
|
+
`--lr-positioning-strategy` (16.0.0) — the popup reads this same cascading `absolute`/`fixed`
|
|
134
|
+
override documented on `<lr-popover>` when it is (re)positioned, falling back to its own `fixed`
|
|
135
|
+
default when nothing is set. There is no per-instance `positioning-strategy` property on
|
|
136
|
+
`<lr-mention-popover>`; set the custom property on `:root`, a theme, or one clipping ancestor to
|
|
137
|
+
change every unset mention popover beneath it.
|
|
138
|
+
|
|
126
139
|
**Optional peer deps:** none.
|
|
127
140
|
|
|
128
141
|
```html
|
|
@@ -97,6 +97,13 @@ an out-of-syntax value falls back cleanly instead of invalidating the whole decl
|
|
|
97
97
|
without `CSS.registerProperty` degrades to "use `100%`, not `none`".) A menu contained by
|
|
98
98
|
`<lr-dropdown>` sizes from its dropdown and is unaffected by both names.
|
|
99
99
|
|
|
100
|
+
**`--lr-positioning-strategy`** (16.0.0) — the private submenu surface reads this same cascading
|
|
101
|
+
`absolute`/`fixed` override documented on `<lr-popover>` when it is (re)positioned, falling back to
|
|
102
|
+
its own `fixed` default when nothing is set. There is no per-instance `positioning-strategy`
|
|
103
|
+
property on `<lr-menu>`; set the custom property on `:root`, a theme, or one clipping ancestor to
|
|
104
|
+
change every unset submenu beneath it. A menu contained by `<lr-dropdown>` is positioned by the
|
|
105
|
+
dropdown instead and is unaffected.
|
|
106
|
+
|
|
100
107
|
**Methods:** no menu-specific public overlay methods. Use `<lr-dropdown>`'s `show()`/`hide()` and
|
|
101
108
|
`open` state for an overlay. Menu-item submenu methods remain public because they drive a row's
|
|
102
109
|
nested disclosure.
|
|
@@ -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** 3 parts,
|
|
12
|
+
- **Themeable via** 3 parts, 7 custom properties — see this component's own `@csspart`/`@cssprop` list below
|
|
13
13
|
- **Documented with** `lr-menu-item`, `lr-dropdown-item` (same section below)
|
|
14
14
|
- **Library-wide behavior** (events, form association, `locale`/`strings`, tokens, TS types): `llms/shared.md`
|
|
15
15
|
|
|
@@ -97,6 +97,13 @@ an out-of-syntax value falls back cleanly instead of invalidating the whole decl
|
|
|
97
97
|
without `CSS.registerProperty` degrades to "use `100%`, not `none`".) A menu contained by
|
|
98
98
|
`<lr-dropdown>` sizes from its dropdown and is unaffected by both names.
|
|
99
99
|
|
|
100
|
+
**`--lr-positioning-strategy`** (16.0.0) — the private submenu surface reads this same cascading
|
|
101
|
+
`absolute`/`fixed` override documented on `<lr-popover>` when it is (re)positioned, falling back to
|
|
102
|
+
its own `fixed` default when nothing is set. There is no per-instance `positioning-strategy`
|
|
103
|
+
property on `<lr-menu>`; set the custom property on `:root`, a theme, or one clipping ancestor to
|
|
104
|
+
change every unset submenu beneath it. A menu contained by `<lr-dropdown>` is positioned by the
|
|
105
|
+
dropdown instead and is unaffected.
|
|
106
|
+
|
|
100
107
|
**Methods:** no menu-specific public overlay methods. Use `<lr-dropdown>`'s `show()`/`hide()` and
|
|
101
108
|
`open` state for an overlay. Menu-item submenu methods remain public because they drive a row's
|
|
102
109
|
nested disclosure.
|
|
@@ -89,3 +89,13 @@ or an ancestor, or reach a built-in's composed native control directly through
|
|
|
89
89
|
`::part(regenerate-button__control)` / `::part(edit-button__control)`. A coarse-pointer/no-hover
|
|
90
90
|
media rule then floors the rendered hit area at 2.75rem/44px regardless of how far a dense-row
|
|
91
91
|
override lowered it, so the shrink is safe on a touch device.
|
|
92
|
+
|
|
93
|
+
**Migrating a pre-16.0.0 `::part()` rule.** This component's icon-only actions are composed
|
|
94
|
+
`<lr-icon-button>`s, so a part naming one of them now names the composed child's HOST, which paints
|
|
95
|
+
nothing. A `border`, `background` or `border-radius` set on it is silently dead — only `color` still
|
|
96
|
+
appears to work, because it inherits, which makes such a rule look half-alive rather than broken.
|
|
97
|
+
Set `--lr-icon-button-background`/`-color`/`-border`/`-radius` (and their `-hover`/`-active`
|
|
98
|
+
variants) on this element or an ancestor instead: the composed control reads those public tokens
|
|
99
|
+
ahead of any default this component supplies. For SIZE use `--lr-theme-icon-button-size`, not
|
|
100
|
+
`--lr-icon-button-size` — every `LyraElement` re-declares the latter on its own `:host`, so it never
|
|
101
|
+
reaches a composed child (see `llms/tokens.md`).
|
|
@@ -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** 15 parts,
|
|
12
|
+
- **Themeable via** 15 parts, 26 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
|
---
|
|
@@ -42,7 +42,11 @@ focus move.
|
|
|
42
42
|
|
|
43
43
|
**Exported types:**
|
|
44
44
|
|
|
45
|
-
- `LyraCatalogEntry { id: string; label: string }` — the shared minimum row
|
|
45
|
+
- `LyraCatalogEntry { id: string; label: string; disabled?: boolean }` — the shared minimum row
|
|
46
|
+
vocabulary. `disabled` marks a row non-actionable: `aria-disabled="true"` replaces its
|
|
47
|
+
selected/active affordances, activating it (click or keyboard) commits nothing and changes no
|
|
48
|
+
state, and arrow-key/Home/End active-descendant navigation steps past it instead of landing on
|
|
49
|
+
it. Omitted or `false` renders the row exactly as before this field existed.
|
|
46
50
|
- `LyraCatalog<T extends LyraCatalogEntry = LyraCatalogEntry> = readonly string[] | readonly T[]`
|
|
47
51
|
— a homogeneous catalog shared by model-select, voice-picker, and composed controls. String
|
|
48
52
|
shorthand uses the same string for both id and label; readonly tuples/arrays are accepted. Ids
|
|
@@ -236,7 +240,8 @@ use, not on `:host`, so it isn't tied to `size`. The selected row
|
|
|
236
240
|
`--lr-model-select-option-selected-border` and `--lr-model-select-option-selected-color` (both
|
|
237
241
|
`var(--lr-color-brand)`), and `--lr-model-select-option-selected-font-weight`
|
|
238
242
|
(`var(--lr-font-weight-semibold)`), all inline `var()` fallbacks so the selected row is rethemeable
|
|
239
|
-
without hijacking `--lr-color-brand`. `--lr-model-select-
|
|
243
|
+
without hijacking `--lr-color-brand`. `--lr-model-select-option-disabled-opacity` (default `0.5`)
|
|
244
|
+
— opacity of an option row whose catalog entry sets `disabled`. `--lr-model-select-max-inline-size` (default
|
|
240
245
|
`var(--lr-size-24rem)`) publishes the host's own width ceiling, which was previously a hard-wired
|
|
241
246
|
literal: set a length to retune it, or `none` to let the control fill its container the way
|
|
242
247
|
`lr-select` does. Like every other name here it is read as a `var()` fallback and never declared on
|
|
@@ -39,7 +39,14 @@ properties apply. `step` is native seconds; `showPicker()`, `stepUp()`, and `ste
|
|
|
39
39
|
native-wrapper behavior. The control row carries `base input-wrapper time-input` part tokens on one
|
|
40
40
|
node. Its native picker UI and AM/PM presentation are browser-owned and intentionally unstyled.
|
|
41
41
|
The inherited `--lr-input-*` theme inputs therefore remain configurable from an ancestor theme
|
|
42
|
-
wrapper without being shadowed by the subclass.
|
|
42
|
+
wrapper without being shadowed by the subclass. Among those inherited properties and methods:
|
|
43
|
+
`defaultValue: string = ''` (attribute `value`, reflected) is the reset value, and
|
|
44
|
+
`customError: string | null = null` (attribute `custom-error`, reflected) is a consumer-supplied
|
|
45
|
+
validation message. `getForm()` returns the browser-resolved form owner, including an external
|
|
46
|
+
owner selected by `form`; `setCustomValidity(message)` sets or clears `customError` without
|
|
47
|
+
discarding intrinsic validity; `resetValidity()` clears only that consumer layer and recomputes
|
|
48
|
+
the current intrinsic constraints, leaving `value`/`defaultValue` and prior interaction state
|
|
49
|
+
unchanged.
|
|
43
50
|
|
|
44
51
|
**Events:** native-style `input` and `change`; bubbling, composed `focus` and `blur` bridges; the
|
|
45
52
|
`lr-input` / `lr-change` aliases with `{ value }`;
|
|
@@ -46,7 +46,14 @@ action-height ladder as `lr-input` instead of remaining at the default tier for
|
|
|
46
46
|
identical meaning. This component changes the mapped defaults to `appearance='outlined'`,
|
|
47
47
|
`inputMode='numeric'`, and `step=1`. `clearable` (and its `with-clear` spelling),
|
|
48
48
|
`passwordVisible` (`password-visible`), and `minlength`/`maxlength`/`pattern` are inherited but
|
|
49
|
-
inert — see gotchas.
|
|
49
|
+
inert — see gotchas. Also inherited from `lr-input`, with identical meaning:
|
|
50
|
+
`defaultValue: string = ''` (attribute `value`, reflected) — the reset value; and
|
|
51
|
+
`customError: string | null = null` (attribute `custom-error`, reflected) — a consumer-supplied
|
|
52
|
+
validation message. `getForm()` returns the browser-resolved form owner, including an external
|
|
53
|
+
owner selected by `form`; `setCustomValidity(message)` sets or clears `customError` without
|
|
54
|
+
discarding intrinsic validity; `resetValidity()` clears only that consumer layer and recomputes
|
|
55
|
+
the current intrinsic constraints, leaving `value`/`defaultValue` and prior interaction state
|
|
56
|
+
unchanged.
|
|
50
57
|
|
|
51
58
|
Stepper switches:
|
|
52
59
|
|
|
@@ -155,6 +155,25 @@ An async `source` row can carry the same two fields (`start`, `end`) alongside i
|
|
|
155
155
|
that window instead, since the value is not yet known to be unmatched at all
|
|
156
156
|
- `appearance: 'filled' | 'outlined' | 'filled-outlined' = 'outlined'` (reflected)
|
|
157
157
|
- `placement: 'top' | 'bottom' = 'bottom'` (reflected; flip/shift can still keep the listbox in view)
|
|
158
|
+
- `positioningStrategy: PlaceStrategy = 'fixed'` (attribute `positioning-strategy`, reflected) —
|
|
159
|
+
the CSS positioning scheme the listbox is laid out with, spelled the same as on `lr-select`,
|
|
160
|
+
`lr-popover`, `lr-dropdown`, `lr-tooltip` and `lr-color-picker`. `fixed` is this control's
|
|
161
|
+
default and what it has always rendered: it positions against the viewport and escapes most
|
|
162
|
+
clipping ancestors, which suits a typeahead list that usually sits inside a scrollable region.
|
|
163
|
+
`absolute` positions against the nearest containing block and scrolls with it. An unsupported
|
|
164
|
+
value resolves to the default. Like `placement`, a change takes effect the next time the listbox
|
|
165
|
+
opens. When the instance sets nothing, the cascading `--lr-positioning-strategy` custom property
|
|
166
|
+
(`absolute`/`fixed`, set on `:root`, a theme, or one clipping ancestor) is honoured ahead of the
|
|
167
|
+
default; an explicit instance value always wins. There is deliberately no `hoist` alias here:
|
|
168
|
+
unlike on `lr-select`, where it is Shoelace's established spelling, it would be a boolean
|
|
169
|
+
defaulting to `true`, so its attribute could only ever express the value the control already has
|
|
170
|
+
- `sync?: PlaceSync` (reflected) — copies the trigger's width, height, or both onto the listbox,
|
|
171
|
+
spelled the same as on `lr-dropdown`/`lr-popup`/`lr-popover`. Unset (the default), the listbox
|
|
172
|
+
sizes to its own content, clamped between `--lr-size-12rem` and `--lr-size-28rem`, exactly as
|
|
173
|
+
before. `sync="width"` drops that content-based clamp (keeping only the outer viewport/
|
|
174
|
+
available-space ceiling) so a full-width trigger with short option labels gets a listbox that
|
|
175
|
+
aligns to its own edges instead of floating narrower in the middle. Like `placement`, a change
|
|
176
|
+
takes effect the next time the listbox opens
|
|
158
177
|
- `clearable: boolean = false` (reflected) — displays the clear button while there is something to
|
|
159
178
|
clear on **either** axis this control owns: a committed selection, or _visible_ filter text. See
|
|
160
179
|
"the clear button covers two axes" below
|
|
@@ -154,6 +154,12 @@ The exact-320px RTL story covers an eight-cell row and an unbroken localized lab
|
|
|
154
154
|
horizontal reachability for every cell.
|
|
155
155
|
The internal role token `--lr-otp-input-segment-size` supplies that `2.5em` default and can be
|
|
156
156
|
retuned through `--lr-theme-otp-input-segment-size` when the `--segment-size` override is absent.
|
|
157
|
+
Like `--lr-icon-button-size`, `--lr-otp-input-segment-size` is element-scoped: the shared token
|
|
158
|
+
layer re-declares it on every `lr-*` host, so a rule that sets it on an ancestor wrapper is reset at
|
|
159
|
+
the first intervening `lr-*` component and never reaches a nested `<lr-otp-input>`. Set it directly
|
|
160
|
+
on the element, or set `--lr-theme-otp-input-segment-size` on an ancestor to resize every OTP input
|
|
161
|
+
in the subtree at once — the retained per-cell hooks below are not re-declared anywhere in the
|
|
162
|
+
shared layer and inherit normally.
|
|
157
163
|
|
|
158
164
|
The retained per-cell hooks are `--lr-otp-input-segment-fill` (default `transparent`),
|
|
159
165
|
`--lr-otp-input-segment-border-color` (default `var(--lr-color-border)`), and
|
|
@@ -28,9 +28,10 @@ of every entry in these lists.**
|
|
|
28
28
|
**Properties:** `description`, `grid`, `axes`, `compact`, `indexAxis` (`index-axis`), `label`, `hiddenDatasets`, `legendPosition`
|
|
29
29
|
(`legend-position`), `hiddenDatums`, `legendMode` (`legend-mode`), `legendDisplay` (`legend-display`),
|
|
30
30
|
`max`, `min`, `plugins`, `scaleType` (`scale-type`), `annotations`,
|
|
31
|
-
`stacked`, `withoutAnimation` (`without-animation`),
|
|
31
|
+
`stacked`, `stackedAxes`, `withoutAnimation` (`without-animation`),
|
|
32
32
|
`withoutLegend` (`without-legend`), `withoutTooltip` (`without-tooltip`), `xLabel` (`x-label`),
|
|
33
|
-
`yLabel` (`y-label`), plus additive `labels`, `datasets`, `valueFormatter`, `formatter`,
|
|
33
|
+
`yLabel` (`y-label`), plus additive `labels`, `datasets`, `valueFormatter`, `formatter`,
|
|
34
|
+
`tooltipTitleFormatter`, `tooltipFooterFormatter`, `area`, `zoom`,
|
|
34
35
|
`height`, `y2Label` (`y2-label`), `beginAtZero` (`begin-at-zero`), `dataLabels`
|
|
35
36
|
(`data-labels`), `stackTotals` (`stack-totals`), `config`, `showDataTable`
|
|
36
37
|
(`show-data-table`), `dataTableToggle` (`data-table-toggle`), `chartArea` (readonly), and `chart`.
|
|
@@ -28,9 +28,10 @@ of every entry in these lists.**
|
|
|
28
28
|
**Properties:** `description`, `grid`, `axes`, `compact`, `indexAxis` (`index-axis`), `label`, `hiddenDatasets`, `legendPosition`
|
|
29
29
|
(`legend-position`), `hiddenDatums`, `legendMode` (`legend-mode`), `legendDisplay` (`legend-display`),
|
|
30
30
|
`max`, `min`, `plugins`, `scaleType` (`scale-type`), `annotations`,
|
|
31
|
-
`stacked`, `withoutAnimation` (`without-animation`),
|
|
31
|
+
`stacked`, `stackedAxes`, `withoutAnimation` (`without-animation`),
|
|
32
32
|
`withoutLegend` (`without-legend`), `withoutTooltip` (`without-tooltip`), `xLabel` (`x-label`),
|
|
33
|
-
`yLabel` (`y-label`), plus additive `labels`, `datasets`, `valueFormatter`, `formatter`,
|
|
33
|
+
`yLabel` (`y-label`), plus additive `labels`, `datasets`, `valueFormatter`, `formatter`,
|
|
34
|
+
`tooltipTitleFormatter`, `tooltipFooterFormatter`, `area`, `zoom`,
|
|
34
35
|
`height`, `y2Label` (`y2-label`), `beginAtZero` (`begin-at-zero`), `dataLabels`
|
|
35
36
|
(`data-labels`), `stackTotals` (`stack-totals`), `config`, `showDataTable`
|
|
36
37
|
(`show-data-table`), `dataTableToggle` (`data-table-toggle`), `chartArea` (readonly), and `chart`.
|
|
@@ -53,8 +53,8 @@ Every array-valued property above is a clone-owned, bounded, frozen readonly sna
|
|
|
53
53
|
nested source children and queued attachments. Mutating a previously assigned collection has no
|
|
54
54
|
effect; create and reassign a new array after changes.
|
|
55
55
|
|
|
56
|
-
`LyraPromptSuggestion` extends `LyraMentionItem { suggestionId, label, description?, icon? }`
|
|
57
|
-
optional `insertText` (defaults to `label`). The selected occurrence's original, pre-filter `index`
|
|
56
|
+
`LyraPromptSuggestion` extends `LyraMentionItem { suggestionId, label, description?, icon?, disabled? }`
|
|
57
|
+
with optional `insertText` (defaults to `label`). The selected occurrence's original, pre-filter `index`
|
|
58
58
|
is preserved in the event detail. `LyraPromptInputAttachment` replaces `DocumentRef.id` with
|
|
59
59
|
`attachmentId` and adds `file?`, `bytes?`, `status?: 'pending' | 'uploading' | 'error' | 'success'`,
|
|
60
60
|
and numeric `progress?`.
|
|
@@ -28,9 +28,10 @@ of every entry in these lists.**
|
|
|
28
28
|
**Properties:** `description`, `grid`, `axes`, `compact`, `indexAxis` (`index-axis`), `label`, `hiddenDatasets`, `legendPosition`
|
|
29
29
|
(`legend-position`), `hiddenDatums`, `legendMode` (`legend-mode`), `legendDisplay` (`legend-display`),
|
|
30
30
|
`max`, `min`, `plugins`, `scaleType` (`scale-type`), `annotations`,
|
|
31
|
-
`stacked`, `withoutAnimation` (`without-animation`),
|
|
31
|
+
`stacked`, `stackedAxes`, `withoutAnimation` (`without-animation`),
|
|
32
32
|
`withoutLegend` (`without-legend`), `withoutTooltip` (`without-tooltip`), `xLabel` (`x-label`),
|
|
33
|
-
`yLabel` (`y-label`), plus additive `labels`, `datasets`, `valueFormatter`, `formatter`,
|
|
33
|
+
`yLabel` (`y-label`), plus additive `labels`, `datasets`, `valueFormatter`, `formatter`,
|
|
34
|
+
`tooltipTitleFormatter`, `tooltipFooterFormatter`, `area`, `zoom`,
|
|
34
35
|
`height`, `y2Label` (`y2-label`), `beginAtZero` (`begin-at-zero`), `dataLabels`
|
|
35
36
|
(`data-labels`), `stackTotals` (`stack-totals`), `config`, `showDataTable`
|
|
36
37
|
(`show-data-table`), `dataTableToggle` (`data-table-toggle`), `chartArea` (readonly), and `chart`.
|
|
@@ -145,6 +145,18 @@ rotation and activation, while background, radius, hover/press mixes, focus ring
|
|
|
145
145
|
come from `--lr-icon-button-*`, and the component's own `--lr-reorder-item-move-button-*` hooks still
|
|
146
146
|
win over those defaults), `content` (default-slot wrapper).
|
|
147
147
|
|
|
148
|
+
**Border reaches the composed move controls the same way background/color/radius do.** This
|
|
149
|
+
component paints no resting border on either move control, so it relays no
|
|
150
|
+
`--_lr-icon-button-border-default` into their private fallback tier — but that absence is not a
|
|
151
|
+
gap. The public `--lr-icon-button-border` (and its `-hover`/`-active` variants) is the FIRST arm
|
|
152
|
+
of the token chain, resolved by ordinary custom-property inheritance regardless of whether this
|
|
153
|
+
component relays a default for that same property, so setting it on either move control or an
|
|
154
|
+
ancestor reaches it exactly as the background/color/radius tokens do. A component with no resting
|
|
155
|
+
border simply has no default to relay, which is different from border theming being broken. Size
|
|
156
|
+
remains the one exception that does not cross this way: use `--lr-theme-icon-button-size`, never
|
|
157
|
+
`--lr-icon-button-size` — every `LyraElement` re-declares the latter on its own `:host`, so it
|
|
158
|
+
never reaches a composed child (see `llms/tokens.md`).
|
|
159
|
+
|
|
148
160
|
**Themeable custom properties:** `--lr-reorder-item-gap` (default `var(--lr-space-xs)`) — gap
|
|
149
161
|
between the move buttons and the row content. The move-button interaction paints are independent,
|
|
150
162
|
inherited inline fallbacks: `--lr-reorder-item-move-button-hover-bg` (default
|
|
@@ -145,6 +145,18 @@ rotation and activation, while background, radius, hover/press mixes, focus ring
|
|
|
145
145
|
come from `--lr-icon-button-*`, and the component's own `--lr-reorder-item-move-button-*` hooks still
|
|
146
146
|
win over those defaults), `content` (default-slot wrapper).
|
|
147
147
|
|
|
148
|
+
**Border reaches the composed move controls the same way background/color/radius do.** This
|
|
149
|
+
component paints no resting border on either move control, so it relays no
|
|
150
|
+
`--_lr-icon-button-border-default` into their private fallback tier — but that absence is not a
|
|
151
|
+
gap. The public `--lr-icon-button-border` (and its `-hover`/`-active` variants) is the FIRST arm
|
|
152
|
+
of the token chain, resolved by ordinary custom-property inheritance regardless of whether this
|
|
153
|
+
component relays a default for that same property, so setting it on either move control or an
|
|
154
|
+
ancestor reaches it exactly as the background/color/radius tokens do. A component with no resting
|
|
155
|
+
border simply has no default to relay, which is different from border theming being broken. Size
|
|
156
|
+
remains the one exception that does not cross this way: use `--lr-theme-icon-button-size`, never
|
|
157
|
+
`--lr-icon-button-size` — every `LyraElement` re-declares the latter on its own `:host`, so it
|
|
158
|
+
never reaches a composed child (see `llms/tokens.md`).
|
|
159
|
+
|
|
148
160
|
**Themeable custom properties:** `--lr-reorder-item-gap` (default `var(--lr-space-xs)`) — gap
|
|
149
161
|
between the move buttons and the row content. The move-button interaction paints are independent,
|
|
150
162
|
inherited inline fallbacks: `--lr-reorder-item-move-button-hover-bg` (default
|
|
@@ -28,9 +28,10 @@ of every entry in these lists.**
|
|
|
28
28
|
**Properties:** `description`, `grid`, `axes`, `compact`, `indexAxis` (`index-axis`), `label`, `hiddenDatasets`, `legendPosition`
|
|
29
29
|
(`legend-position`), `hiddenDatums`, `legendMode` (`legend-mode`), `legendDisplay` (`legend-display`),
|
|
30
30
|
`max`, `min`, `plugins`, `scaleType` (`scale-type`), `annotations`,
|
|
31
|
-
`stacked`, `withoutAnimation` (`without-animation`),
|
|
31
|
+
`stacked`, `stackedAxes`, `withoutAnimation` (`without-animation`),
|
|
32
32
|
`withoutLegend` (`without-legend`), `withoutTooltip` (`without-tooltip`), `xLabel` (`x-label`),
|
|
33
|
-
`yLabel` (`y-label`), plus additive `labels`, `datasets`, `valueFormatter`, `formatter`,
|
|
33
|
+
`yLabel` (`y-label`), plus additive `labels`, `datasets`, `valueFormatter`, `formatter`,
|
|
34
|
+
`tooltipTitleFormatter`, `tooltipFooterFormatter`, `area`, `zoom`,
|
|
34
35
|
`height`, `y2Label` (`y2-label`), `beginAtZero` (`begin-at-zero`), `dataLabels`
|
|
35
36
|
(`data-labels`), `stackTotals` (`stack-totals`), `config`, `showDataTable`
|
|
36
37
|
(`show-data-table`), `dataTableToggle` (`data-table-toggle`), `chartArea` (readonly), and `chart`.
|
|
@@ -130,7 +130,17 @@ exactly like the multi-option case, until the trigger is actually activated.
|
|
|
130
130
|
- `getUnknownLabel?: (value: string) => string` (attribute: false) — renders the label for a
|
|
131
131
|
committed value that matches no option, everywhere it appears (trigger, `multiple` tag, synthetic
|
|
132
132
|
row). `getTag` cannot serve this case: it is handed a matched option and there is none. A blank
|
|
133
|
-
return falls back to the raw value
|
|
133
|
+
return falls back to the raw value. Not consulted while `loading` suppresses that same value —
|
|
134
|
+
see below
|
|
135
|
+
- `loading: boolean = false` (reflected) — whether a committed value's real label may still be
|
|
136
|
+
pending because its `<lr-option>` catalog hasn't arrived yet (e.g. an async fetch still in
|
|
137
|
+
flight). While `true`, a committed value that currently matches no option renders the localized
|
|
138
|
+
`loading` placeholder in the trigger label or the relevant `multiple` tag instead of the raw
|
|
139
|
+
value, with no `notInCatalog`/`[part='unknown-value']` badge and no synthetic
|
|
140
|
+
`showUnknownOption` listbox row — "not yet resolved" is a different state from "known to be
|
|
141
|
+
missing". A value already matching a live option is unaffected. Never mutates
|
|
142
|
+
`value`/`selectedOptions` itself, and does not itself disable the trigger — pair it with
|
|
143
|
+
`disabled` when the control should also be non-interactive while pending
|
|
134
144
|
- `filled: boolean = false` (reflected) — Shoelace alias for the filled trigger treatment
|
|
135
145
|
- `autofocus: boolean = false` / `title: string = ''` — forwarded to the internal trigger
|
|
136
146
|
- `multiple: boolean = false` (reflected) — several options selectable at once; see "Multi-select"
|
|
@@ -182,7 +192,14 @@ from a removed option, or a programmatic assignment with a typo) still commits
|
|
|
182
192
|
stays fully reachable through `value`/`selectedOptions` — but renders a dashed/italic
|
|
183
193
|
`[part='unknown-value']` badge next to the trigger label, or on the relevant `multiple`-mode tag,
|
|
184
194
|
instead of an unexplained bare label, mirroring `<lr-model-select>`'s synthetic "not in catalog"
|
|
185
|
-
stale-value row — see `--lr-select-unknown-value-border-style`/`-color` below.
|
|
195
|
+
stale-value row — see `--lr-select-unknown-value-border-style`/`-color` below. Set `loading` while
|
|
196
|
+
that same value's own `<lr-option>` catalog simply hasn't arrived yet (unlike `<lr-combobox>`,
|
|
197
|
+
`<lr-select>` has no async `source` of its own, so this is consumer-driven rather than automatic):
|
|
198
|
+
a still-unmatched value then renders the localized `loading` placeholder instead of the raw value,
|
|
199
|
+
with no `unknown-value` badge and no synthetic `showUnknownOption` row, since it is not yet known
|
|
200
|
+
to be missing. Once the matching option mounts, the real label renders on the next render with no
|
|
201
|
+
`value`/`selectedOptions` re-assignment needed, whether or not `loading` is also flipped back to
|
|
202
|
+
`false`.
|
|
186
203
|
|
|
187
204
|
**Methods:** `focus(options?)`, `blur()`, and `click()` forward to the internal trigger button.
|
|
188
205
|
`show()` and `hide()` return `Promise<void>` and resolve after `lr-after-show`/`lr-after-hide` once
|
|
@@ -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** 11 parts,
|
|
12
|
+
- **Themeable via** 11 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
|
---
|
|
@@ -61,13 +61,18 @@ numeric disclosure.
|
|
|
61
61
|
**Properties:**
|
|
62
62
|
|
|
63
63
|
- `items: readonly SequenceStripItem[] = []` (attribute: false) — `{ readonly id, readonly
|
|
64
|
-
categoryId, readonly marker?, readonly label? }`;
|
|
64
|
+
categoryId, readonly marker?, readonly label?, readonly disabled? }`;
|
|
65
65
|
`marker` renders a small bottom marker on that cell independent of the category color (e.g. a
|
|
66
66
|
subagent-dispatched turn); `label` is per-item hover/focus tooltip text _and_ that cell's own
|
|
67
67
|
`role="listitem"` accessible name, falling back to the matching category's own nonblank `label`,
|
|
68
68
|
then localized `sequenceStripUnnamedCategory` (`"Unnamed category"` in the built-in English
|
|
69
69
|
catalog) when unset — it is not read by `[part="base"]`'s auto-generated `aria-label`, which
|
|
70
|
-
summarizes by category/count only
|
|
70
|
+
summarizes by category/count only. `disabled` marks the item non-actionable:
|
|
71
|
+
`aria-disabled="true"` replaces the selected/active affordances of the cell that represents it,
|
|
72
|
+
activating it (click or Enter/Space) emits nothing, and roving Left/Right/Home/End navigation —
|
|
73
|
+
including the default resting tab stop — steps past it. Above the 200-cell cap, a range cell's
|
|
74
|
+
disabled state follows its own activated item, the range's first. Omitted or `false` renders the
|
|
75
|
+
item exactly as before this field existed
|
|
71
76
|
- `categories: readonly SequenceStripCategory[] = []` (attribute: false) — `{ readonly id,
|
|
72
77
|
readonly color, readonly label? }`; `color`
|
|
73
78
|
is the cell background for every item whose `categoryId` matches `id`; invalid CSS colors,
|
|
@@ -143,7 +148,8 @@ block-size), `--lr-sequence-strip-marker-color` (default `var(--lr-color-text)`
|
|
|
143
148
|
(default `0.625rem` — a legend swatch's inline- and block-size, category and marker rows alike), and
|
|
144
149
|
`--lr-sequence-strip-legend-marker-bg` (default `var(--lr-color-surface-raised)` — the neutral chip
|
|
145
150
|
background behind the marker legend row's bar; it stands in for "any cell", so it deliberately
|
|
146
|
-
matches no category color)
|
|
151
|
+
matches no category color), and `--lr-sequence-strip-disabled-opacity` (default `var(--lr-opacity-disabled)` — opacity of
|
|
152
|
+
a cell whose activated item sets `disabled`); the tooltip also consumes shared tokens
|
|
147
153
|
`--lr-color-surface`, `--lr-color-text`, `--lr-font-size-xs`, `--lr-radius`, and `--lr-shadow`, and
|
|
148
154
|
the legend consumes `--lr-space-2xs`, `--lr-space-xs`, `--lr-space-s`, `--lr-font-size-xs`,
|
|
149
155
|
`--lr-color-text-quiet`, and `--lr-radius-xs`.
|
|
@@ -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
|
---
|
|
@@ -19,13 +19,15 @@
|
|
|
19
19
|
A build-lean `<lr-streaming-text>` variant for a consumer whose fenced-code `languages` map already
|
|
20
20
|
covers every language it will ever stream, or who never renders fenced code at all. Every
|
|
21
21
|
capability — token coalescing, `contentMode` auto-detection, the blinking cursor, the
|
|
22
|
-
`lr-content-settled` event, the `languages` property
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
22
|
+
`lr-content-settled` event, the `languages` property, and the full forwarded Markdown configuration
|
|
23
|
+
surface (`tabSize`, `htmlMode`, `gfm`, `linkTarget`, `internalLinkPrefix`, `headingOffset`,
|
|
24
|
+
`highlightCode`, `headingAnchors`, `math`, `maxHeight`) — is identical to `<lr-streaming-text>`;
|
|
25
|
+
only which Markdown element Markdown mode composes differs: this variant renders
|
|
26
|
+
`<lr-markdown-core>` (`../markdown/markdown-core.js`) instead of `<lr-markdown>`, so importing this
|
|
27
|
+
entry point instead of `streaming-text.js` never references `<lr-markdown>`'s ~200-language
|
|
28
|
+
dynamic-import table at all. A fenced code block whose language isn't a key in `languages` always
|
|
29
|
+
renders the plain-text fallback — there is no default/full-table highlighter here to fall back to,
|
|
30
|
+
mirroring `<lr-markdown-core>`'s own contract.
|
|
29
31
|
|
|
30
32
|
**Properties:** `content: string = ''` — the full current text so far, identical contract to
|
|
31
33
|
`<lr-streaming-text>`'s own; `streaming: boolean = false` (reflected); `coalesceMs: number = 50`
|
|
@@ -34,7 +36,18 @@ fallback — there is no default/full-table highlighter here to fall back to, mi
|
|
|
34
36
|
`content-mode`, reflected) — `auto`
|
|
35
37
|
uses `looksLikeMarkdown`, `plain`/`markdown` force their named paths; `languages?:
|
|
36
38
|
Readonly<Record<string, ShikiLanguageInput>>` (property only) — forwarded verbatim to the composed
|
|
37
|
-
`<lr-markdown-core>`'s own `languages` instead of `<lr-markdown>`'s
|
|
39
|
+
`<lr-markdown-core>`'s own `languages` instead of `<lr-markdown>`'s (defaulting the composed
|
|
40
|
+
element's own `languages` to `{}` when unset, unlike the full variant's `undefined`). The rest of
|
|
41
|
+
`<lr-markdown-core>`'s configuration surface forwards verbatim too, sharing the same properties,
|
|
42
|
+
attribute names, and defaults described under `<lr-streaming-text>`'s own **Properties** above:
|
|
43
|
+
`tabSize: number = 4` (attribute `tab-size`); `htmlMode: 'sanitize' | 'escape' | 'trusted' =
|
|
44
|
+
'sanitize'` (attribute `html-mode`); `gfm: boolean = true`; `linkTarget: string | null = '_blank'`
|
|
45
|
+
(attribute `link-target`, still guarded by the composed element's own
|
|
46
|
+
`rel="noopener noreferrer"` whenever a `target` is emitted); `internalLinkPrefix: string = ''`
|
|
47
|
+
(attribute `internal-link-prefix`); `headingOffset: number = 0` (attribute `heading-offset`);
|
|
48
|
+
`highlightCode: boolean = true` (attribute `highlight-code`); `headingAnchors: boolean = false`
|
|
49
|
+
(attribute `heading-anchors`); `math: boolean = false`; `maxHeight: string = ''` (attribute
|
|
50
|
+
`max-height`).
|
|
38
51
|
|
|
39
52
|
**Exported helper:** `looksLikeMarkdown(text: string): boolean` — the same standalone heuristic
|
|
40
53
|
`<lr-streaming-text>` exports and documents, in `llms/components/lr-streaming-text.md`; both tags
|
|
@@ -46,8 +59,12 @@ share one implementation.
|
|
|
46
59
|
|
|
47
60
|
**Slots:** none — content renders from `content`, not a slot.
|
|
48
61
|
|
|
49
|
-
**CSS parts:** `base`, `cursor` (only rendered while `streaming` is `true`)
|
|
50
|
-
`<lr-
|
|
62
|
+
**CSS parts:** `base`, `cursor` (only rendered while `streaming` is `true`), plus every part
|
|
63
|
+
`<lr-markdown-core>` documents forwarded verbatim from the composed `<lr-markdown-core>` in
|
|
64
|
+
Markdown mode via `exportparts`: `content`, `heading`, `paragraph`, `list`, `code-block`,
|
|
65
|
+
`inline-code`, `link`, `table`, `blockquote`, `img`, `math` — the identical forwarded list
|
|
66
|
+
`<lr-streaming-text>` documents, since `<lr-markdown>` and `<lr-markdown-core>` share the same
|
|
67
|
+
documented part vocabulary.
|
|
51
68
|
|
|
52
69
|
**Themeable custom properties:** `--lr-inline-cursor-width` (default `var(--lr-size-0-125rem)`) and
|
|
53
70
|
`--lr-inline-cursor-height` (default `var(--lr-size-1em)`) — the same shared inline-cursor tokens
|