gwchq-textjam 0.2.35 → 0.2.36

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/dist/style.css CHANGED
@@ -33,11 +33,13 @@
33
33
  }
34
34
 
35
35
  .react-tabs__tab:focus {
36
+ box-shadow: 0 0 5px hsl(208, 99%, 50%);
37
+ border-color: hsl(208, 99%, 50%);
36
38
  outline: none;
37
39
  }
38
40
 
39
41
  .react-tabs__tab:focus:after {
40
- content: '';
42
+ content: "";
41
43
  position: absolute;
42
44
  height: 5px;
43
45
  left: -4px;
@@ -692,8 +694,8 @@
692
694
  :root{--rpf-white: #ffffff}.styles-module__tree--KziAJ{max-inline-size:300px;min-block-size:100px;color:#33625e}.styles-module__fileTreeActions--k\+Wsd{display:flex;gap:calc(.5rem*var(--scale-factor, 1));align-items:center;margin-block-end:calc(1rem*var(--scale-factor, 1))}.styles-module__tooltipWrapper--wltXE{position:relative;z-index:650}.styles-module__fileTreeActionsLabel--dPZp4{flex-grow:1;color:#69746d}.styles-module__importButton--rcLUm{inline-size:calc(2.5rem*var(--scale-factor, 1))}.styles-module__importArrowIcon--3eOLN{margin-inline-start:calc(.25rem*var(--scale-factor, 1))}.styles-module__label--WY51f{margin:0;flex-grow:1}.styles-module__iconButton--6UIVe{border:none;display:flex;justify-content:center;align-items:center;cursor:pointer}.styles-module__iconButtonFilled--w2vJC{background-color:#e5f6f1;border-radius:calc(.5rem*var(--scale-factor, 1));min-inline-size:calc(2rem*var(--scale-factor, 1));block-size:calc(2rem*var(--scale-factor, 1));transition:background-color .2s ease-in-out}.styles-module__iconButtonFilled--w2vJC:hover{background-color:#d7e7e3}.styles-module__iconButtonFilled--w2vJC:active{background-color:rgba(0,0,0,0)}.styles-module__dragline--RXmTT{block-size:2px;margin-block-start:-1px;background-color:#003046}.styles-module__dragline--RXmTT ::before{content:"";position:absolute;inset-inline-start:0;inset-block-start:-3px;block-size:4px;inline-size:4px;background:#fff;border:2px solid #003046;border-radius:99px}.styles-module__emptyStateContainer--AnTAm{padding:calc(.75rem*var(--scale-factor, 1));display:flex;flex-direction:column;align-items:center;text-align:center;font-size:calc(.75rem*var(--scale-factor, 1));line-height:calc(1rem*var(--scale-factor, 1));font-weight:400;color:#69746d;gap:calc(.25rem*var(--scale-factor, 1))}.styles-module__emptyStateIcon--sDlxK{inline-size:calc(1.5rem*var(--scale-factor, 1));block-size:calc(1.5rem*var(--scale-factor, 1))}.styles-module__emptyStateMessage--OkPax{font-weight:700}
693
695
  :root{--rpf-white: #ffffff}.styles-module__arrowIcon--YOZDc{margin-left:calc(.25rem*var(--scale-factor, 1))}.styles-module__buttonActive--q-jy7{background-color:rgba(0,0,0,0);border:1px solid #33625e}
694
696
  :root{--rpf-white: #ffffff}.styles-module__toastContainer--SzERA{display:flex;align-items:space-between;gap:calc(.875rem*var(--scale-factor, 1));color:#003046;font-size:calc(.875rem*var(--scale-factor, 1));line-height:calc(1.25rem*var(--scale-factor, 1));font-weight:500;overflow-wrap:anywhere}.styles-module__toastMessage--5Ze6a{flex-grow:1}.styles-module__errorIcon--v90W6{color:#e0201c}.styles-module__successIcon--gCtAd{color:#527d7a}.styles-module__closeIcon--iZ9ey{color:#003046;cursor:pointer}.Toastify__toast{padding:calc(1.125rem*var(--scale-factor, 1)) !important}.styles-module__infoIcon--tva-x{color:#0d47a1}
695
- :root,:host{--font-size-0-5: 0.5rem;--font-size-0-75: 0.75rem;--font-size-1: 1rem;--font-size-1-5: 1.25rem;--font-size-2: 1.5rem;--font-size-3: 2rem;--font-size-4: 2.5rem;--font-size-5: 3rem;--font-size-6: 3.5rem;--font-size-7: 4rem;--font-size-8: 4.5rem;--font-size-9: 5rem}:root,:host{--font-weight-regular: 400;--font-weight-bold: 700}:root,:host{--line-height-0-75: 0.75rem;--line-height-1: 1rem;--line-height-1-5: 1.5rem;--line-height-2: 2rem;--line-height-2-5: 2.5rem;--line-height-3: 3rem;--line-height-3-5: 3.5rem;--line-height-4: 4rem;--line-height-4-5: 4.5rem;--line-height-5: 5rem;--line-height-5-5: 5.5rem;--line-height-6: 6rem;--line-height-6-5: 6.5rem}.editor-wrapper{overflow:auto;scrollbar-width:thin;height:100%}.editor{display:flex;flex-flow:column;flex:1;overflow:hidden;height:100%}.editor .cm-editor{flex:1;overflow:hidden}.editor .cm-editor:focus{outline:none}.editor .cm-editor .cm-scroller{overflow:auto;scrollbar-width:thin;overscroll-behavior-x:none;font-family:var(--wc-font-family-monospace);z-index:100}.editor .cm-editor .cm-scroller .cm-content{flex:1;padding-block-start:calc(.5rem*var(--scale-factor, 1));margin-inline-end:calc(.5rem*var(--scale-factor, 1))}.editor--small{font-size:calc(.875rem*var(--scale-factor, 1));line-height:calc(1.25rem*var(--scale-factor, 1))}.editor--medium{font-size:calc(1.5rem*var(--scale-factor, 1));line-height:calc(2rem*var(--scale-factor, 1))}.editor--large{font-size:calc(2rem*var(--scale-factor, 1));line-height:calc(2.5rem*var(--scale-factor, 1))}.rpf-alert{margin:0}
696
697
  :root{--rpf-white: #ffffff}:export{grey-rpi-grey-15:#d5d7dc;grey-rpi-grey-40:#9497a4;grey-rpi-grey-5:#f1f2f3;grey-rpi-grey-70:#4a4d59;grey-rpf-white:#fff}.draggable-tab{user-select:none}.draggable-tab:focus-visible{outline:none}.--light .draggable-tab:focus-visible .react-tabs__tab,.--dark .draggable-tab:focus-visible .react-tabs__tab{outline:2px auto Highlight;outline:2px auto -webkit-focus-ring-color;outline-offset:-1px}.droppable-tab-list{display:flex;inline-size:100%}
698
+ :root,:host{--font-size-0-5: 0.5rem;--font-size-0-75: 0.75rem;--font-size-1: 1rem;--font-size-1-5: 1.25rem;--font-size-2: 1.5rem;--font-size-3: 2rem;--font-size-4: 2.5rem;--font-size-5: 3rem;--font-size-6: 3.5rem;--font-size-7: 4rem;--font-size-8: 4.5rem;--font-size-9: 5rem}:root,:host{--font-weight-regular: 400;--font-weight-bold: 700}:root,:host{--line-height-0-75: 0.75rem;--line-height-1: 1rem;--line-height-1-5: 1.5rem;--line-height-2: 2rem;--line-height-2-5: 2.5rem;--line-height-3: 3rem;--line-height-3-5: 3.5rem;--line-height-4: 4rem;--line-height-4-5: 4.5rem;--line-height-5: 5rem;--line-height-5-5: 5.5rem;--line-height-6: 6rem;--line-height-6-5: 6.5rem}.editor-wrapper{overflow:auto;scrollbar-width:thin;height:100%}.editor{display:flex;flex-flow:column;flex:1;overflow:hidden;height:100%}.editor .cm-editor{flex:1;overflow:hidden}.editor .cm-editor:focus{outline:none}.editor .cm-editor .cm-scroller{overflow:auto;scrollbar-width:thin;overscroll-behavior-x:none;font-family:var(--wc-font-family-monospace);z-index:100}.editor .cm-editor .cm-scroller .cm-content{flex:1;padding-block-start:calc(.5rem*var(--scale-factor, 1));margin-inline-end:calc(.5rem*var(--scale-factor, 1))}.editor--small{font-size:calc(.875rem*var(--scale-factor, 1));line-height:calc(1.25rem*var(--scale-factor, 1))}.editor--medium{font-size:calc(1.5rem*var(--scale-factor, 1));line-height:calc(2rem*var(--scale-factor, 1))}.editor--large{font-size:calc(2rem*var(--scale-factor, 1));line-height:calc(2.5rem*var(--scale-factor, 1))}.rpf-alert{margin:0}
697
699
  :root{--rpf-white: #ffffff}.styles-module__editorInput--Vba81{display:flex;flex-direction:column;block-size:100%;inline-size:100%}.styles-module__editorInput--Vba81 .styles-module__viewOnlyBanner--vSOaw{font-weight:700;padding:var(--space-0-5) var(--space-1);border-block-end:1px solid var(--editor-color-outline)}.styles-module__editorInput--Vba81 .styles-module__scrollWrapper--Q8zaL{position:absolute;inset:0;overflow-x:auto;overflow-y:hidden;white-space:nowrap;scrollbar-color:HSL(0, 0%, 14%, 30%) rgba(0,0,0,0);scrollbar-width:none;-ms-overflow-style:none}.styles-module__editorInput--Vba81 .styles-module__scrollWrapper--Q8zaL::-webkit-scrollbar{block-size:0;transition:height .2s ease}.styles-module__editorInput--Vba81 .styles-module__scrollWrapper--Q8zaL:hover{scrollbar-width:thin}.styles-module__editorInput--Vba81 .styles-module__scrollWrapper--Q8zaL:hover::-webkit-scrollbar{block-size:calc(.25rem*var(--scale-factor, 1))}.styles-module__editorInput--Vba81 .styles-module__closeBtn--g8-AM{block-size:100%;padding:0;padding-inline-start:calc(1rem*var(--scale-factor, 1));background-color:rgba(0,0,0,0)}.styles-module__editorInput--Vba81 .styles-module__closeBtn--g8-AM:focus-visible{border:0}.styles-module__editorInput--Vba81 .styles-module__readOnlyContainer--QCiv0{justify-items:flex-end;margin:8px 4px 4px 4px}.styles-module__editorInput--Vba81 .styles-module__readOnlyBanner--Mla6L{background-color:#e5e5e5;padding:4px 8px;border-radius:12px;font-weight:400;font-size:calc(.5rem*var(--scale-factor, 1));line-height:calc(1rem*var(--scale-factor, 1));display:flex;gap:4px;align-items:center;color:#69746d}.tabContainer{border-block-end:1px solid #e5e5e5;background-color:#e5f6f1;position:relative;block-size:calc(2.625rem*var(--scale-factor, 1));overflow:hidden}.tabText{display:flex;align-items:center;block-size:fit-content;inline-size:fit-content;margin:0;gap:calc(.5rem*var(--scale-factor, 1));line-height:calc(1rem*var(--scale-factor, 1));white-space:nowrap}.react-tabs{flex:1;display:flex;flex-flow:column;overflow:hidden;position:relative;border-radius:calc(.5rem*var(--scale-factor, 1)) calc(.5rem*var(--scale-factor, 1)) calc(.25rem*var(--scale-factor, 1)) calc(.25rem*var(--scale-factor, 1))}.react-tabs__tab{border:none;background-color:rgba(0,0,0,0);padding:0 calc(1rem*var(--scale-factor, 1));margin:0;inset-block-start:0;inset-block-end:0;min-block-size:calc(2.625rem*var(--scale-factor, 1));display:flex;align-items:center;justify-content:center;font-weight:700;color:#33625e;border-inline-end:1px solid #e5e5e5;flex:0 0 auto}.react-tabs__tab--selected{border-radius:0;background-color:#fff}.react-tabs__tab:focus{box-shadow:none;border-color:#e5e5e5}.react-tabs__tab:focus-visible{outline-offset:-3px}.react-tabs__tab:focus:after{display:none}.react-tabs__tab-list{border-block-end:none;box-sizing:border-box;display:inline-flex;align-items:center;flex-wrap:nowrap;margin:0;min-inline-size:100%}.react-tabs__tab-panel--selected{flex:1;display:flex;flex-direction:column;overflow-y:auto}
698
700
  :root{--rpf-white: #ffffff}.styles-module__proj--ZFm0o{display:flex;flex-flow:column;overflow:hidden;block-size:100%}.styles-module__projContainer--foKo4{display:flex;flex-direction:row;overflow-y:hidden;margin:0 8px 6px 0px;block-size:100%}.styles-module__projContainer--foKo4 .styles-module__projectWrapper--Yq8Yr{container-type:inline-size;display:flex;flex-direction:column;flex:1 1 auto;overflow:hidden}.styles-module__projContainer--foKo4 .styles-module__projEditorWrapper--SISJR{display:flex;flex:0 1 auto;flex-flow:column;grid-gap:calc(1rem*var(--scale-factor, 1));overflow:hidden;block-size:100%;inline-size:100%}@container (min-width: 720px){.styles-module__projContainer--foKo4 .styles-module__projEditorWrapper--SISJR{flex-flow:row}.styles-module__projContainer--foKo4 .styles-module__projEditorContainer--jWAlR{max-block-size:100% !important}}.styles-module__projContainer--foKo4 .styles-module__projEditorContainer--jWAlR{display:flex;box-sizing:border-box;background-color:#fff;min-block-size:30%;max-block-size:70%;border-radius:8px}.styles-module__projContainer--foKo4 .styles-module__projEditorContainer--jWAlR .styles-module__react-tabs__tab-panel--selected--RwR-m{overflow-y:hidden}.styles-module__projContainer--foKo4 .styles-module__projEditorContainer--jWAlR .styles-module__react-tabs__tab-list--gM7uT{flex:1}.styles-module__projContainer--foKo4 .styles-module__projEditorContainer--jWAlR .styles-module__react-tabs__tab-container--ycENl .styles-module__btn--run--u9TgZ,.styles-module__projContainer--foKo4 .styles-module__projEditorContainer--jWAlR .styles-module__react-tabs__tab-container--ycENl .styles-module__btn--stop--gJCsY{margin-block-start:0;margin-block-end:0}
699
701
  :root{--rpf-white: #ffffff}.styles-module__outputPreview--dHe0z{display:flex;flex:1 1 auto;block-size:auto;overflow:hidden;background-color:#fff}
package/package.json CHANGED
@@ -1,297 +1,297 @@
1
- {
2
- "name": "gwchq-textjam",
3
- "description": "Embeddable React editor used in Raspberry Pi text-based projects.",
4
- "version": "0.2.35",
5
- "license": "Apache-2.0",
6
- "homepage": "https://github.com/GirlsFirst/gwchq-textjam",
7
- "author": "Girls Who Code HQ",
8
- "repository": {
9
- "type": "git",
10
- "url": "https://github.com/GirlsFirst/gwchq-textjam.git"
11
- },
12
- "engines": {
13
- "node": ">=18.17.0"
14
- },
15
- "scripts": {
16
- "start": "NODE_ENV=development BABEL_ENV=development webpack serve -c ./webpack.config.js",
17
- "build:lib": "npm run clean && NODE_ENV=production BABEL_ENV=production webpack --config webpack.lib.config.js",
18
- "prepublishOnly": "yarn build:lib",
19
- "clean": "rimraf dist",
20
- "lint": "eslint \"src/**/*.{js,jsx,json}\"",
21
- "lint:fix": "eslint --fix \"src/**/*.{js,jsx,json}\"",
22
- "stylelint": "stylelint src/**/*.scss",
23
- "test": "jest",
24
- "prepare": "husky"
25
- },
26
- "module": "./dist/index.js",
27
- "exports": {
28
- ".": {
29
- "import": "./dist/index.js",
30
- "default": "./dist/index.js"
31
- },
32
- "./style.css": "./dist/style.css",
33
- "./assets/*": "./dist/assets/*"
34
- },
35
- "files": [
36
- "dist",
37
- "README.md",
38
- "LICENSE"
39
- ],
40
- "peerDependencies": {
41
- "react": ">=17",
42
- "react-dom": ">=17"
43
- },
44
- "sideEffects": [
45
- "*.css",
46
- "*.scss"
47
- ],
48
- "dependencies": {
49
- "@babel/core": "^7.17.10",
50
- "@codemirror/commands": "^6.1.1",
51
- "@codemirror/lang-css": "^6.0.0",
52
- "@codemirror/lang-html": "^6.1.2",
53
- "@codemirror/lang-javascript": "^6.2.1",
54
- "@codemirror/lang-python": "6.1.2",
55
- "@codemirror/language": "^6.2.1",
56
- "@codemirror/view": "^6.3.0",
57
- "@headless-tree/core": "^1.5.1",
58
- "@headless-tree/react": "^1.5.1",
59
- "@hello-pangea/dnd": "^16.2.0",
60
- "@juggle/resize-observer": "^3.3.1",
61
- "@lezer/highlight": "^1.0.0",
62
- "@raspberrypifoundation/design-system-react": "^2.7.0",
63
- "@reduxjs/toolkit": "^1.6.2",
64
- "@replit/codemirror-indentation-markers": "^6.1.0",
65
- "@szhsin/react-menu": "^4.5.1",
66
- "assert": "^2.1.0",
67
- "axios": "^0.24.0",
68
- "classnames": "^2.5.1",
69
- "codemirror": "^6.0.1",
70
- "date-fns": "^4.1.0",
71
- "file-saver": "^2.0.5",
72
- "highcharts": "^9.3.1",
73
- "highcharts-react-official": "^3.1.0",
74
- "i18next": "^22.0.3",
75
- "i18next-resources-to-backend": "^1.2.1",
76
- "jest-axe": "^7.0.0",
77
- "jest-canvas-mock": "^2.5.2",
78
- "js-convert-case": "^4.2.0",
79
- "jszip": "^3.10.1",
80
- "jszip-utils": "^0.1.0",
81
- "marked": "^15.0.6",
82
- "mime-types": "^2.1.35",
83
- "node-html-parser": "^6.1.5",
84
- "plotly.js": "^3.0.2",
85
- "prismjs": "^1.29.0",
86
- "process": "^0.11.10",
87
- "prop-types": "^15.8.1",
88
- "rc-resize-observer": "^1.3.1",
89
- "re-resizable": "6.9.9",
90
- "react-confirm-alert": "^2.8.0",
91
- "react-container-query": "^0.13.0",
92
- "react-cookie": "^4.1.1",
93
- "react-dropzone": "^12.0.4",
94
- "react-i18next": "^12.0.0",
95
- "react-modal": "^3.14.4",
96
- "react-redux": "^7.2.5",
97
- "react-refresh": "^0.8.3",
98
- "react-responsive": "^9.0.2",
99
- "react-router-dom": "^6.7.0",
100
- "react-tabs": "^3.2.3",
101
- "react-timer-hook": "^3.0.5",
102
- "react-toastify": "^8.1.0",
103
- "react-toggle": "^4.1.3",
104
- "stream-browserify": "^3.0.0",
105
- "use-debounce": "^10.1.1",
106
- "util": "^0.12.5",
107
- "web-vitals": "^1.0.1"
108
- },
109
- "browserslist": {
110
- "production": [
111
- ">0.2%",
112
- "not dead",
113
- "not op_mini all"
114
- ],
115
- "development": [
116
- "last 1 chrome version",
117
- "last 1 firefox version",
118
- "last 1 safari version"
119
- ]
120
- },
121
- "devDependencies": {
122
- "@babel/preset-env": "^7.17.10",
123
- "@babel/preset-typescript": "^7.28.5",
124
- "@pmmmwh/react-refresh-webpack-plugin": "0.4.3",
125
- "@react-three/test-renderer": "8.2.1",
126
- "@svgr/webpack": "5.5.0",
127
- "@testing-library/jest-dom": "^5.16.5",
128
- "@testing-library/react": "14.3.1",
129
- "@testing-library/user-event": "^12.1.10",
130
- "@types/jest": "^30.0.0",
131
- "@types/node": "^25.0.0",
132
- "@types/react": "^19.2.7",
133
- "@types/react-dom": "^19.2.3",
134
- "@typescript-eslint/eslint-plugin": "^4.5.0",
135
- "@typescript-eslint/parser": "^4.5.0",
136
- "babel-eslint": "^10.1.0",
137
- "babel-jest": "^29.1.2",
138
- "babel-loader": "^8.2.5",
139
- "babel-plugin-named-asset-import": "^0.3.7",
140
- "babel-plugin-prismjs": "^2.1.0",
141
- "babel-preset-react-app": "^10.0.1",
142
- "bfj": "^7.0.2",
143
- "camelcase": "^6.1.0",
144
- "case-sensitive-paths-webpack-plugin": "2.3.0",
145
- "copy-webpack-plugin": "12.0.2",
146
- "css-loader": "4.3.0",
147
- "css-minimizer-webpack-plugin": "^7.0.2",
148
- "curl": "^0.1.4",
149
- "cypress": "12.12.0",
150
- "dotenv": "8.2.0",
151
- "dotenv-expand": "5.1.0",
152
- "dotenv-webpack": "8.1.0",
153
- "eslint": "^7.11.0",
154
- "eslint-config-prettier": "^8.8.0",
155
- "eslint-config-react-app": "^6.0.0",
156
- "eslint-plugin-flowtype": "^5.2.0",
157
- "eslint-plugin-import": "^2.22.1",
158
- "eslint-plugin-jest": "^24.1.0",
159
- "eslint-plugin-jsx-a11y": "^6.3.1",
160
- "eslint-plugin-prettier": "^4.2.1",
161
- "eslint-plugin-react": "^7.21.5",
162
- "eslint-plugin-react-hooks": "^4.2.0",
163
- "eslint-plugin-testing-library": "^3.9.2",
164
- "eslint-webpack-plugin": "^2.5.2",
165
- "file-loader": "6.1.1",
166
- "html-webpack-plugin": "5.6.0",
167
- "husky": "^9.1.7",
168
- "jest": "^29.1.2",
169
- "jest-circus": "^29.1.2",
170
- "jest-css-modules-transform": "^4.4.2",
171
- "jest-environment-jsdom": "^29.1.2",
172
- "jest-github-actions-reporter": "^1.0.3",
173
- "jest-junit": "^14.0.1",
174
- "jest-resolve": "^29.1.2",
175
- "jest-scss-transform": "^1.0.3",
176
- "jest-transform-stub": "^2.0.0",
177
- "jest-transformer-svg": "^2.0.0",
178
- "jest-watch-typeahead": "^2.2.0",
179
- "lint-staged": "^16.3.2",
180
- "mini-css-extract-plugin": "^2.9.4",
181
- "mock-match-media": "^0.4.3",
182
- "optimize-css-assets-webpack-plugin": "5.0.4",
183
- "path-browserify": "^1.0.1",
184
- "pnp-webpack-plugin": "1.6.4",
185
- "postcss-flexbugs-fixes": "4.2.1",
186
- "postcss-loader": "3.0.0",
187
- "postcss-normalize": "8.0.1",
188
- "postcss-preset-env": "6.7.0",
189
- "postcss-safe-parser": "5.0.2",
190
- "postcss-scss": "^4.0.9",
191
- "prettier": "^2.8.8",
192
- "react": "^18.1.0",
193
- "react-app-polyfill": "^3.0.0",
194
- "react-dev-utils": "^11.0.3",
195
- "react-dom": "^18.1.0",
196
- "react-test-renderer": "^18.1.0",
197
- "redux-mock-store": "^1.5.4",
198
- "resolve": "1.18.1",
199
- "resolve-url-loader": "^3.1.2",
200
- "rimraf": "^6.1.0",
201
- "sass": "^1.51.0",
202
- "sass-loader": "^10.0.0",
203
- "semver": "7.3.2",
204
- "storybook-addon-react-router-v6": "^0.2.1",
205
- "style-it": "^2.1.4",
206
- "style-loader": "1.3.0",
207
- "stylelint": "^15.11.0",
208
- "stylelint-config-recommended-scss": "3.3.0",
209
- "stylelint-order": "2.2.1",
210
- "stylelint-scss": "3.12.0",
211
- "stylelint-use-logical": "^2.1.0",
212
- "terser-webpack-plugin": "4.2.3",
213
- "ts-loader": "^9.5.4",
214
- "typescript": "^5.9.3",
215
- "url-loader": "4.1.1",
216
- "webgl-mock-threejs": "^0.0.1",
217
- "webpack": "5.95.0",
218
- "webpack-cli": "5.1.4",
219
- "webpack-dev-server": "5.1.0",
220
- "webpack-manifest-plugin": "2.2.0",
221
- "workbox-webpack-plugin": "5.1.4",
222
- "worker-plugin": "5.0.1"
223
- },
224
- "lint-staged": {
225
- "*.{js,jsx,ts,tsx}": [
226
- "eslint --fix",
227
- "git add"
228
- ],
229
- "*.scss": [
230
- "stylelint --fix",
231
- "git add"
232
- ]
233
- },
234
- "jest": {
235
- "roots": [
236
- "<rootDir>/src"
237
- ],
238
- "collectCoverageFrom": [
239
- "src/**/*.{js,jsx,ts,tsx}",
240
- "!src/**/*.d.ts"
241
- ],
242
- "setupFiles": [
243
- "react-app-polyfill/jsdom"
244
- ],
245
- "setupFilesAfterEnv": [
246
- "<rootDir>/src/utils/setupTests.js"
247
- ],
248
- "testMatch": [
249
- "<rootDir>/src/**/__tests__/**/*.{js,jsx,ts,tsx}",
250
- "<rootDir>/src/**/*.{spec,test}.{js,jsx,ts,tsx}"
251
- ],
252
- "testEnvironment": "jsdom",
253
- "testEnvironmentOptions": {
254
- "resources": "usable"
255
- },
256
- "testRunner": "jest-circus/runner",
257
- "transform": {
258
- "^.+\\.(js|jsx|mjs|cjs|ts|tsx)$": "<rootDir>/config/jest/babelTransform.js",
259
- ".+\\.css$": "<rootDir>/node_modules/jest-css-modules-transform",
260
- "^.+\\.scss$": "<rootDir>/node_modules/jest-scss-transform",
261
- "^.+\\.svg$": "jest-transformer-svg",
262
- "^(?!.*\\.(js|jsx|mjs|cjs|ts|tsx|css|scss|svg|json)$)": "<rootDir>/node_modules/jest-transform-stub"
263
- },
264
- "transformIgnorePatterns": [
265
- "[/\\\\]node_modules[/\\\\].+\\.(js|jsx|mjs|cjs|ts|tsx)$",
266
- "^.+\\.module\\.(css|sass|scss)$"
267
- ],
268
- "modulePaths": [],
269
- "moduleNameMapper": {
270
- "^react-native$": "react-native-web",
271
- "^.+\\.module\\.(css|sass|scss)$": "identity-obj-proxy",
272
- "^types/(.*)$": "<rootDir>/src/types/$1",
273
- "^utils/(.*)$": "<rootDir>/src/utils/$1",
274
- "^components/(.*)$": "<rootDir>/src/components/$1",
275
- "^assets/(.*)$": "<rootDir>/src/assets/$1",
276
- "^store/(.*)$": "<rootDir>/src/redux/$1"
277
- },
278
- "moduleFileExtensions": [
279
- "web.js",
280
- "js",
281
- "web.ts",
282
- "ts",
283
- "web.tsx",
284
- "tsx",
285
- "json",
286
- "web.jsx",
287
- "jsx",
288
- "node"
289
- ],
290
- "watchPlugins": [
291
- "jest-watch-typeahead/filename",
292
- "jest-watch-typeahead/testname"
293
- ],
294
- "resetMocks": true
295
- },
296
- "packageManager": "yarn@3.4.1"
297
- }
1
+ {
2
+ "name": "gwchq-textjam",
3
+ "description": "Embeddable React editor used in Raspberry Pi text-based projects.",
4
+ "version": "0.2.36",
5
+ "license": "Apache-2.0",
6
+ "homepage": "https://github.com/GirlsFirst/gwchq-textjam",
7
+ "author": "Girls Who Code HQ",
8
+ "repository": {
9
+ "type": "git",
10
+ "url": "https://github.com/GirlsFirst/gwchq-textjam.git"
11
+ },
12
+ "engines": {
13
+ "node": ">=18.17.0"
14
+ },
15
+ "scripts": {
16
+ "start": "NODE_ENV=development BABEL_ENV=development webpack serve -c ./webpack.config.js",
17
+ "build:lib": "npm run clean && NODE_ENV=production BABEL_ENV=production webpack --config webpack.lib.config.js",
18
+ "prepublishOnly": "yarn build:lib",
19
+ "clean": "rimraf dist",
20
+ "lint": "eslint \"src/**/*.{js,jsx,json}\"",
21
+ "lint:fix": "eslint --fix \"src/**/*.{js,jsx,json}\"",
22
+ "stylelint": "stylelint src/**/*.scss",
23
+ "test": "jest",
24
+ "prepare": "husky"
25
+ },
26
+ "module": "./dist/index.js",
27
+ "exports": {
28
+ ".": {
29
+ "import": "./dist/index.js",
30
+ "default": "./dist/index.js"
31
+ },
32
+ "./style.css": "./dist/style.css",
33
+ "./assets/*": "./dist/assets/*"
34
+ },
35
+ "files": [
36
+ "dist",
37
+ "README.md",
38
+ "LICENSE"
39
+ ],
40
+ "peerDependencies": {
41
+ "react": ">=17",
42
+ "react-dom": ">=17"
43
+ },
44
+ "sideEffects": [
45
+ "*.css",
46
+ "*.scss"
47
+ ],
48
+ "dependencies": {
49
+ "@babel/core": "^7.17.10",
50
+ "@codemirror/commands": "^6.1.1",
51
+ "@codemirror/lang-css": "^6.0.0",
52
+ "@codemirror/lang-html": "^6.1.2",
53
+ "@codemirror/lang-javascript": "^6.2.1",
54
+ "@codemirror/lang-python": "6.1.2",
55
+ "@codemirror/language": "^6.2.1",
56
+ "@codemirror/view": "^6.3.0",
57
+ "@headless-tree/core": "^1.5.1",
58
+ "@headless-tree/react": "^1.5.1",
59
+ "@hello-pangea/dnd": "^16.2.0",
60
+ "@juggle/resize-observer": "^3.3.1",
61
+ "@lezer/highlight": "^1.0.0",
62
+ "@raspberrypifoundation/design-system-react": "^2.7.0",
63
+ "@reduxjs/toolkit": "^1.6.2",
64
+ "@replit/codemirror-indentation-markers": "^6.1.0",
65
+ "@szhsin/react-menu": "^4.5.1",
66
+ "assert": "^2.1.0",
67
+ "axios": "^0.24.0",
68
+ "classnames": "^2.5.1",
69
+ "codemirror": "^6.0.1",
70
+ "date-fns": "^4.1.0",
71
+ "file-saver": "^2.0.5",
72
+ "highcharts": "^9.3.1",
73
+ "highcharts-react-official": "^3.1.0",
74
+ "i18next": "^22.0.3",
75
+ "i18next-resources-to-backend": "^1.2.1",
76
+ "jest-axe": "^7.0.0",
77
+ "jest-canvas-mock": "^2.5.2",
78
+ "js-convert-case": "^4.2.0",
79
+ "jszip": "^3.10.1",
80
+ "jszip-utils": "^0.1.0",
81
+ "marked": "^15.0.6",
82
+ "mime-types": "^2.1.35",
83
+ "node-html-parser": "^6.1.5",
84
+ "plotly.js": "^3.0.2",
85
+ "prismjs": "^1.29.0",
86
+ "process": "^0.11.10",
87
+ "prop-types": "^15.8.1",
88
+ "rc-resize-observer": "^1.3.1",
89
+ "re-resizable": "6.9.9",
90
+ "react-confirm-alert": "^2.8.0",
91
+ "react-container-query": "^0.13.0",
92
+ "react-cookie": "^4.1.1",
93
+ "react-dropzone": "^12.0.4",
94
+ "react-i18next": "^12.0.0",
95
+ "react-modal": "^3.14.4",
96
+ "react-redux": "^7.2.5",
97
+ "react-refresh": "^0.8.3",
98
+ "react-responsive": "^9.0.2",
99
+ "react-router-dom": "^6.7.0",
100
+ "react-tabs": "^3.2.3",
101
+ "react-timer-hook": "^3.0.5",
102
+ "react-toastify": "^8.1.0",
103
+ "react-toggle": "^4.1.3",
104
+ "stream-browserify": "^3.0.0",
105
+ "use-debounce": "^10.1.1",
106
+ "util": "^0.12.5",
107
+ "web-vitals": "^1.0.1"
108
+ },
109
+ "browserslist": {
110
+ "production": [
111
+ ">0.2%",
112
+ "not dead",
113
+ "not op_mini all"
114
+ ],
115
+ "development": [
116
+ "last 1 chrome version",
117
+ "last 1 firefox version",
118
+ "last 1 safari version"
119
+ ]
120
+ },
121
+ "devDependencies": {
122
+ "@babel/preset-env": "^7.17.10",
123
+ "@babel/preset-typescript": "^7.28.5",
124
+ "@pmmmwh/react-refresh-webpack-plugin": "0.4.3",
125
+ "@react-three/test-renderer": "8.2.1",
126
+ "@svgr/webpack": "5.5.0",
127
+ "@testing-library/jest-dom": "^5.16.5",
128
+ "@testing-library/react": "14.3.1",
129
+ "@testing-library/user-event": "^12.1.10",
130
+ "@types/jest": "^30.0.0",
131
+ "@types/node": "^25.0.0",
132
+ "@types/react": "^19.2.7",
133
+ "@types/react-dom": "^19.2.3",
134
+ "@typescript-eslint/eslint-plugin": "^4.5.0",
135
+ "@typescript-eslint/parser": "^4.5.0",
136
+ "babel-eslint": "^10.1.0",
137
+ "babel-jest": "^29.1.2",
138
+ "babel-loader": "^8.2.5",
139
+ "babel-plugin-named-asset-import": "^0.3.7",
140
+ "babel-plugin-prismjs": "^2.1.0",
141
+ "babel-preset-react-app": "^10.0.1",
142
+ "bfj": "^7.0.2",
143
+ "camelcase": "^6.1.0",
144
+ "case-sensitive-paths-webpack-plugin": "2.3.0",
145
+ "copy-webpack-plugin": "12.0.2",
146
+ "css-loader": "4.3.0",
147
+ "css-minimizer-webpack-plugin": "^7.0.2",
148
+ "curl": "^0.1.4",
149
+ "cypress": "12.12.0",
150
+ "dotenv": "8.2.0",
151
+ "dotenv-expand": "5.1.0",
152
+ "dotenv-webpack": "8.1.0",
153
+ "eslint": "^7.11.0",
154
+ "eslint-config-prettier": "^8.8.0",
155
+ "eslint-config-react-app": "^6.0.0",
156
+ "eslint-plugin-flowtype": "^5.2.0",
157
+ "eslint-plugin-import": "^2.22.1",
158
+ "eslint-plugin-jest": "^24.1.0",
159
+ "eslint-plugin-jsx-a11y": "^6.3.1",
160
+ "eslint-plugin-prettier": "^4.2.1",
161
+ "eslint-plugin-react": "^7.21.5",
162
+ "eslint-plugin-react-hooks": "^4.2.0",
163
+ "eslint-plugin-testing-library": "^3.9.2",
164
+ "eslint-webpack-plugin": "^2.5.2",
165
+ "file-loader": "6.1.1",
166
+ "html-webpack-plugin": "5.6.0",
167
+ "husky": "^9.1.7",
168
+ "jest": "^29.1.2",
169
+ "jest-circus": "^29.1.2",
170
+ "jest-css-modules-transform": "^4.4.2",
171
+ "jest-environment-jsdom": "^29.1.2",
172
+ "jest-github-actions-reporter": "^1.0.3",
173
+ "jest-junit": "^14.0.1",
174
+ "jest-resolve": "^29.1.2",
175
+ "jest-scss-transform": "^1.0.3",
176
+ "jest-transform-stub": "^2.0.0",
177
+ "jest-transformer-svg": "^2.0.0",
178
+ "jest-watch-typeahead": "^2.2.0",
179
+ "lint-staged": "^16.3.2",
180
+ "mini-css-extract-plugin": "^2.9.4",
181
+ "mock-match-media": "^0.4.3",
182
+ "optimize-css-assets-webpack-plugin": "5.0.4",
183
+ "path-browserify": "^1.0.1",
184
+ "pnp-webpack-plugin": "1.6.4",
185
+ "postcss-flexbugs-fixes": "4.2.1",
186
+ "postcss-loader": "3.0.0",
187
+ "postcss-normalize": "8.0.1",
188
+ "postcss-preset-env": "6.7.0",
189
+ "postcss-safe-parser": "5.0.2",
190
+ "postcss-scss": "^4.0.9",
191
+ "prettier": "^2.8.8",
192
+ "react": "^18.1.0",
193
+ "react-app-polyfill": "^3.0.0",
194
+ "react-dev-utils": "^11.0.3",
195
+ "react-dom": "^18.1.0",
196
+ "react-test-renderer": "^18.1.0",
197
+ "redux-mock-store": "^1.5.4",
198
+ "resolve": "1.18.1",
199
+ "resolve-url-loader": "^3.1.2",
200
+ "rimraf": "^6.1.0",
201
+ "sass": "^1.51.0",
202
+ "sass-loader": "^10.0.0",
203
+ "semver": "7.3.2",
204
+ "storybook-addon-react-router-v6": "^0.2.1",
205
+ "style-it": "^2.1.4",
206
+ "style-loader": "1.3.0",
207
+ "stylelint": "^15.11.0",
208
+ "stylelint-config-recommended-scss": "3.3.0",
209
+ "stylelint-order": "2.2.1",
210
+ "stylelint-scss": "3.12.0",
211
+ "stylelint-use-logical": "^2.1.0",
212
+ "terser-webpack-plugin": "4.2.3",
213
+ "ts-loader": "^9.5.4",
214
+ "typescript": "^5.9.3",
215
+ "url-loader": "4.1.1",
216
+ "webgl-mock-threejs": "^0.0.1",
217
+ "webpack": "5.95.0",
218
+ "webpack-cli": "5.1.4",
219
+ "webpack-dev-server": "5.1.0",
220
+ "webpack-manifest-plugin": "2.2.0",
221
+ "workbox-webpack-plugin": "5.1.4",
222
+ "worker-plugin": "5.0.1"
223
+ },
224
+ "lint-staged": {
225
+ "*.{js,jsx,ts,tsx}": [
226
+ "eslint --fix",
227
+ "git add"
228
+ ],
229
+ "*.scss": [
230
+ "stylelint --fix",
231
+ "git add"
232
+ ]
233
+ },
234
+ "jest": {
235
+ "roots": [
236
+ "<rootDir>/src"
237
+ ],
238
+ "collectCoverageFrom": [
239
+ "src/**/*.{js,jsx,ts,tsx}",
240
+ "!src/**/*.d.ts"
241
+ ],
242
+ "setupFiles": [
243
+ "react-app-polyfill/jsdom"
244
+ ],
245
+ "setupFilesAfterEnv": [
246
+ "<rootDir>/src/utils/setupTests.js"
247
+ ],
248
+ "testMatch": [
249
+ "<rootDir>/src/**/__tests__/**/*.{js,jsx,ts,tsx}",
250
+ "<rootDir>/src/**/*.{spec,test}.{js,jsx,ts,tsx}"
251
+ ],
252
+ "testEnvironment": "jsdom",
253
+ "testEnvironmentOptions": {
254
+ "resources": "usable"
255
+ },
256
+ "testRunner": "jest-circus/runner",
257
+ "transform": {
258
+ "^.+\\.(js|jsx|mjs|cjs|ts|tsx)$": "<rootDir>/config/jest/babelTransform.js",
259
+ ".+\\.css$": "<rootDir>/node_modules/jest-css-modules-transform",
260
+ "^.+\\.scss$": "<rootDir>/node_modules/jest-scss-transform",
261
+ "^.+\\.svg$": "jest-transformer-svg",
262
+ "^(?!.*\\.(js|jsx|mjs|cjs|ts|tsx|css|scss|svg|json)$)": "<rootDir>/node_modules/jest-transform-stub"
263
+ },
264
+ "transformIgnorePatterns": [
265
+ "[/\\\\]node_modules[/\\\\].+\\.(js|jsx|mjs|cjs|ts|tsx)$",
266
+ "^.+\\.module\\.(css|sass|scss)$"
267
+ ],
268
+ "modulePaths": [],
269
+ "moduleNameMapper": {
270
+ "^react-native$": "react-native-web",
271
+ "^.+\\.module\\.(css|sass|scss)$": "identity-obj-proxy",
272
+ "^types/(.*)$": "<rootDir>/src/types/$1",
273
+ "^utils/(.*)$": "<rootDir>/src/utils/$1",
274
+ "^components/(.*)$": "<rootDir>/src/components/$1",
275
+ "^assets/(.*)$": "<rootDir>/src/assets/$1",
276
+ "^store/(.*)$": "<rootDir>/src/redux/$1"
277
+ },
278
+ "moduleFileExtensions": [
279
+ "web.js",
280
+ "js",
281
+ "web.ts",
282
+ "ts",
283
+ "web.tsx",
284
+ "tsx",
285
+ "json",
286
+ "web.jsx",
287
+ "jsx",
288
+ "node"
289
+ ],
290
+ "watchPlugins": [
291
+ "jest-watch-typeahead/filename",
292
+ "jest-watch-typeahead/testname"
293
+ ],
294
+ "resetMocks": true
295
+ },
296
+ "packageManager": "yarn@3.4.1"
297
+ }