@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.
- package/LICENSE +21 -0
- package/README.md +34 -0
- package/lib/cjs/components/code-highlighter/CodeHighlighter.js +126 -0
- package/lib/cjs/components/code-highlighter/CodeHighlighter.js.map +1 -0
- package/lib/cjs/components/code-highlighter/CodeHighlighter.styles.js +79 -0
- package/lib/cjs/components/code-highlighter/CodeHighlighter.styles.js.map +1 -0
- package/lib/cjs/components/code-highlighter/copy-to-clipboard/CopyToClipboard.js +39 -0
- package/lib/cjs/components/code-highlighter/copy-to-clipboard/CopyToClipboard.js.map +1 -0
- package/lib/cjs/components/code-highlighter/copy-to-clipboard/CopyToClipboard.styles.js +21 -0
- package/lib/cjs/components/code-highlighter/copy-to-clipboard/CopyToClipboard.styles.js.map +1 -0
- package/lib/cjs/index.js +21 -0
- package/lib/cjs/index.js.map +1 -0
- package/lib/cjs/types/codeHighlighter.js +12 -0
- package/lib/cjs/types/codeHighlighter.js.map +1 -0
- package/lib/cjs/types/parser/prettier-parser-babel.d.js +2 -0
- package/lib/cjs/types/parser/prettier-parser-babel.d.js.map +1 -0
- package/lib/cjs/types/parser/prettier-parser-graphql.d.js +2 -0
- package/lib/cjs/types/parser/prettier-parser-graphql.d.js.map +1 -0
- package/lib/cjs/types/parser/prettier-parser-html.d.js +2 -0
- package/lib/cjs/types/parser/prettier-parser-html.d.js.map +1 -0
- package/lib/cjs/types/parser/prettier-parser-markdown.d.js +2 -0
- package/lib/cjs/types/parser/prettier-parser-markdown.d.js.map +1 -0
- package/lib/cjs/types/parser/prettier-parser-postcss.d.js +2 -0
- package/lib/cjs/types/parser/prettier-parser-postcss.d.js.map +1 -0
- package/lib/cjs/types/parser/prettier-parser-yaml.d.js +2 -0
- package/lib/cjs/types/parser/prettier-parser-yaml.d.js.map +1 -0
- package/lib/cjs/utils/codeHighlighter.js +338 -0
- package/lib/cjs/utils/codeHighlighter.js.map +1 -0
- package/lib/esm/components/code-highlighter/CodeHighlighter.js +121 -0
- package/lib/esm/components/code-highlighter/CodeHighlighter.js.map +1 -0
- package/lib/esm/components/code-highlighter/CodeHighlighter.styles.js +86 -0
- package/lib/esm/components/code-highlighter/CodeHighlighter.styles.js.map +1 -0
- package/lib/esm/components/code-highlighter/copy-to-clipboard/CopyToClipboard.js +33 -0
- package/lib/esm/components/code-highlighter/copy-to-clipboard/CopyToClipboard.js.map +1 -0
- package/lib/esm/components/code-highlighter/copy-to-clipboard/CopyToClipboard.styles.js +17 -0
- package/lib/esm/components/code-highlighter/copy-to-clipboard/CopyToClipboard.styles.js.map +1 -0
- package/lib/esm/index.js +4 -0
- package/lib/esm/index.js.map +1 -0
- package/lib/esm/types/codeHighlighter.js +6 -0
- package/lib/esm/types/codeHighlighter.js.map +1 -0
- package/lib/esm/types/parser/prettier-parser-babel.d.js +2 -0
- package/lib/esm/types/parser/prettier-parser-babel.d.js.map +1 -0
- package/lib/esm/types/parser/prettier-parser-graphql.d.js +2 -0
- package/lib/esm/types/parser/prettier-parser-graphql.d.js.map +1 -0
- package/lib/esm/types/parser/prettier-parser-html.d.js +2 -0
- package/lib/esm/types/parser/prettier-parser-html.d.js.map +1 -0
- package/lib/esm/types/parser/prettier-parser-markdown.d.js +2 -0
- package/lib/esm/types/parser/prettier-parser-markdown.d.js.map +1 -0
- package/lib/esm/types/parser/prettier-parser-postcss.d.js +2 -0
- package/lib/esm/types/parser/prettier-parser-postcss.d.js.map +1 -0
- package/lib/esm/types/parser/prettier-parser-yaml.d.js +2 -0
- package/lib/esm/types/parser/prettier-parser-yaml.d.js.map +1 -0
- package/lib/esm/utils/codeHighlighter.js +329 -0
- package/lib/esm/utils/codeHighlighter.js.map +1 -0
- package/lib/types/components/code-highlighter/CodeHighlighter.d.ts +44 -0
- package/lib/types/components/code-highlighter/CodeHighlighter.styles.d.ts +17 -0
- package/lib/types/components/code-highlighter/copy-to-clipboard/CopyToClipboard.d.ts +9 -0
- package/lib/types/components/code-highlighter/copy-to-clipboard/CopyToClipboard.styles.d.ts +8 -0
- package/lib/types/index.d.ts +3 -0
- package/lib/types/types/codeHighlighter.d.ts +10 -0
- package/lib/types/utils/codeHighlighter.d.ts +4 -0
- package/package.json +88 -0
|
@@ -0,0 +1,338 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getParserForLanguage = exports.formatLanguage = void 0;
|
|
7
|
+
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); }
|
|
8
|
+
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; }
|
|
9
|
+
const PARSER_MAP = {
|
|
10
|
+
'babel-ts': () => Promise.resolve().then(() => _interopRequireWildcard(require('prettier/parser-babel'))),
|
|
11
|
+
html: () => Promise.resolve().then(() => _interopRequireWildcard(require('prettier/parser-html'))),
|
|
12
|
+
css: () => Promise.resolve().then(() => _interopRequireWildcard(require('prettier/parser-postcss'))),
|
|
13
|
+
markdown: () => Promise.resolve().then(() => _interopRequireWildcard(require('prettier/parser-markdown'))),
|
|
14
|
+
graphql: () => Promise.resolve().then(() => _interopRequireWildcard(require('prettier/parser-graphql'))),
|
|
15
|
+
yaml: () => Promise.resolve().then(() => _interopRequireWildcard(require('prettier/parser-yaml')))
|
|
16
|
+
};
|
|
17
|
+
const getParserForLanguage = async (language = '') => {
|
|
18
|
+
let parser;
|
|
19
|
+
if (['tsx', 'jsx', 'typescript', 'javascript'].includes(language)) {
|
|
20
|
+
parser = 'babel-ts';
|
|
21
|
+
} else if (['html'].includes(language)) {
|
|
22
|
+
parser = 'html';
|
|
23
|
+
} else if (['css', 'less', 'scss'].includes(language)) {
|
|
24
|
+
parser = 'css';
|
|
25
|
+
} else if (['markdown'].includes(language)) {
|
|
26
|
+
parser = 'markdown';
|
|
27
|
+
} else if (['graphql'].includes(language)) {
|
|
28
|
+
parser = 'graphql';
|
|
29
|
+
} else if (['yaml'].includes(language)) {
|
|
30
|
+
parser = 'yaml';
|
|
31
|
+
}
|
|
32
|
+
if (parser && PARSER_MAP[parser]) {
|
|
33
|
+
const plugin = (await PARSER_MAP[parser]()).default;
|
|
34
|
+
return {
|
|
35
|
+
trailingComma: 'all',
|
|
36
|
+
bracketSpacing: true,
|
|
37
|
+
singleQuote: true,
|
|
38
|
+
jsxSingleQuote: true,
|
|
39
|
+
bracketSameLine: false,
|
|
40
|
+
arrowParens: 'always',
|
|
41
|
+
proseWrap: 'always',
|
|
42
|
+
parser,
|
|
43
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
44
|
+
// @ts-ignore
|
|
45
|
+
plugins: [plugin]
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
return undefined;
|
|
49
|
+
};
|
|
50
|
+
exports.getParserForLanguage = getParserForLanguage;
|
|
51
|
+
const formatLanguage = language => {
|
|
52
|
+
if (!language) {
|
|
53
|
+
return '';
|
|
54
|
+
}
|
|
55
|
+
const formattedLanguage = {
|
|
56
|
+
abap: 'ABAP',
|
|
57
|
+
abnf: 'ABNF',
|
|
58
|
+
actionscript: 'ActionScript',
|
|
59
|
+
ada: 'Ada',
|
|
60
|
+
agda: 'Agda',
|
|
61
|
+
al: 'AL',
|
|
62
|
+
antlr4: 'ANTLR4',
|
|
63
|
+
apacheconf: 'ApacheConf',
|
|
64
|
+
apex: 'Apex',
|
|
65
|
+
apl: 'APL',
|
|
66
|
+
applescript: 'AppleScript',
|
|
67
|
+
aql: 'AQL',
|
|
68
|
+
arduino: 'Arduino',
|
|
69
|
+
arff: 'ARFF',
|
|
70
|
+
asciidoc: 'AsciiDoc',
|
|
71
|
+
asm6502: 'ASM6502',
|
|
72
|
+
asmatmel: 'ASMatmel',
|
|
73
|
+
aspnet: 'ASP.NET',
|
|
74
|
+
autohotkey: 'AutoHotKey',
|
|
75
|
+
autoit: 'AutoIt',
|
|
76
|
+
avisynth: 'AviSynth',
|
|
77
|
+
avroIdl: 'Avro IDL',
|
|
78
|
+
bash: 'Bash',
|
|
79
|
+
basic: 'Basic',
|
|
80
|
+
batch: 'Batch',
|
|
81
|
+
bbcode: 'BBCode',
|
|
82
|
+
bicep: 'Bicep',
|
|
83
|
+
birb: 'Birb',
|
|
84
|
+
bison: 'Bison',
|
|
85
|
+
bnf: 'BNF',
|
|
86
|
+
brainfuck: 'Brainfuck',
|
|
87
|
+
brightscript: 'BrightScript',
|
|
88
|
+
bro: 'Bro',
|
|
89
|
+
bsl: 'BSL',
|
|
90
|
+
c: 'C',
|
|
91
|
+
cfscript: 'CFScript',
|
|
92
|
+
chaiscript: 'ChaiScript',
|
|
93
|
+
cil: 'CIL',
|
|
94
|
+
clike: 'C-like',
|
|
95
|
+
clojure: 'Clojure',
|
|
96
|
+
cmake: 'CMake',
|
|
97
|
+
cobol: 'COBOL',
|
|
98
|
+
coffeescript: 'CoffeeScript',
|
|
99
|
+
concurnas: 'Concurnas',
|
|
100
|
+
coq: 'Coq',
|
|
101
|
+
cpp: 'C++',
|
|
102
|
+
crystal: 'Crystal',
|
|
103
|
+
csharp: 'C#',
|
|
104
|
+
cshtml: 'CSHTML',
|
|
105
|
+
csp: 'CSP',
|
|
106
|
+
cssExtras: 'CSS Extras',
|
|
107
|
+
css: 'CSS',
|
|
108
|
+
csv: 'CSV',
|
|
109
|
+
cypher: 'Cypher',
|
|
110
|
+
d: 'D',
|
|
111
|
+
dart: 'Dart',
|
|
112
|
+
dataweave: 'DataWeave',
|
|
113
|
+
dax: 'DAX',
|
|
114
|
+
dhall: 'Dhall',
|
|
115
|
+
diff: 'Diff',
|
|
116
|
+
django: 'Django',
|
|
117
|
+
dnsZoneFile: 'DNS Zone File',
|
|
118
|
+
docker: 'Docker',
|
|
119
|
+
dot: 'DOT',
|
|
120
|
+
ebnf: 'EBNF',
|
|
121
|
+
editorconfig: 'EditorConfig',
|
|
122
|
+
eiffel: 'Eiffel',
|
|
123
|
+
ejs: 'EJS',
|
|
124
|
+
elixir: 'Elixir',
|
|
125
|
+
elm: 'Elm',
|
|
126
|
+
erb: 'ERB',
|
|
127
|
+
erlang: 'Erlang',
|
|
128
|
+
etlua: 'ETLua',
|
|
129
|
+
excelFormula: 'Excel Formula',
|
|
130
|
+
factor: 'Factor',
|
|
131
|
+
falselang: 'Falselang',
|
|
132
|
+
firestoreSecurityRules: 'Firestore Security Rules',
|
|
133
|
+
flow: 'Flow',
|
|
134
|
+
fortran: 'Fortran',
|
|
135
|
+
fsharp: 'F#',
|
|
136
|
+
ftl: 'FTL',
|
|
137
|
+
gap: 'GAP',
|
|
138
|
+
gcode: 'G-code',
|
|
139
|
+
gdscript: 'GDScript',
|
|
140
|
+
gedcom: 'GEDCOM',
|
|
141
|
+
gherkin: 'Gherkin',
|
|
142
|
+
git: 'Git',
|
|
143
|
+
glsl: 'GLSL',
|
|
144
|
+
gml: 'GML',
|
|
145
|
+
gn: 'GN',
|
|
146
|
+
goModule: 'Go Module',
|
|
147
|
+
go: 'Go',
|
|
148
|
+
graphql: 'GraphQL',
|
|
149
|
+
groovy: 'Groovy',
|
|
150
|
+
haml: 'Haml',
|
|
151
|
+
handlebars: 'Handlebars',
|
|
152
|
+
haskell: 'Haskell',
|
|
153
|
+
haxe: 'Haxe',
|
|
154
|
+
hcl: 'HCL',
|
|
155
|
+
hlsl: 'HLSL',
|
|
156
|
+
hoon: 'Hoon',
|
|
157
|
+
hpkp: 'HPKP',
|
|
158
|
+
hsts: 'HSTS',
|
|
159
|
+
html: 'HTML',
|
|
160
|
+
http: 'HTTP',
|
|
161
|
+
ichigojam: 'IchigoJam',
|
|
162
|
+
icon: 'Icon',
|
|
163
|
+
icuMessageFormat: 'ICU Message Format',
|
|
164
|
+
idris: 'Idris',
|
|
165
|
+
iecst: 'IECST',
|
|
166
|
+
ignore: 'Ignore',
|
|
167
|
+
inform7: 'Inform7',
|
|
168
|
+
ini: 'INI',
|
|
169
|
+
io: 'Io',
|
|
170
|
+
j: 'J',
|
|
171
|
+
java: 'Java',
|
|
172
|
+
javadoc: 'Javadoc',
|
|
173
|
+
javadoclike: 'Javadoc-like',
|
|
174
|
+
javascript: 'JavaScript',
|
|
175
|
+
javastacktrace: 'Java Stack Trace',
|
|
176
|
+
jexl: 'JEXL',
|
|
177
|
+
jolie: 'Jolie',
|
|
178
|
+
jq: 'jq',
|
|
179
|
+
jsExtras: 'JS Extras',
|
|
180
|
+
jsTemplates: 'JS Templates',
|
|
181
|
+
jsdoc: 'JSDoc',
|
|
182
|
+
json: 'JSON',
|
|
183
|
+
json5: 'JSON5',
|
|
184
|
+
jsonp: 'JSONP',
|
|
185
|
+
jsstacktrace: 'JS Stack Trace',
|
|
186
|
+
jsx: 'JSX',
|
|
187
|
+
julia: 'Julia',
|
|
188
|
+
keepalived: 'Keepalived',
|
|
189
|
+
keyman: 'Keyman',
|
|
190
|
+
kotlin: 'Kotlin',
|
|
191
|
+
kumir: 'KuMir',
|
|
192
|
+
kusto: 'Kusto',
|
|
193
|
+
latex: 'LaTeX',
|
|
194
|
+
latte: 'Latte',
|
|
195
|
+
less: 'Less',
|
|
196
|
+
lilypond: 'LilyPond',
|
|
197
|
+
liquid: 'Liquid',
|
|
198
|
+
lisp: 'Lisp',
|
|
199
|
+
livescript: 'LiveScript',
|
|
200
|
+
llvm: 'LLVM',
|
|
201
|
+
log: 'Log',
|
|
202
|
+
lolcode: 'LOLCODE',
|
|
203
|
+
lua: 'Lua',
|
|
204
|
+
magma: 'Magma',
|
|
205
|
+
makefile: 'Makefile',
|
|
206
|
+
markdown: 'Markdown',
|
|
207
|
+
markupTemplating: 'Markup Templating',
|
|
208
|
+
markup: 'Markup',
|
|
209
|
+
matlab: 'MATLAB',
|
|
210
|
+
maxscript: 'MAXScript',
|
|
211
|
+
mel: 'MEL',
|
|
212
|
+
mermaid: 'Mermaid',
|
|
213
|
+
mizar: 'Mizar',
|
|
214
|
+
mongodb: 'MongoDB',
|
|
215
|
+
monkey: 'Monkey',
|
|
216
|
+
moonscript: 'MoonScript',
|
|
217
|
+
n1ql: 'N1QL',
|
|
218
|
+
n4js: 'N4JS',
|
|
219
|
+
nand2tetrisHdl: 'Nand2Tetris HDL',
|
|
220
|
+
naniscript: 'NaninScript',
|
|
221
|
+
nasm: 'NASM',
|
|
222
|
+
neon: 'NEON',
|
|
223
|
+
nevod: 'NevoD',
|
|
224
|
+
nginx: 'Nginx',
|
|
225
|
+
nim: 'Nim',
|
|
226
|
+
nix: 'Nix',
|
|
227
|
+
nsis: 'NSIS',
|
|
228
|
+
objectivec: 'Objective-C',
|
|
229
|
+
ocaml: 'OCaml',
|
|
230
|
+
opencl: 'OpenCL',
|
|
231
|
+
openqasm: 'OpenQasm',
|
|
232
|
+
oz: 'Oz',
|
|
233
|
+
parigp: 'PARI/GP',
|
|
234
|
+
parser: 'Parser',
|
|
235
|
+
pascal: 'Pascal',
|
|
236
|
+
pascaligo: 'Pascaligo',
|
|
237
|
+
pcaxis: 'PC-Axis',
|
|
238
|
+
peoplecode: 'PeopleCode',
|
|
239
|
+
perl: 'Perl',
|
|
240
|
+
phpExtras: 'PHP Extras',
|
|
241
|
+
php: 'PHP',
|
|
242
|
+
phpdoc: 'PHPDoc',
|
|
243
|
+
plsql: 'PL/SQL',
|
|
244
|
+
powerquery: 'PowerQuery',
|
|
245
|
+
powershell: 'PowerShell',
|
|
246
|
+
processing: 'Processing',
|
|
247
|
+
prolog: 'Prolog',
|
|
248
|
+
promql: 'PromQL',
|
|
249
|
+
properties: 'Properties',
|
|
250
|
+
protobuf: 'Protocol Buffers',
|
|
251
|
+
psl: 'PSL',
|
|
252
|
+
pug: 'Pug',
|
|
253
|
+
puppet: 'Puppet',
|
|
254
|
+
pure: 'Pure',
|
|
255
|
+
purebasic: 'PureBasic',
|
|
256
|
+
purescript: 'PureScript',
|
|
257
|
+
python: 'Python',
|
|
258
|
+
q: 'Q',
|
|
259
|
+
qml: 'QML',
|
|
260
|
+
qore: 'Qore',
|
|
261
|
+
qsharp: 'Q#',
|
|
262
|
+
r: 'R',
|
|
263
|
+
racket: 'Racket',
|
|
264
|
+
reason: 'Reason',
|
|
265
|
+
regex: 'RegExp',
|
|
266
|
+
rego: 'Rego',
|
|
267
|
+
renpy: 'RenPy',
|
|
268
|
+
rest: 'reST',
|
|
269
|
+
rip: 'Rip',
|
|
270
|
+
roboconf: 'Roboconf',
|
|
271
|
+
robotframework: 'Robot Framework',
|
|
272
|
+
ruby: 'Ruby',
|
|
273
|
+
rust: 'Rust',
|
|
274
|
+
sas: 'SAS',
|
|
275
|
+
sass: 'Sass',
|
|
276
|
+
scala: 'Scala',
|
|
277
|
+
scheme: 'Scheme',
|
|
278
|
+
scss: 'SCSS',
|
|
279
|
+
shellSession: 'Shell Session',
|
|
280
|
+
smali: 'Smali',
|
|
281
|
+
smalltalk: 'Smalltalk',
|
|
282
|
+
smarty: 'Smarty',
|
|
283
|
+
sml: 'SML',
|
|
284
|
+
solidity: 'Solidity',
|
|
285
|
+
solutionFile: 'Solution File',
|
|
286
|
+
soy: 'Soy',
|
|
287
|
+
sparql: 'SPARQL',
|
|
288
|
+
splunkSpl: 'Splunk SPL',
|
|
289
|
+
sqf: 'SQF',
|
|
290
|
+
sql: 'SQL',
|
|
291
|
+
squirrel: 'Squirrel',
|
|
292
|
+
stan: 'Stan',
|
|
293
|
+
stylus: 'Stylus',
|
|
294
|
+
swift: 'Swift',
|
|
295
|
+
systemd: 'systemd',
|
|
296
|
+
t4Cs: 'T4CS',
|
|
297
|
+
t4Templating: 'T4 Templating',
|
|
298
|
+
t4Vb: 'T4VB',
|
|
299
|
+
tap: 'TAP',
|
|
300
|
+
tcl: 'Tcl',
|
|
301
|
+
textile: 'Textile',
|
|
302
|
+
toml: 'TOML',
|
|
303
|
+
tremor: 'Tremor',
|
|
304
|
+
tsx: 'TSX',
|
|
305
|
+
tt2: 'TT2',
|
|
306
|
+
turtle: 'Turtle',
|
|
307
|
+
twig: 'Twig',
|
|
308
|
+
typescript: 'TypeScript',
|
|
309
|
+
typoscript: 'TypoScript',
|
|
310
|
+
unrealscript: 'UnrealScript',
|
|
311
|
+
uorazor: 'Uorazor',
|
|
312
|
+
uri: 'URI',
|
|
313
|
+
v: 'V',
|
|
314
|
+
vala: 'Vala',
|
|
315
|
+
vbnet: 'VB.NET',
|
|
316
|
+
velocity: 'Velocity',
|
|
317
|
+
verilog: 'Verilog',
|
|
318
|
+
vhdl: 'VHDL',
|
|
319
|
+
vim: 'Vim',
|
|
320
|
+
visualBasic: 'Visual Basic',
|
|
321
|
+
warpscript: 'WarpScript',
|
|
322
|
+
wasm: 'WebAssembly',
|
|
323
|
+
webIdl: 'WebIDL',
|
|
324
|
+
wiki: 'Wiki',
|
|
325
|
+
wolfram: 'Wolfram',
|
|
326
|
+
wren: 'Wren',
|
|
327
|
+
xeora: 'Xeora',
|
|
328
|
+
xmlDoc: 'XML Doc',
|
|
329
|
+
xojo: 'Xojo',
|
|
330
|
+
xquery: 'XQuery',
|
|
331
|
+
yaml: 'YAML',
|
|
332
|
+
yang: 'YANG',
|
|
333
|
+
zig: 'Zig'
|
|
334
|
+
};
|
|
335
|
+
return formattedLanguage[language] || language;
|
|
336
|
+
};
|
|
337
|
+
exports.formatLanguage = formatLanguage;
|
|
338
|
+
//# sourceMappingURL=codeHighlighter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codeHighlighter.js","names":["PARSER_MAP","babel-ts","Promise","resolve","then","_interopRequireWildcard","require","html","css","markdown","graphql","yaml","getParserForLanguage","language","parser","includes","plugin","default","trailingComma","bracketSpacing","singleQuote","jsxSingleQuote","bracketSameLine","arrowParens","proseWrap","plugins","undefined","exports","formatLanguage","formattedLanguage","abap","abnf","actionscript","ada","agda","al","antlr4","apacheconf","apex","apl","applescript","aql","arduino","arff","asciidoc","asm6502","asmatmel","aspnet","autohotkey","autoit","avisynth","avroIdl","bash","basic","batch","bbcode","bicep","birb","bison","bnf","brainfuck","brightscript","bro","bsl","c","cfscript","chaiscript","cil","clike","clojure","cmake","cobol","coffeescript","concurnas","coq","cpp","crystal","csharp","cshtml","csp","cssExtras","csv","cypher","d","dart","dataweave","dax","dhall","diff","django","dnsZoneFile","docker","dot","ebnf","editorconfig","eiffel","ejs","elixir","elm","erb","erlang","etlua","excelFormula","factor","falselang","firestoreSecurityRules","flow","fortran","fsharp","ftl","gap","gcode","gdscript","gedcom","gherkin","git","glsl","gml","gn","goModule","go","groovy","haml","handlebars","haskell","haxe","hcl","hlsl","hoon","hpkp","hsts","http","ichigojam","icon","icuMessageFormat","idris","iecst","ignore","inform7","ini","io","j","java","javadoc","javadoclike","javascript","javastacktrace","jexl","jolie","jq","jsExtras","jsTemplates","jsdoc","json","json5","jsonp","jsstacktrace","jsx","julia","keepalived","keyman","kotlin","kumir","kusto","latex","latte","less","lilypond","liquid","lisp","livescript","llvm","log","lolcode","lua","magma","makefile","markupTemplating","markup","matlab","maxscript","mel","mermaid","mizar","mongodb","monkey","moonscript","n1ql","n4js","nand2tetrisHdl","naniscript","nasm","neon","nevod","nginx","nim","nix","nsis","objectivec","ocaml","opencl","openqasm","oz","parigp","pascal","pascaligo","pcaxis","peoplecode","perl","phpExtras","php","phpdoc","plsql","powerquery","powershell","processing","prolog","promql","properties","protobuf","psl","pug","puppet","pure","purebasic","purescript","python","q","qml","qore","qsharp","r","racket","reason","regex","rego","renpy","rest","rip","roboconf","robotframework","ruby","rust","sas","sass","scala","scheme","scss","shellSession","smali","smalltalk","smarty","sml","solidity","solutionFile","soy","sparql","splunkSpl","sqf","sql","squirrel","stan","stylus","swift","systemd","t4Cs","t4Templating","t4Vb","tap","tcl","textile","toml","tremor","tsx","tt2","turtle","twig","typescript","typoscript","unrealscript","uorazor","uri","v","vala","vbnet","velocity","verilog","vhdl","vim","visualBasic","warpscript","wasm","webIdl","wiki","wolfram","wren","xeora","xmlDoc","xojo","xquery","yang","zig"],"sources":["../../../src/utils/codeHighlighter.ts"],"sourcesContent":["import type { Options } from 'prettier';\nimport { CodeHighlighterLanguage } from '../types/codeHighlighter';\n\ntype ParserType = 'babel-ts' | 'html' | 'css' | 'markdown' | 'graphql' | 'yaml';\n\ntype ParserMap = Record<ParserType, () => Promise<{ default: unknown }>>;\n\nconst PARSER_MAP: ParserMap = {\n 'babel-ts': () => import('prettier/parser-babel'),\n html: () => import('prettier/parser-html'),\n css: () => import('prettier/parser-postcss'),\n markdown: () => import('prettier/parser-markdown'),\n graphql: () => import('prettier/parser-graphql'),\n yaml: () => import('prettier/parser-yaml'),\n};\n\nexport const getParserForLanguage = async (\n language: CodeHighlighterLanguage = ''\n): Promise<Options | undefined> => {\n let parser: ParserType | undefined;\n\n if (['tsx', 'jsx', 'typescript', 'javascript'].includes(language)) {\n parser = 'babel-ts';\n } else if (['html'].includes(language)) {\n parser = 'html';\n } else if (['css', 'less', 'scss'].includes(language)) {\n parser = 'css';\n } else if (['markdown'].includes(language)) {\n parser = 'markdown';\n } else if (['graphql'].includes(language)) {\n parser = 'graphql';\n } else if (['yaml'].includes(language)) {\n parser = 'yaml';\n }\n\n if (parser && PARSER_MAP[parser]) {\n const plugin = (await PARSER_MAP[parser]()).default;\n\n return {\n trailingComma: 'all',\n bracketSpacing: true,\n singleQuote: true,\n jsxSingleQuote: true,\n bracketSameLine: false,\n arrowParens: 'always',\n proseWrap: 'always',\n parser,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n plugins: [plugin],\n };\n }\n\n return undefined;\n};\n\nexport const formatLanguage = (language: CodeHighlighterLanguage): string => {\n if (!language) {\n return '';\n }\n\n const formattedLanguage: { [key: string]: string } = {\n abap: 'ABAP',\n abnf: 'ABNF',\n actionscript: 'ActionScript',\n ada: 'Ada',\n agda: 'Agda',\n al: 'AL',\n antlr4: 'ANTLR4',\n apacheconf: 'ApacheConf',\n apex: 'Apex',\n apl: 'APL',\n applescript: 'AppleScript',\n aql: 'AQL',\n arduino: 'Arduino',\n arff: 'ARFF',\n asciidoc: 'AsciiDoc',\n asm6502: 'ASM6502',\n asmatmel: 'ASMatmel',\n aspnet: 'ASP.NET',\n autohotkey: 'AutoHotKey',\n autoit: 'AutoIt',\n avisynth: 'AviSynth',\n avroIdl: 'Avro IDL',\n bash: 'Bash',\n basic: 'Basic',\n batch: 'Batch',\n bbcode: 'BBCode',\n bicep: 'Bicep',\n birb: 'Birb',\n bison: 'Bison',\n bnf: 'BNF',\n brainfuck: 'Brainfuck',\n brightscript: 'BrightScript',\n bro: 'Bro',\n bsl: 'BSL',\n c: 'C',\n cfscript: 'CFScript',\n chaiscript: 'ChaiScript',\n cil: 'CIL',\n clike: 'C-like',\n clojure: 'Clojure',\n cmake: 'CMake',\n cobol: 'COBOL',\n coffeescript: 'CoffeeScript',\n concurnas: 'Concurnas',\n coq: 'Coq',\n cpp: 'C++',\n crystal: 'Crystal',\n csharp: 'C#',\n cshtml: 'CSHTML',\n csp: 'CSP',\n cssExtras: 'CSS Extras',\n css: 'CSS',\n csv: 'CSV',\n cypher: 'Cypher',\n d: 'D',\n dart: 'Dart',\n dataweave: 'DataWeave',\n dax: 'DAX',\n dhall: 'Dhall',\n diff: 'Diff',\n django: 'Django',\n dnsZoneFile: 'DNS Zone File',\n docker: 'Docker',\n dot: 'DOT',\n ebnf: 'EBNF',\n editorconfig: 'EditorConfig',\n eiffel: 'Eiffel',\n ejs: 'EJS',\n elixir: 'Elixir',\n elm: 'Elm',\n erb: 'ERB',\n erlang: 'Erlang',\n etlua: 'ETLua',\n excelFormula: 'Excel Formula',\n factor: 'Factor',\n falselang: 'Falselang',\n firestoreSecurityRules: 'Firestore Security Rules',\n flow: 'Flow',\n fortran: 'Fortran',\n fsharp: 'F#',\n ftl: 'FTL',\n gap: 'GAP',\n gcode: 'G-code',\n gdscript: 'GDScript',\n gedcom: 'GEDCOM',\n gherkin: 'Gherkin',\n git: 'Git',\n glsl: 'GLSL',\n gml: 'GML',\n gn: 'GN',\n goModule: 'Go Module',\n go: 'Go',\n graphql: 'GraphQL',\n groovy: 'Groovy',\n haml: 'Haml',\n handlebars: 'Handlebars',\n haskell: 'Haskell',\n haxe: 'Haxe',\n hcl: 'HCL',\n hlsl: 'HLSL',\n hoon: 'Hoon',\n hpkp: 'HPKP',\n hsts: 'HSTS',\n html: 'HTML',\n http: 'HTTP',\n ichigojam: 'IchigoJam',\n icon: 'Icon',\n icuMessageFormat: 'ICU Message Format',\n idris: 'Idris',\n iecst: 'IECST',\n ignore: 'Ignore',\n inform7: 'Inform7',\n ini: 'INI',\n io: 'Io',\n j: 'J',\n java: 'Java',\n javadoc: 'Javadoc',\n javadoclike: 'Javadoc-like',\n javascript: 'JavaScript',\n javastacktrace: 'Java Stack Trace',\n jexl: 'JEXL',\n jolie: 'Jolie',\n jq: 'jq',\n jsExtras: 'JS Extras',\n jsTemplates: 'JS Templates',\n jsdoc: 'JSDoc',\n json: 'JSON',\n json5: 'JSON5',\n jsonp: 'JSONP',\n jsstacktrace: 'JS Stack Trace',\n jsx: 'JSX',\n julia: 'Julia',\n keepalived: 'Keepalived',\n keyman: 'Keyman',\n kotlin: 'Kotlin',\n kumir: 'KuMir',\n kusto: 'Kusto',\n latex: 'LaTeX',\n latte: 'Latte',\n less: 'Less',\n lilypond: 'LilyPond',\n liquid: 'Liquid',\n lisp: 'Lisp',\n livescript: 'LiveScript',\n llvm: 'LLVM',\n log: 'Log',\n lolcode: 'LOLCODE',\n lua: 'Lua',\n magma: 'Magma',\n makefile: 'Makefile',\n markdown: 'Markdown',\n markupTemplating: 'Markup Templating',\n markup: 'Markup',\n matlab: 'MATLAB',\n maxscript: 'MAXScript',\n mel: 'MEL',\n mermaid: 'Mermaid',\n mizar: 'Mizar',\n mongodb: 'MongoDB',\n monkey: 'Monkey',\n moonscript: 'MoonScript',\n n1ql: 'N1QL',\n n4js: 'N4JS',\n nand2tetrisHdl: 'Nand2Tetris HDL',\n naniscript: 'NaninScript',\n nasm: 'NASM',\n neon: 'NEON',\n nevod: 'NevoD',\n nginx: 'Nginx',\n nim: 'Nim',\n nix: 'Nix',\n nsis: 'NSIS',\n objectivec: 'Objective-C',\n ocaml: 'OCaml',\n opencl: 'OpenCL',\n openqasm: 'OpenQasm',\n oz: 'Oz',\n parigp: 'PARI/GP',\n parser: 'Parser',\n pascal: 'Pascal',\n pascaligo: 'Pascaligo',\n pcaxis: 'PC-Axis',\n peoplecode: 'PeopleCode',\n perl: 'Perl',\n phpExtras: 'PHP Extras',\n php: 'PHP',\n phpdoc: 'PHPDoc',\n plsql: 'PL/SQL',\n powerquery: 'PowerQuery',\n powershell: 'PowerShell',\n processing: 'Processing',\n prolog: 'Prolog',\n promql: 'PromQL',\n properties: 'Properties',\n protobuf: 'Protocol Buffers',\n psl: 'PSL',\n pug: 'Pug',\n puppet: 'Puppet',\n pure: 'Pure',\n purebasic: 'PureBasic',\n purescript: 'PureScript',\n python: 'Python',\n q: 'Q',\n qml: 'QML',\n qore: 'Qore',\n qsharp: 'Q#',\n r: 'R',\n racket: 'Racket',\n reason: 'Reason',\n regex: 'RegExp',\n rego: 'Rego',\n renpy: 'RenPy',\n rest: 'reST',\n rip: 'Rip',\n roboconf: 'Roboconf',\n robotframework: 'Robot Framework',\n ruby: 'Ruby',\n rust: 'Rust',\n sas: 'SAS',\n sass: 'Sass',\n scala: 'Scala',\n scheme: 'Scheme',\n scss: 'SCSS',\n shellSession: 'Shell Session',\n smali: 'Smali',\n smalltalk: 'Smalltalk',\n smarty: 'Smarty',\n sml: 'SML',\n solidity: 'Solidity',\n solutionFile: 'Solution File',\n soy: 'Soy',\n sparql: 'SPARQL',\n splunkSpl: 'Splunk SPL',\n sqf: 'SQF',\n sql: 'SQL',\n squirrel: 'Squirrel',\n stan: 'Stan',\n stylus: 'Stylus',\n swift: 'Swift',\n systemd: 'systemd',\n t4Cs: 'T4CS',\n t4Templating: 'T4 Templating',\n t4Vb: 'T4VB',\n tap: 'TAP',\n tcl: 'Tcl',\n textile: 'Textile',\n toml: 'TOML',\n tremor: 'Tremor',\n tsx: 'TSX',\n tt2: 'TT2',\n turtle: 'Turtle',\n twig: 'Twig',\n typescript: 'TypeScript',\n typoscript: 'TypoScript',\n unrealscript: 'UnrealScript',\n uorazor: 'Uorazor',\n uri: 'URI',\n v: 'V',\n vala: 'Vala',\n vbnet: 'VB.NET',\n velocity: 'Velocity',\n verilog: 'Verilog',\n vhdl: 'VHDL',\n vim: 'Vim',\n visualBasic: 'Visual Basic',\n warpscript: 'WarpScript',\n wasm: 'WebAssembly',\n webIdl: 'WebIDL',\n wiki: 'Wiki',\n wolfram: 'Wolfram',\n wren: 'Wren',\n xeora: 'Xeora',\n xmlDoc: 'XML Doc',\n xojo: 'Xojo',\n xquery: 'XQuery',\n yaml: 'YAML',\n yang: 'YANG',\n zig: 'Zig',\n };\n\n return formattedLanguage[language] || language;\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { useDevice } from 'chayns-api';
|
|
2
|
+
import { format } from 'prettier/standalone';
|
|
3
|
+
import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
4
|
+
import { PrismAsyncLight as SyntaxHighlighter } from 'react-syntax-highlighter';
|
|
5
|
+
import { oneDark, oneLight } from 'react-syntax-highlighter/dist/esm/styles/prism';
|
|
6
|
+
import { CodeHighlighterTheme } from '../../types/codeHighlighter';
|
|
7
|
+
import { formatLanguage, getParserForLanguage } from '../../utils/codeHighlighter';
|
|
8
|
+
import { StyledCodeHighlighter, StyledCodeHighlighterFileName, StyledCodeHighlighterHeader } from './CodeHighlighter.styles';
|
|
9
|
+
import CopyToClipboard from './copy-to-clipboard/CopyToClipboard';
|
|
10
|
+
const CodeHighlighter = _ref => {
|
|
11
|
+
let {
|
|
12
|
+
theme = CodeHighlighterTheme.Dark,
|
|
13
|
+
code,
|
|
14
|
+
copyButtonText,
|
|
15
|
+
language,
|
|
16
|
+
highlightedLines,
|
|
17
|
+
shouldFormatCode = false,
|
|
18
|
+
onFormatError,
|
|
19
|
+
shouldShowLineNumbers = false,
|
|
20
|
+
shouldWrapLines
|
|
21
|
+
} = _ref;
|
|
22
|
+
const [width, setWidth] = useState(0);
|
|
23
|
+
const ref = useRef(null);
|
|
24
|
+
const {
|
|
25
|
+
browser
|
|
26
|
+
} = useDevice();
|
|
27
|
+
useEffect(() => {
|
|
28
|
+
if (ref.current) {
|
|
29
|
+
const {
|
|
30
|
+
children
|
|
31
|
+
} = ref.current;
|
|
32
|
+
const preElement = Array.from(children).find(_ref2 => {
|
|
33
|
+
let {
|
|
34
|
+
tagName
|
|
35
|
+
} = _ref2;
|
|
36
|
+
return tagName.toLowerCase() === 'pre';
|
|
37
|
+
});
|
|
38
|
+
if (preElement) {
|
|
39
|
+
setWidth(preElement.scrollWidth);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}, []);
|
|
43
|
+
|
|
44
|
+
// function to style highlighted code
|
|
45
|
+
const lineWrapper = useCallback(lineNumber => {
|
|
46
|
+
let style = {
|
|
47
|
+
backgroundColor: 'none',
|
|
48
|
+
display: 'block',
|
|
49
|
+
borderRadius: '2px',
|
|
50
|
+
width: width - 15
|
|
51
|
+
};
|
|
52
|
+
if (highlightedLines?.added && highlightedLines.added.includes(lineNumber)) {
|
|
53
|
+
style = {
|
|
54
|
+
...style,
|
|
55
|
+
backgroundColor: '#2EF29930'
|
|
56
|
+
};
|
|
57
|
+
} else if (highlightedLines?.removed && highlightedLines.removed.includes(lineNumber)) {
|
|
58
|
+
style = {
|
|
59
|
+
...style,
|
|
60
|
+
backgroundColor: '#F22E5B30'
|
|
61
|
+
};
|
|
62
|
+
} else if (highlightedLines?.marked && highlightedLines.marked.includes(lineNumber)) {
|
|
63
|
+
style = {
|
|
64
|
+
...style,
|
|
65
|
+
backgroundColor: '#cccccc40'
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
return {
|
|
69
|
+
style
|
|
70
|
+
};
|
|
71
|
+
}, [highlightedLines, width]);
|
|
72
|
+
const formattedCode = useMemo(() => {
|
|
73
|
+
if (language) {
|
|
74
|
+
void getParserForLanguage(language).then(config => {
|
|
75
|
+
if (shouldFormatCode && config) {
|
|
76
|
+
try {
|
|
77
|
+
return format(code, config);
|
|
78
|
+
} catch (error) {
|
|
79
|
+
if (typeof onFormatError !== 'undefined') onFormatError(error);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
return code;
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
return code;
|
|
86
|
+
}, [code, language, shouldFormatCode, onFormatError]);
|
|
87
|
+
useEffect(() => {
|
|
88
|
+
const elements = document.getElementsByClassName('linenumber');
|
|
89
|
+
Array.from(elements).forEach(element => {
|
|
90
|
+
const wrapper = document.createElement('twIgnore');
|
|
91
|
+
while (element.firstChild) {
|
|
92
|
+
wrapper.appendChild(element.firstChild);
|
|
93
|
+
}
|
|
94
|
+
element.appendChild(wrapper);
|
|
95
|
+
});
|
|
96
|
+
}, []);
|
|
97
|
+
return useMemo(() => /*#__PURE__*/React.createElement(StyledCodeHighlighter, {
|
|
98
|
+
$browser: browser?.name,
|
|
99
|
+
$shouldWrapLines: shouldWrapLines,
|
|
100
|
+
$codeTheme: theme,
|
|
101
|
+
ref: ref
|
|
102
|
+
}, /*#__PURE__*/React.createElement(StyledCodeHighlighterHeader, {
|
|
103
|
+
$codeTheme: theme
|
|
104
|
+
}, /*#__PURE__*/React.createElement(StyledCodeHighlighterFileName, {
|
|
105
|
+
$codeTheme: theme
|
|
106
|
+
}, /*#__PURE__*/React.createElement("twIgnore", null, formatLanguage(language))), /*#__PURE__*/React.createElement(CopyToClipboard, {
|
|
107
|
+
text: code,
|
|
108
|
+
theme: theme,
|
|
109
|
+
copyButtonText: copyButtonText
|
|
110
|
+
})), /*#__PURE__*/React.createElement(SyntaxHighlighter, {
|
|
111
|
+
language: language ?? '',
|
|
112
|
+
showLineNumbers: shouldShowLineNumbers,
|
|
113
|
+
style: theme === CodeHighlighterTheme.Dark ? oneDark : oneLight,
|
|
114
|
+
wrapLines: true,
|
|
115
|
+
wrapLongLines: shouldWrapLines,
|
|
116
|
+
lineProps: lineWrapper
|
|
117
|
+
}, formattedCode)), [browser?.name, theme, language, code, copyButtonText, shouldShowLineNumbers, shouldWrapLines, lineWrapper, formattedCode]);
|
|
118
|
+
};
|
|
119
|
+
CodeHighlighter.displayName = 'CodeHighlighter';
|
|
120
|
+
export default CodeHighlighter;
|
|
121
|
+
//# sourceMappingURL=CodeHighlighter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CodeHighlighter.js","names":["useDevice","format","React","useCallback","useEffect","useMemo","useRef","useState","PrismAsyncLight","SyntaxHighlighter","oneDark","oneLight","CodeHighlighterTheme","formatLanguage","getParserForLanguage","StyledCodeHighlighter","StyledCodeHighlighterFileName","StyledCodeHighlighterHeader","CopyToClipboard","CodeHighlighter","_ref","theme","Dark","code","copyButtonText","language","highlightedLines","shouldFormatCode","onFormatError","shouldShowLineNumbers","shouldWrapLines","width","setWidth","ref","browser","current","children","preElement","Array","from","find","_ref2","tagName","toLowerCase","scrollWidth","lineWrapper","lineNumber","style","backgroundColor","display","borderRadius","added","includes","removed","marked","formattedCode","then","config","error","elements","document","getElementsByClassName","forEach","element","wrapper","createElement","firstChild","appendChild","$browser","name","$shouldWrapLines","$codeTheme","text","showLineNumbers","wrapLines","wrapLongLines","lineProps","displayName"],"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,86 @@
|
|
|
1
|
+
import styled, { css } from 'styled-components';
|
|
2
|
+
import { CodeHighlighterTheme } from '../../types/codeHighlighter';
|
|
3
|
+
export const StyledCodeHighlighter = styled.div`
|
|
4
|
+
margin: 4px 0;
|
|
5
|
+
background-color: ${_ref => {
|
|
6
|
+
let {
|
|
7
|
+
$codeTheme
|
|
8
|
+
} = _ref;
|
|
9
|
+
return $codeTheme === CodeHighlighterTheme.Dark ? '#282c34' : '#fafafa';
|
|
10
|
+
}};
|
|
11
|
+
border-radius: 8px;
|
|
12
|
+
padding-bottom: 6px;
|
|
13
|
+
|
|
14
|
+
pre {
|
|
15
|
+
margin: 0 !important;
|
|
16
|
+
overflow: auto;
|
|
17
|
+
padding: 15px;
|
|
18
|
+
line-height: 1.5;
|
|
19
|
+
|
|
20
|
+
// Styles for custom scrollbar
|
|
21
|
+
${_ref2 => {
|
|
22
|
+
let {
|
|
23
|
+
$browser,
|
|
24
|
+
theme
|
|
25
|
+
} = _ref2;
|
|
26
|
+
return $browser === 'firefox' ? css`
|
|
27
|
+
scrollbar-color: rgba(${theme['text-rgb']}, 0.15) transparent;
|
|
28
|
+
scrollbar-width: thin;
|
|
29
|
+
` : css`
|
|
30
|
+
&::-webkit-scrollbar {
|
|
31
|
+
height: 5px;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
&::-webkit-scrollbar-track {
|
|
35
|
+
background-color: transparent;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
&::-webkit-scrollbar-button {
|
|
39
|
+
background-color: transparent;
|
|
40
|
+
height: 5px;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
&::-webkit-scrollbar-thumb {
|
|
44
|
+
background-color: rgba(${theme['text-rgb']}, 0.15);
|
|
45
|
+
border-radius: 20px;
|
|
46
|
+
}
|
|
47
|
+
`;
|
|
48
|
+
}}
|
|
49
|
+
|
|
50
|
+
code {
|
|
51
|
+
white-space: ${_ref3 => {
|
|
52
|
+
let {
|
|
53
|
+
$shouldWrapLines
|
|
54
|
+
} = _ref3;
|
|
55
|
+
return $shouldWrapLines ? 'pre-wrap' : 'pre';
|
|
56
|
+
}} !important;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
// Fixes display of tables in code highlighter for markdown.
|
|
61
|
+
.language-markdown .token.table {
|
|
62
|
+
display: inline;
|
|
63
|
+
}
|
|
64
|
+
`;
|
|
65
|
+
export const StyledCodeHighlighterHeader = styled.div`
|
|
66
|
+
display: flex;
|
|
67
|
+
align-items: center;
|
|
68
|
+
justify-content: space-between;
|
|
69
|
+
border-bottom: 1px solid
|
|
70
|
+
${_ref4 => {
|
|
71
|
+
let {
|
|
72
|
+
$codeTheme
|
|
73
|
+
} = _ref4;
|
|
74
|
+
return $codeTheme === CodeHighlighterTheme.Dark ? '#e5e5e5' : '#999999';
|
|
75
|
+
}};
|
|
76
|
+
padding: 4px 12px;
|
|
77
|
+
`;
|
|
78
|
+
export const StyledCodeHighlighterFileName = styled.span`
|
|
79
|
+
color: ${_ref5 => {
|
|
80
|
+
let {
|
|
81
|
+
$codeTheme
|
|
82
|
+
} = _ref5;
|
|
83
|
+
return $codeTheme === CodeHighlighterTheme.Dark ? '#e5e5e5' : '#999999';
|
|
84
|
+
}};
|
|
85
|
+
`;
|
|
86
|
+
//# sourceMappingURL=CodeHighlighter.styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CodeHighlighter.styles.js","names":["styled","css","CodeHighlighterTheme","StyledCodeHighlighter","div","_ref","$codeTheme","Dark","_ref2","$browser","theme","_ref3","$shouldWrapLines","StyledCodeHighlighterHeader","_ref4","StyledCodeHighlighterFileName","span","_ref5"],"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,OAAOA,MAAM,IAAIC,GAAG,QAAQ,mBAAmB;AAC/C,SAASC,oBAAoB,QAAQ,6BAA6B;AAQlE,OAAO,MAAMC,qBAAqB,GAAGH,MAAM,CAACI,GAA+B;AAC3E;AACA,wBAAwBC,IAAA;EAAA,IAAC;IAAEC;EAAW,CAAC,GAAAD,IAAA;EAAA,OAC/BC,UAAU,KAAKJ,oBAAoB,CAACK,IAAI,GAAG,SAAS,GAAG,SAAS;AAAA;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAUC,KAAA;EAAA,IAAC;IAAEC,QAAQ;IAAEC;EAAkC,CAAC,GAAAF,KAAA;EAAA,OAC9CC,QAAQ,KAAK,SAAS,GAChBR,GAAG;AACrB,8CAA8CS,KAAK,CAAC,UAAU,CAAC;AAC/D;AACA,mBAAmB,GACDT,GAAG;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmDS,KAAK,CAAC,UAAU,CAAC;AACpE;AACA;AACA,mBAAmB;AAAA;AACnB;AACA;AACA,2BAA2BC,KAAA;EAAA,IAAC;IAAEC;EAAiB,CAAC,GAAAD,KAAA;EAAA,OAChCC,gBAAgB,GAAG,UAAU,GAAG,KAAK;AAAA;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAMD,OAAO,MAAMC,2BAA2B,GAAGb,MAAM,CAACI,GAAqC;AACvF;AACA;AACA;AACA;AACA,UAAUU,KAAA;EAAA,IAAC;IAAER;EAAW,CAAC,GAAAQ,KAAA;EAAA,OAAMR,UAAU,KAAKJ,oBAAoB,CAACK,IAAI,GAAG,SAAS,GAAG,SAAS;AAAA,CAAC;AAChG;AACA,CAAC;AAMD,OAAO,MAAMQ,6BAA6B,GAAGf,MAAM,CAACgB,IAAwC;AAC5F,aAAaC,KAAA;EAAA,IAAC;IAAEX;EAAW,CAAC,GAAAW,KAAA;EAAA,OACpBX,UAAU,KAAKJ,oBAAoB,CAACK,IAAI,GAAG,SAAS,GAAG,SAAS;AAAA;AACxE,CAAC","ignoreList":[]}
|