matt HOFFNER commited on
Commit
d9bc819
·
1 Parent(s): 9c5a47e
.vscode/settings.json ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ {
2
+ "typescript.tsdk": "node_modules/typescript/lib",
3
+ "typescript.enablePromptUseWorkspaceTsdk": true
4
+ }
Dockerfile CHANGED
@@ -34,7 +34,7 @@ COPY . .
34
  # RUN yarn build
35
 
36
  # If you use yarn, comment out this line and use the line above
37
- RUN npm run build
38
 
39
  # Production image, copy all the files and run next
40
  FROM base AS runner
@@ -60,4 +60,4 @@ EXPOSE 3000
60
 
61
  ENV PORT 3000
62
 
63
- CMD ["node", "server.js"]
 
34
  # RUN yarn build
35
 
36
  # If you use yarn, comment out this line and use the line above
37
+ RUN pnpm run build
38
 
39
  # Production image, copy all the files and run next
40
  FROM base AS runner
 
60
 
61
  ENV PORT 3000
62
 
63
+ CMD ["pnpm", "dev"]
README.md CHANGED
@@ -1,176 +1,10 @@
1
- ---
2
- title: Next.js on 🤗 Spaces
3
- emoji: 🐳🤗
4
- colorFrom: blue
5
- colorTo: yellow
6
- sdk: docker
7
- pinned: false
8
- license: agpl-3.0
9
- app_port: 3000
10
- duplicated_from: failfast/nextjs-hf-spaces
11
- ---
12
- <h1 align="center">Next.js on 🤗 Spaces</h1>
13
 
14
- <p align="center">
15
- Run your ML demo with ease in a <a href="https://nextjs.org">Next.js</a> environment
16
- </p>
17
 
18
- At failfast, we're passionate about crafting demos with TypeScript, Next.js, and MUI. Inspired by the ease-of-use of Gradio and Streamlit within Hugging Face Spaces, we aim to deliver a similar developer experience to JavaScript enthusiasts. Our toolkit includes predefined MUI components, empowering you to build intuitive UIs for your ML demos.
19
 
20
- ---
21
-
22
- <!-- toc -->
23
-
24
- - [Local development](#local-development)
25
- * [Use the Docker container locally](#use-the-docker-container-locally)
26
- - [Secret Management](#secret-management)
27
- * [Build-time](#build-time)
28
- * [Runtime](#runtime)
29
- - [Dockerize an existing project](#dockerize-an-existing-project)
30
- - [Sync your GitHub repository with your 🤗 Space](#sync-your-github-repository-with-your-%F0%9F%A4%97-space)
31
- - [Cleanup your 🤗 Space](#cleanup-your-%F0%9F%A4%97-space)
32
- - [Development Roadmap](#development-roadmap)
33
-
34
- <!-- tocstop -->
35
-
36
- ---
37
-
38
- ## Local development
39
-
40
- 1. Install the dependencies: `npm i`
41
- 2. Start the local dev-server: `npm run dev`
42
- 3. Open the app via [localhost:3000](http://localhost:3000)
43
-
44
- ### Use the Docker container locally
45
-
46
- > ℹ️ In order for the commands to work, you need at least Docker >= 20.10, as we use env-variables as secrets
47
-
48
- To make sure that everything is working out, you can run your container locally:
49
-
50
- 1. [Install Docker](https://docs.docker.com/get-docker/) on your machine
51
- 2. Go into the `nextjs-hf-spaces` folder
52
- 3. Build your Docker image: `docker build -t nextjs-hf-spaces .`
53
- 4. Run your Docker container: `docker run -p 3000:3000 nextjs-hf-spaces`.
54
- 5. Open the app via [localhost:3000](http://localhost:3000)
55
-
56
- If you also have a secret that needs to be passed into the container, you can do this:
57
-
58
- 1. Create a copy of `.env.local.example` and rename it to `.env.local` (it contains the secret `HF_EXAMPLE_SECRET`)
59
- 2. Run your Docker container and specify the env-file: `docker run -p 3000:3000 --env-file .env.local nextjs-hf-spaces`
60
- 3. Open the example API via [localhost:3000/api/env](http://localhost:3000/api/env) and see that the value of our secret `HF_EXAMPLE_SECRET` is shown
61
-
62
- ## Secret Management
63
-
64
- To not expose your secrets to end users, you can add them directly in **Settings** of your 🤗 Space.
65
-
66
- 1. Open your space and navigate to the **Settings**
67
- 2. Find **Repository secrets** & click on **New secret**
68
-
69
- That's it, you can now access your secret.
70
-
71
- ### Build-time
72
-
73
- If you need to have a secret during build-time (e.g. you want to install private npm packages), then you can add this directly into the `Dockerfile`:
74
-
75
- ```dockerfile
76
- # Uncomment the following lines if you want to use a secret at buildtime,
77
- # for example to access your private npm packages
78
- RUN --mount=type=secret,id=HF_EXAMPLE_SECRET,mode=0444,required=true \
79
- $(cat /run/secrets/HF_EXAMPLE_SECRET)
80
- ```
81
-
82
- In this case, we mount the secret `HF_EXAMPLE_SECRET` (using [Docker secrets](https://docs.docker.com/engine/swarm/secrets/)) inside and can use it.
83
-
84
- ### Runtime
85
-
86
- When your 🤗 Space is running and you want to use a secret (e.g. access an API that requires authentication) without exposing it to the user, you can use it as an environment variable via `process.env`.
87
-
88
- ```typescript
89
- import process from "node:process";
90
- import { NextApiRequest, NextApiResponse } from "next";
91
-
92
- export default async function handler(
93
- request: NextApiRequest,
94
- response: NextApiResponse
95
- ) {
96
- const exampleSecret = process.env.HF_EXAMPLE_SECRET;
97
-
98
- // Your logic to access an API that requires authentication
99
-
100
- return response.status(200).json("We have access to an external API");
101
- }
102
  ```
103
-
104
- A simple example can be found at [nextjs-hf-spaces/api/env](https://huggingface.co/spaces/failfast/nextjs-hf-spaces/api/env). This will return the secret to see that it's working, but you wouldn't do this in your space, as you don't want to expose the secret to an end user.
105
-
106
- ## Dockerize an existing project
107
-
108
- To add support for Docker to an existing project, just copy the `Dockerfile` into the root of the project and add the following to the `next.config.js` file:
109
-
110
- ```js
111
- // next.config.js
112
- module.exports = {
113
- // ... rest of the configuration.
114
- output: "standalone",
115
- };
116
- ```
117
-
118
- This will build the project as a standalone app inside the Docker image.
119
-
120
- ## Sync your GitHub repository with your 🤗 Space
121
-
122
- If you want to use all the features for collaborative development on GitHub, but keep your demo on 🤗 Spaces, then you can set up a GitHub action that will automatically push changes from GitHub into Spaces.
123
-
124
- > ℹ️ Git-LFS is required for files bigger than 10MB
125
-
126
- 1. Create your repo on GitHub
127
- 2. Create a [Github secret](https://docs.github.com/en/actions/security-guides/encrypted-secrets#creating-encrypted-secrets-for-a-repository) named `HF_TOKEN` and use an [access token from Hugging Face](https://huggingface.co/settings/tokens) as its value (you must be logged in to do this)
128
- 3. Update the workflow [sync_to_hf_spaces.yml](.github/workflows/sync_to_hf_spaces.yml)
129
- - Configure `HF_USERNAME`: Replace `failfast` with the name of your 🤗 user account or your 🤗 organization
130
- - Configure `HF_SPACE_NAME`: Replace `nextjs-hf-spaces` with the name of your 🤗 space
131
- 4. Push the code into your repo on GitHub
132
-
133
- This should force push changes in the **main** branch from GitHub into your 🤗 space.
134
-
135
- For further information, you can check out the [guide on Hugging Face](https://huggingface.co/docs/hub/spaces-github-actions).
136
-
137
-
138
- ## Cleanup your 🤗 Space
139
-
140
- You don't need all the demo content and examples? Then you can delete these resources to get a clean 🤗 Space:
141
-
142
- * `src/pages/api/env.ts`
143
- * `src/components/example-components.tsx`
144
- * `src/components/getting-started.tsx`
145
- * `src/components/under-construction.tsx`
146
- * `src/components/title.tsx`
147
- * `src/components/huggingface/huggingface.tsx`
148
-
149
- Update the `src/components/index.tsx` and remove:
150
-
151
- ```jsx
152
- <Title />
153
-
154
- <GettingStarted />
155
-
156
- <DividerBox />
157
-
158
- <ExampleComponents />
159
- ```
160
-
161
- > i Got an idea how this could be better? Please let us know!
162
-
163
- ## Development Roadmap
164
-
165
- The next milestones in no particular order are:
166
-
167
- * Components for all [`@huggingface/inference`](https://huggingface.co/docs/huggingface.js/inference/README) methods (WIP)
168
- * Components to use [langchain.js](https://js.langchain.com/docs)
169
- * Components to use [hyv](https://github.com/failfa-st/hyv)
170
- * Publish components on npm to make them usable outside of [nextjs-hf-spaces](https://github.com/failfa-st/nextjs-hf-spaces)
171
- * Provide templates for different use-cases, that are too complex for single components
172
- * Docs on how to use the components with all available options
173
-
174
- > i Anything missing? Please let us know!
175
-
176
-
 
1
+ # next-monaco-vscode-api
 
 
 
 
 
 
 
 
 
 
 
2
 
3
+ This is an example setting up [monaco-vscode-api](https://github.com/CodinGame/monaco-vscode-api) in a [Next.js](https://nextjs.org/) application.
 
 
4
 
5
+ ## Development
6
 
7
+ ```bash
8
+ pnpm i
9
+ pnpm dev
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10
  ```
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/app.css ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ body {
2
+ margin: 0;
3
+ background-color: #101218;
4
+ }
app/editor/TypeScript.tmLanguage.json ADDED
The diff for this file is too large to render. See raw diff
 
app/editor/index.tsx ADDED
@@ -0,0 +1,33 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 'use client'
2
+ import * as React from 'react'
3
+ import * as monaco from 'monaco-editor/esm/vs/editor/editor.api'
4
+ import { createConfiguredEditor } from 'vscode/monaco'
5
+ import './setup'
6
+ import 'monaco-editor/esm/vs/language/typescript/monaco.contribution'
7
+
8
+ monaco.languages.typescript.typescriptDefaults.setCompilerOptions({
9
+ jsx: monaco.languages.typescript.JsxEmit.Preserve,
10
+ })
11
+
12
+ export default function Editor({ defaultValue }: { defaultValue: string }) {
13
+ const ref = React.useRef<HTMLDivElement>(null)
14
+
15
+ React.useLayoutEffect(() => {
16
+ const model = monaco.editor.createModel(
17
+ defaultValue,
18
+ 'typescript',
19
+ monaco.Uri.file('index.ts')
20
+ )
21
+ const editor = createConfiguredEditor(ref.current!, {
22
+ model,
23
+ automaticLayout: true,
24
+ })
25
+
26
+ return () => {
27
+ model.dispose()
28
+ editor.dispose()
29
+ }
30
+ }, [])
31
+
32
+ return <div ref={ref} style={{ height: 200 }} />
33
+ }
app/editor/setup.ts ADDED
@@ -0,0 +1,131 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import 'monaco-editor/esm/vs/editor/editor.all'
2
+ import * as monaco from 'monaco-editor/esm/vs/editor/editor.api'
3
+ import { initialize as initializeMonacoService } from 'vscode/services'
4
+ import {
5
+ registerExtension,
6
+ initialize as initializeVscodeExtensions,
7
+ } from 'vscode/extensions'
8
+ import getDialogsServiceOverride from 'vscode/service-override/dialogs'
9
+ import getConfigurationServiceOverride from 'vscode/service-override/configuration'
10
+ import getTextmateServiceOverride from 'vscode/service-override/textmate'
11
+ import getThemeServiceOverride from 'vscode/service-override/theme'
12
+ import getLanguagesServiceOverride from 'vscode/service-override/languages'
13
+
14
+ window.MonacoEnvironment = {
15
+ getWorker: async function (moduleId, label) {
16
+ switch (label) {
17
+ case 'editorWorkerService':
18
+ return new Worker(
19
+ new URL('monaco-editor/esm/vs/editor/editor.worker', import.meta.url)
20
+ )
21
+ case 'css':
22
+ case 'less':
23
+ case 'scss':
24
+ return new Worker(
25
+ new URL(
26
+ 'monaco-editor/esm/vs/language/css/css.worker',
27
+ import.meta.url
28
+ )
29
+ )
30
+ case 'handlebars':
31
+ case 'html':
32
+ case 'razor':
33
+ return new Worker(
34
+ new URL(
35
+ 'monaco-editor/esm/vs/language/html/html.worker',
36
+ import.meta.url
37
+ )
38
+ )
39
+ case 'json':
40
+ return new Worker(
41
+ new URL(
42
+ 'monaco-editor/esm/vs/language/json/json.worker',
43
+ import.meta.url
44
+ )
45
+ )
46
+ case 'javascript':
47
+ case 'typescript':
48
+ return new Worker(
49
+ new URL(
50
+ 'monaco-editor/esm/vs/language/typescript/ts.worker',
51
+ import.meta.url
52
+ )
53
+ )
54
+ default:
55
+ throw new Error(`Unimplemented worker ${label} (${moduleId})`)
56
+ }
57
+ },
58
+ }
59
+
60
+ initializeMonacoService({
61
+ ...getDialogsServiceOverride(),
62
+ ...getConfigurationServiceOverride(monaco.Uri.file('/')),
63
+ ...getTextmateServiceOverride(),
64
+ ...getThemeServiceOverride(),
65
+ ...getLanguagesServiceOverride(),
66
+ }).then(async () => {
67
+ await initializeVscodeExtensions()
68
+
69
+ const defaultThemesExtensions = {
70
+ name: 'themes',
71
+ publisher: 'next-monaco',
72
+ version: '0.0.0',
73
+ engines: {
74
+ vscode: '*',
75
+ },
76
+ contributes: {
77
+ themes: [
78
+ {
79
+ id: 'Next Monaco',
80
+ label: 'Next Monaco',
81
+ uiTheme: 'vs-dark',
82
+ path: './next-monaco.json',
83
+ },
84
+ ],
85
+ },
86
+ }
87
+
88
+ const { registerFile: registerDefaultThemeExtensionFile } = registerExtension(
89
+ defaultThemesExtensions
90
+ )
91
+
92
+ registerDefaultThemeExtensionFile(
93
+ './next-monaco.json',
94
+ async () => process.env.MONACO_THEME
95
+ )
96
+
97
+ monaco.editor.setTheme('Next Monaco')
98
+
99
+ const extension = {
100
+ name: 'grammars',
101
+ publisher: 'next-monaco',
102
+ version: '0.0.0',
103
+ engines: {
104
+ vscode: '*',
105
+ },
106
+ contributes: {
107
+ languages: [
108
+ {
109
+ id: 'typescript',
110
+ extensions: ['.ts', '.tsx'],
111
+ aliases: ['TypeScript', 'ts', 'typescript'],
112
+ },
113
+ ],
114
+ grammars: [
115
+ {
116
+ language: 'typescript',
117
+ scopeName: 'source.ts',
118
+ path: './TypeScript.tmLanguage.json',
119
+ },
120
+ ],
121
+ },
122
+ }
123
+
124
+ const { registerFile: registerExtensionFile } = registerExtension(extension)
125
+
126
+ registerExtensionFile('./TypeScript.tmLanguage.json', async () =>
127
+ JSON.stringify(
128
+ (await import('./TypeScript.tmLanguage.json')).default as any
129
+ )
130
+ )
131
+ })
app/layout.tsx ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ export const metadata = {
2
+ title: 'Next.js',
3
+ description: 'Generated by Next.js',
4
+ }
5
+
6
+ export default function RootLayout({
7
+ children,
8
+ }: {
9
+ children: React.ReactNode
10
+ }) {
11
+ return (
12
+ <html lang="en">
13
+ <body>{children}</body>
14
+ </html>
15
+ )
16
+ }
app/page.tsx ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 'use client'
2
+ import dynamic from 'next/dynamic'
3
+ import './app.css'
4
+
5
+ const Editor = dynamic(() => import('./editor'), { ssr: false })
6
+
7
+ const defaultValue = `
8
+ /**
9
+ * Say hello.
10
+ *
11
+ * @example
12
+ * <Hello name="Penny" />
13
+ */
14
+ function sayHello({ name }: { name: string }) {
15
+ return \`Hello, \${name}!\`
16
+ }
17
+ `.trim()
18
+
19
+ export default function Page() {
20
+ return <Editor defaultValue={defaultValue} />
21
+ }
next.config.js DELETED
@@ -1,7 +0,0 @@
1
- /** @type {import('next').NextConfig} */
2
- const nextConfig = {
3
- output: "standalone",
4
- reactStrictMode: true,
5
- };
6
-
7
- module.exports = nextConfig;
 
 
 
 
 
 
 
 
next.config.mjs ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import { readFile } from 'node:fs/promises'
2
+ import { resolve } from 'node:path'
3
+
4
+ const themePath = resolve(process.cwd(), 'theme.json')
5
+
6
+ /** @type {import('next').NextConfig} */
7
+ export default {
8
+ experimental: {
9
+ appDir: true,
10
+ },
11
+ env: {
12
+ MONACO_THEME: await readFile(themePath, 'utf-8'),
13
+ },
14
+ webpack(config) {
15
+ config.module.rules.push({
16
+ test: /\.wasm$/,
17
+ type: 'asset/resource',
18
+ })
19
+
20
+ return config
21
+ },
22
+ }
package-lock.json CHANGED
The diff for this file is too large to render. See raw diff
 
package.json CHANGED
@@ -1,44 +1,24 @@
1
  {
2
- "name": "nextjs-hf-spaces",
3
- "version": "0.0.1",
4
- "description": "Run your ML demo with ease in a Next.js environment",
5
- "keywords": [
6
- "nextjs",
7
- "artificial intelligence",
8
- "javascript",
9
- "typescript",
10
- "hugging face",
11
- "machine learning"
12
- ],
13
- "license": "MIT",
14
- "author": {
15
- "name": "Tim Pietrusky",
16
- "url": "https://github.com/TimPietrusky"
17
- },
18
  "scripts": {
19
- "build": "next build",
20
  "dev": "next dev",
21
- "lint": "next lint",
22
- "spj": "npx sort-package-json",
23
- "start": "next start",
24
- "toc": "npx markdown-toc README.md -i"
25
  },
26
  "dependencies": {
27
- "@emotion/cache": "11.10.7",
28
- "@emotion/react": "11.10.6",
29
- "@emotion/server": "11.10.0",
30
- "@emotion/styled": "11.10.6",
31
- "@huggingface/inference": "2.3.3",
32
- "@mui/icons-material": "5.11.16",
33
- "@mui/material": "5.12.0",
34
- "@types/node": "20.1.4",
35
- "@types/react": "18.2.6",
36
- "@types/react-dom": "18.2.4",
37
- "eslint": "8.40.0",
38
- "eslint-config-next": "13.4.2",
39
- "next": "13.4.2",
40
- "react": "18.2.0",
41
- "react-dom": "18.2.0",
42
  "typescript": "5.0.4"
43
  }
44
  }
 
1
  {
2
+ "name": "site",
3
+ "private": true,
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4
  "scripts": {
 
5
  "dev": "next dev",
6
+ "build": "next build",
7
+ "start": "next start"
 
 
8
  },
9
  "dependencies": {
10
+ "monaco-editor": "^0.37.1",
11
+ "next": "latest",
12
+ "react": "latest",
13
+ "react-dom": "latest",
14
+ "vscode-oniguruma": "^1.7.0",
15
+ "vscode-textmate": "^9.0.0",
16
+ "vscode": "npm:@codingame/monaco-vscode-api@^1.78.0",
17
+ "yauzl": "^2.10.0"
18
+ },
19
+ "devDependencies": {
20
+ "@types/node": "18.15.11",
21
+ "@types/react": "18.0.35",
 
 
 
22
  "typescript": "5.0.4"
23
  }
24
  }
pnpm-lock.yaml ADDED
@@ -0,0 +1,356 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ lockfileVersion: '6.0'
2
+
3
+ dependencies:
4
+ monaco-editor:
5
+ specifier: ^0.37.1
6
+ version: 0.37.1
7
+ next:
8
+ specifier: latest
9
10
+ react:
11
+ specifier: latest
12
+ version: 18.2.0
13
+ react-dom:
14
+ specifier: latest
15
+ version: 18.2.0([email protected])
16
+ vscode:
17
+ specifier: npm:@codingame/monaco-vscode-api@^1.78.0
18
19
+ vscode-oniguruma:
20
+ specifier: ^1.7.0
21
+ version: 1.7.0
22
+ vscode-textmate:
23
+ specifier: ^9.0.0
24
+ version: 9.0.0
25
+ yauzl:
26
+ specifier: ^2.10.0
27
+ version: 2.10.0
28
+
29
+ devDependencies:
30
+ '@types/node':
31
+ specifier: 18.15.11
32
+ version: 18.15.11
33
+ '@types/react':
34
+ specifier: 18.0.35
35
+ version: 18.0.35
36
+ typescript:
37
+ specifier: 5.0.4
38
+ version: 5.0.4
39
+
40
+ packages:
41
+
42
43
+ resolution: {integrity: sha512-mV+ImrH1EdgwkujoYNCnqtZijZA7c1vxXl/Y6OwV1Mo8fZ4fUhMTiiO+0zaQZqLzM5GX/l7qfxNVOLV2pUJtmg==}
44
+ peerDependencies:
45
+ monaco-editor: ~0.37.1
46
+ vscode-oniguruma: ^1.7.0
47
+ vscode-textmate: ^9.0.0
48
+ yauzl: ^2.10.0
49
+ dependencies:
50
+ '@types/node': 18.15.11
51
+ monaco-editor: 0.37.1
52
+ vscode-oniguruma: 1.7.0
53
+ vscode-textmate: 9.0.0
54
+ yauzl: 2.10.0
55
+ dev: false
56
+
57
+ /@next/[email protected]:
58
+ resolution: {integrity: sha512-pa1ErjyFensznttAk3EIv77vFbfSYT6cLzVRK5jx4uiRuCQo+m2wCFAREaHKIy63dlgvOyMlzh6R8Inu8H3KrQ==}
59
+ dev: false
60
+
61
+ /@next/[email protected]:
62
+ resolution: {integrity: sha512-yx18udH/ZmR4Bw4M6lIIPE3JxsAZwo04iaucEfA2GMt1unXr2iodHUX/LAKNyi6xoLP2ghi0E+Xi1f4Qb8f1LQ==}
63
+ engines: {node: '>= 10'}
64
+ cpu: [arm64]
65
+ os: [darwin]
66
+ requiresBuild: true
67
+ dev: false
68
+ optional: true
69
+
70
+ /@next/[email protected]:
71
+ resolution: {integrity: sha512-Mi8xJWh2IOjryAM1mx18vwmal9eokJ2njY4nDh04scy37F0LEGJ/diL6JL6kTXi0UfUCGbMsOItf7vpReNiD2A==}
72
+ engines: {node: '>= 10'}
73
+ cpu: [x64]
74
+ os: [darwin]
75
+ requiresBuild: true
76
+ dev: false
77
+ optional: true
78
+
79
+ /@next/[email protected]:
80
+ resolution: {integrity: sha512-aBvtry4bxJ1xwKZ/LVPeBGBwWVwxa4bTnNkRRw6YffJnn/f4Tv4EGDPaVeYHZGQVA56wsGbtA6nZMuWs/EIk4Q==}
81
+ engines: {node: '>= 10'}
82
+ cpu: [arm64]
83
+ os: [linux]
84
+ requiresBuild: true
85
+ dev: false
86
+ optional: true
87
+
88
+ /@next/[email protected]:
89
+ resolution: {integrity: sha512-krT+2G3kEsEUvZoYte3/2IscscDraYPc2B+fDJFipPktJmrv088Pei/RjrhWm5TMIy5URYjZUoDZdh5k940Dyw==}
90
+ engines: {node: '>= 10'}
91
+ cpu: [arm64]
92
+ os: [linux]
93
+ requiresBuild: true
94
+ dev: false
95
+ optional: true
96
+
97
+ /@next/[email protected]:
98
+ resolution: {integrity: sha512-AMdFX6EKJjC0G/CM6hJvkY8wUjCcbdj3Qg7uAQJ7PVejRWaVt0sDTMavbRfgMchx8h8KsAudUCtdFkG9hlEClw==}
99
+ engines: {node: '>= 10'}
100
+ cpu: [x64]
101
+ os: [linux]
102
+ requiresBuild: true
103
+ dev: false
104
+ optional: true
105
+
106
+ /@next/[email protected]:
107
+ resolution: {integrity: sha512-jySgSXE48shaLtcQbiFO9ajE9mqz7pcAVLnVLvRIlUHyQYR/WyZdK8ehLs65Mz6j9cLrJM+YdmdJPyV4WDaz2g==}
108
+ engines: {node: '>= 10'}
109
+ cpu: [x64]
110
+ os: [linux]
111
+ requiresBuild: true
112
+ dev: false
113
+ optional: true
114
+
115
+ /@next/[email protected]:
116
+ resolution: {integrity: sha512-5DxHo8uYcaADiE9pHrg8o28VMt/1kR8voDehmfs9AqS0qSClxAAl+CchjdboUvbCjdNWL1MISCvEfKY2InJ3JA==}
117
+ engines: {node: '>= 10'}
118
+ cpu: [arm64]
119
+ os: [win32]
120
+ requiresBuild: true
121
+ dev: false
122
+ optional: true
123
+
124
+ /@next/[email protected]:
125
+ resolution: {integrity: sha512-LaqkF3d+GXRA5X6zrUjQUrXm2MN/3E2arXBtn5C7avBCNYfm9G3Xc646AmmmpN3DJZVaMYliMyCIQCMDEzk80w==}
126
+ engines: {node: '>= 10'}
127
+ cpu: [ia32]
128
+ os: [win32]
129
+ requiresBuild: true
130
+ dev: false
131
+ optional: true
132
+
133
+ /@next/[email protected]:
134
+ resolution: {integrity: sha512-jglUk/x7ZWeOJWlVoKyIAkHLTI+qEkOriOOV+3hr1GyiywzcqfI7TpFSiwC7kk1scOiH7NTFKp8mA3XPNO9bDw==}
135
+ engines: {node: '>= 10'}
136
+ cpu: [x64]
137
+ os: [win32]
138
+ requiresBuild: true
139
+ dev: false
140
+ optional: true
141
+
142
143
+ resolution: {integrity: sha512-sJ902EfIzn1Fa+qYmjdQqh8tPsoxyBz+8yBKC2HKUxyezKJFwPGOn7pv4WY6QuQW//ySQi5lJjA/ZT9sNWWNTg==}
144
+ dependencies:
145
+ tslib: 2.5.0
146
+ dev: false
147
+
148
+ /@types/[email protected]:
149
+ resolution: {integrity: sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q==}
150
+
151
+ /@types/[email protected]:
152
+ resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==}
153
+ dev: true
154
+
155
+ /@types/[email protected]:
156
+ resolution: {integrity: sha512-6Laome31HpetaIUGFWl1VQ3mdSImwxtFZ39rh059a1MNnKGqBpC88J6NJ8n/Is3Qx7CefDGLgf/KhN/sYCf7ag==}
157
+ dependencies:
158
+ '@types/prop-types': 15.7.5
159
+ '@types/scheduler': 0.16.3
160
+ csstype: 3.1.2
161
+ dev: true
162
+
163
+ /@types/[email protected]:
164
+ resolution: {integrity: sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==}
165
+ dev: true
166
+
167
168
+ resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==}
169
+ dev: false
170
+
171
172
+ resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==}
173
+ engines: {node: '>=10.16.0'}
174
+ dependencies:
175
+ streamsearch: 1.1.0
176
+ dev: false
177
+
178
179
+ resolution: {integrity: sha512-JmpktFppVSvyUN4gsLS0bShY2L9ZUslHLE72vgemBkS43JD2fOvKTKs+GtRwuxrtRGnwJFW0ye7kWRRlLJS9vQ==}
180
+ dev: false
181
+
182
183
+ resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==}
184
+ dev: false
185
+
186
187
+ resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==}
188
+ dev: true
189
+
190
191
+ resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==}
192
+ dependencies:
193
+ pend: 1.2.0
194
+ dev: false
195
+
196
197
+ resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
198
+ dev: false
199
+
200
201
+ resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
202
+ hasBin: true
203
+ dependencies:
204
+ js-tokens: 4.0.0
205
+ dev: false
206
+
207
208
+ resolution: {integrity: sha512-jLXEEYSbqMkT/FuJLBZAVWGuhIb4JNwHE9kPTorAVmsdZ4UzHAfgWxLsVtD7pLRFaOwYPhNG9nUCpmFL1t/dIg==}
209
+ dev: false
210
+
211
212
+ resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==}
213
+ engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
214
+ hasBin: true
215
+ dev: false
216
+
217
218
+ resolution: {integrity: sha512-FV3pBrAAnAIfOclTvncw9dDohyeuEEXPe5KNcva91anT/rdycWbgtu3IjUj4n5yHnWK8YEPo0vrUecHmnmUNbA==}
219
+ engines: {node: '>=16.8.0'}
220
+ hasBin: true
221
+ peerDependencies:
222
+ '@opentelemetry/api': ^1.1.0
223
+ fibers: '>= 3.1.0'
224
+ node-sass: ^6.0.0 || ^7.0.0
225
+ react: ^18.2.0
226
+ react-dom: ^18.2.0
227
+ sass: ^1.3.0
228
+ peerDependenciesMeta:
229
+ '@opentelemetry/api':
230
+ optional: true
231
+ fibers:
232
+ optional: true
233
+ node-sass:
234
+ optional: true
235
+ sass:
236
+ optional: true
237
+ dependencies:
238
+ '@next/env': 13.4.3
239
+ '@swc/helpers': 0.5.1
240
+ busboy: 1.6.0
241
+ caniuse-lite: 1.0.30001476
242
+ postcss: 8.4.14
243
+ react: 18.2.0
244
+ react-dom: 18.2.0([email protected])
245
+ styled-jsx: 5.1.1([email protected])
246
+ zod: 3.21.4
247
+ optionalDependencies:
248
+ '@next/swc-darwin-arm64': 13.4.3
249
+ '@next/swc-darwin-x64': 13.4.3
250
+ '@next/swc-linux-arm64-gnu': 13.4.3
251
+ '@next/swc-linux-arm64-musl': 13.4.3
252
+ '@next/swc-linux-x64-gnu': 13.4.3
253
+ '@next/swc-linux-x64-musl': 13.4.3
254
+ '@next/swc-win32-arm64-msvc': 13.4.3
255
+ '@next/swc-win32-ia32-msvc': 13.4.3
256
+ '@next/swc-win32-x64-msvc': 13.4.3
257
+ transitivePeerDependencies:
258
+ - '@babel/core'
259
+ - babel-plugin-macros
260
+ dev: false
261
+
262
263
+ resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==}
264
+ dev: false
265
+
266
267
+ resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
268
+ dev: false
269
+
270
271
+ resolution: {integrity: sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==}
272
+ engines: {node: ^10 || ^12 || >=14}
273
+ dependencies:
274
+ nanoid: 3.3.6
275
+ picocolors: 1.0.0
276
+ source-map-js: 1.0.2
277
+ dev: false
278
+
279
280
+ resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==}
281
+ peerDependencies:
282
+ react: ^18.2.0
283
+ dependencies:
284
+ loose-envify: 1.4.0
285
+ react: 18.2.0
286
+ scheduler: 0.23.0
287
+ dev: false
288
+
289
290
+ resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==}
291
+ engines: {node: '>=0.10.0'}
292
+ dependencies:
293
+ loose-envify: 1.4.0
294
+ dev: false
295
+
296
297
+ resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==}
298
+ dependencies:
299
+ loose-envify: 1.4.0
300
+ dev: false
301
+
302
303
+ resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==}
304
+ engines: {node: '>=0.10.0'}
305
+ dev: false
306
+
307
308
+ resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==}
309
+ engines: {node: '>=10.0.0'}
310
+ dev: false
311
+
312
313
+ resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==}
314
+ engines: {node: '>= 12.0.0'}
315
+ peerDependencies:
316
+ '@babel/core': '*'
317
+ babel-plugin-macros: '*'
318
+ react: '>= 16.8.0 || 17.x.x || ^18.0.0-0'
319
+ peerDependenciesMeta:
320
+ '@babel/core':
321
+ optional: true
322
+ babel-plugin-macros:
323
+ optional: true
324
+ dependencies:
325
+ client-only: 0.0.1
326
+ react: 18.2.0
327
+ dev: false
328
+
329
330
+ resolution: {integrity: sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==}
331
+ dev: false
332
+
333
334
+ resolution: {integrity: sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==}
335
+ engines: {node: '>=12.20'}
336
+ hasBin: true
337
+ dev: true
338
+
339
340
+ resolution: {integrity: sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==}
341
+ dev: false
342
+
343
344
+ resolution: {integrity: sha512-Cl65diFGxz7gpwbav10HqiY/eVYTO1sjQpmRmV991Bj7wAoOAjGQ97PpQcXorDE2Uc4hnGWLY17xme+5t6MlSg==}
345
+ dev: false
346
+
347
348
+ resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==}
349
+ dependencies:
350
+ buffer-crc32: 0.2.13
351
+ fd-slicer: 1.1.0
352
+ dev: false
353
+
354
355
+ resolution: {integrity: sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw==}
356
+ dev: false
public/failfast.svg DELETED
public/favicon.ico DELETED
Binary file (15.1 kB)
 
src/components/base/boxes.tsx DELETED
@@ -1,28 +0,0 @@
1
- import { Divider, DividerProps, Paper, PaperProps } from "@mui/material";
2
- import { styled } from "@mui/material/styles";
3
-
4
- export const SectionBox = styled(Paper)<PaperProps>(({ theme }) => ({
5
- display: "flex",
6
- padding: 15,
7
- paddingTop: 30,
8
- paddingBottom: 30,
9
- marginBottom: 20,
10
- background: `linear-gradient(to bottom right, ${theme.palette.primary.main} 0%, ${theme.palette.secondary.main} 100%)`,
11
- }));
12
-
13
- export const HighlightBox = styled(Paper)<PaperProps>(({ theme }) => ({
14
- display: "flex",
15
- alignItems: "center",
16
- justifyContent: "center",
17
- padding: 10,
18
- borderBottom: `3px solid transparent`,
19
- borderImage: `linear-gradient(to bottom right, #b827fc 0%, #2c90fc 25%, #b8fd33 50%, #fec837 75%, #fd1892 100%)`,
20
- borderImageSlice: 1,
21
- }));
22
-
23
- export const DividerBox = styled(Divider)<DividerProps>(({ theme }) => ({
24
- marginTop: 20,
25
- marginBottom: 20,
26
- background: "transparent",
27
- border: "none",
28
- }));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
src/components/base/code.tsx DELETED
@@ -1,19 +0,0 @@
1
- import { styled } from "@mui/material/styles";
2
- import { Paper, PaperProps } from "@mui/material";
3
-
4
- type CodeProps = {
5
- children: string;
6
- };
7
-
8
- const CodeBox = styled(Paper)<PaperProps>(({ theme }) => ({
9
- fontFamily: "monospace",
10
- padding: 8,
11
- borderTop: `2px solid ${theme.palette.secondary.dark}`,
12
- borderBottom: `2px solid ${theme.palette.secondary.dark}`,
13
- }));
14
-
15
- export default function Code(props: CodeProps) {
16
- const { children } = props;
17
-
18
- return <CodeBox>{children}</CodeBox>;
19
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
src/components/base/example-button.tsx DELETED
@@ -1,41 +0,0 @@
1
- import { Button, Typography } from "@mui/material";
2
- import { MouseEventHandler } from "react";
3
-
4
- interface ExampleButtonProps {
5
- text: string;
6
- displayLength?: number;
7
- onClick?: (text: string) => void;
8
- }
9
-
10
- /**
11
- *
12
- * A button that hosts an example "text" that can be used as the input
13
- * to anything to get an inspiration on how to get started.
14
- *
15
- * @param props ExampleButtonProps
16
- * @returns
17
- */
18
- export default function ExampleButton(props: ExampleButtonProps) {
19
- const { text, displayLength = 50, onClick } = props;
20
-
21
- const displayText =
22
- text.slice(0, displayLength) + (text.length > displayLength ? "..." : "");
23
-
24
- const handleClick: MouseEventHandler = event => {
25
- event.preventDefault();
26
-
27
- if (onClick) {
28
- onClick(text);
29
- }
30
- };
31
-
32
- return (
33
- <Button
34
- onClick={handleClick}
35
- sx={{ textTransform: "none" }}
36
- variant="outlined"
37
- >
38
- <Typography>{displayText}</Typography>
39
- </Button>
40
- );
41
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
src/components/base/options.tsx DELETED
@@ -1,56 +0,0 @@
1
- import { KeyboardArrowDown, KeyboardArrowUp } from "@mui/icons-material";
2
- import {
3
- Card,
4
- CardContent,
5
- CardHeader,
6
- Collapse,
7
- IconButton,
8
- Stack,
9
- } from "@mui/material";
10
- import { ReactElement, useState } from "react";
11
-
12
- type OptionsProps = {
13
- children: ReactElement | ReactElement[];
14
- opened?: boolean;
15
- };
16
-
17
- /**
18
- * Define options that are hidden by default
19
- *
20
- * @param props OptionsProps
21
- * @param props.opened boolean - Are the options visible or not (default)
22
- *
23
- * @returns Options
24
- */
25
- export default function Options(props: OptionsProps) {
26
- const { children, opened = false } = props;
27
-
28
- const [showOptions, setShowOptions] = useState(opened);
29
-
30
- const handleShowOptions = () => setShowOptions(!showOptions);
31
-
32
- return (
33
- <>
34
- <Card>
35
- <CardHeader
36
- title="Options"
37
- onClick={handleShowOptions}
38
- action={
39
- <IconButton aria-label="expand" size="small">
40
- {showOptions ? <KeyboardArrowUp /> : <KeyboardArrowDown />}
41
- </IconButton>
42
- }
43
- sx={{
44
- cursor: "pointer",
45
- }}
46
- titleTypographyProps={{ variant: "h6", sx: { fontSize: "1em" } }}
47
- />
48
- <Collapse in={showOptions}>
49
- <CardContent>
50
- <Stack spacing={2}>{children}</Stack>
51
- </CardContent>
52
- </Collapse>
53
- </Card>
54
- </>
55
- );
56
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
src/components/base/slider-with-label.tsx DELETED
@@ -1,22 +0,0 @@
1
- import {
2
- Box,
3
- FormControlLabel,
4
- Slider,
5
- SliderProps,
6
- Typography,
7
- } from "@mui/material";
8
-
9
- type SliderWithLabelProps = SliderProps & {
10
- label?: string;
11
- };
12
-
13
- export default function SliderWithLabel(props: SliderWithLabelProps) {
14
- const { label = "", valueLabelDisplay = "auto" } = props;
15
-
16
- return (
17
- <Box>
18
- <Typography variant="subtitle1">{label}</Typography>
19
- <Slider {...props} valueLabelDisplay={valueLabelDisplay} />
20
- </Box>
21
- );
22
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
src/components/example-components.tsx DELETED
@@ -1,35 +0,0 @@
1
- import { Box, Stack, Typography } from "@mui/material";
2
- import Huggingface from "./huggingface/huggingface";
3
- import { DividerBox, HighlightBox, SectionBox } from "./base/boxes";
4
- import { UnderConstruction } from "./under-construction";
5
-
6
- export default function ExampleComponents() {
7
- return (
8
- <>
9
- <SectionBox>
10
- <Stack spacing={2}>
11
- <Typography component="h2" variant="h3">
12
- Components
13
- </Typography>
14
-
15
- <Typography variant="body1">
16
- Unsure where to begin? Our pre-built components offer a jumpstart
17
- for your ML demo 🚀
18
- </Typography>
19
- </Stack>
20
- </SectionBox>
21
-
22
- <Huggingface />
23
-
24
- <DividerBox />
25
-
26
- <Stack spacing={4}>
27
- <HighlightBox>
28
- <Typography variant="h4">More comming soon!</Typography>
29
- </HighlightBox>
30
-
31
- <UnderConstruction />
32
- </Stack>
33
- </>
34
- );
35
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
src/components/footer.tsx DELETED
@@ -1,32 +0,0 @@
1
- import Box from "@mui/material/Box";
2
- import Image from "next/image";
3
- import { Divider, Link } from "@mui/material";
4
-
5
- const Footer = () => {
6
- return (
7
- <Box
8
- component="footer"
9
- sx={{
10
- display: "flex",
11
- justifyContent: "center",
12
- gap: 1,
13
- alignItems: "center",
14
- mt: 8,
15
- mb: 4,
16
- }}
17
- >
18
- <Link
19
- href="https://failfa.st"
20
- display="flex"
21
- alignItems="center"
22
- rel="noopener"
23
- target="_blank"
24
- >
25
- <Box sx={{ mr: 0.5 }}>Powered by</Box>{" "}
26
- <Image src="/failfast.svg" alt="failfast Logo" width="32" height="32" />
27
- </Link>
28
- </Box>
29
- );
30
- };
31
-
32
- export default Footer;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
src/components/getting-started.tsx DELETED
@@ -1,150 +0,0 @@
1
- import {
2
- Button,
3
- Grid,
4
- Link,
5
- List,
6
- ListItem,
7
- ListItemIcon,
8
- ListItemText,
9
- ListSubheader,
10
- Paper,
11
- Stack,
12
- Typography,
13
- } from "@mui/material";
14
-
15
- import ViewQuiltIcon from "@mui/icons-material/ViewQuilt";
16
- import SailingIcon from "@mui/icons-material/Sailing";
17
- import LightModeIcon from "@mui/icons-material/LightMode";
18
- import SentimentVerySatisfiedIcon from "@mui/icons-material/SentimentVerySatisfied";
19
- import ContentCopyIcon from "@mui/icons-material/ContentCopy";
20
- import LinkIcon from "@mui/icons-material/Link";
21
- import SyncIcon from "@mui/icons-material/Sync";
22
- import { HighlightBox } from "./base/boxes";
23
-
24
- export default function GettingStarted() {
25
- return (
26
- <>
27
- <Grid container spacing={2}>
28
- <Grid item sm={8} lg={6} sx={{ justifyContent: "center" }}>
29
- <Paper sx={{ p: 2 }}>
30
- <List disablePadding>
31
- <ListSubheader sx={{ fontSize: "1.5em" }}>Features</ListSubheader>
32
-
33
- <ListItem>
34
- <ListItemIcon>
35
- <SentimentVerySatisfiedIcon />
36
- </ListItemIcon>
37
- <ListItemText>
38
- <Link
39
- href="https://huggingface.co/docs/huggingface.js/index"
40
- target="_blank"
41
- rel="noopener"
42
- >
43
- huggingface.js
44
- </Link>{" "}
45
- components (WIP)
46
- </ListItemText>
47
- </ListItem>
48
-
49
- <ListItem>
50
- <ListItemIcon>
51
- <LinkIcon />
52
- </ListItemIcon>
53
- <ListItemText>
54
- <Link
55
- href="https://js.langchain.com/docs"
56
- target="_blank"
57
- rel="noopener"
58
- >
59
- langchain.js
60
- </Link>{" "}
61
- and{" "}
62
- <Link
63
- href="https://github.com/failfa-st/hyv"
64
- target="_blank"
65
- rel="noopener"
66
- >
67
- hyv
68
- </Link>{" "}
69
- components (comming soon)
70
- </ListItemText>
71
- </ListItem>
72
-
73
- <ListItem>
74
- <ListItemIcon>
75
- <ViewQuiltIcon />
76
- </ListItemIcon>
77
- <ListItemText>
78
- Rapid prototyping with{" "}
79
- <Link
80
- href="https://mui.com/material-ui/getting-started/overview/"
81
- target="_blank"
82
- rel="noopener"
83
- >
84
- MUI
85
- </Link>
86
- </ListItemText>
87
- </ListItem>
88
- <ListItem>
89
- <ListItemIcon>
90
- <LightModeIcon />
91
- </ListItemIcon>
92
- <ListItemText>
93
- Dark / light theme based on system preferences
94
- </ListItemText>
95
- </ListItem>
96
- <ListItem>
97
- <ListItemIcon>
98
- <SyncIcon />
99
- </ListItemIcon>
100
- <ListItemText>
101
- Sync your GitHub repository with your 🤗 Space
102
- </ListItemText>
103
- </ListItem>
104
- <ListItem>
105
- <ListItemIcon>
106
- <SailingIcon />
107
- </ListItemIcon>
108
- <ListItemText>Runs in Docker or localhost</ListItemText>
109
- </ListItem>
110
- </List>
111
- </Paper>
112
- </Grid>
113
-
114
- <Grid item sm={4} lg={3}>
115
- <Stack gap={2}>
116
- <Paper sx={{ p: 2 }}>
117
- <Typography variant="body1">
118
- Explore the{" "}
119
- <Link
120
- href="https://huggingface.co/spaces/failfast/nextjs-docker-starter/blob/main/README.md"
121
- target="_blank"
122
- rel="noopener"
123
- >
124
- README
125
- </Link>{" "}
126
- for a comprehensive guide on local development, Docker
127
- utilization, secret management, and GitHub-based Space control.
128
- </Typography>
129
- </Paper>
130
-
131
- <Paper sx={{ p: 2 }}>
132
- <Typography variant="body1">
133
- Have feedback or ideas?{" "}
134
- <Link
135
- href="https://huggingface.co/spaces/failfast/nextjs-docker-starter/discussions"
136
- target="_blank"
137
- rel="noopener"
138
- >
139
- We&apos;re eager to hear from you!
140
- </Link>{" "}
141
- As an open-source project in its early stages, your input can
142
- significantly shape our development.
143
- </Typography>
144
- </Paper>
145
- </Stack>
146
- </Grid>
147
- </Grid>
148
- </>
149
- );
150
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
src/components/huggingface/huggingface.tsx DELETED
@@ -1,64 +0,0 @@
1
- import { Alert, Link, Typography } from "@mui/material";
2
- import { HfInference } from "@huggingface/inference";
3
- import { useEffect } from "react";
4
- import Summarization from "./inference/summarization";
5
- import { HighlightBox } from "../base/boxes";
6
- import Code from "../base/code";
7
-
8
- export type InferenceProps = {
9
- token?: string;
10
- model: string;
11
- };
12
-
13
- export default function Huggingface() {
14
- return (
15
- <>
16
- <HighlightBox>
17
- <Typography component="h4" variant="h4">
18
- huggingface.js
19
- </Typography>
20
- </HighlightBox>
21
-
22
- <Typography variant="body1">
23
- <Link
24
- href="https://huggingface.co/docs/huggingface.js/index"
25
- target="_blank"
26
- rel="noopener"
27
- >
28
- huggingface.js
29
- </Link>{" "}
30
- is a suite of JavaScript libraries that interact with the Hugging Face
31
- API. It enables the use of over 100,000 ML models or your own via the{" "}
32
- <Link
33
- href="https://huggingface.co/docs/inference-endpoints/index"
34
- target="_blank"
35
- rel="noopener"
36
- >
37
- Inference API
38
- </Link>
39
- , and supports managing Hugging Face repositories.
40
- </Typography>
41
-
42
- <Alert severity="info">
43
- When you run into rate limits while using the components, make sure to
44
- add your 🤗 access token (optained via your{" "}
45
- <Link
46
- href="https://huggingface.co/settings/tokens"
47
- target="_blank"
48
- rel="noopener"
49
- >
50
- account settings
51
- </Link>
52
- ) into `HF Access Token` under &quot;Options&quot;.
53
- </Alert>
54
-
55
- <Typography component="h5" variant="h5">
56
- Summarization
57
- </Typography>
58
-
59
- <Code>{`<Summarization model="facebook/bart-large-cnn" maxLength={100} />`}</Code>
60
-
61
- <Summarization model="facebook/bart-large-cnn" maxLength={100} />
62
- </>
63
- );
64
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
src/components/huggingface/inference/summarization.tsx DELETED
@@ -1,209 +0,0 @@
1
- import {
2
- Alert,
3
- Box,
4
- Button,
5
- CircularProgress,
6
- IconButton,
7
- InputAdornment,
8
- Paper,
9
- Slider,
10
- Stack,
11
- TextField,
12
- Typography,
13
- } from "@mui/material";
14
- import { useEffect, useRef, useState } from "react";
15
- import { HfInference, SummarizationArgs } from "@huggingface/inference";
16
- import { Visibility, VisibilityOff } from "@mui/icons-material";
17
- import { InferenceProps } from "../huggingface";
18
- import Options from "@/components/base/options";
19
- import SliderWithLabel from "@/components/base/slider-with-label";
20
- import ExampleButton from "@/components/base/example-button";
21
-
22
- type SummarizationProps = InferenceProps & {
23
- /**
24
- * (Default: None). Integer to define the maximum length in tokens of the output summary.
25
- */
26
- maxLength?: number;
27
- /**
28
- * (Default: None). Float (0-120.0). The amount of time in seconds that the query should take maximum. Network can cause some overhead so it will be a soft limit.
29
- */
30
- maxTime?: number;
31
- /**
32
- * (Default: None). Integer to define the minimum length in tokens of the output summary.
33
- */
34
- minLength?: number;
35
- /**
36
- * (Default: None). Float (0.0-100.0). The more a token is used within generation the more it is penalized to not be picked in successive generation passes.
37
- */
38
- repetitionPenalty?: number;
39
- /**
40
- * (Default: 1.0). Float (0.0-100.0). The temperature of the sampling operation. 1 means regular sampling, 0 means always take the highest score, 100.0 is getting closer to uniform probability.
41
- */
42
- temperature?: number;
43
- /**
44
- * (Default: None). Integer to define the top tokens considered within the sample operation to create new text.
45
- */
46
- topK?: number;
47
- /**
48
- * (Default: None). Float to define the tokens that are within the sample operation of text generation. Add tokens in the sample for more probable to least probable until the sum of the probabilities is greater than top_p.
49
- */
50
- topP?: number;
51
- };
52
-
53
- export default function Summarization(props: SummarizationProps) {
54
- const {
55
- model,
56
- maxLength,
57
- maxTime,
58
- minLength,
59
- repetitionPenalty,
60
- temperature,
61
- topK,
62
- topP,
63
- } = props;
64
-
65
- const [token, setToken] = useState<string>("");
66
- const [inputText, setInputText] = useState<string>("");
67
- const [summary, setSummary] = useState<string>("");
68
- const [error, setError] = useState<string>("");
69
- const [showToken, setShowToken] = useState(false);
70
- const [loading, setLoading] = useState(false);
71
-
72
- const inference = useRef<HfInference | null>(null);
73
-
74
- useEffect(() => {
75
- inference.current = new HfInference(token);
76
- }, [token]);
77
-
78
- // Parse the data of the form and trigger "call"
79
- const handleSubmit = (event: any) => {
80
- event.preventDefault();
81
- const data = new FormData(event.currentTarget);
82
-
83
- setToken(data.get("token") as string);
84
-
85
- const text = data.get("text") as string;
86
- const max_length = Number(data.get("maxLength") as string);
87
-
88
- call({ model, inputs: text, parameters: { max_length } });
89
- };
90
-
91
- const handleShowToken = () => setShowToken(!showToken);
92
-
93
- /**
94
- * Call the inference API using args
95
- */
96
- const call = async (args: SummarizationArgs) => {
97
- const { inputs, parameters } = args;
98
-
99
- try {
100
- setLoading(true);
101
-
102
- const response = await inference.current?.summarization({
103
- model,
104
- inputs,
105
- parameters,
106
- });
107
-
108
- setSummary(response?.summary_text as string);
109
- setError("");
110
- } catch (error) {
111
- if (error instanceof Error) {
112
- setError(error.message);
113
- } else {
114
- setError("An unknown error occurred");
115
- }
116
- }
117
-
118
- setLoading(false);
119
- };
120
-
121
- return (
122
- <>
123
- <Paper component="form" onSubmit={handleSubmit} sx={{ padding: "1em" }}>
124
- <Stack spacing={2}>
125
- <TextField
126
- variant="filled"
127
- label="Text to summarize"
128
- multiline
129
- required
130
- minRows={4}
131
- name="text"
132
- value={inputText}
133
- onChange={e => setInputText(e.target.value)}
134
- />
135
-
136
- <Button type="submit" variant="contained" disabled={loading}>
137
- Run{" "}
138
- {loading && (
139
- <CircularProgress
140
- size={24}
141
- sx={{
142
- position: "absolute",
143
- top: "50%",
144
- left: "50%",
145
- marginTop: "-12px",
146
- marginLeft: "-12px",
147
- }}
148
- />
149
- )}
150
- </Button>
151
-
152
- {error && <Alert severity="error">{error}</Alert>}
153
-
154
- <TextField
155
- variant="outlined"
156
- label="Summary"
157
- multiline
158
- minRows={2}
159
- name="text"
160
- value={summary}
161
- />
162
-
163
- <Options>
164
- <TextField
165
- variant="filled"
166
- label="HF Access Token"
167
- name="token"
168
- type={showToken ? "text" : "password"}
169
- InputProps={{
170
- endAdornment: (
171
- <InputAdornment position="end">
172
- <IconButton onClick={handleShowToken}>
173
- {showToken ? <Visibility /> : <VisibilityOff />}
174
- </IconButton>
175
- </InputAdornment>
176
- ),
177
- }}
178
- />
179
-
180
- <SliderWithLabel
181
- label="max_length"
182
- name="maxLength"
183
- aria-label="max length"
184
- defaultValue={maxLength}
185
- step={1}
186
- min={56}
187
- max={256}
188
- />
189
- </Options>
190
-
191
- <Typography variant="h6" sx={{ fontSize: "1em" }}>
192
- Examples
193
- </Typography>
194
- <Stack direction="row" spacing={2}>
195
- <ExampleButton
196
- text="The tower is 324 metres (1,063 ft) tall, about the same height as an 81-storey building, and the tallest structure in Paris. Its base is square, measuring 125 metres (410 ft) on each side. During its construction, the Eiffel Tower surpassed the Washington Monument to become the tallest man-made structure in the world, a title it held for 41 years until the Chrysler Building in New York City was finished in 1930. It was the first structure to reach a height of 300 metres. Due to the addition of a broadcasting aerial at the top of the tower in 1957, it is now taller than the Chrysler Building by 5.2 metres (17 ft). Excluding transmitters, the Eiffel Tower is the second tallest free-standing structure in France after the Millau Viaduct."
197
- onClick={setInputText}
198
- />
199
-
200
- <ExampleButton
201
- text="Machine learning (ML) is a field devoted to understanding and building methods that let machines 'learn' – that is, methods that leverage data to improve computer performance on some set of tasks. Machine learning algorithms build a model based on sample data, known as training data, in order to make predictions or decisions without being explicitly programmed to do so. Machine learning algorithms are used in a wide variety of applications, such as in medicine, email filtering, speech recognition, agriculture, and computer vision, where it is difficult or unfeasible to develop conventional algorithms to perform the needed tasks."
202
- onClick={setInputText}
203
- />
204
- </Stack>
205
- </Stack>
206
- </Paper>
207
- </>
208
- );
209
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
src/components/title.tsx DELETED
@@ -1,62 +0,0 @@
1
- import { Button, Link, Paper, Stack, Typography } from "@mui/material";
2
- import { HighlightBox } from "./base/boxes";
3
- import ContentCopyIcon from "@mui/icons-material/ContentCopy";
4
-
5
- export default function Title() {
6
- return (
7
- <Stack
8
- spacing={4}
9
- sx={{
10
- justifyContent: "center",
11
- alignItems: "center",
12
- minHeight: "40vh",
13
- p: 4,
14
- }}
15
- >
16
- <Typography variant="h1" component="h1">
17
- <Link
18
- href="https://nextjs.org"
19
- target="_blank"
20
- rel="noopener noreferrer"
21
- >
22
- Next.js
23
- </Link>{" "}
24
- on 🤗{" "}
25
- <Link
26
- href="https://huggingface.co/spaces"
27
- target="_blank"
28
- rel="noopener noreferrer"
29
- >
30
- Spaces
31
- </Link>
32
- </Typography>
33
-
34
- <HighlightBox>
35
- <Typography variant="h5" component="p">
36
- Run your ML demo with ease in a Next.js environment
37
- </Typography>
38
- </HighlightBox>
39
-
40
- <Stack gap={2} direction="row">
41
- <Button
42
- startIcon={<ContentCopyIcon />}
43
- variant="contained"
44
- href="https://huggingface.co/spaces/failfast/nextjs-docker-starter?duplicate=true"
45
- target="_blank"
46
- rel="noopener"
47
- color="secondary"
48
- >
49
- Duplicate space
50
- </Button>
51
-
52
- <Button
53
- href="https://github.com/failfa-st/nextjs-docker-starter"
54
- target="_blank"
55
- rel="noopener"
56
- >
57
- Contribute on GitHub
58
- </Button>
59
- </Stack>
60
- </Stack>
61
- );
62
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
src/components/under-construction.tsx DELETED
@@ -1,8 +0,0 @@
1
- import { styled } from "@mui/material/styles";
2
-
3
- export const UnderConstruction = styled("div")({
4
- width: "100%",
5
- height: "266px",
6
- backgroundRepeat: "round",
7
- backgroundImage: `url("data:image/gif;base64,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")`,
8
- });
 
 
 
 
 
 
 
 
 
src/lib/createEmotionCache.ts DELETED
@@ -1,19 +0,0 @@
1
- import createCache from "@emotion/cache";
2
-
3
- const isBrowser = typeof document !== "undefined";
4
-
5
- // On the client side, Create a meta tag at the top of the <head> and set it as insertionPoint.
6
- // This assures that MUI styles are loaded first.
7
- // It allows developers to easily override MUI styles with other styling solutions, like CSS modules.
8
- export default function createEmotionCache() {
9
- let insertionPoint;
10
-
11
- if (isBrowser) {
12
- const emotionInsertionPoint = document.querySelector<HTMLMetaElement>(
13
- 'meta[name="emotion-insertion-point"]'
14
- );
15
- insertionPoint = emotionInsertionPoint ?? undefined;
16
- }
17
-
18
- return createCache({ key: "mui-style", insertionPoint });
19
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
src/lib/theme.ts DELETED
@@ -1,62 +0,0 @@
1
- import { Roboto } from "next/font/google";
2
- import { experimental_extendTheme as extendTheme } from "@mui/material/styles";
3
-
4
- export const roboto = Roboto({
5
- weight: ["300", "400", "500", "700"],
6
- subsets: ["latin"],
7
- display: "swap",
8
- fallback: ["Helvetica", "Arial", "sans-serif"],
9
- });
10
-
11
- /**
12
- * https://mui.com/material-ui/experimental-api/css-theme-variables/customization/
13
- *
14
- * TL;DR
15
- * - specify both dark and light colors at once
16
- * - extendTheme returns a theme for CssVarsProvider, not ThemeProvider
17
- * - CssVarsProvider has a defaultMode property, set to "system" in _app.tsx
18
- */
19
- const theme = extendTheme({
20
- colorSchemes: {
21
- light: {
22
- palette: {
23
- primary: {
24
- main: "#2c90fc",
25
- },
26
- secondary: {
27
- main: "#b827fc",
28
- },
29
- },
30
- },
31
- dark: {
32
- palette: {
33
- primary: {
34
- main: "#2c90fc",
35
- },
36
- secondary: {
37
- main: "#b827fc",
38
- },
39
- },
40
- },
41
- },
42
- typography: {
43
- ...roboto.style,
44
- h1: {
45
- fontSize: "5.25em",
46
- },
47
- },
48
- components: {
49
- MuiLink: {
50
- styleOverrides: {
51
- root: {
52
- textDecoration: "none",
53
- ":hover": {
54
- textDecoration: "underline",
55
- },
56
- },
57
- },
58
- },
59
- },
60
- });
61
-
62
- export default theme;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
src/pages/_app.tsx DELETED
@@ -1,29 +0,0 @@
1
- import Head from "next/head";
2
- import { AppProps } from "next/app";
3
- import { Experimental_CssVarsProvider as CssVarsProvider } from "@mui/material/styles";
4
- import CssBaseline from "@mui/material/CssBaseline";
5
- import { CacheProvider, EmotionCache } from "@emotion/react";
6
- import theme from "@/lib/theme";
7
- import createEmotionCache from "@/lib/createEmotionCache";
8
-
9
- // Client-side cache, shared for the whole session of the user in the browser.
10
- const clientSideEmotionCache = createEmotionCache();
11
-
12
- export interface MyAppProps extends AppProps {
13
- emotionCache?: EmotionCache;
14
- }
15
-
16
- export default function MyApp(props: MyAppProps) {
17
- const { Component, emotionCache = clientSideEmotionCache, pageProps } = props;
18
- return (
19
- <CacheProvider value={emotionCache}>
20
- <Head>
21
- <meta name="viewport" content="initial-scale=1, width=device-width" />
22
- </Head>
23
- <CssVarsProvider defaultMode="system" theme={theme}>
24
- <CssBaseline />
25
- <Component {...pageProps} />
26
- </CssVarsProvider>
27
- </CacheProvider>
28
- );
29
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
src/pages/_document.tsx DELETED
@@ -1,13 +0,0 @@
1
- import { Html, Head, Main, NextScript } from 'next/document'
2
-
3
- export default function Document() {
4
- return (
5
- <Html lang="en">
6
- <Head />
7
- <body>
8
- <Main />
9
- <NextScript />
10
- </body>
11
- </Html>
12
- )
13
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
src/pages/api/env.ts DELETED
@@ -1,11 +0,0 @@
1
- import process from "node:process";
2
- import { NextApiRequest, NextApiResponse } from "next";
3
-
4
- export default async function handler(
5
- request: NextApiRequest,
6
- response: NextApiResponse
7
- ) {
8
- const exampleSecret = process.env.HF_EXAMPLE_SECRET;
9
-
10
- return response.status(200).json({ HF_EXAMPLE_SECRET: exampleSecret });
11
- }
 
 
 
 
 
 
 
 
 
 
 
 
src/pages/index.tsx DELETED
@@ -1,35 +0,0 @@
1
- import Head from "next/head";
2
- import Container from "@mui/material/Container";
3
- import Footer from "@/components/footer";
4
- import Title from "@/components/title";
5
- import Huggingface from "@/components/huggingface/huggingface";
6
- import GettingStarted from "@/components/getting-started";
7
- import ExampleComponents from "@/components/example-components";
8
- import { Stack } from "@mui/material";
9
- import { DividerBox } from "@/components/base/boxes";
10
-
11
- export default function Home() {
12
- return (
13
- <>
14
- <Head>
15
- <title>nextjs-docker-starter</title>
16
- <link rel="icon" href="/favicon.ico" />
17
- <meta name="description" content="Next.js in Docker on 🤗 Spaces" />
18
- </Head>
19
-
20
- <Container component="main" sx={{ minHeight: "90vh" }}>
21
- <Stack spacing={4} useFlexGap>
22
- <Title />
23
-
24
- <GettingStarted />
25
-
26
- <DividerBox />
27
-
28
- <ExampleComponents />
29
- </Stack>
30
- </Container>
31
-
32
- <Footer />
33
- </>
34
- );
35
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
theme.json ADDED
@@ -0,0 +1,1832 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "Night Owl",
3
+ "type": "dark",
4
+ "semanticHighlighting": false,
5
+ "colors": {
6
+ "contrastBorder": "#122d42",
7
+ "focusBorder": "#122d42",
8
+ "foreground": "#d6deeb",
9
+ "widget.shadow": "#101218",
10
+ "selection.background": "#4373c2",
11
+ "errorForeground": "#EF5350",
12
+ "button.background": "#7e57c2cc",
13
+ "button.foreground": "#ffffffcc",
14
+ "button.hoverBackground": "#7e57c2",
15
+ "dropdown.background": "#101218",
16
+ "dropdown.border": "#5f7e97",
17
+ "dropdown.foreground": "#ffffffcc",
18
+ "input.background": "#0b253a",
19
+ "input.border": "#5f7e97",
20
+ "input.foreground": "#ffffffcc",
21
+ "input.placeholderForeground": "#5f7e97",
22
+ "inputOption.activeBorder": "#ffffffcc",
23
+ "punctuation.definition.generic.begin.html": "#ef5350f2",
24
+ "inputValidation.errorBackground": "#AB0300F2",
25
+ "inputValidation.errorBorder": "#EF5350",
26
+ "inputValidation.infoBackground": "#00589EF2",
27
+ "inputValidation.infoBorder": "#64B5F6",
28
+ "inputValidation.warningBackground": "#675700F2",
29
+ "inputValidation.warningBorder": "#FFCA28",
30
+ "scrollbar.shadow": "#010b14",
31
+ "scrollbarSlider.activeBackground": "#084d8180",
32
+ "scrollbarSlider.background": "#084d8180",
33
+ "scrollbarSlider.hoverBackground": "#084d8180",
34
+ "badge.background": "#5f7e97",
35
+ "badge.foreground": "#ffffff",
36
+ "progress.background": "#7e57c2",
37
+ "breadcrumb.foreground": "#A599E9",
38
+ "breadcrumb.focusForeground": "#ffffff",
39
+ "breadcrumb.activeSelectionForeground": "#FFFFFF",
40
+ "breadcrumbPicker.background": "#001122",
41
+ "list.activeSelectionBackground": "#234d708c",
42
+ "list.activeSelectionForeground": "#ffffff",
43
+ "list.invalidItemForeground": "#975f94",
44
+ "list.dropBackground": "#101218",
45
+ "list.focusBackground": "#010d18",
46
+ "list.focusForeground": "#ffffff",
47
+ "list.highlightForeground": "#ffffff",
48
+ "list.hoverBackground": "#101218",
49
+ "list.hoverForeground": "#ffffff",
50
+ "list.inactiveSelectionBackground": "#0e293f",
51
+ "list.inactiveSelectionForeground": "#5f7e97",
52
+ "activityBar.background": "#101218",
53
+ "activityBar.dropBackground": "#5f7e97",
54
+ "activityBar.foreground": "#5f7e97",
55
+ "activityBar.border": "#101218",
56
+ "activityBarBadge.background": "#44596b",
57
+ "activityBarBadge.foreground": "#ffffff",
58
+ "sideBar.background": "#101218",
59
+ "sideBar.foreground": "#89a4bb",
60
+ "sideBar.border": "#101218",
61
+ "sideBarTitle.foreground": "#5f7e97",
62
+ "sideBarSectionHeader.background": "#101218",
63
+ "sideBarSectionHeader.foreground": "#5f7e97",
64
+ "editorGroup.emptyBackground": "#101218",
65
+ "editorGroup.border": "#101218",
66
+ "editorGroup.dropBackground": "#7e57c273",
67
+ "editorGroupHeader.noTabsBackground": "#101218",
68
+ "editorGroupHeader.tabsBackground": "#101218",
69
+ "editorGroupHeader.tabsBorder": "#262A39",
70
+ "tab.activeBackground": "#0b2942",
71
+ "tab.activeForeground": "#d2dee7",
72
+ "tab.border": "#272B3B",
73
+ "tab.activeBorder": "#262A39",
74
+ "tab.unfocusedActiveBorder": "#262A39",
75
+ "tab.inactiveBackground": "#01111d",
76
+ "tab.inactiveForeground": "#5f7e97",
77
+ "tab.unfocusedActiveForeground": "#5f7e97",
78
+ "tab.unfocusedInactiveForeground": "#5f7e97",
79
+ "editor.background": "#101218",
80
+ "editor.foreground": "#d6deeb",
81
+ "editorLineNumber.foreground": "#4b6479",
82
+ "editorLineNumber.activeForeground": "#C5E4FD",
83
+ "editorCursor.foreground": "#80a4c2",
84
+ "editor.selectionBackground": "#1d3b53",
85
+ "editor.selectionHighlightBackground": "#5f7e9779",
86
+ "editor.inactiveSelectionBackground": "#7e57c25a",
87
+ "editor.wordHighlightBackground": "#f6bbe533",
88
+ "editor.wordHighlightStrongBackground": "#e2a2f433",
89
+ "editor.findMatchBackground": "#5f7e9779",
90
+ "editor.findMatchHighlightBackground": "#1085bb5d",
91
+ "editor.findRangeHighlightBackground": null,
92
+ "editor.hoverHighlightBackground": "#7e57c25a",
93
+ "editor.lineHighlightBackground": "#0003",
94
+ "editor.lineHighlightBorder": null,
95
+ "editorLink.activeForeground": null,
96
+ "editor.rangeHighlightBackground": "#7e57c25a",
97
+ "editorWhitespace.foreground": null,
98
+ "editorIndentGuide.background": "#5e81ce52",
99
+ "editorIndentGuide.activeBackground": "#7E97AC",
100
+ "editorRuler.foreground": "#5e81ce52",
101
+ "editorCodeLens.foreground": "#5e82ceb4",
102
+ "editorBracketMatch.background": "#5f7e974d",
103
+ "editorBracketMatch.border": null,
104
+ "editorOverviewRuler.currentContentForeground": "#7e57c2",
105
+ "editorOverviewRuler.incomingContentForeground": "#7e57c2",
106
+ "editorOverviewRuler.commonContentForeground": "#7e57c2",
107
+ "editorError.foreground": "#EF5350",
108
+ "editorError.border": null,
109
+ "editorWarning.foreground": "#b39554",
110
+ "editorWarning.border": null,
111
+ "editorGutter.background": "#101218",
112
+ "editorGutter.modifiedBackground": "#e2b93d",
113
+ "editorGutter.addedBackground": "#9CCC65",
114
+ "editorGutter.deletedBackground": "#EF5350",
115
+ "diffEditor.insertedTextBackground": "#99b76d23",
116
+ "diffEditor.insertedTextBorder": "#c5e47833",
117
+ "diffEditor.removedTextBackground": "#ef535033",
118
+ "diffEditor.removedTextBorder": "#ef53504d",
119
+ "editorWidget.background": "#021320",
120
+ "editorWidget.border": "#5f7e97",
121
+ "editorSuggestWidget.background": "#2C3043",
122
+ "editorSuggestWidget.border": "#2B2F40",
123
+ "editorSuggestWidget.foreground": "#d6deeb",
124
+ "editorSuggestWidget.highlightForeground": "#ffffff",
125
+ "editorSuggestWidget.selectedBackground": "#5f7e97",
126
+ "editorHoverWidget.background": "#101218",
127
+ "editorHoverWidget.border": "#5f7e97",
128
+ "debugExceptionWidget.background": "#101218",
129
+ "debugExceptionWidget.border": "#5f7e97",
130
+ "editorMarkerNavigation.background": "#0b2942",
131
+ "editorMarkerNavigationError.background": "#EF5350",
132
+ "editorMarkerNavigationWarning.background": "#FFCA28",
133
+ "peekView.border": "#5f7e97",
134
+ "peekViewEditor.background": "#101218",
135
+ "peekViewEditor.matchHighlightBackground": "#7e57c25a",
136
+ "peekViewResult.background": "#101218",
137
+ "peekViewResult.fileForeground": "#5f7e97",
138
+ "peekViewResult.lineForeground": "#5f7e97",
139
+ "peekViewResult.matchHighlightBackground": "#ffffffcc",
140
+ "peekViewResult.selectionBackground": "#2E3250",
141
+ "peekViewResult.selectionForeground": "#5f7e97",
142
+ "peekViewTitle.background": "#101218",
143
+ "peekViewTitleDescription.foreground": "#697098",
144
+ "peekViewTitleLabel.foreground": "#5f7e97",
145
+ "merge.currentHeaderBackground": "#5f7e97",
146
+ "merge.currentContentBackground": null,
147
+ "merge.incomingHeaderBackground": "#7e57c25a",
148
+ "merge.incomingContentBackground": null,
149
+ "merge.border": null,
150
+ "panel.background": "#101218",
151
+ "panel.border": "#5f7e97",
152
+ "panelTitle.activeBorder": "#5f7e97",
153
+ "panelTitle.activeForeground": "#ffffffcc",
154
+ "panelTitle.inactiveForeground": "#d6deeb80",
155
+ "statusBar.background": "#101218",
156
+ "statusBar.foreground": "#5f7e97",
157
+ "statusBar.border": "#262A39",
158
+ "statusBar.debuggingBackground": "#202431",
159
+ "statusBar.debuggingForeground": null,
160
+ "statusBar.debuggingBorder": "#1F2330",
161
+ "statusBar.noFolderForeground": null,
162
+ "statusBar.noFolderBackground": "#101218",
163
+ "statusBar.noFolderBorder": "#25293A",
164
+ "statusBarItem.activeBackground": "#202431",
165
+ "statusBarItem.hoverBackground": "#202431",
166
+ "statusBarItem.prominentBackground": "#202431",
167
+ "statusBarItem.prominentHoverBackground": "#202431",
168
+ "titleBar.activeBackground": "#101218",
169
+ "titleBar.activeForeground": "#eeefff",
170
+ "titleBar.inactiveBackground": "#010e1a",
171
+ "titleBar.inactiveForeground": null,
172
+ "notifications.background": "#01111d",
173
+ "notifications.border": "#262a39",
174
+ "notificationCenter.border": "#262a39",
175
+ "notificationToast.border": "#262a39",
176
+ "notifications.foreground": "#ffffffcc",
177
+ "notificationLink.foreground": "#80CBC4",
178
+ "extensionButton.prominentForeground": "#ffffffcc",
179
+ "extensionButton.prominentBackground": "#7e57c2cc",
180
+ "extensionButton.prominentHoverBackground": "#7e57c2",
181
+ "pickerGroup.foreground": "#d1aaff",
182
+ "pickerGroup.border": "#101218",
183
+ "terminal.ansiWhite": "#ffffff",
184
+ "terminal.ansiBlack": "#101218",
185
+ "terminal.ansiBlue": "#82AAFF",
186
+ "terminal.ansiCyan": "#21c7a8",
187
+ "terminal.ansiGreen": "#22da6e",
188
+ "terminal.ansiMagenta": "#A492EA",
189
+ "terminal.ansiRed": "#EF5350",
190
+ "terminal.ansiYellow": "#c5e478",
191
+ "terminal.ansiBrightWhite": "#ffffff",
192
+ "terminal.ansiBrightBlack": "#575656",
193
+ "terminal.ansiBrightBlue": "#82AAFF",
194
+ "terminal.ansiBrightCyan": "#7fdbca",
195
+ "terminal.ansiBrightGreen": "#22da6e",
196
+ "terminal.ansiBrightMagenta": "#A492EA",
197
+ "terminal.ansiBrightRed": "#EF5350",
198
+ "terminal.ansiBrightYellow": "#ffeb95",
199
+ "terminal.selectionBackground": "#1b90dd4d",
200
+ "terminalCursor.background": "#234d70",
201
+ "textCodeBlock.background": "#4f4f4f",
202
+ "debugToolBar.background": "#101218",
203
+ "welcomePage.buttonBackground": "#101218",
204
+ "welcomePage.buttonHoverBackground": "#101218",
205
+ "walkThrough.embeddedEditorBackground": "#101218",
206
+ "gitDecoration.modifiedResourceForeground": "#a2bffc",
207
+ "gitDecoration.deletedResourceForeground": "#EF535090",
208
+ "gitDecoration.untrackedResourceForeground": "#c5e478ff",
209
+ "gitDecoration.ignoredResourceForeground": "#395a75",
210
+ "gitDecoration.conflictingResourceForeground": "#ffeb95cc",
211
+ "source.elm": "#5f7e97",
212
+ "string.quoted.single.js": "#ffffff",
213
+ "meta.objectliteral.js": "#82AAFF"
214
+ },
215
+ "tokenColors": [
216
+ {
217
+ "name": "Changed",
218
+ "scope": [
219
+ "markup.changed",
220
+ "meta.diff.header.git",
221
+ "meta.diff.header.from-file",
222
+ "meta.diff.header.to-file"
223
+ ],
224
+ "settings": {
225
+ "foreground": "#a2bffc",
226
+ "fontStyle": "italic"
227
+ }
228
+ },
229
+ {
230
+ "name": "Deleted",
231
+ "scope": "markup.deleted.diff",
232
+ "settings": {
233
+ "foreground": "#EF535090",
234
+ "fontStyle": "italic"
235
+ }
236
+ },
237
+ {
238
+ "name": "Inserted",
239
+ "scope": "markup.inserted.diff",
240
+ "settings": {
241
+ "foreground": "#c5e478ff",
242
+ "fontStyle": "italic"
243
+ }
244
+ },
245
+ {
246
+ "name": "Global settings",
247
+ "settings": {
248
+ "background": "#101218",
249
+ "foreground": "#d6deeb"
250
+ }
251
+ },
252
+ {
253
+ "name": "Comment",
254
+ "scope": "comment",
255
+ "settings": {
256
+ "foreground": "#637777",
257
+ "fontStyle": "italic"
258
+ }
259
+ },
260
+ {
261
+ "name": "String",
262
+ "scope": "string",
263
+ "settings": {
264
+ "foreground": "#ecc48d"
265
+ }
266
+ },
267
+ {
268
+ "name": "String Quoted",
269
+ "scope": ["string.quoted", "variable.other.readwrite.js"],
270
+ "settings": {
271
+ "foreground": "#ecc48d"
272
+ }
273
+ },
274
+ {
275
+ "name": "Support Constant Math",
276
+ "scope": "support.constant.math",
277
+ "settings": {
278
+ "foreground": "#c5e478"
279
+ }
280
+ },
281
+ {
282
+ "name": "Number",
283
+ "scope": ["constant.numeric", "constant.character.numeric"],
284
+ "settings": {
285
+ "foreground": "#F78C6C",
286
+ "fontStyle": ""
287
+ }
288
+ },
289
+ {
290
+ "name": "Built-in constant",
291
+ "scope": [
292
+ "constant.language",
293
+ "punctuation.definition.constant",
294
+ "variable.other.constant"
295
+ ],
296
+ "settings": {
297
+ "foreground": "#82AAFF"
298
+ }
299
+ },
300
+ {
301
+ "name": "User-defined constant",
302
+ "scope": ["constant.character", "constant.other"],
303
+ "settings": {
304
+ "foreground": "#82AAFF"
305
+ }
306
+ },
307
+ {
308
+ "name": "Constant Character Escape",
309
+ "scope": "constant.character.escape",
310
+ "settings": {
311
+ "foreground": "#F78C6C"
312
+ }
313
+ },
314
+ {
315
+ "name": "RegExp String",
316
+ "scope": ["string.regexp", "string.regexp keyword.other"],
317
+ "settings": {
318
+ "foreground": "#5ca7e4"
319
+ }
320
+ },
321
+ {
322
+ "name": "Comma in functions",
323
+ "scope": "meta.function punctuation.separator.comma",
324
+ "settings": {
325
+ "foreground": "#5f7e97"
326
+ }
327
+ },
328
+ {
329
+ "name": "Variable",
330
+ "scope": "variable",
331
+ "settings": {
332
+ "foreground": "#c5e478"
333
+ }
334
+ },
335
+ {
336
+ "name": "Keyword",
337
+ "scope": ["punctuation.accessor", "keyword"],
338
+ "settings": {
339
+ "foreground": "#a492ea",
340
+ "fontStyle": "italic"
341
+ }
342
+ },
343
+ {
344
+ "name": "Storage",
345
+ "scope": [
346
+ "storage",
347
+ "meta.var.expr",
348
+ "meta.class meta.method.declaration meta.var.expr storage.type.js",
349
+ "storage.type.property.js",
350
+ "storage.type.property.ts",
351
+ "storage.type.property.tsx"
352
+ ],
353
+ "settings": {
354
+ "foreground": "#a492ea",
355
+ "fontStyle": "italic"
356
+ }
357
+ },
358
+ {
359
+ "name": "Storage type",
360
+ "scope": "storage.type",
361
+ "settings": {
362
+ "foreground": "#a492ea"
363
+ }
364
+ },
365
+ {
366
+ "name": "Storage type",
367
+ "scope": "storage.type.function.arrow.js",
368
+ "settings": {
369
+ "fontStyle": ""
370
+ }
371
+ },
372
+ {
373
+ "name": "Class name",
374
+ "scope": ["entity.name.class", "meta.class entity.name.type.class"],
375
+ "settings": {
376
+ "foreground": "#ffcb8b"
377
+ }
378
+ },
379
+ {
380
+ "name": "Inherited class",
381
+ "scope": "entity.other.inherited-class",
382
+ "settings": {
383
+ "foreground": "#c5e478"
384
+ }
385
+ },
386
+ {
387
+ "name": "Function name",
388
+ "scope": "entity.name.function",
389
+ "settings": {
390
+ "foreground": "#a492ea",
391
+ "fontStyle": "italic"
392
+ }
393
+ },
394
+ {
395
+ "name": "Meta Tag",
396
+ "scope": ["punctuation.definition.tag", "meta.tag"],
397
+ "settings": {
398
+ "foreground": "#7fdbca"
399
+ }
400
+ },
401
+ {
402
+ "name": "HTML Tag names",
403
+ "scope": [
404
+ "entity.name.tag",
405
+ "meta.tag.other.html",
406
+ "meta.tag.other.js",
407
+ "meta.tag.other.tsx",
408
+ "entity.name.tag.tsx",
409
+ "entity.name.tag.js",
410
+ "entity.name.tag",
411
+ "meta.tag.js",
412
+ "meta.tag.tsx",
413
+ "meta.tag.html"
414
+ ],
415
+ "settings": {
416
+ "foreground": "#caece6",
417
+ "fontStyle": ""
418
+ }
419
+ },
420
+ {
421
+ "name": "Tag attribute",
422
+ "scope": "entity.other.attribute-name",
423
+ "settings": {
424
+ "fontStyle": "italic",
425
+ "foreground": "#c5e478"
426
+ }
427
+ },
428
+ {
429
+ "name": "Entity Name Tag Custom",
430
+ "scope": "entity.name.tag.custom",
431
+ "settings": {
432
+ "foreground": "#f78c6c"
433
+ }
434
+ },
435
+ {
436
+ "name": "Library (function & constant)",
437
+ "scope": ["support.function", "support.constant"],
438
+ "settings": {
439
+ "foreground": "#82AAFF"
440
+ }
441
+ },
442
+ {
443
+ "name": "Support Constant Property Value meta",
444
+ "scope": "support.constant.meta.property-value",
445
+ "settings": {
446
+ "foreground": "#7fdbca"
447
+ }
448
+ },
449
+ {
450
+ "name": "Library class/type",
451
+ "scope": ["support.type", "support.class"],
452
+ "settings": {
453
+ "foreground": "#c5e478"
454
+ }
455
+ },
456
+ {
457
+ "name": "Support Variable DOM",
458
+ "scope": "support.variable.dom",
459
+ "settings": {
460
+ "foreground": "#c5e478"
461
+ }
462
+ },
463
+ {
464
+ "name": "Invalid",
465
+ "scope": "invalid",
466
+ "settings": {
467
+ "background": "#ff2c83",
468
+ "foreground": "#ffffff"
469
+ }
470
+ },
471
+ {
472
+ "name": "Invalid deprecated",
473
+ "scope": "invalid.deprecated",
474
+ "settings": {
475
+ "foreground": "#ffffff",
476
+ "background": "#d3423e"
477
+ }
478
+ },
479
+ {
480
+ "name": "Keyword Operator",
481
+ "scope": "keyword.operator",
482
+ "settings": {
483
+ "foreground": "#7fdbca",
484
+ "fontStyle": ""
485
+ }
486
+ },
487
+ {
488
+ "name": "Keyword Operator Relational",
489
+ "scope": "keyword.operator.relational",
490
+ "settings": {
491
+ "foreground": "#a492ea",
492
+ "fontStyle": "italic"
493
+ }
494
+ },
495
+ {
496
+ "name": "Keyword Operator Assignment",
497
+ "scope": "keyword.operator.assignment",
498
+ "settings": {
499
+ "foreground": "#a492ea"
500
+ }
501
+ },
502
+ {
503
+ "name": "Keyword Operator Arithmetic",
504
+ "scope": "keyword.operator.arithmetic",
505
+ "settings": {
506
+ "foreground": "#a492ea"
507
+ }
508
+ },
509
+ {
510
+ "name": "Keyword Operator Bitwise",
511
+ "scope": "keyword.operator.bitwise",
512
+ "settings": {
513
+ "foreground": "#a492ea"
514
+ }
515
+ },
516
+ {
517
+ "name": "Keyword Operator Increment",
518
+ "scope": "keyword.operator.increment",
519
+ "settings": {
520
+ "foreground": "#a492ea"
521
+ }
522
+ },
523
+ {
524
+ "name": "Keyword Operator Ternary",
525
+ "scope": "keyword.operator.ternary",
526
+ "settings": {
527
+ "foreground": "#a492ea"
528
+ }
529
+ },
530
+ {
531
+ "name": "Double-Slashed Comment",
532
+ "scope": "comment.line.double-slash",
533
+ "settings": {
534
+ "foreground": "#637777"
535
+ }
536
+ },
537
+ {
538
+ "name": "Object",
539
+ "scope": "object",
540
+ "settings": {
541
+ "foreground": "#cdebf7"
542
+ }
543
+ },
544
+ {
545
+ "name": "Null",
546
+ "scope": "constant.language.null",
547
+ "settings": {
548
+ "foreground": "#ff5874"
549
+ }
550
+ },
551
+ {
552
+ "name": "Meta Brace",
553
+ "scope": "meta.brace",
554
+ "settings": {
555
+ "foreground": "#d6deeb"
556
+ }
557
+ },
558
+ {
559
+ "name": "Meta Delimiter Period",
560
+ "scope": "meta.delimiter.period",
561
+ "settings": {
562
+ "foreground": "#a492ea",
563
+ "fontStyle": "italic"
564
+ }
565
+ },
566
+ {
567
+ "name": "Punctuation Definition String",
568
+ "scope": "punctuation.definition.string",
569
+ "settings": {
570
+ "foreground": "#d9f5dd"
571
+ }
572
+ },
573
+ {
574
+ "name": "Punctuation Definition String Markdown",
575
+ "scope": "punctuation.definition.string.begin.markdown",
576
+ "settings": {
577
+ "foreground": "#ff5874"
578
+ }
579
+ },
580
+ {
581
+ "name": "Boolean",
582
+ "scope": "constant.language.boolean",
583
+ "settings": {
584
+ "foreground": "#ff5874"
585
+ }
586
+ },
587
+ {
588
+ "name": "Object Comma",
589
+ "scope": "object.comma",
590
+ "settings": {
591
+ "foreground": "#ffffff"
592
+ }
593
+ },
594
+ {
595
+ "name": "Variable Parameter Function",
596
+ "scope": "variable.parameter.function",
597
+ "settings": {
598
+ "foreground": "#7fdbca",
599
+ "fontStyle": ""
600
+ }
601
+ },
602
+ {
603
+ "name": "Support Type Property Name & entity name tags",
604
+ "scope": [
605
+ "support.type.vendor.property-name",
606
+ "support.constant.vendor.property-value",
607
+ "support.type.property-name",
608
+ "meta.property-list entity.name.tag"
609
+ ],
610
+ "settings": {
611
+ "foreground": "#80CBC4",
612
+ "fontStyle": ""
613
+ }
614
+ },
615
+ {
616
+ "name": "Entity Name tag reference in stylesheets",
617
+ "scope": "meta.property-list entity.name.tag.reference",
618
+ "settings": {
619
+ "foreground": "#57eaf1"
620
+ }
621
+ },
622
+ {
623
+ "name": "Constant Other Color RGB Value Punctuation Definition Constant",
624
+ "scope": "constant.other.color.rgb-value punctuation.definition.constant",
625
+ "settings": {
626
+ "foreground": "#F78C6C"
627
+ }
628
+ },
629
+ {
630
+ "name": "Constant Other Color",
631
+ "scope": "constant.other.color",
632
+ "settings": {
633
+ "foreground": "#FFEB95"
634
+ }
635
+ },
636
+ {
637
+ "name": "Keyword Other Unit",
638
+ "scope": "keyword.other.unit",
639
+ "settings": {
640
+ "foreground": "#FFEB95"
641
+ }
642
+ },
643
+ {
644
+ "name": "Meta Selector",
645
+ "scope": "meta.selector",
646
+ "settings": {
647
+ "foreground": "#a492ea",
648
+ "fontStyle": "italic"
649
+ }
650
+ },
651
+ {
652
+ "name": "Entity Other Attribute Name Id",
653
+ "scope": "entity.other.attribute-name.id",
654
+ "settings": {
655
+ "foreground": "#FAD430"
656
+ }
657
+ },
658
+ {
659
+ "name": "Meta Property Name",
660
+ "scope": "meta.property-name",
661
+ "settings": {
662
+ "foreground": "#80CBC4"
663
+ }
664
+ },
665
+ {
666
+ "name": "Doctypes",
667
+ "scope": ["entity.name.tag.doctype", "meta.tag.sgml.doctype"],
668
+ "settings": {
669
+ "foreground": "#a492ea",
670
+ "fontStyle": "italic"
671
+ }
672
+ },
673
+ {
674
+ "name": "Punctuation Definition Parameters",
675
+ "scope": "punctuation.definition.parameters",
676
+ "settings": {
677
+ "foreground": "#d9f5dd"
678
+ }
679
+ },
680
+ {
681
+ "name": "Keyword Control Operator",
682
+ "scope": "keyword.control.operator",
683
+ "settings": {
684
+ "foreground": "#7fdbca"
685
+ }
686
+ },
687
+ {
688
+ "name": "Keyword Operator Logical",
689
+ "scope": "keyword.operator.logical",
690
+ "settings": {
691
+ "foreground": "#a492ea",
692
+ "fontStyle": ""
693
+ }
694
+ },
695
+ {
696
+ "name": "Variable Instances",
697
+ "scope": [
698
+ "variable.instance",
699
+ "variable.other.instance",
700
+ "variable.readwrite.instance",
701
+ "variable.other.readwrite.instance",
702
+ "variable.other.property"
703
+ ],
704
+ "settings": {
705
+ "foreground": "#baebe2"
706
+ }
707
+ },
708
+ {
709
+ "name": "Variable Property Other object property",
710
+ "scope": ["variable.other.object.property"],
711
+ "settings": {
712
+ "foreground": "#faf39f",
713
+ "fontStyle": "italic"
714
+ }
715
+ },
716
+ {
717
+ "name": "Variable Property Other object",
718
+ "scope": ["variable.other.object.js"],
719
+ "settings": {
720
+ "fontStyle": ""
721
+ }
722
+ },
723
+ {
724
+ "name": "Entity Name Function",
725
+ "scope": ["entity.name.function"],
726
+ "settings": {
727
+ "foreground": "#82AAFF",
728
+ "fontStyle": "italic"
729
+ }
730
+ },
731
+ {
732
+ "name": "Keyword Operator Comparison, imports, returns and Keyword Operator Ruby",
733
+ "scope": [
734
+ "keyword.operator.comparison",
735
+ "keyword.control.flow.js",
736
+ "keyword.control.flow.ts",
737
+ "keyword.control.flow.tsx",
738
+ "keyword.control.ruby",
739
+ "keyword.control.module.ruby",
740
+ "keyword.control.class.ruby",
741
+ "keyword.control.def.ruby",
742
+ "keyword.control.loop.js",
743
+ "keyword.control.loop.ts",
744
+ "keyword.control.import.js",
745
+ "keyword.control.import.ts",
746
+ "keyword.control.import.tsx",
747
+ "keyword.control.from.js",
748
+ "keyword.control.from.ts",
749
+ "keyword.control.from.tsx",
750
+ "keyword.operator.instanceof.js",
751
+ "keyword.operator.expression.instanceof.ts",
752
+ "keyword.operator.expression.instanceof.tsx"
753
+ ],
754
+ "settings": {
755
+ "foreground": "#a492ea",
756
+ "fontStyle": "italic"
757
+ }
758
+ },
759
+ {
760
+ "name": "Keyword Control Conditional",
761
+ "scope": [
762
+ "keyword.control.conditional.js",
763
+ "keyword.control.conditional.ts",
764
+ "keyword.control.switch.js",
765
+ "keyword.control.switch.ts"
766
+ ],
767
+ "settings": {
768
+ "foreground": "#a492ea",
769
+ "fontStyle": ""
770
+ }
771
+ },
772
+ {
773
+ "name": "Support Constant, `new` keyword, Special Method Keyword, `debugger`, other keywords",
774
+ "scope": [
775
+ "support.constant",
776
+ "keyword.other.special-method",
777
+ "keyword.other.new",
778
+ "keyword.other.debugger",
779
+ "keyword.control"
780
+ ],
781
+ "settings": {
782
+ "foreground": "#7fdbca"
783
+ }
784
+ },
785
+ {
786
+ "name": "Support Function",
787
+ "scope": "support.function",
788
+ "settings": {
789
+ "foreground": "#c5e478"
790
+ }
791
+ },
792
+ {
793
+ "name": "Invalid Broken",
794
+ "scope": "invalid.broken",
795
+ "settings": {
796
+ "foreground": "#020e14",
797
+ "background": "#F78C6C"
798
+ }
799
+ },
800
+ {
801
+ "name": "Invalid Unimplemented",
802
+ "scope": "invalid.unimplemented",
803
+ "settings": {
804
+ "background": "#8BD649",
805
+ "foreground": "#ffffff"
806
+ }
807
+ },
808
+ {
809
+ "name": "Invalid Illegal",
810
+ "scope": "invalid.illegal",
811
+ "settings": {
812
+ "foreground": "#ffffff",
813
+ "background": "#ec5f67"
814
+ }
815
+ },
816
+ {
817
+ "name": "Language Variable",
818
+ "scope": "variable.language",
819
+ "settings": {
820
+ "foreground": "#7fdbca"
821
+ }
822
+ },
823
+ {
824
+ "name": "Support Variable Property",
825
+ "scope": "support.variable.property",
826
+ "settings": {
827
+ "foreground": "#7fdbca"
828
+ }
829
+ },
830
+ {
831
+ "name": "Variable Function",
832
+ "scope": "variable.function",
833
+ "settings": {
834
+ "foreground": "#82AAFF"
835
+ }
836
+ },
837
+ {
838
+ "name": "Variable Interpolation",
839
+ "scope": "variable.interpolation",
840
+ "settings": {
841
+ "foreground": "#ec5f67"
842
+ }
843
+ },
844
+ {
845
+ "name": "Meta Function Call",
846
+ "scope": "meta.function-call",
847
+ "settings": {
848
+ "foreground": "#82AAFF"
849
+ }
850
+ },
851
+ {
852
+ "name": "Punctuation Section Embedded",
853
+ "scope": "punctuation.section.embedded",
854
+ "settings": {
855
+ "foreground": "#d3423e"
856
+ }
857
+ },
858
+ {
859
+ "name": "Punctuation Tweaks",
860
+ "scope": [
861
+ "punctuation.terminator.expression",
862
+ "punctuation.definition.arguments",
863
+ "punctuation.definition.array",
864
+ "punctuation.section.array",
865
+ "meta.array"
866
+ ],
867
+ "settings": {
868
+ "foreground": "#d6deeb"
869
+ }
870
+ },
871
+ {
872
+ "name": "More Punctuation Tweaks",
873
+ "scope": [
874
+ "punctuation.definition.list.begin",
875
+ "punctuation.definition.list.end",
876
+ "punctuation.separator.arguments",
877
+ "punctuation.definition.list"
878
+ ],
879
+ "settings": {
880
+ "foreground": "#d9f5dd"
881
+ }
882
+ },
883
+ {
884
+ "name": "Template Strings",
885
+ "scope": "string.template meta.template.expression",
886
+ "settings": {
887
+ "foreground": "#d3423e"
888
+ }
889
+ },
890
+ {
891
+ "name": "Backtics(``) in Template Strings",
892
+ "scope": "string.template punctuation.definition.string",
893
+ "settings": {
894
+ "foreground": "#d6deeb"
895
+ }
896
+ },
897
+ {
898
+ "name": "Italics",
899
+ "scope": "italic",
900
+ "settings": {
901
+ "foreground": "#a492ea",
902
+ "fontStyle": "italic"
903
+ }
904
+ },
905
+ {
906
+ "name": "Bold",
907
+ "scope": "bold",
908
+ "settings": {
909
+ "foreground": "#c5e478",
910
+ "fontStyle": "bold"
911
+ }
912
+ },
913
+ {
914
+ "name": "Quote",
915
+ "scope": "quote",
916
+ "settings": {
917
+ "foreground": "#697098",
918
+ "fontStyle": "italic"
919
+ }
920
+ },
921
+ {
922
+ "name": "Raw Code",
923
+ "scope": "raw",
924
+ "settings": {
925
+ "foreground": "#80CBC4"
926
+ }
927
+ },
928
+ {
929
+ "name": "CoffeScript Variable Assignment",
930
+ "scope": "variable.assignment.coffee",
931
+ "settings": {
932
+ "foreground": "#31e1eb"
933
+ }
934
+ },
935
+ {
936
+ "name": "CoffeScript Parameter Function",
937
+ "scope": "variable.parameter.function.coffee",
938
+ "settings": {
939
+ "foreground": "#d6deeb"
940
+ }
941
+ },
942
+ {
943
+ "name": "CoffeeScript Assignments",
944
+ "scope": "variable.assignment.coffee",
945
+ "settings": {
946
+ "foreground": "#7fdbca"
947
+ }
948
+ },
949
+ {
950
+ "name": "C# Readwrite Variables",
951
+ "scope": "variable.other.readwrite.cs",
952
+ "settings": {
953
+ "foreground": "#d6deeb"
954
+ }
955
+ },
956
+ {
957
+ "name": "C# Classes & Storage types",
958
+ "scope": ["entity.name.type.class.cs", "storage.type.cs"],
959
+ "settings": {
960
+ "foreground": "#ffcb8b"
961
+ }
962
+ },
963
+ {
964
+ "name": "C# Namespaces",
965
+ "scope": "entity.name.type.namespace.cs",
966
+ "settings": {
967
+ "foreground": "#B2CCD6"
968
+ }
969
+ },
970
+ {
971
+ "name": "C# Unquoted String Zone",
972
+ "scope": "string.unquoted.preprocessor.message.cs",
973
+ "settings": {
974
+ "foreground": "#d6deeb"
975
+ }
976
+ },
977
+ {
978
+ "name": "C# Region",
979
+ "scope": [
980
+ "punctuation.separator.hash.cs",
981
+ "keyword.preprocessor.region.cs",
982
+ "keyword.preprocessor.endregion.cs"
983
+ ],
984
+ "settings": {
985
+ "foreground": "#ffcb8b",
986
+ "fontStyle": "bold"
987
+ }
988
+ },
989
+ {
990
+ "name": "C# Other Variables",
991
+ "scope": "variable.other.object.cs",
992
+ "settings": {
993
+ "foreground": "#B2CCD6"
994
+ }
995
+ },
996
+ {
997
+ "name": "C# Enum",
998
+ "scope": "entity.name.type.enum.cs",
999
+ "settings": {
1000
+ "foreground": "#c5e478"
1001
+ }
1002
+ },
1003
+ {
1004
+ "name": "Dart String",
1005
+ "scope": [
1006
+ "string.interpolated.single.dart",
1007
+ "string.interpolated.double.dart"
1008
+ ],
1009
+ "settings": {
1010
+ "foreground": "#FFCB8B"
1011
+ }
1012
+ },
1013
+ {
1014
+ "name": "Dart Class",
1015
+ "scope": "support.class.dart",
1016
+ "settings": {
1017
+ "foreground": "#FFCB8B"
1018
+ }
1019
+ },
1020
+ {
1021
+ "name": "Tag names in Stylesheets",
1022
+ "scope": [
1023
+ "entity.name.tag.css",
1024
+ "entity.name.tag.less",
1025
+ "entity.name.tag.custom.css",
1026
+ "support.constant.property-value.css"
1027
+ ],
1028
+ "settings": {
1029
+ "foreground": "#ff6363",
1030
+ "fontStyle": ""
1031
+ }
1032
+ },
1033
+ {
1034
+ "name": "Wildcard(*) selector in Stylesheets",
1035
+ "scope": [
1036
+ "entity.name.tag.wildcard.css",
1037
+ "entity.name.tag.wildcard.less",
1038
+ "entity.name.tag.wildcard.scss",
1039
+ "entity.name.tag.wildcard.sass"
1040
+ ],
1041
+ "settings": {
1042
+ "foreground": "#7fdbca"
1043
+ }
1044
+ },
1045
+ {
1046
+ "name": "CSS Keyword Other Unit",
1047
+ "scope": "keyword.other.unit.css",
1048
+ "settings": {
1049
+ "foreground": "#FFEB95"
1050
+ }
1051
+ },
1052
+ {
1053
+ "name": "Attribute Name for CSS",
1054
+ "scope": [
1055
+ "meta.attribute-selector.css entity.other.attribute-name.attribute",
1056
+ "variable.other.readwrite.js"
1057
+ ],
1058
+ "settings": {
1059
+ "foreground": "#F78C6C"
1060
+ }
1061
+ },
1062
+ {
1063
+ "name": "Elixir Classes",
1064
+ "scope": [
1065
+ "source.elixir support.type.elixir",
1066
+ "source.elixir meta.module.elixir entity.name.class.elixir"
1067
+ ],
1068
+ "settings": {
1069
+ "foreground": "#82AAFF"
1070
+ }
1071
+ },
1072
+ {
1073
+ "name": "Elixir Functions",
1074
+ "scope": "source.elixir entity.name.function",
1075
+ "settings": {
1076
+ "foreground": "#c5e478"
1077
+ }
1078
+ },
1079
+ {
1080
+ "name": "Elixir Constants",
1081
+ "scope": [
1082
+ "source.elixir constant.other.symbol.elixir",
1083
+ "source.elixir constant.other.keywords.elixir"
1084
+ ],
1085
+ "settings": {
1086
+ "foreground": "#82AAFF"
1087
+ }
1088
+ },
1089
+ {
1090
+ "name": "Elixir String Punctuations",
1091
+ "scope": "source.elixir punctuation.definition.string",
1092
+ "settings": {
1093
+ "foreground": "#c5e478"
1094
+ }
1095
+ },
1096
+ {
1097
+ "name": "Elixir",
1098
+ "scope": [
1099
+ "source.elixir variable.other.readwrite.module.elixir",
1100
+ "source.elixir variable.other.readwrite.module.elixir punctuation.definition.variable.elixir"
1101
+ ],
1102
+ "settings": {
1103
+ "foreground": "#c5e478"
1104
+ }
1105
+ },
1106
+ {
1107
+ "name": "Elixir Binary Punctuations",
1108
+ "scope": "source.elixir .punctuation.binary.elixir",
1109
+ "settings": {
1110
+ "foreground": "#a492ea",
1111
+ "fontStyle": "italic"
1112
+ }
1113
+ },
1114
+ {
1115
+ "name": "Closure Constant Keyword",
1116
+ "scope": "constant.keyword.clojure",
1117
+ "settings": {
1118
+ "foreground": "#7fdbca"
1119
+ }
1120
+ },
1121
+ {
1122
+ "name": "Go Function Calls",
1123
+ "scope": "source.go meta.function-call.go",
1124
+ "settings": {
1125
+ "foreground": "#DDDDDD"
1126
+ }
1127
+ },
1128
+ {
1129
+ "name": "Go Keywords",
1130
+ "scope": [
1131
+ "source.go keyword.package.go",
1132
+ "source.go keyword.import.go",
1133
+ "source.go keyword.function.go",
1134
+ "source.go keyword.type.go",
1135
+ "source.go keyword.struct.go",
1136
+ "source.go keyword.interface.go",
1137
+ "source.go keyword.const.go",
1138
+ "source.go keyword.var.go",
1139
+ "source.go keyword.map.go",
1140
+ "source.go keyword.channel.go",
1141
+ "source.go keyword.control.go"
1142
+ ],
1143
+ "settings": {
1144
+ "foreground": "#a492ea",
1145
+ "fontStyle": "italic"
1146
+ }
1147
+ },
1148
+ {
1149
+ "name": "Go Constants e.g. nil, string format (%s, %d, etc.)",
1150
+ "scope": [
1151
+ "source.go constant.language.go",
1152
+ "source.go constant.other.placeholder.go"
1153
+ ],
1154
+ "settings": {
1155
+ "foreground": "#ff5874"
1156
+ }
1157
+ },
1158
+ {
1159
+ "name": "C++ Functions",
1160
+ "scope": [
1161
+ "entity.name.function.preprocessor.cpp",
1162
+ "entity.scope.name.cpp"
1163
+ ],
1164
+ "settings": {
1165
+ "foreground": "#7fdbcaff"
1166
+ }
1167
+ },
1168
+ {
1169
+ "name": "C++ Meta Namespace",
1170
+ "scope": ["meta.namespace-block.cpp"],
1171
+ "settings": {
1172
+ "foreground": "#e0dec6"
1173
+ }
1174
+ },
1175
+ {
1176
+ "name": "C++ Language Primitive Storage",
1177
+ "scope": ["storage.type.language.primitive.cpp"],
1178
+ "settings": {
1179
+ "foreground": "#ff5874"
1180
+ }
1181
+ },
1182
+ {
1183
+ "name": "C++ Preprocessor Macro",
1184
+ "scope": ["meta.preprocessor.macro.cpp"],
1185
+ "settings": {
1186
+ "foreground": "#d6deeb"
1187
+ }
1188
+ },
1189
+ {
1190
+ "name": "C++ Variable Parameter",
1191
+ "scope": ["variable.parameter"],
1192
+ "settings": {
1193
+ "foreground": "#ffcb8b"
1194
+ }
1195
+ },
1196
+ {
1197
+ "name": "Powershell Variables",
1198
+ "scope": ["variable.other.readwrite.powershell"],
1199
+ "settings": {
1200
+ "foreground": "#82AAFF"
1201
+ }
1202
+ },
1203
+ {
1204
+ "name": "Powershell Function",
1205
+ "scope": ["support.function.powershell"],
1206
+ "settings": {
1207
+ "foreground": "#7fdbcaff"
1208
+ }
1209
+ },
1210
+ {
1211
+ "name": "ID Attribute Name in HTML",
1212
+ "scope": "entity.other.attribute-name.id.html",
1213
+ "settings": {
1214
+ "foreground": "#c5e478"
1215
+ }
1216
+ },
1217
+ {
1218
+ "name": "HTML Punctuation Definition Tag",
1219
+ "scope": "punctuation.definition.tag.html",
1220
+ "settings": {
1221
+ "foreground": "#6ae9f0"
1222
+ }
1223
+ },
1224
+ {
1225
+ "name": "HTML Doctype",
1226
+ "scope": "meta.tag.sgml.doctype.html",
1227
+ "settings": {
1228
+ "foreground": "#a492ea",
1229
+ "fontStyle": "italic"
1230
+ }
1231
+ },
1232
+ {
1233
+ "name": "JavaScript Classes",
1234
+ "scope": "meta.class entity.name.type.class.js",
1235
+ "settings": {
1236
+ "foreground": "#ffcb8b"
1237
+ }
1238
+ },
1239
+ {
1240
+ "name": "JavaScript Method Declaration e.g. `constructor`",
1241
+ "scope": "meta.method.declaration storage.type.js",
1242
+ "settings": {
1243
+ "foreground": "#82AAFF"
1244
+ }
1245
+ },
1246
+ {
1247
+ "name": "JavaScript Terminator",
1248
+ "scope": "terminator.js",
1249
+ "settings": {
1250
+ "foreground": "#d6deeb"
1251
+ }
1252
+ },
1253
+ {
1254
+ "name": "JavaScript Meta Punctuation Definition",
1255
+ "scope": "meta.js punctuation.definition.js",
1256
+ "settings": {
1257
+ "foreground": "#d6deeb"
1258
+ }
1259
+ },
1260
+ {
1261
+ "name": "Entity Names in Code Documentations",
1262
+ "scope": [
1263
+ "entity.name.type.instance.jsdoc",
1264
+ "entity.name.type.instance.phpdoc"
1265
+ ],
1266
+ "settings": {
1267
+ "foreground": "#5f7e97"
1268
+ }
1269
+ },
1270
+ {
1271
+ "name": "Other Variables in Code Documentations",
1272
+ "scope": ["variable.other.jsdoc", "variable.other.phpdoc"],
1273
+ "settings": {
1274
+ "foreground": "#78ccf0"
1275
+ }
1276
+ },
1277
+ {
1278
+ "name": "JavaScript module imports and exports",
1279
+ "scope": [
1280
+ "variable.other.meta.import.js",
1281
+ "meta.import.js variable.other",
1282
+ "variable.other.meta.export.js",
1283
+ "meta.export.js variable.other"
1284
+ ],
1285
+ "settings": {
1286
+ "foreground": "#d6deeb"
1287
+ }
1288
+ },
1289
+ {
1290
+ "name": "JavaScript Variable Parameter Function",
1291
+ "scope": "variable.parameter.function.js",
1292
+ "settings": {
1293
+ "foreground": "#7986E7"
1294
+ }
1295
+ },
1296
+ {
1297
+ "name": "JavaScript[React] Variable Other Object",
1298
+ "scope": [
1299
+ "variable.other.object.js",
1300
+ "variable.other.object.jsx",
1301
+ "variable.object.property.js",
1302
+ "variable.object.property.jsx"
1303
+ ],
1304
+ "settings": {
1305
+ "foreground": "#d6deeb"
1306
+ }
1307
+ },
1308
+ {
1309
+ "name": "JavaScript Variables",
1310
+ "scope": ["variable.js", "variable.other.js"],
1311
+ "settings": {
1312
+ "foreground": "#d6deeb"
1313
+ }
1314
+ },
1315
+ {
1316
+ "name": "JavaScript Entity Name Type",
1317
+ "scope": ["entity.name.type.js", "entity.name.type.module.js"],
1318
+ "settings": {
1319
+ "foreground": "#ffcb8b",
1320
+ "fontStyle": ""
1321
+ }
1322
+ },
1323
+ {
1324
+ "name": "JavaScript Support Classes",
1325
+ "scope": "support.class.js",
1326
+ "settings": {
1327
+ "foreground": "#d6deeb"
1328
+ }
1329
+ },
1330
+ {
1331
+ "name": "JSON Property Names",
1332
+ "scope": "support.type.property-name.json",
1333
+ "settings": {
1334
+ "foreground": "#7fdbca"
1335
+ }
1336
+ },
1337
+ {
1338
+ "name": "JSON Support Constants",
1339
+ "scope": "support.constant.json",
1340
+ "settings": {
1341
+ "foreground": "#c5e478"
1342
+ }
1343
+ },
1344
+ {
1345
+ "name": "JSON Property values (string)",
1346
+ "scope": "meta.structure.dictionary.value.json string.quoted.double",
1347
+ "settings": {
1348
+ "foreground": "#c789d6"
1349
+ }
1350
+ },
1351
+ {
1352
+ "name": "Strings in JSON values",
1353
+ "scope": "string.quoted.double.json punctuation.definition.string.json",
1354
+ "settings": {
1355
+ "foreground": "#80CBC4"
1356
+ }
1357
+ },
1358
+ {
1359
+ "name": "Specific JSON Property values like null",
1360
+ "scope": "meta.structure.dictionary.json meta.structure.dictionary.value constant.language",
1361
+ "settings": {
1362
+ "foreground": "#ff5874"
1363
+ }
1364
+ },
1365
+ {
1366
+ "name": "JavaScript Other Variable",
1367
+ "scope": "variable.other.object.js",
1368
+ "settings": {
1369
+ "foreground": "#7fdbca",
1370
+ "fontStyle": "italic"
1371
+ }
1372
+ },
1373
+ {
1374
+ "name": "Ruby Variables",
1375
+ "scope": ["variable.other.ruby"],
1376
+ "settings": {
1377
+ "foreground": "#d6deeb"
1378
+ }
1379
+ },
1380
+ {
1381
+ "name": "Ruby Class",
1382
+ "scope": ["entity.name.type.class.ruby"],
1383
+ "settings": {
1384
+ "foreground": "#ecc48d"
1385
+ }
1386
+ },
1387
+ {
1388
+ "name": "Ruby Hashkeys",
1389
+ "scope": "constant.language.symbol.hashkey.ruby",
1390
+ "settings": {
1391
+ "foreground": "#7fdbca"
1392
+ }
1393
+ },
1394
+ {
1395
+ "name": "Ruby Symbols",
1396
+ "scope": "constant.language.symbol.ruby",
1397
+ "settings": {
1398
+ "foreground": "#7fdbca"
1399
+ }
1400
+ },
1401
+ {
1402
+ "name": "LESS Tag names",
1403
+ "scope": "entity.name.tag.less",
1404
+ "settings": {
1405
+ "foreground": "#7fdbca"
1406
+ }
1407
+ },
1408
+ {
1409
+ "name": "LESS Keyword Other Unit",
1410
+ "scope": "keyword.other.unit.css",
1411
+ "settings": {
1412
+ "foreground": "#FFEB95"
1413
+ }
1414
+ },
1415
+ {
1416
+ "name": "Attribute Name for LESS",
1417
+ "scope": "meta.attribute-selector.less entity.other.attribute-name.attribute",
1418
+ "settings": {
1419
+ "foreground": "#F78C6C"
1420
+ }
1421
+ },
1422
+ {
1423
+ "name": "Markdown Headings",
1424
+ "scope": [
1425
+ "markup.heading.markdown",
1426
+ "markup.heading.setext.1.markdown",
1427
+ "markup.heading.setext.2.markdown"
1428
+ ],
1429
+ "settings": {
1430
+ "foreground": "#82b1ff"
1431
+ }
1432
+ },
1433
+ {
1434
+ "name": "Markdown Italics",
1435
+ "scope": "markup.italic.markdown",
1436
+ "settings": {
1437
+ "foreground": "#a492ea",
1438
+ "fontStyle": "italic"
1439
+ }
1440
+ },
1441
+ {
1442
+ "name": "Markdown Bold",
1443
+ "scope": "markup.bold.markdown",
1444
+ "settings": {
1445
+ "foreground": "#c5e478",
1446
+ "fontStyle": "bold"
1447
+ }
1448
+ },
1449
+ {
1450
+ "name": "Markdown Quote + others",
1451
+ "scope": "markup.quote.markdown",
1452
+ "settings": {
1453
+ "foreground": "#697098",
1454
+ "fontStyle": "italic"
1455
+ }
1456
+ },
1457
+ {
1458
+ "name": "Markdown Raw Code + others",
1459
+ "scope": "markup.inline.raw.markdown",
1460
+ "settings": {
1461
+ "foreground": "#80CBC4"
1462
+ }
1463
+ },
1464
+ {
1465
+ "name": "Markdown Links",
1466
+ "scope": [
1467
+ "markup.underline.link.markdown",
1468
+ "markup.underline.link.image.markdown"
1469
+ ],
1470
+ "settings": {
1471
+ "foreground": "#ff869a"
1472
+ }
1473
+ },
1474
+ {
1475
+ "name": "Markdown Link Title and Description",
1476
+ "scope": [
1477
+ "string.other.link.title.markdown",
1478
+ "string.other.link.description.markdown"
1479
+ ],
1480
+ "settings": {
1481
+ "foreground": "#d6deeb"
1482
+ }
1483
+ },
1484
+ {
1485
+ "name": "Markdown Punctuation",
1486
+ "scope": [
1487
+ "punctuation.definition.string.markdown",
1488
+ "punctuation.definition.string.begin.markdown",
1489
+ "punctuation.definition.string.end.markdown",
1490
+ "meta.link.inline.markdown punctuation.definition.string"
1491
+ ],
1492
+ "settings": {
1493
+ "foreground": "#82b1ff"
1494
+ }
1495
+ },
1496
+ {
1497
+ "name": "Markdown MetaData Punctuation",
1498
+ "scope": ["punctuation.definition.metadata.markdown"],
1499
+ "settings": {
1500
+ "foreground": "#7fdbca"
1501
+ }
1502
+ },
1503
+ {
1504
+ "name": "Markdown List Punctuation",
1505
+ "scope": ["beginning.punctuation.definition.list.markdown"],
1506
+ "settings": {
1507
+ "foreground": "#82b1ff"
1508
+ }
1509
+ },
1510
+ {
1511
+ "name": "Markdown Inline Raw String",
1512
+ "scope": "markup.inline.raw.string.markdown",
1513
+ "settings": {
1514
+ "foreground": "#c5e478"
1515
+ }
1516
+ },
1517
+ {
1518
+ "name": "PHP Variables",
1519
+ "scope": ["variable.other.php", "variable.other.property.php"],
1520
+ "settings": {
1521
+ "foreground": "#bec5d4"
1522
+ }
1523
+ },
1524
+ {
1525
+ "name": "Support Classes in PHP",
1526
+ "scope": "support.class.php",
1527
+ "settings": {
1528
+ "foreground": "#ffcb8b"
1529
+ }
1530
+ },
1531
+ {
1532
+ "name": "Punctuations in PHP function calls",
1533
+ "scope": "meta.function-call.php punctuation",
1534
+ "settings": {
1535
+ "foreground": "#d6deeb"
1536
+ }
1537
+ },
1538
+ {
1539
+ "name": "PHP Global Variables",
1540
+ "scope": "variable.other.global.php",
1541
+ "settings": {
1542
+ "foreground": "#c5e478"
1543
+ }
1544
+ },
1545
+ {
1546
+ "name": "Declaration Punctuation in PHP Global Variables",
1547
+ "scope": "variable.other.global.php punctuation.definition.variable",
1548
+ "settings": {
1549
+ "foreground": "#c5e478"
1550
+ }
1551
+ },
1552
+ {
1553
+ "name": "Language Constants in Python",
1554
+ "scope": "constant.language.python",
1555
+ "settings": {
1556
+ "foreground": "#ff5874"
1557
+ }
1558
+ },
1559
+ {
1560
+ "name": "Python Function Parameter and Arguments",
1561
+ "scope": [
1562
+ "variable.parameter.function.python",
1563
+ "meta.function-call.arguments.python"
1564
+ ],
1565
+ "settings": {
1566
+ "foreground": "#82AAFF"
1567
+ }
1568
+ },
1569
+ {
1570
+ "name": "Python Function Call",
1571
+ "scope": [
1572
+ "meta.function-call.python",
1573
+ "meta.function-call.generic.python"
1574
+ ],
1575
+ "settings": {
1576
+ "foreground": "#B2CCD6"
1577
+ }
1578
+ },
1579
+ {
1580
+ "name": "Punctuations in Python",
1581
+ "scope": "punctuation.python",
1582
+ "settings": {
1583
+ "foreground": "#d6deeb"
1584
+ }
1585
+ },
1586
+ {
1587
+ "name": "Decorator Functions in Python",
1588
+ "scope": "entity.name.function.decorator.python",
1589
+ "settings": {
1590
+ "foreground": "#c5e478"
1591
+ }
1592
+ },
1593
+ {
1594
+ "name": "Python Language Variable",
1595
+ "scope": "source.python variable.language.special",
1596
+ "settings": {
1597
+ "foreground": "#8EACE3"
1598
+ }
1599
+ },
1600
+ {
1601
+ "name": "Python import control keyword",
1602
+ "scope": "keyword.control",
1603
+ "settings": {
1604
+ "foreground": "#a492ea",
1605
+ "fontStyle": "italic"
1606
+ }
1607
+ },
1608
+ {
1609
+ "name": "SCSS Variable",
1610
+ "scope": [
1611
+ "variable.scss",
1612
+ "variable.sass",
1613
+ "variable.parameter.url.scss",
1614
+ "variable.parameter.url.sass"
1615
+ ],
1616
+ "settings": {
1617
+ "foreground": "#c5e478"
1618
+ }
1619
+ },
1620
+ {
1621
+ "name": "Variables in SASS At-Rules",
1622
+ "scope": [
1623
+ "source.css.scss meta.at-rule variable",
1624
+ "source.css.sass meta.at-rule variable"
1625
+ ],
1626
+ "settings": {
1627
+ "foreground": "#82AAFF"
1628
+ }
1629
+ },
1630
+ {
1631
+ "name": "Variables in SASS At-Rules",
1632
+ "scope": [
1633
+ "source.css.scss meta.at-rule variable",
1634
+ "source.css.sass meta.at-rule variable"
1635
+ ],
1636
+ "settings": {
1637
+ "foreground": "#bec5d4"
1638
+ }
1639
+ },
1640
+ {
1641
+ "name": "Attribute Name for SASS",
1642
+ "scope": [
1643
+ "meta.attribute-selector.scss entity.other.attribute-name.attribute",
1644
+ "meta.attribute-selector.sass entity.other.attribute-name.attribute"
1645
+ ],
1646
+ "settings": {
1647
+ "foreground": "#F78C6C"
1648
+ }
1649
+ },
1650
+ {
1651
+ "name": "Tag names in SASS",
1652
+ "scope": ["entity.name.tag.scss", "entity.name.tag.sass"],
1653
+ "settings": {
1654
+ "foreground": "#7fdbca"
1655
+ }
1656
+ },
1657
+ {
1658
+ "name": "SASS Keyword Other Unit",
1659
+ "scope": ["keyword.other.unit.scss", "keyword.other.unit.sass"],
1660
+ "settings": {
1661
+ "foreground": "#FFEB95"
1662
+ }
1663
+ },
1664
+ {
1665
+ "name": "TypeScript[React] Variables and Object Properties",
1666
+ "scope": [
1667
+ "variable.other.readwrite.alias.ts",
1668
+ "variable.other.readwrite.alias.tsx",
1669
+ "variable.other.readwrite.ts",
1670
+ "variable.other.readwrite.tsx",
1671
+ "variable.other.object.ts",
1672
+ "variable.other.object.tsx",
1673
+ "variable.object.property.ts",
1674
+ "variable.object.property.tsx",
1675
+ "variable.other.ts",
1676
+ "variable.other.tsx",
1677
+ "variable.tsx",
1678
+ "variable.ts"
1679
+ ],
1680
+ "settings": {
1681
+ "foreground": "#d6deeb"
1682
+ }
1683
+ },
1684
+ {
1685
+ "name": "TypeScript[React] Entity Name Types",
1686
+ "scope": ["entity.name.type.ts", "entity.name.type.tsx"],
1687
+ "settings": {
1688
+ "foreground": "#ffcb8b"
1689
+ }
1690
+ },
1691
+ {
1692
+ "name": "TypeScript[React] Node Classes",
1693
+ "scope": ["support.class.node.ts", "support.class.node.tsx"],
1694
+ "settings": {
1695
+ "foreground": "#82AAFF"
1696
+ }
1697
+ },
1698
+ {
1699
+ "name": "TypeScript[React] Entity Name Types as Parameters",
1700
+ "scope": [
1701
+ "meta.type.parameters.ts entity.name.type",
1702
+ "meta.type.parameters.tsx entity.name.type"
1703
+ ],
1704
+ "settings": {
1705
+ "foreground": "#5f7e97"
1706
+ }
1707
+ },
1708
+ {
1709
+ "name": "TypeScript[React] Import/Export Punctuations",
1710
+ "scope": [
1711
+ "meta.import.ts punctuation.definition.block",
1712
+ "meta.import.tsx punctuation.definition.block",
1713
+ "meta.export.ts punctuation.definition.block",
1714
+ "meta.export.tsx punctuation.definition.block"
1715
+ ],
1716
+ "settings": {
1717
+ "foreground": "#d6deeb"
1718
+ }
1719
+ },
1720
+ {
1721
+ "name": "TypeScript[React] Punctuation Decorators",
1722
+ "scope": [
1723
+ "meta.decorator punctuation.decorator.ts",
1724
+ "meta.decorator punctuation.decorator.tsx"
1725
+ ],
1726
+ "settings": {
1727
+ "foreground": "#82AAFF"
1728
+ }
1729
+ },
1730
+ {
1731
+ "name": "TypeScript[React] Punctuation Decorators",
1732
+ "scope": "meta.tag.js meta.jsx.children.tsx",
1733
+ "settings": {
1734
+ "foreground": "#82AAFF"
1735
+ }
1736
+ },
1737
+ {
1738
+ "name": "YAML Entity Name Tags",
1739
+ "scope": "entity.name.tag.yaml",
1740
+ "settings": {
1741
+ "foreground": "#7fdbca"
1742
+ }
1743
+ },
1744
+ {
1745
+ "name": "JavaScript Variable Other ReadWrite",
1746
+ "scope": ["variable.other.readwrite.js", "variable.parameter"],
1747
+ "settings": {
1748
+ "foreground": "#d7dbe0"
1749
+ }
1750
+ },
1751
+ {
1752
+ "name": "Support Class Component",
1753
+ "scope": ["support.class.component.js", "support.class.component.tsx"],
1754
+ "settings": {
1755
+ "foreground": "#f78c6c",
1756
+ "fontStyle": ""
1757
+ }
1758
+ },
1759
+ {
1760
+ "name": "Text nested in React tags",
1761
+ "scope": [
1762
+ "meta.jsx.children",
1763
+ "meta.jsx.children.js",
1764
+ "meta.jsx.children.tsx"
1765
+ ],
1766
+ "settings": {
1767
+ "foreground": "#d6deeb"
1768
+ }
1769
+ },
1770
+ {
1771
+ "name": "TypeScript Classes",
1772
+ "scope": "meta.class entity.name.type.class.tsx",
1773
+ "settings": {
1774
+ "foreground": "#ffcb8b"
1775
+ }
1776
+ },
1777
+ {
1778
+ "name": "TypeScript Entity Name Type",
1779
+ "scope": ["entity.name.type.tsx", "entity.name.type.module.tsx"],
1780
+ "settings": {
1781
+ "foreground": "#ffcb8b"
1782
+ }
1783
+ },
1784
+ {
1785
+ "name": "TypeScript Class Variable Keyword",
1786
+ "scope": [
1787
+ "meta.class.ts meta.var.expr.ts storage.type.ts",
1788
+ "meta.class.tsx meta.var.expr.tsx storage.type.tsx"
1789
+ ],
1790
+ "settings": {
1791
+ "foreground": "#A492EA"
1792
+ }
1793
+ },
1794
+ {
1795
+ "name": "TypeScript Method Declaration e.g. `constructor`",
1796
+ "scope": [
1797
+ "meta.method.declaration storage.type.ts",
1798
+ "meta.method.declaration storage.type.tsx"
1799
+ ],
1800
+ "settings": {
1801
+ "foreground": "#82AAFF"
1802
+ }
1803
+ },
1804
+ {
1805
+ "name": "normalize font style of certain components",
1806
+ "scope": [
1807
+ "meta.property-list.css meta.property-value.css variable.other.less",
1808
+ "meta.property-list.scss variable.scss",
1809
+ "meta.property-list.sass variable.sass",
1810
+ "meta.brace",
1811
+ "keyword.operator.operator",
1812
+ "keyword.operator.or.regexp",
1813
+ "keyword.operator.expression.in",
1814
+ "keyword.operator.relational",
1815
+ "keyword.operator.assignment",
1816
+ "keyword.operator.comparison",
1817
+ "keyword.operator.type",
1818
+ "keyword.operator",
1819
+ "keyword",
1820
+ "punctuation.definintion.string",
1821
+ "punctuation",
1822
+ "variable.other.readwrite.js",
1823
+ "storage.type",
1824
+ "source.css",
1825
+ "string.quoted"
1826
+ ],
1827
+ "settings": {
1828
+ "fontStyle": ""
1829
+ }
1830
+ }
1831
+ ]
1832
+ }
tsconfig.json CHANGED
@@ -1,23 +1,35 @@
1
  {
2
  "compilerOptions": {
3
- "target": "es5",
4
- "lib": ["dom", "dom.iterable", "esnext"],
 
 
 
5
  "allowJs": true,
6
  "skipLibCheck": true,
7
- "strict": true,
8
  "forceConsistentCasingInFileNames": true,
9
  "noEmit": true,
 
10
  "esModuleInterop": true,
11
  "module": "esnext",
12
  "moduleResolution": "node",
13
  "resolveJsonModule": true,
14
  "isolatedModules": true,
15
  "jsx": "preserve",
16
- "incremental": true,
17
- "paths": {
18
- "@/*": ["./src/*"]
19
- }
 
20
  },
21
- "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"],
22
- "exclude": ["node_modules"]
 
 
 
 
 
 
 
23
  }
 
1
  {
2
  "compilerOptions": {
3
+ "lib": [
4
+ "dom",
5
+ "dom.iterable",
6
+ "esnext"
7
+ ],
8
  "allowJs": true,
9
  "skipLibCheck": true,
10
+ "strict": false,
11
  "forceConsistentCasingInFileNames": true,
12
  "noEmit": true,
13
+ "incremental": true,
14
  "esModuleInterop": true,
15
  "module": "esnext",
16
  "moduleResolution": "node",
17
  "resolveJsonModule": true,
18
  "isolatedModules": true,
19
  "jsx": "preserve",
20
+ "plugins": [
21
+ {
22
+ "name": "next"
23
+ }
24
+ ]
25
  },
26
+ "include": [
27
+ "next-env.d.ts",
28
+ ".next/types/**/*.ts",
29
+ "**/*.ts",
30
+ "**/*.tsx"
31
+ ],
32
+ "exclude": [
33
+ "node_modules"
34
+ ]
35
  }