@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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"email-viewer.styles.d.ts","sourceRoot":"","sources":["../../../src/components/email-viewer/email-viewer.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM,yBAgClB,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { css } from 'lit';
|
|
2
|
+
export const styles = css `
|
|
3
|
+
:host { display: block; --lyra-email-viewer-max-height: none; }
|
|
4
|
+
[part='base'] {
|
|
5
|
+
display: flex;
|
|
6
|
+
flex-direction: column;
|
|
7
|
+
box-sizing: border-box;
|
|
8
|
+
border: var(--lyra-border-width-thin) solid var(--lyra-color-border);
|
|
9
|
+
border-radius: var(--lyra-radius);
|
|
10
|
+
background: var(--lyra-color-surface);
|
|
11
|
+
overflow: hidden;
|
|
12
|
+
}
|
|
13
|
+
[part='headers'] {
|
|
14
|
+
display: grid;
|
|
15
|
+
grid-template-columns: auto minmax(0, 1fr);
|
|
16
|
+
gap: var(--lyra-space-2xs) var(--lyra-space-s);
|
|
17
|
+
padding: var(--lyra-space-m);
|
|
18
|
+
border-block-end: var(--lyra-border-width-thin) solid var(--lyra-color-border);
|
|
19
|
+
font-size: var(--lyra-font-size-md-sm);
|
|
20
|
+
}
|
|
21
|
+
[part$='-label'] { color: var(--lyra-color-text-quiet); font-weight: var(--lyra-font-weight-semibold); text-align: end; }
|
|
22
|
+
[part='subject'] { font-weight: var(--lyra-font-weight-semibold); overflow-wrap: anywhere; }
|
|
23
|
+
[part='body'] { box-sizing: border-box; overflow: auto; max-block-size: var(--lyra-email-viewer-max-height); padding: var(--lyra-space-m); }
|
|
24
|
+
[part='body-html'], [part='body-text'] { color: var(--lyra-color-text); font-size: var(--lyra-font-size-md-sm); line-height: var(--lyra-line-height-normal); }
|
|
25
|
+
[part='body-html'] { overflow-wrap: anywhere; }
|
|
26
|
+
[part='body-text'] { margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; }
|
|
27
|
+
[part='attachments'] { padding: var(--lyra-space-m); border-block-start: var(--lyra-border-width-thin) solid var(--lyra-color-border); }
|
|
28
|
+
[part='attachments-label'] { display: block; margin-block-end: var(--lyra-space-xs); color: var(--lyra-color-text-quiet); font-weight: var(--lyra-font-weight-semibold); font-size: var(--lyra-font-size-xs); text-transform: uppercase; }
|
|
29
|
+
[part='attachment-list'] { display: flex; flex-direction: column; gap: var(--lyra-space-2xs); margin: 0; padding: 0; list-style: none; }
|
|
30
|
+
[part='attachment-item'] { display: flex; justify-content: space-between; gap: var(--lyra-space-s); padding: var(--lyra-space-xs) var(--lyra-space-s); border-radius: var(--lyra-radius); background: var(--lyra-color-brand-quiet); font-size: var(--lyra-font-size-sm); }
|
|
31
|
+
.empty-note { margin: 0; padding: var(--lyra-space-m); color: var(--lyra-color-text-quiet); font-size: var(--lyra-font-size-md-sm); }
|
|
32
|
+
[part='error'] { margin: 0; padding: var(--lyra-space-l); color: var(--lyra-color-danger); font-size: var(--lyra-font-size-md-sm); text-align: center; }
|
|
33
|
+
[part='spinner'] { display: flex; justify-content: center; padding: var(--lyra-space-l); }
|
|
34
|
+
`;
|
|
35
|
+
//# sourceMappingURL=email-viewer.styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"email-viewer.styles.js","sourceRoot":"","sources":["../../../src/components/email-viewer/email-viewer.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgCxB,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { type TemplateResult } from 'lit';
|
|
2
|
+
import { LyraElement } from '../../internal/lyra-element.js';
|
|
3
|
+
export type LyraFileIconVariant = 'icon' | 'label';
|
|
4
|
+
/**
|
|
5
|
+
* Displays a localized, tokenized file-type badge from a MIME type.
|
|
6
|
+
*
|
|
7
|
+
* @customElement lyra-file-icon
|
|
8
|
+
* @csspart base - The outer presentation wrapper.
|
|
9
|
+
* @csspart icon - The format badge.
|
|
10
|
+
* @csspart label - The localized format label in `variant="label"` mode.
|
|
11
|
+
*/
|
|
12
|
+
export declare class LyraFileIcon extends LyraElement {
|
|
13
|
+
static styles: import("lit").CSSResultGroup[];
|
|
14
|
+
/** MIME type used to resolve metadata. */
|
|
15
|
+
mimeType: string;
|
|
16
|
+
/** Optional filename used for fallback detection with an empty or generic MIME type. */
|
|
17
|
+
name: string;
|
|
18
|
+
/** Whether the badge is decorative and hidden from assistive technology. */
|
|
19
|
+
decorative: boolean;
|
|
20
|
+
/** Shows only the icon or the icon together with its localized label. */
|
|
21
|
+
variant: LyraFileIconVariant;
|
|
22
|
+
/** Optional visible/accessibility label override. */
|
|
23
|
+
label: string;
|
|
24
|
+
render(): TemplateResult;
|
|
25
|
+
}
|
|
26
|
+
declare global {
|
|
27
|
+
interface HTMLElementTagNameMap {
|
|
28
|
+
'lyra-file-icon': LyraFileIcon;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=file-icon.class.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-icon.class.d.ts","sourceRoot":"","sources":["../../../src/components/file-icon/file-icon.class.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAEzD,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAmB7D,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,OAAO,CAAC;AAEnD;;;;;;;GAOG;AACH,qBAAa,YAAa,SAAQ,WAAW;IAC3C,MAAM,CAAC,MAAM,iCAAgC;IAE7C,0CAA0C;IACJ,QAAQ,SAAM;IACpD,wFAAwF;IAC5E,IAAI,SAAM;IACtB,4EAA4E;IAChC,UAAU,UAAS;IAC/D,yEAAyE;IAC5C,OAAO,EAAE,mBAAmB,CAAU;IACnE,qDAAqD;IACzC,KAAK,SAAM;IAEvB,MAAM,IAAI,cAAc,CASvB;CACF;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAAG,gBAAgB,EAAE,YAAY,CAAC;KAAE;CACpE"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { html, nothing } from 'lit';
|
|
8
|
+
import { property } from 'lit/decorators.js';
|
|
9
|
+
import { LyraElement } from '../../internal/lyra-element.js';
|
|
10
|
+
import { getFileTypeMetadata } from './file-type-metadata.js';
|
|
11
|
+
import { styles } from './file-icon.styles.js';
|
|
12
|
+
const ICON_LABELS = {
|
|
13
|
+
file: 'fileTypeFile',
|
|
14
|
+
pdf: 'fileTypePdf',
|
|
15
|
+
word: 'fileTypeWord',
|
|
16
|
+
spreadsheet: 'fileTypeSpreadsheet',
|
|
17
|
+
presentation: 'fileTypePresentation',
|
|
18
|
+
text: 'fileTypeText',
|
|
19
|
+
code: 'fileTypeCode',
|
|
20
|
+
archive: 'fileTypeArchive',
|
|
21
|
+
image: 'fileTypeImage',
|
|
22
|
+
audio: 'fileTypeAudio',
|
|
23
|
+
video: 'fileTypeVideo',
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* Displays a localized, tokenized file-type badge from a MIME type.
|
|
27
|
+
*
|
|
28
|
+
* @customElement lyra-file-icon
|
|
29
|
+
* @csspart base - The outer presentation wrapper.
|
|
30
|
+
* @csspart icon - The format badge.
|
|
31
|
+
* @csspart label - The localized format label in `variant="label"` mode.
|
|
32
|
+
*/
|
|
33
|
+
export class LyraFileIcon extends LyraElement {
|
|
34
|
+
constructor() {
|
|
35
|
+
super(...arguments);
|
|
36
|
+
/** MIME type used to resolve metadata. */
|
|
37
|
+
this.mimeType = '';
|
|
38
|
+
/** Optional filename used for fallback detection with an empty or generic MIME type. */
|
|
39
|
+
this.name = '';
|
|
40
|
+
/** Whether the badge is decorative and hidden from assistive technology. */
|
|
41
|
+
this.decorative = false;
|
|
42
|
+
/** Shows only the icon or the icon together with its localized label. */
|
|
43
|
+
this.variant = 'icon';
|
|
44
|
+
/** Optional visible/accessibility label override. */
|
|
45
|
+
this.label = '';
|
|
46
|
+
}
|
|
47
|
+
static { this.styles = [LyraElement.styles, styles]; }
|
|
48
|
+
render() {
|
|
49
|
+
const metadata = getFileTypeMetadata(this.mimeType, this.name);
|
|
50
|
+
const localizedLabel = this.label || this.localize(ICON_LABELS[metadata.icon]);
|
|
51
|
+
return html `
|
|
52
|
+
<span part="base" role=${this.decorative ? 'presentation' : 'img'} aria-label=${this.decorative ? nothing : localizedLabel}>
|
|
53
|
+
<span part="icon" aria-hidden="true">${this.localize(ICON_LABELS[metadata.icon])}</span>
|
|
54
|
+
${this.variant === 'label' ? html `<span part="label">${localizedLabel}</span>` : nothing}
|
|
55
|
+
</span>
|
|
56
|
+
`;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
__decorate([
|
|
60
|
+
property({ attribute: 'mime-type' })
|
|
61
|
+
], LyraFileIcon.prototype, "mimeType", void 0);
|
|
62
|
+
__decorate([
|
|
63
|
+
property()
|
|
64
|
+
], LyraFileIcon.prototype, "name", void 0);
|
|
65
|
+
__decorate([
|
|
66
|
+
property({ type: Boolean, reflect: true })
|
|
67
|
+
], LyraFileIcon.prototype, "decorative", void 0);
|
|
68
|
+
__decorate([
|
|
69
|
+
property({ reflect: true })
|
|
70
|
+
], LyraFileIcon.prototype, "variant", void 0);
|
|
71
|
+
__decorate([
|
|
72
|
+
property()
|
|
73
|
+
], LyraFileIcon.prototype, "label", void 0);
|
|
74
|
+
//# sourceMappingURL=file-icon.class.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-icon.class.js","sourceRoot":"","sources":["../../../src/components/file-icon/file-icon.class.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAuB,MAAM,KAAK,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAE7D,OAAO,EAAE,mBAAmB,EAAyB,MAAM,yBAAyB,CAAC;AACrF,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE/C,MAAM,WAAW,GAA6C;IAC5D,IAAI,EAAE,cAAc;IACpB,GAAG,EAAE,aAAa;IAClB,IAAI,EAAE,cAAc;IACpB,WAAW,EAAE,qBAAqB;IAClC,YAAY,EAAE,sBAAsB;IACpC,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,cAAc;IACpB,OAAO,EAAE,iBAAiB;IAC1B,KAAK,EAAE,eAAe;IACtB,KAAK,EAAE,eAAe;IACtB,KAAK,EAAE,eAAe;CACvB,CAAC;AAIF;;;;;;;GAOG;AACH,MAAM,OAAO,YAAa,SAAQ,WAAW;IAA7C;;QAGE,0CAA0C;QACJ,aAAQ,GAAG,EAAE,CAAC;QACpD,wFAAwF;QAC5E,SAAI,GAAG,EAAE,CAAC;QACtB,4EAA4E;QAChC,eAAU,GAAG,KAAK,CAAC;QAC/D,yEAAyE;QAC5C,YAAO,GAAwB,MAAM,CAAC;QACnE,qDAAqD;QACzC,UAAK,GAAG,EAAE,CAAC;IAYzB,CAAC;aAvBQ,WAAM,GAAG,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,AAA/B,CAAgC;IAa7C,MAAM;QACJ,MAAM,QAAQ,GAAG,mBAAmB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/D,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/E,OAAO,IAAI,CAAA;+BACgB,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,eAAe,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc;+CACjF,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;UAC9E,IAAI,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAA,sBAAsB,cAAc,SAAS,CAAC,CAAC,CAAC,OAAO;;KAE3F,CAAC;IACJ,CAAC;CACF;AApBuC;IAArC,QAAQ,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC;8CAAe;AAExC;IAAX,QAAQ,EAAE;0CAAW;AAEsB;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;gDAAoB;AAElC;IAA5B,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;6CAAuC;AAEvD;IAAX,QAAQ,EAAE;2CAAY"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-icon.d.ts","sourceRoot":"","sources":["../../../src/components/file-icon/file-icon.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export * from './file-icon.class.js';
|
|
2
|
+
export * from './file-type-metadata.js';
|
|
3
|
+
import { LyraFileIcon } from './file-icon.class.js';
|
|
4
|
+
import { defineElement } from '../../internal/prefix.js';
|
|
5
|
+
defineElement('file-icon', LyraFileIcon);
|
|
6
|
+
//# sourceMappingURL=file-icon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-icon.js","sourceRoot":"","sources":["../../../src/components/file-icon/file-icon.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD,aAAa,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-icon.styles.d.ts","sourceRoot":"","sources":["../../../src/components/file-icon/file-icon.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM,yBAoBlB,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { css } from 'lit';
|
|
2
|
+
export const styles = css `
|
|
3
|
+
:host { display: inline-flex; vertical-align: middle; }
|
|
4
|
+
[part='base'] { display: inline-flex; align-items: center; gap: var(--lyra-space-xs); min-inline-size: 0; }
|
|
5
|
+
[part='icon'] {
|
|
6
|
+
display: inline-flex;
|
|
7
|
+
align-items: center;
|
|
8
|
+
justify-content: center;
|
|
9
|
+
inline-size: var(--lyra-file-icon-size, var(--lyra-size-2rem));
|
|
10
|
+
block-size: var(--lyra-file-icon-size, var(--lyra-size-2rem));
|
|
11
|
+
box-sizing: border-box;
|
|
12
|
+
border: var(--lyra-border-width-thin) solid var(--lyra-color-border);
|
|
13
|
+
border-radius: var(--lyra-radius);
|
|
14
|
+
background: var(--lyra-color-brand-quiet);
|
|
15
|
+
color: var(--lyra-color-brand);
|
|
16
|
+
font-size: var(--lyra-font-size-xs);
|
|
17
|
+
font-weight: var(--lyra-font-weight-bold);
|
|
18
|
+
line-height: var(--lyra-line-height-none);
|
|
19
|
+
text-transform: uppercase;
|
|
20
|
+
}
|
|
21
|
+
[part='label'] { min-inline-size: 0; color: var(--lyra-color-text); }
|
|
22
|
+
`;
|
|
23
|
+
//# sourceMappingURL=file-icon.styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-icon.styles.js","sourceRoot":"","sources":["../../../src/components/file-icon/file-icon.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;CAoBxB,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export type LyraFileTypeIcon = 'file' | 'pdf' | 'word' | 'spreadsheet' | 'presentation' | 'text' | 'code' | 'archive' | 'image' | 'audio' | 'video';
|
|
2
|
+
export type LyraFileTypeCategory = 'document' | 'spreadsheet' | 'presentation' | 'image' | 'audio' | 'video' | 'archive' | 'code' | 'generic';
|
|
3
|
+
export type LyraFileTypeMetadata = {
|
|
4
|
+
label: string;
|
|
5
|
+
description?: string;
|
|
6
|
+
icon: LyraFileTypeIcon;
|
|
7
|
+
category: LyraFileTypeCategory;
|
|
8
|
+
extensions?: readonly string[];
|
|
9
|
+
};
|
|
10
|
+
/** Adds or replaces a custom MIME mapping used by future metadata lookups. */
|
|
11
|
+
export declare function registerFileTypeMetadata(mimeTypes: string | readonly string[], metadata: LyraFileTypeMetadata): void;
|
|
12
|
+
/** Returns presentation metadata for a MIME type, with a safe generic fallback. */
|
|
13
|
+
export declare function getFileTypeMetadata(mimeType: string, fileName?: string): LyraFileTypeMetadata;
|
|
14
|
+
//# sourceMappingURL=file-type-metadata.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-type-metadata.d.ts","sourceRoot":"","sources":["../../../src/components/file-icon/file-type-metadata.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GACxB,MAAM,GACN,KAAK,GACL,MAAM,GACN,aAAa,GACb,cAAc,GACd,MAAM,GACN,MAAM,GACN,SAAS,GACT,OAAO,GACP,OAAO,GACP,OAAO,CAAC;AAEZ,MAAM,MAAM,oBAAoB,GAC5B,UAAU,GACV,aAAa,GACb,cAAc,GACd,OAAO,GACP,OAAO,GACP,OAAO,GACP,SAAS,GACT,MAAM,GACN,SAAS,CAAC;AAEd,MAAM,MAAM,oBAAoB,GAAG;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,gBAAgB,CAAC;IACvB,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAChC,CAAC;AA2DF,8EAA8E;AAC9E,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,EACrC,QAAQ,EAAE,oBAAoB,GAC7B,IAAI,CAaN;AAED,mFAAmF;AACnF,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,SAAK,GAAG,oBAAoB,CAUzF"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
const generic = { label: 'File', icon: 'file', category: 'generic' };
|
|
2
|
+
const catalog = {
|
|
3
|
+
'application/pdf': { label: 'PDF', icon: 'pdf', category: 'document', extensions: ['.pdf'] },
|
|
4
|
+
'application/vnd.openxmlformats-officedocument.wordprocessingml.document': { label: 'Word document', icon: 'word', category: 'document', extensions: ['.docx'] },
|
|
5
|
+
'application/msword': { label: 'Word document', icon: 'word', category: 'document', extensions: ['.doc'] },
|
|
6
|
+
'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet': { label: 'Excel spreadsheet', icon: 'spreadsheet', category: 'spreadsheet', extensions: ['.xlsx'] },
|
|
7
|
+
'application/vnd.ms-excel': { label: 'Excel spreadsheet', icon: 'spreadsheet', category: 'spreadsheet', extensions: ['.xls'] },
|
|
8
|
+
'application/vnd.openxmlformats-officedocument.presentationml.presentation': { label: 'PowerPoint presentation', icon: 'presentation', category: 'presentation', extensions: ['.pptx'] },
|
|
9
|
+
'application/vnd.ms-powerpoint': { label: 'PowerPoint presentation', icon: 'presentation', category: 'presentation', extensions: ['.ppt'] },
|
|
10
|
+
'application/vnd.oasis.opendocument.text': { label: 'OpenDocument text', icon: 'word', category: 'document', extensions: ['.odt'] },
|
|
11
|
+
'application/vnd.oasis.opendocument.spreadsheet': { label: 'OpenDocument spreadsheet', icon: 'spreadsheet', category: 'spreadsheet', extensions: ['.ods'] },
|
|
12
|
+
'application/vnd.oasis.opendocument.presentation': { label: 'OpenDocument presentation', icon: 'presentation', category: 'presentation', extensions: ['.odp'] },
|
|
13
|
+
'application/rtf': { label: 'Rich text document', icon: 'word', category: 'document', extensions: ['.rtf'] },
|
|
14
|
+
'application/epub+zip': { label: 'EPUB ebook', icon: 'word', category: 'document', extensions: ['.epub'] },
|
|
15
|
+
'application/x-mobipocket-ebook': { label: 'MOBI ebook', icon: 'word', category: 'document', extensions: ['.mobi'] },
|
|
16
|
+
'text/plain': { label: 'Plain text', icon: 'text', category: 'document', extensions: ['.txt'] },
|
|
17
|
+
'text/csv': { label: 'CSV spreadsheet', icon: 'spreadsheet', category: 'spreadsheet', extensions: ['.csv'] },
|
|
18
|
+
'text/markdown': { label: 'Markdown', icon: 'code', category: 'code', extensions: ['.md', '.markdown'] },
|
|
19
|
+
'text/html': { label: 'HTML document', icon: 'code', category: 'code', extensions: ['.html', '.htm'] },
|
|
20
|
+
'text/xml': { label: 'XML document', icon: 'code', category: 'code', extensions: ['.xml'] },
|
|
21
|
+
'application/xml': { label: 'XML document', icon: 'code', category: 'code', extensions: ['.xml'] },
|
|
22
|
+
'application/json': { label: 'JSON data', icon: 'code', category: 'code', extensions: ['.json'] },
|
|
23
|
+
'application/yaml': { label: 'YAML data', icon: 'code', category: 'code', extensions: ['.yaml', '.yml'] },
|
|
24
|
+
'text/yaml': { label: 'YAML data', icon: 'code', category: 'code', extensions: ['.yaml', '.yml'] },
|
|
25
|
+
'application/zip': { label: 'ZIP archive', icon: 'archive', category: 'archive', extensions: ['.zip'] },
|
|
26
|
+
'application/x-zip-compressed': { label: 'ZIP archive', icon: 'archive', category: 'archive', extensions: ['.zip'] },
|
|
27
|
+
'application/gzip': { label: 'GZip archive', icon: 'archive', category: 'archive', extensions: ['.gz', '.gzip'] },
|
|
28
|
+
'application/x-gzip': { label: 'GZip archive', icon: 'archive', category: 'archive', extensions: ['.gz', '.gzip'] },
|
|
29
|
+
'application/x-tar': { label: 'TAR archive', icon: 'archive', category: 'archive', extensions: ['.tar'] },
|
|
30
|
+
'application/x-7z-compressed': { label: '7-Zip archive', icon: 'archive', category: 'archive', extensions: ['.7z'] },
|
|
31
|
+
'application/vnd.rar': { label: 'RAR archive', icon: 'archive', category: 'archive', extensions: ['.rar'] },
|
|
32
|
+
'image/jpeg': { label: 'JPEG image', icon: 'image', category: 'image', extensions: ['.jpg', '.jpeg'] },
|
|
33
|
+
'image/png': { label: 'PNG image', icon: 'image', category: 'image', extensions: ['.png'] },
|
|
34
|
+
'image/gif': { label: 'GIF image', icon: 'image', category: 'image', extensions: ['.gif'] },
|
|
35
|
+
'image/webp': { label: 'WebP image', icon: 'image', category: 'image', extensions: ['.webp'] },
|
|
36
|
+
'image/svg+xml': { label: 'SVG image', icon: 'image', category: 'image', extensions: ['.svg'] },
|
|
37
|
+
'image/tiff': { label: 'TIFF image', icon: 'image', category: 'image', extensions: ['.tif', '.tiff'] },
|
|
38
|
+
'image/bmp': { label: 'BMP image', icon: 'image', category: 'image', extensions: ['.bmp'] },
|
|
39
|
+
'image/heic': { label: 'HEIC image', icon: 'image', category: 'image', extensions: ['.heic'] },
|
|
40
|
+
'audio/mpeg': { label: 'MPEG audio', icon: 'audio', category: 'audio', extensions: ['.mp3', '.mpeg'] },
|
|
41
|
+
'audio/mp3': { label: 'MP3 audio', icon: 'audio', category: 'audio', extensions: ['.mp3'] },
|
|
42
|
+
'audio/wav': { label: 'WAV audio', icon: 'audio', category: 'audio', extensions: ['.wav'] },
|
|
43
|
+
'audio/x-wav': { label: 'WAV audio', icon: 'audio', category: 'audio', extensions: ['.wav'] },
|
|
44
|
+
'video/mp4': { label: 'MP4 video', icon: 'video', category: 'video', extensions: ['.mp4'] },
|
|
45
|
+
'video/webm': { label: 'WebM video', icon: 'video', category: 'video', extensions: ['.webm'] },
|
|
46
|
+
};
|
|
47
|
+
const extensionCatalog = new Map();
|
|
48
|
+
for (const metadata of Object.values(catalog)) {
|
|
49
|
+
for (const extension of metadata.extensions ?? [])
|
|
50
|
+
extensionCatalog.set(extension, metadata);
|
|
51
|
+
}
|
|
52
|
+
function normalizeMimeType(value) {
|
|
53
|
+
return value.trim().toLowerCase().split(';', 1)[0];
|
|
54
|
+
}
|
|
55
|
+
/** Adds or replaces a custom MIME mapping used by future metadata lookups. */
|
|
56
|
+
export function registerFileTypeMetadata(mimeTypes, metadata) {
|
|
57
|
+
for (const mimeType of typeof mimeTypes === 'string' ? [mimeTypes] : mimeTypes) {
|
|
58
|
+
catalog[normalizeMimeType(mimeType)] = metadata;
|
|
59
|
+
}
|
|
60
|
+
for (const extension of metadata.extensions ?? []) {
|
|
61
|
+
const normalizedExtension = extension.trim().toLowerCase();
|
|
62
|
+
if (normalizedExtension) {
|
|
63
|
+
extensionCatalog.set(normalizedExtension.startsWith('.') ? normalizedExtension : `.${normalizedExtension}`, metadata);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
/** Returns presentation metadata for a MIME type, with a safe generic fallback. */
|
|
68
|
+
export function getFileTypeMetadata(mimeType, fileName = '') {
|
|
69
|
+
const normalized = normalizeMimeType(mimeType);
|
|
70
|
+
const explicit = normalized && normalized !== 'application/octet-stream' ? catalog[normalized] : undefined;
|
|
71
|
+
if (explicit)
|
|
72
|
+
return { ...explicit };
|
|
73
|
+
if (!normalized || normalized === 'application/octet-stream') {
|
|
74
|
+
const match = /(?:^|\.)((?:[a-z0-9]+))$/i.exec(fileName.trim().toLowerCase());
|
|
75
|
+
const byExtension = match ? extensionCatalog.get(`.${match[1]}`) : undefined;
|
|
76
|
+
if (byExtension)
|
|
77
|
+
return { ...byExtension };
|
|
78
|
+
}
|
|
79
|
+
return { ...generic };
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=file-type-metadata.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-type-metadata.js","sourceRoot":"","sources":["../../../src/components/file-icon/file-type-metadata.ts"],"names":[],"mappings":"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"}
|
|
@@ -121,6 +121,11 @@ export interface LyraHeatmapEventMap {
|
|
|
121
121
|
* `lyra-cell-click`. `annotations` additionally strokes a ring around
|
|
122
122
|
* specific cells (e.g. to call out an anomaly), each one optionally
|
|
123
123
|
* surfaced in the legend too via `[part="legend-annotation"]`.
|
|
124
|
+
* Set `accessibleCells` when each cell needs a persistent DOM control for
|
|
125
|
+
* assistive technology. The opt-in overlay uses native buttons with a
|
|
126
|
+
* roving tabindex, localized `aria-label`, and explicit `aria-pressed` state
|
|
127
|
+
* derived from the controlled `selectedCell` property; the canvas remains the
|
|
128
|
+
* visual rendering surface underneath.
|
|
124
129
|
*
|
|
125
130
|
* `columnX` (calendar mode only) overrides the x-origin computed for each
|
|
126
131
|
* week column — drawing, hit-testing, the focus ring, and month-label
|
|
@@ -151,6 +156,8 @@ export interface LyraHeatmapEventMap {
|
|
|
151
156
|
* `cellColor` overrides a cell's ramp-computed color entirely for an exact value.
|
|
152
157
|
* @csspart base - The heatmap wrapper.
|
|
153
158
|
* @csspart canvas - The heatmap canvas.
|
|
159
|
+
* @csspart cells - The opt-in per-cell accessibility overlay.
|
|
160
|
+
* @csspart cell - An opt-in native button for one matrix or calendar cell.
|
|
154
161
|
* @csspart tooltip - The hover tooltip.
|
|
155
162
|
* @csspart live-region - The visually hidden keyboard announcement region.
|
|
156
163
|
* @csspart legend - The color legend.
|
|
@@ -222,6 +229,15 @@ export declare class LyraHeatmap extends LyraElement<LyraHeatmapEventMap> {
|
|
|
222
229
|
* reproducing today's exact output.
|
|
223
230
|
*/
|
|
224
231
|
selectedCell: HeatmapSelectedCell | null;
|
|
232
|
+
/**
|
|
233
|
+
* Renders an opt-in DOM overlay of native buttons over the canvas. Each
|
|
234
|
+
* button has a localized accessible name, explicit `aria-pressed="true"` or
|
|
235
|
+
* `"false"` from `selectedCell`, and participates in a roving tabindex so a
|
|
236
|
+
* dense calendar does not create hundreds of tab stops. The selection is
|
|
237
|
+
* controlled: clicking a cell still emits `lyra-cell-click`, and the
|
|
238
|
+
* consumer updates `selectedCell` when it wants `aria-pressed` to change.
|
|
239
|
+
*/
|
|
240
|
+
accessibleCells: boolean;
|
|
225
241
|
/** Formats the per-cell tooltip and keyboard live-region text — receives the cell position
|
|
226
242
|
* (`MatrixCellPos` in matrix mode, `CalendarCellPos` in calendar mode) and its value. Falls back to
|
|
227
243
|
* the built-in English "Row X, Col Y: value" / "Mon DD: value" template when unset. */
|
|
@@ -546,6 +562,17 @@ export declare class LyraHeatmap extends LyraElement<LyraHeatmapEventMap> {
|
|
|
546
562
|
* spec, leaving whatever the previous cell painted. Falls back to
|
|
547
563
|
* noDataFill() for a genuinely invalid color. */
|
|
548
564
|
private resolveCanvasColor;
|
|
565
|
+
/** Positions represented by the optional DOM accessibility overlay. The
|
|
566
|
+
* canvas paints empty calendar grid positions too, so those positions get a
|
|
567
|
+
* real date and a no-data announcement just like pointer/keyboard hit tests. */
|
|
568
|
+
private accessibleCellPositions;
|
|
569
|
+
private accessibleCellKey;
|
|
570
|
+
private accessibleCellAtKey;
|
|
571
|
+
private focusAccessibleCell;
|
|
572
|
+
private onAccessibleCellFocus;
|
|
573
|
+
private onAccessibleCellClick;
|
|
574
|
+
private onAccessibleCellKeyDown;
|
|
575
|
+
private renderAccessibleCells;
|
|
549
576
|
render(): TemplateResult;
|
|
550
577
|
}
|
|
551
578
|
declare global {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"heatmap.class.d.ts","sourceRoot":"","sources":["../../../src/components/heatmap/heatmap.class.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAGrE,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAI7D,OAAO,EAAsE,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAoB1H;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,MAAM,CAAC;AASpC,oCAAoC;AACpC,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACb;AACD;2DAC2D;AAC3D,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAGD;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAChC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;8DAE8D;AAC9D,MAAM,WAAW,mBAAmB;IAClC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAKD;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAU7E;AAsCD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAKhE;AAWD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAkB/F;AAaD,0FAA0F;AAC1F,wBAAgB,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAE9E;AAED,MAAM,MAAM,0BAA0B,GAClC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC/B;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEhD,MAAM,WAAW,mBAAmB;IAClC,iBAAiB,EAAE,WAAW,CAAC,0BAA0B,CAAC,CAAC;CAC5D;AACD
|
|
1
|
+
{"version":3,"file":"heatmap.class.d.ts","sourceRoot":"","sources":["../../../src/components/heatmap/heatmap.class.ts"],"names":[],"mappings":"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"}
|
|
@@ -201,6 +201,11 @@ export function mixColor(fromColor, toColor, t) {
|
|
|
201
201
|
* `lyra-cell-click`. `annotations` additionally strokes a ring around
|
|
202
202
|
* specific cells (e.g. to call out an anomaly), each one optionally
|
|
203
203
|
* surfaced in the legend too via `[part="legend-annotation"]`.
|
|
204
|
+
* Set `accessibleCells` when each cell needs a persistent DOM control for
|
|
205
|
+
* assistive technology. The opt-in overlay uses native buttons with a
|
|
206
|
+
* roving tabindex, localized `aria-label`, and explicit `aria-pressed` state
|
|
207
|
+
* derived from the controlled `selectedCell` property; the canvas remains the
|
|
208
|
+
* visual rendering surface underneath.
|
|
204
209
|
*
|
|
205
210
|
* `columnX` (calendar mode only) overrides the x-origin computed for each
|
|
206
211
|
* week column — drawing, hit-testing, the focus ring, and month-label
|
|
@@ -231,6 +236,8 @@ export function mixColor(fromColor, toColor, t) {
|
|
|
231
236
|
* `cellColor` overrides a cell's ramp-computed color entirely for an exact value.
|
|
232
237
|
* @csspart base - The heatmap wrapper.
|
|
233
238
|
* @csspart canvas - The heatmap canvas.
|
|
239
|
+
* @csspart cells - The opt-in per-cell accessibility overlay.
|
|
240
|
+
* @csspart cell - An opt-in native button for one matrix or calendar cell.
|
|
234
241
|
* @csspart tooltip - The hover tooltip.
|
|
235
242
|
* @csspart live-region - The visually hidden keyboard announcement region.
|
|
236
243
|
* @csspart legend - The color legend.
|
|
@@ -289,6 +296,15 @@ export class LyraHeatmap extends LyraElement {
|
|
|
289
296
|
* reproducing today's exact output.
|
|
290
297
|
*/
|
|
291
298
|
this.selectedCell = null;
|
|
299
|
+
/**
|
|
300
|
+
* Renders an opt-in DOM overlay of native buttons over the canvas. Each
|
|
301
|
+
* button has a localized accessible name, explicit `aria-pressed="true"` or
|
|
302
|
+
* `"false"` from `selectedCell`, and participates in a roving tabindex so a
|
|
303
|
+
* dense calendar does not create hundreds of tab stops. The selection is
|
|
304
|
+
* controlled: clicking a cell still emits `lyra-cell-click`, and the
|
|
305
|
+
* consumer updates `selectedCell` when it wants `aria-pressed` to change.
|
|
306
|
+
*/
|
|
307
|
+
this.accessibleCells = false;
|
|
292
308
|
this.themeRefreshQueued = false;
|
|
293
309
|
/** The current value range, refreshed once per update cycle by `willUpdate()`. See `computeValueRange()`. */
|
|
294
310
|
this.cachedValueRange = null;
|
|
@@ -382,6 +398,35 @@ export class LyraHeatmap extends LyraElement {
|
|
|
382
398
|
* the very next full redraw, while repeated identical cellColor() outputs
|
|
383
399
|
* within the same pass resolve only once. */
|
|
384
400
|
this.canvasColorCache = new Map();
|
|
401
|
+
this.onAccessibleCellFocus = (e) => {
|
|
402
|
+
const key = e.currentTarget.dataset.cellKey;
|
|
403
|
+
const pos = key ? this.accessibleCellAtKey(key) : null;
|
|
404
|
+
if (!pos)
|
|
405
|
+
return;
|
|
406
|
+
this.focusedCell = pos;
|
|
407
|
+
this.announce(pos);
|
|
408
|
+
};
|
|
409
|
+
this.onAccessibleCellClick = (e) => {
|
|
410
|
+
const key = e.currentTarget.dataset.cellKey;
|
|
411
|
+
const pos = key ? this.accessibleCellAtKey(key) : null;
|
|
412
|
+
if (!pos)
|
|
413
|
+
return;
|
|
414
|
+
this.focusedCell = pos;
|
|
415
|
+
this.announce(pos);
|
|
416
|
+
this.emitCellClick(pos);
|
|
417
|
+
};
|
|
418
|
+
this.onAccessibleCellKeyDown = (e) => {
|
|
419
|
+
if (!ARROW_KEYS.has(e.key))
|
|
420
|
+
return;
|
|
421
|
+
const key = e.currentTarget.dataset.cellKey;
|
|
422
|
+
const pos = key ? this.accessibleCellAtKey(key) : null;
|
|
423
|
+
if (!pos)
|
|
424
|
+
return;
|
|
425
|
+
e.preventDefault();
|
|
426
|
+
this.focusedCell = pos;
|
|
427
|
+
this.onKeyDown(e);
|
|
428
|
+
this.focusAccessibleCell(this.focusedCell);
|
|
429
|
+
};
|
|
385
430
|
}
|
|
386
431
|
static { this.styles = [LyraElement.styles, styles, srOnly]; }
|
|
387
432
|
/**
|
|
@@ -1370,6 +1415,80 @@ export class LyraHeatmap extends LyraElement {
|
|
|
1370
1415
|
this.canvasColorCache.set(value, resolved);
|
|
1371
1416
|
return resolved;
|
|
1372
1417
|
}
|
|
1418
|
+
/** Positions represented by the optional DOM accessibility overlay. The
|
|
1419
|
+
* canvas paints empty calendar grid positions too, so those positions get a
|
|
1420
|
+
* real date and a no-data announcement just like pointer/keyboard hit tests. */
|
|
1421
|
+
accessibleCellPositions() {
|
|
1422
|
+
if (this.mode === 'calendar') {
|
|
1423
|
+
const { weekCount } = this.cachedCalendarGrid;
|
|
1424
|
+
const positions = [];
|
|
1425
|
+
for (let week = 0; week < weekCount; week++) {
|
|
1426
|
+
for (let weekday = 0; weekday < 7; weekday++) {
|
|
1427
|
+
const pos = { week, weekday };
|
|
1428
|
+
if (this.isCellInteractive(pos))
|
|
1429
|
+
positions.push(pos);
|
|
1430
|
+
}
|
|
1431
|
+
}
|
|
1432
|
+
return positions;
|
|
1433
|
+
}
|
|
1434
|
+
const positions = [];
|
|
1435
|
+
for (let row = 0; row < this.rowLabels.length; row++) {
|
|
1436
|
+
for (let col = 0; col < this.colLabels.length; col++) {
|
|
1437
|
+
const pos = { row, col };
|
|
1438
|
+
if (this.isCellInteractive(pos))
|
|
1439
|
+
positions.push(pos);
|
|
1440
|
+
}
|
|
1441
|
+
}
|
|
1442
|
+
return positions;
|
|
1443
|
+
}
|
|
1444
|
+
accessibleCellKey(pos) {
|
|
1445
|
+
return 'week' in pos ? `calendar-${pos.week}-${pos.weekday}` : `matrix-${pos.row}-${pos.col}`;
|
|
1446
|
+
}
|
|
1447
|
+
accessibleCellAtKey(key) {
|
|
1448
|
+
return (this.accessibleCellPositions().find((pos) => this.accessibleCellKey(pos) === key) ?? null);
|
|
1449
|
+
}
|
|
1450
|
+
focusAccessibleCell(pos) {
|
|
1451
|
+
if (!pos)
|
|
1452
|
+
return;
|
|
1453
|
+
void this.updateComplete.then(() => {
|
|
1454
|
+
const button = [...(this.shadowRoot?.querySelectorAll('[part="cell"]') ?? [])].find((candidate) => candidate.dataset.cellKey === this.accessibleCellKey(pos));
|
|
1455
|
+
button?.focus();
|
|
1456
|
+
});
|
|
1457
|
+
}
|
|
1458
|
+
renderAccessibleCells() {
|
|
1459
|
+
if (!this.accessibleCells)
|
|
1460
|
+
return html ``;
|
|
1461
|
+
const positions = this.accessibleCellPositions();
|
|
1462
|
+
const tabStop = this.focusedCell ?? positions[0] ?? null;
|
|
1463
|
+
return html `
|
|
1464
|
+
<div part="cells">
|
|
1465
|
+
${positions.map((pos) => {
|
|
1466
|
+
const rect = this.cellRect(pos);
|
|
1467
|
+
const key = this.accessibleCellKey(pos);
|
|
1468
|
+
return html `
|
|
1469
|
+
<button
|
|
1470
|
+
part="cell"
|
|
1471
|
+
class="cell"
|
|
1472
|
+
type="button"
|
|
1473
|
+
data-cell-key=${key}
|
|
1474
|
+
aria-label=${this.resolveCellText(pos)}
|
|
1475
|
+
aria-pressed=${this.isSelectedPos(pos) ? 'true' : 'false'}
|
|
1476
|
+
tabindex=${this.samePos(tabStop, pos) ? '0' : '-1'}
|
|
1477
|
+
style=${styleMap({
|
|
1478
|
+
insetInlineStart: `${rect.x}px`,
|
|
1479
|
+
insetBlockStart: `${rect.y}px`,
|
|
1480
|
+
inlineSize: `${rect.w}px`,
|
|
1481
|
+
blockSize: `${rect.h}px`,
|
|
1482
|
+
})}
|
|
1483
|
+
@focus=${this.onAccessibleCellFocus}
|
|
1484
|
+
@click=${this.onAccessibleCellClick}
|
|
1485
|
+
@keydown=${this.onAccessibleCellKeyDown}
|
|
1486
|
+
></button>
|
|
1487
|
+
`;
|
|
1488
|
+
})}
|
|
1489
|
+
</div>
|
|
1490
|
+
`;
|
|
1491
|
+
}
|
|
1373
1492
|
render() {
|
|
1374
1493
|
const range = this.cachedValueRange;
|
|
1375
1494
|
const labeledAnnotations = this.annotations.filter((a) => a.label);
|
|
@@ -1377,12 +1496,14 @@ export class LyraHeatmap extends LyraElement {
|
|
|
1377
1496
|
<div part="base">
|
|
1378
1497
|
<canvas
|
|
1379
1498
|
part="canvas"
|
|
1380
|
-
tabindex
|
|
1499
|
+
tabindex=${this.accessibleCells ? '-1' : '0'}
|
|
1500
|
+
?aria-hidden=${this.accessibleCells}
|
|
1381
1501
|
@pointermove=${this.onPointerMove}
|
|
1382
1502
|
@pointerleave=${this.onPointerLeave}
|
|
1383
1503
|
@click=${this.onCanvasClick}
|
|
1384
1504
|
@keydown=${this.onKeyDown}
|
|
1385
1505
|
></canvas>
|
|
1506
|
+
${this.renderAccessibleCells()}
|
|
1386
1507
|
<div
|
|
1387
1508
|
part="tooltip"
|
|
1388
1509
|
?hidden=${!this.hoverCell}
|
|
@@ -1441,6 +1562,9 @@ __decorate([
|
|
|
1441
1562
|
__decorate([
|
|
1442
1563
|
property({ attribute: false })
|
|
1443
1564
|
], LyraHeatmap.prototype, "selectedCell", void 0);
|
|
1565
|
+
__decorate([
|
|
1566
|
+
property({ type: Boolean, attribute: 'accessible-cells' })
|
|
1567
|
+
], LyraHeatmap.prototype, "accessibleCells", void 0);
|
|
1444
1568
|
__decorate([
|
|
1445
1569
|
property({ attribute: false })
|
|
1446
1570
|
], LyraHeatmap.prototype, "cellText", void 0);
|