diff --git a/.github/workflows/webpack.yml b/.github/workflows/webpack.yml new file mode 100644 index 0000000..09a77db --- /dev/null +++ b/.github/workflows/webpack.yml @@ -0,0 +1,37 @@ +name: Build and Deploy + +on: + push: + branches: [ "main" ] + pull_request: + branches: [ "main" ] + +permissions: + contents: write + +jobs: + build-and-deploy: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v3 + with: + node-version: ${{ matrix.node-version }} + + - name: Install dependencies + run: npm install + + - name: Build the project + run: npm run build + + - name: Deploy to GitHub Pages + if: github.ref == 'refs/heads/develop' + uses: JamesIves/github-pages-deploy-action@v4.4.3 + with: + branch: gh-pages + folder: dist + token: ${{ secrets.GITHUB_TOKEN }} + clean: true diff --git a/README.md b/README.md index 14c49da..f19f793 100644 --- a/README.md +++ b/README.md @@ -29,3 +29,33 @@ To spin up a container from your image, use a command such as the following. ``` docker run --rm -p 80:8080 knit-website ``` + +## Content Management + +Content for this site is located in the src directory in a content folder. The content is formatted using mdx, and utilizes [markdown formatting](https://www.markdownguide.org/basic-syntax/). + +```plaintext +. +└── src + ├── content + ├── cfp.mdx + ├── home.mdx + ├── registration.mdx + └── travel.mdx +``` + +To update the content, ensure you are on the `content` branch via the dropdown menu, or, click this [link](https://github.com/fabric-testbed/knit-website/tree/content/src/content). + +![Screenshot 2024-08-15 at 1 21 22 PM](https://github.com/user-attachments/assets/e7a1c2bb-229b-4143-b3d8-2d66a10ffa55) + + +Then, navigate on the github UI to the file you'd like to change. Find the edit icon (pencil) and edit the text directly in the text editor. + +![Screenshot 2024-08-15 at 1 22 19 PM](https://github.com/user-attachments/assets/94b0a507-766d-4dbe-a417-46a65a6ef78c) + +When you're changes are complete, click the "Commit changes ... " button. This will open a dialog box that will prompt you to write a commit message, optional description, email address, and the option to choose one of the following options: + + - Commit directly to the `content` branch + - Create a **new branch** for this commit and start a pull request + +Please select the first option (Commit directly to the `content` branch). Our team will be notified of the pull request and will review and merge the requested changes. Or, you can contact a developer who can review and merge the changes based on your timeline and needs. diff --git a/package-lock.json b/package-lock.json index 6aaa31c..0161fd7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,5 +1,5 @@ { - "name": "knit", + "name": "knit-website", "lockfileVersion": 3, "requires": true, "packages": { @@ -7,6 +7,8 @@ "dependencies": { "@emotion/react": "^11.11.3", "@emotion/styled": "^11.11.0", + "@mdx-js/loader": "^3.0.1", + "@mdx-js/react": "^3.0.1", "@mui/joy": "^5.0.0-beta.27", "core-js": "^3.35.1", "react": "^18.2.0", @@ -3155,7 +3157,6 @@ "version": "0.3.3", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", - "dev": true, "dependencies": { "@jridgewell/set-array": "^1.0.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -3169,7 +3170,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", - "dev": true, "engines": { "node": ">=6.0.0" } @@ -3178,7 +3178,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.1.tgz", "integrity": "sha512-Ct5MqZkLGEXTVmQYbGtx9SVqD2fqwvdubdps5D3djjAkgkKwT918VNOz65pEHFaYTeWcukmJmH5SwsA9Tn2ObQ==", - "dev": true, "engines": { "node": ">=6.0.0" } @@ -3187,7 +3186,6 @@ "version": "0.3.3", "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.3.tgz", "integrity": "sha512-b+fsZXeLYi9fEULmfBrhxn4IrPlINf8fiNarzTof004v3lFdntdwa9PF7vFJqm3mg7s+ScJMxXaE3Acp1irZcg==", - "dev": true, "dependencies": { "@jridgewell/gen-mapping": "^0.3.0", "@jridgewell/trace-mapping": "^0.3.9" @@ -3196,14 +3194,12 @@ "node_modules/@jridgewell/sourcemap-codec": { "version": "1.4.14", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", - "dev": true + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.22", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.22.tgz", "integrity": "sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==", - "dev": true, "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" @@ -3220,6 +3216,88 @@ "integrity": "sha512-nkalE/f1RvRGChwBnEIoBfSEYOXnCRdleKuv6+lePbMDrMZXeDQnqak5XDOeBgrPPyPfAdcCu/B5z+v3VhplGg==", "dev": true }, + "node_modules/@mdx-js/loader": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@mdx-js/loader/-/loader-3.0.1.tgz", + "integrity": "sha512-YbYUt7YyEOdFxhyuCWmLKf5vKhID/hJAojEUnheJk4D8iYVLFQw+BAoBWru/dHGch1omtmZOPstsmKPyBF68Tw==", + "dependencies": { + "@mdx-js/mdx": "^3.0.0", + "source-map": "^0.7.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + }, + "peerDependencies": { + "webpack": ">=5" + } + }, + "node_modules/@mdx-js/loader/node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@mdx-js/mdx": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-3.0.1.tgz", + "integrity": "sha512-eIQ4QTrOWyL3LWEe/bu6Taqzq2HQvHcyTMaOrI95P2/LmJE7AsfPfgJGuFLPVqBUE1BC1rik3VIhU+s9u72arA==", + "dependencies": { + "@types/estree": "^1.0.0", + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdx": "^2.0.0", + "collapse-white-space": "^2.0.0", + "devlop": "^1.0.0", + "estree-util-build-jsx": "^3.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "estree-util-to-js": "^2.0.0", + "estree-walker": "^3.0.0", + "hast-util-to-estree": "^3.0.0", + "hast-util-to-jsx-runtime": "^2.0.0", + "markdown-extensions": "^2.0.0", + "periscopic": "^3.0.0", + "remark-mdx": "^3.0.0", + "remark-parse": "^11.0.0", + "remark-rehype": "^11.0.0", + "source-map": "^0.7.0", + "unified": "^11.0.0", + "unist-util-position-from-estree": "^2.0.0", + "unist-util-stringify-position": "^4.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/@mdx-js/mdx/node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@mdx-js/react": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-3.0.1.tgz", + "integrity": "sha512-9ZrPIU4MGf6et1m1ov3zKf+q9+deetI51zprKB1D/z3NOb+rUxxtEl3mCjW5wTGh6VhRdwPueh1oRzi6ezkA8A==", + "dependencies": { + "@types/mdx": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + }, + "peerDependencies": { + "@types/react": ">=16", + "react": ">=16" + } + }, "node_modules/@mui/base": { "version": "5.0.0-beta.36", "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-beta.36.tgz", @@ -3567,6 +3645,14 @@ "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", "dev": true }, + "node_modules/@types/acorn": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@types/acorn/-/acorn-4.0.6.tgz", + "integrity": "sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==", + "dependencies": { + "@types/estree": "*" + } + }, "node_modules/@types/body-parser": { "version": "1.19.2", "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", @@ -3617,7 +3703,6 @@ "version": "8.56.2", "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.2.tgz", "integrity": "sha512-uQDwm1wFHmbBbCZCqAlq6Do9LYwByNZHWzXppSnay9SuwJ+VRbjkbLABer54kcPnMSlG6Fdiy2yaFXm/z9Z5gw==", - "dev": true, "dependencies": { "@types/estree": "*", "@types/json-schema": "*" @@ -3627,7 +3712,6 @@ "version": "3.7.3", "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.3.tgz", "integrity": "sha512-PB3ldyrcnAicT35TWPs5IcwKD8S333HMaa2VVv4+wdvebJkjWuW/xESoB8IwRcog8HYVYamb1g/R31Qv5Bx03g==", - "dev": true, "dependencies": { "@types/eslint": "*", "@types/estree": "*" @@ -3729,8 +3813,7 @@ "node_modules/@types/json-schema": { "version": "7.0.11", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", - "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", - "dev": true + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==" }, "node_modules/@types/mdast": { "version": "4.0.3", @@ -3740,6 +3823,11 @@ "@types/unist": "*" } }, + "node_modules/@types/mdx": { + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.13.tgz", + "integrity": "sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==" + }, "node_modules/@types/mime": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", @@ -3760,8 +3848,7 @@ "node_modules/@types/node": { "version": "17.0.25", "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.25.tgz", - "integrity": "sha512-wANk6fBrUwdpY4isjWrKTufkrXdu1D2YHCot2fD/DfWxF5sMrVSA+KN7ydckvaTCh0HiqX9IVl0L5/ZoXg5M7w==", - "dev": true + "integrity": "sha512-wANk6fBrUwdpY4isjWrKTufkrXdu1D2YHCot2fD/DfWxF5sMrVSA+KN7ydckvaTCh0HiqX9IVl0L5/ZoXg5M7w==" }, "node_modules/@types/node-forge": { "version": "1.3.11", @@ -3883,7 +3970,6 @@ "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz", "integrity": "sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==", - "dev": true, "dependencies": { "@webassemblyjs/helper-numbers": "1.11.6", "@webassemblyjs/helper-wasm-bytecode": "1.11.6" @@ -3892,26 +3978,22 @@ "node_modules/@webassemblyjs/floating-point-hex-parser": { "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", - "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", - "dev": true + "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==" }, "node_modules/@webassemblyjs/helper-api-error": { "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", - "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", - "dev": true + "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==" }, "node_modules/@webassemblyjs/helper-buffer": { "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz", - "integrity": "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==", - "dev": true + "integrity": "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==" }, "node_modules/@webassemblyjs/helper-numbers": { "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", - "dev": true, "dependencies": { "@webassemblyjs/floating-point-hex-parser": "1.11.6", "@webassemblyjs/helper-api-error": "1.11.6", @@ -3921,14 +4003,12 @@ "node_modules/@webassemblyjs/helper-wasm-bytecode": { "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", - "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", - "dev": true + "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==" }, "node_modules/@webassemblyjs/helper-wasm-section": { "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz", "integrity": "sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==", - "dev": true, "dependencies": { "@webassemblyjs/ast": "1.11.6", "@webassemblyjs/helper-buffer": "1.11.6", @@ -3940,7 +4020,6 @@ "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", - "dev": true, "dependencies": { "@xtuc/ieee754": "^1.2.0" } @@ -3949,7 +4028,6 @@ "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", - "dev": true, "dependencies": { "@xtuc/long": "4.2.2" } @@ -3957,14 +4035,12 @@ "node_modules/@webassemblyjs/utf8": { "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", - "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", - "dev": true + "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==" }, "node_modules/@webassemblyjs/wasm-edit": { "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz", "integrity": "sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==", - "dev": true, "dependencies": { "@webassemblyjs/ast": "1.11.6", "@webassemblyjs/helper-buffer": "1.11.6", @@ -3980,7 +4056,6 @@ "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz", "integrity": "sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==", - "dev": true, "dependencies": { "@webassemblyjs/ast": "1.11.6", "@webassemblyjs/helper-wasm-bytecode": "1.11.6", @@ -3993,7 +4068,6 @@ "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz", "integrity": "sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==", - "dev": true, "dependencies": { "@webassemblyjs/ast": "1.11.6", "@webassemblyjs/helper-buffer": "1.11.6", @@ -4005,7 +4079,6 @@ "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz", "integrity": "sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==", - "dev": true, "dependencies": { "@webassemblyjs/ast": "1.11.6", "@webassemblyjs/helper-api-error": "1.11.6", @@ -4019,7 +4092,6 @@ "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz", "integrity": "sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==", - "dev": true, "dependencies": { "@webassemblyjs/ast": "1.11.6", "@xtuc/long": "4.2.2" @@ -4072,14 +4144,12 @@ "node_modules/@xtuc/ieee754": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" }, "node_modules/@xtuc/long": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "dev": true + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" }, "node_modules/accepts": { "version": "1.3.8", @@ -4098,7 +4168,6 @@ "version": "8.11.3", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", - "dev": true, "bin": { "acorn": "bin/acorn" }, @@ -4110,7 +4179,6 @@ "version": "1.9.0", "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", - "dev": true, "peerDependencies": { "acorn": "^8" } @@ -4119,7 +4187,6 @@ "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } @@ -4128,7 +4195,6 @@ "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -4183,7 +4249,6 @@ "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, "peerDependencies": { "ajv": "^6.9.1" } @@ -4354,6 +4419,14 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/astring": { + "version": "1.8.6", + "resolved": "https://registry.npmjs.org/astring/-/astring-1.8.6.tgz", + "integrity": "sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==", + "bin": { + "astring": "bin/astring" + } + }, "node_modules/asynciterator.prototype": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/asynciterator.prototype/-/asynciterator.prototype-1.0.0.tgz", @@ -4678,7 +4751,6 @@ "version": "4.22.3", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.3.tgz", "integrity": "sha512-UAp55yfwNv0klWNapjs/ktHoguxuQNGnOzxYmfnXIS+8AsRDZkSDxg7R1AX3GKzn078SBI5dzwzj/Yx0Or0e3A==", - "dev": true, "funding": [ { "type": "opencollective", @@ -4709,8 +4781,7 @@ "node_modules/buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" }, "node_modules/bytes": { "version": "3.0.0", @@ -4761,7 +4832,6 @@ "version": "1.0.30001585", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001585.tgz", "integrity": "sha512-yr2BWR1yLXQ8fMpdS/4ZZXpseBgE7o4g41x3a6AJOqZuOi+iE/WdJYAuZ6Y95i4Ohd2Y+9MzIWRR+uGABH4s3Q==", - "dev": true, "funding": [ { "type": "opencollective", @@ -4866,7 +4936,6 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", - "dev": true, "engines": { "node": ">=6.0" } @@ -4944,6 +5013,15 @@ "node": ">=6" } }, + "node_modules/collapse-white-space": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-2.1.0.tgz", + "integrity": "sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", @@ -5633,8 +5711,7 @@ "node_modules/electron-to-chromium": { "version": "1.4.661", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.661.tgz", - "integrity": "sha512-AFg4wDHSOk5F+zA8aR+SVIOabu7m0e7BiJnigCvPXzIGy731XENw/lmNxTySpVFtkFEy+eyt4oHhh5FF3NjQNw==", - "dev": true + "integrity": "sha512-AFg4wDHSOk5F+zA8aR+SVIOabu7m0e7BiJnigCvPXzIGy731XENw/lmNxTySpVFtkFEy+eyt4oHhh5FF3NjQNw==" }, "node_modules/emojis-list": { "version": "3.0.0", @@ -5658,7 +5735,6 @@ "version": "5.15.0", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz", "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==", - "dev": true, "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" @@ -5801,8 +5877,7 @@ "node_modules/es-module-lexer": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.2.1.tgz", - "integrity": "sha512-9978wrXM50Y4rTMmW5kXIC09ZdXQZqkE4mxhwkd8VbzsGkXGPgV4zWuqQJgCEzYngdo2dYDa0l8xhX4fkSwJSg==", - "dev": true + "integrity": "sha512-9978wrXM50Y4rTMmW5kXIC09ZdXQZqkE4mxhwkd8VbzsGkXGPgV4zWuqQJgCEzYngdo2dYDa0l8xhX4fkSwJSg==" }, "node_modules/es-set-tostringtag": { "version": "2.0.2", @@ -5848,7 +5923,6 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", - "dev": true, "engines": { "node": ">=6" } @@ -5985,7 +6059,6 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^4.1.1" @@ -5998,7 +6071,6 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, "engines": { "node": ">=4.0" } @@ -6280,7 +6352,6 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, "dependencies": { "estraverse": "^5.2.0" }, @@ -6292,11 +6363,37 @@ "version": "5.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, "engines": { "node": ">=4.0" } }, + "node_modules/estree-util-attach-comments": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/estree-util-attach-comments/-/estree-util-attach-comments-3.0.0.tgz", + "integrity": "sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==", + "dependencies": { + "@types/estree": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-util-build-jsx": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/estree-util-build-jsx/-/estree-util-build-jsx-3.0.1.tgz", + "integrity": "sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "devlop": "^1.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "estree-walker": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/estree-util-is-identifier-name": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-3.0.0.tgz", @@ -6306,6 +6403,49 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/estree-util-to-js": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/estree-util-to-js/-/estree-util-to-js-2.0.0.tgz", + "integrity": "sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "astring": "^1.8.0", + "source-map": "^0.7.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-util-to-js/node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/estree-util-visit": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/estree-util-visit/-/estree-util-visit-2.0.0.tgz", + "integrity": "sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, "node_modules/esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", @@ -6334,7 +6474,6 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "dev": true, "engines": { "node": ">=0.8.x" } @@ -6452,14 +6591,12 @@ "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" }, "node_modules/fast-levenshtein": { "version": "2.0.6", @@ -6918,8 +7055,7 @@ "node_modules/glob-to-regexp": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", - "dev": true + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" }, "node_modules/globals": { "version": "11.12.0", @@ -6985,8 +7121,7 @@ "node_modules/graceful-fs": { "version": "4.2.10", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "dev": true + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" }, "node_modules/graphemer": { "version": "1.4.0", @@ -7134,6 +7269,46 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/hast-util-to-estree": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hast-util-to-estree/-/hast-util-to-estree-3.1.0.tgz", + "integrity": "sha512-lfX5g6hqVh9kjS/B9E2gSkvHH4SZNiQFiqWS0x9fENzEl+8W12RqdRxX6d/Cwxi30tPQs3bIO+aolQJNp1bIyw==", + "dependencies": { + "@types/estree": "^1.0.0", + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "comma-separated-tokens": "^2.0.0", + "devlop": "^1.0.0", + "estree-util-attach-comments": "^3.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "hast-util-whitespace": "^3.0.0", + "mdast-util-mdx-expression": "^2.0.0", + "mdast-util-mdx-jsx": "^3.0.0", + "mdast-util-mdxjs-esm": "^2.0.0", + "property-information": "^6.0.0", + "space-separated-tokens": "^2.0.0", + "style-to-object": "^0.4.0", + "unist-util-position": "^5.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-estree/node_modules/inline-style-parser": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz", + "integrity": "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==" + }, + "node_modules/hast-util-to-estree/node_modules/style-to-object": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.4.4.tgz", + "integrity": "sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==", + "dependencies": { + "inline-style-parser": "0.1.1" + } + }, "node_modules/hast-util-to-jsx-runtime": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.0.tgz", @@ -7878,6 +8053,14 @@ "node": ">=0.10.0" } }, + "node_modules/is-reference": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.2.tgz", + "integrity": "sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==", + "dependencies": { + "@types/estree": "*" + } + }, "node_modules/is-regex": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", @@ -8224,8 +8407,7 @@ "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", @@ -8299,7 +8481,6 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", - "dev": true, "engines": { "node": ">=6.11.5" } @@ -8392,6 +8573,17 @@ "node": ">=10" } }, + "node_modules/markdown-extensions": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/markdown-extensions/-/markdown-extensions-2.0.0.tgz", + "integrity": "sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/markdown-table": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.3.tgz", @@ -8554,6 +8746,22 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/mdast-util-mdx": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-mdx/-/mdast-util-mdx-3.0.0.tgz", + "integrity": "sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==", + "dependencies": { + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-mdx-expression": "^2.0.0", + "mdast-util-mdx-jsx": "^3.0.0", + "mdast-util-mdxjs-esm": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/mdast-util-mdx-expression": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.0.tgz", @@ -8706,8 +8914,7 @@ "node_modules/merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" }, "node_modules/methods": { "version": "1.1.2", @@ -8906,6 +9113,103 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/micromark-extension-mdx-expression": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-mdx-expression/-/micromark-extension-mdx-expression-3.0.0.tgz", + "integrity": "sha512-sI0nwhUDz97xyzqJAbHQhp5TfaxEvZZZ2JDqUo+7NvyIYG6BZ5CPPqj2ogUoPJlmXHBnyZUzISg9+oUmU6tUjQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "@types/estree": "^1.0.0", + "devlop": "^1.0.0", + "micromark-factory-mdx-expression": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-events-to-acorn": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-mdx-jsx": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-mdx-jsx/-/micromark-extension-mdx-jsx-3.0.0.tgz", + "integrity": "sha512-uvhhss8OGuzR4/N17L1JwvmJIpPhAd8oByMawEKx6NVdBCbesjH4t+vjEp3ZXft9DwvlKSD07fCeI44/N0Vf2w==", + "dependencies": { + "@types/acorn": "^4.0.0", + "@types/estree": "^1.0.0", + "devlop": "^1.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "micromark-factory-mdx-expression": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-mdx-md": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-mdx-md/-/micromark-extension-mdx-md-2.0.0.tgz", + "integrity": "sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==", + "dependencies": { + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-mdxjs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-mdxjs/-/micromark-extension-mdxjs-3.0.0.tgz", + "integrity": "sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==", + "dependencies": { + "acorn": "^8.0.0", + "acorn-jsx": "^5.0.0", + "micromark-extension-mdx-expression": "^3.0.0", + "micromark-extension-mdx-jsx": "^3.0.0", + "micromark-extension-mdx-md": "^2.0.0", + "micromark-extension-mdxjs-esm": "^3.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-mdxjs-esm": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-mdxjs-esm/-/micromark-extension-mdxjs-esm-3.0.0.tgz", + "integrity": "sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==", + "dependencies": { + "@types/estree": "^1.0.0", + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-events-to-acorn": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unist-util-position-from-estree": "^2.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/micromark-factory-destination": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.0.tgz", @@ -8947,6 +9251,31 @@ "micromark-util-types": "^2.0.0" } }, + "node_modules/micromark-factory-mdx-expression": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-mdx-expression/-/micromark-factory-mdx-expression-2.0.1.tgz", + "integrity": "sha512-F0ccWIUHRLRrYp5TC9ZYXmZo+p2AM13ggbsW4T0b5CRKP8KHVRB8t4pwtBgTxtjRmwrK0Irwm7vs2JOZabHZfg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "@types/estree": "^1.0.0", + "devlop": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-events-to-acorn": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unist-util-position-from-estree": "^2.0.0", + "vfile-message": "^4.0.0" + } + }, "node_modules/micromark-factory-space": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", @@ -9138,6 +9467,31 @@ } ] }, + "node_modules/micromark-util-events-to-acorn": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-events-to-acorn/-/micromark-util-events-to-acorn-2.0.2.tgz", + "integrity": "sha512-Fk+xmBrOv9QZnEDguL9OI9/NQQp6Hz4FuQ4YmCb/5V7+9eAh1s6AYSvL20kHkD67YIg7EpE54TiSlcsf3vyZgA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "@types/acorn": "^4.0.0", + "@types/estree": "^1.0.0", + "@types/unist": "^3.0.0", + "devlop": "^1.0.0", + "estree-util-visit": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "vfile-message": "^4.0.0" + } + }, "node_modules/micromark-util-html-tag-name": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.0.tgz", @@ -9289,7 +9643,6 @@ "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true, "engines": { "node": ">= 0.6" } @@ -9298,7 +9651,6 @@ "version": "2.1.35", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dev": true, "dependencies": { "mime-db": "1.52.0" }, @@ -9460,8 +9812,7 @@ "node_modules/neo-async": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" }, "node_modules/no-case": { "version": "3.0.4", @@ -9485,8 +9836,7 @@ "node_modules/node-releases": { "version": "2.0.14", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", - "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", - "dev": true + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==" }, "node_modules/normalize-path": { "version": "3.0.0", @@ -9936,11 +10286,20 @@ "node": ">=8" } }, + "node_modules/periscopic": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/periscopic/-/periscopic-3.1.0.tgz", + "integrity": "sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^3.0.0", + "is-reference": "^3.0.0" + } + }, "node_modules/picocolors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" }, "node_modules/picomatch": { "version": "2.3.1", @@ -10920,7 +11279,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true, "engines": { "node": ">=6" } @@ -10961,7 +11319,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, "dependencies": { "safe-buffer": "^5.1.0" } @@ -11336,6 +11693,19 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/remark-mdx": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-3.0.1.tgz", + "integrity": "sha512-3Pz3yPQ5Rht2pM5R+0J2MrGoBSrzf+tJG94N+t/ilfdh8YLyyKYtidAYwTveB20BoHAcwIopOUqhcmh2F7hGYA==", + "dependencies": { + "mdast-util-mdx": "^3.0.0", + "micromark-extension-mdxjs": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/remark-parse": { "version": "11.0.0", "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz", @@ -11536,8 +11906,7 @@ "node_modules/safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, "node_modules/safe-regex-test": { "version": "1.0.3", @@ -11574,7 +11943,6 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.2.0.tgz", "integrity": "sha512-0zTyLGyDJYd/MBxG1AhJkKa6fpEBds4OQO2ut0w7OYG+ZGhGea09lijvzsqegYSik88zc7cUtIlnnO+/BvD6gQ==", - "dev": true, "dependencies": { "@types/json-schema": "^7.0.8", "ajv": "^6.12.5", @@ -11665,7 +12033,6 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", - "dev": true, "dependencies": { "randombytes": "^2.1.0" } @@ -11888,7 +12255,6 @@ "version": "0.5.21", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -11898,7 +12264,6 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -12136,7 +12501,6 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "dev": true, "engines": { "node": ">=6" } @@ -12145,7 +12509,6 @@ "version": "5.27.0", "resolved": "https://registry.npmjs.org/terser/-/terser-5.27.0.tgz", "integrity": "sha512-bi1HRwVRskAjheeYl291n3JC4GgO/Ty4z1nVs5AAsmonJulGxpSektecnNedrwK9C7vpvVtcX3cw00VSLt7U2A==", - "dev": true, "dependencies": { "@jridgewell/source-map": "^0.3.3", "acorn": "^8.8.2", @@ -12163,7 +12526,6 @@ "version": "5.3.10", "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz", "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==", - "dev": true, "dependencies": { "@jridgewell/trace-mapping": "^0.3.20", "jest-worker": "^27.4.5", @@ -12197,7 +12559,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, "engines": { "node": ">=8" } @@ -12206,7 +12567,6 @@ "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", - "dev": true, "dependencies": { "@types/node": "*", "merge-stream": "^2.0.0", @@ -12220,7 +12580,6 @@ "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -12234,8 +12593,7 @@ "node_modules/terser/node_modules/commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" }, "node_modules/text-table": { "version": "0.2.0", @@ -12512,6 +12870,18 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/unist-util-position-from-estree": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unist-util-position-from-estree/-/unist-util-position-from-estree-2.0.0.tgz", + "integrity": "sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/unist-util-remove-position": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-5.0.0.tgz", @@ -12577,7 +12947,6 @@ "version": "1.0.13", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", - "dev": true, "funding": [ { "type": "opencollective", @@ -12607,7 +12976,6 @@ "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, "dependencies": { "punycode": "^2.1.0" } @@ -12707,7 +13075,6 @@ "version": "2.4.0", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", - "dev": true, "dependencies": { "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.1.2" @@ -12738,7 +13105,6 @@ "version": "5.90.1", "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.90.1.tgz", "integrity": "sha512-SstPdlAC5IvgFnhiRok8hqJo/+ArAbNv7rhU4fnWGHNVfN59HSQFaxZDSAL3IFG2YmqxuRs+IU33milSxbPlog==", - "dev": true, "dependencies": { "@types/eslint-scope": "^3.7.3", "@types/estree": "^1.0.5", @@ -13055,7 +13421,6 @@ "version": "3.2.3", "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", - "dev": true, "engines": { "node": ">=10.13.0" } diff --git a/package.json b/package.json index b3bdb32..ea70622 100644 --- a/package.json +++ b/package.json @@ -1,9 +1,10 @@ { "private": "true", + "homepage": "https://fabric-testbed.github.io/knit-website/", "scripts": { "start": "SERVE=true webpack serve", "watch": "webpack --watch", - "build": "NODE_ENV=production webpack", + "build": "NODE_ENV=production webpack && cp ./src/404.html ./dist/404.html", "build-dev": "webpack", "lint": "eslint ./src/index.js ./src/components/**/*.js", "lint:fix": "eslint --fix ./src/index.js ./src/components/**/*.js", @@ -36,6 +37,8 @@ "dependencies": { "@emotion/react": "^11.11.3", "@emotion/styled": "^11.11.0", + "@mdx-js/loader": "^3.0.1", + "@mdx-js/react": "^3.0.1", "@mui/joy": "^5.0.0-beta.27", "core-js": "^3.35.1", "react": "^18.2.0", diff --git a/src/404.html b/src/404.html new file mode 100644 index 0000000..32f9544 --- /dev/null +++ b/src/404.html @@ -0,0 +1,22 @@ + + + + + + + FABRIC KNIT Workshop 404 + + + + + + + + + + + + + diff --git a/src/app.js b/src/app.js index a44b8ed..8b047e1 100644 --- a/src/app.js +++ b/src/app.js @@ -2,12 +2,12 @@ import { Fragment } from 'react' import { Routes, Route } from 'react-router-dom' import { Menu } from '@components/menu' import { - CfpView, + AgendaView, + CfaView, HomeView, MarkdownView, NotFoundView, RegistrationView, - SpeakersView, TravelView, } from './views' @@ -24,21 +24,21 @@ const menuOptions = [ label: 'Registration', view: , }, - { - path: '/cfp', - label: 'CFP', - view: , - }, { path: '/travel', label: 'Travel Info', view: , }, { - path: '/speakers', - label: 'Speakers', - view: , + path: '/cfa', + label: 'Calls for Action', + view: , }, + { + path: '/agenda', + label: 'Agenda', + view: , + } ] // diff --git a/src/components/brand.js b/src/components/brand.js index 9bf5a02..d366f05 100644 --- a/src/components/brand.js +++ b/src/components/brand.js @@ -1,32 +1,33 @@ import PropTypes from 'prop-types' import { Stack, Typography } from '@mui/joy' import { Link } from '@components/link' -import fabricLogo from '@images/fabric-logo.png' +import numberlessKnitLogo from '@images/knit-logo-numberless.png' export const Brand = () => { return ( - FABRIC - - + + 2024 + ) } diff --git a/src/components/button.js b/src/components/button.js new file mode 100644 index 0000000..c943cb7 --- /dev/null +++ b/src/components/button.js @@ -0,0 +1,27 @@ +import PropTypes from 'prop-types' +import { Button as MUIButton} from '@mui/joy' +import { Link } from '@components/link' + +export const Button = ({ linkto, children }) => { + if (typeof children !== 'string') { + return { children } + } + if (!linkto) { + return { children } + } + + return ( + { children } + + ) +} + +Button.propTypes = { + linkto: PropTypes.string, + children: PropTypes.node, +} \ No newline at end of file diff --git a/src/components/layout/footer.js b/src/components/layout/footer.js index 5f9949a..ff5d33c 100644 --- a/src/components/layout/footer.js +++ b/src/components/layout/footer.js @@ -1,6 +1,9 @@ -import { Divider, List, ListItem, Sheet, Stack, Typography } from '@mui/joy' +import { List, ListItem, Sheet, Stack, Typography } from '@mui/joy' import { KnitLogo } from '@components/brand' import { Link } from '@components/link' +import { + Container, +} from '@components/layout' export const Footer = () => { return ( @@ -16,6 +19,7 @@ export const Footer = () => { p: 2, py: 6, '.copyright': { color: 'var(--knit-palette-primary-900)', + marginTop: '1rem' }, '.links-list a': { color: 'var(--knit-palette-primary-400)', @@ -25,43 +29,39 @@ export const Footer = () => { }, }} > - + - - link - here's an external link - a link - and another - - - - - another link - so many links - last one - - - + + + + © { new Date().getFullYear() } + - + + + FABRIC Portal + Community Slack Channel + Contact Us + + + + - - - © { new Date().getFullYear() } ) } diff --git a/src/components/link/external-link.js b/src/components/link/external-link.js new file mode 100644 index 0000000..af1c493 --- /dev/null +++ b/src/components/link/external-link.js @@ -0,0 +1,37 @@ +import { Fragment } from 'react' +import { BaseLinkPropTypes } from './' +import { ExternalLinkIcon } from './' +import { Button, Link } from '@mui/joy' + +export const ExternalLink = ({ to, children, button, ...props }) => { + return ( + + { button ? ( + + ) : ( + + { children } + + + )} + + ) +} + +ExternalLink.propTypes = { ...BaseLinkPropTypes } + diff --git a/src/components/link/index.js b/src/components/link/index.js new file mode 100644 index 0000000..905aa86 --- /dev/null +++ b/src/components/link/index.js @@ -0,0 +1,4 @@ +export * from './link' +export * from './link-icon' +export * from './external-link' +export * from './mail-to-link' \ No newline at end of file diff --git a/src/components/link.js b/src/components/link/link-icon.js similarity index 53% rename from src/components/link.js rename to src/components/link/link-icon.js index 84c5e96..9a699e4 100644 --- a/src/components/link.js +++ b/src/components/link/link-icon.js @@ -1,73 +1,6 @@ -import { Fragment } from 'react' import PropTypes from 'prop-types' -import { Link as ReactLink } from 'react-router-dom' -import { NavLink as ReactNavLink } from 'react-router-dom' -// - -export const ExternalLink = ({ to, children }) => { - return ( - - { children } - - - ) -} - -export const MailtoLink = ({ to, children }) => { - return ( - - { children } - - - ) -} - -const BaseLinkPropTypes = { - to: PropTypes.string.isRequired, - children: PropTypes.node.isRequired, -} - -ExternalLink.propTypes = { ...BaseLinkPropTypes } -MailtoLink.propTypes = { ...BaseLinkPropTypes } - -// - -export const Link = ({ nav, to, children, ...props }) => { - // if this is a navigation menu link, we can bail out now. - if (nav) { - return { children } - } - // otherwise, we'll to determine the type of link and - // decorate it with an icon accordingly. - const externalUrlPattern = new RegExp(/^https?:\/\//) - const externalUrlMatch = externalUrlPattern.exec(to) - const mailtoPattern = new RegExp(/^mailto:/) - const mailtoMatch = mailtoPattern.exec(to) - const LinkComponent = externalUrlMatch - ? ExternalLink - : mailtoMatch - ? MailtoLink - : ReactLink - return {children} -} - -Link.propTypes = { - nav: PropTypes.bool, - ...BaseLinkPropTypes -} - -Link.defaultProps = { - nav: false, -} - -// - -const LinkIcon = ({ size, children }) => { +export const LinkIcon = ({ size, color, children }) => { return ( { width={ `${ size }px` } height={ `${ size }px` } style={{ marginLeft: '4px' }} - fill="#789" + fill={color || "#789"} >{ children } ) } LinkIcon.propTypes = { size: PropTypes.number.isRequired, + color: PropTypes.string, children: PropTypes.node.isRequired, } -export const ExternalLinkIcon = ({ size = 10 }) => { +export const ExternalLinkIcon = ({ size = 10, color }) => { return ( - + ) } +ExternalLinkIcon.propTypes = { + size: PropTypes.number, + color: PropTypes.string, +} + export const MailtoLinkIcon = ({ size = 12 }) => { return ( @@ -106,10 +45,6 @@ export const MailtoLinkIcon = ({ size = 12 }) => { ) } -ExternalLinkIcon.propTypes = { - size: PropTypes.number, -} - MailtoLinkIcon.propTypes = { size: PropTypes.number, -} +} \ No newline at end of file diff --git a/src/components/link/link.js b/src/components/link/link.js new file mode 100644 index 0000000..ebe2892 --- /dev/null +++ b/src/components/link/link.js @@ -0,0 +1,43 @@ +import PropTypes from 'prop-types' +import { Link as ReactLink } from 'react-router-dom' +import { NavLink as ReactNavLink } from 'react-router-dom' +import { ExternalLink } from './' +import { MailtoLink } from './' +// + +export const BaseLinkPropTypes = { + to: PropTypes.string.isRequired, + children: PropTypes.node.isRequired, +} + +// + +export const Link = ({ nav, to, children, ...props }) => { + // if this is a navigation menu link, we can bail out now. + if (nav) { + return { children } + } + // otherwise, we'll to determine the type of link and + // decorate it with an icon accordingly. + const externalUrlPattern = new RegExp(/^https?:\/\//) + const externalUrlMatch = externalUrlPattern.exec(to) + const mailtoPattern = new RegExp(/^mailto:/) + const mailtoMatch = mailtoPattern.exec(to) + const LinkComponent = externalUrlMatch + ? ExternalLink + : mailtoMatch + ? MailtoLink + : ReactLink + return {children} +} + +Link.propTypes = { + nav: PropTypes.bool, + ...BaseLinkPropTypes +} + +Link.defaultProps = { + nav: false, +} + +// \ No newline at end of file diff --git a/src/components/link/mail-to-link.js b/src/components/link/mail-to-link.js new file mode 100644 index 0000000..bc5f1b9 --- /dev/null +++ b/src/components/link/mail-to-link.js @@ -0,0 +1,14 @@ +import { Fragment } from 'react' +import { BaseLinkPropTypes } from './' +import { MailtoLinkIcon } from './' + +export const MailtoLink = ({ to, children }) => { + return ( + + { children } + + + ) +} + +MailtoLink.propTypes = { ...BaseLinkPropTypes } \ No newline at end of file diff --git a/src/components/markdown/button.js b/src/components/markdown/button.js deleted file mode 100644 index fceb412..0000000 --- a/src/components/markdown/button.js +++ /dev/null @@ -1,19 +0,0 @@ -import { Button } from '@mui/joy' -import { Link } from '@components/link' - -/* eslint-disable-next-line no-unused-vars */ -export const button = ({ node, linkto, children }) => { - if (typeof children !== 'string') { - return - } - if (!linkto) { - return - } - - return ( - - ) -} diff --git a/src/components/markdown/index.js b/src/components/markdown/index.js index 9c58b0b..c971a18 100644 --- a/src/components/markdown/index.js +++ b/src/components/markdown/index.js @@ -1,38 +1,7 @@ -import ReactMarkdown from 'react-markdown' -import remarkGfm from 'remark-gfm' -import rehypeRaw from 'rehype-raw' - -import { hr } from './hr' -import { a } from './link' -import { ul, li } from './list' -import { pre } from './pre' -import { button } from './button' -import * as typography from './typography' - -/* - * this object defines a map, - * DOM elements -> React components, - * which allows us to map the HTML elements - * that result from our Markdown content - * to the React components used in the rest - * of the application. - */ -const componentMap = { - a, - hr, - pre, - ul, li, - ...typography, - button, -} - -export const Markdown = props => { - return ( - - ) -} +export * from "../button" +export * from "./hr" +export * from "./link" +export * from "./list" +export * from "./markdown" +export * from "./pre" +export * from "./typography" \ No newline at end of file diff --git a/src/components/markdown/markdown.js b/src/components/markdown/markdown.js new file mode 100644 index 0000000..e9b49db --- /dev/null +++ b/src/components/markdown/markdown.js @@ -0,0 +1,37 @@ +import ReactMarkdown from 'react-markdown' +import remarkGfm from 'remark-gfm' +import rehypeRaw from 'rehype-raw' + +import { hr } from './hr' +import { a } from './link' +import { ul, ol, li } from './list' +import { pre } from './pre' +import { button } from '../button' +import * as typography from './typography' + +/* + * this object defines a map, + * DOM elements -> React components, + * which allows us to map the HTML elements + * that result from our Markdown content + * to the React components used in the rest + * of the application. + */ +export const componentMap = { + a, + hr, + pre, + ul, ol, li, + ...typography, +} + +export const Markdown = props => { + return ( + + ) +} diff --git a/src/components/markdown/typography.js b/src/components/markdown/typography.js index 7f66696..fc8bb0d 100644 --- a/src/components/markdown/typography.js +++ b/src/components/markdown/typography.js @@ -1,15 +1,14 @@ /* eslint-disable no-unused-vars */ import { Typography } from '@mui/joy' -import { LinkedHeading } from '@components/linked-heading' // heading 1 export const h1 = ({ node, ...props }) => ( - + ) // heading 2 export const h2 = ({ node, ...props }) => ( - + ) // heading 3 diff --git a/src/components/menu/desktop-menu.js b/src/components/menu/desktop-menu.js index 52152e5..b540211 100644 --- a/src/components/menu/desktop-menu.js +++ b/src/components/menu/desktop-menu.js @@ -31,11 +31,12 @@ export const DesktopMenu = ({ options = [] }) => { width: '100%', p: 2, textDecoration: 'none', - color: 'var(--knit-palette-primary-600)', + color: 'var(--knit-palette-primary-900)', textTransform: 'uppercase', + letterSpacing: '0.5px' }, '[aria-current="page"]': { - backgroundColor: 'var(--knit-palette-secondary-light)', + backgroundColor: '#0001', }, }} > diff --git a/src/components/menu/drawer-menu.js b/src/components/menu/drawer-menu.js index b706ac2..36310cd 100644 --- a/src/components/menu/drawer-menu.js +++ b/src/components/menu/drawer-menu.js @@ -2,8 +2,8 @@ import { Fragment, useState } from 'react' import { Box, Divider, Drawer, IconButton, ModalClose, Stack } from '@mui/joy' import { Menu as MenuIcon } from 'react-feather' import { Link } from '@components/link' -import { KnitLogo } from '@components/brand' import { menuPropTypes } from './menu' +import numberlessKnitLogo from '@images/knit-logo-numberless-dark.png' // @@ -31,7 +31,7 @@ export const DrawerMenu = ({ options = [] }) => { p: 2, }} > - + { backgroundColor: 'transparent', transition: 'background-color 250ms', '&:hover': { - 'backgroundColor': 'var(--knit-palette-primary-100)', + backgroundColor: '#0001', }, }, '.list-item > a': { @@ -68,7 +68,7 @@ export const DrawerMenu = ({ options = [] }) => { textTransform: 'uppercase', }, '[aria-current="page"]': { - 'backgroundColor': 'var(--knit-palette-primary-200)', + backgroundColor: '#0001', }, }} > diff --git a/src/components/menu/menu.js b/src/components/menu/menu.js index 9c1b707..b9c5bca 100644 --- a/src/components/menu/menu.js +++ b/src/components/menu/menu.js @@ -29,7 +29,7 @@ export const Menu = ({ options = [] }) => { }} > { - width < theme.breakpoints.values.sm + width < theme.breakpoints.values.md ? : } diff --git a/src/content/cfp.md b/src/content/cfp.md deleted file mode 100644 index c28b268..0000000 --- a/src/content/cfp.md +++ /dev/null @@ -1,5 +0,0 @@ -# Call for Proposals - -Enim voluptate elit ad reprehenderit laborum laborum magna consequat nostrud. Et ut velit velit pariatur incididunt laborum id esse velit duis. Adipisicing aute do proident in cillum duis in dolore tempor ut in officia velit cillum quis. Sint enim sed nulla occaecat quis amet nostrud consequat commodo id irure quis. - -Lorem ipsum ullamco irure aliquip elit veniam occaecat adipisicing minim proident commodo occaecat dolor in aliquip sit dolor labore. Incididunt id aliquip cillum in aliqua quis qui mollit exercitation in laborum. Nisi in dolore occaecat minim cillum dolor ut cupidatat. Lorem ipsum esse consectetur proident dolor consequat duis sed duis magna ullamco aliquip ut ut reprehenderit minim aliqua laborum proident laborum. In sit magna pariatur laborum id cillum excepteur nulla tempor occaecat fugiat dolor ut quis duis do in enim. Magna et enim velit in sed officia ut ut ut voluptate. diff --git a/src/content/cfp.mdx b/src/content/cfp.mdx new file mode 100644 index 0000000..ebbaaa6 --- /dev/null +++ b/src/content/cfp.mdx @@ -0,0 +1,23 @@ +import { Button } from '../components/button' + +# Calls for Action + +## Calls for Presentations +Call for Lightning Talks + +KNIT9 attendees have the opportunity to present lightning talks on the following topics: + +1. Enabling experimentation in various science domains +2. Getting started with FABRIC -- Unique features, useful tricks, sharable services +3. Experiments across FABRIC and other testbeds +4. Propose a compelling new topic + +These talks should show active FABRIC experiment views and results. For planned experiments, we encourage presenting planned topology and resources (FABRIC and other) as specific as possible. + +Submissions are due July 15 via our [submission form](https://docs.google.com/forms/d/1x-JXFHXTNgN6-wkqcoBcnFNAvkPdRSCIrX_poPTXazw/viewform?edit_requested=true). + +
+ +
+ +For more questions, email [Chelsea Davis](mailto:cdavis@renci.org) diff --git a/src/content/home.md b/src/content/home.md deleted file mode 100644 index df7e794..0000000 --- a/src/content/home.md +++ /dev/null @@ -1,29 +0,0 @@ -# KNIT 8 - -## Registration is Open! - -_March 19 – 21, 2024 | San Diego, CA_ - -KNIT 8 will take place March 19–21, 2024 in San Diego, CA. The event is hosted by the [San Diego Supercomputer Center](https://www.sdsc.edu/) and co-located with the [Fifth National Research Platform (5NRP)](https://nationalresearchplatform.org/) Workshop. It will be the first workshop since [FABRIC](https://fabric-testbed.net) entered full operations. - -The last day to register is _March 1, 2024_. -Previous KNIT attendees and students are eligible to receive discounted pricing. -See what [travel accommodations](/travel) are available, -and [register now](/register)! - - - ---- - -## What to Expect at KNIT 8? - -We are excited to announce that FABRIC attendees will have the privilege to attend the NRP keynote about the NAIRR Pilot, given by Dr. Katie Antypas from the NSF Office of Advanced Cyberinfrastructure. Additional sessions include FABRIC keynotes from kc claffy and Arpit Gupta and an FPGA demo / tutorial led by Nik Sultana. We'll plan to share more information about our agenda in the coming weeks. - -The workshop will include small-group, hands-on FABRIC tutorial sessions and advanced training topics. During the event, experimenters across multiple science domains will highlight their use of FABRIC to push forward compelling experiments. The FABRIC team will set the stage for the future of FABRIC and solicit feedback from fellow participants during talks and open mic sessions. Additionally, the team will host an information session for users interested in becoming FABRIC Ambassadors. Attendees will get the chance to explore what FABRIC has to offer, connect with the FABRIC community, and provide feedback to the FABRIC team. - -During the week, FABRIC and NRP will co-host two events — a demo night and a social program — giving attendees from both workshops a chance to connect and create pathways for collaboration. Additionally, attendees will have the chance to hear keynotes and plenary discussions built around the interests of both FABRIC users and NRP members. - -##### Funding Details - -This work is funded by NSF Grants No. CNS-1935966, CNS-2029261, CNS-2029235, CNS-2029200, CNS-2029260. - diff --git a/src/content/home.mdx b/src/content/home.mdx new file mode 100644 index 0000000..55d85fe --- /dev/null +++ b/src/content/home.mdx @@ -0,0 +1,23 @@ +import { Button } from '../components/button' + +# KNIT 9 + +## Registration is Open! + +September 24 - 27, 2024 | Kansas City, MO + +KNIT 9, the next FABRIC Community Workshop, will take place September 24, 2024 in Kansas City, MO, and will be co-located with the MERIF Workshop. The workshop will include small-group, hands-on FABRIC tutorial sessions and advanced training topics. During the event, experimenters across multiple science domains will highlight their use of FABRIC to push forward compelling experiments. The FABRIC team will set the stage for the future of FABRIC and solicit feedback from fellow participants during talks and open mic sessions. + +The last day to register is _Monday, September 2, 2024_. +Previous KNIT attendees and students are eligible to receive discounted pricing. +See what [travel accommodations](/travel) are available, +and [register now](/registration)! + +
+ + +
+ +##### Funding Details + +FABRIC is funded by NSF grants CNS-1935966, CNS-2029176, CNS-2029200, CNS-2029235, CNS-2029260, CNS-2029261 and CNS-2330891. \ No newline at end of file diff --git a/src/content/registration.md b/src/content/registration.md deleted file mode 100644 index f09021f..0000000 --- a/src/content/registration.md +++ /dev/null @@ -1,21 +0,0 @@ -# Registration - -## When - -- Workshop: Tuesday March 19, 2024 – Thursday March 21, 2024 -- Registration deadline: Friday March 1, 2024 - -## Where - -San Diego Supercomputer Center, UC San Diego -9836 Hopkins Drive, La Jolla CA 92093 - - -## Cost - -- **Full registration** - - Early Bird: $200 (ends Feb. 1, 2024) - - Regular: $300 -- **Streaming pass**: $100 -- **Student**: $100 -- **Previous KNIT attendee**: $150 diff --git a/src/content/registration.mdx b/src/content/registration.mdx new file mode 100644 index 0000000..3773d9a --- /dev/null +++ b/src/content/registration.mdx @@ -0,0 +1,22 @@ +import { Button } from '../components/button' + +# Registration + +## When + +- Workshop: Tuesday September 24 - Friday September 27, 2024 +- Registration deadline: Monday, September 2, 2024 + +## Where + +Kansas City, MO + +## Cost + +- **Full KNIT-Only Registration**: $70 + +*Please also stay the rest of the week for the MERIF Workshop. You can find the pricing information for MERIF on the registration link below.* + +
+ +
\ No newline at end of file diff --git a/src/content/travel.md b/src/content/travel.md deleted file mode 100644 index 8fccefa..0000000 --- a/src/content/travel.md +++ /dev/null @@ -1,15 +0,0 @@ -# Travel - -## Hotel Block - -February 16 is the last day reserve your room as part of our hotel block. -Our team has reserved a hotel block from the evening of -Monday March 18 through checkout on Thursday March 21 -at the Sheraton La Jolla Hotel. - -> Sheraton La Jolla Hotel - -> 3299 Holiday Ct, La Jolla, CA 92037 - -Reservations can be made at the [hotel website](https://www.marriott.com/event-reservations/reservation-link.mi?id=1704930566970&key=GRP&app=resvlink). - diff --git a/src/content/travel.mdx b/src/content/travel.mdx new file mode 100644 index 0000000..f72f534 --- /dev/null +++ b/src/content/travel.mdx @@ -0,0 +1,29 @@ +import { Button } from '../components/button' + +# Travel + +## Hotel Block + +September 4 is the last day to reserve your room as part of the hotel block. Our team has reserved a hotel block from the evening of Monday September 23 through checkout on Friday September 27 at the Residence Inn. + +> Residence Inn + +> 4601 Broadway Blvd, Kansas City, MO 64112 + +Reservations can be made at the [hotel website](https://www.marriott.com/event-reservations/reservation-link.mi?id=1717098427388&key=GRP&app=resvlink). + +
+ +
+ +## Travel Stipends + +Travel grant applications will be evaluated on there ability to increase the diversity of the KNIT conference through ... + +1. A wide range of institutions and organizations, +2. Providing opportunities for attendees to contribute ideas, share expertise, and receive training, and +3. The applicants ability to stimulate successful FABRIC experiments that can lead to important scientific impacts in a diverse range of science domains. + +Important Note: In order to receive travel grant reimbursements, you are required to serve as an active note taker during the FABRIC KNIT Workshop sessions and fill out a feedback survey provided after the workshop. Should you be awarded, you will be given additional instructions for your note taking assignment. + +***Application form is now closed.*** \ No newline at end of file diff --git a/src/images/KNIT9-logo.png b/src/images/KNIT9-logo.png new file mode 100644 index 0000000..420f196 Binary files /dev/null and b/src/images/KNIT9-logo.png differ diff --git a/src/images/knit-logo-numberless-dark.png b/src/images/knit-logo-numberless-dark.png new file mode 100644 index 0000000..8a0e74d Binary files /dev/null and b/src/images/knit-logo-numberless-dark.png differ diff --git a/src/images/knit-logo-numberless.png b/src/images/knit-logo-numberless.png new file mode 100644 index 0000000..ba98bce Binary files /dev/null and b/src/images/knit-logo-numberless.png differ diff --git a/src/index.html b/src/index.html index 4272b75..e4d9def 100644 --- a/src/index.html +++ b/src/index.html @@ -8,4 +8,4 @@
- \ No newline at end of file + diff --git a/src/index.js b/src/index.js index 983260d..48df8f7 100644 --- a/src/index.js +++ b/src/index.js @@ -9,7 +9,10 @@ const root = createRoot(container) const ProvisionedApp = () => ( - + diff --git a/src/theme/base.css b/src/theme/base.css index 0a8dfc4..92f5ec5 100644 --- a/src/theme/base.css +++ b/src/theme/base.css @@ -7,7 +7,7 @@ body { margin: 0; font-family: "IBM Plex Sans", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; - font-weight: 300; + font-weight: 400; font-size: 13pt; } html { @@ -38,3 +38,8 @@ main { ); background-attachment: fixed; } + +.button-container { + display: flex; + justify-content: center; +} \ No newline at end of file diff --git a/src/theme/components.js b/src/theme/components.js index 57b570c..e756557 100644 --- a/src/theme/components.js +++ b/src/theme/components.js @@ -6,27 +6,29 @@ export const components = { color: theme.palette.primary[900], // color: 'var(--knit-palette-primary-900)', ...(ownerState.level === 'h1' && { - fontSize: '360%', + fontSize: '250%', color: theme.palette.primary[100], margin: '16px 0', + fontWeight: 600 }), ...(ownerState.level === 'h2' && { - fontSize: '250%', + fontSize: '175%', color: theme.palette.primary[400], margin: '16px 0', + fontWeight: 500, }), ...(ownerState.level === 'h3' && { - fontSize: '200%', + fontSize: '150%', color: theme.palette.secondary[900], margin: '16px 0', }), ...(ownerState.level === 'h4' && { - fontSize: '166%', + fontSize: '130%', color: theme.palette.secondary[400], margin: '16px 0', }), ...(ownerState.level === 'h5' && { - fontSize: '130%', + fontSize: '120%', color: theme.palette.tertiary[600], margin: '16px 0', }), @@ -39,4 +41,20 @@ export const components = { }), }, }, + JoyButton: { + styleOverrides: { + root: ({ ownerState, theme }) => ({ + ...(ownerState.color === 'primary' && { + backgroundColor: theme.palette.primary[500] , + color: theme.palette.primary.contrastText, + fontWeight: 400, + ':hover': { + backgroundColor: theme.palette.primary[700] , + }, + margin: '0.5rem 1rem' + }), + }), + }, + }, + } diff --git a/src/theme/index.js b/src/theme/index.js index 920ebbb..6981471 100644 --- a/src/theme/index.js +++ b/src/theme/index.js @@ -6,7 +6,7 @@ import { components } from './components' const breakpoints = { keys: ['xs', 'sm', 'md', 'lg', 'xl'], - values: { xs: 0, sm: 600, md: 900, lg: 1200, xl: 1536 }, + values: { xs: 0, sm: 500, md: 750, lg: 1200, xl: 1536 }, unit: 'px', } diff --git a/src/theme/palette.js b/src/theme/palette.js index 5eea668..1e6e8d8 100644 --- a/src/theme/palette.js +++ b/src/theme/palette.js @@ -14,7 +14,7 @@ export const palette = { main: '#47aae1', light: '#93e1f1', dark: '#2e7197', - contrastText: 'rgba(0, 0, 0, 0.87)', + contrastText: 'rgba(255, 255, 255, 0.87)', solidBg: 'var(--knit-palette-primary-300)', solidActiveBg: 'var(--knit-palette-primary-300)', diff --git a/src/views/agenda.js b/src/views/agenda.js new file mode 100644 index 0000000..52ece56 --- /dev/null +++ b/src/views/agenda.js @@ -0,0 +1,33 @@ +import { Page } from '@components/layout' +import knit9logo from '@images/KNIT9-logo.png' + +export const AgendaView = () => { + return ( + + +
+ +
+
+ ) +} \ No newline at end of file diff --git a/src/views/cfa.js b/src/views/cfa.js new file mode 100644 index 0000000..3c55431 --- /dev/null +++ b/src/views/cfa.js @@ -0,0 +1,12 @@ +import Cfp from '@content/cfp.mdx' + +import { Page } from '@components/layout' +import { componentMap } from "@components/markdown" + +export const CfaView = () => { + return ( + + + + ) +} \ No newline at end of file diff --git a/src/views/cfp.js b/src/views/cfp.js deleted file mode 100644 index d3c7da9..0000000 --- a/src/views/cfp.js +++ /dev/null @@ -1,12 +0,0 @@ -import cfp from '@content/cfp.md' - -import { Page } from '@components/layout' -import { Markdown } from '@components/markdown' - -export const CfpView = () => { - return ( - - { cfp } - - ) -} \ No newline at end of file diff --git a/src/views/home.js b/src/views/home.js index 482ef0d..bedf1ee 100644 --- a/src/views/home.js +++ b/src/views/home.js @@ -1,15 +1,15 @@ -import content from '@content/home.md' +import Home from '@content/home.mdx' import { Page } from '@components/layout' -import { Markdown } from '@components/markdown' +import { componentMap } from "@components/markdown" export const HomeView = () => { return ( - { content } + ) } \ No newline at end of file diff --git a/src/views/index.js b/src/views/index.js index fd21046..0f87365 100644 --- a/src/views/index.js +++ b/src/views/index.js @@ -1,4 +1,5 @@ -export * from './cfp' +export * from './agenda' +export * from './cfa' export * from './home' export * from './not-found' export * from './registration' diff --git a/src/views/registration.js b/src/views/registration.js index 628955d..67a1d9e 100644 --- a/src/views/registration.js +++ b/src/views/registration.js @@ -1,7 +1,7 @@ -import registration from '@content/registration.md' +import Registration from '@content/registration.mdx' import { Page } from '@components/layout' -import { Markdown } from '@components/markdown' +import { componentMap } from "@components/markdown" export const RegistrationView = () => { return ( @@ -9,7 +9,7 @@ export const RegistrationView = () => { title="Registration" description="Register for the KNIT workshop" > - { registration } + ) } \ No newline at end of file diff --git a/src/views/travel.js b/src/views/travel.js index 16e1642..37c741a 100644 --- a/src/views/travel.js +++ b/src/views/travel.js @@ -1,7 +1,7 @@ -import travel from '@content/travel.md' +import Travel from '@content/travel.mdx' import { Page } from '@components/layout' -import { Markdown } from '@components/markdown' +import { componentMap } from "@components/markdown" export const TravelView = () => { return ( @@ -9,7 +9,7 @@ export const TravelView = () => { title="Travel" description="View travel and lodging accommodations" > - { travel } + ) } \ No newline at end of file diff --git a/webpack.config.js b/webpack.config.js index 951b4ee..5647e2d 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -67,6 +67,13 @@ module.exports = { loader: 'babel-loader' } }, + { + test: /\.mdx$/, + use: [ + { loader: 'babel-loader', options: {} }, + { loader: '@mdx-js/loader', options: {} }, + ] + }, { test: /\.md$/, use: [