@quarto/jupyterlab-quarto 0.1.44 → 0.2.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (127) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +48 -15
  3. package/lib/__tests__/jupyterlab_quarto.spec.d.ts +3 -0
  4. package/lib/__tests__/jupyterlab_quarto.spec.js +9 -0
  5. package/lib/ast/ast.d.ts +2 -0
  6. package/lib/ast/ast.js +40 -0
  7. package/lib/const.d.ts +4 -0
  8. package/lib/const.js +11 -0
  9. package/lib/hooks/codemirror.d.ts +5 -0
  10. package/lib/hooks/codemirror.js +77 -0
  11. package/lib/index.d.ts +5 -0
  12. package/lib/index.js +61 -0
  13. package/lib/manager.d.ts +8 -0
  14. package/lib/manager.js +115 -0
  15. package/lib/plugins/callouts.d.ts +2 -0
  16. package/lib/plugins/callouts.js +210 -0
  17. package/lib/plugins/cites.d.ts +2 -0
  18. package/lib/plugins/cites.js +166 -0
  19. package/lib/plugins/decorator.d.ts +2 -0
  20. package/lib/plugins/decorator.js +58 -0
  21. package/lib/plugins/divs.d.ts +5 -0
  22. package/lib/plugins/divs.js +111 -0
  23. package/lib/plugins/figure-divs.d.ts +2 -0
  24. package/lib/plugins/figure-divs.js +54 -0
  25. package/lib/plugins/figures.d.ts +16 -0
  26. package/lib/plugins/figures.js +98 -0
  27. package/lib/plugins/gridtables/common/gridtables/GetCells.d.ts +7 -0
  28. package/lib/plugins/gridtables/common/gridtables/GetCells.js +43 -0
  29. package/lib/plugins/gridtables/common/gridtables/GetColumnWidths.d.ts +7 -0
  30. package/lib/plugins/gridtables/common/gridtables/GetColumnWidths.js +22 -0
  31. package/lib/plugins/gridtables/common/markdown-it/ColumnAlignments.d.ts +7 -0
  32. package/lib/plugins/gridtables/common/markdown-it/ColumnAlignments.js +12 -0
  33. package/lib/plugins/gridtables/common/markdown-it/EmitTable.d.ts +4 -0
  34. package/lib/plugins/gridtables/common/markdown-it/EmitTable.js +64 -0
  35. package/lib/plugins/gridtables/common/markdown-it/GetCharCodeAtStartOfLine.d.ts +8 -0
  36. package/lib/plugins/gridtables/common/markdown-it/GetCharCodeAtStartOfLine.js +17 -0
  37. package/lib/plugins/gridtables/common/markdown-it/GetLine.d.ts +2 -0
  38. package/lib/plugins/gridtables/common/markdown-it/GetLine.js +9 -0
  39. package/lib/plugins/gridtables/common/markdown-it/ParseTable.d.ts +3 -0
  40. package/lib/plugins/gridtables/common/markdown-it/ParseTable.js +152 -0
  41. package/lib/plugins/gridtables/common/markdown-it/ParseTableResult.d.ts +12 -0
  42. package/lib/plugins/gridtables/common/markdown-it/ParseTableResult.js +17 -0
  43. package/lib/plugins/gridtables/index.d.ts +1 -0
  44. package/lib/plugins/gridtables/index.js +10 -0
  45. package/lib/plugins/gridtables/interfaces/markdown-it/IState.d.ts +10 -0
  46. package/lib/plugins/gridtables/interfaces/markdown-it/IState.js +5 -0
  47. package/lib/plugins/gridtables/interfaces/markdown-it/IToken.d.ts +6 -0
  48. package/lib/plugins/gridtables/interfaces/markdown-it/IToken.js +5 -0
  49. package/lib/plugins/gridtables/interfaces/markdown-it/TRuleFunction.d.ts +3 -0
  50. package/lib/plugins/gridtables/interfaces/markdown-it/TRuleFunction.js +5 -0
  51. package/lib/plugins/gridtables/rules/gridtable.d.ts +3 -0
  52. package/lib/plugins/gridtables/rules/gridtable.js +25 -0
  53. package/lib/plugins/index.d.ts +15 -0
  54. package/lib/plugins/index.js +21 -0
  55. package/lib/plugins/math.d.ts +6 -0
  56. package/lib/plugins/math.js +179 -0
  57. package/lib/plugins/mermaid/index.d.ts +4 -0
  58. package/lib/plugins/mermaid/index.js +60 -0
  59. package/lib/plugins/shortcodes.d.ts +3 -0
  60. package/lib/plugins/shortcodes.js +32 -0
  61. package/lib/plugins/spans.d.ts +2 -0
  62. package/lib/plugins/spans.js +37 -0
  63. package/lib/plugins/table-captions.d.ts +2 -0
  64. package/lib/plugins/table-captions.js +72 -0
  65. package/lib/plugins/utils/html.d.ts +11 -0
  66. package/lib/plugins/utils/html.js +50 -0
  67. package/lib/plugins/utils/markdownit.d.ts +15 -0
  68. package/lib/plugins/utils/markdownit.js +46 -0
  69. package/lib/plugins/utils/tok.d.ts +7 -0
  70. package/lib/plugins/utils/tok.js +13 -0
  71. package/lib/plugins/yaml.d.ts +2 -0
  72. package/lib/plugins/yaml.js +330 -0
  73. package/lib/providers/attrs.d.ts +1 -0
  74. package/lib/providers/attrs.js +15 -0
  75. package/lib/providers/callouts.d.ts +1 -0
  76. package/lib/providers/callouts.js +15 -0
  77. package/lib/providers/cites.d.ts +1 -0
  78. package/lib/providers/cites.js +15 -0
  79. package/lib/providers/decorator.d.ts +1 -0
  80. package/lib/providers/decorator.js +15 -0
  81. package/lib/providers/deflist.d.ts +1 -0
  82. package/lib/providers/deflist.js +15 -0
  83. package/lib/providers/divs.d.ts +1 -0
  84. package/lib/providers/divs.js +27 -0
  85. package/lib/providers/figure-divs.d.ts +1 -0
  86. package/lib/providers/figure-divs.js +15 -0
  87. package/lib/providers/figures.d.ts +1 -0
  88. package/lib/providers/figures.js +15 -0
  89. package/lib/providers/footnotes.d.ts +1 -0
  90. package/lib/providers/footnotes.js +15 -0
  91. package/lib/providers/gridtables.d.ts +1 -0
  92. package/lib/providers/gridtables.js +15 -0
  93. package/lib/providers/math.d.ts +1 -0
  94. package/lib/providers/math.js +104 -0
  95. package/lib/providers/mermaid.d.ts +1 -0
  96. package/lib/providers/mermaid.js +17 -0
  97. package/lib/providers/provider.d.ts +3 -0
  98. package/lib/providers/provider.js +12 -0
  99. package/lib/providers/shortcodes.d.ts +1 -0
  100. package/lib/providers/shortcodes.js +15 -0
  101. package/lib/providers/spans.d.ts +1 -0
  102. package/lib/providers/spans.js +15 -0
  103. package/lib/providers/sub.d.ts +1 -0
  104. package/lib/providers/sub.js +15 -0
  105. package/lib/providers/sup.d.ts +1 -0
  106. package/lib/providers/sup.js +15 -0
  107. package/lib/providers/table-captions.d.ts +1 -0
  108. package/lib/providers/table-captions.js +15 -0
  109. package/lib/providers/tasklists.d.ts +1 -0
  110. package/lib/providers/tasklists.js +15 -0
  111. package/lib/providers/yaml.d.ts +1 -0
  112. package/lib/providers/yaml.js +15 -0
  113. package/lib/types.d.ts +43 -0
  114. package/lib/types.js +1 -0
  115. package/lib/widgets.d.ts +14 -0
  116. package/lib/widgets.js +57 -0
  117. package/package.json +105 -39
  118. package/style/base.css +34 -33
  119. package/style/index.css +1 -1
  120. package/schema/plugin.json +0 -8
  121. package/src/@types/markdown-it-deflist.d.ts +0 -10
  122. package/src/@types/markdown-it-footnote.d.ts +0 -10
  123. package/src/@types/markdown-it-gridtables.d.ts +0 -10
  124. package/src/@types/markdown-it-implicit-figures.d.ts +0 -10
  125. package/src/@types/markdown-it-sub.d.ts +0 -10
  126. package/src/@types/markdown-it-sup.d.ts +0 -10
  127. package/src/@types/markdown-it-task-lists.d.ts +0 -10
@@ -0,0 +1,12 @@
1
+ import { kMarkdownItMgr, kPackageNamespace } from '../const';
2
+ export function markdownItExtension(provider) {
3
+ return {
4
+ id: `${kPackageNamespace}:${provider.id}`,
5
+ autoStart: true,
6
+ requires: [kMarkdownItMgr],
7
+ activate: (_app, manager) => {
8
+ console.log(`Quarto MarkdownIt plugin ${provider.id} is activated!`);
9
+ manager.registerPlugin(provider);
10
+ }
11
+ };
12
+ }
@@ -0,0 +1 @@
1
+ export declare const shortcodes: import("@jupyterlab/application").JupyterFrontEndPlugin<void>;
@@ -0,0 +1,15 @@
1
+ /*
2
+ * shortcodes.ts
3
+ *
4
+ * Copyright (C) 2020-2023 Posit Software, PBC
5
+ *
6
+ */
7
+ import { shortcodePlugin } from '../plugins/shortcodes';
8
+ import { markdownItExtension } from './provider';
9
+ export const shortcodes = markdownItExtension({
10
+ id: '@quarto/shortcode',
11
+ title: 'Shortcodes',
12
+ plugin: async () => {
13
+ return [shortcodePlugin];
14
+ }
15
+ });
@@ -0,0 +1 @@
1
+ export declare const spans: import("@jupyterlab/application").JupyterFrontEndPlugin<void>;
@@ -0,0 +1,15 @@
1
+ /*
2
+ * spans.ts
3
+ *
4
+ * Copyright (C) 2020-2023 Posit Software, PBC
5
+ *
6
+ */
7
+ import { spansPlugin } from '../plugins/spans';
8
+ import { markdownItExtension } from './provider';
9
+ export const spans = markdownItExtension({
10
+ id: '@quarto/spans',
11
+ title: 'Pandoc bracketed spans',
12
+ plugin: async () => {
13
+ return [spansPlugin];
14
+ }
15
+ });
@@ -0,0 +1 @@
1
+ export declare const sub: import("@jupyterlab/application").JupyterFrontEndPlugin<void>;
@@ -0,0 +1,15 @@
1
+ /*
2
+ * sub.ts
3
+ *
4
+ * Copyright (C) 2020-2023 Posit Software, PBC
5
+ *
6
+ */
7
+ import { markdownItExtension } from './provider';
8
+ export const sub = markdownItExtension({
9
+ id: '@quarto/sub',
10
+ title: 'Subscript Text',
11
+ plugin: async () => {
12
+ const plugin = await import('markdown-it-sub');
13
+ return [plugin.default];
14
+ }
15
+ });
@@ -0,0 +1 @@
1
+ export declare const sup: import("@jupyterlab/application").JupyterFrontEndPlugin<void>;
@@ -0,0 +1,15 @@
1
+ /*
2
+ * sup.ts
3
+ *
4
+ * Copyright (C) 2020-2023 Posit Software, PBC
5
+ *
6
+ */
7
+ import { markdownItExtension } from './provider';
8
+ export const sup = markdownItExtension({
9
+ id: '@quarto/sup',
10
+ title: 'Superscript Text',
11
+ plugin: async () => {
12
+ const plugin = await import('markdown-it-sup');
13
+ return [plugin.default];
14
+ }
15
+ });
@@ -0,0 +1 @@
1
+ export declare const tableCaptions: import("@jupyterlab/application").JupyterFrontEndPlugin<void>;
@@ -0,0 +1,15 @@
1
+ /*
2
+ * table-captions.ts
3
+ *
4
+ * Copyright (C) 2020-2023 Posit Software, PBC
5
+ *
6
+ */
7
+ import { tableCaptionPlugin } from '../plugins/table-captions';
8
+ import { markdownItExtension } from './provider';
9
+ export const tableCaptions = markdownItExtension({
10
+ id: '@quarto/tableCaptions',
11
+ title: 'Quarto Table Captions',
12
+ plugin: async () => {
13
+ return [tableCaptionPlugin];
14
+ }
15
+ });
@@ -0,0 +1 @@
1
+ export declare const tasklists: import("@jupyterlab/application").JupyterFrontEndPlugin<void>;
@@ -0,0 +1,15 @@
1
+ /*
2
+ * tasklists.ts
3
+ *
4
+ * Copyright (C) 2020-2023 Posit Software, PBC
5
+ *
6
+ */
7
+ import { markdownItExtension } from './provider';
8
+ export const tasklists = markdownItExtension({
9
+ id: '@quarto/tasklists',
10
+ title: 'Task Lists',
11
+ plugin: async () => {
12
+ const plugin = await import('markdown-it-task-lists');
13
+ return [plugin.default];
14
+ }
15
+ });
@@ -0,0 +1 @@
1
+ export declare const yaml: import("@jupyterlab/application").JupyterFrontEndPlugin<void>;
@@ -0,0 +1,15 @@
1
+ /*
2
+ * yaml-block.ts
3
+ *
4
+ * Copyright (C) 2020-2023 Posit Software, PBC
5
+ *
6
+ */
7
+ import { yamlPlugin } from '../plugins/yaml';
8
+ import { markdownItExtension } from './provider';
9
+ export const yaml = markdownItExtension({
10
+ id: '@quarto/yaml',
11
+ title: 'Quarto Yaml',
12
+ plugin: async () => {
13
+ return [yamlPlugin];
14
+ }
15
+ });
package/lib/types.d.ts ADDED
@@ -0,0 +1,43 @@
1
+ import MarkdownIt from 'markdown-it';
2
+ import { RenderedMarkdown } from './widgets';
3
+ import { IRenderMime } from '@jupyterlab/rendermime-interfaces';
4
+ import { ISanitizer } from '@jupyterlab/apputils';
5
+ export interface MarkdownItManager {
6
+ registerPlugin(provider: MarkdownItPluginProvider): void;
7
+ getRenderer(widget: RenderedMarkdown, options?: MarkdownIt.Options): Promise<Renderer>;
8
+ }
9
+ export interface Ranked {
10
+ rank?: number;
11
+ }
12
+ export interface MarkdownItPlugin {
13
+ (md: MarkdownIt, ...params: any[]): void;
14
+ }
15
+ export interface Hook<A, V> extends Ranked {
16
+ run(arg: A): Promise<V>;
17
+ }
18
+ export interface MarkdownItPluginProvider extends Ranked {
19
+ id: string;
20
+ title: string;
21
+ plugin(): Promise<[MarkdownItPlugin, ...any]>;
22
+ options?(widget: RenderedMarkdown): Partial<MarkdownIt.Options>;
23
+ hooks?: {
24
+ preParse?: Hook<string, string>;
25
+ postRender?: Hook<HTMLElement, void>;
26
+ };
27
+ }
28
+ export interface RenderOptions {
29
+ host: HTMLElement;
30
+ source: string;
31
+ trusted: boolean;
32
+ sanitizer: ISanitizer;
33
+ resolver: IRenderMime.IResolver | null;
34
+ linkHandler: IRenderMime.ILinkHandler | null;
35
+ shouldTypeset: boolean;
36
+ renderer: Renderer;
37
+ latexTypesetter: IRenderMime.ILatexTypesetter | null;
38
+ }
39
+ export interface Renderer {
40
+ render(content: string): string;
41
+ preParse(node: string): Promise<string>;
42
+ postRender(node: HTMLElement): Promise<void>;
43
+ }
package/lib/types.js ADDED
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,14 @@
1
+ import { RenderedHTMLCommon } from '@jupyterlab/rendermime';
2
+ import { IRenderMime } from '@jupyterlab/rendermime-interfaces';
3
+ import { Message } from '@lumino/messaging';
4
+ import { MarkdownItManager, Renderer } from './types';
5
+ export declare class RenderedMarkdown extends RenderedHTMLCommon {
6
+ constructor(options: IRenderMime.IRendererOptions, manager: MarkdownItManager);
7
+ private markdownItManager;
8
+ render(model: IRenderMime.IMimeModel): Promise<void>;
9
+ renderer: Renderer | null;
10
+ /**
11
+ * A message handler invoked on an `'after-attach'` message.
12
+ */
13
+ onAfterAttach(msg: Message): void;
14
+ }
package/lib/widgets.js ADDED
@@ -0,0 +1,57 @@
1
+ /*
2
+ * widgets.ts
3
+ *
4
+ * Copyright (C) 2020-2023 Posit Software, PBC
5
+ *
6
+ */
7
+ import { RenderedHTMLCommon, renderHTML } from '@jupyterlab/rendermime';
8
+ // A mime rendered that renders Quarto Markdown
9
+ export class RenderedMarkdown extends RenderedHTMLCommon {
10
+ constructor(options, manager) {
11
+ super(options);
12
+ this.renderer = null;
13
+ this.addClass('quarto-rendered-md');
14
+ this.markdownItManager = manager;
15
+ }
16
+ // Renders a mime model
17
+ async render(model) {
18
+ if (this.renderer === null) {
19
+ this.renderer = await this.markdownItManager.getRenderer(this, {});
20
+ }
21
+ const { host, source, renderer, ...others } = {
22
+ host: this.node,
23
+ source: String(model.data[this.mimeType]),
24
+ trusted: model.trusted,
25
+ resolver: this.resolver,
26
+ sanitizer: this.sanitizer,
27
+ linkHandler: this.linkHandler,
28
+ shouldTypeset: this.isAttached,
29
+ renderer: this.renderer,
30
+ latexTypesetter: this.latexTypesetter
31
+ };
32
+ // Transform source
33
+ const markup = await renderer.preParse(source);
34
+ // Clear the content if there is no source.
35
+ if (!markup) {
36
+ host.textContent = '';
37
+ return;
38
+ }
39
+ // Render HTML.
40
+ await renderHTML({
41
+ host,
42
+ source: renderer.render(markup),
43
+ ...others,
44
+ shouldTypeset: false
45
+ });
46
+ await renderer.postRender(host);
47
+ }
48
+ /**
49
+ * A message handler invoked on an `'after-attach'` message.
50
+ */
51
+ onAfterAttach(msg) {
52
+ // Don't render math automatically
53
+ // if (this.latexTypesetter ) {
54
+ // this.latexTypesetter.typeset(this.node);
55
+ // }
56
+ }
57
+ }
package/package.json CHANGED
@@ -1,15 +1,15 @@
1
1
  {
2
+ "version": "0.2.3",
2
3
  "name": "@quarto/jupyterlab-quarto",
3
- "version": "0.1.44",
4
4
  "description": "Jupyter extension to enable authoring of Quarto documents within Jupyterlab Notebooks.",
5
5
  "keywords": [
6
6
  "jupyter",
7
7
  "jupyterlab",
8
8
  "jupyterlab-extension"
9
9
  ],
10
- "homepage": "https://github.com/quarto-dev/quarto",
10
+ "homepage": "https://github.com/quarto-dev/jupyterlab-quarto",
11
11
  "bugs": {
12
- "url": "https://github.com/quarto-dev/quarto/issues/"
12
+ "url": "https://github.com/quarto-dev/jupyterlab-quarto/issues"
13
13
  },
14
14
  "license": "BSD-3-Clause",
15
15
  "author": {
@@ -17,17 +17,15 @@
17
17
  "email": "charles@posit.co"
18
18
  },
19
19
  "files": [
20
- "src/**/*.{d.ts,eot,gif,html,jpg,js,js.map,json,png,svg,woff2,ttf}",
21
20
  "lib/**/*.{d.ts,eot,gif,html,jpg,js,js.map,json,png,svg,woff2,ttf}",
22
- "style/**/*.{css,js,eot,gif,html,jpg,json,png,svg,woff2,ttf}",
23
- "schema/*.json"
21
+ "style/**/*.{css,js,eot,gif,html,jpg,json,png,svg,woff2,ttf}"
24
22
  ],
25
23
  "main": "lib/index.js",
26
24
  "types": "lib/index.d.ts",
27
25
  "style": "style/index.css",
28
26
  "repository": {
29
27
  "type": "git",
30
- "url": "https://github.com/quarto-dev/quarto/quarto.git"
28
+ "url": "https://github.com/quarto-dev/jupyterlab-quarto.git"
31
29
  },
32
30
  "scripts": {
33
31
  "build": "jlpm build:lib && jlpm build:labextension:dev",
@@ -39,7 +37,7 @@
39
37
  "clean": "jlpm clean:lib",
40
38
  "clean:lib": "rimraf lib tsconfig.tsbuildinfo",
41
39
  "clean:lintcache": "rimraf .eslintcache .stylelintcache",
42
- "clean:labextension": "rimraf jupyterlab-quarto/labextension jupyterlab-quarto/_version.py",
40
+ "clean:labextension": "rimraf jupyterlab_quarto/labextension jupyterlab_quarto/_version.py",
43
41
  "clean:all": "jlpm clean:lib && jlpm clean:labextension && jlpm clean:lintcache",
44
42
  "eslint": "jlpm eslint:check --fix",
45
43
  "eslint:check": "eslint . --cache --ext .ts,.tsx",
@@ -51,22 +49,14 @@
51
49
  "prettier:check": "jlpm prettier:base --check",
52
50
  "stylelint": "jlpm stylelint:check --fix",
53
51
  "stylelint:check": "stylelint --cache \"style/**/*.css\"",
54
- "test": "jest",
52
+ "test": "jest --coverage",
55
53
  "watch": "run-p watch:src watch:labextension",
56
- "watch:src": "tsc -w",
54
+ "watch:src": "tsc -w --sourceMap",
57
55
  "watch:labextension": "jupyter labextension watch ."
58
56
  },
59
57
  "dependencies": {
60
- "@jupyterlab/application": "^3.0.0",
61
- "@jupyterlab/apputils": "^3.0.0",
62
- "@jupyterlab/codemirror": "^3.0.0",
63
- "@jupyterlab/mainmenu": "^3.0.0",
64
- "@jupyterlab/rendermime": "^3.0.0",
65
- "@jupyterlab/rendermime-interfaces": "^3.0.0",
66
- "@jupyterlab/settingregistry": "^3.0.0",
67
- "@jupyterlab/ui-components": "^3.0.0",
68
- "@lumino/widgets": "^1.37.1",
69
- "js-yaml": "^4.1.0",
58
+ "@jupyterlab/application": "^4.0.0",
59
+ "@jupyterlab/codemirror": "^4.0.0",
70
60
  "markdown-it": "^12.2.3",
71
61
  "markdown-it-attrs": "^4.1.6",
72
62
  "markdown-it-deflist": "^2.0.3",
@@ -79,30 +69,38 @@
79
69
  "wcwidth": "^1.0.1"
80
70
  },
81
71
  "devDependencies": {
82
- "@jupyterlab/builder": "^3.1.0",
83
- "@types/codemirror": "5.60.5",
84
- "@types/jest": "^26.0.0",
72
+ "@jupyterlab/builder": "^4.0.0",
73
+ "@jupyterlab/testutils": "^4.0.0",
74
+ "@types/codemirror": "^5.60.8",
75
+ "@types/d3": "^7.4.0",
76
+ "@types/dompurify": "^3.0.2",
77
+ "@types/jest": "^29.2.0",
78
+ "@types/js-yaml": "^4.0.5",
79
+ "@types/json-schema": "^7.0.11",
85
80
  "@types/markdown-it": "^12.2.3",
86
81
  "@types/markdown-it-attrs": "^4.1.0",
87
82
  "@types/mermaid": "^9.1.0",
83
+ "@types/react": "^18.0.26",
88
84
  "@types/wcwidth": "^1.0.0",
89
- "@typescript-eslint/eslint-plugin": "^4.8.1",
90
- "@typescript-eslint/parser": "^4.8.1",
91
- "eslint": "^7.14.0",
92
- "eslint-config-prettier": "^6.15.0",
93
- "eslint-plugin-prettier": "^3.1.4",
94
- "jest": "^26.0.0",
95
- "jest-environment-jsdom": "^26.0.0",
85
+ "@typescript-eslint/eslint-plugin": "^5.55.0",
86
+ "@typescript-eslint/parser": "^5.55.0",
87
+ "css-loader": "^6.7.1",
88
+ "eslint": "^8.36.0",
89
+ "eslint-config-prettier": "^8.7.0",
90
+ "eslint-plugin-prettier": "^4.2.1",
91
+ "jest": "^29.2.0",
96
92
  "npm-run-all": "^4.1.5",
97
- "prettier": "^2.1.1",
98
- "rimraf": "^3.0.2",
99
- "stylelint": "^14.3.0",
93
+ "prettier": "^2.8.7",
94
+ "rimraf": "^4.4.1",
95
+ "source-map-loader": "^1.0.2",
96
+ "style-loader": "^3.3.1",
97
+ "stylelint": "^14.9.1",
100
98
  "stylelint-config-prettier": "^9.0.4",
101
- "stylelint-config-recommended": "^6.0.0",
102
- "stylelint-config-standard": "~24.0.0",
99
+ "stylelint-config-recommended": "^8.0.0",
100
+ "stylelint-config-standard": "^26.0.0",
103
101
  "stylelint-prettier": "^2.0.0",
104
- "ts-jest": "^26.0.0",
105
- "typescript": "^4.9.4"
102
+ "typescript": "~5.0.2",
103
+ "yjs": "^13.5.0"
106
104
  },
107
105
  "sideEffects": [
108
106
  "style/*.css",
@@ -114,12 +112,80 @@
114
112
  },
115
113
  "jupyterlab": {
116
114
  "extension": true,
117
- "outputDir": "jupyterlab-quarto/labextension",
118
- "schemaDir": "schema",
115
+ "outputDir": "jupyterlab_quarto/labextension",
119
116
  "disabledExtensions": [
120
117
  "jupyterlab-myst:plugin",
121
118
  "jupyterlab-myst:legacyPlugin",
122
119
  "jupyterlab-myst:executor"
123
120
  ]
121
+ },
122
+ "eslintIgnore": [
123
+ "node_modules",
124
+ "dist",
125
+ "coverage",
126
+ "**/*.d.ts",
127
+ "tests",
128
+ "**/__tests__",
129
+ "ui-tests"
130
+ ],
131
+ "eslintConfig": {
132
+ "extends": [
133
+ "eslint:recommended",
134
+ "plugin:@typescript-eslint/eslint-recommended",
135
+ "plugin:@typescript-eslint/recommended",
136
+ "plugin:prettier/recommended"
137
+ ],
138
+ "parser": "@typescript-eslint/parser",
139
+ "parserOptions": {
140
+ "project": "tsconfig.json",
141
+ "sourceType": "module"
142
+ },
143
+ "plugins": [
144
+ "@typescript-eslint"
145
+ ],
146
+ "rules": {
147
+ "@typescript-eslint/no-unused-vars": [
148
+ "warn",
149
+ {
150
+ "args": "none"
151
+ }
152
+ ],
153
+ "@typescript-eslint/no-explicit-any": "off",
154
+ "@typescript-eslint/no-namespace": "off",
155
+ "@typescript-eslint/no-use-before-define": "off",
156
+ "@typescript-eslint/quotes": [
157
+ "error",
158
+ "single",
159
+ {
160
+ "avoidEscape": true,
161
+ "allowTemplateLiterals": false
162
+ }
163
+ ],
164
+ "curly": [
165
+ "error",
166
+ "all"
167
+ ],
168
+ "eqeqeq": "error",
169
+ "prefer-arrow-callback": "error"
170
+ }
171
+ },
172
+ "prettier": {
173
+ "singleQuote": true,
174
+ "trailingComma": "none",
175
+ "arrowParens": "avoid",
176
+ "endOfLine": "auto"
177
+ },
178
+ "stylelint": {
179
+ "extends": [
180
+ "stylelint-config-recommended",
181
+ "stylelint-config-standard",
182
+ "stylelint-prettier/recommended"
183
+ ],
184
+ "rules": {
185
+ "property-no-vendor-prefix": null,
186
+ "selector-no-vendor-prefix": null,
187
+ "value-no-vendor-prefix": null,
188
+ "selector-class-pattern": null
189
+ }
124
190
  }
125
191
  }