@chayns-components/code-highlighter 5.0.0-beta.1000

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.
Files changed (62) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +34 -0
  3. package/lib/cjs/components/code-highlighter/CodeHighlighter.js +126 -0
  4. package/lib/cjs/components/code-highlighter/CodeHighlighter.js.map +1 -0
  5. package/lib/cjs/components/code-highlighter/CodeHighlighter.styles.js +79 -0
  6. package/lib/cjs/components/code-highlighter/CodeHighlighter.styles.js.map +1 -0
  7. package/lib/cjs/components/code-highlighter/copy-to-clipboard/CopyToClipboard.js +39 -0
  8. package/lib/cjs/components/code-highlighter/copy-to-clipboard/CopyToClipboard.js.map +1 -0
  9. package/lib/cjs/components/code-highlighter/copy-to-clipboard/CopyToClipboard.styles.js +21 -0
  10. package/lib/cjs/components/code-highlighter/copy-to-clipboard/CopyToClipboard.styles.js.map +1 -0
  11. package/lib/cjs/index.js +21 -0
  12. package/lib/cjs/index.js.map +1 -0
  13. package/lib/cjs/types/codeHighlighter.js +12 -0
  14. package/lib/cjs/types/codeHighlighter.js.map +1 -0
  15. package/lib/cjs/types/parser/prettier-parser-babel.d.js +2 -0
  16. package/lib/cjs/types/parser/prettier-parser-babel.d.js.map +1 -0
  17. package/lib/cjs/types/parser/prettier-parser-graphql.d.js +2 -0
  18. package/lib/cjs/types/parser/prettier-parser-graphql.d.js.map +1 -0
  19. package/lib/cjs/types/parser/prettier-parser-html.d.js +2 -0
  20. package/lib/cjs/types/parser/prettier-parser-html.d.js.map +1 -0
  21. package/lib/cjs/types/parser/prettier-parser-markdown.d.js +2 -0
  22. package/lib/cjs/types/parser/prettier-parser-markdown.d.js.map +1 -0
  23. package/lib/cjs/types/parser/prettier-parser-postcss.d.js +2 -0
  24. package/lib/cjs/types/parser/prettier-parser-postcss.d.js.map +1 -0
  25. package/lib/cjs/types/parser/prettier-parser-yaml.d.js +2 -0
  26. package/lib/cjs/types/parser/prettier-parser-yaml.d.js.map +1 -0
  27. package/lib/cjs/utils/codeHighlighter.js +338 -0
  28. package/lib/cjs/utils/codeHighlighter.js.map +1 -0
  29. package/lib/esm/components/code-highlighter/CodeHighlighter.js +121 -0
  30. package/lib/esm/components/code-highlighter/CodeHighlighter.js.map +1 -0
  31. package/lib/esm/components/code-highlighter/CodeHighlighter.styles.js +86 -0
  32. package/lib/esm/components/code-highlighter/CodeHighlighter.styles.js.map +1 -0
  33. package/lib/esm/components/code-highlighter/copy-to-clipboard/CopyToClipboard.js +33 -0
  34. package/lib/esm/components/code-highlighter/copy-to-clipboard/CopyToClipboard.js.map +1 -0
  35. package/lib/esm/components/code-highlighter/copy-to-clipboard/CopyToClipboard.styles.js +17 -0
  36. package/lib/esm/components/code-highlighter/copy-to-clipboard/CopyToClipboard.styles.js.map +1 -0
  37. package/lib/esm/index.js +4 -0
  38. package/lib/esm/index.js.map +1 -0
  39. package/lib/esm/types/codeHighlighter.js +6 -0
  40. package/lib/esm/types/codeHighlighter.js.map +1 -0
  41. package/lib/esm/types/parser/prettier-parser-babel.d.js +2 -0
  42. package/lib/esm/types/parser/prettier-parser-babel.d.js.map +1 -0
  43. package/lib/esm/types/parser/prettier-parser-graphql.d.js +2 -0
  44. package/lib/esm/types/parser/prettier-parser-graphql.d.js.map +1 -0
  45. package/lib/esm/types/parser/prettier-parser-html.d.js +2 -0
  46. package/lib/esm/types/parser/prettier-parser-html.d.js.map +1 -0
  47. package/lib/esm/types/parser/prettier-parser-markdown.d.js +2 -0
  48. package/lib/esm/types/parser/prettier-parser-markdown.d.js.map +1 -0
  49. package/lib/esm/types/parser/prettier-parser-postcss.d.js +2 -0
  50. package/lib/esm/types/parser/prettier-parser-postcss.d.js.map +1 -0
  51. package/lib/esm/types/parser/prettier-parser-yaml.d.js +2 -0
  52. package/lib/esm/types/parser/prettier-parser-yaml.d.js.map +1 -0
  53. package/lib/esm/utils/codeHighlighter.js +329 -0
  54. package/lib/esm/utils/codeHighlighter.js.map +1 -0
  55. package/lib/types/components/code-highlighter/CodeHighlighter.d.ts +44 -0
  56. package/lib/types/components/code-highlighter/CodeHighlighter.styles.d.ts +17 -0
  57. package/lib/types/components/code-highlighter/copy-to-clipboard/CopyToClipboard.d.ts +9 -0
  58. package/lib/types/components/code-highlighter/copy-to-clipboard/CopyToClipboard.styles.d.ts +8 -0
  59. package/lib/types/index.d.ts +3 -0
  60. package/lib/types/types/codeHighlighter.d.ts +10 -0
  61. package/lib/types/utils/codeHighlighter.d.ts +4 -0
  62. package/package.json +88 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2021 Tobit Laboratories AG
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,34 @@
1
+ <div align="center">
2
+ <h1>
3
+ <img src="https://raw.githubusercontent.com/TobitSoftware/chayns-components/master/assets/logo.png" width="600px" alt="chayns-components" />
4
+ </h1>
5
+ <p>A set of beautiful React components for developing your own applications with chayns.</p>
6
+ <div>
7
+ <img src="https://img.shields.io/npm/dm/@chayns-components/core.svg?style=for-the-badge" alt="" />
8
+ <img src="https://img.shields.io/npm/v/@chayns-components/core?style=for-the-badge" alt="" />
9
+ <img src="https://img.shields.io/github/license/TobitSoftware/chayns-components?style=for-the-badge" alt="" />
10
+ <img src="https://img.shields.io/github/contributors/TobitSoftware/chayns-components?style=for-the-badge" alt="" />
11
+ </div>
12
+ </div>
13
+
14
+ ---
15
+
16
+ ## Installation
17
+
18
+ First you need to install the core part of the chayns-components.
19
+
20
+ ```bash
21
+ # NPM
22
+ npm install @chayns-components/code-highlighter
23
+
24
+ # Yarn
25
+ yarn add @chayns-components/code-highlighter
26
+ ```
27
+
28
+ > **Information:** Since the components have now been implemented with the styled-components
29
+ > library, the styles are delivered directly with the components. There is no need to load an extra
30
+ > stylesheet anymore.
31
+
32
+ ## Usage
33
+
34
+ For detailed usage visit the [storybook](https://components.chayns.site/storybook).
@@ -0,0 +1,126 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _chaynsApi = require("chayns-api");
8
+ var _standalone = require("prettier/standalone");
9
+ var _react = _interopRequireWildcard(require("react"));
10
+ var _reactSyntaxHighlighter = require("react-syntax-highlighter");
11
+ var _prism = require("react-syntax-highlighter/dist/esm/styles/prism");
12
+ var _codeHighlighter = require("../../types/codeHighlighter");
13
+ var _codeHighlighter2 = require("../../utils/codeHighlighter");
14
+ var _CodeHighlighter = require("./CodeHighlighter.styles");
15
+ var _CopyToClipboard = _interopRequireDefault(require("./copy-to-clipboard/CopyToClipboard"));
16
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
17
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
18
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
19
+ const CodeHighlighter = ({
20
+ theme = _codeHighlighter.CodeHighlighterTheme.Dark,
21
+ code,
22
+ copyButtonText,
23
+ language,
24
+ highlightedLines,
25
+ shouldFormatCode = false,
26
+ onFormatError,
27
+ shouldShowLineNumbers = false,
28
+ shouldWrapLines
29
+ }) => {
30
+ const [width, setWidth] = (0, _react.useState)(0);
31
+ const ref = (0, _react.useRef)(null);
32
+ const {
33
+ browser
34
+ } = (0, _chaynsApi.useDevice)();
35
+ (0, _react.useEffect)(() => {
36
+ if (ref.current) {
37
+ const {
38
+ children
39
+ } = ref.current;
40
+ const preElement = Array.from(children).find(({
41
+ tagName
42
+ }) => tagName.toLowerCase() === 'pre');
43
+ if (preElement) {
44
+ setWidth(preElement.scrollWidth);
45
+ }
46
+ }
47
+ }, []);
48
+
49
+ // function to style highlighted code
50
+ const lineWrapper = (0, _react.useCallback)(lineNumber => {
51
+ let style = {
52
+ backgroundColor: 'none',
53
+ display: 'block',
54
+ borderRadius: '2px',
55
+ width: width - 15
56
+ };
57
+ if (highlightedLines !== null && highlightedLines !== void 0 && highlightedLines.added && highlightedLines.added.includes(lineNumber)) {
58
+ style = {
59
+ ...style,
60
+ backgroundColor: '#2EF29930'
61
+ };
62
+ } else if (highlightedLines !== null && highlightedLines !== void 0 && highlightedLines.removed && highlightedLines.removed.includes(lineNumber)) {
63
+ style = {
64
+ ...style,
65
+ backgroundColor: '#F22E5B30'
66
+ };
67
+ } else if (highlightedLines !== null && highlightedLines !== void 0 && highlightedLines.marked && highlightedLines.marked.includes(lineNumber)) {
68
+ style = {
69
+ ...style,
70
+ backgroundColor: '#cccccc40'
71
+ };
72
+ }
73
+ return {
74
+ style
75
+ };
76
+ }, [highlightedLines, width]);
77
+ const formattedCode = (0, _react.useMemo)(() => {
78
+ if (language) {
79
+ void (0, _codeHighlighter2.getParserForLanguage)(language).then(config => {
80
+ if (shouldFormatCode && config) {
81
+ try {
82
+ return (0, _standalone.format)(code, config);
83
+ } catch (error) {
84
+ if (typeof onFormatError !== 'undefined') onFormatError(error);
85
+ }
86
+ }
87
+ return code;
88
+ });
89
+ }
90
+ return code;
91
+ }, [code, language, shouldFormatCode, onFormatError]);
92
+ (0, _react.useEffect)(() => {
93
+ const elements = document.getElementsByClassName('linenumber');
94
+ Array.from(elements).forEach(element => {
95
+ const wrapper = document.createElement('twIgnore');
96
+ while (element.firstChild) {
97
+ wrapper.appendChild(element.firstChild);
98
+ }
99
+ element.appendChild(wrapper);
100
+ });
101
+ }, []);
102
+ return (0, _react.useMemo)(() => /*#__PURE__*/_react.default.createElement(_CodeHighlighter.StyledCodeHighlighter, {
103
+ $browser: browser === null || browser === void 0 ? void 0 : browser.name,
104
+ $shouldWrapLines: shouldWrapLines,
105
+ $codeTheme: theme,
106
+ ref: ref
107
+ }, /*#__PURE__*/_react.default.createElement(_CodeHighlighter.StyledCodeHighlighterHeader, {
108
+ $codeTheme: theme
109
+ }, /*#__PURE__*/_react.default.createElement(_CodeHighlighter.StyledCodeHighlighterFileName, {
110
+ $codeTheme: theme
111
+ }, /*#__PURE__*/_react.default.createElement("twIgnore", null, (0, _codeHighlighter2.formatLanguage)(language))), /*#__PURE__*/_react.default.createElement(_CopyToClipboard.default, {
112
+ text: code,
113
+ theme: theme,
114
+ copyButtonText: copyButtonText
115
+ })), /*#__PURE__*/_react.default.createElement(_reactSyntaxHighlighter.PrismAsyncLight, {
116
+ language: language ?? '',
117
+ showLineNumbers: shouldShowLineNumbers,
118
+ style: theme === _codeHighlighter.CodeHighlighterTheme.Dark ? _prism.oneDark : _prism.oneLight,
119
+ wrapLines: true,
120
+ wrapLongLines: shouldWrapLines,
121
+ lineProps: lineWrapper
122
+ }, formattedCode)), [browser === null || browser === void 0 ? void 0 : browser.name, theme, language, code, copyButtonText, shouldShowLineNumbers, shouldWrapLines, lineWrapper, formattedCode]);
123
+ };
124
+ CodeHighlighter.displayName = 'CodeHighlighter';
125
+ var _default = exports.default = CodeHighlighter;
126
+ //# sourceMappingURL=CodeHighlighter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CodeHighlighter.js","names":["_chaynsApi","require","_standalone","_react","_interopRequireWildcard","_reactSyntaxHighlighter","_prism","_codeHighlighter","_codeHighlighter2","_CodeHighlighter","_CopyToClipboard","_interopRequireDefault","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","CodeHighlighter","theme","CodeHighlighterTheme","Dark","code","copyButtonText","language","highlightedLines","shouldFormatCode","onFormatError","shouldShowLineNumbers","shouldWrapLines","width","setWidth","useState","ref","useRef","browser","useDevice","useEffect","current","children","preElement","Array","from","find","tagName","toLowerCase","scrollWidth","lineWrapper","useCallback","lineNumber","style","backgroundColor","display","borderRadius","added","includes","removed","marked","formattedCode","useMemo","getParserForLanguage","then","config","format","error","elements","document","getElementsByClassName","forEach","element","wrapper","createElement","firstChild","appendChild","StyledCodeHighlighter","$browser","name","$shouldWrapLines","$codeTheme","StyledCodeHighlighterHeader","StyledCodeHighlighterFileName","formatLanguage","text","PrismAsyncLight","showLineNumbers","oneDark","oneLight","wrapLines","wrapLongLines","lineProps","displayName","_default","exports"],"sources":["../../../../src/components/code-highlighter/CodeHighlighter.tsx"],"sourcesContent":["import { BrowserName } from '@chayns-components/core';\nimport { useDevice } from 'chayns-api';\nimport { format } from 'prettier/standalone';\nimport React, { FC, useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { PrismAsyncLight as SyntaxHighlighter } from 'react-syntax-highlighter';\nimport { oneDark, oneLight } from 'react-syntax-highlighter/dist/esm/styles/prism';\nimport {\n CodeHighlighterLanguage,\n CodeHighlighterTheme,\n HighlightedLines,\n} from '../../types/codeHighlighter';\nimport { formatLanguage, getParserForLanguage } from '../../utils/codeHighlighter';\nimport {\n StyledCodeHighlighter,\n StyledCodeHighlighterFileName,\n StyledCodeHighlighterHeader,\n} from './CodeHighlighter.styles';\nimport CopyToClipboard from './copy-to-clipboard/CopyToClipboard';\n\nexport type CodeHighlighterProps = {\n /**\n * The code that should be displayed.\n */\n code: string;\n /**\n * The text that should be displayed after the copy button.\n * If not set, just the button is displayed without text.\n */\n copyButtonText?: string;\n /**\n * The lines of code that should be highlighted.\n * Following lines can be highlighted: added, removed and just marked.\n */\n highlightedLines?: HighlightedLines;\n /**\n * The language of the displayed code.\n */\n language: CodeHighlighterLanguage;\n /**\n * Function to be executed when the formatting of the code fails.\n */\n onFormatError?: (error: unknown) => void;\n /**\n * Whether the code should be formatted with prettier.\n */\n shouldFormatCode?: boolean;\n /**\n * Whether the line numbers should be displayed.\n */\n shouldShowLineNumbers?: boolean;\n /**\n * Whether long lines should be wrapped.\n */\n shouldWrapLines?: boolean;\n /**\n * The theme of the code block. Decide between dark and light.\n */\n theme?: CodeHighlighterTheme;\n};\n\nconst CodeHighlighter: FC<CodeHighlighterProps> = ({\n theme = CodeHighlighterTheme.Dark,\n code,\n copyButtonText,\n language,\n highlightedLines,\n shouldFormatCode = false,\n onFormatError,\n shouldShowLineNumbers = false,\n shouldWrapLines,\n}) => {\n const [width, setWidth] = useState(0);\n\n const ref = useRef<HTMLDivElement>(null);\n\n const { browser } = useDevice();\n\n useEffect(() => {\n if (ref.current) {\n const { children } = ref.current;\n\n const preElement = Array.from(children).find(\n ({ tagName }) => tagName.toLowerCase() === 'pre',\n );\n\n if (preElement) {\n setWidth(preElement.scrollWidth);\n }\n }\n }, []);\n\n // function to style highlighted code\n const lineWrapper = useCallback(\n (lineNumber: number) => {\n let style = {\n backgroundColor: 'none',\n display: 'block',\n borderRadius: '2px',\n width: width - 15,\n };\n\n if (highlightedLines?.added && highlightedLines.added.includes(lineNumber)) {\n style = { ...style, backgroundColor: '#2EF29930' };\n } else if (highlightedLines?.removed && highlightedLines.removed.includes(lineNumber)) {\n style = { ...style, backgroundColor: '#F22E5B30' };\n } else if (highlightedLines?.marked && highlightedLines.marked.includes(lineNumber)) {\n style = { ...style, backgroundColor: '#cccccc40' };\n }\n\n return { style };\n },\n [highlightedLines, width],\n );\n\n const formattedCode = useMemo(() => {\n if (language) {\n void getParserForLanguage(language).then((config) => {\n if (shouldFormatCode && config) {\n try {\n return format(code, config) as unknown as string;\n } catch (error) {\n if (typeof onFormatError !== 'undefined') onFormatError(error);\n }\n }\n\n return code;\n });\n }\n\n return code;\n }, [code, language, shouldFormatCode, onFormatError]);\n\n useEffect(() => {\n const elements = document.getElementsByClassName('linenumber');\n\n Array.from(elements).forEach((element) => {\n const wrapper = document.createElement('twIgnore');\n\n while (element.firstChild) {\n wrapper.appendChild(element.firstChild);\n }\n\n element.appendChild(wrapper);\n });\n }, []);\n\n return useMemo(\n () => (\n <StyledCodeHighlighter\n $browser={browser?.name as BrowserName}\n $shouldWrapLines={shouldWrapLines}\n $codeTheme={theme}\n ref={ref}\n >\n <StyledCodeHighlighterHeader $codeTheme={theme}>\n <StyledCodeHighlighterFileName $codeTheme={theme}>\n {/* eslint-disable-next-line @typescript-eslint/ban-ts-comment */}\n {/* @ts-ignore */}\n <twIgnore>{formatLanguage(language)}</twIgnore>\n </StyledCodeHighlighterFileName>\n <CopyToClipboard text={code} theme={theme} copyButtonText={copyButtonText} />\n </StyledCodeHighlighterHeader>\n <SyntaxHighlighter\n language={language ?? ''}\n showLineNumbers={shouldShowLineNumbers}\n style={theme === CodeHighlighterTheme.Dark ? oneDark : oneLight}\n wrapLines\n wrapLongLines={shouldWrapLines}\n lineProps={lineWrapper}\n >\n {formattedCode}\n </SyntaxHighlighter>\n </StyledCodeHighlighter>\n ),\n [\n browser?.name,\n theme,\n language,\n code,\n copyButtonText,\n shouldShowLineNumbers,\n shouldWrapLines,\n lineWrapper,\n formattedCode,\n ],\n );\n};\n\nCodeHighlighter.displayName = 'CodeHighlighter';\n\nexport default CodeHighlighter;\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.StyledCodeHighlighterHeader = exports.StyledCodeHighlighterFileName = exports.StyledCodeHighlighter = void 0;
7
+ var _styledComponents = _interopRequireWildcard(require("styled-components"));
8
+ var _codeHighlighter = require("../../types/codeHighlighter");
9
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
10
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
11
+ const StyledCodeHighlighter = exports.StyledCodeHighlighter = _styledComponents.default.div`
12
+ margin: 4px 0;
13
+ background-color: ${({
14
+ $codeTheme
15
+ }) => $codeTheme === _codeHighlighter.CodeHighlighterTheme.Dark ? '#282c34' : '#fafafa'};
16
+ border-radius: 8px;
17
+ padding-bottom: 6px;
18
+
19
+ pre {
20
+ margin: 0 !important;
21
+ overflow: auto;
22
+ padding: 15px;
23
+ line-height: 1.5;
24
+
25
+ // Styles for custom scrollbar
26
+ ${({
27
+ $browser,
28
+ theme
29
+ }) => $browser === 'firefox' ? (0, _styledComponents.css)`
30
+ scrollbar-color: rgba(${theme['text-rgb']}, 0.15) transparent;
31
+ scrollbar-width: thin;
32
+ ` : (0, _styledComponents.css)`
33
+ &::-webkit-scrollbar {
34
+ height: 5px;
35
+ }
36
+
37
+ &::-webkit-scrollbar-track {
38
+ background-color: transparent;
39
+ }
40
+
41
+ &::-webkit-scrollbar-button {
42
+ background-color: transparent;
43
+ height: 5px;
44
+ }
45
+
46
+ &::-webkit-scrollbar-thumb {
47
+ background-color: rgba(${theme['text-rgb']}, 0.15);
48
+ border-radius: 20px;
49
+ }
50
+ `}
51
+
52
+ code {
53
+ white-space: ${({
54
+ $shouldWrapLines
55
+ }) => $shouldWrapLines ? 'pre-wrap' : 'pre'} !important;
56
+ }
57
+ }
58
+
59
+ // Fixes display of tables in code highlighter for markdown.
60
+ .language-markdown .token.table {
61
+ display: inline;
62
+ }
63
+ `;
64
+ const StyledCodeHighlighterHeader = exports.StyledCodeHighlighterHeader = _styledComponents.default.div`
65
+ display: flex;
66
+ align-items: center;
67
+ justify-content: space-between;
68
+ border-bottom: 1px solid
69
+ ${({
70
+ $codeTheme
71
+ }) => $codeTheme === _codeHighlighter.CodeHighlighterTheme.Dark ? '#e5e5e5' : '#999999'};
72
+ padding: 4px 12px;
73
+ `;
74
+ const StyledCodeHighlighterFileName = exports.StyledCodeHighlighterFileName = _styledComponents.default.span`
75
+ color: ${({
76
+ $codeTheme
77
+ }) => $codeTheme === _codeHighlighter.CodeHighlighterTheme.Dark ? '#e5e5e5' : '#999999'};
78
+ `;
79
+ //# sourceMappingURL=CodeHighlighter.styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CodeHighlighter.styles.js","names":["_styledComponents","_interopRequireWildcard","require","_codeHighlighter","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","StyledCodeHighlighter","exports","styled","div","$codeTheme","CodeHighlighterTheme","Dark","$browser","theme","css","$shouldWrapLines","StyledCodeHighlighterHeader","StyledCodeHighlighterFileName","span"],"sources":["../../../../src/components/code-highlighter/CodeHighlighter.styles.ts"],"sourcesContent":["import type { BrowserName, WithTheme } from '@chayns-components/core';\nimport styled, { css } from 'styled-components';\nimport { CodeHighlighterTheme } from '../../types/codeHighlighter';\n\ntype StyledCodeHighlighterProps = WithTheme<{\n $codeTheme: CodeHighlighterTheme;\n $browser: BrowserName;\n $shouldWrapLines?: boolean;\n}>;\n\nexport const StyledCodeHighlighter = styled.div<StyledCodeHighlighterProps>`\n margin: 4px 0;\n background-color: ${({ $codeTheme }) =>\n $codeTheme === CodeHighlighterTheme.Dark ? '#282c34' : '#fafafa'};\n border-radius: 8px;\n padding-bottom: 6px;\n\n pre {\n margin: 0 !important;\n overflow: auto;\n padding: 15px;\n line-height: 1.5;\n\n // Styles for custom scrollbar\n ${({ $browser, theme }: StyledCodeHighlighterProps) =>\n $browser === 'firefox'\n ? css`\n scrollbar-color: rgba(${theme['text-rgb']}, 0.15) transparent;\n scrollbar-width: thin;\n `\n : css`\n &::-webkit-scrollbar {\n height: 5px;\n }\n\n &::-webkit-scrollbar-track {\n background-color: transparent;\n }\n\n &::-webkit-scrollbar-button {\n background-color: transparent;\n height: 5px;\n }\n\n &::-webkit-scrollbar-thumb {\n background-color: rgba(${theme['text-rgb']}, 0.15);\n border-radius: 20px;\n }\n `}\n\n code {\n white-space: ${({ $shouldWrapLines }) =>\n $shouldWrapLines ? 'pre-wrap' : 'pre'} !important;\n }\n }\n\n // Fixes display of tables in code highlighter for markdown.\n .language-markdown .token.table {\n display: inline;\n }\n`;\n\ntype StyledCodeHighlighterHeaderProps = WithTheme<{\n $codeTheme: CodeHighlighterTheme;\n}>;\n\nexport const StyledCodeHighlighterHeader = styled.div<StyledCodeHighlighterHeaderProps>`\n display: flex;\n align-items: center;\n justify-content: space-between;\n border-bottom: 1px solid\n ${({ $codeTheme }) => ($codeTheme === CodeHighlighterTheme.Dark ? '#e5e5e5' : '#999999')};\n padding: 4px 12px;\n`;\n\ntype StyledCodeHighlighterFileNameProps = WithTheme<{\n $codeTheme: CodeHighlighterTheme;\n}>;\n\nexport const StyledCodeHighlighterFileName = styled.span<StyledCodeHighlighterFileNameProps>`\n color: ${({ $codeTheme }) =>\n $codeTheme === CodeHighlighterTheme.Dark ? '#e5e5e5' : '#999999'};\n`;\n"],"mappings":";;;;;;AACA,IAAAA,iBAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,gBAAA,GAAAD,OAAA;AAAmE,SAAAE,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAJ,wBAAAI,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAQ5D,MAAMW,qBAAqB,GAAAC,OAAA,CAAAD,qBAAA,GAAGE,yBAAM,CAACC,GAA+B;AAC3E;AACA,wBAAwB,CAAC;EAAEC;AAAW,CAAC,KAC/BA,UAAU,KAAKC,qCAAoB,CAACC,IAAI,GAAG,SAAS,GAAG,SAAS;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,CAAC;EAAEC,QAAQ;EAAEC;AAAkC,CAAC,KAC9CD,QAAQ,KAAK,SAAS,GAChB,IAAAE,qBAAG;AACrB,8CAA8CD,KAAK,CAAC,UAAU,CAAC;AAC/D;AACA,mBAAmB,GACD,IAAAC,qBAAG;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmDD,KAAK,CAAC,UAAU,CAAC;AACpE;AACA;AACA,mBAAmB;AACnB;AACA;AACA,2BAA2B,CAAC;EAAEE;AAAiB,CAAC,KAChCA,gBAAgB,GAAG,UAAU,GAAG,KAAK;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAMM,MAAMC,2BAA2B,GAAAV,OAAA,CAAAU,2BAAA,GAAGT,yBAAM,CAACC,GAAqC;AACvF;AACA;AACA;AACA;AACA,UAAU,CAAC;EAAEC;AAAW,CAAC,KAAMA,UAAU,KAAKC,qCAAoB,CAACC,IAAI,GAAG,SAAS,GAAG,SAAU;AAChG;AACA,CAAC;AAMM,MAAMM,6BAA6B,GAAAX,OAAA,CAAAW,6BAAA,GAAGV,yBAAM,CAACW,IAAwC;AAC5F,aAAa,CAAC;EAAET;AAAW,CAAC,KACpBA,UAAU,KAAKC,qCAAoB,CAACC,IAAI,GAAG,SAAS,GAAG,SAAS;AACxE,CAAC","ignoreList":[]}
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _core = require("@chayns-components/core");
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _codeHighlighter = require("../../../types/codeHighlighter");
10
+ var _CopyToClipboard = require("./CopyToClipboard.styles");
11
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
+ const CopyToClipboard = ({
13
+ copyButtonText,
14
+ text,
15
+ theme
16
+ }) => {
17
+ const handleClick = () => {
18
+ void navigator.clipboard.writeText(text);
19
+ };
20
+ const popupContent = /*#__PURE__*/_react.default.createElement("span", {
21
+ style: {
22
+ display: 'block',
23
+ padding: '5px'
24
+ }
25
+ }, /*#__PURE__*/_react.default.createElement("p", null, "Kopiert!"));
26
+ return /*#__PURE__*/_react.default.createElement(_core.Popup, {
27
+ content: popupContent
28
+ }, /*#__PURE__*/_react.default.createElement(_CopyToClipboard.StyledCopyToClipboard, {
29
+ onClick: handleClick
30
+ }, /*#__PURE__*/_react.default.createElement(_core.Icon, {
31
+ icons: ['fa-light fa-clipboard'],
32
+ color: theme === _codeHighlighter.CodeHighlighterTheme.Dark ? '#e5e5e5' : '#999999'
33
+ }), copyButtonText && /*#__PURE__*/_react.default.createElement(_CopyToClipboard.StyledCopyToClipboardText, {
34
+ $codeTheme: theme
35
+ }, /*#__PURE__*/_react.default.createElement("twIgnore", null, copyButtonText))));
36
+ };
37
+ CopyToClipboard.displayName = 'CopyToClipboard';
38
+ var _default = exports.default = CopyToClipboard;
39
+ //# sourceMappingURL=CopyToClipboard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CopyToClipboard.js","names":["_core","require","_react","_interopRequireDefault","_codeHighlighter","_CopyToClipboard","e","__esModule","default","CopyToClipboard","copyButtonText","text","theme","handleClick","navigator","clipboard","writeText","popupContent","createElement","style","display","padding","Popup","content","StyledCopyToClipboard","onClick","Icon","icons","color","CodeHighlighterTheme","Dark","StyledCopyToClipboardText","$codeTheme","displayName","_default","exports"],"sources":["../../../../../src/components/code-highlighter/copy-to-clipboard/CopyToClipboard.tsx"],"sourcesContent":["import { Icon, Popup } from '@chayns-components/core';\nimport React, { FC } from 'react';\nimport { CodeHighlighterTheme } from '../../../types/codeHighlighter';\nimport { StyledCopyToClipboard, StyledCopyToClipboardText } from './CopyToClipboard.styles';\n\nexport type CopyToClipboardProps = {\n copyButtonText?: string;\n text: string;\n theme: CodeHighlighterTheme;\n};\n\nconst CopyToClipboard: FC<CopyToClipboardProps> = ({ copyButtonText, text, theme }) => {\n const handleClick = () => {\n void navigator.clipboard.writeText(text);\n };\n\n const popupContent = (\n <span style={{ display: 'block', padding: '5px' }}>\n <p>Kopiert!</p>\n </span>\n );\n\n return (\n <Popup content={popupContent}>\n <StyledCopyToClipboard onClick={handleClick}>\n <Icon\n icons={['fa-light fa-clipboard']}\n color={theme === CodeHighlighterTheme.Dark ? '#e5e5e5' : '#999999'}\n />\n {copyButtonText && (\n <StyledCopyToClipboardText $codeTheme={theme}>\n {/* eslint-disable-next-line @typescript-eslint/ban-ts-comment */}\n {/* @ts-ignore */}\n <twIgnore>{copyButtonText}</twIgnore>\n </StyledCopyToClipboardText>\n )}\n </StyledCopyToClipboard>\n </Popup>\n );\n};\n\nCopyToClipboard.displayName = 'CopyToClipboard';\n\nexport default CopyToClipboard;\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,gBAAA,GAAAH,OAAA;AACA,IAAAI,gBAAA,GAAAJ,OAAA;AAA4F,SAAAE,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAQ5F,MAAMG,eAAyC,GAAGA,CAAC;EAAEC,cAAc;EAAEC,IAAI;EAAEC;AAAM,CAAC,KAAK;EACnF,MAAMC,WAAW,GAAGA,CAAA,KAAM;IACtB,KAAKC,SAAS,CAACC,SAAS,CAACC,SAAS,CAACL,IAAI,CAAC;EAC5C,CAAC;EAED,MAAMM,YAAY,gBACdf,MAAA,CAAAM,OAAA,CAAAU,aAAA;IAAMC,KAAK,EAAE;MAAEC,OAAO,EAAE,OAAO;MAAEC,OAAO,EAAE;IAAM;EAAE,gBAC9CnB,MAAA,CAAAM,OAAA,CAAAU,aAAA,YAAG,UAAW,CACZ,CACT;EAED,oBACIhB,MAAA,CAAAM,OAAA,CAAAU,aAAA,CAAClB,KAAA,CAAAsB,KAAK;IAACC,OAAO,EAAEN;EAAa,gBACzBf,MAAA,CAAAM,OAAA,CAAAU,aAAA,CAACb,gBAAA,CAAAmB,qBAAqB;IAACC,OAAO,EAAEZ;EAAY,gBACxCX,MAAA,CAAAM,OAAA,CAAAU,aAAA,CAAClB,KAAA,CAAA0B,IAAI;IACDC,KAAK,EAAE,CAAC,uBAAuB,CAAE;IACjCC,KAAK,EAAEhB,KAAK,KAAKiB,qCAAoB,CAACC,IAAI,GAAG,SAAS,GAAG;EAAU,CACtE,CAAC,EACDpB,cAAc,iBACXR,MAAA,CAAAM,OAAA,CAAAU,aAAA,CAACb,gBAAA,CAAA0B,yBAAyB;IAACC,UAAU,EAAEpB;EAAM,gBAGzCV,MAAA,CAAAM,OAAA,CAAAU,aAAA,mBAAWR,cAAyB,CACb,CAEZ,CACpB,CAAC;AAEhB,CAAC;AAEDD,eAAe,CAACwB,WAAW,GAAG,iBAAiB;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAA3B,OAAA,GAEjCC,eAAe","ignoreList":[]}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.StyledCopyToClipboardText = exports.StyledCopyToClipboard = void 0;
7
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
8
+ var _codeHighlighter = require("../../../types/codeHighlighter");
9
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
+ const StyledCopyToClipboard = exports.StyledCopyToClipboard = _styledComponents.default.div`
11
+ display: flex;
12
+ align-items: center;
13
+ `;
14
+ const StyledCopyToClipboardText = exports.StyledCopyToClipboardText = _styledComponents.default.span`
15
+ color: ${({
16
+ $codeTheme
17
+ }) => $codeTheme === _codeHighlighter.CodeHighlighterTheme.Dark ? '#e5e5e5' : '#999999'};
18
+ font-size: small;
19
+ margin-left: 4px;
20
+ `;
21
+ //# sourceMappingURL=CopyToClipboard.styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CopyToClipboard.styles.js","names":["_styledComponents","_interopRequireDefault","require","_codeHighlighter","e","__esModule","default","StyledCopyToClipboard","exports","styled","div","StyledCopyToClipboardText","span","$codeTheme","CodeHighlighterTheme","Dark"],"sources":["../../../../../src/components/code-highlighter/copy-to-clipboard/CopyToClipboard.styles.ts"],"sourcesContent":["import type { WithTheme } from '@chayns-components/core';\nimport styled from 'styled-components';\nimport { CodeHighlighterTheme } from '../../../types/codeHighlighter';\n\nexport const StyledCopyToClipboard = styled.div`\n display: flex;\n align-items: center;\n`;\n\ntype StyledCopyToClipboardTextProps = WithTheme<{\n $codeTheme: CodeHighlighterTheme;\n}>;\nexport const StyledCopyToClipboardText = styled.span<StyledCopyToClipboardTextProps>`\n color: ${({ $codeTheme }) =>\n $codeTheme === CodeHighlighterTheme.Dark ? '#e5e5e5' : '#999999'};\n font-size: small;\n margin-left: 4px;\n`;\n"],"mappings":";;;;;;AACA,IAAAA,iBAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,gBAAA,GAAAD,OAAA;AAAsE,SAAAD,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE/D,MAAMG,qBAAqB,GAAAC,OAAA,CAAAD,qBAAA,GAAGE,yBAAM,CAACC,GAAG;AAC/C;AACA;AACA,CAAC;AAKM,MAAMC,yBAAyB,GAAAH,OAAA,CAAAG,yBAAA,GAAGF,yBAAM,CAACG,IAAoC;AACpF,aAAa,CAAC;EAAEC;AAAW,CAAC,KACpBA,UAAU,KAAKC,qCAAoB,CAACC,IAAI,GAAG,SAAS,GAAG,SAAS;AACxE;AACA;AACA,CAAC","ignoreList":[]}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "CodeHighlighter", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _CodeHighlighter.default;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "CodeHighlighterTheme", {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _codeHighlighter.CodeHighlighterTheme;
16
+ }
17
+ });
18
+ var _CodeHighlighter = _interopRequireDefault(require("./components/code-highlighter/CodeHighlighter"));
19
+ var _codeHighlighter = require("./types/codeHighlighter");
20
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["_CodeHighlighter","_interopRequireDefault","require","_codeHighlighter","e","__esModule","default"],"sources":["../../src/index.ts"],"sourcesContent":["// noinspection JSUnusedGlobalSymbols\nexport { default as CodeHighlighter } from './components/code-highlighter/CodeHighlighter';\nexport { CodeHighlighterTheme } from './types/codeHighlighter';\nexport type { CodeHighlighterLanguage, HighlightedLines } from './types/codeHighlighter';\n"],"mappings":";;;;;;;;;;;;;;;;;AACA,IAAAA,gBAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,gBAAA,GAAAD,OAAA;AAA+D,SAAAD,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA","ignoreList":[]}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.CodeHighlighterTheme = void 0;
7
+ let CodeHighlighterTheme = exports.CodeHighlighterTheme = /*#__PURE__*/function (CodeHighlighterTheme) {
8
+ CodeHighlighterTheme["Light"] = "light";
9
+ CodeHighlighterTheme["Dark"] = "dark";
10
+ return CodeHighlighterTheme;
11
+ }({});
12
+ //# sourceMappingURL=codeHighlighter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codeHighlighter.js","names":["CodeHighlighterTheme","exports"],"sources":["../../../src/types/codeHighlighter.ts"],"sourcesContent":["export enum CodeHighlighterTheme {\n Light = 'light',\n Dark = 'dark',\n}\n\nexport interface HighlightedLines {\n added?: number[];\n removed?: number[];\n marked?: number[];\n}\n\nexport type CodeHighlighterLanguage =\n | 'abap'\n | 'abnf'\n | 'actionscript'\n | 'ada'\n | 'agda'\n | 'al'\n | 'antlr4'\n | 'apacheconf'\n | 'apex'\n | 'apl'\n | 'applescript'\n | 'aql'\n | 'arduino'\n | 'arff'\n | 'asciidoc'\n | 'asm6502'\n | 'asmatmel'\n | 'aspnet'\n | 'autohotkey'\n | 'autoit'\n | 'avisynth'\n | 'avroIdl'\n | 'bash'\n | 'basic'\n | 'batch'\n | 'bbcode'\n | 'bicep'\n | 'birb'\n | 'bison'\n | 'bnf'\n | 'brainfuck'\n | 'brightscript'\n | 'bro'\n | 'bsl'\n | 'c'\n | 'cfscript'\n | 'chaiscript'\n | 'cil'\n | 'clike'\n | 'clojure'\n | 'cmake'\n | 'cobol'\n | 'coffeescript'\n | 'concurnas'\n | 'coq'\n | 'cpp'\n | 'crystal'\n | 'csharp'\n | 'cshtml'\n | 'csp'\n | 'cssExtras'\n | 'css'\n | 'csv'\n | 'cypher'\n | 'd'\n | 'dart'\n | 'dataweave'\n | 'dax'\n | 'dhall'\n | 'diff'\n | 'django'\n | 'dnsZoneFile'\n | 'docker'\n | 'dot'\n | 'ebnf'\n | 'editorconfig'\n | 'eiffel'\n | 'ejs'\n | 'elixir'\n | 'elm'\n | 'erb'\n | 'erlang'\n | 'etlua'\n | 'excelFormula'\n | 'factor'\n | 'falselang'\n | 'firestoreSecurityRules'\n | 'flow'\n | 'fortran'\n | 'fsharp'\n | 'ftl'\n | 'gap'\n | 'gcode'\n | 'gdscript'\n | 'gedcom'\n | 'gherkin'\n | 'git'\n | 'glsl'\n | 'gml'\n | 'gn'\n | 'goModule'\n | 'go'\n | 'graphql'\n | 'groovy'\n | 'haml'\n | 'handlebars'\n | 'haskell'\n | 'haxe'\n | 'hcl'\n | 'hlsl'\n | 'hoon'\n | 'hpkp'\n | 'hsts'\n | 'html'\n | 'http'\n | 'ichigojam'\n | 'icon'\n | 'icuMessageFormat'\n | 'idris'\n | 'iecst'\n | 'ignore'\n | 'inform7'\n | 'ini'\n | 'io'\n | 'j'\n | 'java'\n | 'javadoc'\n | 'javadoclike'\n | 'javascript'\n | 'javastacktrace'\n | 'jexl'\n | 'jolie'\n | 'jq'\n | 'jsExtras'\n | 'jsTemplates'\n | 'jsdoc'\n | 'json'\n | 'json5'\n | 'jsonp'\n | 'jsstacktrace'\n | 'jsx'\n | 'julia'\n | 'keepalived'\n | 'keyman'\n | 'kotlin'\n | 'kumir'\n | 'kusto'\n | 'latex'\n | 'latte'\n | 'less'\n | 'lilypond'\n | 'liquid'\n | 'lisp'\n | 'livescript'\n | 'llvm'\n | 'log'\n | 'lolcode'\n | 'lua'\n | 'magma'\n | 'makefile'\n | 'markdown'\n | 'markupTemplating'\n | 'markup'\n | 'matlab'\n | 'maxscript'\n | 'mel'\n | 'mermaid'\n | 'mizar'\n | 'mongodb'\n | 'monkey'\n | 'moonscript'\n | 'n1ql'\n | 'n4js'\n | 'nand2tetrisHdl'\n | 'naniscript'\n | 'nasm'\n | 'neon'\n | 'nevod'\n | 'nginx'\n | 'nim'\n | 'nix'\n | 'nsis'\n | 'objectivec'\n | 'ocaml'\n | 'opencl'\n | 'openqasm'\n | 'oz'\n | 'parigp'\n | 'parser'\n | 'pascal'\n | 'pascaligo'\n | 'pcaxis'\n | 'peoplecode'\n | 'perl'\n | 'phpExtras'\n | 'php'\n | 'phpdoc'\n | 'plsql'\n | 'powerquery'\n | 'powershell'\n | 'processing'\n | 'prolog'\n | 'promql'\n | 'properties'\n | 'protobuf'\n | 'psl'\n | 'pug'\n | 'puppet'\n | 'pure'\n | 'purebasic'\n | 'purescript'\n | 'python'\n | 'q'\n | 'qml'\n | 'qore'\n | 'qsharp'\n | 'r'\n | 'racket'\n | 'reason'\n | 'regex'\n | 'rego'\n | 'renpy'\n | 'rest'\n | 'rip'\n | 'roboconf'\n | 'robotframework'\n | 'ruby'\n | 'rust'\n | 'sas'\n | 'sass'\n | 'scala'\n | 'scheme'\n | 'scss'\n | 'shellSession'\n | 'smali'\n | 'smalltalk'\n | 'smarty'\n | 'sml'\n | 'solidity'\n | 'solutionFile'\n | 'soy'\n | 'sparql'\n | 'splunkSpl'\n | 'sqf'\n | 'sql'\n | 'squirrel'\n | 'stan'\n | 'stylus'\n | 'swift'\n | 'systemd'\n | 't4Cs'\n | 't4Templating'\n | 't4Vb'\n | 'tap'\n | 'tcl'\n | 'textile'\n | 'toml'\n | 'tremor'\n | 'tsx'\n | 'tt2'\n | 'turtle'\n | 'twig'\n | 'typescript'\n | 'typoscript'\n | 'unrealscript'\n | 'uorazor'\n | 'uri'\n | 'v'\n | 'vala'\n | 'vbnet'\n | 'velocity'\n | 'verilog'\n | 'vhdl'\n | 'vim'\n | 'visualBasic'\n | 'warpscript'\n | 'wasm'\n | 'webIdl'\n | 'wiki'\n | 'wolfram'\n | 'wren'\n | 'xeora'\n | 'xmlDoc'\n | 'xojo'\n | 'xquery'\n | 'yaml'\n | 'yang'\n | 'zig'\n | ''\n | undefined;\n"],"mappings":";;;;;;IAAYA,oBAAoB,GAAAC,OAAA,CAAAD,oBAAA,0BAApBA,oBAAoB;EAApBA,oBAAoB;EAApBA,oBAAoB;EAAA,OAApBA,oBAAoB;AAAA","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=prettier-parser-babel.d.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prettier-parser-babel.d.js","names":[],"sources":["../../../../src/types/parser/prettier-parser-babel.d.ts"],"sourcesContent":["declare module 'prettier/parser-babel' {\n import { Plugin } from 'prettier';\n\n const parser: Plugin;\n export default parser;\n}\n"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=prettier-parser-graphql.d.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prettier-parser-graphql.d.js","names":[],"sources":["../../../../src/types/parser/prettier-parser-graphql.d.ts"],"sourcesContent":["declare module 'prettier/parser-graphql' {\n import { Plugin } from 'prettier';\n\n const parser: Plugin;\n export default parser;\n}\n"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=prettier-parser-html.d.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prettier-parser-html.d.js","names":[],"sources":["../../../../src/types/parser/prettier-parser-html.d.ts"],"sourcesContent":["declare module 'prettier/parser-html' {\n import { Plugin } from 'prettier';\n\n const parser: Plugin;\n export default parser;\n}\n"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=prettier-parser-markdown.d.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prettier-parser-markdown.d.js","names":[],"sources":["../../../../src/types/parser/prettier-parser-markdown.d.ts"],"sourcesContent":["declare module 'prettier/parser-markdown' {\n import { Plugin } from 'prettier';\n\n const parser: Plugin;\n export default parser;\n}\n"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=prettier-parser-postcss.d.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prettier-parser-postcss.d.js","names":[],"sources":["../../../../src/types/parser/prettier-parser-postcss.d.ts"],"sourcesContent":["declare module 'prettier/parser-postcss' {\n import { Plugin } from 'prettier';\n\n const parser: Plugin;\n export default parser;\n}\n"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=prettier-parser-yaml.d.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prettier-parser-yaml.d.js","names":[],"sources":["../../../../src/types/parser/prettier-parser-yaml.d.ts"],"sourcesContent":["declare module 'prettier/parser-yaml' {\n import { Plugin } from 'prettier';\n\n const parser: Plugin;\n export default parser;\n}\n"],"mappings":"","ignoreList":[]}