diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 903e2ebd..272a1370 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -11,6 +11,13 @@ body: placeholder: "I’m always frustrated when …" validations: required: true + - type: textarea + id: environment + attributes: + label: Which browser was this experienced in? Are any special extensions installed? + description: Please give us more information about your browser environment so we can reproduce the bug faster. + validations: + required: true - type: textarea id: reproduction attributes: diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 007eaa1d..964ea05e 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -24,15 +24,15 @@ jobs: steps: - - uses: actions/checkout@v2.4.0 + - uses: actions/checkout@v3.0.0 - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v2.5.1 + uses: actions/setup-node@v3.1.1 with: node-version: ${{ matrix.node-version }} - name: Load cached dependencies - uses: actions/cache@v2.1.7 + uses: actions/cache@v3.0.2 id: cache with: path: | @@ -80,10 +80,10 @@ jobs: steps: - - uses: actions/checkout@v2.4.0 + - uses: actions/checkout@v3.0.0 - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v2.5.1 + uses: actions/setup-node@v3.1.1 with: node-version: ${{ matrix.node-version }} @@ -99,7 +99,7 @@ jobs: quiet: true - name: Export screenshots (on failure only) - uses: actions/upload-artifact@v2.3.1 + uses: actions/upload-artifact@v3.0.0 if: failure() with: name: cypress-screenshots @@ -107,7 +107,7 @@ jobs: retention-days: 7 - name: Export screen recordings (on failure only) - uses: actions/upload-artifact@v2.3.1 + uses: actions/upload-artifact@v3.0.0 if: failure() with: name: cypress-videos @@ -136,15 +136,15 @@ jobs: steps: - - uses: actions/checkout@v2.4.0 + - uses: actions/checkout@v3.0.0 - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v2.5.1 + uses: actions/setup-node@v3.1.1 with: node-version: ${{ matrix.node-version }} - name: Load cached dependencies - uses: actions/cache@v2.1.7 + uses: actions/cache@v3.0.2 id: cache with: path: | diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 00000000..a2b41bdf --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,11 @@ +{ + "configurations": [ + { + "name": "Launch Tiptap demos in Google Chrome", + "request": "launch", + "type": "chrome", + "url": "http://localhost:3000", + "webRoot": "${workspaceFolder}" + } + ] +} diff --git a/demos/package-lock.json b/demos/package-lock.json index aa50b48e..60ec28ca 100644 --- a/demos/package-lock.json +++ b/demos/package-lock.json @@ -24,8 +24,8 @@ "autoprefixer": "^10.4.2", "iframe-resizer": "^4.3.2", "postcss": "^8.4.6", - "react": "^17.0.2", - "react-dom": "^17.0.2", + "react": "^18.0.0", + "react-dom": "^18.0.0", "sass": "^1.49.7", "tailwindcss": "^2.2.19", "typescript": "^4.5.5", @@ -2345,9 +2345,9 @@ } }, "node_modules/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", "dev": true }, "node_modules/modern-normalize": { @@ -2424,15 +2424,6 @@ "node": ">=8" } }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/object-hash": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz", @@ -2703,30 +2694,28 @@ } }, "node_modules/react": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", - "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/react/-/react-18.0.0.tgz", + "integrity": "sha512-x+VL6wbT4JRVPm7EGxXhZ8w8LTROaxPXOqhlGyVSrv0sB1jkyFGgXxJ8LVoPRLvPR6/CIZGFmfzqUa2NYeMr2A==", "dev": true, "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" + "loose-envify": "^1.1.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/react-dom": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz", - "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==", + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.0.0.tgz", + "integrity": "sha512-XqX7uzmFo0pUceWFCt7Gff6IyIMzFUn7QMZrbrQfGxtaxXZIcGQzoNpRLE3fQLnS4XzLLPMZX2T9TRcSrasicw==", "dev": true, "dependencies": { "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "scheduler": "^0.20.2" + "scheduler": "^0.21.0" }, "peerDependencies": { - "react": "17.0.2" + "react": "^18.0.0" } }, "node_modules/react-refresh": { @@ -2917,13 +2906,12 @@ } }, "node_modules/scheduler": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", - "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", + "version": "0.21.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.21.0.tgz", + "integrity": "sha512-1r87x5fz9MXqswA2ERLo0EbOAU74DpIUO090gIasYTqlVoJeMcl+Z1Rg7WHz+qtPujhS/hGIt9kxZOYBV3faRQ==", "dev": true, "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" + "loose-envify": "^1.1.0" } }, "node_modules/semver": { @@ -5338,9 +5326,9 @@ } }, "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", "dev": true }, "modern-normalize": { @@ -5396,12 +5384,6 @@ "path-key": "^3.0.0" } }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true - }, "object-hash": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz", @@ -5576,24 +5558,22 @@ } }, "react": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", - "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/react/-/react-18.0.0.tgz", + "integrity": "sha512-x+VL6wbT4JRVPm7EGxXhZ8w8LTROaxPXOqhlGyVSrv0sB1jkyFGgXxJ8LVoPRLvPR6/CIZGFmfzqUa2NYeMr2A==", "dev": true, "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" + "loose-envify": "^1.1.0" } }, "react-dom": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz", - "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==", + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.0.0.tgz", + "integrity": "sha512-XqX7uzmFo0pUceWFCt7Gff6IyIMzFUn7QMZrbrQfGxtaxXZIcGQzoNpRLE3fQLnS4XzLLPMZX2T9TRcSrasicw==", "dev": true, "requires": { "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "scheduler": "^0.20.2" + "scheduler": "^0.21.0" } }, "react-refresh": { @@ -5735,13 +5715,12 @@ } }, "scheduler": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", - "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", + "version": "0.21.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.21.0.tgz", + "integrity": "sha512-1r87x5fz9MXqswA2ERLo0EbOAU74DpIUO090gIasYTqlVoJeMcl+Z1Rg7WHz+qtPujhS/hGIt9kxZOYBV3faRQ==", "dev": true, "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" + "loose-envify": "^1.1.0" } }, "semver": { diff --git a/demos/package.json b/demos/package.json index abaa5a1a..2e315fe3 100644 --- a/demos/package.json +++ b/demos/package.json @@ -24,8 +24,8 @@ "autoprefixer": "^10.4.2", "iframe-resizer": "^4.3.2", "postcss": "^8.4.6", - "react": "^17.0.2", - "react-dom": "^17.0.2", + "react": "^18.0.0", + "react-dom": "^18.0.0", "sass": "^1.49.7", "tailwindcss": "^2.2.19", "typescript": "^4.5.5", diff --git a/demos/setup/react.ts b/demos/setup/react.ts index 3011ccb6..a9867226 100644 --- a/demos/setup/react.ts +++ b/demos/setup/react.ts @@ -1,5 +1,5 @@ import React from 'react' -import ReactDOM from 'react-dom' +import { createRoot } from 'react-dom/client' import 'iframe-resizer/js/iframeResizer.contentWindow' import { debug, splitName } from './helper' import './style.scss' @@ -13,7 +13,11 @@ export default function init(name: string, source: any) { import(`../src/${demoCategory}/${demoName}/React/index.jsx`) .then(module => { - ReactDOM.render(React.createElement(module.default), document.getElementById('app')) + const root = document.getElementById('app') + + if (root) { + createRoot(root).render(React.createElement(module.default)) + } debug() }) } diff --git a/demos/src/Examples/CSSModules/Vue/index.css b/demos/src/Examples/CSSModules/Vue/index.css new file mode 100644 index 00000000..adc68fa6 --- /dev/null +++ b/demos/src/Examples/CSSModules/Vue/index.css @@ -0,0 +1,3 @@ +h1 { + color: red; +} diff --git a/demos/src/Examples/CSSModules/Vue/index.html b/demos/src/Examples/CSSModules/Vue/index.html new file mode 100644 index 00000000..e69de29b diff --git a/demos/src/Examples/CSSModules/Vue/index.spec.js b/demos/src/Examples/CSSModules/Vue/index.spec.js new file mode 100644 index 00000000..4e4c50ef --- /dev/null +++ b/demos/src/Examples/CSSModules/Vue/index.spec.js @@ -0,0 +1,17 @@ +context('/src/Examples/CSSModules/Vue/', () => { + before(() => { + cy.visit('/src/Examples/CSSModules/Vue/') + }) + + beforeEach(() => { + cy.get('.ProseMirror').then(([{ editor }]) => { + editor.commands.setContent('