xtralab 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/LICENSE +28 -0
  2. package/README.md +69 -0
  3. package/lib/fileBrowser/commands.d.ts +62 -0
  4. package/lib/fileBrowser/commands.js +418 -0
  5. package/lib/fileBrowser/contents.d.ts +28 -0
  6. package/lib/fileBrowser/contents.js +48 -0
  7. package/lib/fileBrowser/fileBrowser.d.ts +24 -0
  8. package/lib/fileBrowser/fileBrowser.js +535 -0
  9. package/lib/fileBrowser/icons.d.ts +37 -0
  10. package/lib/fileBrowser/icons.js +153 -0
  11. package/lib/fileBrowser/index.d.ts +7 -0
  12. package/lib/fileBrowser/index.js +38 -0
  13. package/lib/fileBrowser/widget.d.ts +97 -0
  14. package/lib/fileBrowser/widget.js +95 -0
  15. package/lib/git/api.d.ts +39 -0
  16. package/lib/git/api.js +164 -0
  17. package/lib/git/commands.d.ts +69 -0
  18. package/lib/git/commands.js +67 -0
  19. package/lib/git/diffWidget.d.ts +108 -0
  20. package/lib/git/diffWidget.js +624 -0
  21. package/lib/git/icons.d.ts +14 -0
  22. package/lib/git/icons.js +19 -0
  23. package/lib/git/index.d.ts +11 -0
  24. package/lib/git/index.js +74 -0
  25. package/lib/git/notebookDiff.d.ts +176 -0
  26. package/lib/git/notebookDiff.js +805 -0
  27. package/lib/git/panel.d.ts +29 -0
  28. package/lib/git/panel.js +42 -0
  29. package/lib/git/panelComponent.d.ts +26 -0
  30. package/lib/git/panelComponent.js +300 -0
  31. package/lib/git/tokens.d.ts +78 -0
  32. package/lib/git/tokens.js +6 -0
  33. package/lib/index.d.ts +10 -0
  34. package/lib/index.js +14 -0
  35. package/package.json +216 -0
  36. package/schema/plugin.json +67 -0
  37. package/src/fileBrowser/commands.ts +507 -0
  38. package/src/fileBrowser/contents.ts +66 -0
  39. package/src/fileBrowser/fileBrowser.tsx +635 -0
  40. package/src/fileBrowser/icons.ts +172 -0
  41. package/src/fileBrowser/index.ts +56 -0
  42. package/src/fileBrowser/widget.tsx +202 -0
  43. package/src/git/api.ts +207 -0
  44. package/src/git/commands.ts +143 -0
  45. package/src/git/diffWidget.tsx +903 -0
  46. package/src/git/icons.ts +20 -0
  47. package/src/git/index.ts +109 -0
  48. package/src/git/notebookDiff.tsx +1294 -0
  49. package/src/git/panel.tsx +56 -0
  50. package/src/git/panelComponent.tsx +558 -0
  51. package/src/git/tokens.ts +91 -0
  52. package/src/index.ts +18 -0
  53. package/style/base.css +175 -0
  54. package/style/git.css +770 -0
  55. package/style/index.css +2 -0
  56. package/style/index.js +2 -0
package/package.json ADDED
@@ -0,0 +1,216 @@
1
+ {
2
+ "name": "xtralab",
3
+ "version": "0.1.0",
4
+ "description": "An opinionated JupyterLab meta-package that bundles a curated set of extensions, ships a path-first file browser and a VS Code-style git changes panel, and applies a quieter default workspace configuration.",
5
+ "keywords": [
6
+ "jupyter",
7
+ "jupyterlab",
8
+ "jupyterlab-extension",
9
+ "meta-package",
10
+ "file-browser",
11
+ "git",
12
+ "diff"
13
+ ],
14
+ "homepage": "https://github.com/jtpio/xtralab",
15
+ "bugs": {
16
+ "url": "https://github.com/jtpio/xtralab/issues"
17
+ },
18
+ "license": "BSD-3-Clause",
19
+ "author": "Jeremy Tuloup",
20
+ "files": [
21
+ "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
+ "src/**/*.{ts,tsx}",
24
+ "schema/*.json"
25
+ ],
26
+ "main": "lib/index.js",
27
+ "types": "lib/index.d.ts",
28
+ "style": "style/index.css",
29
+ "repository": {
30
+ "type": "git",
31
+ "url": "https://github.com/jtpio/xtralab.git"
32
+ },
33
+ "scripts": {
34
+ "build": "jlpm build:lib && jlpm build:labextension:dev",
35
+ "build:prod": "jlpm clean && jlpm build:lib:prod && jlpm build:labextension",
36
+ "build:labextension": "jupyter-builder build .",
37
+ "build:labextension:dev": "jupyter-builder build --development True .",
38
+ "build:lib": "tsc --sourceMap",
39
+ "build:lib:prod": "tsc",
40
+ "clean": "jlpm clean:lib",
41
+ "clean:lib": "rimraf lib tsconfig.tsbuildinfo",
42
+ "clean:lintcache": "rimraf .eslintcache .stylelintcache",
43
+ "clean:labextension": "rimraf xtralab/labextension xtralab/_version.py",
44
+ "clean:all": "jlpm clean:lib && jlpm clean:labextension && jlpm clean:lintcache",
45
+ "eslint": "jlpm eslint:check --fix",
46
+ "eslint:check": "eslint . --cache --ext .ts,.tsx",
47
+ "install:extension": "jlpm build",
48
+ "lint": "jlpm stylelint && jlpm prettier && jlpm eslint",
49
+ "lint:check": "jlpm stylelint:check && jlpm prettier:check && jlpm eslint:check",
50
+ "prettier": "jlpm prettier:base --write --list-different",
51
+ "prettier:base": "prettier \"**/*{.ts,.tsx,.js,.jsx,.css,.json,.md}\"",
52
+ "prettier:check": "jlpm prettier:base --check",
53
+ "stylelint": "jlpm stylelint:check --fix",
54
+ "stylelint:check": "stylelint --cache \"style/**/*.css\"",
55
+ "watch": "run-p watch:src watch:labextension",
56
+ "watch:src": "tsc -w --sourceMap",
57
+ "watch:labextension": "jupyter-builder watch ."
58
+ },
59
+ "dependencies": {
60
+ "@jupyterlab/application": "^4.6.0-alpha.5",
61
+ "@jupyterlab/apputils": "^4.7.0-alpha.5",
62
+ "@jupyterlab/coreutils": "^6.6.0-alpha.5",
63
+ "@jupyterlab/docmanager": "^4.6.0-alpha.5",
64
+ "@jupyterlab/docregistry": "^4.6.0-alpha.5",
65
+ "@jupyterlab/nbformat": "^4.6.0-alpha.5",
66
+ "@jupyterlab/outputarea": "^4.6.0-alpha.5",
67
+ "@jupyterlab/rendermime": "^4.6.0-alpha.5",
68
+ "@jupyterlab/services": "^7.6.0-alpha.5",
69
+ "@jupyterlab/settingregistry": "^4.6.0-alpha.5",
70
+ "@jupyterlab/ui-components": "^4.6.0-alpha.5",
71
+ "@lumino/coreutils": "^2.0.0",
72
+ "@lumino/disposable": "^2.0.0",
73
+ "@lumino/dragdrop": "^2.0.0",
74
+ "@lumino/messaging": "^2.0.0",
75
+ "@lumino/signaling": "^2.0.0",
76
+ "@lumino/widgets": "^2.0.0",
77
+ "@pierre/diffs": "^1.1.20",
78
+ "@pierre/trees": "1.0.0-beta.3",
79
+ "react": "^18.2.0",
80
+ "react-dom": "^18.2.0"
81
+ },
82
+ "devDependencies": {
83
+ "@jupyter/builder": "^0.0.8",
84
+ "@types/json-schema": "^7.0.11",
85
+ "@types/react": "^18.0.26",
86
+ "@types/react-addons-linked-state-mixin": "^0.14.22",
87
+ "@typescript-eslint/eslint-plugin": "^6.1.0",
88
+ "@typescript-eslint/parser": "^6.1.0",
89
+ "css-loader": "^6.7.1",
90
+ "eslint": "^8.36.0",
91
+ "eslint-config-prettier": "^8.8.0",
92
+ "eslint-plugin-prettier": "^5.0.0",
93
+ "npm-run-all2": "^7.0.1",
94
+ "prettier": "^3.0.0",
95
+ "rimraf": "^5.0.1",
96
+ "source-map-loader": "^1.0.2",
97
+ "style-loader": "^3.3.1",
98
+ "stylelint": "^15.10.1",
99
+ "stylelint-config-recommended": "^13.0.0",
100
+ "stylelint-config-standard": "^34.0.0",
101
+ "stylelint-csstree-validator": "^3.0.0",
102
+ "stylelint-prettier": "^4.0.0",
103
+ "typescript": "~5.5.4",
104
+ "yjs": "^13.5.0"
105
+ },
106
+ "resolutions": {
107
+ "lib0": "0.2.111"
108
+ },
109
+ "sideEffects": [
110
+ "style/*.css",
111
+ "style/index.js"
112
+ ],
113
+ "styleModule": "style/index.js",
114
+ "publishConfig": {
115
+ "access": "public"
116
+ },
117
+ "jupyterlab": {
118
+ "extension": true,
119
+ "outputDir": "xtralab/labextension",
120
+ "schemaDir": "schema",
121
+ "disabledExtensions": [
122
+ "@jupyterlab/git"
123
+ ]
124
+ },
125
+ "eslintIgnore": [
126
+ "node_modules",
127
+ "dist",
128
+ "coverage",
129
+ "**/*.d.ts"
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/naming-convention": [
148
+ "error",
149
+ {
150
+ "selector": "interface",
151
+ "format": [
152
+ "PascalCase"
153
+ ],
154
+ "custom": {
155
+ "regex": "^I[A-Z]",
156
+ "match": true
157
+ }
158
+ }
159
+ ],
160
+ "@typescript-eslint/no-unused-vars": [
161
+ "warn",
162
+ {
163
+ "args": "none"
164
+ }
165
+ ],
166
+ "@typescript-eslint/no-explicit-any": "off",
167
+ "@typescript-eslint/no-namespace": "off",
168
+ "@typescript-eslint/no-use-before-define": "off",
169
+ "@typescript-eslint/quotes": [
170
+ "error",
171
+ "single",
172
+ {
173
+ "avoidEscape": true,
174
+ "allowTemplateLiterals": false
175
+ }
176
+ ],
177
+ "curly": [
178
+ "error",
179
+ "all"
180
+ ],
181
+ "eqeqeq": "error",
182
+ "prefer-arrow-callback": "error"
183
+ }
184
+ },
185
+ "prettier": {
186
+ "singleQuote": true,
187
+ "trailingComma": "none",
188
+ "arrowParens": "avoid",
189
+ "endOfLine": "auto",
190
+ "overrides": [
191
+ {
192
+ "files": "package.json",
193
+ "options": {
194
+ "tabWidth": 4
195
+ }
196
+ }
197
+ ]
198
+ },
199
+ "stylelint": {
200
+ "extends": [
201
+ "stylelint-config-recommended",
202
+ "stylelint-config-standard",
203
+ "stylelint-prettier/recommended"
204
+ ],
205
+ "plugins": [
206
+ "stylelint-csstree-validator"
207
+ ],
208
+ "rules": {
209
+ "csstree/validator": true,
210
+ "property-no-vendor-prefix": null,
211
+ "selector-class-pattern": "^([a-z][A-z\\d]*)(-[A-z\\d]+)*$",
212
+ "selector-no-vendor-prefix": null,
213
+ "value-no-vendor-prefix": null
214
+ }
215
+ }
216
+ }
@@ -0,0 +1,67 @@
1
+ {
2
+ "title": "xtralab",
3
+ "description": "xtralab settings.",
4
+ "jupyter.lab.shortcuts": [],
5
+ "jupyter.lab.menus": {
6
+ "context": [
7
+ {
8
+ "command": "xtralab:open",
9
+ "selector": ".jp-xtralab-FileBrowser [data-type=\"item\"][data-item-type=\"file\"]",
10
+ "rank": 1
11
+ },
12
+ {
13
+ "type": "submenu",
14
+ "selector": ".jp-xtralab-FileBrowser [data-type=\"item\"][data-item-type=\"file\"]",
15
+ "rank": 2,
16
+ "submenu": {
17
+ "id": "jp-contextmenu-xtralab-open-with",
18
+ "label": "Open With",
19
+ "items": []
20
+ }
21
+ },
22
+ {
23
+ "command": "xtralab:open-browser-tab",
24
+ "selector": ".jp-xtralab-FileBrowser [data-type=\"item\"][data-item-type=\"file\"]",
25
+ "rank": 3
26
+ },
27
+ {
28
+ "type": "separator",
29
+ "selector": ".jp-xtralab-FileBrowser [data-type=\"item\"]",
30
+ "rank": 4
31
+ },
32
+ {
33
+ "command": "xtralab:rename",
34
+ "selector": ".jp-xtralab-FileBrowser [data-type=\"item\"]",
35
+ "rank": 5
36
+ },
37
+ {
38
+ "command": "xtralab:delete",
39
+ "selector": ".jp-xtralab-FileBrowser [data-type=\"item\"]",
40
+ "rank": 6
41
+ },
42
+ {
43
+ "command": "xtralab:duplicate",
44
+ "selector": ".jp-xtralab-FileBrowser [data-type=\"item\"][data-item-type=\"file\"]",
45
+ "rank": 7
46
+ },
47
+ {
48
+ "type": "separator",
49
+ "selector": ".jp-xtralab-FileBrowser [data-type=\"item\"]",
50
+ "rank": 8
51
+ },
52
+ {
53
+ "command": "xtralab:copy-path",
54
+ "selector": ".jp-xtralab-FileBrowser [data-type=\"item\"]",
55
+ "rank": 9
56
+ },
57
+ {
58
+ "command": "xtralab:download",
59
+ "selector": ".jp-xtralab-FileBrowser [data-type=\"item\"][data-item-type=\"file\"]",
60
+ "rank": 10
61
+ }
62
+ ]
63
+ },
64
+ "type": "object",
65
+ "properties": {},
66
+ "additionalProperties": false
67
+ }