@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
@@ -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":[]}