notra-editor 0.5.0 → 0.6.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/dist/components/code-block-view/code-block-shell.cjs +41 -0
- package/dist/components/code-block-view/code-block-shell.cjs.map +1 -0
- package/dist/components/code-block-view/code-block-shell.d.cts +11 -0
- package/dist/components/code-block-view/code-block-shell.d.ts +11 -0
- package/dist/components/code-block-view/code-block-shell.mjs +17 -0
- package/dist/components/code-block-view/code-block-shell.mjs.map +1 -0
- package/dist/components/{code-block-view.cjs → code-block-view/code-block-view.cjs} +16 -8
- package/dist/components/code-block-view/code-block-view.cjs.map +1 -0
- package/dist/components/code-block-view/code-block-view.d.cts +6 -0
- package/dist/components/code-block-view/code-block-view.d.ts +6 -0
- package/dist/components/code-block-view/code-block-view.mjs +26 -0
- package/dist/components/code-block-view/code-block-view.mjs.map +1 -0
- package/dist/components/code-block-view/language-select.cjs +91 -0
- package/dist/components/code-block-view/language-select.cjs.map +1 -0
- package/dist/components/code-block-view/language-select.d.cts +11 -0
- package/dist/components/code-block-view/language-select.d.ts +11 -0
- package/dist/components/code-block-view/language-select.mjs +74 -0
- package/dist/components/code-block-view/language-select.mjs.map +1 -0
- package/dist/components/ui/command.cjs +144 -0
- package/dist/components/ui/command.cjs.map +1 -0
- package/dist/components/ui/command.d.cts +12 -0
- package/dist/components/ui/command.d.ts +12 -0
- package/dist/components/ui/command.mjs +115 -0
- package/dist/components/ui/command.mjs.map +1 -0
- package/dist/extensions/code-block.cjs +76 -19
- package/dist/extensions/code-block.cjs.map +1 -1
- package/dist/extensions/code-block.d.cts +7 -3
- package/dist/extensions/code-block.d.ts +7 -3
- package/dist/extensions/code-block.mjs +73 -8
- package/dist/extensions/code-block.mjs.map +1 -1
- package/dist/extensions/editor.d.cts +3 -3
- package/dist/extensions/editor.d.ts +3 -3
- package/dist/extensions/index.d.cts +1 -1
- package/dist/extensions/index.d.ts +1 -1
- package/dist/extensions/shared.cjs +5 -1
- package/dist/extensions/shared.cjs.map +1 -1
- package/dist/extensions/shared.d.cts +2 -1
- package/dist/extensions/shared.d.ts +2 -1
- package/dist/extensions/shared.mjs +5 -1
- package/dist/extensions/shared.mjs.map +1 -1
- package/dist/index.cjs +20 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +6 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.mjs +16 -1
- package/dist/index.mjs.map +1 -1
- package/dist/lib/highlight-code-to-html.cjs +38 -0
- package/dist/lib/highlight-code-to-html.cjs.map +1 -0
- package/dist/lib/highlight-code-to-html.d.cts +6 -0
- package/dist/lib/highlight-code-to-html.d.ts +6 -0
- package/dist/lib/highlight-code-to-html.mjs +14 -0
- package/dist/lib/highlight-code-to-html.mjs.map +1 -0
- package/dist/lib/languages.cjs +181 -0
- package/dist/lib/languages.cjs.map +1 -0
- package/dist/lib/languages.d.cts +24 -0
- package/dist/lib/languages.d.ts +24 -0
- package/dist/lib/languages.mjs +155 -0
- package/dist/lib/languages.mjs.map +1 -0
- package/dist/notra-reader.cjs +32 -3
- package/dist/notra-reader.cjs.map +1 -1
- package/dist/notra-reader.d.cts +11 -1
- package/dist/notra-reader.d.ts +11 -1
- package/dist/notra-reader.mjs +32 -3
- package/dist/notra-reader.mjs.map +1 -1
- package/dist/styles/globals.css +109 -0
- package/dist/themes/default/shared.css +132 -5
- package/package.json +5 -1
- package/dist/components/code-block-view.cjs.map +0 -1
- package/dist/components/code-block-view.d.cts +0 -12
- package/dist/components/code-block-view.d.ts +0 -12
- package/dist/components/code-block-view.mjs +0 -17
- package/dist/components/code-block-view.mjs.map +0 -1
package/dist/index.d.cts
CHANGED
|
@@ -11,7 +11,12 @@ export { BlockquoteButton, BlockquoteButtonProps } from './components/blockquote
|
|
|
11
11
|
export { CodeBlockButton, CodeBlockButtonProps } from './components/code-block-button/code-block-button.cjs';
|
|
12
12
|
export { LinkPopover, LinkPopoverProps } from './components/link-popover/link-popover.cjs';
|
|
13
13
|
export { ImagePopover, ImagePopoverProps } from './components/image-popover/image-popover.cjs';
|
|
14
|
+
export { CodeBlockExtension, createCodeBlockExtension, defaultLowlight } from './extensions/code-block.cjs';
|
|
15
|
+
export { LanguageSelect, LanguageSelectProps } from './components/code-block-view/language-select.cjs';
|
|
16
|
+
export { LANGUAGES, Language, getLanguageLabel } from './lib/languages.cjs';
|
|
17
|
+
export { highlightCodeToHtml } from './lib/highlight-code-to-html.cjs';
|
|
14
18
|
import 'react/jsx-runtime';
|
|
19
|
+
import 'lowlight';
|
|
15
20
|
import 'react';
|
|
16
21
|
import './components/undo-redo-button/use-undo-redo.cjs';
|
|
17
22
|
import 'lucide-react';
|
|
@@ -21,3 +26,4 @@ import './components/ui/button.cjs';
|
|
|
21
26
|
import 'class-variance-authority/types';
|
|
22
27
|
import 'class-variance-authority';
|
|
23
28
|
import './components/list-dropdown-menu/use-list.cjs';
|
|
29
|
+
import '@tiptap/extension-code-block-lowlight';
|
package/dist/index.d.ts
CHANGED
|
@@ -11,7 +11,12 @@ export { BlockquoteButton, BlockquoteButtonProps } from './components/blockquote
|
|
|
11
11
|
export { CodeBlockButton, CodeBlockButtonProps } from './components/code-block-button/code-block-button.js';
|
|
12
12
|
export { LinkPopover, LinkPopoverProps } from './components/link-popover/link-popover.js';
|
|
13
13
|
export { ImagePopover, ImagePopoverProps } from './components/image-popover/image-popover.js';
|
|
14
|
+
export { CodeBlockExtension, createCodeBlockExtension, defaultLowlight } from './extensions/code-block.js';
|
|
15
|
+
export { LanguageSelect, LanguageSelectProps } from './components/code-block-view/language-select.js';
|
|
16
|
+
export { LANGUAGES, Language, getLanguageLabel } from './lib/languages.js';
|
|
17
|
+
export { highlightCodeToHtml } from './lib/highlight-code-to-html.js';
|
|
14
18
|
import 'react/jsx-runtime';
|
|
19
|
+
import 'lowlight';
|
|
15
20
|
import 'react';
|
|
16
21
|
import './components/undo-redo-button/use-undo-redo.js';
|
|
17
22
|
import 'lucide-react';
|
|
@@ -21,3 +26,4 @@ import './components/ui/button.js';
|
|
|
21
26
|
import 'class-variance-authority/types';
|
|
22
27
|
import 'class-variance-authority';
|
|
23
28
|
import './components/list-dropdown-menu/use-list.js';
|
|
29
|
+
import '@tiptap/extension-code-block-lowlight';
|
package/dist/index.mjs
CHANGED
|
@@ -15,11 +15,22 @@ import { BlockquoteButton } from "./components/blockquote-button/blockquote-butt
|
|
|
15
15
|
import { CodeBlockButton } from "./components/code-block-button/code-block-button";
|
|
16
16
|
import { LinkPopover } from "./components/link-popover/link-popover";
|
|
17
17
|
import { ImagePopover } from "./components/image-popover/image-popover";
|
|
18
|
+
import {
|
|
19
|
+
CodeBlockExtension,
|
|
20
|
+
createCodeBlockExtension,
|
|
21
|
+
defaultLowlight
|
|
22
|
+
} from "./extensions/code-block";
|
|
23
|
+
import { LanguageSelect } from "./components/code-block-view/language-select";
|
|
24
|
+
import { LANGUAGES, getLanguageLabel } from "./lib/languages";
|
|
25
|
+
import { highlightCodeToHtml } from "./lib/highlight-code-to-html";
|
|
18
26
|
export {
|
|
19
27
|
BlockquoteButton,
|
|
20
28
|
CodeBlockButton,
|
|
29
|
+
CodeBlockExtension,
|
|
21
30
|
HeadingDropdownMenu,
|
|
22
31
|
ImagePopover,
|
|
32
|
+
LANGUAGES,
|
|
33
|
+
LanguageSelect,
|
|
23
34
|
LinkPopover,
|
|
24
35
|
ListDropdownMenu,
|
|
25
36
|
MarkButton,
|
|
@@ -29,6 +40,10 @@ export {
|
|
|
29
40
|
Toolbar,
|
|
30
41
|
ToolbarGroup,
|
|
31
42
|
ToolbarSeparator,
|
|
32
|
-
UndoRedoButton
|
|
43
|
+
UndoRedoButton,
|
|
44
|
+
createCodeBlockExtension,
|
|
45
|
+
defaultLowlight,
|
|
46
|
+
getLanguageLabel,
|
|
47
|
+
highlightCodeToHtml
|
|
33
48
|
};
|
|
34
49
|
//# sourceMappingURL=index.mjs.map
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["import './styles/globals.css';\n\nexport { NotraEditor } from './notra-editor';\nexport type { NotraEditorProps } from './notra-editor';\n\nexport { NotraReader } from './notra-reader';\nexport type { NotraReaderProps } from './notra-reader';\n\nexport {\n\tToolbar,\n\tToolbarGroup,\n\tToolbarSeparator\n} from './components/toolbar/toolbar';\nexport type {\n\tToolbarProps,\n\tToolbarSeparatorProps\n} from './components/toolbar/toolbar';\n\nexport { UndoRedoButton } from './components/undo-redo-button/undo-redo-button';\nexport type { UndoRedoButtonProps } from './components/undo-redo-button/undo-redo-button';\n\nexport { Spacer } from './components/ui/spacer';\n\nexport { MarkButton } from './components/mark-button/mark-button';\nexport type { MarkButtonProps } from './components/mark-button/mark-button';\nexport type { MarkType } from './components/mark-button/use-mark';\n\nexport { HeadingDropdownMenu } from './components/heading-dropdown-menu/heading-dropdown-menu';\nexport type { HeadingDropdownMenuProps } from './components/heading-dropdown-menu/heading-dropdown-menu';\n\nexport { ListDropdownMenu } from './components/list-dropdown-menu/list-dropdown-menu';\nexport type { ListDropdownMenuProps } from './components/list-dropdown-menu/list-dropdown-menu';\n\nexport { BlockquoteButton } from './components/blockquote-button/blockquote-button';\nexport type { BlockquoteButtonProps } from './components/blockquote-button/blockquote-button';\n\nexport { CodeBlockButton } from './components/code-block-button/code-block-button';\nexport type { CodeBlockButtonProps } from './components/code-block-button/code-block-button';\n\nexport { LinkPopover } from './components/link-popover/link-popover';\nexport type { LinkPopoverProps } from './components/link-popover/link-popover';\n\nexport { ImagePopover } from './components/image-popover/image-popover';\nexport type { ImagePopoverProps } from './components/image-popover/image-popover';\n"],"mappings":"AAAA,OAAO;AAEP,SAAS,mBAAmB;AAG5B,SAAS,mBAAmB;AAG5B;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,OACM;AAMP,SAAS,sBAAsB;AAG/B,SAAS,cAAc;AAEvB,SAAS,kBAAkB;AAI3B,SAAS,2BAA2B;AAGpC,SAAS,wBAAwB;AAGjC,SAAS,wBAAwB;AAGjC,SAAS,uBAAuB;AAGhC,SAAS,mBAAmB;AAG5B,SAAS,oBAAoB;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["import './styles/globals.css';\n\nexport { NotraEditor } from './notra-editor';\nexport type { NotraEditorProps } from './notra-editor';\n\nexport { NotraReader } from './notra-reader';\nexport type { NotraReaderProps } from './notra-reader';\n\nexport {\n\tToolbar,\n\tToolbarGroup,\n\tToolbarSeparator\n} from './components/toolbar/toolbar';\nexport type {\n\tToolbarProps,\n\tToolbarSeparatorProps\n} from './components/toolbar/toolbar';\n\nexport { UndoRedoButton } from './components/undo-redo-button/undo-redo-button';\nexport type { UndoRedoButtonProps } from './components/undo-redo-button/undo-redo-button';\n\nexport { Spacer } from './components/ui/spacer';\n\nexport { MarkButton } from './components/mark-button/mark-button';\nexport type { MarkButtonProps } from './components/mark-button/mark-button';\nexport type { MarkType } from './components/mark-button/use-mark';\n\nexport { HeadingDropdownMenu } from './components/heading-dropdown-menu/heading-dropdown-menu';\nexport type { HeadingDropdownMenuProps } from './components/heading-dropdown-menu/heading-dropdown-menu';\n\nexport { ListDropdownMenu } from './components/list-dropdown-menu/list-dropdown-menu';\nexport type { ListDropdownMenuProps } from './components/list-dropdown-menu/list-dropdown-menu';\n\nexport { BlockquoteButton } from './components/blockquote-button/blockquote-button';\nexport type { BlockquoteButtonProps } from './components/blockquote-button/blockquote-button';\n\nexport { CodeBlockButton } from './components/code-block-button/code-block-button';\nexport type { CodeBlockButtonProps } from './components/code-block-button/code-block-button';\n\nexport { LinkPopover } from './components/link-popover/link-popover';\nexport type { LinkPopoverProps } from './components/link-popover/link-popover';\n\nexport { ImagePopover } from './components/image-popover/image-popover';\nexport type { ImagePopoverProps } from './components/image-popover/image-popover';\n\nexport {\n\tCodeBlockExtension,\n\tcreateCodeBlockExtension,\n\tdefaultLowlight\n} from './extensions/code-block';\n\nexport { LanguageSelect } from './components/code-block-view/language-select';\nexport type { LanguageSelectProps } from './components/code-block-view/language-select';\n\nexport { LANGUAGES, getLanguageLabel } from './lib/languages';\nexport type { Language } from './lib/languages';\n\nexport { highlightCodeToHtml } from './lib/highlight-code-to-html';\n"],"mappings":"AAAA,OAAO;AAEP,SAAS,mBAAmB;AAG5B,SAAS,mBAAmB;AAG5B;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,OACM;AAMP,SAAS,sBAAsB;AAG/B,SAAS,cAAc;AAEvB,SAAS,kBAAkB;AAI3B,SAAS,2BAA2B;AAGpC,SAAS,wBAAwB;AAGjC,SAAS,wBAAwB;AAGjC,SAAS,uBAAuB;AAGhC,SAAS,mBAAmB;AAG5B,SAAS,oBAAoB;AAG7B;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,OACM;AAEP,SAAS,sBAAsB;AAG/B,SAAS,WAAW,wBAAwB;AAG5C,SAAS,2BAA2B;","names":[]}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var highlight_code_to_html_exports = {};
|
|
20
|
+
__export(highlight_code_to_html_exports, {
|
|
21
|
+
highlightCodeToHtml: () => highlightCodeToHtml
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(highlight_code_to_html_exports);
|
|
24
|
+
var import_hast_util_to_html = require("hast-util-to-html");
|
|
25
|
+
function highlightCodeToHtml(code, language, lowlight) {
|
|
26
|
+
if (!code) return "";
|
|
27
|
+
const lang = language ?? "auto";
|
|
28
|
+
if (lang === "plaintext") {
|
|
29
|
+
return (0, import_hast_util_to_html.toHtml)({ type: "text", value: code });
|
|
30
|
+
}
|
|
31
|
+
const tree = lang === "auto" || !lowlight.registered(lang) ? lowlight.highlightAuto(code) : lowlight.highlight(lang, code);
|
|
32
|
+
return (0, import_hast_util_to_html.toHtml)(tree);
|
|
33
|
+
}
|
|
34
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
35
|
+
0 && (module.exports = {
|
|
36
|
+
highlightCodeToHtml
|
|
37
|
+
});
|
|
38
|
+
//# sourceMappingURL=highlight-code-to-html.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/lib/highlight-code-to-html.ts"],"sourcesContent":["import { toHtml } from 'hast-util-to-html';\n\nimport type { createLowlight } from 'lowlight';\n\ntype Lowlight = ReturnType<typeof createLowlight>;\n\n// Server-safe: lowlight + hast-util-to-html are pure JS and run in Node.\n// Used by NotraReader's nodeMapping.codeBlock; the editor uses the\n// extension's built-in ProseMirror decorations instead.\nexport function highlightCodeToHtml(\n\tcode: string,\n\tlanguage: string | null | undefined,\n\tlowlight: Lowlight\n): string {\n\tif (!code) return '';\n\n\tconst lang = language ?? 'auto';\n\n\t// \"plaintext\" deliberately skips highlighting — emit only escaped text.\n\tif (lang === 'plaintext') {\n\t\treturn toHtml({ type: 'text', value: code });\n\t}\n\n\tconst tree =\n\t\tlang === 'auto' || !lowlight.registered(lang)\n\t\t\t? lowlight.highlightAuto(code)\n\t\t\t: lowlight.highlight(lang, code);\n\n\treturn toHtml(tree);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,+BAAuB;AAShB,SAAS,oBACf,MACA,UACA,UACS;AACT,MAAI,CAAC,KAAM,QAAO;AAElB,QAAM,OAAO,YAAY;AAGzB,MAAI,SAAS,aAAa;AACzB,eAAO,iCAAO,EAAE,MAAM,QAAQ,OAAO,KAAK,CAAC;AAAA,EAC5C;AAEA,QAAM,OACL,SAAS,UAAU,CAAC,SAAS,WAAW,IAAI,IACzC,SAAS,cAAc,IAAI,IAC3B,SAAS,UAAU,MAAM,IAAI;AAEjC,aAAO,iCAAO,IAAI;AACnB;","names":[]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { toHtml } from "hast-util-to-html";
|
|
2
|
+
function highlightCodeToHtml(code, language, lowlight) {
|
|
3
|
+
if (!code) return "";
|
|
4
|
+
const lang = language ?? "auto";
|
|
5
|
+
if (lang === "plaintext") {
|
|
6
|
+
return toHtml({ type: "text", value: code });
|
|
7
|
+
}
|
|
8
|
+
const tree = lang === "auto" || !lowlight.registered(lang) ? lowlight.highlightAuto(code) : lowlight.highlight(lang, code);
|
|
9
|
+
return toHtml(tree);
|
|
10
|
+
}
|
|
11
|
+
export {
|
|
12
|
+
highlightCodeToHtml
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=highlight-code-to-html.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/lib/highlight-code-to-html.ts"],"sourcesContent":["import { toHtml } from 'hast-util-to-html';\n\nimport type { createLowlight } from 'lowlight';\n\ntype Lowlight = ReturnType<typeof createLowlight>;\n\n// Server-safe: lowlight + hast-util-to-html are pure JS and run in Node.\n// Used by NotraReader's nodeMapping.codeBlock; the editor uses the\n// extension's built-in ProseMirror decorations instead.\nexport function highlightCodeToHtml(\n\tcode: string,\n\tlanguage: string | null | undefined,\n\tlowlight: Lowlight\n): string {\n\tif (!code) return '';\n\n\tconst lang = language ?? 'auto';\n\n\t// \"plaintext\" deliberately skips highlighting — emit only escaped text.\n\tif (lang === 'plaintext') {\n\t\treturn toHtml({ type: 'text', value: code });\n\t}\n\n\tconst tree =\n\t\tlang === 'auto' || !lowlight.registered(lang)\n\t\t\t? lowlight.highlightAuto(code)\n\t\t\t: lowlight.highlight(lang, code);\n\n\treturn toHtml(tree);\n}\n"],"mappings":"AAAA,SAAS,cAAc;AAShB,SAAS,oBACf,MACA,UACA,UACS;AACT,MAAI,CAAC,KAAM,QAAO;AAElB,QAAM,OAAO,YAAY;AAGzB,MAAI,SAAS,aAAa;AACzB,WAAO,OAAO,EAAE,MAAM,QAAQ,OAAO,KAAK,CAAC;AAAA,EAC5C;AAEA,QAAM,OACL,SAAS,UAAU,CAAC,SAAS,WAAW,IAAI,IACzC,SAAS,cAAc,IAAI,IAC3B,SAAS,UAAU,MAAM,IAAI;AAEjC,SAAO,OAAO,IAAI;AACnB;","names":[]}
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var languages_exports = {};
|
|
20
|
+
__export(languages_exports, {
|
|
21
|
+
LANGUAGES: () => LANGUAGES,
|
|
22
|
+
getLanguageLabel: () => getLanguageLabel,
|
|
23
|
+
normalizeLanguage: () => normalizeLanguage
|
|
24
|
+
});
|
|
25
|
+
module.exports = __toCommonJS(languages_exports);
|
|
26
|
+
const LANGUAGES = [
|
|
27
|
+
{ label: "Auto", value: "auto" },
|
|
28
|
+
{ label: "Plain Text", value: "plaintext" },
|
|
29
|
+
{ label: "ABAP", value: "abap" },
|
|
30
|
+
{ label: "Agda", value: "agda" },
|
|
31
|
+
{ label: "Arduino", value: "arduino", aliases: ["ino"] },
|
|
32
|
+
{ label: "ASCII Art", value: "ascii" },
|
|
33
|
+
{ label: "Assembly", value: "x86asm" },
|
|
34
|
+
{ label: "Bash", value: "bash", aliases: ["sh", "zsh"] },
|
|
35
|
+
{ label: "BASIC", value: "basic" },
|
|
36
|
+
{ label: "BNF", value: "bnf" },
|
|
37
|
+
{ label: "C", value: "c", aliases: ["h"] },
|
|
38
|
+
{ label: "C#", value: "csharp", aliases: ["cs", "c#"] },
|
|
39
|
+
{
|
|
40
|
+
label: "C++",
|
|
41
|
+
value: "cpp",
|
|
42
|
+
aliases: ["cc", "c++", "h++", "hpp", "hh", "hxx", "cxx"]
|
|
43
|
+
},
|
|
44
|
+
{ label: "Clojure", value: "clojure", aliases: ["clj", "edn"] },
|
|
45
|
+
{
|
|
46
|
+
label: "CoffeeScript",
|
|
47
|
+
value: "coffeescript",
|
|
48
|
+
aliases: ["coffee", "cson", "iced"]
|
|
49
|
+
},
|
|
50
|
+
{ label: "Coq", value: "coq" },
|
|
51
|
+
{ label: "CSS", value: "css" },
|
|
52
|
+
{ label: "Dart", value: "dart" },
|
|
53
|
+
{ label: "Dhall", value: "dhall" },
|
|
54
|
+
{ label: "Diff", value: "diff", aliases: ["patch"] },
|
|
55
|
+
{ label: "Docker", value: "dockerfile", aliases: ["docker"] },
|
|
56
|
+
{ label: "EBNF", value: "ebnf" },
|
|
57
|
+
{ label: "Elixir", value: "elixir", aliases: ["ex", "exs"] },
|
|
58
|
+
{ label: "Elm", value: "elm" },
|
|
59
|
+
{ label: "Erlang", value: "erlang", aliases: ["erl"] },
|
|
60
|
+
{ label: "F#", value: "fsharp", aliases: ["fs", "f#"] },
|
|
61
|
+
{ label: "Flow", value: "flow" },
|
|
62
|
+
{ label: "Fortran", value: "fortran", aliases: ["f90", "f95"] },
|
|
63
|
+
{ label: "Gherkin", value: "gherkin", aliases: ["feature"] },
|
|
64
|
+
{ label: "GLSL", value: "glsl" },
|
|
65
|
+
{ label: "Go", value: "go", aliases: ["golang"] },
|
|
66
|
+
{ label: "GraphQL", value: "graphql", aliases: ["gql"] },
|
|
67
|
+
{ label: "Groovy", value: "groovy" },
|
|
68
|
+
{ label: "Haskell", value: "haskell", aliases: ["hs"] },
|
|
69
|
+
{ label: "HCL", value: "hcl" },
|
|
70
|
+
{ label: "HTML", value: "html" },
|
|
71
|
+
{ label: "Idris", value: "idris" },
|
|
72
|
+
{ label: "Java", value: "java", aliases: ["jsp"] },
|
|
73
|
+
{
|
|
74
|
+
label: "JavaScript",
|
|
75
|
+
value: "javascript",
|
|
76
|
+
aliases: ["js", "jsx", "mjs", "cjs"]
|
|
77
|
+
},
|
|
78
|
+
{ label: "JSON", value: "json", aliases: ["jsonc"] },
|
|
79
|
+
{ label: "Julia", value: "julia" },
|
|
80
|
+
{ label: "Kotlin", value: "kotlin", aliases: ["kt", "kts"] },
|
|
81
|
+
{ label: "LaTeX", value: "latex", aliases: ["tex"] },
|
|
82
|
+
{ label: "Less", value: "less" },
|
|
83
|
+
{ label: "Lisp", value: "lisp" },
|
|
84
|
+
{ label: "LiveScript", value: "livescript", aliases: ["ls"] },
|
|
85
|
+
{ label: "LLVM IR", value: "llvm" },
|
|
86
|
+
{ label: "Lua", value: "lua", aliases: ["pluto"] },
|
|
87
|
+
{ label: "Makefile", value: "makefile", aliases: ["mk", "mak", "make"] },
|
|
88
|
+
{ label: "Markdown", value: "markdown", aliases: ["md", "mkdown", "mkd"] },
|
|
89
|
+
{ label: "Markup", value: "markup" },
|
|
90
|
+
{ label: "MATLAB", value: "matlab" },
|
|
91
|
+
{ label: "Mathematica", value: "mathematica", aliases: ["mma", "wl"] },
|
|
92
|
+
{ label: "Mermaid", value: "mermaid" },
|
|
93
|
+
{ label: "Nix", value: "nix", aliases: ["nixos"] },
|
|
94
|
+
{ label: "Notion Formula", value: "notion" },
|
|
95
|
+
{
|
|
96
|
+
label: "Objective-C",
|
|
97
|
+
value: "objectivec",
|
|
98
|
+
aliases: ["mm", "objc", "obj-c", "obj-c++", "objective-c++"]
|
|
99
|
+
},
|
|
100
|
+
{ label: "OCaml", value: "ocaml", aliases: ["ml"] },
|
|
101
|
+
{ label: "Pascal", value: "pascal" },
|
|
102
|
+
{ label: "Perl", value: "perl", aliases: ["pl", "pm"] },
|
|
103
|
+
{ label: "PHP", value: "php" },
|
|
104
|
+
{ label: "PowerShell", value: "powershell", aliases: ["pwsh", "ps", "ps1"] },
|
|
105
|
+
{ label: "Prolog", value: "prolog" },
|
|
106
|
+
{ label: "Protocol Buffers", value: "protobuf", aliases: ["proto"] },
|
|
107
|
+
{ label: "PureScript", value: "purescript" },
|
|
108
|
+
{ label: "Python", value: "python", aliases: ["py", "gyp", "ipython"] },
|
|
109
|
+
{ label: "R", value: "r" },
|
|
110
|
+
{ label: "Racket", value: "racket" },
|
|
111
|
+
{ label: "Reason", value: "reasonml", aliases: ["re"] },
|
|
112
|
+
{
|
|
113
|
+
label: "Ruby",
|
|
114
|
+
value: "ruby",
|
|
115
|
+
aliases: ["rb", "gemspec", "podspec", "thor", "irb"]
|
|
116
|
+
},
|
|
117
|
+
{ label: "Rust", value: "rust", aliases: ["rs"] },
|
|
118
|
+
{ label: "Sass", value: "sass" },
|
|
119
|
+
{ label: "Scala", value: "scala" },
|
|
120
|
+
{ label: "Scheme", value: "scheme", aliases: ["scm"] },
|
|
121
|
+
{ label: "SCSS", value: "scss" },
|
|
122
|
+
{ label: "Shell", value: "shell", aliases: ["console", "shellsession"] },
|
|
123
|
+
{ label: "Smalltalk", value: "smalltalk", aliases: ["st"] },
|
|
124
|
+
{ label: "Solidity", value: "solidity" },
|
|
125
|
+
{ label: "SQL", value: "sql" },
|
|
126
|
+
{ label: "Swift", value: "swift" },
|
|
127
|
+
{ label: "TOML", value: "toml" },
|
|
128
|
+
{
|
|
129
|
+
label: "TypeScript",
|
|
130
|
+
value: "typescript",
|
|
131
|
+
aliases: ["ts", "tsx", "mts", "cts"]
|
|
132
|
+
},
|
|
133
|
+
{ label: "VB.Net", value: "vbnet", aliases: ["vb"] },
|
|
134
|
+
{ label: "Verilog", value: "verilog", aliases: ["v", "sv", "svh"] },
|
|
135
|
+
{ label: "VHDL", value: "vhdl" },
|
|
136
|
+
{ label: "Visual Basic", value: "visualbasic" },
|
|
137
|
+
{ label: "WebAssembly", value: "wasm" },
|
|
138
|
+
{
|
|
139
|
+
label: "XML",
|
|
140
|
+
value: "xml",
|
|
141
|
+
// Note: highlight.js also lists "html" here, but `html` is its own
|
|
142
|
+
// canonical entry above; including it would rewrite html → xml.
|
|
143
|
+
aliases: [
|
|
144
|
+
"xhtml",
|
|
145
|
+
"rss",
|
|
146
|
+
"atom",
|
|
147
|
+
"xjb",
|
|
148
|
+
"xsd",
|
|
149
|
+
"xsl",
|
|
150
|
+
"plist",
|
|
151
|
+
"wsf",
|
|
152
|
+
"svg"
|
|
153
|
+
]
|
|
154
|
+
},
|
|
155
|
+
{ label: "YAML", value: "yaml", aliases: ["yml"] }
|
|
156
|
+
];
|
|
157
|
+
const ALIAS_TO_CANONICAL = (() => {
|
|
158
|
+
const map = /* @__PURE__ */ new Map();
|
|
159
|
+
for (const lang of LANGUAGES) {
|
|
160
|
+
for (const alias of lang.aliases ?? []) {
|
|
161
|
+
map.set(alias, lang.value);
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
return map;
|
|
165
|
+
})();
|
|
166
|
+
function normalizeLanguage(input) {
|
|
167
|
+
if (!input) return "";
|
|
168
|
+
return ALIAS_TO_CANONICAL.get(input) ?? input;
|
|
169
|
+
}
|
|
170
|
+
function getLanguageLabel(value) {
|
|
171
|
+
if (!value) return "Auto";
|
|
172
|
+
const found = LANGUAGES.find((l) => l.value === value);
|
|
173
|
+
return found?.label ?? value;
|
|
174
|
+
}
|
|
175
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
176
|
+
0 && (module.exports = {
|
|
177
|
+
LANGUAGES,
|
|
178
|
+
getLanguageLabel,
|
|
179
|
+
normalizeLanguage
|
|
180
|
+
});
|
|
181
|
+
//# sourceMappingURL=languages.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/lib/languages.ts"],"sourcesContent":["export interface Language {\n\tlabel: string;\n\tvalue: string;\n\t/**\n\t * Aliases recognized by highlight.js for this language. Used by\n\t * `normalizeLanguage` so the markdown input rule (e.g. ```js + Enter)\n\t * stores the canonical `value` instead of the raw alias. Only canonical\n\t * values are listed in this table; an alias that already exists as a\n\t * canonical `value` (e.g. `html` for `xml`) is intentionally excluded\n\t * to preserve the existing UI label.\n\t */\n\taliases?: string[];\n}\n\n// Curated set transcribed from demo/notra/components/editor/ui/language-select.tsx.\n// Keep the order: auto and plaintext first, then alphabetical by label.\n// `aliases` mirror the `aliases` field of the corresponding highlight.js\n// language module (highlight.js@11). Entries missing from highlight.js's\n// shipped languages have no aliases.\nexport const LANGUAGES: Language[] = [\n\t{ label: 'Auto', value: 'auto' },\n\t{ label: 'Plain Text', value: 'plaintext' },\n\t{ label: 'ABAP', value: 'abap' },\n\t{ label: 'Agda', value: 'agda' },\n\t{ label: 'Arduino', value: 'arduino', aliases: ['ino'] },\n\t{ label: 'ASCII Art', value: 'ascii' },\n\t{ label: 'Assembly', value: 'x86asm' },\n\t{ label: 'Bash', value: 'bash', aliases: ['sh', 'zsh'] },\n\t{ label: 'BASIC', value: 'basic' },\n\t{ label: 'BNF', value: 'bnf' },\n\t{ label: 'C', value: 'c', aliases: ['h'] },\n\t{ label: 'C#', value: 'csharp', aliases: ['cs', 'c#'] },\n\t{\n\t\tlabel: 'C++',\n\t\tvalue: 'cpp',\n\t\taliases: ['cc', 'c++', 'h++', 'hpp', 'hh', 'hxx', 'cxx']\n\t},\n\t{ label: 'Clojure', value: 'clojure', aliases: ['clj', 'edn'] },\n\t{\n\t\tlabel: 'CoffeeScript',\n\t\tvalue: 'coffeescript',\n\t\taliases: ['coffee', 'cson', 'iced']\n\t},\n\t{ label: 'Coq', value: 'coq' },\n\t{ label: 'CSS', value: 'css' },\n\t{ label: 'Dart', value: 'dart' },\n\t{ label: 'Dhall', value: 'dhall' },\n\t{ label: 'Diff', value: 'diff', aliases: ['patch'] },\n\t{ label: 'Docker', value: 'dockerfile', aliases: ['docker'] },\n\t{ label: 'EBNF', value: 'ebnf' },\n\t{ label: 'Elixir', value: 'elixir', aliases: ['ex', 'exs'] },\n\t{ label: 'Elm', value: 'elm' },\n\t{ label: 'Erlang', value: 'erlang', aliases: ['erl'] },\n\t{ label: 'F#', value: 'fsharp', aliases: ['fs', 'f#'] },\n\t{ label: 'Flow', value: 'flow' },\n\t{ label: 'Fortran', value: 'fortran', aliases: ['f90', 'f95'] },\n\t{ label: 'Gherkin', value: 'gherkin', aliases: ['feature'] },\n\t{ label: 'GLSL', value: 'glsl' },\n\t{ label: 'Go', value: 'go', aliases: ['golang'] },\n\t{ label: 'GraphQL', value: 'graphql', aliases: ['gql'] },\n\t{ label: 'Groovy', value: 'groovy' },\n\t{ label: 'Haskell', value: 'haskell', aliases: ['hs'] },\n\t{ label: 'HCL', value: 'hcl' },\n\t{ label: 'HTML', value: 'html' },\n\t{ label: 'Idris', value: 'idris' },\n\t{ label: 'Java', value: 'java', aliases: ['jsp'] },\n\t{\n\t\tlabel: 'JavaScript',\n\t\tvalue: 'javascript',\n\t\taliases: ['js', 'jsx', 'mjs', 'cjs']\n\t},\n\t{ label: 'JSON', value: 'json', aliases: ['jsonc'] },\n\t{ label: 'Julia', value: 'julia' },\n\t{ label: 'Kotlin', value: 'kotlin', aliases: ['kt', 'kts'] },\n\t{ label: 'LaTeX', value: 'latex', aliases: ['tex'] },\n\t{ label: 'Less', value: 'less' },\n\t{ label: 'Lisp', value: 'lisp' },\n\t{ label: 'LiveScript', value: 'livescript', aliases: ['ls'] },\n\t{ label: 'LLVM IR', value: 'llvm' },\n\t{ label: 'Lua', value: 'lua', aliases: ['pluto'] },\n\t{ label: 'Makefile', value: 'makefile', aliases: ['mk', 'mak', 'make'] },\n\t{ label: 'Markdown', value: 'markdown', aliases: ['md', 'mkdown', 'mkd'] },\n\t{ label: 'Markup', value: 'markup' },\n\t{ label: 'MATLAB', value: 'matlab' },\n\t{ label: 'Mathematica', value: 'mathematica', aliases: ['mma', 'wl'] },\n\t{ label: 'Mermaid', value: 'mermaid' },\n\t{ label: 'Nix', value: 'nix', aliases: ['nixos'] },\n\t{ label: 'Notion Formula', value: 'notion' },\n\t{\n\t\tlabel: 'Objective-C',\n\t\tvalue: 'objectivec',\n\t\taliases: ['mm', 'objc', 'obj-c', 'obj-c++', 'objective-c++']\n\t},\n\t{ label: 'OCaml', value: 'ocaml', aliases: ['ml'] },\n\t{ label: 'Pascal', value: 'pascal' },\n\t{ label: 'Perl', value: 'perl', aliases: ['pl', 'pm'] },\n\t{ label: 'PHP', value: 'php' },\n\t{ label: 'PowerShell', value: 'powershell', aliases: ['pwsh', 'ps', 'ps1'] },\n\t{ label: 'Prolog', value: 'prolog' },\n\t{ label: 'Protocol Buffers', value: 'protobuf', aliases: ['proto'] },\n\t{ label: 'PureScript', value: 'purescript' },\n\t{ label: 'Python', value: 'python', aliases: ['py', 'gyp', 'ipython'] },\n\t{ label: 'R', value: 'r' },\n\t{ label: 'Racket', value: 'racket' },\n\t{ label: 'Reason', value: 'reasonml', aliases: ['re'] },\n\t{\n\t\tlabel: 'Ruby',\n\t\tvalue: 'ruby',\n\t\taliases: ['rb', 'gemspec', 'podspec', 'thor', 'irb']\n\t},\n\t{ label: 'Rust', value: 'rust', aliases: ['rs'] },\n\t{ label: 'Sass', value: 'sass' },\n\t{ label: 'Scala', value: 'scala' },\n\t{ label: 'Scheme', value: 'scheme', aliases: ['scm'] },\n\t{ label: 'SCSS', value: 'scss' },\n\t{ label: 'Shell', value: 'shell', aliases: ['console', 'shellsession'] },\n\t{ label: 'Smalltalk', value: 'smalltalk', aliases: ['st'] },\n\t{ label: 'Solidity', value: 'solidity' },\n\t{ label: 'SQL', value: 'sql' },\n\t{ label: 'Swift', value: 'swift' },\n\t{ label: 'TOML', value: 'toml' },\n\t{\n\t\tlabel: 'TypeScript',\n\t\tvalue: 'typescript',\n\t\taliases: ['ts', 'tsx', 'mts', 'cts']\n\t},\n\t{ label: 'VB.Net', value: 'vbnet', aliases: ['vb'] },\n\t{ label: 'Verilog', value: 'verilog', aliases: ['v', 'sv', 'svh'] },\n\t{ label: 'VHDL', value: 'vhdl' },\n\t{ label: 'Visual Basic', value: 'visualbasic' },\n\t{ label: 'WebAssembly', value: 'wasm' },\n\t{\n\t\tlabel: 'XML',\n\t\tvalue: 'xml',\n\t\t// Note: highlight.js also lists \"html\" here, but `html` is its own\n\t\t// canonical entry above; including it would rewrite html → xml.\n\t\taliases: [\n\t\t\t'xhtml',\n\t\t\t'rss',\n\t\t\t'atom',\n\t\t\t'xjb',\n\t\t\t'xsd',\n\t\t\t'xsl',\n\t\t\t'plist',\n\t\t\t'wsf',\n\t\t\t'svg'\n\t\t]\n\t},\n\t{ label: 'YAML', value: 'yaml', aliases: ['yml'] }\n];\n\nconst ALIAS_TO_CANONICAL = (() => {\n\tconst map = new Map<string, string>();\n\n\tfor (const lang of LANGUAGES) {\n\t\tfor (const alias of lang.aliases ?? []) {\n\t\t\tmap.set(alias, lang.value);\n\t\t}\n\t}\n\n\treturn map;\n})();\n\n/**\n * Resolve a user-supplied language identifier to a canonical LANGUAGES.value.\n * Aliases (e.g. `js`, `ts`, `py`) collapse to their canonical form\n * (`javascript`, `typescript`, `python`); unknown identifiers and canonical\n * values pass through unchanged. Empty / undefined input returns ''.\n */\nexport function normalizeLanguage(input: string | undefined | null): string {\n\tif (!input) return '';\n\n\treturn ALIAS_TO_CANONICAL.get(input) ?? input;\n}\n\nexport function getLanguageLabel(value: string | null | undefined): string {\n\tif (!value) return 'Auto';\n\n\tconst found = LANGUAGES.find((l) => l.value === value);\n\n\treturn found?.label ?? value;\n}\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
interface Language {
|
|
2
|
+
label: string;
|
|
3
|
+
value: string;
|
|
4
|
+
/**
|
|
5
|
+
* Aliases recognized by highlight.js for this language. Used by
|
|
6
|
+
* `normalizeLanguage` so the markdown input rule (e.g. ```js + Enter)
|
|
7
|
+
* stores the canonical `value` instead of the raw alias. Only canonical
|
|
8
|
+
* values are listed in this table; an alias that already exists as a
|
|
9
|
+
* canonical `value` (e.g. `html` for `xml`) is intentionally excluded
|
|
10
|
+
* to preserve the existing UI label.
|
|
11
|
+
*/
|
|
12
|
+
aliases?: string[];
|
|
13
|
+
}
|
|
14
|
+
declare const LANGUAGES: Language[];
|
|
15
|
+
/**
|
|
16
|
+
* Resolve a user-supplied language identifier to a canonical LANGUAGES.value.
|
|
17
|
+
* Aliases (e.g. `js`, `ts`, `py`) collapse to their canonical form
|
|
18
|
+
* (`javascript`, `typescript`, `python`); unknown identifiers and canonical
|
|
19
|
+
* values pass through unchanged. Empty / undefined input returns ''.
|
|
20
|
+
*/
|
|
21
|
+
declare function normalizeLanguage(input: string | undefined | null): string;
|
|
22
|
+
declare function getLanguageLabel(value: string | null | undefined): string;
|
|
23
|
+
|
|
24
|
+
export { LANGUAGES, type Language, getLanguageLabel, normalizeLanguage };
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
interface Language {
|
|
2
|
+
label: string;
|
|
3
|
+
value: string;
|
|
4
|
+
/**
|
|
5
|
+
* Aliases recognized by highlight.js for this language. Used by
|
|
6
|
+
* `normalizeLanguage` so the markdown input rule (e.g. ```js + Enter)
|
|
7
|
+
* stores the canonical `value` instead of the raw alias. Only canonical
|
|
8
|
+
* values are listed in this table; an alias that already exists as a
|
|
9
|
+
* canonical `value` (e.g. `html` for `xml`) is intentionally excluded
|
|
10
|
+
* to preserve the existing UI label.
|
|
11
|
+
*/
|
|
12
|
+
aliases?: string[];
|
|
13
|
+
}
|
|
14
|
+
declare const LANGUAGES: Language[];
|
|
15
|
+
/**
|
|
16
|
+
* Resolve a user-supplied language identifier to a canonical LANGUAGES.value.
|
|
17
|
+
* Aliases (e.g. `js`, `ts`, `py`) collapse to their canonical form
|
|
18
|
+
* (`javascript`, `typescript`, `python`); unknown identifiers and canonical
|
|
19
|
+
* values pass through unchanged. Empty / undefined input returns ''.
|
|
20
|
+
*/
|
|
21
|
+
declare function normalizeLanguage(input: string | undefined | null): string;
|
|
22
|
+
declare function getLanguageLabel(value: string | null | undefined): string;
|
|
23
|
+
|
|
24
|
+
export { LANGUAGES, type Language, getLanguageLabel, normalizeLanguage };
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
const LANGUAGES = [
|
|
2
|
+
{ label: "Auto", value: "auto" },
|
|
3
|
+
{ label: "Plain Text", value: "plaintext" },
|
|
4
|
+
{ label: "ABAP", value: "abap" },
|
|
5
|
+
{ label: "Agda", value: "agda" },
|
|
6
|
+
{ label: "Arduino", value: "arduino", aliases: ["ino"] },
|
|
7
|
+
{ label: "ASCII Art", value: "ascii" },
|
|
8
|
+
{ label: "Assembly", value: "x86asm" },
|
|
9
|
+
{ label: "Bash", value: "bash", aliases: ["sh", "zsh"] },
|
|
10
|
+
{ label: "BASIC", value: "basic" },
|
|
11
|
+
{ label: "BNF", value: "bnf" },
|
|
12
|
+
{ label: "C", value: "c", aliases: ["h"] },
|
|
13
|
+
{ label: "C#", value: "csharp", aliases: ["cs", "c#"] },
|
|
14
|
+
{
|
|
15
|
+
label: "C++",
|
|
16
|
+
value: "cpp",
|
|
17
|
+
aliases: ["cc", "c++", "h++", "hpp", "hh", "hxx", "cxx"]
|
|
18
|
+
},
|
|
19
|
+
{ label: "Clojure", value: "clojure", aliases: ["clj", "edn"] },
|
|
20
|
+
{
|
|
21
|
+
label: "CoffeeScript",
|
|
22
|
+
value: "coffeescript",
|
|
23
|
+
aliases: ["coffee", "cson", "iced"]
|
|
24
|
+
},
|
|
25
|
+
{ label: "Coq", value: "coq" },
|
|
26
|
+
{ label: "CSS", value: "css" },
|
|
27
|
+
{ label: "Dart", value: "dart" },
|
|
28
|
+
{ label: "Dhall", value: "dhall" },
|
|
29
|
+
{ label: "Diff", value: "diff", aliases: ["patch"] },
|
|
30
|
+
{ label: "Docker", value: "dockerfile", aliases: ["docker"] },
|
|
31
|
+
{ label: "EBNF", value: "ebnf" },
|
|
32
|
+
{ label: "Elixir", value: "elixir", aliases: ["ex", "exs"] },
|
|
33
|
+
{ label: "Elm", value: "elm" },
|
|
34
|
+
{ label: "Erlang", value: "erlang", aliases: ["erl"] },
|
|
35
|
+
{ label: "F#", value: "fsharp", aliases: ["fs", "f#"] },
|
|
36
|
+
{ label: "Flow", value: "flow" },
|
|
37
|
+
{ label: "Fortran", value: "fortran", aliases: ["f90", "f95"] },
|
|
38
|
+
{ label: "Gherkin", value: "gherkin", aliases: ["feature"] },
|
|
39
|
+
{ label: "GLSL", value: "glsl" },
|
|
40
|
+
{ label: "Go", value: "go", aliases: ["golang"] },
|
|
41
|
+
{ label: "GraphQL", value: "graphql", aliases: ["gql"] },
|
|
42
|
+
{ label: "Groovy", value: "groovy" },
|
|
43
|
+
{ label: "Haskell", value: "haskell", aliases: ["hs"] },
|
|
44
|
+
{ label: "HCL", value: "hcl" },
|
|
45
|
+
{ label: "HTML", value: "html" },
|
|
46
|
+
{ label: "Idris", value: "idris" },
|
|
47
|
+
{ label: "Java", value: "java", aliases: ["jsp"] },
|
|
48
|
+
{
|
|
49
|
+
label: "JavaScript",
|
|
50
|
+
value: "javascript",
|
|
51
|
+
aliases: ["js", "jsx", "mjs", "cjs"]
|
|
52
|
+
},
|
|
53
|
+
{ label: "JSON", value: "json", aliases: ["jsonc"] },
|
|
54
|
+
{ label: "Julia", value: "julia" },
|
|
55
|
+
{ label: "Kotlin", value: "kotlin", aliases: ["kt", "kts"] },
|
|
56
|
+
{ label: "LaTeX", value: "latex", aliases: ["tex"] },
|
|
57
|
+
{ label: "Less", value: "less" },
|
|
58
|
+
{ label: "Lisp", value: "lisp" },
|
|
59
|
+
{ label: "LiveScript", value: "livescript", aliases: ["ls"] },
|
|
60
|
+
{ label: "LLVM IR", value: "llvm" },
|
|
61
|
+
{ label: "Lua", value: "lua", aliases: ["pluto"] },
|
|
62
|
+
{ label: "Makefile", value: "makefile", aliases: ["mk", "mak", "make"] },
|
|
63
|
+
{ label: "Markdown", value: "markdown", aliases: ["md", "mkdown", "mkd"] },
|
|
64
|
+
{ label: "Markup", value: "markup" },
|
|
65
|
+
{ label: "MATLAB", value: "matlab" },
|
|
66
|
+
{ label: "Mathematica", value: "mathematica", aliases: ["mma", "wl"] },
|
|
67
|
+
{ label: "Mermaid", value: "mermaid" },
|
|
68
|
+
{ label: "Nix", value: "nix", aliases: ["nixos"] },
|
|
69
|
+
{ label: "Notion Formula", value: "notion" },
|
|
70
|
+
{
|
|
71
|
+
label: "Objective-C",
|
|
72
|
+
value: "objectivec",
|
|
73
|
+
aliases: ["mm", "objc", "obj-c", "obj-c++", "objective-c++"]
|
|
74
|
+
},
|
|
75
|
+
{ label: "OCaml", value: "ocaml", aliases: ["ml"] },
|
|
76
|
+
{ label: "Pascal", value: "pascal" },
|
|
77
|
+
{ label: "Perl", value: "perl", aliases: ["pl", "pm"] },
|
|
78
|
+
{ label: "PHP", value: "php" },
|
|
79
|
+
{ label: "PowerShell", value: "powershell", aliases: ["pwsh", "ps", "ps1"] },
|
|
80
|
+
{ label: "Prolog", value: "prolog" },
|
|
81
|
+
{ label: "Protocol Buffers", value: "protobuf", aliases: ["proto"] },
|
|
82
|
+
{ label: "PureScript", value: "purescript" },
|
|
83
|
+
{ label: "Python", value: "python", aliases: ["py", "gyp", "ipython"] },
|
|
84
|
+
{ label: "R", value: "r" },
|
|
85
|
+
{ label: "Racket", value: "racket" },
|
|
86
|
+
{ label: "Reason", value: "reasonml", aliases: ["re"] },
|
|
87
|
+
{
|
|
88
|
+
label: "Ruby",
|
|
89
|
+
value: "ruby",
|
|
90
|
+
aliases: ["rb", "gemspec", "podspec", "thor", "irb"]
|
|
91
|
+
},
|
|
92
|
+
{ label: "Rust", value: "rust", aliases: ["rs"] },
|
|
93
|
+
{ label: "Sass", value: "sass" },
|
|
94
|
+
{ label: "Scala", value: "scala" },
|
|
95
|
+
{ label: "Scheme", value: "scheme", aliases: ["scm"] },
|
|
96
|
+
{ label: "SCSS", value: "scss" },
|
|
97
|
+
{ label: "Shell", value: "shell", aliases: ["console", "shellsession"] },
|
|
98
|
+
{ label: "Smalltalk", value: "smalltalk", aliases: ["st"] },
|
|
99
|
+
{ label: "Solidity", value: "solidity" },
|
|
100
|
+
{ label: "SQL", value: "sql" },
|
|
101
|
+
{ label: "Swift", value: "swift" },
|
|
102
|
+
{ label: "TOML", value: "toml" },
|
|
103
|
+
{
|
|
104
|
+
label: "TypeScript",
|
|
105
|
+
value: "typescript",
|
|
106
|
+
aliases: ["ts", "tsx", "mts", "cts"]
|
|
107
|
+
},
|
|
108
|
+
{ label: "VB.Net", value: "vbnet", aliases: ["vb"] },
|
|
109
|
+
{ label: "Verilog", value: "verilog", aliases: ["v", "sv", "svh"] },
|
|
110
|
+
{ label: "VHDL", value: "vhdl" },
|
|
111
|
+
{ label: "Visual Basic", value: "visualbasic" },
|
|
112
|
+
{ label: "WebAssembly", value: "wasm" },
|
|
113
|
+
{
|
|
114
|
+
label: "XML",
|
|
115
|
+
value: "xml",
|
|
116
|
+
// Note: highlight.js also lists "html" here, but `html` is its own
|
|
117
|
+
// canonical entry above; including it would rewrite html → xml.
|
|
118
|
+
aliases: [
|
|
119
|
+
"xhtml",
|
|
120
|
+
"rss",
|
|
121
|
+
"atom",
|
|
122
|
+
"xjb",
|
|
123
|
+
"xsd",
|
|
124
|
+
"xsl",
|
|
125
|
+
"plist",
|
|
126
|
+
"wsf",
|
|
127
|
+
"svg"
|
|
128
|
+
]
|
|
129
|
+
},
|
|
130
|
+
{ label: "YAML", value: "yaml", aliases: ["yml"] }
|
|
131
|
+
];
|
|
132
|
+
const ALIAS_TO_CANONICAL = (() => {
|
|
133
|
+
const map = /* @__PURE__ */ new Map();
|
|
134
|
+
for (const lang of LANGUAGES) {
|
|
135
|
+
for (const alias of lang.aliases ?? []) {
|
|
136
|
+
map.set(alias, lang.value);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
return map;
|
|
140
|
+
})();
|
|
141
|
+
function normalizeLanguage(input) {
|
|
142
|
+
if (!input) return "";
|
|
143
|
+
return ALIAS_TO_CANONICAL.get(input) ?? input;
|
|
144
|
+
}
|
|
145
|
+
function getLanguageLabel(value) {
|
|
146
|
+
if (!value) return "Auto";
|
|
147
|
+
const found = LANGUAGES.find((l) => l.value === value);
|
|
148
|
+
return found?.label ?? value;
|
|
149
|
+
}
|
|
150
|
+
export {
|
|
151
|
+
LANGUAGES,
|
|
152
|
+
getLanguageLabel,
|
|
153
|
+
normalizeLanguage
|
|
154
|
+
};
|
|
155
|
+
//# sourceMappingURL=languages.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/lib/languages.ts"],"sourcesContent":["export interface Language {\n\tlabel: string;\n\tvalue: string;\n\t/**\n\t * Aliases recognized by highlight.js for this language. Used by\n\t * `normalizeLanguage` so the markdown input rule (e.g. ```js + Enter)\n\t * stores the canonical `value` instead of the raw alias. Only canonical\n\t * values are listed in this table; an alias that already exists as a\n\t * canonical `value` (e.g. `html` for `xml`) is intentionally excluded\n\t * to preserve the existing UI label.\n\t */\n\taliases?: string[];\n}\n\n// Curated set transcribed from demo/notra/components/editor/ui/language-select.tsx.\n// Keep the order: auto and plaintext first, then alphabetical by label.\n// `aliases` mirror the `aliases` field of the corresponding highlight.js\n// language module (highlight.js@11). Entries missing from highlight.js's\n// shipped languages have no aliases.\nexport const LANGUAGES: Language[] = [\n\t{ label: 'Auto', value: 'auto' },\n\t{ label: 'Plain Text', value: 'plaintext' },\n\t{ label: 'ABAP', value: 'abap' },\n\t{ label: 'Agda', value: 'agda' },\n\t{ label: 'Arduino', value: 'arduino', aliases: ['ino'] },\n\t{ label: 'ASCII Art', value: 'ascii' },\n\t{ label: 'Assembly', value: 'x86asm' },\n\t{ label: 'Bash', value: 'bash', aliases: ['sh', 'zsh'] },\n\t{ label: 'BASIC', value: 'basic' },\n\t{ label: 'BNF', value: 'bnf' },\n\t{ label: 'C', value: 'c', aliases: ['h'] },\n\t{ label: 'C#', value: 'csharp', aliases: ['cs', 'c#'] },\n\t{\n\t\tlabel: 'C++',\n\t\tvalue: 'cpp',\n\t\taliases: ['cc', 'c++', 'h++', 'hpp', 'hh', 'hxx', 'cxx']\n\t},\n\t{ label: 'Clojure', value: 'clojure', aliases: ['clj', 'edn'] },\n\t{\n\t\tlabel: 'CoffeeScript',\n\t\tvalue: 'coffeescript',\n\t\taliases: ['coffee', 'cson', 'iced']\n\t},\n\t{ label: 'Coq', value: 'coq' },\n\t{ label: 'CSS', value: 'css' },\n\t{ label: 'Dart', value: 'dart' },\n\t{ label: 'Dhall', value: 'dhall' },\n\t{ label: 'Diff', value: 'diff', aliases: ['patch'] },\n\t{ label: 'Docker', value: 'dockerfile', aliases: ['docker'] },\n\t{ label: 'EBNF', value: 'ebnf' },\n\t{ label: 'Elixir', value: 'elixir', aliases: ['ex', 'exs'] },\n\t{ label: 'Elm', value: 'elm' },\n\t{ label: 'Erlang', value: 'erlang', aliases: ['erl'] },\n\t{ label: 'F#', value: 'fsharp', aliases: ['fs', 'f#'] },\n\t{ label: 'Flow', value: 'flow' },\n\t{ label: 'Fortran', value: 'fortran', aliases: ['f90', 'f95'] },\n\t{ label: 'Gherkin', value: 'gherkin', aliases: ['feature'] },\n\t{ label: 'GLSL', value: 'glsl' },\n\t{ label: 'Go', value: 'go', aliases: ['golang'] },\n\t{ label: 'GraphQL', value: 'graphql', aliases: ['gql'] },\n\t{ label: 'Groovy', value: 'groovy' },\n\t{ label: 'Haskell', value: 'haskell', aliases: ['hs'] },\n\t{ label: 'HCL', value: 'hcl' },\n\t{ label: 'HTML', value: 'html' },\n\t{ label: 'Idris', value: 'idris' },\n\t{ label: 'Java', value: 'java', aliases: ['jsp'] },\n\t{\n\t\tlabel: 'JavaScript',\n\t\tvalue: 'javascript',\n\t\taliases: ['js', 'jsx', 'mjs', 'cjs']\n\t},\n\t{ label: 'JSON', value: 'json', aliases: ['jsonc'] },\n\t{ label: 'Julia', value: 'julia' },\n\t{ label: 'Kotlin', value: 'kotlin', aliases: ['kt', 'kts'] },\n\t{ label: 'LaTeX', value: 'latex', aliases: ['tex'] },\n\t{ label: 'Less', value: 'less' },\n\t{ label: 'Lisp', value: 'lisp' },\n\t{ label: 'LiveScript', value: 'livescript', aliases: ['ls'] },\n\t{ label: 'LLVM IR', value: 'llvm' },\n\t{ label: 'Lua', value: 'lua', aliases: ['pluto'] },\n\t{ label: 'Makefile', value: 'makefile', aliases: ['mk', 'mak', 'make'] },\n\t{ label: 'Markdown', value: 'markdown', aliases: ['md', 'mkdown', 'mkd'] },\n\t{ label: 'Markup', value: 'markup' },\n\t{ label: 'MATLAB', value: 'matlab' },\n\t{ label: 'Mathematica', value: 'mathematica', aliases: ['mma', 'wl'] },\n\t{ label: 'Mermaid', value: 'mermaid' },\n\t{ label: 'Nix', value: 'nix', aliases: ['nixos'] },\n\t{ label: 'Notion Formula', value: 'notion' },\n\t{\n\t\tlabel: 'Objective-C',\n\t\tvalue: 'objectivec',\n\t\taliases: ['mm', 'objc', 'obj-c', 'obj-c++', 'objective-c++']\n\t},\n\t{ label: 'OCaml', value: 'ocaml', aliases: ['ml'] },\n\t{ label: 'Pascal', value: 'pascal' },\n\t{ label: 'Perl', value: 'perl', aliases: ['pl', 'pm'] },\n\t{ label: 'PHP', value: 'php' },\n\t{ label: 'PowerShell', value: 'powershell', aliases: ['pwsh', 'ps', 'ps1'] },\n\t{ label: 'Prolog', value: 'prolog' },\n\t{ label: 'Protocol Buffers', value: 'protobuf', aliases: ['proto'] },\n\t{ label: 'PureScript', value: 'purescript' },\n\t{ label: 'Python', value: 'python', aliases: ['py', 'gyp', 'ipython'] },\n\t{ label: 'R', value: 'r' },\n\t{ label: 'Racket', value: 'racket' },\n\t{ label: 'Reason', value: 'reasonml', aliases: ['re'] },\n\t{\n\t\tlabel: 'Ruby',\n\t\tvalue: 'ruby',\n\t\taliases: ['rb', 'gemspec', 'podspec', 'thor', 'irb']\n\t},\n\t{ label: 'Rust', value: 'rust', aliases: ['rs'] },\n\t{ label: 'Sass', value: 'sass' },\n\t{ label: 'Scala', value: 'scala' },\n\t{ label: 'Scheme', value: 'scheme', aliases: ['scm'] },\n\t{ label: 'SCSS', value: 'scss' },\n\t{ label: 'Shell', value: 'shell', aliases: ['console', 'shellsession'] },\n\t{ label: 'Smalltalk', value: 'smalltalk', aliases: ['st'] },\n\t{ label: 'Solidity', value: 'solidity' },\n\t{ label: 'SQL', value: 'sql' },\n\t{ label: 'Swift', value: 'swift' },\n\t{ label: 'TOML', value: 'toml' },\n\t{\n\t\tlabel: 'TypeScript',\n\t\tvalue: 'typescript',\n\t\taliases: ['ts', 'tsx', 'mts', 'cts']\n\t},\n\t{ label: 'VB.Net', value: 'vbnet', aliases: ['vb'] },\n\t{ label: 'Verilog', value: 'verilog', aliases: ['v', 'sv', 'svh'] },\n\t{ label: 'VHDL', value: 'vhdl' },\n\t{ label: 'Visual Basic', value: 'visualbasic' },\n\t{ label: 'WebAssembly', value: 'wasm' },\n\t{\n\t\tlabel: 'XML',\n\t\tvalue: 'xml',\n\t\t// Note: highlight.js also lists \"html\" here, but `html` is its own\n\t\t// canonical entry above; including it would rewrite html → xml.\n\t\taliases: [\n\t\t\t'xhtml',\n\t\t\t'rss',\n\t\t\t'atom',\n\t\t\t'xjb',\n\t\t\t'xsd',\n\t\t\t'xsl',\n\t\t\t'plist',\n\t\t\t'wsf',\n\t\t\t'svg'\n\t\t]\n\t},\n\t{ label: 'YAML', value: 'yaml', aliases: ['yml'] }\n];\n\nconst ALIAS_TO_CANONICAL = (() => {\n\tconst map = new Map<string, string>();\n\n\tfor (const lang of LANGUAGES) {\n\t\tfor (const alias of lang.aliases ?? []) {\n\t\t\tmap.set(alias, lang.value);\n\t\t}\n\t}\n\n\treturn map;\n})();\n\n/**\n * Resolve a user-supplied language identifier to a canonical LANGUAGES.value.\n * Aliases (e.g. `js`, `ts`, `py`) collapse to their canonical form\n * (`javascript`, `typescript`, `python`); unknown identifiers and canonical\n * values pass through unchanged. Empty / undefined input returns ''.\n */\nexport function normalizeLanguage(input: string | undefined | null): string {\n\tif (!input) return '';\n\n\treturn ALIAS_TO_CANONICAL.get(input) ?? input;\n}\n\nexport function getLanguageLabel(value: string | null | undefined): string {\n\tif (!value) return 'Auto';\n\n\tconst found = LANGUAGES.find((l) => l.value === value);\n\n\treturn found?.label ?? value;\n}\n"],"mappings":"AAmBO,MAAM,YAAwB;AAAA,EACpC,EAAE,OAAO,QAAQ,OAAO,OAAO;AAAA,EAC/B,EAAE,OAAO,cAAc,OAAO,YAAY;AAAA,EAC1C,EAAE,OAAO,QAAQ,OAAO,OAAO;AAAA,EAC/B,EAAE,OAAO,QAAQ,OAAO,OAAO;AAAA,EAC/B,EAAE,OAAO,WAAW,OAAO,WAAW,SAAS,CAAC,KAAK,EAAE;AAAA,EACvD,EAAE,OAAO,aAAa,OAAO,QAAQ;AAAA,EACrC,EAAE,OAAO,YAAY,OAAO,SAAS;AAAA,EACrC,EAAE,OAAO,QAAQ,OAAO,QAAQ,SAAS,CAAC,MAAM,KAAK,EAAE;AAAA,EACvD,EAAE,OAAO,SAAS,OAAO,QAAQ;AAAA,EACjC,EAAE,OAAO,OAAO,OAAO,MAAM;AAAA,EAC7B,EAAE,OAAO,KAAK,OAAO,KAAK,SAAS,CAAC,GAAG,EAAE;AAAA,EACzC,EAAE,OAAO,MAAM,OAAO,UAAU,SAAS,CAAC,MAAM,IAAI,EAAE;AAAA,EACtD;AAAA,IACC,OAAO;AAAA,IACP,OAAO;AAAA,IACP,SAAS,CAAC,MAAM,OAAO,OAAO,OAAO,MAAM,OAAO,KAAK;AAAA,EACxD;AAAA,EACA,EAAE,OAAO,WAAW,OAAO,WAAW,SAAS,CAAC,OAAO,KAAK,EAAE;AAAA,EAC9D;AAAA,IACC,OAAO;AAAA,IACP,OAAO;AAAA,IACP,SAAS,CAAC,UAAU,QAAQ,MAAM;AAAA,EACnC;AAAA,EACA,EAAE,OAAO,OAAO,OAAO,MAAM;AAAA,EAC7B,EAAE,OAAO,OAAO,OAAO,MAAM;AAAA,EAC7B,EAAE,OAAO,QAAQ,OAAO,OAAO;AAAA,EAC/B,EAAE,OAAO,SAAS,OAAO,QAAQ;AAAA,EACjC,EAAE,OAAO,QAAQ,OAAO,QAAQ,SAAS,CAAC,OAAO,EAAE;AAAA,EACnD,EAAE,OAAO,UAAU,OAAO,cAAc,SAAS,CAAC,QAAQ,EAAE;AAAA,EAC5D,EAAE,OAAO,QAAQ,OAAO,OAAO;AAAA,EAC/B,EAAE,OAAO,UAAU,OAAO,UAAU,SAAS,CAAC,MAAM,KAAK,EAAE;AAAA,EAC3D,EAAE,OAAO,OAAO,OAAO,MAAM;AAAA,EAC7B,EAAE,OAAO,UAAU,OAAO,UAAU,SAAS,CAAC,KAAK,EAAE;AAAA,EACrD,EAAE,OAAO,MAAM,OAAO,UAAU,SAAS,CAAC,MAAM,IAAI,EAAE;AAAA,EACtD,EAAE,OAAO,QAAQ,OAAO,OAAO;AAAA,EAC/B,EAAE,OAAO,WAAW,OAAO,WAAW,SAAS,CAAC,OAAO,KAAK,EAAE;AAAA,EAC9D,EAAE,OAAO,WAAW,OAAO,WAAW,SAAS,CAAC,SAAS,EAAE;AAAA,EAC3D,EAAE,OAAO,QAAQ,OAAO,OAAO;AAAA,EAC/B,EAAE,OAAO,MAAM,OAAO,MAAM,SAAS,CAAC,QAAQ,EAAE;AAAA,EAChD,EAAE,OAAO,WAAW,OAAO,WAAW,SAAS,CAAC,KAAK,EAAE;AAAA,EACvD,EAAE,OAAO,UAAU,OAAO,SAAS;AAAA,EACnC,EAAE,OAAO,WAAW,OAAO,WAAW,SAAS,CAAC,IAAI,EAAE;AAAA,EACtD,EAAE,OAAO,OAAO,OAAO,MAAM;AAAA,EAC7B,EAAE,OAAO,QAAQ,OAAO,OAAO;AAAA,EAC/B,EAAE,OAAO,SAAS,OAAO,QAAQ;AAAA,EACjC,EAAE,OAAO,QAAQ,OAAO,QAAQ,SAAS,CAAC,KAAK,EAAE;AAAA,EACjD;AAAA,IACC,OAAO;AAAA,IACP,OAAO;AAAA,IACP,SAAS,CAAC,MAAM,OAAO,OAAO,KAAK;AAAA,EACpC;AAAA,EACA,EAAE,OAAO,QAAQ,OAAO,QAAQ,SAAS,CAAC,OAAO,EAAE;AAAA,EACnD,EAAE,OAAO,SAAS,OAAO,QAAQ;AAAA,EACjC,EAAE,OAAO,UAAU,OAAO,UAAU,SAAS,CAAC,MAAM,KAAK,EAAE;AAAA,EAC3D,EAAE,OAAO,SAAS,OAAO,SAAS,SAAS,CAAC,KAAK,EAAE;AAAA,EACnD,EAAE,OAAO,QAAQ,OAAO,OAAO;AAAA,EAC/B,EAAE,OAAO,QAAQ,OAAO,OAAO;AAAA,EAC/B,EAAE,OAAO,cAAc,OAAO,cAAc,SAAS,CAAC,IAAI,EAAE;AAAA,EAC5D,EAAE,OAAO,WAAW,OAAO,OAAO;AAAA,EAClC,EAAE,OAAO,OAAO,OAAO,OAAO,SAAS,CAAC,OAAO,EAAE;AAAA,EACjD,EAAE,OAAO,YAAY,OAAO,YAAY,SAAS,CAAC,MAAM,OAAO,MAAM,EAAE;AAAA,EACvE,EAAE,OAAO,YAAY,OAAO,YAAY,SAAS,CAAC,MAAM,UAAU,KAAK,EAAE;AAAA,EACzE,EAAE,OAAO,UAAU,OAAO,SAAS;AAAA,EACnC,EAAE,OAAO,UAAU,OAAO,SAAS;AAAA,EACnC,EAAE,OAAO,eAAe,OAAO,eAAe,SAAS,CAAC,OAAO,IAAI,EAAE;AAAA,EACrE,EAAE,OAAO,WAAW,OAAO,UAAU;AAAA,EACrC,EAAE,OAAO,OAAO,OAAO,OAAO,SAAS,CAAC,OAAO,EAAE;AAAA,EACjD,EAAE,OAAO,kBAAkB,OAAO,SAAS;AAAA,EAC3C;AAAA,IACC,OAAO;AAAA,IACP,OAAO;AAAA,IACP,SAAS,CAAC,MAAM,QAAQ,SAAS,WAAW,eAAe;AAAA,EAC5D;AAAA,EACA,EAAE,OAAO,SAAS,OAAO,SAAS,SAAS,CAAC,IAAI,EAAE;AAAA,EAClD,EAAE,OAAO,UAAU,OAAO,SAAS;AAAA,EACnC,EAAE,OAAO,QAAQ,OAAO,QAAQ,SAAS,CAAC,MAAM,IAAI,EAAE;AAAA,EACtD,EAAE,OAAO,OAAO,OAAO,MAAM;AAAA,EAC7B,EAAE,OAAO,cAAc,OAAO,cAAc,SAAS,CAAC,QAAQ,MAAM,KAAK,EAAE;AAAA,EAC3E,EAAE,OAAO,UAAU,OAAO,SAAS;AAAA,EACnC,EAAE,OAAO,oBAAoB,OAAO,YAAY,SAAS,CAAC,OAAO,EAAE;AAAA,EACnE,EAAE,OAAO,cAAc,OAAO,aAAa;AAAA,EAC3C,EAAE,OAAO,UAAU,OAAO,UAAU,SAAS,CAAC,MAAM,OAAO,SAAS,EAAE;AAAA,EACtE,EAAE,OAAO,KAAK,OAAO,IAAI;AAAA,EACzB,EAAE,OAAO,UAAU,OAAO,SAAS;AAAA,EACnC,EAAE,OAAO,UAAU,OAAO,YAAY,SAAS,CAAC,IAAI,EAAE;AAAA,EACtD;AAAA,IACC,OAAO;AAAA,IACP,OAAO;AAAA,IACP,SAAS,CAAC,MAAM,WAAW,WAAW,QAAQ,KAAK;AAAA,EACpD;AAAA,EACA,EAAE,OAAO,QAAQ,OAAO,QAAQ,SAAS,CAAC,IAAI,EAAE;AAAA,EAChD,EAAE,OAAO,QAAQ,OAAO,OAAO;AAAA,EAC/B,EAAE,OAAO,SAAS,OAAO,QAAQ;AAAA,EACjC,EAAE,OAAO,UAAU,OAAO,UAAU,SAAS,CAAC,KAAK,EAAE;AAAA,EACrD,EAAE,OAAO,QAAQ,OAAO,OAAO;AAAA,EAC/B,EAAE,OAAO,SAAS,OAAO,SAAS,SAAS,CAAC,WAAW,cAAc,EAAE;AAAA,EACvE,EAAE,OAAO,aAAa,OAAO,aAAa,SAAS,CAAC,IAAI,EAAE;AAAA,EAC1D,EAAE,OAAO,YAAY,OAAO,WAAW;AAAA,EACvC,EAAE,OAAO,OAAO,OAAO,MAAM;AAAA,EAC7B,EAAE,OAAO,SAAS,OAAO,QAAQ;AAAA,EACjC,EAAE,OAAO,QAAQ,OAAO,OAAO;AAAA,EAC/B;AAAA,IACC,OAAO;AAAA,IACP,OAAO;AAAA,IACP,SAAS,CAAC,MAAM,OAAO,OAAO,KAAK;AAAA,EACpC;AAAA,EACA,EAAE,OAAO,UAAU,OAAO,SAAS,SAAS,CAAC,IAAI,EAAE;AAAA,EACnD,EAAE,OAAO,WAAW,OAAO,WAAW,SAAS,CAAC,KAAK,MAAM,KAAK,EAAE;AAAA,EAClE,EAAE,OAAO,QAAQ,OAAO,OAAO;AAAA,EAC/B,EAAE,OAAO,gBAAgB,OAAO,cAAc;AAAA,EAC9C,EAAE,OAAO,eAAe,OAAO,OAAO;AAAA,EACtC;AAAA,IACC,OAAO;AAAA,IACP,OAAO;AAAA;AAAA;AAAA,IAGP,SAAS;AAAA,MACR;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACD;AAAA,EACD;AAAA,EACA,EAAE,OAAO,QAAQ,OAAO,QAAQ,SAAS,CAAC,KAAK,EAAE;AAClD;AAEA,MAAM,sBAAsB,MAAM;AACjC,QAAM,MAAM,oBAAI,IAAoB;AAEpC,aAAW,QAAQ,WAAW;AAC7B,eAAW,SAAS,KAAK,WAAW,CAAC,GAAG;AACvC,UAAI,IAAI,OAAO,KAAK,KAAK;AAAA,IAC1B;AAAA,EACD;AAEA,SAAO;AACR,GAAG;AAQI,SAAS,kBAAkB,OAA0C;AAC3E,MAAI,CAAC,MAAO,QAAO;AAEnB,SAAO,mBAAmB,IAAI,KAAK,KAAK;AACzC;AAEO,SAAS,iBAAiB,OAA0C;AAC1E,MAAI,CAAC,MAAO,QAAO;AAEnB,QAAM,QAAQ,UAAU,KAAK,CAAC,MAAM,EAAE,UAAU,KAAK;AAErD,SAAO,OAAO,SAAS;AACxB;","names":[]}
|