@aceshooting/lyra-ui 2.12.0 → 3.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/README.md +114 -28
- package/custom-elements.json +37406 -20015
- package/dist/components/attachment-chip/attachment-chip.styles.js +2 -2
- package/dist/components/badge/badge.class.d.ts +21 -0
- package/dist/components/badge/badge.class.d.ts.map +1 -0
- package/dist/components/badge/badge.class.js +29 -0
- package/dist/components/badge/badge.class.js.map +1 -0
- package/dist/components/badge/badge.d.ts +2 -0
- package/dist/components/badge/badge.d.ts.map +1 -0
- package/dist/components/badge/badge.js +5 -0
- package/dist/components/badge/badge.js.map +1 -0
- package/dist/components/badge/badge.styles.d.ts +2 -0
- package/dist/components/badge/badge.styles.d.ts.map +1 -0
- package/dist/components/badge/badge.styles.js +10 -0
- package/dist/components/badge/badge.styles.js.map +1 -0
- package/dist/components/badge/tag.class.d.ts +10 -0
- package/dist/components/badge/tag.class.d.ts.map +1 -0
- package/dist/components/badge/tag.class.js +5 -0
- package/dist/components/badge/tag.class.js.map +1 -0
- package/dist/components/badge/tag.d.ts +2 -0
- package/dist/components/badge/tag.d.ts.map +1 -0
- package/dist/components/badge/tag.js +5 -0
- package/dist/components/badge/tag.js.map +1 -0
- package/dist/components/breadcrumb/breadcrumb-item.class.d.ts +22 -0
- package/dist/components/breadcrumb/breadcrumb-item.class.d.ts.map +1 -0
- package/dist/components/breadcrumb/breadcrumb-item.class.js +40 -0
- package/dist/components/breadcrumb/breadcrumb-item.class.js.map +1 -0
- package/dist/components/breadcrumb/breadcrumb-item.d.ts +2 -0
- package/dist/components/breadcrumb/breadcrumb-item.d.ts.map +1 -0
- package/dist/components/breadcrumb/breadcrumb-item.js +5 -0
- package/dist/components/breadcrumb/breadcrumb-item.js.map +1 -0
- package/dist/components/breadcrumb/breadcrumb.class.d.ts +20 -0
- package/dist/components/breadcrumb/breadcrumb.class.d.ts.map +1 -0
- package/dist/components/breadcrumb/breadcrumb.class.js +29 -0
- package/dist/components/breadcrumb/breadcrumb.class.js.map +1 -0
- package/dist/components/breadcrumb/breadcrumb.d.ts +2 -0
- package/dist/components/breadcrumb/breadcrumb.d.ts.map +1 -0
- package/dist/components/breadcrumb/breadcrumb.js +5 -0
- package/dist/components/breadcrumb/breadcrumb.js.map +1 -0
- package/dist/components/breadcrumb/breadcrumb.styles.d.ts +2 -0
- package/dist/components/breadcrumb/breadcrumb.styles.d.ts.map +1 -0
- package/dist/components/breadcrumb/breadcrumb.styles.js +8 -0
- package/dist/components/breadcrumb/breadcrumb.styles.js.map +1 -0
- package/dist/components/button/button.class.d.ts +7 -9
- package/dist/components/button/button.class.d.ts.map +1 -1
- package/dist/components/button/button.class.js +12 -14
- package/dist/components/button/button.class.js.map +1 -1
- package/dist/components/button/button.styles.d.ts.map +1 -1
- package/dist/components/button/button.styles.js +30 -10
- package/dist/components/button/button.styles.js.map +1 -1
- package/dist/components/button-group/button-group.class.d.ts +25 -0
- package/dist/components/button-group/button-group.class.d.ts.map +1 -0
- package/dist/components/button-group/button-group.class.js +39 -0
- package/dist/components/button-group/button-group.class.js.map +1 -0
- package/dist/components/button-group/button-group.d.ts +2 -0
- package/dist/components/button-group/button-group.d.ts.map +1 -0
- package/dist/components/button-group/button-group.js +5 -0
- package/dist/components/button-group/button-group.js.map +1 -0
- package/dist/components/button-group/button-group.styles.d.ts +2 -0
- package/dist/components/button-group/button-group.styles.d.ts.map +1 -0
- package/dist/components/button-group/button-group.styles.js +33 -0
- package/dist/components/button-group/button-group.styles.js.map +1 -0
- package/dist/components/callout/callout.class.d.ts +43 -0
- package/dist/components/callout/callout.class.d.ts.map +1 -0
- package/dist/components/callout/callout.class.js +92 -0
- package/dist/components/callout/callout.class.js.map +1 -0
- package/dist/components/callout/callout.d.ts +2 -0
- package/dist/components/callout/callout.d.ts.map +1 -0
- package/dist/components/callout/callout.js +5 -0
- package/dist/components/callout/callout.js.map +1 -0
- package/dist/components/callout/callout.styles.d.ts +2 -0
- package/dist/components/callout/callout.styles.d.ts.map +1 -0
- package/dist/components/callout/callout.styles.js +29 -0
- package/dist/components/callout/callout.styles.js.map +1 -0
- package/dist/components/carousel/carousel-item.class.d.ts +21 -0
- package/dist/components/carousel/carousel-item.class.d.ts.map +1 -0
- package/dist/components/carousel/carousel-item.class.js +19 -0
- package/dist/components/carousel/carousel-item.class.js.map +1 -0
- package/dist/components/carousel/carousel-item.d.ts +2 -0
- package/dist/components/carousel/carousel-item.d.ts.map +1 -0
- package/dist/components/carousel/carousel-item.js +5 -0
- package/dist/components/carousel/carousel-item.js.map +1 -0
- package/dist/components/carousel/carousel-item.styles.d.ts +2 -0
- package/dist/components/carousel/carousel-item.styles.d.ts.map +1 -0
- package/dist/components/carousel/carousel-item.styles.js +12 -0
- package/dist/components/carousel/carousel-item.styles.js.map +1 -0
- package/dist/components/carousel/carousel.class.d.ts +61 -0
- package/dist/components/carousel/carousel.class.d.ts.map +1 -0
- package/dist/components/carousel/carousel.class.js +223 -0
- package/dist/components/carousel/carousel.class.js.map +1 -0
- package/dist/components/carousel/carousel.d.ts +3 -0
- package/dist/components/carousel/carousel.d.ts.map +1 -0
- package/dist/components/carousel/carousel.js +5 -0
- package/dist/components/carousel/carousel.js.map +1 -0
- package/dist/components/carousel/carousel.styles.d.ts +2 -0
- package/dist/components/carousel/carousel.styles.d.ts.map +1 -0
- package/dist/components/carousel/carousel.styles.js +81 -0
- package/dist/components/carousel/carousel.styles.js.map +1 -0
- package/dist/components/chat-message/chat-message.styles.js +1 -1
- package/dist/components/code-block/code-block.styles.js +1 -1
- package/dist/components/color-picker/color-picker.class.d.ts +46 -0
- package/dist/components/color-picker/color-picker.class.d.ts.map +1 -0
- package/dist/components/color-picker/color-picker.class.js +81 -0
- package/dist/components/color-picker/color-picker.class.js.map +1 -0
- package/dist/components/color-picker/color-picker.d.ts +2 -0
- package/dist/components/color-picker/color-picker.d.ts.map +1 -0
- package/dist/components/color-picker/color-picker.js +5 -0
- package/dist/components/color-picker/color-picker.js.map +1 -0
- package/dist/components/color-picker/color-picker.styles.d.ts +2 -0
- package/dist/components/color-picker/color-picker.styles.d.ts.map +1 -0
- package/dist/components/color-picker/color-picker.styles.js +9 -0
- package/dist/components/color-picker/color-picker.styles.js.map +1 -0
- package/dist/components/date-picker/date-input.class.d.ts +4 -0
- package/dist/components/date-picker/date-input.class.d.ts.map +1 -1
- package/dist/components/date-picker/date-input.class.js +16 -0
- package/dist/components/date-picker/date-input.class.js.map +1 -1
- package/dist/components/details/accordion-item.class.d.ts +10 -0
- package/dist/components/details/accordion-item.class.d.ts.map +1 -0
- package/dist/components/details/accordion-item.class.js +5 -0
- package/dist/components/details/accordion-item.class.js.map +1 -0
- package/dist/components/details/accordion-item.d.ts +2 -0
- package/dist/components/details/accordion-item.d.ts.map +1 -0
- package/dist/components/details/accordion-item.js +5 -0
- package/dist/components/details/accordion-item.js.map +1 -0
- package/dist/components/details/accordion.class.d.ts +23 -0
- package/dist/components/details/accordion.class.d.ts.map +1 -0
- package/dist/components/details/accordion.class.js +48 -0
- package/dist/components/details/accordion.class.js.map +1 -0
- package/dist/components/details/accordion.d.ts +2 -0
- package/dist/components/details/accordion.d.ts.map +1 -0
- package/dist/components/details/accordion.js +5 -0
- package/dist/components/details/accordion.js.map +1 -0
- package/dist/components/details/details.class.d.ts +38 -0
- package/dist/components/details/details.class.d.ts.map +1 -0
- package/dist/components/details/details.class.js +83 -0
- package/dist/components/details/details.class.js.map +1 -0
- package/dist/components/details/details.d.ts +2 -0
- package/dist/components/details/details.d.ts.map +1 -0
- package/dist/components/details/details.js +5 -0
- package/dist/components/details/details.js.map +1 -0
- package/dist/components/details/details.styles.d.ts +2 -0
- package/dist/components/details/details.styles.d.ts.map +1 -0
- package/dist/components/details/details.styles.js +13 -0
- package/dist/components/details/details.styles.js.map +1 -0
- package/dist/components/dialog/dialog.styles.js +1 -1
- package/dist/components/divider/divider.class.d.ts +20 -0
- package/dist/components/divider/divider.class.d.ts.map +1 -0
- package/dist/components/divider/divider.class.js +28 -0
- package/dist/components/divider/divider.class.js.map +1 -0
- package/dist/components/divider/divider.d.ts +2 -0
- package/dist/components/divider/divider.d.ts.map +1 -0
- package/dist/components/divider/divider.js +5 -0
- package/dist/components/divider/divider.js.map +1 -0
- package/dist/components/divider/divider.styles.d.ts +2 -0
- package/dist/components/divider/divider.styles.d.ts.map +1 -0
- package/dist/components/divider/divider.styles.js +8 -0
- package/dist/components/divider/divider.styles.js.map +1 -0
- package/dist/components/drawer/drawer.class.d.ts +26 -0
- package/dist/components/drawer/drawer.class.d.ts.map +1 -0
- package/dist/components/drawer/drawer.class.js +34 -0
- package/dist/components/drawer/drawer.class.js.map +1 -0
- package/dist/components/drawer/drawer.d.ts +3 -0
- package/dist/components/drawer/drawer.d.ts.map +1 -0
- package/dist/components/drawer/drawer.js +5 -0
- package/dist/components/drawer/drawer.js.map +1 -0
- package/dist/components/drawer/drawer.styles.d.ts +2 -0
- package/dist/components/drawer/drawer.styles.d.ts.map +1 -0
- package/dist/components/drawer/drawer.styles.js +73 -0
- package/dist/components/drawer/drawer.styles.js.map +1 -0
- package/dist/components/format/format-bytes.class.d.ts +21 -0
- package/dist/components/format/format-bytes.class.d.ts.map +1 -0
- package/dist/components/format/format-bytes.class.js +46 -0
- package/dist/components/format/format-bytes.class.js.map +1 -0
- package/dist/components/format/format-bytes.d.ts +2 -0
- package/dist/components/format/format-bytes.d.ts.map +1 -0
- package/dist/components/format/format-bytes.js +5 -0
- package/dist/components/format/format-bytes.js.map +1 -0
- package/dist/components/format/format-date.class.d.ts +25 -0
- package/dist/components/format/format-date.class.d.ts.map +1 -0
- package/dist/components/format/format-date.class.js +59 -0
- package/dist/components/format/format-date.class.js.map +1 -0
- package/dist/components/format/format-date.d.ts +2 -0
- package/dist/components/format/format-date.d.ts.map +1 -0
- package/dist/components/format/format-date.js +5 -0
- package/dist/components/format/format-date.js.map +1 -0
- package/dist/components/format/format-number.class.d.ts +24 -0
- package/dist/components/format/format-number.class.d.ts.map +1 -0
- package/dist/components/format/format-number.class.js +58 -0
- package/dist/components/format/format-number.class.js.map +1 -0
- package/dist/components/format/format-number.d.ts +2 -0
- package/dist/components/format/format-number.d.ts.map +1 -0
- package/dist/components/format/format-number.js +5 -0
- package/dist/components/format/format-number.js.map +1 -0
- package/dist/components/format/format.styles.d.ts +2 -0
- package/dist/components/format/format.styles.d.ts.map +1 -0
- package/dist/components/format/format.styles.js +3 -0
- package/dist/components/format/format.styles.js.map +1 -0
- package/dist/components/format/relative-time.class.d.ts +29 -0
- package/dist/components/format/relative-time.class.d.ts.map +1 -0
- package/dist/components/format/relative-time.class.js +62 -0
- package/dist/components/format/relative-time.class.js.map +1 -0
- package/dist/components/format/relative-time.d.ts +2 -0
- package/dist/components/format/relative-time.d.ts.map +1 -0
- package/dist/components/format/relative-time.js +5 -0
- package/dist/components/format/relative-time.js.map +1 -0
- package/dist/components/heatmap/heatmap.class.d.ts +27 -0
- package/dist/components/heatmap/heatmap.class.d.ts.map +1 -1
- package/dist/components/heatmap/heatmap.class.js +125 -1
- package/dist/components/heatmap/heatmap.class.js.map +1 -1
- package/dist/components/heatmap/heatmap.styles.d.ts.map +1 -1
- package/dist/components/heatmap/heatmap.styles.js +27 -0
- package/dist/components/heatmap/heatmap.styles.js.map +1 -1
- package/dist/components/image-comparer/image-comparer.class.d.ts +43 -0
- package/dist/components/image-comparer/image-comparer.class.d.ts.map +1 -0
- package/dist/components/image-comparer/image-comparer.class.js +92 -0
- package/dist/components/image-comparer/image-comparer.class.js.map +1 -0
- package/dist/components/image-comparer/image-comparer.d.ts +3 -0
- package/dist/components/image-comparer/image-comparer.d.ts.map +1 -0
- package/dist/components/image-comparer/image-comparer.js +5 -0
- package/dist/components/image-comparer/image-comparer.js.map +1 -0
- package/dist/components/image-comparer/image-comparer.styles.d.ts +2 -0
- package/dist/components/image-comparer/image-comparer.styles.d.ts.map +1 -0
- package/dist/components/image-comparer/image-comparer.styles.js +70 -0
- package/dist/components/image-comparer/image-comparer.styles.js.map +1 -0
- package/dist/components/input/input.class.d.ts +12 -3
- package/dist/components/input/input.class.d.ts.map +1 -1
- package/dist/components/input/input.class.js +35 -2
- package/dist/components/input/input.class.js.map +1 -1
- package/dist/components/input/number-input.class.d.ts +17 -0
- package/dist/components/input/number-input.class.d.ts.map +1 -0
- package/dist/components/input/number-input.class.js +18 -0
- package/dist/components/input/number-input.class.js.map +1 -0
- package/dist/components/input/number-input.d.ts +2 -0
- package/dist/components/input/number-input.d.ts.map +1 -0
- package/dist/components/input/number-input.js +5 -0
- package/dist/components/input/number-input.js.map +1 -0
- package/dist/components/input/time-input.class.d.ts +16 -0
- package/dist/components/input/time-input.class.d.ts.map +1 -0
- package/dist/components/input/time-input.class.js +17 -0
- package/dist/components/input/time-input.class.js.map +1 -0
- package/dist/components/input/time-input.d.ts +2 -0
- package/dist/components/input/time-input.d.ts.map +1 -0
- package/dist/components/input/time-input.js +5 -0
- package/dist/components/input/time-input.js.map +1 -0
- package/dist/components/intersection-observer/intersection-observer.class.d.ts +37 -0
- package/dist/components/intersection-observer/intersection-observer.class.d.ts.map +1 -0
- package/dist/components/intersection-observer/intersection-observer.class.js +77 -0
- package/dist/components/intersection-observer/intersection-observer.class.js.map +1 -0
- package/dist/components/intersection-observer/intersection-observer.d.ts +2 -0
- package/dist/components/intersection-observer/intersection-observer.d.ts.map +1 -0
- package/dist/components/intersection-observer/intersection-observer.js +5 -0
- package/dist/components/intersection-observer/intersection-observer.js.map +1 -0
- package/dist/components/intersection-observer/intersection-observer.styles.d.ts +2 -0
- package/dist/components/intersection-observer/intersection-observer.styles.d.ts.map +1 -0
- package/dist/components/intersection-observer/intersection-observer.styles.js +8 -0
- package/dist/components/intersection-observer/intersection-observer.styles.js.map +1 -0
- package/dist/components/json-viewer/json-viewer.styles.js +1 -1
- package/dist/components/markdown/markdown.styles.js +1 -1
- package/dist/components/menu/dropdown-item.class.d.ts +18 -0
- package/dist/components/menu/dropdown-item.class.d.ts.map +1 -0
- package/dist/components/menu/dropdown-item.class.js +13 -0
- package/dist/components/menu/dropdown-item.class.js.map +1 -0
- package/dist/components/menu/dropdown-item.d.ts +2 -0
- package/dist/components/menu/dropdown-item.d.ts.map +1 -0
- package/dist/components/menu/dropdown-item.js +5 -0
- package/dist/components/menu/dropdown-item.js.map +1 -0
- package/dist/components/model-select/model-select.class.d.ts +4 -0
- package/dist/components/model-select/model-select.class.d.ts.map +1 -1
- package/dist/components/model-select/model-select.class.js +16 -1
- package/dist/components/model-select/model-select.class.js.map +1 -1
- package/dist/components/mutation-observer/mutation-observer.class.d.ts +40 -0
- package/dist/components/mutation-observer/mutation-observer.class.d.ts.map +1 -0
- package/dist/components/mutation-observer/mutation-observer.class.js +96 -0
- package/dist/components/mutation-observer/mutation-observer.class.js.map +1 -0
- package/dist/components/mutation-observer/mutation-observer.d.ts +2 -0
- package/dist/components/mutation-observer/mutation-observer.d.ts.map +1 -0
- package/dist/components/mutation-observer/mutation-observer.js +5 -0
- package/dist/components/mutation-observer/mutation-observer.js.map +1 -0
- package/dist/components/mutation-observer/mutation-observer.styles.d.ts +2 -0
- package/dist/components/mutation-observer/mutation-observer.styles.d.ts.map +1 -0
- package/dist/components/mutation-observer/mutation-observer.styles.js +8 -0
- package/dist/components/mutation-observer/mutation-observer.styles.js.map +1 -0
- package/dist/components/overlay/dropdown.class.d.ts +21 -0
- package/dist/components/overlay/dropdown.class.d.ts.map +1 -0
- package/dist/components/overlay/dropdown.class.js +18 -0
- package/dist/components/overlay/dropdown.class.js.map +1 -0
- package/dist/components/overlay/dropdown.d.ts +2 -0
- package/dist/components/overlay/dropdown.d.ts.map +1 -0
- package/dist/components/overlay/dropdown.js +5 -0
- package/dist/components/overlay/dropdown.js.map +1 -0
- package/dist/components/overlay/overlay.styles.d.ts +3 -0
- package/dist/components/overlay/overlay.styles.d.ts.map +1 -0
- package/dist/components/overlay/overlay.styles.js +39 -0
- package/dist/components/overlay/overlay.styles.js.map +1 -0
- package/dist/components/overlay/popover.class.d.ts +48 -0
- package/dist/components/overlay/popover.class.d.ts.map +1 -0
- package/dist/components/overlay/popover.class.js +132 -0
- package/dist/components/overlay/popover.class.js.map +1 -0
- package/dist/components/overlay/popover.d.ts +2 -0
- package/dist/components/overlay/popover.d.ts.map +1 -0
- package/dist/components/overlay/popover.js +5 -0
- package/dist/components/overlay/popover.js.map +1 -0
- package/dist/components/overlay/tooltip.class.d.ts +41 -0
- package/dist/components/overlay/tooltip.class.d.ts.map +1 -0
- package/dist/components/overlay/tooltip.class.js +118 -0
- package/dist/components/overlay/tooltip.class.js.map +1 -0
- package/dist/components/overlay/tooltip.d.ts +2 -0
- package/dist/components/overlay/tooltip.d.ts.map +1 -0
- package/dist/components/overlay/tooltip.js +5 -0
- package/dist/components/overlay/tooltip.js.map +1 -0
- package/dist/components/progress/progress-bar.class.d.ts +30 -0
- package/dist/components/progress/progress-bar.class.d.ts.map +1 -0
- package/dist/components/progress/progress-bar.class.js +61 -0
- package/dist/components/progress/progress-bar.class.js.map +1 -0
- package/dist/components/progress/progress-bar.d.ts +2 -0
- package/dist/components/progress/progress-bar.d.ts.map +1 -0
- package/dist/components/progress/progress-bar.js +5 -0
- package/dist/components/progress/progress-bar.js.map +1 -0
- package/dist/components/progress/progress-ring.class.d.ts +27 -0
- package/dist/components/progress/progress-ring.class.d.ts.map +1 -0
- package/dist/components/progress/progress-ring.class.js +59 -0
- package/dist/components/progress/progress-ring.class.js.map +1 -0
- package/dist/components/progress/progress-ring.d.ts +2 -0
- package/dist/components/progress/progress-ring.d.ts.map +1 -0
- package/dist/components/progress/progress-ring.js +5 -0
- package/dist/components/progress/progress-ring.js.map +1 -0
- package/dist/components/progress/progress.styles.d.ts +3 -0
- package/dist/components/progress/progress.styles.d.ts.map +1 -0
- package/dist/components/progress/progress.styles.js +23 -0
- package/dist/components/progress/progress.styles.js.map +1 -0
- package/dist/components/radio/radio-group.class.d.ts +49 -0
- package/dist/components/radio/radio-group.class.d.ts.map +1 -0
- package/dist/components/radio/radio-group.class.js +137 -0
- package/dist/components/radio/radio-group.class.js.map +1 -0
- package/dist/components/radio/radio-group.d.ts +2 -0
- package/dist/components/radio/radio-group.d.ts.map +1 -0
- package/dist/components/radio/radio-group.js +5 -0
- package/dist/components/radio/radio-group.js.map +1 -0
- package/dist/components/radio/radio-group.styles.d.ts +2 -0
- package/dist/components/radio/radio-group.styles.d.ts.map +1 -0
- package/dist/components/radio/radio-group.styles.js +11 -0
- package/dist/components/radio/radio-group.styles.js.map +1 -0
- package/dist/components/radio/radio.class.d.ts +97 -0
- package/dist/components/radio/radio.class.d.ts.map +1 -0
- package/dist/components/radio/radio.class.js +159 -0
- package/dist/components/radio/radio.class.js.map +1 -0
- package/dist/components/radio/radio.d.ts +2 -0
- package/dist/components/radio/radio.d.ts.map +1 -0
- package/dist/components/radio/radio.js +5 -0
- package/dist/components/radio/radio.js.map +1 -0
- package/dist/components/radio/radio.styles.d.ts +2 -0
- package/dist/components/radio/radio.styles.d.ts.map +1 -0
- package/dist/components/radio/radio.styles.js +57 -0
- package/dist/components/radio/radio.styles.js.map +1 -0
- package/dist/components/rating/rating.class.d.ts +34 -0
- package/dist/components/rating/rating.class.d.ts.map +1 -0
- package/dist/components/rating/rating.class.js +92 -0
- package/dist/components/rating/rating.class.js.map +1 -0
- package/dist/components/rating/rating.d.ts +2 -0
- package/dist/components/rating/rating.d.ts.map +1 -0
- package/dist/components/rating/rating.js +5 -0
- package/dist/components/rating/rating.js.map +1 -0
- package/dist/components/rating/rating.styles.d.ts +2 -0
- package/dist/components/rating/rating.styles.d.ts.map +1 -0
- package/dist/components/rating/rating.styles.js +10 -0
- package/dist/components/rating/rating.styles.js.map +1 -0
- package/dist/components/resize-observer/resize-observer.class.d.ts +37 -0
- package/dist/components/resize-observer/resize-observer.class.d.ts.map +1 -0
- package/dist/components/resize-observer/resize-observer.class.js +74 -0
- package/dist/components/resize-observer/resize-observer.class.js.map +1 -0
- package/dist/components/resize-observer/resize-observer.d.ts +2 -0
- package/dist/components/resize-observer/resize-observer.d.ts.map +1 -0
- package/dist/components/resize-observer/resize-observer.js +5 -0
- package/dist/components/resize-observer/resize-observer.js.map +1 -0
- package/dist/components/resize-observer/resize-observer.styles.d.ts +2 -0
- package/dist/components/resize-observer/resize-observer.styles.d.ts.map +1 -0
- package/dist/components/resize-observer/resize-observer.styles.js +11 -0
- package/dist/components/resize-observer/resize-observer.styles.js.map +1 -0
- package/dist/components/responsive-panel/responsive-panel.styles.js +1 -1
- package/dist/components/scroller/scroller.class.d.ts +54 -0
- package/dist/components/scroller/scroller.class.d.ts.map +1 -0
- package/dist/components/scroller/scroller.class.js +138 -0
- package/dist/components/scroller/scroller.class.js.map +1 -0
- package/dist/components/scroller/scroller.d.ts +2 -0
- package/dist/components/scroller/scroller.d.ts.map +1 -0
- package/dist/components/scroller/scroller.js +5 -0
- package/dist/components/scroller/scroller.js.map +1 -0
- package/dist/components/scroller/scroller.styles.d.ts +2 -0
- package/dist/components/scroller/scroller.styles.d.ts.map +1 -0
- package/dist/components/scroller/scroller.styles.js +94 -0
- package/dist/components/scroller/scroller.styles.js.map +1 -0
- package/dist/components/segmented/segmented.class.d.ts +6 -4
- package/dist/components/segmented/segmented.class.d.ts.map +1 -1
- package/dist/components/segmented/segmented.class.js +3 -2
- package/dist/components/segmented/segmented.class.js.map +1 -1
- package/dist/components/segmented/segmented.styles.js +1 -1
- package/dist/components/spinner/spinner.class.d.ts +24 -0
- package/dist/components/spinner/spinner.class.d.ts.map +1 -0
- package/dist/components/spinner/spinner.class.js +41 -0
- package/dist/components/spinner/spinner.class.js.map +1 -0
- package/dist/components/spinner/spinner.d.ts +2 -0
- package/dist/components/spinner/spinner.d.ts.map +1 -0
- package/dist/components/spinner/spinner.js +5 -0
- package/dist/components/spinner/spinner.js.map +1 -0
- package/dist/components/spinner/spinner.styles.d.ts +2 -0
- package/dist/components/spinner/spinner.styles.d.ts.map +1 -0
- package/dist/components/spinner/spinner.styles.js +17 -0
- package/dist/components/spinner/spinner.styles.js.map +1 -0
- package/dist/components/table/table.class.d.ts +87 -0
- package/dist/components/table/table.class.d.ts.map +1 -1
- package/dist/components/table/table.class.js +403 -113
- package/dist/components/table/table.class.js.map +1 -1
- package/dist/components/table/table.styles.d.ts.map +1 -1
- package/dist/components/table/table.styles.js +56 -0
- package/dist/components/table/table.styles.js.map +1 -1
- package/dist/components/textarea/textarea.class.d.ts +6 -2
- package/dist/components/textarea/textarea.class.d.ts.map +1 -1
- package/dist/components/textarea/textarea.class.js +6 -2
- package/dist/components/textarea/textarea.class.js.map +1 -1
- package/dist/components/tool-approval-dialog/tool-approval-dialog.class.d.ts +13 -6
- package/dist/components/tool-approval-dialog/tool-approval-dialog.class.d.ts.map +1 -1
- package/dist/components/tool-approval-dialog/tool-approval-dialog.class.js +48 -10
- package/dist/components/tool-approval-dialog/tool-approval-dialog.class.js.map +1 -1
- package/dist/components/tool-approval-dialog/tool-approval-dialog.styles.js +1 -1
- package/dist/components/tool-result-dialog/tool-result-dialog.styles.js +1 -1
- package/dist/components/tool-select-dialog/tool-select-dialog.class.d.ts +7 -0
- package/dist/components/tool-select-dialog/tool-select-dialog.class.d.ts.map +1 -1
- package/dist/components/tool-select-dialog/tool-select-dialog.class.js +31 -0
- package/dist/components/tool-select-dialog/tool-select-dialog.class.js.map +1 -1
- package/dist/components/tool-select-dialog/tool-select-dialog.styles.js +1 -1
- package/dist/components/widget/widget.styles.js +1 -1
- package/dist/components/word-cloud/word-cloud.styles.js +4 -4
- package/dist/components/zoomable-frame/zoomable-frame.class.d.ts +48 -0
- package/dist/components/zoomable-frame/zoomable-frame.class.d.ts.map +1 -0
- package/dist/components/zoomable-frame/zoomable-frame.class.js +115 -0
- package/dist/components/zoomable-frame/zoomable-frame.class.js.map +1 -0
- package/dist/components/zoomable-frame/zoomable-frame.d.ts +3 -0
- package/dist/components/zoomable-frame/zoomable-frame.d.ts.map +1 -0
- package/dist/components/zoomable-frame/zoomable-frame.js +5 -0
- package/dist/components/zoomable-frame/zoomable-frame.js.map +1 -0
- package/dist/components/zoomable-frame/zoomable-frame.styles.d.ts +2 -0
- package/dist/components/zoomable-frame/zoomable-frame.styles.d.ts.map +1 -0
- package/dist/components/zoomable-frame/zoomable-frame.styles.js +77 -0
- package/dist/components/zoomable-frame/zoomable-frame.styles.js.map +1 -0
- package/dist/internal/localization.d.ts +1 -1
- package/dist/internal/localization.d.ts.map +1 -1
- package/dist/internal/localization.js +25 -0
- package/dist/internal/localization.js.map +1 -1
- package/dist/internal/lyra-element.d.ts +2 -2
- package/dist/internal/lyra-element.js +2 -2
- package/dist/internal/root-registration-allowlist.d.ts +1 -1
- package/dist/internal/root-registration-allowlist.d.ts.map +1 -1
- package/dist/internal/root-registration-allowlist.js +36 -0
- package/dist/internal/root-registration-allowlist.js.map +1 -1
- package/dist/internal/tokens.styles.d.ts.map +1 -1
- package/dist/internal/tokens.styles.js +202 -198
- package/dist/internal/tokens.styles.js.map +1 -1
- package/dist/lyra.d.ts +93 -0
- package/dist/lyra.d.ts.map +1 -1
- package/dist/lyra.js +72 -0
- package/dist/lyra.js.map +1 -1
- package/dist/testing/happy-dom-shims.d.ts +9 -3
- package/dist/testing/happy-dom-shims.d.ts.map +1 -1
- package/dist/testing/happy-dom-shims.js +13 -3
- package/dist/testing/happy-dom-shims.js.map +1 -1
- package/dist/theme.css +58 -0
- package/llms-full.txt +556 -39
- package/llms.txt +22 -8
- package/package.json +81 -2
package/llms-full.txt
CHANGED
|
@@ -1,18 +1,14 @@
|
|
|
1
1
|
# @aceshooting/lyra-ui — LLM API Reference
|
|
2
2
|
|
|
3
|
-
`@aceshooting/lyra-ui` is a
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
coding assistants integrating the library; for install instructions, the full component catalog, and
|
|
13
|
-
the `<wa-*>` → `<lyra-*>` migration notes, see the package [README](./README.md) — or the shorter
|
|
14
|
-
curated index at [`llms.txt`](./llms.txt) if you just need the shape of the library before diving in
|
|
15
|
-
here.
|
|
3
|
+
`@aceshooting/lyra-ui` is a free, independent, MIT-licensed [Lit](https://lit.dev) web-component
|
|
4
|
+
library and an open-source alternative to Shoelace and Web Awesome. It combines accessible form
|
|
5
|
+
controls, layout and overlay primitives, dashboards, charts, data visualization, and Conversation &
|
|
6
|
+
Agent UI. Selected components retain documented Web Awesome-compatible public names under a `lyra-`
|
|
7
|
+
prefix to make migration easier, but Lyra has its own implementation, design tokens, localization
|
|
8
|
+
runtime, RTL behavior, and release surface. It has no runtime dependency on either project. This is
|
|
9
|
+
the complete component-by-component API reference for coding assistants integrating the library; for
|
|
10
|
+
installation, the full catalog, and Web Awesome/Shoelace migration notes, see the package
|
|
11
|
+
[README](./README.md) — or the shorter curated index at [`llms.txt`](./llms.txt).
|
|
16
12
|
|
|
17
13
|
Component entry points such as `components/empty/empty.js` register their custom-element tag.
|
|
18
14
|
Every component also exposes a matching `.class.js` entry for subclassing or type-directed
|
|
@@ -105,21 +101,22 @@ Not a custom element itself — infrastructure every `lyra-*` component in the l
|
|
|
105
101
|
`lyra-citation-badge`, and `lyra-menu` (which resolves its `placement` through
|
|
106
102
|
`rtlAwarePlacement()` first — see `rtl.ts` below — before handing it to `place()`).
|
|
107
103
|
- **`tokens.styles.ts` → `tokens`** (a `css` template prepended to every component's stylesheet) —
|
|
108
|
-
the whole design-token layer. Every value chains through
|
|
109
|
-
a hard-coded fallback, e.g. `--lyra-color-brand: var(--
|
|
104
|
+
the whole design-token layer. Every value chains through an independent `--lyra-theme-*` custom
|
|
105
|
+
property and finally a hard-coded fallback, e.g. `--lyra-color-brand: var(--lyra-theme-color-brand-fill-loud, #0969da)`.
|
|
106
|
+
Full
|
|
110
107
|
set: `--lyra-color-surface / -text / -text-quiet / -border / -brand / -brand-quiet / -success /
|
|
111
108
|
-success-quiet / -warning / -warning-quiet / -danger / -danger-quiet`,
|
|
112
109
|
`--lyra-color-on-brand / -on-success / -on-warning / -on-danger` (paired
|
|
113
110
|
text/icon colors for content painted on the corresponding solid semantic fill; standalone light
|
|
114
|
-
and dark fallbacks choose a contrasting foreground for each fill, while a
|
|
115
|
-
provide its own `*-on-loud` values), `--lyra-space-xs / -s / -m / -l`, `--lyra-radius`, `--lyra-shadow`,
|
|
111
|
+
and dark fallbacks choose a contrasting foreground for each fill, while a consumer's own theme
|
|
112
|
+
can provide its own `*-on-loud` values), `--lyra-space-xs / -s / -m / -l`, `--lyra-radius`, `--lyra-shadow`,
|
|
116
113
|
`--lyra-font`, `--lyra-transition-fast` / `-base` (motion timing every animating component should
|
|
117
114
|
share), `--lyra-opacity-disabled` (one shared disabled-state opacity), `--lyra-focus-ring-width` /
|
|
118
115
|
`-color` / `-offset` (every `:focus-visible` rule should reference these), `--lyra-icon-button-size`
|
|
119
116
|
(minimum tappable box for icon-only buttons; the glyph itself doesn't grow). Also sets
|
|
120
117
|
`:host([hidden]) { display: none !important; }`, an inherited `box-sizing: border-box` reset, and
|
|
121
118
|
a `prefers-color-scheme: dark` fallback that re-points the color tokens' hard-coded defaults at a
|
|
122
|
-
dark palette (only takes effect when no real `--
|
|
119
|
+
dark palette (only takes effect when no real `--lyra-theme-*` value is set).
|
|
123
120
|
- **`prefix.ts`** — `LYRA_PREFIX = 'lyra'`; `tag(name)` → `` `lyra-${name}` ``; `defineElement(name,
|
|
124
121
|
ctor)` — idempotent `customElements.define`, safe if a module is evaluated twice.
|
|
125
122
|
- **`a11y.ts`** — `nextId(scope)`: monotonic id generator (e.g. `nextId('combobox-list')` →
|
|
@@ -544,6 +541,10 @@ Text field + calendar popover, **form-associated** via the shared `FormAssociate
|
|
|
544
541
|
internal `<input>`; empty omits the attribute. Named `autoCorrect` in JS/TS (not `autocorrect`)
|
|
545
542
|
to dodge a `lib.dom.d.ts` collision with `HTMLElement`'s own boolean `autocorrect` IDL member;
|
|
546
543
|
the wire attribute is still the plain `autocorrect` name
|
|
544
|
+
- `autocomplete: string = ''`, `inputMode: string = ''` (attribute `inputmode`), and
|
|
545
|
+
`enterKeyHint: string = ''` (attribute `enterkeyhint`) — forwarded to the internal date input
|
|
546
|
+
- `autocomplete: string = ''`, `inputMode: string = ''` (`inputmode`), and `enterKeyHint: string = ''`
|
|
547
|
+
(`enterkeyhint`) — forwarded to the internal `<input>`.
|
|
547
548
|
|
|
548
549
|
**Methods:** `show()`, `hide()`, `clear()`
|
|
549
550
|
|
|
@@ -720,15 +721,14 @@ original declarative `value`, matching native `defaultValue` behavior.
|
|
|
720
721
|
|
|
721
722
|
## `lyra-button`
|
|
722
723
|
|
|
723
|
-
A generic action-button primitive
|
|
724
|
-
internal native `<button>` (this library has no runtime dependency on Web Awesome); `type="submit"`/
|
|
724
|
+
A generic action-button primitive. Renders an internal native `<button>`; `type="submit"`/
|
|
725
725
|
`type="reset"` are handled by the component itself via the host's own `closest('form')`, since a
|
|
726
726
|
shadow-internal native button doesn't participate in an ancestor form's submission on its own.
|
|
727
727
|
|
|
728
728
|
**Properties:**
|
|
729
729
|
- `variant: 'neutral' | 'brand' | 'success' | 'warning' | 'danger' = 'neutral'` (reflected)
|
|
730
730
|
- `appearance: 'accent' | 'filled' | 'outlined' | 'plain' = 'filled'` (reflected) — `'accent'` is a
|
|
731
|
-
loud, high-contrast filled tier
|
|
731
|
+
loud, high-contrast filled tier,
|
|
732
732
|
distinct from `'filled'` for `variant="neutral"` specifically (`'filled'` reads the ambient
|
|
733
733
|
surface color there; `'accent'` reads a solid neutral fill)
|
|
734
734
|
- `size: 'xs' | 's' | 'm' | 'l' | 'xl' = 'm'` (reflected)
|
|
@@ -737,7 +737,11 @@ shadow-internal native button doesn't participate in an ancestor form's submissi
|
|
|
737
737
|
clearing `disabled`
|
|
738
738
|
- `disabled: boolean = false` (reflected)
|
|
739
739
|
|
|
740
|
-
|
|
740
|
+
The shared `m` size uses `--lyra-font-size-m`. The internal button follows the host's inline size through `--lyra-button-width` (default
|
|
741
|
+
`100%`), and the size scale is exposed through `--lyra-button-size-xs/-s/-m/-l/-xl`.
|
|
742
|
+
|
|
743
|
+
**Getters/methods:** `click()`, `focus(options?)`, and `blur()` — forwarded to the internal native
|
|
744
|
+
`<button>`; `click()` also runs the component's submit/reset behavior.
|
|
741
745
|
|
|
742
746
|
**Events:** none (a plain native `click` bubbles and composes through the shadow boundary
|
|
743
747
|
unmodified; disabled while `disabled` or `loading`).
|
|
@@ -746,11 +750,12 @@ unmodified; disabled while `disabled` or `loading`).
|
|
|
746
750
|
|
|
747
751
|
**CSS parts:** `base`, `label`, `start`, `end`, `spinner` (present only while `loading`).
|
|
748
752
|
|
|
749
|
-
**Themeable custom properties:** `--lyra-button-
|
|
753
|
+
**Themeable custom properties:** `--lyra-button-width`, `--lyra-button-size-xs/-s/-m/-l/-xl`,
|
|
754
|
+
`--lyra-button-accent`, `--lyra-button-fill`,
|
|
750
755
|
`--lyra-button-on-fill`, `--lyra-button-border` (each swapped by the active `variant`, default
|
|
751
756
|
`neutral` falls back to plain text/surface/border tokens), `--lyra-button-accent-fill`,
|
|
752
757
|
`--lyra-button-accent-on-fill` (the `appearance="accent"` fill/foreground pair; `neutral` falls
|
|
753
|
-
back to `--
|
|
758
|
+
back to `--lyra-color-neutral`/`--lyra-color-on-neutral`, every other variant reuses that variant's own
|
|
754
759
|
loud fill token), `--lyra-button-hover-brightness` (default `1.08`, the `:hover` filter intensity),
|
|
755
760
|
`--lyra-button-active-scale` (default `0.9875`, the `:active` press-scale, disabled under
|
|
756
761
|
`prefers-reduced-motion`).
|
|
@@ -790,13 +795,17 @@ form-associated via the same `FormAssociated` mixin as `lyra-textarea`. Ships th
|
|
|
790
795
|
- `errorText: string = ''` (attribute `error-text`)
|
|
791
796
|
- `accessibleLabel: string | null = null` (attribute `aria-label`)
|
|
792
797
|
- `autocomplete: string = ''`
|
|
798
|
+
- `spellcheck: boolean = true` — forwarded to the native input, including `spellcheck="false"`
|
|
799
|
+
- `autocapitalize: string = ''` / `autoCorrect: string = ''`
|
|
800
|
+
- `inputMode: string = ''` / `enterKeyHint: string = ''`
|
|
793
801
|
- `min?: number` / `max?: number` / `step?: number` (attribute: false — `type="number"` only)
|
|
794
802
|
- `passwordVisible: boolean = false` (attribute `password-visible` — `type="password"` only)
|
|
795
803
|
- `name`/`disabled`/`required` (from `FormAssociated`)
|
|
796
804
|
|
|
797
|
-
**Events:** `lyra-input` (`detail: { value }`,
|
|
798
|
-
(`detail: { value }`, fired on the native
|
|
799
|
-
composed from the internal native input's
|
|
805
|
+
**Events:** native-style composed `input` and `change`, plus `lyra-input` (`detail: { value }`,
|
|
806
|
+
fired on every user-driven edit) and `lyra-change` (`detail: { value }`, fired on the native
|
|
807
|
+
`change` timing), `blur`/`focus` (re-dispatched bubbling + composed from the internal native input's
|
|
808
|
+
own `blur`/`focus`).
|
|
800
809
|
|
|
801
810
|
**Slots:** `label`, `hint`, `error`.
|
|
802
811
|
|
|
@@ -821,6 +830,18 @@ composed from the internal native input's own `blur`/`focus`).
|
|
|
821
830
|
`ElementInternals` — not a second hand-rolled regex check.
|
|
822
831
|
- `type="password"` always renders the `password-toggle` button; there is no separate opt-out.
|
|
823
832
|
|
|
833
|
+
## `lyra-number-input`
|
|
834
|
+
|
|
835
|
+
A migration-friendly numeric alias of `lyra-input`. It forces `type="number"` while retaining the
|
|
836
|
+
same form association, label/hint/error chrome, native editing passthrough, input/change events,
|
|
837
|
+
and `min`/`max`/`step` validation. It exposes the same properties, slots, events, and CSS parts as
|
|
838
|
+
`lyra-input`.
|
|
839
|
+
|
|
840
|
+
## `lyra-time-input`
|
|
841
|
+
|
|
842
|
+
A migration-friendly time alias of `lyra-input`. It forces the native `type="time"` while retaining
|
|
843
|
+
the same form association, chrome, native editing passthrough, events, slots, and CSS parts.
|
|
844
|
+
|
|
824
845
|
---
|
|
825
846
|
|
|
826
847
|
## `lyra-phone-input`
|
|
@@ -1400,8 +1421,8 @@ accent edge and value tint).
|
|
|
1400
1421
|
|
|
1401
1422
|
## `lyra-table`
|
|
1402
1423
|
|
|
1403
|
-
|
|
1404
|
-
|
|
1424
|
+
Sort/select-aware data table. Sorting remains consumer-controlled; optional filtering, pagination,
|
|
1425
|
+
and loading chrome are built in while remaining controlled at the public API boundary.
|
|
1405
1426
|
|
|
1406
1427
|
**Properties:**
|
|
1407
1428
|
- `columns: TableColumn<T>[] = []` (attribute: false) — `{ key, label, headerCell?, width?,
|
|
@@ -1419,7 +1440,8 @@ of `rows` — this component only renders and emits intents.
|
|
|
1419
1440
|
`[part='foot']` (`<tfoot>`) only renders at all when at least one column defines `footer`;
|
|
1420
1441
|
`cellStyle` is applied directly to the generated `<td>` via `styleMap` — e.g. a computed heat-tint
|
|
1421
1442
|
background a `cell()`-returned inner element can't paint into the cell's own padding — omit it for
|
|
1422
|
-
no per-cell style override (the default, unchanged output)
|
|
1443
|
+
no per-cell style override (the default, unchanged output); `editable` enables double-click
|
|
1444
|
+
editing, `editValue` supplies the editor value, and `editType` selects `text` or `number`
|
|
1423
1445
|
- `columnsHidden: boolean = false` (attribute `columns-hidden`, reflected) — computed/read-only: true
|
|
1424
1446
|
when a `priority` column is *actually* hidden right now by the `@container` breakpoints above, or
|
|
1425
1447
|
`showAllColumns` force-visible mode is currently active. Measured via a `ResizeObserver` on
|
|
@@ -1437,6 +1459,31 @@ of `rows` — this component only renders and emits intents.
|
|
|
1437
1459
|
when omitted, which is only safe while `rows` never reorders — set it whenever `rows` can be
|
|
1438
1460
|
sorted/filtered/re-ordered across renders, or selection/click can silently attach to the wrong row
|
|
1439
1461
|
- `selectedKey: string | number | null = null` (attribute: false) — **single**-selection only
|
|
1462
|
+
- `selectionMode: 'none'|'single'|'multiple' = 'none'` (attribute `selection-mode`, reflected) —
|
|
1463
|
+
opt-in self-managed row selection; the default remains presentational
|
|
1464
|
+
- `selectedKeys: Set<string | number> = new Set()` (attribute: false) — the selected raw row keys
|
|
1465
|
+
used by multiple selection
|
|
1466
|
+
- `filterable: boolean = false` (attribute `filterable`, reflected) — renders a localized search
|
|
1467
|
+
field above the grid
|
|
1468
|
+
- `filterText: string = ''` (attribute `filter-text`) — controlled filter text
|
|
1469
|
+
- `filter?: (row: T, text: string) => boolean` (attribute: false) — typed predicate used by the
|
|
1470
|
+
filter field; when omitted, rows are matched against their JSON representation
|
|
1471
|
+
- `filterLabel: string = ''` (attribute `filter-label`) and `filterPlaceholder: string = ''`
|
|
1472
|
+
(attribute `filter-placeholder`) — optional localized-label overrides
|
|
1473
|
+
- `loading: boolean = false` (attribute `loading`, reflected) and `loadingLabel: string = ''`
|
|
1474
|
+
(attribute `loading-label`) — renders a busy spinner and suppresses the grid while loading
|
|
1475
|
+
- `pageSize: number = 0` (attribute `page-size`) — positive values enable controlled pagination;
|
|
1476
|
+
zero disables the pagination footer
|
|
1477
|
+
- `page: number = 1` (attribute `page`, reflected) — controlled current page
|
|
1478
|
+
- `totalItems: number = -1` (attribute `total-items`) — server-side total item count; `-1` derives
|
|
1479
|
+
the total from filtered rows
|
|
1480
|
+
- `paginationMode: 'client'|'server' = 'client'` (attribute `pagination-mode`, reflected) — client
|
|
1481
|
+
mode slices rows; server mode renders the supplied page unchanged
|
|
1482
|
+
- Editable columns emit `lyra-cell-edit` on commit and never mutate the supplied row object.
|
|
1483
|
+
- `groupBy?: (row: T) => string | number` (attribute: false) — inserts a non-focusable full-width
|
|
1484
|
+
group row before each group
|
|
1485
|
+
- `groupLabel?: (key: string | number, rows: T[]) => unknown` (attribute: false) — custom group
|
|
1486
|
+
header content; without it, the group key is rendered as text
|
|
1440
1487
|
- `expandedContent?: (row: T) => unknown` (attribute: false) — enables a leading expand toggle and
|
|
1441
1488
|
renders a full-width detail row beneath expanded records
|
|
1442
1489
|
- `canExpand?: (row: T) => boolean` (attribute: false) — optional per-row gate for expansion
|
|
@@ -1459,7 +1506,11 @@ of `rows` — this component only renders and emits intents.
|
|
|
1459
1506
|
(`detail: { row }`), `lyra-load-more` (fired on the "load more" button), `lyra-columns-hidden-change`
|
|
1460
1507
|
(`detail: { hidden: boolean }`, fired only on a real `columnsHidden` transition),
|
|
1461
1508
|
`lyra-columns-revealed` (`detail: { revealed: boolean }`), and `lyra-row-expand-toggle`
|
|
1462
|
-
(`detail: { row, key }`; the table does not mutate `expandedKeys`)
|
|
1509
|
+
(`detail: { row, key }`; the table does not mutate `expandedKeys`), and
|
|
1510
|
+
`lyra-selection-change` (`detail: { keys }`) when selection is enabled, `lyra-filter-change`
|
|
1511
|
+
(`detail: { text }`), and `lyra-page-change` (`detail: { page }`) from the controlled
|
|
1512
|
+
filter/pagination surfaces, and `lyra-cell-edit` (`detail: { row, key, value }`) for editable
|
|
1513
|
+
columns
|
|
1463
1514
|
|
|
1464
1515
|
**Slots:** none — content comes entirely from `columns`/`rows`.
|
|
1465
1516
|
|
|
@@ -1467,7 +1518,8 @@ of `rows` — this component only renders and emits intents.
|
|
|
1467
1518
|
chevron indicator shown on the active sortable header, rotated per `sortDir`), `reveal-columns-button`
|
|
1468
1519
|
(shown only when `columnsHidden` is true), `foot` (the `<tfoot>`, only rendered when at least one
|
|
1469
1520
|
column defines `footer`), `footer-row`, `footer-cell`, `expand-toggle-cell`, `row-expand-toggle`,
|
|
1470
|
-
`row-expand-icon`, `expanded-row`, `expanded-cell`
|
|
1521
|
+
`row-expand-icon`, `expanded-row`, `expanded-cell`, `filter-label`, `filter`, `loading`, and
|
|
1522
|
+
`pagination`, `cell-editor`, `group-row`, and `group-cell`
|
|
1471
1523
|
|
|
1472
1524
|
**Themeable custom properties:** `--lyra-table-max-height` (default `none`; controls the scrollable
|
|
1473
1525
|
body's `max-block-size`).
|
|
@@ -1833,6 +1885,9 @@ itself (absent for `'wide'`/`collapse="none"`); and the `lyra-split-collapse-cha
|
|
|
1833
1885
|
divider adjacent to the collapsed panel is drag/keyboard-disabled (`aria-disabled="true"`) while
|
|
1834
1886
|
collapsed. `collapse="none"` (the default) is byte-for-byte identical to pre-collapse-feature behavior.
|
|
1835
1887
|
|
|
1888
|
+
`dividerLabel?: (index: number, panelCount: number) => string` (attribute: false) customizes the
|
|
1889
|
+
localized accessible label generated for each auto-inserted divider.
|
|
1890
|
+
|
|
1836
1891
|
**Events:** `lyra-resize` (`detail: { sizes }`, fired on every drag step/release **and** every
|
|
1837
1892
|
keyboard step), `lyra-split-collapse-change` (`detail: { state: 'wide'|'rail'|'floating' }`, fired only
|
|
1838
1893
|
on a real `collapse`-state transition, never on every resize/render),
|
|
@@ -1912,6 +1967,8 @@ position) survives the transition.
|
|
|
1912
1967
|
sidebar/toolbar visible during fullscreen
|
|
1913
1968
|
- `compact: boolean = false` (reflected) — tighter header/body padding, same convention as
|
|
1914
1969
|
`lyra-empty`'s `compact`
|
|
1970
|
+
- `backdropInset: string = ''` (attribute `backdrop-inset`) — overrides the fullscreen backdrop's
|
|
1971
|
+
CSS `inset` independently from `fullscreenInset`; when empty, it follows `fullscreenInset`
|
|
1915
1972
|
- `views: WidgetView[] = []` (attribute: false) — named alternate views for the panel body, e.g. a
|
|
1916
1973
|
chart/table toggle inside the same card chrome; `WidgetView { id: string; label: string; icon?:
|
|
1917
1974
|
TemplateResult }`. Each entry gets a header toggle button (`[part='view-toggle']`) and a
|
|
@@ -1940,7 +1997,7 @@ empty), `label-group` (wrapper around the label and sublabel), `label`, `sublabe
|
|
|
1940
1997
|
`backdrop`
|
|
1941
1998
|
|
|
1942
1999
|
**Themeable custom properties:** `--lyra-widget-overlay-color` (default `rgb(0 0 0 / 0.5)` — the
|
|
1943
|
-
fullscreen backdrop scrim color; component-specific since no shared `--
|
|
2000
|
+
fullscreen backdrop scrim color; component-specific since no shared `--lyra-*` overlay token
|
|
1944
2001
|
exists), plus shared tokens (`--lyra-space-*`, `--lyra-color-border/-surface/-text-quiet`,
|
|
1945
2002
|
`--lyra-radius`, `--lyra-shadow`, `--lyra-icon-button-size`, `--lyra-focus-ring-*`).
|
|
1946
2003
|
|
|
@@ -2222,10 +2279,15 @@ A Canvas-rendered heatmap with a DPR-aware, resize-aware redraw loop, in one of
|
|
|
2222
2279
|
`"matrix"` (default — a `rowLabels` × `colLabels` grid of `values`) or `"calendar"` (a
|
|
2223
2280
|
GitHub-style Sunday–Saturday × week grid built from `days`, colored by quartile bucket rather than
|
|
2224
2281
|
the matrix mode's continuous ramp). Every cell is independently addressable despite being
|
|
2225
|
-
canvas-drawn (no per-cell DOM node): a `pointermove` hit-test over the canvas shows `[part="tooltip"]`
|
|
2282
|
+
canvas-drawn (no per-cell DOM node by default): a `pointermove` hit-test over the canvas shows `[part="tooltip"]`
|
|
2226
2283
|
with that cell's label + value; the canvas is `tabindex="0"` with arrow-key roving focus (a stroked
|
|
2227
2284
|
ring redrawn over the focused cell on every draw, plus `[part="live-region"]` announcing it); and a
|
|
2228
|
-
click, or Enter/Space on the focused cell, fires `lyra-cell-click`.
|
|
2285
|
+
click, or Enter/Space on the focused cell, fires `lyra-cell-click`.
|
|
2286
|
+
|
|
2287
|
+
Set `accessibleCells: true` (`accessible-cells`) to opt into a native-button overlay for each
|
|
2288
|
+
interactive matrix/calendar cell. The overlay uses localized `aria-label`s, explicit
|
|
2289
|
+
`aria-pressed="true"|"false"` from the controlled `selectedCell`, and roving tabindex/arrow-key
|
|
2290
|
+
focus; it continues to emit `lyra-cell-click` and leaves selection state consumer-controlled.
|
|
2229
2291
|
|
|
2230
2292
|
**Properties:**
|
|
2231
2293
|
- `rowLabels: string[] = []` (attribute: false — matrix mode only)
|
|
@@ -2265,6 +2327,11 @@ click, or Enter/Space on the focused cell, fires `lyra-cell-click`.
|
|
|
2265
2327
|
announcement when the focused cell is the selection. Purely a controlled property — mirrors
|
|
2266
2328
|
`<lyra-lite-chart>`'s `selectedIndex`, this component never mutates it itself. Unset (the default,
|
|
2267
2329
|
`null`) reproduces today's exact output.
|
|
2330
|
+
- `accessibleCells: boolean = false` (attribute `accessible-cells`) — renders `[part="cells"]` with
|
|
2331
|
+
one `[part="cell"]` native button per interactive cell. Buttons expose localized `aria-label`s,
|
|
2332
|
+
explicit `aria-pressed` state from `selectedCell`, and a roving tabindex; the canvas becomes
|
|
2333
|
+
`aria-hidden` while this mode is enabled. The property is opt-in so the default canvas mode keeps
|
|
2334
|
+
its low DOM footprint.
|
|
2268
2335
|
- `cellText?: (pos: MatrixCellPos | CalendarCellPos, value: number) => string` (attribute: false) —
|
|
2269
2336
|
formats the per-cell hover tooltip and keyboard live-region announcement text; receives the cell
|
|
2270
2337
|
position (`{ row, col }` in matrix mode, `{ week, weekday }` in calendar mode) and its value.
|
|
@@ -2323,7 +2390,8 @@ force a redraw manually.
|
|
|
2323
2390
|
|
|
2324
2391
|
**Slots:** none.
|
|
2325
2392
|
|
|
2326
|
-
**CSS parts:** `base`, `canvas`, `
|
|
2393
|
+
**CSS parts:** `base`, `canvas`, `cells` (opt-in per-cell overlay), `cell` (one opt-in native cell
|
|
2394
|
+
button), `tooltip` (hover tooltip, positioned over the hovered cell),
|
|
2327
2395
|
`live-region` (visually-hidden `role="status" aria-live="polite"` element announcing the
|
|
2328
2396
|
keyboard-focused cell), `legend`, `legend-lo`, `legend-hi`, `legend-annotation` (one per labeled
|
|
2329
2397
|
`annotations` entry)
|
|
@@ -2576,6 +2644,8 @@ descendants of the treeitem, matching the WAI-ARIA treeitem pattern's containmen
|
|
|
2576
2644
|
- `setSize: number = 1`, `posInSet: number = 1` (attribute: false) — this node's `aria-setsize`/
|
|
2577
2645
|
`aria-posinset` values among its siblings, pushed down from `<lyra-tree>`; normally set internally,
|
|
2578
2646
|
not by consumers
|
|
2647
|
+
- `hasChildren: boolean` (read-only getter) — reports whether `item.children` contains at least one
|
|
2648
|
+
child; leaf nodes never expose `aria-expanded` and cannot expand or collapse
|
|
2579
2649
|
|
|
2580
2650
|
**Methods:** `expand()`, `collapse()` (each a no-op if already in that state, or a leaf), `select()`
|
|
2581
2651
|
(fires `lyra-node-select`).
|
|
@@ -3122,6 +3192,10 @@ parsing (that's left entirely to the host).
|
|
|
3122
3192
|
- `label: string = 'Drop files here or click to browse'`
|
|
3123
3193
|
- `accessibleLabel: string = ''` (attribute `aria-label`) — overrides `label` as the internal
|
|
3124
3194
|
dropzone/button accessible name without changing visible copy
|
|
3195
|
+
- `acceptedMessage: string = '{count} file(s) added.'` (attribute `accepted-message`) — live-region
|
|
3196
|
+
message after an accepted selection; `{count}` is replaced with the accepted count
|
|
3197
|
+
- `rejectedMessage: string = '{count} file(s) rejected.'` (attribute `rejected-message`) — live-region
|
|
3198
|
+
message after rejected files; `{count}` is replaced with the rejected count
|
|
3125
3199
|
|
|
3126
3200
|
**Methods:** `openPicker()` programmatically opens the native file dialog; `focus(options?)`
|
|
3127
3201
|
forwards to the interactive dropzone.
|
|
@@ -3181,6 +3255,219 @@ an extension-only `accept` list.
|
|
|
3181
3255
|
|
|
3182
3256
|
---
|
|
3183
3257
|
|
|
3258
|
+
## `lyra-drawer`
|
|
3259
|
+
|
|
3260
|
+
A modal panel anchored to one edge of the viewport. It inherits the dialog overlay contract:
|
|
3261
|
+
focus trapping, Escape and optional backdrop dismissal, document scroll locking, overlay stacking,
|
|
3262
|
+
accessible naming, and the cancelable `lyra-dialog-close` event.
|
|
3263
|
+
|
|
3264
|
+
**Properties:**
|
|
3265
|
+
- `open: boolean = false` (attribute `open`, reflected) — controls visibility
|
|
3266
|
+
- `placement: 'start'|'end'|'top'|'bottom' = 'start'` (attribute `placement`, reflected)
|
|
3267
|
+
- `heading?: string`, `label: string`, `closable: boolean`, and `noLightDismiss: boolean` — inherited
|
|
3268
|
+
dialog naming and dismissal options
|
|
3269
|
+
|
|
3270
|
+
**CSS parts:** `backdrop`, `panel`, `header`, `heading`, `close-button`, `label`, `body`, `footer`.
|
|
3271
|
+
|
|
3272
|
+
**Themeable custom properties:** `--lyra-drawer-width`, `--lyra-drawer-height`, and inherited
|
|
3273
|
+
dialog surface/overlay tokens.
|
|
3274
|
+
|
|
3275
|
+
```html
|
|
3276
|
+
<lyra-drawer open placement="end" heading="Filters" closable>
|
|
3277
|
+
<lyra-checkbox label="Only active"></lyra-checkbox>
|
|
3278
|
+
</lyra-drawer>
|
|
3279
|
+
```
|
|
3280
|
+
|
|
3281
|
+
---
|
|
3282
|
+
|
|
3283
|
+
## `lyra-carousel`
|
|
3284
|
+
|
|
3285
|
+
Accessible carousel for arbitrary slotted slide elements. It shows one assigned element at a time,
|
|
3286
|
+
adds slide semantics and localized position labels, and provides keyboard, button, and indicator
|
|
3287
|
+
navigation.
|
|
3288
|
+
|
|
3289
|
+
**Properties:**
|
|
3290
|
+
- `index: number = 0` (attribute `index`, reflected) — active slide index
|
|
3291
|
+
- `loop: boolean = false` (attribute `loop`, reflected) — wraps navigation at either end
|
|
3292
|
+
- `autoplay: boolean = false` (attribute `autoplay`, reflected) and `autoplayInterval: number = 5000`
|
|
3293
|
+
(attribute `autoplay-interval`) — optional timed advance; autoplay is disabled under reduced motion
|
|
3294
|
+
- `showIndicators: boolean = true` (attribute `show-indicators`) — renders slide indicator buttons
|
|
3295
|
+
- `accessibleLabel: string = ''` (attribute `accessible-label`) — fallback landmark name; a host
|
|
3296
|
+
`aria-label` takes precedence
|
|
3297
|
+
|
|
3298
|
+
**Methods:** `next()`, `previous()`, and `goTo(index)` update the active index and emit
|
|
3299
|
+
`lyra-slide-change` (`detail: { index }`).
|
|
3300
|
+
|
|
3301
|
+
**CSS parts:** `base`, `viewport`, `track`, `controls`, `previous-button`, `next-button`,
|
|
3302
|
+
`indicators`, and `indicator`.
|
|
3303
|
+
|
|
3304
|
+
```html
|
|
3305
|
+
<lyra-carousel aria-label="Screenshots">
|
|
3306
|
+
<img alt="Dashboard overview" src="overview.png">
|
|
3307
|
+
<img alt="Dashboard details" src="details.png">
|
|
3308
|
+
</lyra-carousel>
|
|
3309
|
+
```
|
|
3310
|
+
|
|
3311
|
+
---
|
|
3312
|
+
|
|
3313
|
+
## `lyra-carousel-item`
|
|
3314
|
+
|
|
3315
|
+
Optional semantic wrapper for one slide in `<lyra-carousel>`. The carousel also accepts arbitrary
|
|
3316
|
+
slotted elements, so this element is useful when a migration needs the explicit item tag.
|
|
3317
|
+
|
|
3318
|
+
**Slots:** default slide content.
|
|
3319
|
+
|
|
3320
|
+
**CSS parts:** `base`.
|
|
3321
|
+
|
|
3322
|
+
```html
|
|
3323
|
+
<lyra-carousel>
|
|
3324
|
+
<lyra-carousel-item>Dashboard overview</lyra-carousel-item>
|
|
3325
|
+
<lyra-carousel-item>Dashboard details</lyra-carousel-item>
|
|
3326
|
+
</lyra-carousel>
|
|
3327
|
+
```
|
|
3328
|
+
|
|
3329
|
+
---
|
|
3330
|
+
|
|
3331
|
+
## `lyra-button-group`
|
|
3332
|
+
|
|
3333
|
+
Responsive semantic grouping primitive for related action controls. It preserves the slotted
|
|
3334
|
+
controls and exposes `role="group"` on its internal wrapper.
|
|
3335
|
+
|
|
3336
|
+
**Properties:**
|
|
3337
|
+
- `orientation: 'horizontal' | 'vertical' = 'horizontal'` (reflected)
|
|
3338
|
+
- `label: string = ''` — accessible group name; a host `aria-label` is used when `label` is empty
|
|
3339
|
+
|
|
3340
|
+
**Slots:** default action controls.
|
|
3341
|
+
|
|
3342
|
+
**CSS parts:** `base`.
|
|
3343
|
+
|
|
3344
|
+
---
|
|
3345
|
+
|
|
3346
|
+
## `lyra-image-comparer`
|
|
3347
|
+
|
|
3348
|
+
Before/after comparison surface with two named slots and a keyboard-accessible native range handle.
|
|
3349
|
+
|
|
3350
|
+
**Properties:**
|
|
3351
|
+
- `position: number = 50` (attribute `position`, reflected) — divider position from 0 to 100
|
|
3352
|
+
- `orientation: 'horizontal'|'vertical' = 'horizontal'` (attribute `orientation`, reflected)
|
|
3353
|
+
- `accessibleLabel: string | null` (attribute `aria-label`) — accessible name for the comparison
|
|
3354
|
+
and its range handle
|
|
3355
|
+
- `beforeLabel`/`afterLabel` — fallback text for empty named slots
|
|
3356
|
+
|
|
3357
|
+
**Events:** `lyra-position-change` (`detail: { position }`), plus composed `focus` and `blur` events
|
|
3358
|
+
from the internal range handle.
|
|
3359
|
+
|
|
3360
|
+
**Slots:** `before`, `after`.
|
|
3361
|
+
|
|
3362
|
+
**CSS parts:** `base`, `before`, `after`, `divider`, and `handle`.
|
|
3363
|
+
|
|
3364
|
+
```html
|
|
3365
|
+
<lyra-image-comparer aria-label="Before and after">
|
|
3366
|
+
<img slot="before" alt="Before" src="before.png">
|
|
3367
|
+
<img slot="after" alt="After" src="after.png">
|
|
3368
|
+
</lyra-image-comparer>
|
|
3369
|
+
```
|
|
3370
|
+
|
|
3371
|
+
---
|
|
3372
|
+
|
|
3373
|
+
## `lyra-zoomable-frame`
|
|
3374
|
+
|
|
3375
|
+
Scrollable inspection frame with bounded zoom controls and keyboard shortcuts. Scrolling provides
|
|
3376
|
+
panning when zoomed content exceeds the viewport.
|
|
3377
|
+
|
|
3378
|
+
**Properties:**
|
|
3379
|
+
- `zoom: number = 1` (attribute `zoom`, reflected), `minZoom: number = 0.5`, `maxZoom: number = 4`,
|
|
3380
|
+
and `zoomStep: number = 0.25` — bounded zoom configuration
|
|
3381
|
+
- `src: string = ''` and `alt: string = ''` — optional image source; otherwise the default slot is
|
|
3382
|
+
rendered
|
|
3383
|
+
- `accessibleLabel: string | null` (attribute `aria-label`) — host-level accessible name
|
|
3384
|
+
|
|
3385
|
+
**Methods:** `zoomIn()`, `zoomOut()`, and `resetZoom()` update the zoom and emit
|
|
3386
|
+
`lyra-zoom-change` (`detail: { zoom }`). The viewport also accepts `+`, `-`, and `0` keyboard
|
|
3387
|
+
shortcuts.
|
|
3388
|
+
|
|
3389
|
+
**CSS parts:** `base`, `viewport`, `content`, `controls`, `zoom-out`, `zoom-in`, and `reset`.
|
|
3390
|
+
|
|
3391
|
+
```html
|
|
3392
|
+
<lyra-zoomable-frame src="map-preview.png" alt="Map preview" aria-label="Map preview"></lyra-zoomable-frame>
|
|
3393
|
+
```
|
|
3394
|
+
|
|
3395
|
+
---
|
|
3396
|
+
|
|
3397
|
+
## `lyra-scroller`
|
|
3398
|
+
|
|
3399
|
+
Responsive overflow surface with optional previous/next controls. The default slot remains the
|
|
3400
|
+
consumer's content, and the viewport is a native scroll container that works in narrow panels as
|
|
3401
|
+
well as full-width layouts.
|
|
3402
|
+
|
|
3403
|
+
**Properties:**
|
|
3404
|
+
- `orientation: 'horizontal' | 'vertical' = 'horizontal'` (reflected)
|
|
3405
|
+
- `controls: boolean = false` (reflected) — show previous/next controls
|
|
3406
|
+
- `hideScrollbar: boolean = false` (attribute `hide-scrollbar`, reflected)
|
|
3407
|
+
- `scrollStep: number = 0` (attribute `scroll-step`) — custom step; zero uses 80% of the viewport
|
|
3408
|
+
- `label: string = ''` — accessible region name; a host `aria-label` is used when set
|
|
3409
|
+
|
|
3410
|
+
**Events:** `lyra-scroll` with `scrollStart`, `scrollEnd`, `scrollLeft`, and `scrollTop` in the
|
|
3411
|
+
detail object.
|
|
3412
|
+
|
|
3413
|
+
**Slots:** default scrollable content.
|
|
3414
|
+
|
|
3415
|
+
**CSS parts:** `base`, `viewport`, `content`, `previous`, and `next`.
|
|
3416
|
+
|
|
3417
|
+
```html
|
|
3418
|
+
<lyra-scroller controls label="Project cards">
|
|
3419
|
+
<lyra-card>Solar</lyra-card>
|
|
3420
|
+
<lyra-card>Wind</lyra-card>
|
|
3421
|
+
<lyra-card>Battery</lyra-card>
|
|
3422
|
+
</lyra-scroller>
|
|
3423
|
+
```
|
|
3424
|
+
|
|
3425
|
+
---
|
|
3426
|
+
|
|
3427
|
+
## `lyra-resize-observer`
|
|
3428
|
+
|
|
3429
|
+
Lifecycle-managed wrapper around the native `ResizeObserver`. It observes all element children in
|
|
3430
|
+
the default slot and emits a composed event, while adding no layout of its own.
|
|
3431
|
+
|
|
3432
|
+
**Properties:** `disabled: boolean = false` (reflected) and `box: 'content-box' | 'border-box' |
|
|
3433
|
+
'device-pixel-content-box' = 'content-box'` (reflected).
|
|
3434
|
+
|
|
3435
|
+
**Events:** `lyra-resize` with `{ entries: ResizeObserverEntry[] }` in `detail`.
|
|
3436
|
+
|
|
3437
|
+
**Slots:** default observed elements. **CSS parts:** `base`.
|
|
3438
|
+
|
|
3439
|
+
---
|
|
3440
|
+
|
|
3441
|
+
## `lyra-intersection-observer`
|
|
3442
|
+
|
|
3443
|
+
Lifecycle-managed wrapper around the native `IntersectionObserver`. It observes all element children
|
|
3444
|
+
in the default slot and emits a composed event, while adding no layout of its own.
|
|
3445
|
+
|
|
3446
|
+
**Properties:** `disabled: boolean = false` (reflected), `rootMargin: string = '0px'` (attribute
|
|
3447
|
+
`root-margin`), `threshold: number | number[] = 0`, and `root: Element | null = null`.
|
|
3448
|
+
|
|
3449
|
+
**Events:** `lyra-intersection` with `{ entries: IntersectionObserverEntry[] }` in `detail`.
|
|
3450
|
+
|
|
3451
|
+
**Slots:** default observed elements. **CSS parts:** `base`.
|
|
3452
|
+
|
|
3453
|
+
---
|
|
3454
|
+
|
|
3455
|
+
## `lyra-mutation-observer`
|
|
3456
|
+
|
|
3457
|
+
Lifecycle-managed wrapper around the native `MutationObserver`. All element children in the default
|
|
3458
|
+
slot are observed and their mutation records are emitted as a composed event; the wrapper itself
|
|
3459
|
+
adds no layout.
|
|
3460
|
+
|
|
3461
|
+
**Properties:** `disabled: boolean = false` (reflected), `childList: boolean = true` (attribute
|
|
3462
|
+
`child-list`), `observeAttributes: boolean = false` (attribute `attributes`), `characterData: boolean = false` (attribute
|
|
3463
|
+
`character-data`), `subtree: boolean = true`, and `attributeFilter: string[] = []`.
|
|
3464
|
+
|
|
3465
|
+
**Events:** `lyra-mutation` with `{ records: MutationRecord[] }` in `detail`.
|
|
3466
|
+
|
|
3467
|
+
**Slots:** default observed elements. **CSS parts:** `base`.
|
|
3468
|
+
|
|
3469
|
+
---
|
|
3470
|
+
|
|
3184
3471
|
## `lyra-dialog` / `confirm()`
|
|
3185
3472
|
|
|
3186
3473
|
General-purpose modal/overlay plus a promise-based confirmation helper built on top of it.
|
|
@@ -3204,6 +3491,8 @@ hand-building that chrome isn't worth it.
|
|
|
3204
3491
|
- `closable: boolean = false` (attribute `closable`) — renders a built-in close (X) button in the
|
|
3205
3492
|
header row (creating one, with no heading text, if `heading` is unset), wired to the same
|
|
3206
3493
|
`close()` path Escape/backdrop-dismiss already use, with reason `'close-button'`
|
|
3494
|
+
- `noLightDismiss: boolean = false` (attribute `no-light-dismiss`) — prevents a backdrop click from
|
|
3495
|
+
closing the dialog; Escape and explicit `close()` calls remain available
|
|
3207
3496
|
|
|
3208
3497
|
Also settable as a plain `aria-label` attribute (not a public JS property): overrides the panel's
|
|
3209
3498
|
computed accessible name outright, winning over every other source below (a slotted heading,
|
|
@@ -3241,7 +3530,7 @@ when no heading is slotted and `heading` is unset), `body` (wrapper around the d
|
|
|
3241
3530
|
`footer` (wrapper around the `footer` slot)
|
|
3242
3531
|
|
|
3243
3532
|
**Themeable custom properties:** `--lyra-dialog-overlay-color` (default `rgb(0 0 0 / 0.5)` — the
|
|
3244
|
-
backdrop scrim color; component-specific since no shared `--
|
|
3533
|
+
backdrop scrim color; component-specific since no shared `--lyra-*` overlay token exists),
|
|
3245
3534
|
`--lyra-dialog-width` (default unset/`auto` — the panel shrink-wraps to content, unchanged; set it
|
|
3246
3535
|
for an assertive width instead), `--lyra-dialog-max-width` (default `32rem` — the panel's
|
|
3247
3536
|
max-inline-size cap, via `min(var(--lyra-dialog-max-width, var(--lyra-dialog-width, 32rem)), 100%)`;
|
|
@@ -3901,7 +4190,7 @@ fenced/indented `<pre>`), `link` (every rendered `<a>`), `table` (every rendered
|
|
|
3901
4190
|
|
|
3902
4191
|
**Themeable custom properties:** `--lyra-markdown-font-mono` (default `ui-monospace, SFMono-Regular,
|
|
3903
4192
|
Menlo, Consolas, monospace` — the code/code-block font; component-specific since no shared
|
|
3904
|
-
`--
|
|
4193
|
+
`--lyra-*` monospace token exists), plus shared tokens `--lyra-space-xs/-s/-m/-l`,
|
|
3905
4194
|
`--lyra-color-brand-quiet`, `--lyra-color-brand`, `--lyra-color-border`, `--lyra-color-text-quiet`,
|
|
3906
4195
|
`--lyra-radius`.
|
|
3907
4196
|
|
|
@@ -3983,6 +4272,8 @@ conversation-surface level).
|
|
|
3983
4272
|
- `collapsed: boolean = false` (reflected) — whether the message body is hidden; effective whenever
|
|
3984
4273
|
set, independent of `collapsible` (which only controls whether the toggle button itself is
|
|
3985
4274
|
rendered) — mirrors `lyra-widget`'s identical `collapsible`/`collapsed` pair
|
|
4275
|
+
- `attachmentsPosition: 'before'|'after' = 'after'` (attribute `attachments-position`) — places the
|
|
4276
|
+
`attachments` slot before or after the message body; both the visual and reading order follow it
|
|
3986
4277
|
|
|
3987
4278
|
**Events:** `lyra-retry` (no detail payload; fired by the built-in retry button, only rendered when
|
|
3988
4279
|
`status="failed"`), `lyra-collapse-toggle` (`detail: boolean`, the new `collapsed` state — fired when
|
|
@@ -4615,6 +4906,8 @@ wins when both are present.
|
|
|
4615
4906
|
indeterminate state, and filename context so translators can reorder every value
|
|
4616
4907
|
- `uploadFailedLabel: string = 'Upload failed'` (attribute `upload-failed-label`) — visible status
|
|
4617
4908
|
text shown for `status="error"`; override for i18n/locale
|
|
4909
|
+
- `untitledLabel: string = 'Untitled file'` (attribute `untitled-label`) — fallback filename and
|
|
4910
|
+
tooltip when neither `file` nor `name` supplies a name
|
|
4618
4911
|
|
|
4619
4912
|
The component identifies *which* attachment a `lyra-remove`/`lyra-retry` event is about via the
|
|
4620
4913
|
platform's own `id` attribute/property rather than a second, differently-named prop. Set `id="..."`
|
|
@@ -5109,6 +5402,11 @@ emitting `lyra-change`.
|
|
|
5109
5402
|
`<input>`'s own `autocorrect` (Safari/WebKit-specific); empty omits the attribute. Named
|
|
5110
5403
|
`autoCorrect` in JS purely to dodge a `lib.dom.d.ts` typing collision — the wire attribute is
|
|
5111
5404
|
still plain `autocorrect`.
|
|
5405
|
+
- `autocomplete: string = 'off'`, `inputMode: string = ''` (attribute `inputmode`), and
|
|
5406
|
+
`enterKeyHint: string = ''` (attribute `enterkeyhint`) — forwarded to the free-text input;
|
|
5407
|
+
they have no effect in closed-dropdown mode
|
|
5408
|
+
- `autocomplete: string = 'off'`, `inputMode: string = ''` (`inputmode`), and `enterKeyHint: string = ''`
|
|
5409
|
+
(`enterkeyhint`) — forwarded to the free-text mode's native `<input>`.
|
|
5112
5410
|
- `name: string = ''` (reflected)
|
|
5113
5411
|
- `disabled: boolean = false` (reflected)
|
|
5114
5412
|
- `required: boolean = false` (reflected — enforced via `internals.setValidity()`)
|
|
@@ -5313,6 +5611,9 @@ shared overlay stack. First-party invention (no Web Awesome equivalent).
|
|
|
5313
5611
|
- `searchPlaceholder: string = 'Search tools…'` (attribute `search-placeholder`)
|
|
5314
5612
|
- `filter: ToolSelectFilter | null = null` (attribute: false) — overrides the built-in
|
|
5315
5613
|
case-insensitive name/description substring match.
|
|
5614
|
+
- `autocomplete: string = ''`, `spellcheck: boolean = true`, `autocapitalize: string = ''`,
|
|
5615
|
+
`autoCorrect: string = ''` (`autocorrect`), `inputMode: string = ''` (`inputmode`), and
|
|
5616
|
+
`enterKeyHint: string = ''` (`enterkeyhint`) — forwarded to the search `<input>`.
|
|
5316
5617
|
|
|
5317
5618
|
**Methods:** `close(reason: ToolSelectDialogCloseReason = 'api'): void` — closes the dialog, emits
|
|
5318
5619
|
`lyra-close` with `reason`, and returns focus to whatever had it before the dialog opened.
|
|
@@ -6326,6 +6627,8 @@ and it's what every instance renders at zero extra bytes until shiki resolves.
|
|
|
6326
6627
|
for that language — an additive, opt-in escape hatch for a build scoped to just the languages a
|
|
6327
6628
|
consumer actually needs. A `language` absent from this map (or `languages` left unset) falls back
|
|
6328
6629
|
to the default dynamic-import path unchanged.
|
|
6630
|
+
- `languagesOnly: boolean = false` (attribute `languages-only`) — skips the default shiki loader;
|
|
6631
|
+
use when every requested language is supplied through `languages`
|
|
6329
6632
|
|
|
6330
6633
|
**Events:** `lyra-copy` (`detail: { text: string }` — always the raw `code` value, never the
|
|
6331
6634
|
highlighted HTML, and always fires regardless of whether the actual OS clipboard write succeeded),
|
|
@@ -6339,7 +6642,7 @@ button is activated, same event name/shape convention as `<lyra-thinking-panel>`
|
|
|
6339
6642
|
|
|
6340
6643
|
**Themeable custom properties:** `--lyra-code-block-max-height` (default `none` — the consumer-tunable
|
|
6341
6644
|
scroll cap; only takes effect once `max-height` is set), `--lyra-code-block-font` (default
|
|
6342
|
-
`ui-monospace, SFMono-Regular, Menlo, Consolas, monospace` — no shared `--
|
|
6645
|
+
`ui-monospace, SFMono-Regular, Menlo, Consolas, monospace` — no shared `--lyra-*` monospace
|
|
6343
6646
|
token exists to resolve through), plus shared tokens `--lyra-color-border`, `--lyra-radius`,
|
|
6344
6647
|
`--lyra-color-surface`, `--lyra-space-xs/-s/-m`, `--lyra-font`, `--lyra-color-text-quiet`,
|
|
6345
6648
|
`--lyra-color-text`, `--lyra-color-brand`/`-brand-quiet`, `--lyra-transition-fast`,
|
|
@@ -6559,6 +6862,15 @@ renders at the start of the action row, before Deny/Edit/Approve.
|
|
|
6559
6862
|
`false` via a PROPERTY binding, e.g. `.editable=${false}` — a `?editable=${false}`
|
|
6560
6863
|
boolean-attribute binding cannot override a true default). When `false`, `args` is always shown
|
|
6561
6864
|
read-only and can never be changed before approval.
|
|
6865
|
+
- `spellcheck: boolean = false`, `autocapitalize: string = 'off'`,
|
|
6866
|
+
`autoCorrect: string = 'off'` (attribute `autocorrect`), `autocomplete: string = 'off'`,
|
|
6867
|
+
`wrap: 'hard'|'soft'|'off' = 'soft'`, `inputMode: string = ''` (attribute `inputmode`),
|
|
6868
|
+
and `enterKeyHint: string = ''` (attribute `enterkeyhint`) — forwarded to the raw-JSON
|
|
6869
|
+
textarea; the defaults keep browser editing assistance from changing JSON text
|
|
6870
|
+
- `spellcheck: boolean = false`, `autocapitalize: string = 'off'`, `autoCorrect: string = 'off'`
|
|
6871
|
+
(`autocorrect`), `autocomplete: string = 'off'`, `wrap: 'hard'|'soft'|'off' = 'soft'`,
|
|
6872
|
+
`inputMode: string = ''` (`inputmode`), and `enterKeyHint: string = ''` (`enterkeyhint`) —
|
|
6873
|
+
forwarded to the raw-JSON `<textarea>` while editing.
|
|
6562
6874
|
|
|
6563
6875
|
**Methods:** `close(reason: ToolApprovalDialogCloseReason = 'api'): void` — closes the dialog, emits
|
|
6564
6876
|
`lyra-close` with `reason`, and returns focus to whatever had it before the dialog opened; a no-op if
|
|
@@ -6802,6 +7114,10 @@ menu, an avatar menu, or a history row's overflow menu. Uses the WAI-ARIA "menu
|
|
|
6802
7114
|
a no-op for existing consumers), matching `lyra-select`/`lyra-model-select`'s
|
|
6803
7115
|
`this.getAttribute('aria-label') || <computed default>` precedence
|
|
6804
7116
|
|
|
7117
|
+
- `closeOnEscapeAnywhere: boolean = false` (attribute `close-on-escape-anywhere`) — lets Escape
|
|
7118
|
+
close the menu when focus is on slotted non-menu-item content inside the popup; item activation
|
|
7119
|
+
remains scoped to actual menu items
|
|
7120
|
+
|
|
6805
7121
|
**Events:** `lyra-show` (no detail — fires only when `open` transitions to `true`, not for markup
|
|
6806
7122
|
that renders `open` true from the start), `lyra-hide` (same first-render guard, opposite
|
|
6807
7123
|
transition), `lyra-menu-select` (`detail: { value }` — a consolidated re-fire of the activated
|
|
@@ -6869,6 +7185,21 @@ not rendered at all for `type="normal"`)
|
|
|
6869
7185
|
|
|
6870
7186
|
**Optional peer deps:** none.
|
|
6871
7187
|
|
|
7188
|
+
### `lyra-dropdown-item`
|
|
7189
|
+
|
|
7190
|
+
Compatibility naming alias for `<lyra-menu-item>`. It is a subclass of the same implementation,
|
|
7191
|
+
so `value`, `disabled`, `destructive`, `type`, `checked`, `select()`, checkbox events, and menu
|
|
7192
|
+
roving focus behave identically.
|
|
7193
|
+
|
|
7194
|
+
**Slots:** default label content and optional `icon`.
|
|
7195
|
+
|
|
7196
|
+
```html
|
|
7197
|
+
<lyra-menu>
|
|
7198
|
+
<button slot="trigger">Actions</button>
|
|
7199
|
+
<lyra-dropdown-item value="archive">Archive</lyra-dropdown-item>
|
|
7200
|
+
</lyra-menu>
|
|
7201
|
+
```
|
|
7202
|
+
|
|
6872
7203
|
```html
|
|
6873
7204
|
<lyra-menu label="Row actions">
|
|
6874
7205
|
<button slot="trigger" aria-label="More actions">⋮</button>
|
|
@@ -7568,6 +7899,8 @@ capability as a row.
|
|
|
7568
7899
|
`'Attach files'`); only affects the single-capability button (`[part='trigger']`) — the
|
|
7569
7900
|
multi-capability menu's own trigger keeps its fixed `'Add attachment'` label regardless. Unset
|
|
7570
7901
|
(the default) keeps the built-in English default.
|
|
7902
|
+
- `triggerTitle?: string` (attribute `trigger-title`) — forwards a sighted-user hover tooltip to
|
|
7903
|
+
both the single-capability and multi-capability trigger buttons
|
|
7571
7904
|
|
|
7572
7905
|
**Events:** `lyra-pick` (`detail: { capability: 'files' | 'image'; files: FileList }`) — fired once a
|
|
7573
7906
|
file-backed capability's hidden input produces a real selection. The `FileList` is an independent
|
|
@@ -7860,10 +8193,194 @@ the `footer` slot, hidden entirely when empty).
|
|
|
7860
8193
|
|
|
7861
8194
|
---
|
|
7862
8195
|
|
|
8196
|
+
## `lyra-radio`
|
|
8197
|
+
|
|
8198
|
+
A form-associated single-choice control. Use it alone or inside `lyra-radio-group`.
|
|
8199
|
+
|
|
8200
|
+
**Properties:** `checked`, `disabled`, `required`, `name`, and `value` (all reflected where
|
|
8201
|
+
applicable). A selected radio submits its value through `ElementInternals`.
|
|
8202
|
+
|
|
8203
|
+
**Events:** native-style composed `input` and `change`, plus `lyra-change` with
|
|
8204
|
+
`{ checked, value }`.
|
|
8205
|
+
|
|
8206
|
+
**Slots:** default label content.
|
|
8207
|
+
|
|
8208
|
+
**CSS parts:** `base`, `circle`, `dot`, `label`.
|
|
8209
|
+
|
|
8210
|
+
```html
|
|
8211
|
+
<lyra-radio name="format" value="json">JSON</lyra-radio>
|
|
8212
|
+
```
|
|
8213
|
+
|
|
8214
|
+
## `lyra-popover`
|
|
8215
|
+
|
|
8216
|
+
A click-triggered, light-dismiss floating surface positioned with the shared Floating UI positioner.
|
|
8217
|
+
|
|
8218
|
+
**Properties:** `open`, `placement`, `distance`, `accessibleLabel` (`aria-label`), and `popupRole` (`popup-role`).
|
|
8219
|
+
**Events:** `lyra-show`, `lyra-hide`. **Slots:** `trigger`, default content. **CSS parts:** `trigger`,
|
|
8220
|
+
`popup`, `content`.
|
|
8221
|
+
|
|
8222
|
+
## `lyra-tooltip`
|
|
8223
|
+
|
|
8224
|
+
A hover/focus tooltip positioned with the shared Floating UI positioner.
|
|
8225
|
+
|
|
8226
|
+
**Properties:** `open`, `manual`, `delay`, `placement`, `distance`, `content`, and
|
|
8227
|
+
`accessibleLabel` (`aria-label`). **Slots:** `trigger`, default content. **CSS parts:**
|
|
8228
|
+
`trigger`, `popup`.
|
|
8229
|
+
|
|
8230
|
+
## `lyra-dropdown`
|
|
8231
|
+
|
|
8232
|
+
A menu-role popover for consumer-supplied action content. Compose `lyra-menu` when full roving
|
|
8233
|
+
menu-item behavior is needed.
|
|
8234
|
+
|
|
8235
|
+
**Properties:** `open`, `placement`, `distance`, `accessibleLabel` (`aria-label`), and `popupRole` (`popup-role`).
|
|
8236
|
+
**Slots:** `trigger`, default menu content. **CSS parts:** `trigger`, `popup`, `content`.
|
|
8237
|
+
|
|
8238
|
+
## `lyra-radio-group`
|
|
8239
|
+
|
|
8240
|
+
A labeled, keyboard-navigable group of `lyra-radio` controls. Arrow keys, Home, and End move
|
|
8241
|
+
focus; arrow navigation selects the next enabled radio.
|
|
8242
|
+
|
|
8243
|
+
**Properties:** `label`, `hint`, `errorText` (`error-text`), `name`, `required`, `disabled`, and
|
|
8244
|
+
`aria-label` (through `accessibleLabel`).
|
|
8245
|
+
|
|
8246
|
+
**Events:** `lyra-change` with `{ value, radio }`.
|
|
8247
|
+
|
|
8248
|
+
**Slots:** default radios, `label`, `hint`, `error`.
|
|
8249
|
+
|
|
8250
|
+
**CSS parts:** `base`, `label`, `hint`, `error`.
|
|
8251
|
+
|
|
8252
|
+
## `lyra-spinner`
|
|
8253
|
+
|
|
8254
|
+
An indeterminate busy indicator with a localized `role="status"` name.
|
|
8255
|
+
|
|
8256
|
+
**Properties:** `labelPlacement` (`label-placement`): `'none' | 'after'` and `accessibleLabel`
|
|
8257
|
+
(`accessible-label`).
|
|
8258
|
+
|
|
8259
|
+
**Slots:** default optional visible label. **CSS parts:** `base`, `spinner`, `label`.
|
|
8260
|
+
|
|
8261
|
+
## `lyra-progress-bar`
|
|
8262
|
+
|
|
8263
|
+
A determinate or indeterminate progress bar.
|
|
8264
|
+
|
|
8265
|
+
**Properties:** `value`, `max`, `indeterminate`, `variant`, `showValue` (`show-value`), and
|
|
8266
|
+
`accessibleLabel` (`accessible-label`).
|
|
8267
|
+
The rendered progressbar exposes `aria-valuemin`, `aria-valuemax`, and `aria-valuenow` when
|
|
8268
|
+
determinate.
|
|
8269
|
+
|
|
8270
|
+
**Slots:** `label`. **CSS parts:** `base`, `track`, `indicator`, `label`.
|
|
8271
|
+
|
|
8272
|
+
## `lyra-progress-ring`
|
|
8273
|
+
|
|
8274
|
+
A circular progress indicator with the same value contract as `lyra-progress-bar`.
|
|
8275
|
+
|
|
8276
|
+
**Properties:** `value`, `max`, `indeterminate`, and `accessibleLabel` (`accessible-label`).
|
|
8277
|
+
**Slots:** default center label. **CSS parts:** `base`, `track`, `indicator`, `label`.
|
|
8278
|
+
|
|
8279
|
+
## `lyra-badge` and `lyra-tag`
|
|
8280
|
+
|
|
8281
|
+
Compact status labels. Both expose `variant: 'neutral' | 'brand' | 'success' | 'warning' | 'danger'`.
|
|
8282
|
+
The two tags share the same visual contract; `lyra-tag` is a semantic alias for migration-friendly
|
|
8283
|
+
markup.
|
|
8284
|
+
|
|
8285
|
+
**Slots:** default content. **CSS parts:** `base`.
|
|
8286
|
+
|
|
8287
|
+
## `lyra-callout`
|
|
8288
|
+
|
|
8289
|
+
An inline status, warning, or error surface. Set `inline` for lightweight reactive form or mutation
|
|
8290
|
+
errors without panel chrome.
|
|
8291
|
+
|
|
8292
|
+
**Properties:** `variant`, `heading`, `closable`, `inline`, `open`, and `accessibleLabel`
|
|
8293
|
+
(`accessible-label`).
|
|
8294
|
+
|
|
8295
|
+
**Events:** cancelable `lyra-close`; the callout hides after the event unless a listener calls
|
|
8296
|
+
`preventDefault()`.
|
|
8297
|
+
|
|
8298
|
+
**Slots:** default message, `heading`, `icon`. **CSS parts:** `base`, `icon`, `content`, `heading`,
|
|
8299
|
+
`close-button`.
|
|
8300
|
+
|
|
8301
|
+
## `lyra-details`, `lyra-accordion`, and `lyra-accordion-item`
|
|
8302
|
+
|
|
8303
|
+
`lyra-details` is a native-semantics disclosure panel. `lyra-accordion` coordinates slotted
|
|
8304
|
+
details panels and closes siblings unless `multiple` is true. `lyra-accordion-item` is an
|
|
8305
|
+
accordion-compatible alias.
|
|
8306
|
+
|
|
8307
|
+
**Properties:** `open`, `disabled`, and `summary` on details/items; `multiple` on accordion.
|
|
8308
|
+
**Events:** `lyra-toggle` with `{ open }` from details/items. **Slots:** `summary` and default
|
|
8309
|
+
content on details/items; default panels on accordion. **CSS parts:** `base`, `summary`, `content`
|
|
8310
|
+
on details/items; `base` on accordion.
|
|
8311
|
+
|
|
8312
|
+
## `lyra-divider`
|
|
8313
|
+
|
|
8314
|
+
A semantic separator with `orientation: 'horizontal' | 'vertical'`. **CSS part:** `base`.
|
|
8315
|
+
|
|
8316
|
+
## `lyra-breadcrumb` and `lyra-breadcrumb-item`
|
|
8317
|
+
|
|
8318
|
+
Responsive navigation trail primitives. Breadcrumb has `accessibleLabel` (`accessible-label`);
|
|
8319
|
+
items have `href` and `current`. Breadcrumb slots default items; item slots default label content.
|
|
8320
|
+
Breadcrumb exposes `base`; item exposes `base`.
|
|
8321
|
+
|
|
8322
|
+
## `lyra-format-number`
|
|
8323
|
+
|
|
8324
|
+
Locale-aware `Intl.NumberFormat` output. **Properties:** `value`, `locale`, `currency`, `notation`,
|
|
8325
|
+
`minimumFractionDigits`, and `maximumFractionDigits`. Default slot is fallback content for a
|
|
8326
|
+
non-finite value.
|
|
8327
|
+
|
|
8328
|
+
## `lyra-format-date`
|
|
8329
|
+
|
|
8330
|
+
Locale-aware `Intl.DateTimeFormat` output. **Properties:** `date`, `locale`, `year`, `month`, `day`,
|
|
8331
|
+
`dateStyle`, and `timeStyle`. Default slot is fallback content for an invalid date.
|
|
8332
|
+
|
|
8333
|
+
## `lyra-format-bytes`
|
|
8334
|
+
|
|
8335
|
+
Locale-aware byte-size output. **Properties:** `value`, `locale`, `unitStep` (`unit-step`), and
|
|
8336
|
+
`decimals`.
|
|
8337
|
+
|
|
8338
|
+
## `lyra-relative-time`
|
|
8339
|
+
|
|
8340
|
+
Locale-aware relative time output. **Properties:** `date`, `locale`, `unit`, `numeric`, and `sync`.
|
|
8341
|
+
When `sync` is true the displayed value refreshes periodically.
|
|
8342
|
+
|
|
8343
|
+
## `lyra-rating`
|
|
8344
|
+
|
|
8345
|
+
A keyboard-accessible star rating control with slider semantics. **Properties:** `value`, `max`,
|
|
8346
|
+
`precision`, `readonly`, `disabled`, and `accessibleLabel` (`aria-label`). **Events:**
|
|
8347
|
+
`lyra-change` with `{ value }`. **CSS parts:** `base`, `star`.
|
|
8348
|
+
|
|
8349
|
+
## `lyra-color-picker`
|
|
8350
|
+
|
|
8351
|
+
A form-associated native color picker with label and hint chrome. **Properties:** the shared form
|
|
8352
|
+
properties `name`, `value`, `disabled`, and `required`, plus `label`, `hint`, and `accessibleLabel`
|
|
8353
|
+
(`aria-label`). **Slots:** `label`, `hint`. **Events:** composed `input` and `change`, plus
|
|
8354
|
+
`lyra-change` with `{ value }`. **CSS parts:** `form-control`, `label`, `input`, `hint`.
|
|
8355
|
+
|
|
7863
8356
|
## Cross-cutting notes
|
|
7864
8357
|
|
|
7865
8358
|
These apply across the whole library rather than to any one component:
|
|
7866
8359
|
|
|
8360
|
+
- **Independence and migration.** Lyra has no runtime, theme, or design-token dependency on
|
|
8361
|
+
Shoelace or Web Awesome. The documented `wa-*` comparisons are migration references only; Lyra's
|
|
8362
|
+
own `lyra-*` tokens, events, localization runtime, and implementation are the source of truth.
|
|
8363
|
+
For a staged Web Awesome migration, map existing `--wa-*` values to `--lyra-theme-*` explicitly
|
|
8364
|
+
in application CSS instead of relying on an implicit compatibility layer.
|
|
8365
|
+
|
|
8366
|
+
- **Internationalization.** Built-in UI copy, accessible names, descriptions, validation messages,
|
|
8367
|
+
status announcements, and empty/loading states resolve through `localize()` and the locale runtime.
|
|
8368
|
+
Register an application catalog with `registerLyraLocale()` or override one instance with
|
|
8369
|
+
`.strings`; locale fallback is exact locale, base language, then English. Date, number, byte,
|
|
8370
|
+
relative-time, and calendar output uses `Intl`. Consumer data and slotted content are never
|
|
8371
|
+
translated automatically.
|
|
8372
|
+
|
|
8373
|
+
- **RTL and direction.** Direction is inherited from `dir`/`lang`; components do not force their own
|
|
8374
|
+
direction. CSS logical properties mirror layout, while directional keyboard and pointer math
|
|
8375
|
+
consults the effective direction. Test both LTR and RTL for any component with horizontal order,
|
|
8376
|
+
start/end placement, drag deltas, or previous/next navigation.
|
|
8377
|
+
|
|
8378
|
+
- **Accessibility and responsive behavior.** Semantic roles live on the shadow-DOM element that owns
|
|
8379
|
+
them, with explicit false states for toggle/selection/expansion ARIA attributes and deliberate
|
|
8380
|
+
host-name forwarding. Form-associated controls preserve `ElementInternals`, reset, validity,
|
|
8381
|
+
focus, and native editing behavior. Reusable layouts respond to their allocated container, and
|
|
8382
|
+
decorative/infinite motion simplifies under `prefers-reduced-motion: reduce`.
|
|
8383
|
+
|
|
7867
8384
|
- **Packaging.** `custom-elements.json` is now in `package.json`'s `files` allowlist and
|
|
7868
8385
|
regenerated by a `prepack` script (`pnpm run manifest`) before publish, so a manifest-driven IDE/
|
|
7869
8386
|
tooling integration (e.g. custom-elements-manifest-based autocomplete) does see an up-to-date copy
|