@aceshooting/lyra-ui 2.13.0 → 3.1.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 +103 -28
- package/custom-elements.json +13276 -4793
- package/dist/components/archive-viewer/archive-loader.d.ts +8 -0
- package/dist/components/archive-viewer/archive-loader.d.ts.map +1 -0
- package/dist/components/archive-viewer/archive-loader.js +19 -0
- package/dist/components/archive-viewer/archive-loader.js.map +1 -0
- package/dist/components/archive-viewer/archive-viewer-register.d.ts +2 -0
- package/dist/components/archive-viewer/archive-viewer-register.d.ts.map +1 -0
- package/dist/components/archive-viewer/archive-viewer-register.js +8 -0
- package/dist/components/archive-viewer/archive-viewer-register.js.map +1 -0
- package/dist/components/archive-viewer/archive-viewer.class.d.ts +47 -0
- package/dist/components/archive-viewer/archive-viewer.class.d.ts.map +1 -0
- package/dist/components/archive-viewer/archive-viewer.class.js +115 -0
- package/dist/components/archive-viewer/archive-viewer.class.js.map +1 -0
- package/dist/components/archive-viewer/archive-viewer.d.ts +4 -0
- package/dist/components/archive-viewer/archive-viewer.d.ts.map +1 -0
- package/dist/components/archive-viewer/archive-viewer.js +7 -0
- package/dist/components/archive-viewer/archive-viewer.js.map +1 -0
- package/dist/components/archive-viewer/archive-viewer.styles.d.ts +2 -0
- package/dist/components/archive-viewer/archive-viewer.styles.d.ts.map +1 -0
- package/dist/components/archive-viewer/archive-viewer.styles.js +14 -0
- package/dist/components/archive-viewer/archive-viewer.styles.js.map +1 -0
- package/dist/components/attachment-chip/attachment-chip.styles.js +2 -2
- 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/calendar-viewer/calendar-loader.d.ts +5 -0
- package/dist/components/calendar-viewer/calendar-loader.d.ts.map +1 -0
- package/dist/components/calendar-viewer/calendar-loader.js +18 -0
- package/dist/components/calendar-viewer/calendar-loader.js.map +1 -0
- package/dist/components/calendar-viewer/calendar-viewer.class.d.ts +55 -0
- package/dist/components/calendar-viewer/calendar-viewer.class.d.ts.map +1 -0
- package/dist/components/calendar-viewer/calendar-viewer.class.js +123 -0
- package/dist/components/calendar-viewer/calendar-viewer.class.js.map +1 -0
- package/dist/components/calendar-viewer/calendar-viewer.d.ts +3 -0
- package/dist/components/calendar-viewer/calendar-viewer.d.ts.map +1 -0
- package/dist/components/calendar-viewer/calendar-viewer.js +12 -0
- package/dist/components/calendar-viewer/calendar-viewer.js.map +1 -0
- package/dist/components/calendar-viewer/calendar-viewer.styles.d.ts +2 -0
- package/dist/components/calendar-viewer/calendar-viewer.styles.d.ts.map +1 -0
- package/dist/components/calendar-viewer/calendar-viewer.styles.js +16 -0
- package/dist/components/calendar-viewer/calendar-viewer.styles.js.map +1 -0
- package/dist/components/callout/callout.class.d.ts +4 -0
- package/dist/components/callout/callout.class.d.ts.map +1 -1
- package/dist/components/callout/callout.class.js +7 -0
- package/dist/components/callout/callout.class.js.map +1 -1
- package/dist/components/callout/callout.styles.d.ts.map +1 -1
- package/dist/components/callout/callout.styles.js +13 -0
- package/dist/components/callout/callout.styles.js.map +1 -1
- package/dist/components/chat-message/chat-message.styles.js +1 -1
- package/dist/components/code-block/code-block-core.class.d.ts +3 -0
- package/dist/components/code-block/code-block-core.class.d.ts.map +1 -1
- package/dist/components/code-block/code-block-core.class.js +41 -16
- package/dist/components/code-block/code-block-core.class.js.map +1 -1
- package/dist/components/code-block/code-block.class.d.ts +3 -0
- package/dist/components/code-block/code-block.class.d.ts.map +1 -1
- package/dist/components/code-block/code-block.class.js +41 -16
- package/dist/components/code-block/code-block.class.js.map +1 -1
- package/dist/components/code-block/code-block.styles.d.ts.map +1 -1
- package/dist/components/code-block/code-block.styles.js +17 -1
- package/dist/components/code-block/code-block.styles.js.map +1 -1
- package/dist/components/code-block/code-loader.d.ts +2 -0
- package/dist/components/code-block/code-loader.d.ts.map +1 -1
- package/dist/components/code-block/code-loader.js +14 -4
- package/dist/components/code-block/code-loader.js.map +1 -1
- package/dist/components/code-block/greycat-language.d.ts +9 -0
- package/dist/components/code-block/greycat-language.d.ts.map +1 -0
- package/dist/components/code-block/greycat-language.js +73 -0
- package/dist/components/code-block/greycat-language.js.map +1 -0
- package/dist/components/contact-viewer/contact-viewer.class.d.ts +31 -0
- package/dist/components/contact-viewer/contact-viewer.class.d.ts.map +1 -0
- package/dist/components/contact-viewer/contact-viewer.class.js +92 -0
- package/dist/components/contact-viewer/contact-viewer.class.js.map +1 -0
- package/dist/components/contact-viewer/contact-viewer.d.ts +3 -0
- package/dist/components/contact-viewer/contact-viewer.d.ts.map +1 -0
- package/dist/components/contact-viewer/contact-viewer.js +13 -0
- package/dist/components/contact-viewer/contact-viewer.js.map +1 -0
- package/dist/components/contact-viewer/contact-viewer.styles.d.ts +2 -0
- package/dist/components/contact-viewer/contact-viewer.styles.d.ts.map +1 -0
- package/dist/components/contact-viewer/contact-viewer.styles.js +16 -0
- package/dist/components/contact-viewer/contact-viewer.styles.js.map +1 -0
- package/dist/components/contact-viewer/vcard.d.ts +31 -0
- package/dist/components/contact-viewer/vcard.d.ts.map +1 -0
- package/dist/components/contact-viewer/vcard.js +87 -0
- package/dist/components/contact-viewer/vcard.js.map +1 -0
- package/dist/components/csv-viewer/csv-loader.d.ts +8 -0
- package/dist/components/csv-viewer/csv-loader.d.ts.map +1 -0
- package/dist/components/csv-viewer/csv-loader.js +19 -0
- package/dist/components/csv-viewer/csv-loader.js.map +1 -0
- package/dist/components/csv-viewer/csv-viewer.class.d.ts +31 -0
- package/dist/components/csv-viewer/csv-viewer.class.d.ts.map +1 -0
- package/dist/components/csv-viewer/csv-viewer.class.js +108 -0
- package/dist/components/csv-viewer/csv-viewer.class.js.map +1 -0
- package/dist/components/csv-viewer/csv-viewer.d.ts +3 -0
- package/dist/components/csv-viewer/csv-viewer.d.ts.map +1 -0
- package/dist/components/csv-viewer/csv-viewer.js +9 -0
- package/dist/components/csv-viewer/csv-viewer.js.map +1 -0
- package/dist/components/csv-viewer/csv-viewer.styles.d.ts +2 -0
- package/dist/components/csv-viewer/csv-viewer.styles.d.ts.map +1 -0
- package/dist/components/csv-viewer/csv-viewer.styles.js +14 -0
- package/dist/components/csv-viewer/csv-viewer.styles.js.map +1 -0
- package/dist/components/dataset-viewer/dataset-loader.d.ts +7 -0
- package/dist/components/dataset-viewer/dataset-loader.d.ts.map +1 -0
- package/dist/components/dataset-viewer/dataset-loader.js +19 -0
- package/dist/components/dataset-viewer/dataset-loader.js.map +1 -0
- package/dist/components/dataset-viewer/dataset-viewer.class.d.ts +34 -0
- package/dist/components/dataset-viewer/dataset-viewer.class.d.ts.map +1 -0
- package/dist/components/dataset-viewer/dataset-viewer.class.js +93 -0
- package/dist/components/dataset-viewer/dataset-viewer.class.js.map +1 -0
- package/dist/components/dataset-viewer/dataset-viewer.d.ts +3 -0
- package/dist/components/dataset-viewer/dataset-viewer.d.ts.map +1 -0
- package/dist/components/dataset-viewer/dataset-viewer.js +13 -0
- package/dist/components/dataset-viewer/dataset-viewer.js.map +1 -0
- package/dist/components/dataset-viewer/dataset-viewer.styles.d.ts +2 -0
- package/dist/components/dataset-viewer/dataset-viewer.styles.d.ts.map +1 -0
- package/dist/components/dataset-viewer/dataset-viewer.styles.js +13 -0
- package/dist/components/dataset-viewer/dataset-viewer.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/details.class.d.ts +7 -2
- package/dist/components/details/details.class.d.ts.map +1 -1
- package/dist/components/details/details.class.js +23 -3
- package/dist/components/details/details.class.js.map +1 -1
- package/dist/components/dialog/dialog.styles.js +1 -1
- package/dist/components/document-viewer/document-viewer.class.d.ts +47 -0
- package/dist/components/document-viewer/document-viewer.class.d.ts.map +1 -0
- package/dist/components/document-viewer/document-viewer.class.js +141 -0
- package/dist/components/document-viewer/document-viewer.class.js.map +1 -0
- package/dist/components/document-viewer/document-viewer.d.ts +5 -0
- package/dist/components/document-viewer/document-viewer.d.ts.map +1 -0
- package/dist/components/document-viewer/document-viewer.js +8 -0
- package/dist/components/document-viewer/document-viewer.js.map +1 -0
- package/dist/components/document-viewer/document-viewer.styles.d.ts +2 -0
- package/dist/components/document-viewer/document-viewer.styles.d.ts.map +1 -0
- package/dist/components/document-viewer/document-viewer.styles.js +24 -0
- package/dist/components/document-viewer/document-viewer.styles.js.map +1 -0
- package/dist/components/document-viewer/registry.d.ts +30 -0
- package/dist/components/document-viewer/registry.d.ts.map +1 -0
- package/dist/components/document-viewer/registry.js +42 -0
- package/dist/components/document-viewer/registry.js.map +1 -0
- package/dist/components/docx-viewer/docx-loader.d.ts +11 -0
- package/dist/components/docx-viewer/docx-loader.d.ts.map +1 -0
- package/dist/components/docx-viewer/docx-loader.js +39 -0
- package/dist/components/docx-viewer/docx-loader.js.map +1 -0
- package/dist/components/docx-viewer/docx-viewer.class.d.ts +42 -0
- package/dist/components/docx-viewer/docx-viewer.class.d.ts.map +1 -0
- package/dist/components/docx-viewer/docx-viewer.class.js +131 -0
- package/dist/components/docx-viewer/docx-viewer.class.js.map +1 -0
- package/dist/components/docx-viewer/docx-viewer.d.ts +3 -0
- package/dist/components/docx-viewer/docx-viewer.d.ts.map +1 -0
- package/dist/components/docx-viewer/docx-viewer.js +12 -0
- package/dist/components/docx-viewer/docx-viewer.js.map +1 -0
- package/dist/components/docx-viewer/docx-viewer.styles.d.ts +2 -0
- package/dist/components/docx-viewer/docx-viewer.styles.d.ts.map +1 -0
- package/dist/components/docx-viewer/docx-viewer.styles.js +99 -0
- package/dist/components/docx-viewer/docx-viewer.styles.js.map +1 -0
- package/dist/components/docx-viewer/fixtures/minimal-docx-fixture.d.ts +2 -0
- package/dist/components/docx-viewer/fixtures/minimal-docx-fixture.d.ts.map +1 -0
- package/dist/components/docx-viewer/fixtures/minimal-docx-fixture.js +3 -0
- package/dist/components/docx-viewer/fixtures/minimal-docx-fixture.js.map +1 -0
- package/dist/components/ebook-viewer/ebook-loader.d.ts +9 -0
- package/dist/components/ebook-viewer/ebook-loader.d.ts.map +1 -0
- package/dist/components/ebook-viewer/ebook-loader.js +21 -0
- package/dist/components/ebook-viewer/ebook-loader.js.map +1 -0
- package/dist/components/ebook-viewer/ebook-viewer-register.d.ts +2 -0
- package/dist/components/ebook-viewer/ebook-viewer-register.d.ts.map +1 -0
- package/dist/components/ebook-viewer/ebook-viewer-register.js +9 -0
- package/dist/components/ebook-viewer/ebook-viewer-register.js.map +1 -0
- package/dist/components/ebook-viewer/ebook-viewer.class.d.ts +51 -0
- package/dist/components/ebook-viewer/ebook-viewer.class.d.ts.map +1 -0
- package/dist/components/ebook-viewer/ebook-viewer.class.js +164 -0
- package/dist/components/ebook-viewer/ebook-viewer.class.js.map +1 -0
- package/dist/components/ebook-viewer/ebook-viewer.d.ts +2 -0
- package/dist/components/ebook-viewer/ebook-viewer.d.ts.map +1 -0
- package/dist/components/ebook-viewer/ebook-viewer.js +5 -0
- package/dist/components/ebook-viewer/ebook-viewer.js.map +1 -0
- package/dist/components/ebook-viewer/ebook-viewer.styles.d.ts +2 -0
- package/dist/components/ebook-viewer/ebook-viewer.styles.d.ts.map +1 -0
- package/dist/components/ebook-viewer/ebook-viewer.styles.js +73 -0
- package/dist/components/ebook-viewer/ebook-viewer.styles.js.map +1 -0
- package/dist/components/ebook-viewer/fixtures/minimal-epub-fixture.d.ts +2 -0
- package/dist/components/ebook-viewer/fixtures/minimal-epub-fixture.d.ts.map +1 -0
- package/dist/components/ebook-viewer/fixtures/minimal-epub-fixture.js +2 -0
- package/dist/components/ebook-viewer/fixtures/minimal-epub-fixture.js.map +1 -0
- package/dist/components/email-viewer/email-loader.d.ts +10 -0
- package/dist/components/email-viewer/email-loader.d.ts.map +1 -0
- package/dist/components/email-viewer/email-loader.js +38 -0
- package/dist/components/email-viewer/email-loader.js.map +1 -0
- package/dist/components/email-viewer/email-viewer.class.d.ts +72 -0
- package/dist/components/email-viewer/email-viewer.class.d.ts.map +1 -0
- package/dist/components/email-viewer/email-viewer.class.js +154 -0
- package/dist/components/email-viewer/email-viewer.class.js.map +1 -0
- package/dist/components/email-viewer/email-viewer.d.ts +3 -0
- package/dist/components/email-viewer/email-viewer.d.ts.map +1 -0
- package/dist/components/email-viewer/email-viewer.js +12 -0
- package/dist/components/email-viewer/email-viewer.js.map +1 -0
- package/dist/components/email-viewer/email-viewer.styles.d.ts +2 -0
- package/dist/components/email-viewer/email-viewer.styles.d.ts.map +1 -0
- package/dist/components/email-viewer/email-viewer.styles.js +35 -0
- package/dist/components/email-viewer/email-viewer.styles.js.map +1 -0
- package/dist/components/file-icon/file-icon.class.d.ts +31 -0
- package/dist/components/file-icon/file-icon.class.d.ts.map +1 -0
- package/dist/components/file-icon/file-icon.class.js +74 -0
- package/dist/components/file-icon/file-icon.class.js.map +1 -0
- package/dist/components/file-icon/file-icon.d.ts +3 -0
- package/dist/components/file-icon/file-icon.d.ts.map +1 -0
- package/dist/components/file-icon/file-icon.js +6 -0
- package/dist/components/file-icon/file-icon.js.map +1 -0
- package/dist/components/file-icon/file-icon.styles.d.ts +2 -0
- package/dist/components/file-icon/file-icon.styles.d.ts.map +1 -0
- package/dist/components/file-icon/file-icon.styles.js +23 -0
- package/dist/components/file-icon/file-icon.styles.js.map +1 -0
- package/dist/components/file-icon/file-type-metadata.d.ts +14 -0
- package/dist/components/file-icon/file-type-metadata.d.ts.map +1 -0
- package/dist/components/file-icon/file-type-metadata.js +81 -0
- package/dist/components/file-icon/file-type-metadata.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/html-viewer/dompurify-loader.d.ts +7 -0
- package/dist/components/html-viewer/dompurify-loader.d.ts.map +1 -0
- package/dist/components/html-viewer/dompurify-loader.js +19 -0
- package/dist/components/html-viewer/dompurify-loader.js.map +1 -0
- package/dist/components/html-viewer/html-viewer.class.d.ts +29 -0
- package/dist/components/html-viewer/html-viewer.class.d.ts.map +1 -0
- package/dist/components/html-viewer/html-viewer.class.js +88 -0
- package/dist/components/html-viewer/html-viewer.class.js.map +1 -0
- package/dist/components/html-viewer/html-viewer.d.ts +2 -0
- package/dist/components/html-viewer/html-viewer.d.ts.map +1 -0
- package/dist/components/html-viewer/html-viewer.js +15 -0
- package/dist/components/html-viewer/html-viewer.js.map +1 -0
- package/dist/components/html-viewer/html-viewer.styles.d.ts +2 -0
- package/dist/components/html-viewer/html-viewer.styles.d.ts.map +1 -0
- package/dist/components/html-viewer/html-viewer.styles.js +26 -0
- package/dist/components/html-viewer/html-viewer.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/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/overlay/overlay.styles.d.ts.map +1 -1
- package/dist/components/overlay/overlay.styles.js +11 -1
- package/dist/components/overlay/overlay.styles.js.map +1 -1
- package/dist/components/pdf-viewer/pdf-loader.d.ts +6 -0
- package/dist/components/pdf-viewer/pdf-loader.d.ts.map +1 -0
- package/dist/components/pdf-viewer/pdf-loader.js +22 -0
- package/dist/components/pdf-viewer/pdf-loader.js.map +1 -0
- package/dist/components/pdf-viewer/pdf-viewer.class.d.ts +80 -0
- package/dist/components/pdf-viewer/pdf-viewer.class.d.ts.map +1 -0
- package/dist/components/pdf-viewer/pdf-viewer.class.js +296 -0
- package/dist/components/pdf-viewer/pdf-viewer.class.js.map +1 -0
- package/dist/components/pdf-viewer/pdf-viewer.d.ts +2 -0
- package/dist/components/pdf-viewer/pdf-viewer.d.ts.map +1 -0
- package/dist/components/pdf-viewer/pdf-viewer.js +13 -0
- package/dist/components/pdf-viewer/pdf-viewer.js.map +1 -0
- package/dist/components/pdf-viewer/pdf-viewer.styles.d.ts +2 -0
- package/dist/components/pdf-viewer/pdf-viewer.styles.d.ts.map +1 -0
- package/dist/components/pdf-viewer/pdf-viewer.styles.js +19 -0
- package/dist/components/pdf-viewer/pdf-viewer.styles.js.map +1 -0
- package/dist/components/pptx-viewer/pptx-loader.d.ts +5 -0
- package/dist/components/pptx-viewer/pptx-loader.d.ts.map +1 -0
- package/dist/components/pptx-viewer/pptx-loader.js +20 -0
- package/dist/components/pptx-viewer/pptx-loader.js.map +1 -0
- package/dist/components/pptx-viewer/pptx-viewer.class.d.ts +68 -0
- package/dist/components/pptx-viewer/pptx-viewer.class.d.ts.map +1 -0
- package/dist/components/pptx-viewer/pptx-viewer.class.js +205 -0
- package/dist/components/pptx-viewer/pptx-viewer.class.js.map +1 -0
- package/dist/components/pptx-viewer/pptx-viewer.d.ts +2 -0
- package/dist/components/pptx-viewer/pptx-viewer.d.ts.map +1 -0
- package/dist/components/pptx-viewer/pptx-viewer.js +11 -0
- package/dist/components/pptx-viewer/pptx-viewer.js.map +1 -0
- package/dist/components/pptx-viewer/pptx-viewer.styles.d.ts +2 -0
- package/dist/components/pptx-viewer/pptx-viewer.styles.d.ts.map +1 -0
- package/dist/components/pptx-viewer/pptx-viewer.styles.js +66 -0
- package/dist/components/pptx-viewer/pptx-viewer.styles.js.map +1 -0
- package/dist/components/responsive-panel/responsive-panel.styles.js +1 -1
- 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/spreadsheet-viewer/spreadsheet-loader.d.ts +8 -0
- package/dist/components/spreadsheet-viewer/spreadsheet-loader.d.ts.map +1 -0
- package/dist/components/spreadsheet-viewer/spreadsheet-loader.js +19 -0
- package/dist/components/spreadsheet-viewer/spreadsheet-loader.js.map +1 -0
- package/dist/components/spreadsheet-viewer/spreadsheet-viewer.class.d.ts +32 -0
- package/dist/components/spreadsheet-viewer/spreadsheet-viewer.class.d.ts.map +1 -0
- package/dist/components/spreadsheet-viewer/spreadsheet-viewer.class.js +99 -0
- package/dist/components/spreadsheet-viewer/spreadsheet-viewer.class.js.map +1 -0
- package/dist/components/spreadsheet-viewer/spreadsheet-viewer.d.ts +3 -0
- package/dist/components/spreadsheet-viewer/spreadsheet-viewer.d.ts.map +1 -0
- package/dist/components/spreadsheet-viewer/spreadsheet-viewer.js +12 -0
- package/dist/components/spreadsheet-viewer/spreadsheet-viewer.js.map +1 -0
- package/dist/components/spreadsheet-viewer/spreadsheet-viewer.styles.d.ts +2 -0
- package/dist/components/spreadsheet-viewer/spreadsheet-viewer.styles.d.ts.map +1 -0
- package/dist/components/spreadsheet-viewer/spreadsheet-viewer.styles.js +14 -0
- package/dist/components/spreadsheet-viewer/spreadsheet-viewer.styles.js.map +1 -0
- package/dist/components/svg-viewer/dompurify-loader.d.ts +7 -0
- package/dist/components/svg-viewer/dompurify-loader.d.ts.map +1 -0
- package/dist/components/svg-viewer/dompurify-loader.js +19 -0
- package/dist/components/svg-viewer/dompurify-loader.js.map +1 -0
- package/dist/components/svg-viewer/svg-viewer.class.d.ts +29 -0
- package/dist/components/svg-viewer/svg-viewer.class.d.ts.map +1 -0
- package/dist/components/svg-viewer/svg-viewer.class.js +95 -0
- package/dist/components/svg-viewer/svg-viewer.class.js.map +1 -0
- package/dist/components/svg-viewer/svg-viewer.d.ts +2 -0
- package/dist/components/svg-viewer/svg-viewer.d.ts.map +1 -0
- package/dist/components/svg-viewer/svg-viewer.js +15 -0
- package/dist/components/svg-viewer/svg-viewer.js.map +1 -0
- package/dist/components/svg-viewer/svg-viewer.styles.d.ts +2 -0
- package/dist/components/svg-viewer/svg-viewer.styles.d.ts.map +1 -0
- package/dist/components/svg-viewer/svg-viewer.styles.js +50 -0
- package/dist/components/svg-viewer/svg-viewer.styles.js.map +1 -0
- 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/internal/localization.d.ts +1 -1
- package/dist/internal/localization.d.ts.map +1 -1
- package/dist/internal/localization.js +63 -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 +15 -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 +43 -0
- package/dist/lyra.d.ts.map +1 -1
- package/dist/lyra.js +32 -0
- package/dist/lyra.js.map +1 -1
- package/dist/testing/happy-dom-shims.d.ts +4 -2
- package/dist/testing/happy-dom-shims.d.ts.map +1 -1
- package/dist/testing/happy-dom-shims.js +6 -2
- package/dist/testing/happy-dom-shims.js.map +1 -1
- package/dist/theme.css +58 -0
- package/llms-full.txt +431 -37
- package/llms.txt +11 -9
- package/package.json +91 -4
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
|
|
@@ -38,6 +34,7 @@ composition without registration; for example, `components/empty/empty.class.js`
|
|
|
38
34
|
`lyra-thinking-panel`, `lyra-generation-status`, `lyra-code-block`, `lyra-tool-approval-dialog`,
|
|
39
35
|
`lyra-tool-param-form`, `lyra-menu`/`lyra-menu-item`, `lyra-chip`/`lyra-chip-group`,
|
|
40
36
|
`lyra-model-settings-panel`, `lyra-context-meter`, `lyra-dock-panel`, `lyra-document-preview`,
|
|
37
|
+
`lyra-document-viewer`, `lyra-docx-viewer`, `lyra-email-viewer`, `lyra-calendar-viewer`, `lyra-archive-viewer`,
|
|
41
38
|
`lyra-media-card`, `lyra-attachment-trigger`, `lyra-kbd`, `lyra-result-card`/`lyra-result-field`,
|
|
42
39
|
`lyra-avatar`, `lyra-card`, `lyra-stepper`, `lyra-segmented`, `lyra-diff-view`, `lyra-poll-status`,
|
|
43
40
|
`lyra-code-block-core` (needs the optional peer `shiki`)
|
|
@@ -105,21 +102,22 @@ Not a custom element itself — infrastructure every `lyra-*` component in the l
|
|
|
105
102
|
`lyra-citation-badge`, and `lyra-menu` (which resolves its `placement` through
|
|
106
103
|
`rtlAwarePlacement()` first — see `rtl.ts` below — before handing it to `place()`).
|
|
107
104
|
- **`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(--
|
|
105
|
+
the whole design-token layer. Every value chains through an independent `--lyra-theme-*` custom
|
|
106
|
+
property and finally a hard-coded fallback, e.g. `--lyra-color-brand: var(--lyra-theme-color-brand-fill-loud, #0969da)`.
|
|
107
|
+
Full
|
|
110
108
|
set: `--lyra-color-surface / -text / -text-quiet / -border / -brand / -brand-quiet / -success /
|
|
111
109
|
-success-quiet / -warning / -warning-quiet / -danger / -danger-quiet`,
|
|
112
110
|
`--lyra-color-on-brand / -on-success / -on-warning / -on-danger` (paired
|
|
113
111
|
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`,
|
|
112
|
+
and dark fallbacks choose a contrasting foreground for each fill, while a consumer's own theme
|
|
113
|
+
can provide its own `*-on-loud` values), `--lyra-space-xs / -s / -m / -l`, `--lyra-radius`, `--lyra-shadow`,
|
|
116
114
|
`--lyra-font`, `--lyra-transition-fast` / `-base` (motion timing every animating component should
|
|
117
115
|
share), `--lyra-opacity-disabled` (one shared disabled-state opacity), `--lyra-focus-ring-width` /
|
|
118
116
|
`-color` / `-offset` (every `:focus-visible` rule should reference these), `--lyra-icon-button-size`
|
|
119
117
|
(minimum tappable box for icon-only buttons; the glyph itself doesn't grow). Also sets
|
|
120
118
|
`:host([hidden]) { display: none !important; }`, an inherited `box-sizing: border-box` reset, and
|
|
121
119
|
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 `--
|
|
120
|
+
dark palette (only takes effect when no real `--lyra-theme-*` value is set).
|
|
123
121
|
- **`prefix.ts`** — `LYRA_PREFIX = 'lyra'`; `tag(name)` → `` `lyra-${name}` ``; `defineElement(name,
|
|
124
122
|
ctor)` — idempotent `customElements.define`, safe if a module is evaluated twice.
|
|
125
123
|
- **`a11y.ts`** — `nextId(scope)`: monotonic id generator (e.g. `nextId('combobox-list')` →
|
|
@@ -544,6 +542,10 @@ Text field + calendar popover, **form-associated** via the shared `FormAssociate
|
|
|
544
542
|
internal `<input>`; empty omits the attribute. Named `autoCorrect` in JS/TS (not `autocorrect`)
|
|
545
543
|
to dodge a `lib.dom.d.ts` collision with `HTMLElement`'s own boolean `autocorrect` IDL member;
|
|
546
544
|
the wire attribute is still the plain `autocorrect` name
|
|
545
|
+
- `autocomplete: string = ''`, `inputMode: string = ''` (attribute `inputmode`), and
|
|
546
|
+
`enterKeyHint: string = ''` (attribute `enterkeyhint`) — forwarded to the internal date input
|
|
547
|
+
- `autocomplete: string = ''`, `inputMode: string = ''` (`inputmode`), and `enterKeyHint: string = ''`
|
|
548
|
+
(`enterkeyhint`) — forwarded to the internal `<input>`.
|
|
547
549
|
|
|
548
550
|
**Methods:** `show()`, `hide()`, `clear()`
|
|
549
551
|
|
|
@@ -720,15 +722,14 @@ original declarative `value`, matching native `defaultValue` behavior.
|
|
|
720
722
|
|
|
721
723
|
## `lyra-button`
|
|
722
724
|
|
|
723
|
-
A generic action-button primitive
|
|
724
|
-
internal native `<button>` (this library has no runtime dependency on Web Awesome); `type="submit"`/
|
|
725
|
+
A generic action-button primitive. Renders an internal native `<button>`; `type="submit"`/
|
|
725
726
|
`type="reset"` are handled by the component itself via the host's own `closest('form')`, since a
|
|
726
727
|
shadow-internal native button doesn't participate in an ancestor form's submission on its own.
|
|
727
728
|
|
|
728
729
|
**Properties:**
|
|
729
730
|
- `variant: 'neutral' | 'brand' | 'success' | 'warning' | 'danger' = 'neutral'` (reflected)
|
|
730
731
|
- `appearance: 'accent' | 'filled' | 'outlined' | 'plain' = 'filled'` (reflected) — `'accent'` is a
|
|
731
|
-
loud, high-contrast filled tier
|
|
732
|
+
loud, high-contrast filled tier,
|
|
732
733
|
distinct from `'filled'` for `variant="neutral"` specifically (`'filled'` reads the ambient
|
|
733
734
|
surface color there; `'accent'` reads a solid neutral fill)
|
|
734
735
|
- `size: 'xs' | 's' | 'm' | 'l' | 'xl' = 'm'` (reflected)
|
|
@@ -737,7 +738,11 @@ shadow-internal native button doesn't participate in an ancestor form's submissi
|
|
|
737
738
|
clearing `disabled`
|
|
738
739
|
- `disabled: boolean = false` (reflected)
|
|
739
740
|
|
|
740
|
-
|
|
741
|
+
The shared `m` size uses `--lyra-font-size-m`. The internal button follows the host's inline size through `--lyra-button-width` (default
|
|
742
|
+
`100%`), and the size scale is exposed through `--lyra-button-size-xs/-s/-m/-l/-xl`.
|
|
743
|
+
|
|
744
|
+
**Getters/methods:** `click()`, `focus(options?)`, and `blur()` — forwarded to the internal native
|
|
745
|
+
`<button>`; `click()` also runs the component's submit/reset behavior.
|
|
741
746
|
|
|
742
747
|
**Events:** none (a plain native `click` bubbles and composes through the shadow boundary
|
|
743
748
|
unmodified; disabled while `disabled` or `loading`).
|
|
@@ -746,11 +751,12 @@ unmodified; disabled while `disabled` or `loading`).
|
|
|
746
751
|
|
|
747
752
|
**CSS parts:** `base`, `label`, `start`, `end`, `spinner` (present only while `loading`).
|
|
748
753
|
|
|
749
|
-
**Themeable custom properties:** `--lyra-button-
|
|
754
|
+
**Themeable custom properties:** `--lyra-button-width`, `--lyra-button-size-xs/-s/-m/-l/-xl`,
|
|
755
|
+
`--lyra-button-accent`, `--lyra-button-fill`,
|
|
750
756
|
`--lyra-button-on-fill`, `--lyra-button-border` (each swapped by the active `variant`, default
|
|
751
757
|
`neutral` falls back to plain text/surface/border tokens), `--lyra-button-accent-fill`,
|
|
752
758
|
`--lyra-button-accent-on-fill` (the `appearance="accent"` fill/foreground pair; `neutral` falls
|
|
753
|
-
back to `--
|
|
759
|
+
back to `--lyra-color-neutral`/`--lyra-color-on-neutral`, every other variant reuses that variant's own
|
|
754
760
|
loud fill token), `--lyra-button-hover-brightness` (default `1.08`, the `:hover` filter intensity),
|
|
755
761
|
`--lyra-button-active-scale` (default `0.9875`, the `:active` press-scale, disabled under
|
|
756
762
|
`prefers-reduced-motion`).
|
|
@@ -1880,6 +1886,9 @@ itself (absent for `'wide'`/`collapse="none"`); and the `lyra-split-collapse-cha
|
|
|
1880
1886
|
divider adjacent to the collapsed panel is drag/keyboard-disabled (`aria-disabled="true"`) while
|
|
1881
1887
|
collapsed. `collapse="none"` (the default) is byte-for-byte identical to pre-collapse-feature behavior.
|
|
1882
1888
|
|
|
1889
|
+
`dividerLabel?: (index: number, panelCount: number) => string` (attribute: false) customizes the
|
|
1890
|
+
localized accessible label generated for each auto-inserted divider.
|
|
1891
|
+
|
|
1883
1892
|
**Events:** `lyra-resize` (`detail: { sizes }`, fired on every drag step/release **and** every
|
|
1884
1893
|
keyboard step), `lyra-split-collapse-change` (`detail: { state: 'wide'|'rail'|'floating' }`, fired only
|
|
1885
1894
|
on a real `collapse`-state transition, never on every resize/render),
|
|
@@ -1959,6 +1968,8 @@ position) survives the transition.
|
|
|
1959
1968
|
sidebar/toolbar visible during fullscreen
|
|
1960
1969
|
- `compact: boolean = false` (reflected) — tighter header/body padding, same convention as
|
|
1961
1970
|
`lyra-empty`'s `compact`
|
|
1971
|
+
- `backdropInset: string = ''` (attribute `backdrop-inset`) — overrides the fullscreen backdrop's
|
|
1972
|
+
CSS `inset` independently from `fullscreenInset`; when empty, it follows `fullscreenInset`
|
|
1962
1973
|
- `views: WidgetView[] = []` (attribute: false) — named alternate views for the panel body, e.g. a
|
|
1963
1974
|
chart/table toggle inside the same card chrome; `WidgetView { id: string; label: string; icon?:
|
|
1964
1975
|
TemplateResult }`. Each entry gets a header toggle button (`[part='view-toggle']`) and a
|
|
@@ -1987,7 +1998,7 @@ empty), `label-group` (wrapper around the label and sublabel), `label`, `sublabe
|
|
|
1987
1998
|
`backdrop`
|
|
1988
1999
|
|
|
1989
2000
|
**Themeable custom properties:** `--lyra-widget-overlay-color` (default `rgb(0 0 0 / 0.5)` — the
|
|
1990
|
-
fullscreen backdrop scrim color; component-specific since no shared `--
|
|
2001
|
+
fullscreen backdrop scrim color; component-specific since no shared `--lyra-*` overlay token
|
|
1991
2002
|
exists), plus shared tokens (`--lyra-space-*`, `--lyra-color-border/-surface/-text-quiet`,
|
|
1992
2003
|
`--lyra-radius`, `--lyra-shadow`, `--lyra-icon-button-size`, `--lyra-focus-ring-*`).
|
|
1993
2004
|
|
|
@@ -2269,10 +2280,15 @@ A Canvas-rendered heatmap with a DPR-aware, resize-aware redraw loop, in one of
|
|
|
2269
2280
|
`"matrix"` (default — a `rowLabels` × `colLabels` grid of `values`) or `"calendar"` (a
|
|
2270
2281
|
GitHub-style Sunday–Saturday × week grid built from `days`, colored by quartile bucket rather than
|
|
2271
2282
|
the matrix mode's continuous ramp). Every cell is independently addressable despite being
|
|
2272
|
-
canvas-drawn (no per-cell DOM node): a `pointermove` hit-test over the canvas shows `[part="tooltip"]`
|
|
2283
|
+
canvas-drawn (no per-cell DOM node by default): a `pointermove` hit-test over the canvas shows `[part="tooltip"]`
|
|
2273
2284
|
with that cell's label + value; the canvas is `tabindex="0"` with arrow-key roving focus (a stroked
|
|
2274
2285
|
ring redrawn over the focused cell on every draw, plus `[part="live-region"]` announcing it); and a
|
|
2275
|
-
click, or Enter/Space on the focused cell, fires `lyra-cell-click`.
|
|
2286
|
+
click, or Enter/Space on the focused cell, fires `lyra-cell-click`.
|
|
2287
|
+
|
|
2288
|
+
Set `accessibleCells: true` (`accessible-cells`) to opt into a native-button overlay for each
|
|
2289
|
+
interactive matrix/calendar cell. The overlay uses localized `aria-label`s, explicit
|
|
2290
|
+
`aria-pressed="true"|"false"` from the controlled `selectedCell`, and roving tabindex/arrow-key
|
|
2291
|
+
focus; it continues to emit `lyra-cell-click` and leaves selection state consumer-controlled.
|
|
2276
2292
|
|
|
2277
2293
|
**Properties:**
|
|
2278
2294
|
- `rowLabels: string[] = []` (attribute: false — matrix mode only)
|
|
@@ -2312,6 +2328,11 @@ click, or Enter/Space on the focused cell, fires `lyra-cell-click`.
|
|
|
2312
2328
|
announcement when the focused cell is the selection. Purely a controlled property — mirrors
|
|
2313
2329
|
`<lyra-lite-chart>`'s `selectedIndex`, this component never mutates it itself. Unset (the default,
|
|
2314
2330
|
`null`) reproduces today's exact output.
|
|
2331
|
+
- `accessibleCells: boolean = false` (attribute `accessible-cells`) — renders `[part="cells"]` with
|
|
2332
|
+
one `[part="cell"]` native button per interactive cell. Buttons expose localized `aria-label`s,
|
|
2333
|
+
explicit `aria-pressed` state from `selectedCell`, and a roving tabindex; the canvas becomes
|
|
2334
|
+
`aria-hidden` while this mode is enabled. The property is opt-in so the default canvas mode keeps
|
|
2335
|
+
its low DOM footprint.
|
|
2315
2336
|
- `cellText?: (pos: MatrixCellPos | CalendarCellPos, value: number) => string` (attribute: false) —
|
|
2316
2337
|
formats the per-cell hover tooltip and keyboard live-region announcement text; receives the cell
|
|
2317
2338
|
position (`{ row, col }` in matrix mode, `{ week, weekday }` in calendar mode) and its value.
|
|
@@ -2370,7 +2391,8 @@ force a redraw manually.
|
|
|
2370
2391
|
|
|
2371
2392
|
**Slots:** none.
|
|
2372
2393
|
|
|
2373
|
-
**CSS parts:** `base`, `canvas`, `
|
|
2394
|
+
**CSS parts:** `base`, `canvas`, `cells` (opt-in per-cell overlay), `cell` (one opt-in native cell
|
|
2395
|
+
button), `tooltip` (hover tooltip, positioned over the hovered cell),
|
|
2374
2396
|
`live-region` (visually-hidden `role="status" aria-live="polite"` element announcing the
|
|
2375
2397
|
keyboard-focused cell), `legend`, `legend-lo`, `legend-hi`, `legend-annotation` (one per labeled
|
|
2376
2398
|
`annotations` entry)
|
|
@@ -2623,6 +2645,8 @@ descendants of the treeitem, matching the WAI-ARIA treeitem pattern's containmen
|
|
|
2623
2645
|
- `setSize: number = 1`, `posInSet: number = 1` (attribute: false) — this node's `aria-setsize`/
|
|
2624
2646
|
`aria-posinset` values among its siblings, pushed down from `<lyra-tree>`; normally set internally,
|
|
2625
2647
|
not by consumers
|
|
2648
|
+
- `hasChildren: boolean` (read-only getter) — reports whether `item.children` contains at least one
|
|
2649
|
+
child; leaf nodes never expose `aria-expanded` and cannot expand or collapse
|
|
2626
2650
|
|
|
2627
2651
|
**Methods:** `expand()`, `collapse()` (each a no-op if already in that state, or a leaf), `select()`
|
|
2628
2652
|
(fires `lyra-node-select`).
|
|
@@ -3169,6 +3193,10 @@ parsing (that's left entirely to the host).
|
|
|
3169
3193
|
- `label: string = 'Drop files here or click to browse'`
|
|
3170
3194
|
- `accessibleLabel: string = ''` (attribute `aria-label`) — overrides `label` as the internal
|
|
3171
3195
|
dropzone/button accessible name without changing visible copy
|
|
3196
|
+
- `acceptedMessage: string = '{count} file(s) added.'` (attribute `accepted-message`) — live-region
|
|
3197
|
+
message after an accepted selection; `{count}` is replaced with the accepted count
|
|
3198
|
+
- `rejectedMessage: string = '{count} file(s) rejected.'` (attribute `rejected-message`) — live-region
|
|
3199
|
+
message after rejected files; `{count}` is replaced with the rejected count
|
|
3172
3200
|
|
|
3173
3201
|
**Methods:** `openPicker()` programmatically opens the native file dialog; `focus(options?)`
|
|
3174
3202
|
forwards to the interactive dropzone.
|
|
@@ -3464,6 +3492,8 @@ hand-building that chrome isn't worth it.
|
|
|
3464
3492
|
- `closable: boolean = false` (attribute `closable`) — renders a built-in close (X) button in the
|
|
3465
3493
|
header row (creating one, with no heading text, if `heading` is unset), wired to the same
|
|
3466
3494
|
`close()` path Escape/backdrop-dismiss already use, with reason `'close-button'`
|
|
3495
|
+
- `noLightDismiss: boolean = false` (attribute `no-light-dismiss`) — prevents a backdrop click from
|
|
3496
|
+
closing the dialog; Escape and explicit `close()` calls remain available
|
|
3467
3497
|
|
|
3468
3498
|
Also settable as a plain `aria-label` attribute (not a public JS property): overrides the panel's
|
|
3469
3499
|
computed accessible name outright, winning over every other source below (a slotted heading,
|
|
@@ -3501,7 +3531,7 @@ when no heading is slotted and `heading` is unset), `body` (wrapper around the d
|
|
|
3501
3531
|
`footer` (wrapper around the `footer` slot)
|
|
3502
3532
|
|
|
3503
3533
|
**Themeable custom properties:** `--lyra-dialog-overlay-color` (default `rgb(0 0 0 / 0.5)` — the
|
|
3504
|
-
backdrop scrim color; component-specific since no shared `--
|
|
3534
|
+
backdrop scrim color; component-specific since no shared `--lyra-*` overlay token exists),
|
|
3505
3535
|
`--lyra-dialog-width` (default unset/`auto` — the panel shrink-wraps to content, unchanged; set it
|
|
3506
3536
|
for an assertive width instead), `--lyra-dialog-max-width` (default `32rem` — the panel's
|
|
3507
3537
|
max-inline-size cap, via `min(var(--lyra-dialog-max-width, var(--lyra-dialog-width, 32rem)), 100%)`;
|
|
@@ -4161,7 +4191,7 @@ fenced/indented `<pre>`), `link` (every rendered `<a>`), `table` (every rendered
|
|
|
4161
4191
|
|
|
4162
4192
|
**Themeable custom properties:** `--lyra-markdown-font-mono` (default `ui-monospace, SFMono-Regular,
|
|
4163
4193
|
Menlo, Consolas, monospace` — the code/code-block font; component-specific since no shared
|
|
4164
|
-
`--
|
|
4194
|
+
`--lyra-*` monospace token exists), plus shared tokens `--lyra-space-xs/-s/-m/-l`,
|
|
4165
4195
|
`--lyra-color-brand-quiet`, `--lyra-color-brand`, `--lyra-color-border`, `--lyra-color-text-quiet`,
|
|
4166
4196
|
`--lyra-radius`.
|
|
4167
4197
|
|
|
@@ -4243,6 +4273,8 @@ conversation-surface level).
|
|
|
4243
4273
|
- `collapsed: boolean = false` (reflected) — whether the message body is hidden; effective whenever
|
|
4244
4274
|
set, independent of `collapsible` (which only controls whether the toggle button itself is
|
|
4245
4275
|
rendered) — mirrors `lyra-widget`'s identical `collapsible`/`collapsed` pair
|
|
4276
|
+
- `attachmentsPosition: 'before'|'after' = 'after'` (attribute `attachments-position`) — places the
|
|
4277
|
+
`attachments` slot before or after the message body; both the visual and reading order follow it
|
|
4246
4278
|
|
|
4247
4279
|
**Events:** `lyra-retry` (no detail payload; fired by the built-in retry button, only rendered when
|
|
4248
4280
|
`status="failed"`), `lyra-collapse-toggle` (`detail: boolean`, the new `collapsed` state — fired when
|
|
@@ -4875,6 +4907,8 @@ wins when both are present.
|
|
|
4875
4907
|
indeterminate state, and filename context so translators can reorder every value
|
|
4876
4908
|
- `uploadFailedLabel: string = 'Upload failed'` (attribute `upload-failed-label`) — visible status
|
|
4877
4909
|
text shown for `status="error"`; override for i18n/locale
|
|
4910
|
+
- `untitledLabel: string = 'Untitled file'` (attribute `untitled-label`) — fallback filename and
|
|
4911
|
+
tooltip when neither `file` nor `name` supplies a name
|
|
4878
4912
|
|
|
4879
4913
|
The component identifies *which* attachment a `lyra-remove`/`lyra-retry` event is about via the
|
|
4880
4914
|
platform's own `id` attribute/property rather than a second, differently-named prop. Set `id="..."`
|
|
@@ -5369,6 +5403,11 @@ emitting `lyra-change`.
|
|
|
5369
5403
|
`<input>`'s own `autocorrect` (Safari/WebKit-specific); empty omits the attribute. Named
|
|
5370
5404
|
`autoCorrect` in JS purely to dodge a `lib.dom.d.ts` typing collision — the wire attribute is
|
|
5371
5405
|
still plain `autocorrect`.
|
|
5406
|
+
- `autocomplete: string = 'off'`, `inputMode: string = ''` (attribute `inputmode`), and
|
|
5407
|
+
`enterKeyHint: string = ''` (attribute `enterkeyhint`) — forwarded to the free-text input;
|
|
5408
|
+
they have no effect in closed-dropdown mode
|
|
5409
|
+
- `autocomplete: string = 'off'`, `inputMode: string = ''` (`inputmode`), and `enterKeyHint: string = ''`
|
|
5410
|
+
(`enterkeyhint`) — forwarded to the free-text mode's native `<input>`.
|
|
5372
5411
|
- `name: string = ''` (reflected)
|
|
5373
5412
|
- `disabled: boolean = false` (reflected)
|
|
5374
5413
|
- `required: boolean = false` (reflected — enforced via `internals.setValidity()`)
|
|
@@ -5573,6 +5612,9 @@ shared overlay stack. First-party invention (no Web Awesome equivalent).
|
|
|
5573
5612
|
- `searchPlaceholder: string = 'Search tools…'` (attribute `search-placeholder`)
|
|
5574
5613
|
- `filter: ToolSelectFilter | null = null` (attribute: false) — overrides the built-in
|
|
5575
5614
|
case-insensitive name/description substring match.
|
|
5615
|
+
- `autocomplete: string = ''`, `spellcheck: boolean = true`, `autocapitalize: string = ''`,
|
|
5616
|
+
`autoCorrect: string = ''` (`autocorrect`), `inputMode: string = ''` (`inputmode`), and
|
|
5617
|
+
`enterKeyHint: string = ''` (`enterkeyhint`) — forwarded to the search `<input>`.
|
|
5576
5618
|
|
|
5577
5619
|
**Methods:** `close(reason: ToolSelectDialogCloseReason = 'api'): void` — closes the dialog, emits
|
|
5578
5620
|
`lyra-close` with `reason`, and returns focus to whatever had it before the dialog opened.
|
|
@@ -6556,9 +6598,10 @@ something that announces state *transitions* instead. The Stop button gets a nor
|
|
|
6556
6598
|
## `lyra-code-block`
|
|
6557
6599
|
|
|
6558
6600
|
Fenced code display with optional lazy syntax highlighting and a copy button. First-party invention
|
|
6559
|
-
(no Web Awesome equivalent).
|
|
6560
|
-
|
|
6561
|
-
to a plain `<pre><code>` when that peer isn't installed or
|
|
6601
|
+
(no Web Awesome equivalent). It lazy-loads the optional peer dependency `shiki` (see
|
|
6602
|
+
`code-loader.ts`) for the actual tokenizing, and includes a compact GreyCat/GCL grammar because
|
|
6603
|
+
Shiki does not bundle one. It falls back to a plain `<pre><code>` when that peer isn't installed or
|
|
6604
|
+
`language` is unset/unrecognized. That
|
|
6562
6605
|
fallback is the *default* rendering path, not a degraded one: unhighlighted code is perfectly usable,
|
|
6563
6606
|
and it's what every instance renders at zero extra bytes until shiki resolves.
|
|
6564
6607
|
|
|
@@ -6566,7 +6609,10 @@ and it's what every instance renders at zero extra bytes until shiki resolves.
|
|
|
6566
6609
|
- `code: string = ''` — the raw source text
|
|
6567
6610
|
- `language: string = ''` — a shiki-recognized language id or alias (e.g. `"javascript"`, `"python"`,
|
|
6568
6611
|
`"json"`); when unset, or when shiki doesn't recognize it, the code renders as plain unhighlighted
|
|
6569
|
-
text regardless of whether shiki itself is available
|
|
6612
|
+
text regardless of whether shiki itself is available. Shiki's bundled catalog covers most common
|
|
6613
|
+
programming, markup, data, and configuration languages, including Python, C, C++, C#, Java,
|
|
6614
|
+
JavaScript, TypeScript, HTML, CSS, JSON, SQL, Go, Rust, YAML, Markdown, and shell scripts. Lyra
|
|
6615
|
+
also includes a built-in GreyCat grammar; use `"gcl"` or `"greycat"` for GreyCat source.
|
|
6570
6616
|
- `filename: string = ''` — shown in the header, when set
|
|
6571
6617
|
- `accessibleLabel: string = ''` (attribute `aria-label`) — names the internal focusable code-body
|
|
6572
6618
|
region; otherwise a localized filename/language description is generated
|
|
@@ -6578,6 +6624,8 @@ and it's what every instance renders at zero extra bytes until shiki resolves.
|
|
|
6578
6624
|
cannot override a true default)
|
|
6579
6625
|
- `maxHeight: string = ''` (attribute `max-height`) — a CSS length (e.g. `"20rem"`); once set, the
|
|
6580
6626
|
code scrolls internally past this height instead of growing the page
|
|
6627
|
+
- `lineNumbers: boolean = false` (attribute `line-numbers`, reflected) — displays one-based line
|
|
6628
|
+
numbers for both highlighted output and the plain-text fallback
|
|
6581
6629
|
- `languages?: Record<string, ShikiLanguageInput>` (attribute: false) — a map of language id to an
|
|
6582
6630
|
already-imported shiki grammar module (e.g. `{ bash: bashGrammar }` from a module-scope
|
|
6583
6631
|
`import bash from 'shiki/langs/bash.mjs'`). When `language` matches a key here, highlighting is
|
|
@@ -6586,6 +6634,8 @@ and it's what every instance renders at zero extra bytes until shiki resolves.
|
|
|
6586
6634
|
for that language — an additive, opt-in escape hatch for a build scoped to just the languages a
|
|
6587
6635
|
consumer actually needs. A `language` absent from this map (or `languages` left unset) falls back
|
|
6588
6636
|
to the default dynamic-import path unchanged.
|
|
6637
|
+
- `languagesOnly: boolean = false` (attribute `languages-only`) — skips the default shiki loader;
|
|
6638
|
+
use when every requested language is supplied through `languages`
|
|
6589
6639
|
|
|
6590
6640
|
**Events:** `lyra-copy` (`detail: { text: string }` — always the raw `code` value, never the
|
|
6591
6641
|
highlighted HTML, and always fires regardless of whether the actual OS clipboard write succeeded),
|
|
@@ -6599,7 +6649,7 @@ button is activated, same event name/shape convention as `<lyra-thinking-panel>`
|
|
|
6599
6649
|
|
|
6600
6650
|
**Themeable custom properties:** `--lyra-code-block-max-height` (default `none` — the consumer-tunable
|
|
6601
6651
|
scroll cap; only takes effect once `max-height` is set), `--lyra-code-block-font` (default
|
|
6602
|
-
`ui-monospace, SFMono-Regular, Menlo, Consolas, monospace` — no shared `--
|
|
6652
|
+
`ui-monospace, SFMono-Regular, Menlo, Consolas, monospace` — no shared `--lyra-*` monospace
|
|
6603
6653
|
token exists to resolve through), plus shared tokens `--lyra-color-border`, `--lyra-radius`,
|
|
6604
6654
|
`--lyra-color-surface`, `--lyra-space-xs/-s/-m`, `--lyra-font`, `--lyra-color-text-quiet`,
|
|
6605
6655
|
`--lyra-color-text`, `--lyra-color-brand`/`-brand-quiet`, `--lyra-transition-fast`,
|
|
@@ -6625,6 +6675,9 @@ highlighting).
|
|
|
6625
6675
|
></lyra-code-block>
|
|
6626
6676
|
```
|
|
6627
6677
|
|
|
6678
|
+
Set `line-numbers` when source context benefits from numbered lines. The option does not change the
|
|
6679
|
+
raw `code` value or the `lyra-copy` event payload.
|
|
6680
|
+
|
|
6628
6681
|
A `<lyra-skeleton variant="rect">` placeholder (with `aria-busy="true"` on the host) stands in only
|
|
6629
6682
|
while shiki itself is loading for the very first time on the page and `language` is set — it is
|
|
6630
6683
|
deliberately *not* shown again for a later per-language grammar fetch (that's typically fast, and the
|
|
@@ -6688,6 +6741,8 @@ toggle, the loading-skeleton behavior while the fine-grained highlighter resolve
|
|
|
6688
6741
|
- `copyable: boolean = true` (reflected) — shows the copy-to-clipboard button.
|
|
6689
6742
|
- `maxHeight: string = ''` (attribute `max-height`) — a CSS length (e.g. `"20rem"`); once set, the
|
|
6690
6743
|
code scrolls internally past this height instead of growing the page.
|
|
6744
|
+
- `lineNumbers: boolean = false` (attribute `line-numbers`, reflected) — displays one-based line
|
|
6745
|
+
numbers for highlighted and plain output.
|
|
6691
6746
|
- `languages: Record<string, ShikiLanguageInput> = {}` (attribute: false) — grammar definitions this
|
|
6692
6747
|
instance can highlight, e.g. `{ json: jsonGrammar }` (import from `shiki/langs/<name>.mjs`). Empty
|
|
6693
6748
|
(the default) never highlights at all — every `language` renders the plain-text fallback.
|
|
@@ -6819,6 +6874,15 @@ renders at the start of the action row, before Deny/Edit/Approve.
|
|
|
6819
6874
|
`false` via a PROPERTY binding, e.g. `.editable=${false}` — a `?editable=${false}`
|
|
6820
6875
|
boolean-attribute binding cannot override a true default). When `false`, `args` is always shown
|
|
6821
6876
|
read-only and can never be changed before approval.
|
|
6877
|
+
- `spellcheck: boolean = false`, `autocapitalize: string = 'off'`,
|
|
6878
|
+
`autoCorrect: string = 'off'` (attribute `autocorrect`), `autocomplete: string = 'off'`,
|
|
6879
|
+
`wrap: 'hard'|'soft'|'off' = 'soft'`, `inputMode: string = ''` (attribute `inputmode`),
|
|
6880
|
+
and `enterKeyHint: string = ''` (attribute `enterkeyhint`) — forwarded to the raw-JSON
|
|
6881
|
+
textarea; the defaults keep browser editing assistance from changing JSON text
|
|
6882
|
+
- `spellcheck: boolean = false`, `autocapitalize: string = 'off'`, `autoCorrect: string = 'off'`
|
|
6883
|
+
(`autocorrect`), `autocomplete: string = 'off'`, `wrap: 'hard'|'soft'|'off' = 'soft'`,
|
|
6884
|
+
`inputMode: string = ''` (`inputmode`), and `enterKeyHint: string = ''` (`enterkeyhint`) —
|
|
6885
|
+
forwarded to the raw-JSON `<textarea>` while editing.
|
|
6822
6886
|
|
|
6823
6887
|
**Methods:** `close(reason: ToolApprovalDialogCloseReason = 'api'): void` — closes the dialog, emits
|
|
6824
6888
|
`lyra-close` with `reason`, and returns focus to whatever had it before the dialog opened; a no-op if
|
|
@@ -7062,6 +7126,10 @@ menu, an avatar menu, or a history row's overflow menu. Uses the WAI-ARIA "menu
|
|
|
7062
7126
|
a no-op for existing consumers), matching `lyra-select`/`lyra-model-select`'s
|
|
7063
7127
|
`this.getAttribute('aria-label') || <computed default>` precedence
|
|
7064
7128
|
|
|
7129
|
+
- `closeOnEscapeAnywhere: boolean = false` (attribute `close-on-escape-anywhere`) — lets Escape
|
|
7130
|
+
close the menu when focus is on slotted non-menu-item content inside the popup; item activation
|
|
7131
|
+
remains scoped to actual menu items
|
|
7132
|
+
|
|
7065
7133
|
**Events:** `lyra-show` (no detail — fires only when `open` transitions to `true`, not for markup
|
|
7066
7134
|
that renders `open` true from the start), `lyra-hide` (same first-render guard, opposite
|
|
7067
7135
|
transition), `lyra-menu-select` (`detail: { value }` — a consolidated re-fire of the activated
|
|
@@ -7724,6 +7792,304 @@ available, the region becomes a standard `role="progressbar"` instead, self-desc
|
|
|
7724
7792
|
|
|
7725
7793
|
---
|
|
7726
7794
|
|
|
7795
|
+
## `lyra-document-viewer`
|
|
7796
|
+
|
|
7797
|
+
A dialog-hosted, format-dispatching full viewer for one document or attachment. It uses a pluggable
|
|
7798
|
+
renderer registry and falls back to `<lyra-document-preview>` when no renderer matches the file's MIME
|
|
7799
|
+
type. First-party invention.
|
|
7800
|
+
|
|
7801
|
+
**Properties:**
|
|
7802
|
+
- `open: boolean = false` (reflected) — opens or closes the viewer dialog.
|
|
7803
|
+
- `name: string = ''` — display name passed to the renderer and used as the dialog heading.
|
|
7804
|
+
- `mimeType: string = ''` (attribute `mime-type`) — MIME type used for exact renderer dispatch.
|
|
7805
|
+
- `src: string = ''` — source URL passed to the selected renderer or the fallback preview.
|
|
7806
|
+
- `registry?: DocumentRendererRegistry` (attribute: false) — optional per-instance registry override;
|
|
7807
|
+
the module-level registry is used when unset.
|
|
7808
|
+
|
|
7809
|
+
**Events:**
|
|
7810
|
+
- `lyra-close` — `detail: DocumentViewerCloseReason`, the nested dialog's dismissal reason. The
|
|
7811
|
+
event is emitted after the viewer sets `open` to `false`.
|
|
7812
|
+
|
|
7813
|
+
**CSS parts:** `body` — wrapper around the active renderer, loading/error state, or fallback preview.
|
|
7814
|
+
|
|
7815
|
+
**Renderer registry exports:**
|
|
7816
|
+
- `DocumentFile` — `{ name: string; mimeType: string; src: string }`, the value passed to renderers.
|
|
7817
|
+
- `DocumentRendererDefinition` — optional `render(file)`, `matches(file)`, and lazy `load()` hooks.
|
|
7818
|
+
- `DocumentRendererRegistry` — `Map<string, DocumentRendererDefinition>`.
|
|
7819
|
+
- `registerDocumentRenderer(key, definition)` — adds or replaces a default-registry entry.
|
|
7820
|
+
- `findDocumentRenderer(file, registry?)` — checks an exact MIME-type key, then the first matching
|
|
7821
|
+
`matches()` entry in registration order.
|
|
7822
|
+
- `loadDocumentRenderer(definition)` — resolves and identity-caches a lazy definition; rejected loads
|
|
7823
|
+
are retried on the next call.
|
|
7824
|
+
|
|
7825
|
+
```html
|
|
7826
|
+
<lyra-document-viewer
|
|
7827
|
+
open
|
|
7828
|
+
name="report.pdf"
|
|
7829
|
+
mime-type="application/pdf"
|
|
7830
|
+
src="/files/report.pdf"
|
|
7831
|
+
></lyra-document-viewer>
|
|
7832
|
+
```
|
|
7833
|
+
|
|
7834
|
+
Register a renderer once during application setup. The definition may load a heavy optional viewer
|
|
7835
|
+
only when a matching document is opened:
|
|
7836
|
+
|
|
7837
|
+
```ts
|
|
7838
|
+
import { registerDocumentRenderer } from '@aceshooting/lyra-ui';
|
|
7839
|
+
|
|
7840
|
+
registerDocumentRenderer('application/x-example', {
|
|
7841
|
+
render: (file) => `Preview: ${file.name}`,
|
|
7842
|
+
});
|
|
7843
|
+
```
|
|
7844
|
+
|
|
7845
|
+
When no renderer matches, the viewer renders `<lyra-document-preview>`, which handles text and images
|
|
7846
|
+
inline and provides a safe generic fallback for other formats.
|
|
7847
|
+
|
|
7848
|
+
## `lyra-docx-viewer`
|
|
7849
|
+
|
|
7850
|
+
Fetches a `.docx` Word document as an `ArrayBuffer`, converts it to semantic HTML with the optional
|
|
7851
|
+
`mammoth` peer, sanitizes that HTML through the optional `dompurify` peer, and renders the result.
|
|
7852
|
+
Mammoth preserves document structure such as headings, paragraphs, lists, tables, and images; it is
|
|
7853
|
+
not intended to reproduce pixel-exact Word page layout. There is no unsanitized rendering escape
|
|
7854
|
+
hatch: if `dompurify` is unavailable, rendering is blocked even when Mammoth converted successfully.
|
|
7855
|
+
|
|
7856
|
+
**Properties:** `src`, `name`, and `maxHeight` (attribute `max-height`) are strings. `maxHeight` caps
|
|
7857
|
+
the scrollable document body.
|
|
7858
|
+
|
|
7859
|
+
**Events:** `lyra-render-error` with `detail.error` when fetching, conversion, sanitization, or a
|
|
7860
|
+
non-fatal Mammoth conversion message occurs.
|
|
7861
|
+
|
|
7862
|
+
**CSS parts:** `base`, `body`, `content`, `spinner`, and `error`.
|
|
7863
|
+
|
|
7864
|
+
**Optional peer dependencies:** install `mammoth` and `dompurify` with `pnpm add mammoth dompurify`.
|
|
7865
|
+
The component registers a lazy `application/vnd.openxmlformats-officedocument.wordprocessingml.document`
|
|
7866
|
+
renderer with `<lyra-document-viewer>` and matches `.docx` filenames when the MIME type is generic.
|
|
7867
|
+
|
|
7868
|
+
```html
|
|
7869
|
+
<lyra-docx-viewer src="/files/report.docx" name="report.docx" max-height="32rem"></lyra-docx-viewer>
|
|
7870
|
+
```
|
|
7871
|
+
|
|
7872
|
+
## `lyra-email-viewer`
|
|
7873
|
+
|
|
7874
|
+
Fetches and parses `.eml` messages with the optional `postal-mime` peer. HTML message bodies are
|
|
7875
|
+
sanitized through the existing optional `dompurify` peer before rendering; plain-text messages
|
|
7876
|
+
remain available without DOMPurify. Attachments are listed as filename/type/size metadata and their
|
|
7877
|
+
content is never rendered by this component.
|
|
7878
|
+
|
|
7879
|
+
**Properties:** `src`, `name`, and `maxHeight` (attribute `max-height`) are strings.
|
|
7880
|
+
|
|
7881
|
+
**Events:** `lyra-render-error` with `detail.error` when fetching or parsing fails.
|
|
7882
|
+
|
|
7883
|
+
**CSS parts:** `base`, `headers`, `from-label`, `from`, `to-label`, `to`, `subject-label`, `subject`,
|
|
7884
|
+
`date-label`, `date`, `body`, `body-html`, `body-text`, `attachments`, `attachments-label`,
|
|
7885
|
+
`attachment-list`, `attachment-item`, `spinner`, and `error`.
|
|
7886
|
+
|
|
7887
|
+
**Optional peer dependencies:** install `postal-mime` and `dompurify` with
|
|
7888
|
+
`pnpm add postal-mime dompurify`. The component registers `message/rfc822` and falls back to
|
|
7889
|
+
matching `.eml` filenames in `<lyra-document-viewer>`.
|
|
7890
|
+
|
|
7891
|
+
## `lyra-calendar-viewer`
|
|
7892
|
+
|
|
7893
|
+
Fetches and parses `.ics` calendars with the optional `ical.js` peer and renders each VEVENT as
|
|
7894
|
+
plain text, including its title, start/end time, location, and description. No HTML is injected.
|
|
7895
|
+
|
|
7896
|
+
**Properties:** `src`, `name`, and `maxHeight` (attribute `max-height`) are strings.
|
|
7897
|
+
|
|
7898
|
+
**Events:** `lyra-render-error` with `detail.error` when fetching or parsing fails.
|
|
7899
|
+
|
|
7900
|
+
**CSS parts:** `base`, `body`, `event-list`, `event`, `event-summary`, `event-time`, `event-location`,
|
|
7901
|
+
`event-description`, `spinner`, and `error`.
|
|
7902
|
+
|
|
7903
|
+
**Optional peer dependency:** install `ical.js` with `pnpm add ical.js`. The component registers
|
|
7904
|
+
`text/calendar` and falls back to matching `.ics` filenames in `<lyra-document-viewer>`.
|
|
7905
|
+
|
|
7906
|
+
## `lyra-archive-viewer`
|
|
7907
|
+
|
|
7908
|
+
Lists entry names and human-readable uncompressed sizes inside a `.zip` archive using the optional
|
|
7909
|
+
`jszip` peer. It is listing-only: entry content is never rendered or previewed. Files are measured
|
|
7910
|
+
through JSZip's public async API, so every file is decompressed once up front to obtain its size;
|
|
7911
|
+
there is no cheaper public uncompressed-size API. The list composes `<lyra-virtual-list>` for large
|
|
7912
|
+
archives.
|
|
7913
|
+
|
|
7914
|
+
**Properties:** `src` and `name` are strings.
|
|
7915
|
+
|
|
7916
|
+
**Events:** `lyra-render-error` with `detail.error` when fetching or parsing fails.
|
|
7917
|
+
|
|
7918
|
+
**CSS parts:** `base`, `entry`, `entry-icon`, `entry-name`, `entry-size`, `spinner`, and `error`.
|
|
7919
|
+
|
|
7920
|
+
**Exports:** `ArchiveEntry` — `{ name: string; dir: boolean; size: number }`.
|
|
7921
|
+
|
|
7922
|
+
**Optional peer dependency:** install `jszip` with `pnpm add jszip`. The lazy registry registers
|
|
7923
|
+
`application/zip` and `application/x-zip-compressed`, with a `.zip` filename fallback, and imports
|
|
7924
|
+
the viewer only when a matching archive is opened. `.tar`, `.rar`, and other archive formats fall
|
|
7925
|
+
through to `<lyra-document-preview>`'s generic download fallback.
|
|
7926
|
+
|
|
7927
|
+
## `lyra-ebook-viewer`
|
|
7928
|
+
|
|
7929
|
+
Renders EPUB ebooks through the optional `epubjs` peer. `src` is fetched as an `ArrayBuffer`, and
|
|
7930
|
+
epub.js renders the reading area into its stable `mount` element, using an internal iframe for
|
|
7931
|
+
chapter content.
|
|
7932
|
+
|
|
7933
|
+
**Properties:** `src` and `name` are strings. `accessibleLabel` (attribute `aria-label`) overrides
|
|
7934
|
+
the reading region's accessible name.
|
|
7935
|
+
|
|
7936
|
+
**Events:** `lyra-render-error` with `detail.error` when fetching, opening, or rendering fails.
|
|
7937
|
+
|
|
7938
|
+
**CSS parts:** `base`, `toolbar`, `previous-button`, `next-button`, `previous-icon`, `next-icon`,
|
|
7939
|
+
`mount`, and `error`.
|
|
7940
|
+
|
|
7941
|
+
**Optional peer dependency:** install `epubjs` with `pnpm add epubjs`. The document-viewer registry
|
|
7942
|
+
matches `application/epub+zip` and `.epub` filenames.
|
|
7943
|
+
|
|
7944
|
+
## `lyra-pptx-viewer`
|
|
7945
|
+
|
|
7946
|
+
Best-effort client-side PPTX viewer backed by the optional `@aiden0z/pptx-renderer` peer. A
|
|
7947
|
+
localized fidelity notice is always visible because animations, equations, embedded objects,
|
|
7948
|
+
speaker notes, and several advanced effects are not rendered.
|
|
7949
|
+
|
|
7950
|
+
**Properties:** `src`, `name`, and `label` are strings. A host `aria-label` also names the viewer
|
|
7951
|
+
region when `label` is unset.
|
|
7952
|
+
|
|
7953
|
+
**Methods:** `goToSlide(index)` returns a promise and navigates the mounted presentation.
|
|
7954
|
+
|
|
7955
|
+
**Events:** `lyra-load` (`detail: { slideCount }`), `lyra-slide-change` (`detail: { index, count }`),
|
|
7956
|
+
and `lyra-render-error` with `detail.error`.
|
|
7957
|
+
|
|
7958
|
+
**CSS parts:** `base`, `header`, `name`, `notice`, `error`, `nav`, `previous-button`,
|
|
7959
|
+
`previous-icon`, `slide-count`, `next-button`, `next-icon`, and `container`.
|
|
7960
|
+
|
|
7961
|
+
**Optional peer dependency:** install `@aiden0z/pptx-renderer` with
|
|
7962
|
+
`pnpm add @aiden0z/pptx-renderer`. The registry matches the official PPTX MIME type and `.pptx`
|
|
7963
|
+
filenames.
|
|
7964
|
+
|
|
7965
|
+
## `lyra-file-icon`
|
|
7966
|
+
|
|
7967
|
+
Localized, tokenized file-format badge for surrounding upload rows, cards, selectors, and viewer
|
|
7968
|
+
headers. The companion `getFileTypeMetadata(mimeType, fileName?)` utility covers common document,
|
|
7969
|
+
spreadsheet, presentation, code, archive, image, audio, and video formats. An explicit known MIME
|
|
7970
|
+
type wins; filename extension fallback is used only for an empty or `application/octet-stream`
|
|
7971
|
+
MIME type. Unknown values return a generic file result.
|
|
7972
|
+
|
|
7973
|
+
**Properties:** `mimeType` (attribute `mime-type`), `name`, `label`, `decorative`, and
|
|
7974
|
+
`variant: 'icon' | 'label'`.
|
|
7975
|
+
|
|
7976
|
+
**CSS parts:** `base`, `icon`, and `label`.
|
|
7977
|
+
|
|
7978
|
+
**Exports:** `LyraFileTypeMetadata`, `LyraFileTypeIcon`, `LyraFileTypeCategory`,
|
|
7979
|
+
`getFileTypeMetadata()`, and `registerFileTypeMetadata()` for application-specific mappings.
|
|
7980
|
+
|
|
7981
|
+
```html
|
|
7982
|
+
<lyra-file-icon mime-type="application/pdf" variant="label"></lyra-file-icon>
|
|
7983
|
+
```
|
|
7984
|
+
|
|
7985
|
+
## `lyra-svg-viewer`
|
|
7986
|
+
|
|
7987
|
+
Fetches an SVG document, sanitizes it with the optional `dompurify` peer, and renders it inline.
|
|
7988
|
+
|
|
7989
|
+
**Properties:** `src`, `name`, and `maxHeight` (attribute `max-height`) are strings. `maxHeight` caps
|
|
7990
|
+
the scrollable body.
|
|
7991
|
+
|
|
7992
|
+
**Events:** `lyra-render-error` with `detail.error` when fetching or sanitizing fails.
|
|
7993
|
+
|
|
7994
|
+
**CSS parts:** `base`, `body`, `svg`, `spinner`, and `error`.
|
|
7995
|
+
|
|
7996
|
+
**Optional peer dependency:** `dompurify`.
|
|
7997
|
+
|
|
7998
|
+
## `lyra-html-viewer`
|
|
7999
|
+
|
|
8000
|
+
Fetches an HTML document, sanitizes it with the optional `dompurify` peer, and renders the safe markup
|
|
8001
|
+
inside a bounded, scrollable body.
|
|
8002
|
+
|
|
8003
|
+
**Properties:** `src`, `name`, and `maxHeight` (attribute `max-height`) are strings.
|
|
8004
|
+
|
|
8005
|
+
**Events:** `lyra-render-error` with `detail.error` when fetching or sanitizing fails.
|
|
8006
|
+
|
|
8007
|
+
**CSS parts:** `base`, `body`, `html`, `spinner`, and `error`.
|
|
8008
|
+
|
|
8009
|
+
**Optional peer dependency:** `dompurify`.
|
|
8010
|
+
|
|
8011
|
+
## `lyra-dataset-viewer`
|
|
8012
|
+
|
|
8013
|
+
Fetches tab-, pipe-, or delimiter-separated text and renders an accessible table using the optional
|
|
8014
|
+
`papaparse` peer. The document registry matches `.tsv`, `.psv`, and `.dat` filenames.
|
|
8015
|
+
|
|
8016
|
+
**Properties:** `src`, `name`, and `maxHeight` (attribute `max-height`) are strings.
|
|
8017
|
+
|
|
8018
|
+
**Events:** `lyra-render-error` with `detail.error` when fetching or parsing fails.
|
|
8019
|
+
|
|
8020
|
+
**CSS parts:** `base`, `body`, `table`, `spinner`, and `error`.
|
|
8021
|
+
|
|
8022
|
+
**Exports:** `DatasetTable` is `{ fields: string[]; rows: Record<string, string>[] }`.
|
|
8023
|
+
|
|
8024
|
+
**Optional peer dependency:** `papaparse`.
|
|
8025
|
+
|
|
8026
|
+
## `lyra-contact-viewer`
|
|
8027
|
+
|
|
8028
|
+
Fetches a vCard document and renders one accessible card per contact. The document registry matches
|
|
8029
|
+
`.vcf` filenames and common `FN`, `N`, `ORG`, `TEL`, `EMAIL`, and `ADR` fields are displayed.
|
|
8030
|
+
|
|
8031
|
+
**Properties:** `src`, `name`, and `maxHeight` (attribute `max-height`) are strings.
|
|
8032
|
+
|
|
8033
|
+
**Events:** `lyra-render-error` with `detail.error` when fetching or parsing fails.
|
|
8034
|
+
|
|
8035
|
+
**CSS parts:** `base`, `body`, `contact`, `contact-name`, `contact-org`, `contact-tel`,
|
|
8036
|
+
`contact-email`, `contact-adr`, `spinner`, and `error`.
|
|
8037
|
+
|
|
8038
|
+
**Exports:** `parseVCards()` and the `VCardName`, `VCardTypedValue`, `VCardAddress`, and `VCardContact`
|
|
8039
|
+
types.
|
|
8040
|
+
|
|
8041
|
+
## `lyra-pdf-viewer`
|
|
8042
|
+
|
|
8043
|
+
Fetches a PDF and renders its pages with the optional `pdfjs-dist` peer. Pages are virtualized through
|
|
8044
|
+
`lyra-virtual-list`, and PDF.js's selectable text layer is positioned over each rendered canvas.
|
|
8045
|
+
|
|
8046
|
+
**Properties:** `src` and `name` are strings. `page: number = 1` is the one-based current page and
|
|
8047
|
+
`zoom: number = 1` is clamped to `0.25`–`4`.
|
|
8048
|
+
|
|
8049
|
+
**Events:** `lyra-render-error` with `detail.error` when fetching, parsing, or rendering fails;
|
|
8050
|
+
`lyra-page-change` with `{ page, pageCount }`; and `lyra-zoom-change` with `{ zoom }`.
|
|
8051
|
+
|
|
8052
|
+
**Methods:** `nextPage()`, `previousPage()`, `zoomIn()`, and `zoomOut()` update the corresponding
|
|
8053
|
+
controlled state within its supported range.
|
|
8054
|
+
|
|
8055
|
+
**CSS parts:** `base`, `toolbar`, `page-indicator`, `zoom-indicator`, `pages`, `page`, `text-layer`,
|
|
8056
|
+
`spinner`, and `error`.
|
|
8057
|
+
|
|
8058
|
+
**Optional peer dependency:** install `pdfjs-dist` with `pnpm add pdfjs-dist`. The component registers
|
|
8059
|
+
a lazy `application/pdf` renderer with `<lyra-document-viewer>` so the PDF library is loaded only when
|
|
8060
|
+
a PDF is opened.
|
|
8061
|
+
|
|
8062
|
+
## `lyra-spreadsheet-viewer`
|
|
8063
|
+
|
|
8064
|
+
Fetches and renders `.xlsx` and `.xls` workbooks with the optional `xlsx` (SheetJS) peer. Multiple
|
|
8065
|
+
worksheets render through a `<lyra-tabs>` switcher, and body rows use `<lyra-virtual-list>`.
|
|
8066
|
+
|
|
8067
|
+
**Properties:** `src` and `name` are strings.
|
|
8068
|
+
|
|
8069
|
+
**Events:** `lyra-render-error` with `detail.error` when fetching or parsing fails.
|
|
8070
|
+
|
|
8071
|
+
**CSS parts:** `base`, `tabs`, `sheet`, `header-row`, `data-row`, `cell`, `rows`, `spinner`, and
|
|
8072
|
+
`error`.
|
|
8073
|
+
|
|
8074
|
+
**Optional peer dependency:** install `xlsx` with `pnpm add xlsx`. The registry matches the official
|
|
8075
|
+
`.xlsx` and `.xls` MIME types and filename extensions.
|
|
8076
|
+
|
|
8077
|
+
## `lyra-csv-viewer`
|
|
8078
|
+
|
|
8079
|
+
Fetches CSV text, parses quoted fields with the optional `papaparse` peer, and virtualizes body rows.
|
|
8080
|
+
|
|
8081
|
+
**Properties:** `src` and `name` are strings. `hasHeaderRow: boolean = true` (attribute
|
|
8082
|
+
`has-header-row`) controls whether the first parsed row is rendered as a sticky header.
|
|
8083
|
+
|
|
8084
|
+
**Events:** `lyra-render-error` with `detail.error` when fetching or parsing reports an error.
|
|
8085
|
+
|
|
8086
|
+
**CSS parts:** `base`, `sheet`, `header-row`, `data-row`, `cell`, `rows`, `spinner`, and `error`.
|
|
8087
|
+
|
|
8088
|
+
**Optional peer dependency:** install `papaparse` with `pnpm add papaparse`. The registry matches
|
|
8089
|
+
`text/csv` and `.csv` filenames.
|
|
8090
|
+
|
|
8091
|
+
---
|
|
8092
|
+
|
|
7727
8093
|
## `lyra-media-card`
|
|
7728
8094
|
|
|
7729
8095
|
A lightweight inline preview for one already-sent, already-available attachment inside a rendered
|
|
@@ -7843,6 +8209,8 @@ capability as a row.
|
|
|
7843
8209
|
`'Attach files'`); only affects the single-capability button (`[part='trigger']`) — the
|
|
7844
8210
|
multi-capability menu's own trigger keeps its fixed `'Add attachment'` label regardless. Unset
|
|
7845
8211
|
(the default) keeps the built-in English default.
|
|
8212
|
+
- `triggerTitle?: string` (attribute `trigger-title`) — forwards a sighted-user hover tooltip to
|
|
8213
|
+
both the single-capability and multi-capability trigger buttons
|
|
7846
8214
|
|
|
7847
8215
|
**Events:** `lyra-pick` (`detail: { capability: 'files' | 'image'; files: FileList }`) — fired once a
|
|
7848
8216
|
file-backed capability's hidden input produces a real selection. The `FileList` is an independent
|
|
@@ -8228,9 +8596,11 @@ markup.
|
|
|
8228
8596
|
|
|
8229
8597
|
## `lyra-callout`
|
|
8230
8598
|
|
|
8231
|
-
An inline status, warning, or error surface.
|
|
8599
|
+
An inline status, warning, or error surface. Set `inline` for lightweight reactive form or mutation
|
|
8600
|
+
errors without panel chrome.
|
|
8232
8601
|
|
|
8233
|
-
**Properties:** `variant`, `heading`, `closable`, `open`, and `accessibleLabel`
|
|
8602
|
+
**Properties:** `variant`, `heading`, `closable`, `inline`, `open`, and `accessibleLabel`
|
|
8603
|
+
(`accessible-label`).
|
|
8234
8604
|
|
|
8235
8605
|
**Events:** cancelable `lyra-close`; the callout hides after the event unless a listener calls
|
|
8236
8606
|
`preventDefault()`.
|
|
@@ -8297,6 +8667,30 @@ properties `name`, `value`, `disabled`, and `required`, plus `label`, `hint`, an
|
|
|
8297
8667
|
|
|
8298
8668
|
These apply across the whole library rather than to any one component:
|
|
8299
8669
|
|
|
8670
|
+
- **Independence and migration.** Lyra has no runtime, theme, or design-token dependency on
|
|
8671
|
+
Shoelace or Web Awesome. The documented `wa-*` comparisons are migration references only; Lyra's
|
|
8672
|
+
own `lyra-*` tokens, events, localization runtime, and implementation are the source of truth.
|
|
8673
|
+
For a staged Web Awesome migration, map existing external theme-input values to `--lyra-theme-*` explicitly
|
|
8674
|
+
in application CSS instead of relying on an implicit compatibility layer.
|
|
8675
|
+
|
|
8676
|
+
- **Internationalization.** Built-in UI copy, accessible names, descriptions, validation messages,
|
|
8677
|
+
status announcements, and empty/loading states resolve through `localize()` and the locale runtime.
|
|
8678
|
+
Register an application catalog with `registerLyraLocale()` or override one instance with
|
|
8679
|
+
`.strings`; locale fallback is exact locale, base language, then English. Date, number, byte,
|
|
8680
|
+
relative-time, and calendar output uses `Intl`. Consumer data and slotted content are never
|
|
8681
|
+
translated automatically.
|
|
8682
|
+
|
|
8683
|
+
- **RTL and direction.** Direction is inherited from `dir`/`lang`; components do not force their own
|
|
8684
|
+
direction. CSS logical properties mirror layout, while directional keyboard and pointer math
|
|
8685
|
+
consults the effective direction. Test both LTR and RTL for any component with horizontal order,
|
|
8686
|
+
start/end placement, drag deltas, or previous/next navigation.
|
|
8687
|
+
|
|
8688
|
+
- **Accessibility and responsive behavior.** Semantic roles live on the shadow-DOM element that owns
|
|
8689
|
+
them, with explicit false states for toggle/selection/expansion ARIA attributes and deliberate
|
|
8690
|
+
host-name forwarding. Form-associated controls preserve `ElementInternals`, reset, validity,
|
|
8691
|
+
focus, and native editing behavior. Reusable layouts respond to their allocated container, and
|
|
8692
|
+
decorative/infinite motion simplifies under `prefers-reduced-motion: reduce`.
|
|
8693
|
+
|
|
8300
8694
|
- **Packaging.** `custom-elements.json` is now in `package.json`'s `files` allowlist and
|
|
8301
8695
|
regenerated by a `prepack` script (`pnpm run manifest`) before publish, so a manifest-driven IDE/
|
|
8302
8696
|
tooling integration (e.g. custom-elements-manifest-based autocomplete) does see an up-to-date copy
|