@aceshooting/lyra-ui 3.0.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 +21 -3
- package/custom-elements.json +12157 -4187
- 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/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/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 +16 -0
- 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/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/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/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/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/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/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/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/llms-full.txt +315 -5
- package/llms.txt +2 -1
- package/package.json +83 -3
|
@@ -10,7 +10,7 @@ import { unsafeHTML } from 'lit/directives/unsafe-html.js';
|
|
|
10
10
|
import { LyraElement } from '../../internal/lyra-element.js';
|
|
11
11
|
import { nextId } from '../../internal/a11y.js';
|
|
12
12
|
import { chevronIcon } from '../../internal/icons.js';
|
|
13
|
-
import { loadShikiHighlighterCore, SHIKI_THEMES } from './code-loader.js';
|
|
13
|
+
import { loadShikiHighlighterCore, normalizeShikiLanguage, SHIKI_THEMES, } from './code-loader.js';
|
|
14
14
|
import { styles } from './code-block.styles.js';
|
|
15
15
|
import { codeBlockToggleLabel, codeBlockCopyLabel, codeBlockBodyLabel } from './code-block-shared.js';
|
|
16
16
|
import '../skeleton/skeleton.class.js';
|
|
@@ -28,16 +28,26 @@ const COPY_CONFIRM_MS = 1500;
|
|
|
28
28
|
* tabindex in place would add a second, redundant tab stop over the same
|
|
29
29
|
* scrollable content.
|
|
30
30
|
*/
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
node
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
31
|
+
function partTransformer(lineNumbers) {
|
|
32
|
+
return {
|
|
33
|
+
name: 'lyra-code-block-parts',
|
|
34
|
+
pre(node) {
|
|
35
|
+
node.properties.part = ['pre'];
|
|
36
|
+
if (lineNumbers) {
|
|
37
|
+
const classes = Array.isArray(node.properties.class)
|
|
38
|
+
? node.properties.class
|
|
39
|
+
: node.properties.class
|
|
40
|
+
? [node.properties.class]
|
|
41
|
+
: [];
|
|
42
|
+
node.properties.class = [...classes, 'line-numbers'];
|
|
43
|
+
}
|
|
44
|
+
delete node.properties.tabindex;
|
|
45
|
+
},
|
|
46
|
+
code(node) {
|
|
47
|
+
node.properties.part = ['code'];
|
|
48
|
+
},
|
|
49
|
+
};
|
|
50
|
+
}
|
|
41
51
|
/**
|
|
42
52
|
* `<lyra-code-block-core>` — a build-lean variant of `<lyra-code-block>` for
|
|
43
53
|
* a consumer whose `languages` map already covers every language it will
|
|
@@ -116,6 +126,8 @@ export class LyraCodeBlockCore extends LyraElement {
|
|
|
116
126
|
/** A CSS length (e.g. `"20rem"`); once set, the code scrolls internally
|
|
117
127
|
* past this height instead of growing the page. */
|
|
118
128
|
this.maxHeight = '';
|
|
129
|
+
/** Whether to display one-based line numbers beside the code. */
|
|
130
|
+
this.lineNumbers = false;
|
|
119
131
|
/** Grammar definitions this instance can highlight, e.g. `{ json: jsonGrammar }` (import from
|
|
120
132
|
* `shiki/langs/<name>.mjs`). This component has no default/full-table fallback highlighter --
|
|
121
133
|
* a `language` absent from this map always renders the plain-text fallback. Empty (the
|
|
@@ -170,7 +182,8 @@ export class LyraCodeBlockCore extends LyraElement {
|
|
|
170
182
|
// `willUpdate()`/`updated()`/`render()`/`syncHighlight()` so they all agree
|
|
171
183
|
// on whether this language is highlightable at all.
|
|
172
184
|
preSuppliedGrammar() {
|
|
173
|
-
|
|
185
|
+
const language = normalizeShikiLanguage(this.language);
|
|
186
|
+
return this.languages?.[language] ?? this.languages?.[this.language];
|
|
174
187
|
}
|
|
175
188
|
// Mutating `highlightedHtml` here (rather than in `updated()`) absorbs the
|
|
176
189
|
// synchronous case -- language already loaded, see `syncHighlight()` --
|
|
@@ -199,13 +212,13 @@ export class LyraCodeBlockCore extends LyraElement {
|
|
|
199
212
|
// after a newer call has already rendered correct synchronous output,
|
|
200
213
|
// and overwrite it with stale tokenization.
|
|
201
214
|
const token = ++this.highlightToken;
|
|
202
|
-
const lang = this.language;
|
|
215
|
+
const lang = normalizeShikiLanguage(this.language);
|
|
203
216
|
if (!lang) {
|
|
204
217
|
this.highlightedHtml = null;
|
|
205
218
|
return;
|
|
206
219
|
}
|
|
207
220
|
const languages = this.languages;
|
|
208
|
-
if (!languages?.[lang]) {
|
|
221
|
+
if (!languages?.[lang] && !languages?.[this.language]) {
|
|
209
222
|
// Not in the supplied languages map -- there is no default
|
|
210
223
|
// highlighter to fall back to in this variant, so this always
|
|
211
224
|
// renders the plain-text fallback, unlike <lyra-code-block>'s
|
|
@@ -242,7 +255,7 @@ export class LyraCodeBlockCore extends LyraElement {
|
|
|
242
255
|
// a --lyra-* token. See the dark-mode override in
|
|
243
256
|
// code-block.styles.ts for how the dark half of this activates.
|
|
244
257
|
themes: SHIKI_THEMES,
|
|
245
|
-
transformers: [partTransformer],
|
|
258
|
+
transformers: [partTransformer(this.lineNumbers)],
|
|
246
259
|
});
|
|
247
260
|
}
|
|
248
261
|
catch {
|
|
@@ -251,6 +264,15 @@ export class LyraCodeBlockCore extends LyraElement {
|
|
|
251
264
|
return null;
|
|
252
265
|
}
|
|
253
266
|
}
|
|
267
|
+
renderPlainCode() {
|
|
268
|
+
if (!this.lineNumbers)
|
|
269
|
+
return html `<code part="code">${this.code}</code>`;
|
|
270
|
+
return html `
|
|
271
|
+
<code part="code" class="line-numbered-code">
|
|
272
|
+
${this.code.split(/\r\n|\r|\n/).map((line) => html `<span class="line">${line}</span>`)}
|
|
273
|
+
</code>
|
|
274
|
+
`;
|
|
275
|
+
}
|
|
254
276
|
writeClipboard(text) {
|
|
255
277
|
try {
|
|
256
278
|
// navigator.clipboard is absent in insecure contexts / older browsers,
|
|
@@ -328,7 +350,7 @@ export class LyraCodeBlockCore extends LyraElement {
|
|
|
328
350
|
? html `<lyra-skeleton variant="rect"></lyra-skeleton>`
|
|
329
351
|
: this.highlightedHtml !== null
|
|
330
352
|
? unsafeHTML(this.highlightedHtml)
|
|
331
|
-
: html `<pre part="pre"
|
|
353
|
+
: html `<pre part="pre" class=${this.lineNumbers ? 'line-numbers' : nothing}>${this.renderPlainCode()}</pre>`}
|
|
332
354
|
</div>
|
|
333
355
|
</div>
|
|
334
356
|
`;
|
|
@@ -358,6 +380,9 @@ __decorate([
|
|
|
358
380
|
__decorate([
|
|
359
381
|
property({ attribute: 'max-height' })
|
|
360
382
|
], LyraCodeBlockCore.prototype, "maxHeight", void 0);
|
|
383
|
+
__decorate([
|
|
384
|
+
property({ type: Boolean, attribute: 'line-numbers', reflect: true })
|
|
385
|
+
], LyraCodeBlockCore.prototype, "lineNumbers", void 0);
|
|
361
386
|
__decorate([
|
|
362
387
|
property({ attribute: false })
|
|
363
388
|
], LyraCodeBlockCore.prototype, "languages", void 0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code-block-core.class.js","sourceRoot":"","sources":["../../../src/components/code-block/code-block-core.class.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAA4C,MAAM,KAAK,CAAC;AAC9E,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD,OAAO,
|
|
1
|
+
{"version":3,"file":"code-block-core.class.js","sourceRoot":"","sources":["../../../src/components/code-block/code-block-core.class.ts"],"names":[],"mappings":"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"}
|
|
@@ -105,6 +105,8 @@ export declare class LyraCodeBlock extends LyraElement<LyraCodeBlockEventMap> {
|
|
|
105
105
|
/** A CSS length (e.g. `"20rem"`); once set, the code scrolls internally
|
|
106
106
|
* past this height instead of growing the page. */
|
|
107
107
|
maxHeight: string;
|
|
108
|
+
/** Whether to display one-based line numbers beside the code. */
|
|
109
|
+
lineNumbers: boolean;
|
|
108
110
|
/** A map of language id to an already-imported shiki grammar module's
|
|
109
111
|
* default export (e.g. `{ bash: bashGrammar }` where `bashGrammar` came
|
|
110
112
|
* from a module-scope `import bash from 'shiki/langs/bash.mjs'`). When
|
|
@@ -139,6 +141,7 @@ export declare class LyraCodeBlock extends LyraElement<LyraCodeBlockEventMap> {
|
|
|
139
141
|
protected updated(): void;
|
|
140
142
|
private syncHighlight;
|
|
141
143
|
private tokenize;
|
|
144
|
+
private renderPlainCode;
|
|
142
145
|
private writeClipboard;
|
|
143
146
|
private copy;
|
|
144
147
|
private toggleCollapsed;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code-block.class.d.ts","sourceRoot":"","sources":["../../../src/components/code-block/code-block.class.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAG9E,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAI7D,OAAO,
|
|
1
|
+
{"version":3,"file":"code-block.class.d.ts","sourceRoot":"","sources":["../../../src/components/code-block/code-block.class.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAG9E,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAI7D,OAAO,EAQL,KAAK,kBAAkB,EACxB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,+BAA+B,CAAC;AAsCvC,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,WAAW,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC3C,aAAa,EAAE,WAAW,CAAC;QAAE,SAAS,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CACpD;AACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqEG;AACH,qBAAa,aAAc,SAAQ,WAAW,CAAC,qBAAqB,CAAC;IACnE,MAAM,CAAC,MAAM,iCAAgC;IAE7C,2BAA2B;IACf,IAAI,SAAM;IAEtB;;;qCAGiC;IACrB,QAAQ,SAAM;IAE1B,oDAAoD;IACxC,QAAQ,SAAM;IAE1B;;uCAEmC;IACI,eAAe,SAAM;IAE5D,oEAAoE;IACxB,WAAW,UAAS;IAEhE;4CACwC;IACI,SAAS,UAAS;IAE9D,sDAAsD;IACV,QAAQ,UAAQ;IAE5D;wDACoD;IACb,SAAS,SAAM;IAEtD,iEAAiE;IACM,WAAW,UAAS;IAE3F;;;;;;;;;;8DAU0D;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAE/E;;;;;;iDAM6C;IACa,aAAa,UAAS;IAMvE,OAAO,CAAC,eAAe,CAAuB;IAK9C,OAAO,CAAC,UAAU,CAAS;IAE3B,OAAO,CAAC,UAAU,CAAS;IAEpC,OAAO,CAAC,WAAW,CAAC,CAA0B;IAK9C,OAAO,CAAC,cAAc,CAAK;IAE3B,OAAO,CAAC,aAAa,CAAC,CAAgC;IAEtD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA6B;IAEpD,iBAAiB,IAAI,IAAI,CAQxB;IAED,oBAAoB,IAAI,IAAI,CAG3B;IAMD,OAAO,CAAC,kBAAkB;IAU1B,SAAS,CAAC,UAAU,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,CAWlD;IAED,SAAS,CAAC,OAAO,IAAI,IAAI,CAOxB;IAED,OAAO,CAAC,aAAa;IA6CrB,OAAO,CAAC,QAAQ;IAoBhB,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,cAAc;IAatB,OAAO,CAAC,IAAI,CAQV;IAEF,OAAO,CAAC,eAAe,CAGrB;IAEF,OAAO,CAAC,YAAY;IA4CpB,MAAM,IAAI,cAAc,CA4BvB;CACF;AAGD,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,iBAAiB,EAAE,aAAa,CAAC;KAClC;CACF"}
|
|
@@ -10,7 +10,7 @@ import { unsafeHTML } from 'lit/directives/unsafe-html.js';
|
|
|
10
10
|
import { LyraElement } from '../../internal/lyra-element.js';
|
|
11
11
|
import { nextId } from '../../internal/a11y.js';
|
|
12
12
|
import { chevronIcon } from '../../internal/icons.js';
|
|
13
|
-
import { loadShikiHighlighter, loadShikiLanguage, loadShikiHighlighterCore, SHIKI_THEMES, } from './code-loader.js';
|
|
13
|
+
import { loadShikiHighlighter, loadShikiLanguage, loadShikiHighlighterCore, normalizeShikiLanguage, SHIKI_THEMES, } from './code-loader.js';
|
|
14
14
|
import { styles } from './code-block.styles.js';
|
|
15
15
|
import { codeBlockToggleLabel, codeBlockCopyLabel, codeBlockBodyLabel } from './code-block-shared.js';
|
|
16
16
|
import '../skeleton/skeleton.class.js';
|
|
@@ -28,16 +28,26 @@ const COPY_CONFIRM_MS = 1500;
|
|
|
28
28
|
* tabindex in place would add a second, redundant tab stop over the same
|
|
29
29
|
* scrollable content.
|
|
30
30
|
*/
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
node
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
31
|
+
function partTransformer(lineNumbers) {
|
|
32
|
+
return {
|
|
33
|
+
name: 'lyra-code-block-parts',
|
|
34
|
+
pre(node) {
|
|
35
|
+
node.properties.part = ['pre'];
|
|
36
|
+
if (lineNumbers) {
|
|
37
|
+
const classes = Array.isArray(node.properties.class)
|
|
38
|
+
? node.properties.class
|
|
39
|
+
: node.properties.class
|
|
40
|
+
? [node.properties.class]
|
|
41
|
+
: [];
|
|
42
|
+
node.properties.class = [...classes, 'line-numbers'];
|
|
43
|
+
}
|
|
44
|
+
delete node.properties.tabindex;
|
|
45
|
+
},
|
|
46
|
+
code(node) {
|
|
47
|
+
node.properties.part = ['code'];
|
|
48
|
+
},
|
|
49
|
+
};
|
|
50
|
+
}
|
|
41
51
|
/**
|
|
42
52
|
* `<lyra-code-block>` — fenced code display with optional lazy syntax
|
|
43
53
|
* highlighting and a copy button. No highlighting grammar ships in this
|
|
@@ -134,6 +144,8 @@ export class LyraCodeBlock extends LyraElement {
|
|
|
134
144
|
/** A CSS length (e.g. `"20rem"`); once set, the code scrolls internally
|
|
135
145
|
* past this height instead of growing the page. */
|
|
136
146
|
this.maxHeight = '';
|
|
147
|
+
/** Whether to display one-based line numbers beside the code. */
|
|
148
|
+
this.lineNumbers = false;
|
|
137
149
|
/** When `true`, skips the default `loadShikiHighlighter()` call in `connectedCallback()`
|
|
138
150
|
* entirely — for a consumer whose `languages` map already covers every language every instance
|
|
139
151
|
* will ever render, so the bundler has no reachable path from this component to shiki's
|
|
@@ -191,7 +203,8 @@ export class LyraCodeBlock extends LyraElement {
|
|
|
191
203
|
// on whether this render is taking the fine-grained `languages` path or
|
|
192
204
|
// the default `loadShikiHighlighter()` one.
|
|
193
205
|
preSuppliedGrammar() {
|
|
194
|
-
|
|
206
|
+
const language = normalizeShikiLanguage(this.language);
|
|
207
|
+
return this.languages?.[language] ?? this.languages?.[this.language];
|
|
195
208
|
}
|
|
196
209
|
// Mutating `highlightedHtml` here (rather than in `updated()`) absorbs the
|
|
197
210
|
// synchronous case -- language already loaded, see `syncHighlight()` --
|
|
@@ -229,13 +242,13 @@ export class LyraCodeBlock extends LyraElement {
|
|
|
229
242
|
// after a newer call has already rendered correct synchronous output,
|
|
230
243
|
// and overwrite it with stale tokenization.
|
|
231
244
|
const token = ++this.highlightToken;
|
|
232
|
-
const lang = this.language;
|
|
245
|
+
const lang = normalizeShikiLanguage(this.language);
|
|
233
246
|
if (!lang) {
|
|
234
247
|
this.highlightedHtml = null;
|
|
235
248
|
return;
|
|
236
249
|
}
|
|
237
250
|
const languages = this.languages;
|
|
238
|
-
if (languages?.[lang]) {
|
|
251
|
+
if (languages?.[lang] ?? languages?.[this.language]) {
|
|
239
252
|
// Fine-grained opt-in path -- entirely separate from `this.highlighter`
|
|
240
253
|
// below, see `loadShikiHighlighterCore()`'s doc comment for why.
|
|
241
254
|
this.highlightedHtml = null;
|
|
@@ -276,7 +289,7 @@ export class LyraCodeBlock extends LyraElement {
|
|
|
276
289
|
// a --lyra-* token. See the dark-mode override in
|
|
277
290
|
// code-block.styles.ts for how the dark half of this activates.
|
|
278
291
|
themes: SHIKI_THEMES,
|
|
279
|
-
transformers: [partTransformer],
|
|
292
|
+
transformers: [partTransformer(this.lineNumbers)],
|
|
280
293
|
});
|
|
281
294
|
}
|
|
282
295
|
catch {
|
|
@@ -285,6 +298,15 @@ export class LyraCodeBlock extends LyraElement {
|
|
|
285
298
|
return null;
|
|
286
299
|
}
|
|
287
300
|
}
|
|
301
|
+
renderPlainCode() {
|
|
302
|
+
if (!this.lineNumbers)
|
|
303
|
+
return html `<code part="code">${this.code}</code>`;
|
|
304
|
+
return html `
|
|
305
|
+
<code part="code" class="line-numbered-code">
|
|
306
|
+
${this.code.split(/\r\n|\r|\n/).map((line) => html `<span class="line">${line}</span>`)}
|
|
307
|
+
</code>
|
|
308
|
+
`;
|
|
309
|
+
}
|
|
288
310
|
writeClipboard(text) {
|
|
289
311
|
try {
|
|
290
312
|
// navigator.clipboard is absent in insecure contexts / older browsers,
|
|
@@ -363,7 +385,7 @@ export class LyraCodeBlock extends LyraElement {
|
|
|
363
385
|
? html `<lyra-skeleton variant="rect"></lyra-skeleton>`
|
|
364
386
|
: this.highlightedHtml !== null
|
|
365
387
|
? unsafeHTML(this.highlightedHtml)
|
|
366
|
-
: html `<pre part="pre"
|
|
388
|
+
: html `<pre part="pre" class=${this.lineNumbers ? 'line-numbers' : nothing}>${this.renderPlainCode()}</pre>`}
|
|
367
389
|
</div>
|
|
368
390
|
</div>
|
|
369
391
|
`;
|
|
@@ -393,6 +415,9 @@ __decorate([
|
|
|
393
415
|
__decorate([
|
|
394
416
|
property({ attribute: 'max-height' })
|
|
395
417
|
], LyraCodeBlock.prototype, "maxHeight", void 0);
|
|
418
|
+
__decorate([
|
|
419
|
+
property({ type: Boolean, attribute: 'line-numbers', reflect: true })
|
|
420
|
+
], LyraCodeBlock.prototype, "lineNumbers", void 0);
|
|
396
421
|
__decorate([
|
|
397
422
|
property({ attribute: false })
|
|
398
423
|
], LyraCodeBlock.prototype, "languages", void 0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code-block.class.js","sourceRoot":"","sources":["../../../src/components/code-block/code-block.class.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAA4C,MAAM,KAAK,CAAC;AAC9E,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,wBAAwB,EACxB,YAAY,GAIb,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACtG,OAAO,+BAA+B,CAAC;AAEvC,4EAA4E;AAC5E,MAAM,eAAe,GAAG,IAAI,CAAC;AAE7B;;;;;;;;;;;GAWG;AACH,
|
|
1
|
+
{"version":3,"file":"code-block.class.js","sourceRoot":"","sources":["../../../src/components/code-block/code-block.class.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code-block.styles.d.ts","sourceRoot":"","sources":["../../../src/components/code-block/code-block.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"code-block.styles.d.ts","sourceRoot":"","sources":["../../../src/components/code-block/code-block.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM,yBAqNlB,CAAC"}
|
|
@@ -169,6 +169,22 @@ export const styles = css `
|
|
|
169
169
|
[part='code'] {
|
|
170
170
|
font-family: inherit;
|
|
171
171
|
}
|
|
172
|
+
[part='pre'].line-numbers {
|
|
173
|
+
counter-reset: lyra-code-line;
|
|
174
|
+
}
|
|
175
|
+
[part='pre'].line-numbers .line {
|
|
176
|
+
display: block;
|
|
177
|
+
counter-increment: lyra-code-line;
|
|
178
|
+
}
|
|
179
|
+
[part='pre'].line-numbers .line::before {
|
|
180
|
+
content: counter(lyra-code-line);
|
|
181
|
+
display: inline-block;
|
|
182
|
+
min-inline-size: var(--lyra-size-2-5ch);
|
|
183
|
+
margin-inline-end: var(--lyra-space-s);
|
|
184
|
+
color: var(--lyra-color-text-quiet);
|
|
185
|
+
text-align: end;
|
|
186
|
+
user-select: none;
|
|
187
|
+
}
|
|
172
188
|
/*
|
|
173
189
|
* Activates shiki's "dual themes" dark variant. codeToHtml() (see
|
|
174
190
|
* tokenize() in code-block.ts) renders every token with its *light* color
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code-block.styles.js","sourceRoot":"","sources":["../../../src/components/code-block/code-block.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA
|
|
1
|
+
{"version":3,"file":"code-block.styles.js","sourceRoot":"","sources":["../../../src/components/code-block/code-block.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqNxB,CAAC"}
|
|
@@ -28,6 +28,8 @@ export declare const SHIKI_LIGHT_THEME: string;
|
|
|
28
28
|
export declare const SHIKI_DARK_THEME: string;
|
|
29
29
|
/** Passed directly as `codeToHtml()`'s `themes` option — see `tokenize()` in `code-block.ts`. */
|
|
30
30
|
export declare const SHIKI_THEMES: Record<'light' | 'dark', string>;
|
|
31
|
+
/** Normalizes ids supplied by filename-oriented integrations and templates. */
|
|
32
|
+
export declare function normalizeShikiLanguage(lang: string): string;
|
|
31
33
|
/**
|
|
32
34
|
* Lazily loads the optional peer dependency `shiki` once per page and builds
|
|
33
35
|
* (and caches) a single `Highlighter` instance seeded with `SHIKI_THEMES` and
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code-loader.d.ts","sourceRoot":"","sources":["../../../src/components/code-block/code-loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;
|
|
1
|
+
{"version":3,"file":"code-loader.d.ts","sourceRoot":"","sources":["../../../src/components/code-block/code-loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAG7E;sDACsD;AACtD,MAAM,MAAM,gBAAgB,GAAG,eAAe,CAAC;AAE/C;;;;;gFAKgF;AAChF,MAAM,MAAM,oBAAoB,GAAG,eAAe,CAAC;AAEnD;;;6EAG6E;AAC7E,MAAM,MAAM,kBAAkB,GAAG,eAAe,CAAC;AAEjD;;;;;;;;;GASG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAuB,CAAC;AACxD,eAAO,MAAM,gBAAgB,EAAE,MAAsB,CAAC;AAEtD,iGAAiG;AACjG,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,OAAO,GAAG,MAAM,EAAE,MAAM,CAGzD,CAAC;AAiBF,+EAA+E;AAC/E,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,oBAAoB,IAAI,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAcvE;AAED;;;;;;;;;GASG;AACH,wBAAsB,iBAAiB,CAAC,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAe5F;AAaD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,GAC5C,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CA2BtC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { GREYCAT_LANGUAGE } from './greycat-language.js';
|
|
1
2
|
/**
|
|
2
3
|
* The two bundled themes every highlighter instance is seeded with, so a
|
|
3
4
|
* single `codeToHtml()` call can emit a light *and* dark rendering at once
|
|
@@ -23,6 +24,14 @@ let highlighter;
|
|
|
23
24
|
* ever one, see `loadShikiHighlighter()` below), so this never needs
|
|
24
25
|
* resetting alongside it. */
|
|
25
26
|
const unsupportedLanguages = new Set();
|
|
27
|
+
const CUSTOM_LANGUAGES = {
|
|
28
|
+
gcl: GREYCAT_LANGUAGE,
|
|
29
|
+
greycat: GREYCAT_LANGUAGE,
|
|
30
|
+
};
|
|
31
|
+
/** Normalizes ids supplied by filename-oriented integrations and templates. */
|
|
32
|
+
export function normalizeShikiLanguage(lang) {
|
|
33
|
+
return lang.trim().toLowerCase().replace(/^\./, '');
|
|
34
|
+
}
|
|
26
35
|
/**
|
|
27
36
|
* Lazily loads the optional peer dependency `shiki` once per page and builds
|
|
28
37
|
* (and caches) a single `Highlighter` instance seeded with `SHIKI_THEMES` and
|
|
@@ -60,12 +69,13 @@ export function loadShikiHighlighter() {
|
|
|
60
69
|
* succeed on every future render.
|
|
61
70
|
*/
|
|
62
71
|
export async function loadShikiLanguage(hl, lang) {
|
|
63
|
-
|
|
72
|
+
const normalizedLanguage = normalizeShikiLanguage(lang);
|
|
73
|
+
if (hl.getLoadedLanguages().includes(normalizedLanguage))
|
|
64
74
|
return true;
|
|
65
|
-
if (unsupportedLanguages.has(
|
|
75
|
+
if (unsupportedLanguages.has(normalizedLanguage))
|
|
66
76
|
return false;
|
|
67
77
|
try {
|
|
68
|
-
await hl.loadLanguage(
|
|
78
|
+
await hl.loadLanguage(CUSTOM_LANGUAGES[normalizedLanguage] ?? normalizedLanguage);
|
|
69
79
|
return true;
|
|
70
80
|
}
|
|
71
81
|
catch {
|
|
@@ -73,7 +83,7 @@ export async function loadShikiLanguage(hl, lang) {
|
|
|
73
83
|
// load for some other reason — either way, <lyra-code-block> treats an
|
|
74
84
|
// unrecognized language the same as an unset one (plain text), and
|
|
75
85
|
// there's nothing more specific a caller could do with the reason.
|
|
76
|
-
unsupportedLanguages.add(
|
|
86
|
+
unsupportedLanguages.add(normalizedLanguage);
|
|
77
87
|
return false;
|
|
78
88
|
}
|
|
79
89
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code-loader.js","sourceRoot":"","sources":["../../../src/components/code-block/code-loader.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"code-loader.js","sourceRoot":"","sources":["../../../src/components/code-block/code-loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { OptionalPeerApi } from '../../internal/optional-peer-types.js';
|
|
2
|
+
/**
|
|
3
|
+
* A compact TextMate grammar for GreyCat's GCL language.
|
|
4
|
+
*
|
|
5
|
+
* Shiki ships grammars for the common languages, but GCL is maintained here
|
|
6
|
+
* so consumers can highlight GreyCat source without supplying a grammar map.
|
|
7
|
+
*/
|
|
8
|
+
export declare const GREYCAT_LANGUAGE: OptionalPeerApi;
|
|
9
|
+
//# sourceMappingURL=greycat-language.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"greycat-language.d.ts","sourceRoot":"","sources":["../../../src/components/code-block/greycat-language.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAE7E;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,EAAE,eAmE9B,CAAC"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A compact TextMate grammar for GreyCat's GCL language.
|
|
3
|
+
*
|
|
4
|
+
* Shiki ships grammars for the common languages, but GCL is maintained here
|
|
5
|
+
* so consumers can highlight GreyCat source without supplying a grammar map.
|
|
6
|
+
*/
|
|
7
|
+
export const GREYCAT_LANGUAGE = {
|
|
8
|
+
name: 'gcl',
|
|
9
|
+
displayName: 'GreyCat',
|
|
10
|
+
scopeName: 'source.gcl',
|
|
11
|
+
aliases: ['greycat'],
|
|
12
|
+
patterns: [
|
|
13
|
+
{ include: '#comments' },
|
|
14
|
+
{ include: '#strings' },
|
|
15
|
+
{ include: '#numbers' },
|
|
16
|
+
{ include: '#annotations' },
|
|
17
|
+
{ include: '#keywords' },
|
|
18
|
+
{ include: '#types' },
|
|
19
|
+
{ include: '#functions' },
|
|
20
|
+
],
|
|
21
|
+
repository: {
|
|
22
|
+
comments: {
|
|
23
|
+
patterns: [
|
|
24
|
+
{ match: '//.*$', name: 'comment.line.double-slash.gcl' },
|
|
25
|
+
{ begin: '/\\*', end: '\\*/', name: 'comment.block.gcl' },
|
|
26
|
+
],
|
|
27
|
+
},
|
|
28
|
+
strings: {
|
|
29
|
+
patterns: [
|
|
30
|
+
{
|
|
31
|
+
begin: '"',
|
|
32
|
+
end: '"',
|
|
33
|
+
name: 'string.quoted.double.gcl',
|
|
34
|
+
patterns: [{ match: '\\\\.', name: 'constant.character.escape.gcl' }],
|
|
35
|
+
},
|
|
36
|
+
{ begin: "'", end: "'", name: 'string.quoted.single.gcl' },
|
|
37
|
+
{ begin: '`', end: '`', name: 'string.quoted.other.gcl' },
|
|
38
|
+
],
|
|
39
|
+
},
|
|
40
|
+
numbers: {
|
|
41
|
+
patterns: [
|
|
42
|
+
{
|
|
43
|
+
match: '\\b(?:0x[0-9a-fA-F]+|\\d+(?:\\.\\d+)?(?:_us|_ms|_s|_min|_hour|_day)?)\\b',
|
|
44
|
+
name: 'constant.numeric.gcl',
|
|
45
|
+
},
|
|
46
|
+
],
|
|
47
|
+
},
|
|
48
|
+
annotations: {
|
|
49
|
+
patterns: [{ match: '@[a-zA-Z_][a-zA-Z0-9_]*', name: 'storage.type.annotation.gcl' }],
|
|
50
|
+
},
|
|
51
|
+
keywords: {
|
|
52
|
+
patterns: [
|
|
53
|
+
{
|
|
54
|
+
match: '\\b(?:async|await|break|case|catch|continue|else|enum|export|extends|fn|for|from|if|import|in|let|match|model|new|return|throw|try|type|var|while)\\b',
|
|
55
|
+
name: 'keyword.control.gcl',
|
|
56
|
+
},
|
|
57
|
+
{ match: '\\b(?:true|false|null|nil)\\b', name: 'constant.language.gcl' },
|
|
58
|
+
],
|
|
59
|
+
},
|
|
60
|
+
types: {
|
|
61
|
+
patterns: [
|
|
62
|
+
{
|
|
63
|
+
match: '\\b(?:any|Array|bool|char|Date|duration|float|geo|int|json|Map|node|nodeIndex|nodeList|nodeTime|String|time|uint|void)\\b',
|
|
64
|
+
name: 'storage.type.gcl',
|
|
65
|
+
},
|
|
66
|
+
],
|
|
67
|
+
},
|
|
68
|
+
functions: {
|
|
69
|
+
patterns: [{ match: '\\b[a-zA-Z_][a-zA-Z0-9_]*(?=\\s*\\()', name: 'entity.name.function.gcl' }],
|
|
70
|
+
},
|
|
71
|
+
},
|
|
72
|
+
};
|
|
73
|
+
//# sourceMappingURL=greycat-language.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"greycat-language.js","sourceRoot":"","sources":["../../../src/components/code-block/greycat-language.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAoB;IAC/C,IAAI,EAAE,KAAK;IACX,WAAW,EAAE,SAAS;IACtB,SAAS,EAAE,YAAY;IACvB,OAAO,EAAE,CAAC,SAAS,CAAC;IACpB,QAAQ,EAAE;QACR,EAAE,OAAO,EAAE,WAAW,EAAE;QACxB,EAAE,OAAO,EAAE,UAAU,EAAE;QACvB,EAAE,OAAO,EAAE,UAAU,EAAE;QACvB,EAAE,OAAO,EAAE,cAAc,EAAE;QAC3B,EAAE,OAAO,EAAE,WAAW,EAAE;QACxB,EAAE,OAAO,EAAE,QAAQ,EAAE;QACrB,EAAE,OAAO,EAAE,YAAY,EAAE;KAC1B;IACD,UAAU,EAAE;QACV,QAAQ,EAAE;YACR,QAAQ,EAAE;gBACR,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,+BAA+B,EAAE;gBACzD,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,EAAE;aAC1D;SACF;QACD,OAAO,EAAE;YACP,QAAQ,EAAE;gBACR;oBACE,KAAK,EAAE,GAAG;oBACV,GAAG,EAAE,GAAG;oBACR,IAAI,EAAE,0BAA0B;oBAChC,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,+BAA+B,EAAE,CAAC;iBACtE;gBACD,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,0BAA0B,EAAE;gBAC1D,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,yBAAyB,EAAE;aAC1D;SACF;QACD,OAAO,EAAE;YACP,QAAQ,EAAE;gBACR;oBACE,KAAK,EAAE,0EAA0E;oBACjF,IAAI,EAAE,sBAAsB;iBAC7B;aACF;SACF;QACD,WAAW,EAAE;YACX,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,yBAAyB,EAAE,IAAI,EAAE,6BAA6B,EAAE,CAAC;SACtF;QACD,QAAQ,EAAE;YACR,QAAQ,EAAE;gBACR;oBACE,KAAK,EACH,uJAAuJ;oBACzJ,IAAI,EAAE,qBAAqB;iBAC5B;gBACD,EAAE,KAAK,EAAE,+BAA+B,EAAE,IAAI,EAAE,uBAAuB,EAAE;aAC1E;SACF;QACD,KAAK,EAAE;YACL,QAAQ,EAAE;gBACR;oBACE,KAAK,EACH,2HAA2H;oBAC7H,IAAI,EAAE,kBAAkB;iBACzB;aACF;SACF;QACD,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,sCAAsC,EAAE,IAAI,EAAE,0BAA0B,EAAE,CAAC;SAChG;KACF;CACF,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { type PropertyValues, type TemplateResult } from 'lit';
|
|
2
|
+
import { LyraElement } from '../../internal/lyra-element.js';
|
|
3
|
+
export interface LyraContactViewerEventMap {
|
|
4
|
+
'lyra-render-error': CustomEvent<{
|
|
5
|
+
error: unknown;
|
|
6
|
+
}>;
|
|
7
|
+
}
|
|
8
|
+
/** Fetches a vCard document and renders one accessible card per contact. */
|
|
9
|
+
export declare class LyraContactViewer extends LyraElement<LyraContactViewerEventMap> {
|
|
10
|
+
static styles: import("lit").CSSResultGroup[];
|
|
11
|
+
/** URL to fetch and parse as vCard text. */
|
|
12
|
+
src: string;
|
|
13
|
+
/** Optional display name for the source document. */
|
|
14
|
+
name: string;
|
|
15
|
+
/** CSS length that caps the scrollable body. */
|
|
16
|
+
maxHeight: string;
|
|
17
|
+
private fetchState;
|
|
18
|
+
private generation;
|
|
19
|
+
protected willUpdate(changed: PropertyValues): void;
|
|
20
|
+
private load;
|
|
21
|
+
private formatAddress;
|
|
22
|
+
private renderContact;
|
|
23
|
+
private renderBody;
|
|
24
|
+
render(): TemplateResult;
|
|
25
|
+
}
|
|
26
|
+
declare global {
|
|
27
|
+
interface HTMLElementTagNameMap {
|
|
28
|
+
'lyra-contact-viewer': LyraContactViewer;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=contact-viewer.class.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contact-viewer.class.d.ts","sourceRoot":"","sources":["../../../src/components/contact-viewer/contact-viewer.class.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAE9E,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAO7D,MAAM,WAAW,yBAAyB;IAAG,mBAAmB,EAAE,WAAW,CAAC;QAAE,KAAK,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CAAE;AAEpG,4EAA4E;AAC5E,qBAAa,iBAAkB,SAAQ,WAAW,CAAC,yBAAyB,CAAC;IAC3E,MAAM,CAAC,MAAM,iCAAwC;IACrD,4CAA4C;IAChC,GAAG,SAAM;IACrB,qDAAqD;IACzC,IAAI,SAAM;IACtB,gDAAgD;IACT,SAAS,SAAM;IAC7C,OAAO,CAAC,UAAU,CAAuC;IAClE,OAAO,CAAC,UAAU,CAAK;IAEvB,SAAS,CAAC,UAAU,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,CAAkE;YAEvG,IAAI;IAmBlB,OAAO,CAAC,aAAa;IAErB,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,UAAU;IAUlB,MAAM,IAAI,cAAc,CAA8K;CACvM;AAED,OAAO,CAAC,MAAM,CAAC;IAAE,UAAU,qBAAqB;QAAG,qBAAqB,EAAE,iBAAiB,CAAC;KAAE;CAAE"}
|