diff --git a/package-lock.json b/package-lock.json index 62bd751..cc8b89c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,6 +10,7 @@ "dependencies": { "@emotion/react": "^11.11.3", "@emotion/styled": "^11.11.0", + "@radix-ui/react-context-menu": "^2.1.5", "@remirror/pm": "^2.0.8", "@remirror/react": "^2.0.35", "@remirror/react-editors": "^1.0.40", @@ -18,9 +19,11 @@ "react": "^18.2.0", "react-dom": "^18.2.0", "react-router-dom": "^6.21.2", - "remirror": "^2.0.38" + "remirror": "^2.0.38", + "use-debounce": "^10.0.0" }, "devDependencies": { + "@tailwindcss/typography": "^0.5.10", "@types/react": "^18.2.43", "@types/react-dom": "^18.2.17", "@typescript-eslint/eslint-plugin": "^6.14.0", @@ -1658,6 +1661,534 @@ "url": "https://opencollective.com/popperjs" } }, + "node_modules/@radix-ui/primitive": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.0.1.tgz", + "integrity": "sha512-yQ8oGX2GVsEYMWGxcovu1uGWPCxV5BFfeeYxqPmuAzUyLT9qmaMXSAhXpb0WrspIeqYzdJpkh2vHModJPgRIaw==", + "dependencies": { + "@babel/runtime": "^7.13.10" + } + }, + "node_modules/@radix-ui/react-arrow": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.0.3.tgz", + "integrity": "sha512-wSP+pHsB/jQRaL6voubsQ/ZlrGBHHrOjmBnr19hxYgtS0WvAFwZhK2WP/YY5yF9uKECCEEDGxuLxq1NBK51wFA==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-primitive": "1.0.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-collection": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.0.3.tgz", + "integrity": "sha512-3SzW+0PW7yBBoQlT8wNcGtaxaD0XSu0uLUFgrtHY08Acx05TaHaOmVLR73c0j/cqpDy53KBMO7s0dx2wmOIDIA==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-context": "1.0.1", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-slot": "1.0.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-compose-refs": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.0.1.tgz", + "integrity": "sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-context": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.0.1.tgz", + "integrity": "sha512-ebbrdFoYTcuZ0v4wG5tedGnp9tzcV8awzsxYph7gXUyvnNLuTIcCk1q17JEbnVhXAKG9oX3KtchwiMIAYp9NLg==", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-context-menu": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context-menu/-/react-context-menu-2.1.5.tgz", + "integrity": "sha512-R5XaDj06Xul1KGb+WP8qiOh7tKJNz2durpLBXAGZjSVtctcRFCuEvy2gtMwRJGePwQQE5nV77gs4FwRi8T+r2g==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/primitive": "1.0.1", + "@radix-ui/react-context": "1.0.1", + "@radix-ui/react-menu": "2.0.6", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-use-callback-ref": "1.0.1", + "@radix-ui/react-use-controllable-state": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-direction": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.0.1.tgz", + "integrity": "sha512-RXcvnXgyvYvBEOhCBuddKecVkoMiI10Jcm5cTI7abJRAHYfFxeu+FBQs/DvdxSYucxR5mna0dNsL6QFlds5TMA==", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dismissable-layer": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.0.5.tgz", + "integrity": "sha512-aJeDjQhywg9LBu2t/At58hCvr7pEm0o2Ke1x33B+MhjNmmZ17sy4KImo0KPLgsnc/zN7GPdce8Cnn0SWvwZO7g==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/primitive": "1.0.1", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-use-callback-ref": "1.0.1", + "@radix-ui/react-use-escape-keydown": "1.0.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-focus-guards": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.0.1.tgz", + "integrity": "sha512-Rect2dWbQ8waGzhMavsIbmSVCgYxkXLxxR3ZvCX79JOglzdEy4JXMb98lq4hPxUbLr77nP0UOGf4rcMU+s1pUA==", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-focus-scope": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.0.4.tgz", + "integrity": "sha512-sL04Mgvf+FmyvZeYfNu1EPAaaxD+aw7cYeIB9L9Fvq8+urhltTRaEo5ysKOpHuKPclsZcSUMKlN05x4u+CINpA==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-use-callback-ref": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-id": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.0.1.tgz", + "integrity": "sha512-tI7sT/kqYp8p96yGWY1OAnLHrqDgzHefRBKQ2YAkBS5ja7QLcZ9Z/uY7bEjPUatf8RomoXM8/1sMj1IJaE5UzQ==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-use-layout-effect": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-menu": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@radix-ui/react-menu/-/react-menu-2.0.6.tgz", + "integrity": "sha512-BVkFLS+bUC8HcImkRKPSiVumA1VPOOEC5WBMiT+QAVsPzW1FJzI9KnqgGxVDPBcql5xXrHkD3JOVoXWEXD8SYA==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/primitive": "1.0.1", + "@radix-ui/react-collection": "1.0.3", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-context": "1.0.1", + "@radix-ui/react-direction": "1.0.1", + "@radix-ui/react-dismissable-layer": "1.0.5", + "@radix-ui/react-focus-guards": "1.0.1", + "@radix-ui/react-focus-scope": "1.0.4", + "@radix-ui/react-id": "1.0.1", + "@radix-ui/react-popper": "1.1.3", + "@radix-ui/react-portal": "1.0.4", + "@radix-ui/react-presence": "1.0.1", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-roving-focus": "1.0.4", + "@radix-ui/react-slot": "1.0.2", + "@radix-ui/react-use-callback-ref": "1.0.1", + "aria-hidden": "^1.1.1", + "react-remove-scroll": "2.5.5" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-popper": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.1.3.tgz", + "integrity": "sha512-cKpopj/5RHZWjrbF2846jBNacjQVwkP068DfmgrNJXpvVWrOvlAmE9xSiy5OqeE+Gi8D9fP+oDhUnPqNMY8/5w==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@floating-ui/react-dom": "^2.0.0", + "@radix-ui/react-arrow": "1.0.3", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-context": "1.0.1", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-use-callback-ref": "1.0.1", + "@radix-ui/react-use-layout-effect": "1.0.1", + "@radix-ui/react-use-rect": "1.0.1", + "@radix-ui/react-use-size": "1.0.1", + "@radix-ui/rect": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-portal": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.0.4.tgz", + "integrity": "sha512-Qki+C/EuGUVCQTOTD5vzJzJuMUlewbzuKyUy+/iHM2uwGiru9gZeBJtHAPKAEkB5KWGi9mP/CHKcY0wt1aW45Q==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-primitive": "1.0.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-presence": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.0.1.tgz", + "integrity": "sha512-UXLW4UAbIY5ZjcvzjfRFo5gxva8QirC9hF7wRE4U5gz+TP0DbRk+//qyuAQ1McDxBt1xNMBTaciFGvEmJvAZCg==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-use-layout-effect": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-primitive": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-1.0.3.tgz", + "integrity": "sha512-yi58uVyoAcK/Nq1inRY56ZSjKypBNKTa/1mcL8qdl6oJeEaDbOldlzrGn7P6Q3Id5d+SYNGc5AJgc4vGhjs5+g==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-slot": "1.0.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-roving-focus": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.0.4.tgz", + "integrity": "sha512-2mUg5Mgcu001VkGy+FfzZyzbmuUWzgWkj3rvv4yu+mLw03+mTzbxZHvfcGyFp2b8EkQeMkpRQ5FiA2Vr2O6TeQ==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/primitive": "1.0.1", + "@radix-ui/react-collection": "1.0.3", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-context": "1.0.1", + "@radix-ui/react-direction": "1.0.1", + "@radix-ui/react-id": "1.0.1", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-use-callback-ref": "1.0.1", + "@radix-ui/react-use-controllable-state": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-slot": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.0.2.tgz", + "integrity": "sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-compose-refs": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-callback-ref": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.0.1.tgz", + "integrity": "sha512-D94LjX4Sp0xJFVaoQOd3OO9k7tpBYNOXdVhkltUbGv2Qb9OXdrg/CpsjlZv7ia14Sylv398LswWBVVu5nqKzAQ==", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-controllable-state": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.0.1.tgz", + "integrity": "sha512-Svl5GY5FQeN758fWKrjM6Qb7asvXeiZltlT4U2gVfl8Gx5UAv2sMR0LWo8yhsIZh2oQ0eFdZ59aoOOMV7b47VA==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-use-callback-ref": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-escape-keydown": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.0.3.tgz", + "integrity": "sha512-vyL82j40hcFicA+M4Ex7hVkB9vHgSse1ZWomAqV2Je3RleKGO5iM8KMOEtfoSB0PnIelMd2lATjTGMYqN5ylTg==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-use-callback-ref": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-layout-effect": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.0.1.tgz", + "integrity": "sha512-v/5RegiJWYdoCvMnITBkNNx6bCj20fiaJnWtRkU18yITptraXjffz5Qbn05uOiQnOvi+dbkznkoaMltz1GnszQ==", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-rect": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-1.0.1.tgz", + "integrity": "sha512-Cq5DLuSiuYVKNU8orzJMbl15TXilTnJKUCltMVQg53BQOF1/C5toAaGrowkgksdBQ9H+SRL23g0HDmg9tvmxXw==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/rect": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-size": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-1.0.1.tgz", + "integrity": "sha512-ibay+VqrgcaI6veAojjofPATwledXiSmX+C0KrBk/xgpX9rBzPV3OsfwlhQdUOFbh+LKQorLYT+xTXW9V8yd0g==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-use-layout-effect": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/rect": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/rect/-/rect-1.0.1.tgz", + "integrity": "sha512-fyrgCaedtvMg9NK3en0pnOYJdtfwxUcNolezkNPUsoX57X8oQk+NkqcvzHXD2uKNij6GXmWU9NDru2IWjrO4BQ==", + "dependencies": { + "@babel/runtime": "^7.13.10" + } + }, "node_modules/@remirror/core": { "version": "2.0.19", "resolved": "https://registry.npmjs.org/@remirror/core/-/core-2.0.19.tgz", @@ -3327,6 +3858,34 @@ "@svgmoji/core": "^3.2.0" } }, + "node_modules/@tailwindcss/typography": { + "version": "0.5.10", + "resolved": "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.10.tgz", + "integrity": "sha512-Pe8BuPJQJd3FfRnm6H0ulKIGoMEQS+Vq01R6M5aCrFB/ccR/shT+0kXLjouGC1gFLm9hopTFN+DMP0pfwRWzPw==", + "dev": true, + "dependencies": { + "lodash.castarray": "^4.4.0", + "lodash.isplainobject": "^4.0.6", + "lodash.merge": "^4.6.2", + "postcss-selector-parser": "6.0.10" + }, + "peerDependencies": { + "tailwindcss": ">=3.0.0 || insiders" + } + }, + "node_modules/@tailwindcss/typography/node_modules/postcss-selector-parser": { + "version": "6.0.10", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", + "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/@types/babel__core": { "version": "7.20.5", "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", @@ -4383,6 +4942,11 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/detect-node-es": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", + "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==" + }, "node_modules/didyoumean": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", @@ -5173,6 +5737,14 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/get-nonce": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", + "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", + "engines": { + "node": ">=6" + } + }, "node_modules/get-symbol-description": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", @@ -5488,6 +6060,14 @@ "node": ">= 0.4" } }, + "node_modules/invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, "node_modules/is-alphabetical": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", @@ -6014,6 +6594,18 @@ "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" }, + "node_modules/lodash.castarray": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.castarray/-/lodash.castarray-4.4.0.tgz", + "integrity": "sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==", + "dev": true + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", + "dev": true + }, "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", @@ -7049,6 +7641,51 @@ "node": ">=0.10.0" } }, + "node_modules/react-remove-scroll": { + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.5.5.tgz", + "integrity": "sha512-ImKhrzJJsyXJfBZ4bzu8Bwpka14c/fQt0k+cyFp/PBhTfyDnU5hjOtM4AG/0AMyy8oKzOTR0lDgJIM7pYXI0kw==", + "dependencies": { + "react-remove-scroll-bar": "^2.3.3", + "react-style-singleton": "^2.2.1", + "tslib": "^2.1.0", + "use-callback-ref": "^1.3.0", + "use-sidecar": "^1.1.2" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-remove-scroll-bar": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.4.tgz", + "integrity": "sha512-63C4YQBUt0m6ALadE9XV56hV8BgJWDmmTPY758iIJjfQKt2nYwoUrPk0LXRXcB/yIj82T1/Ixfdpdk68LwIB0A==", + "dependencies": { + "react-style-singleton": "^2.2.1", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/react-router": { "version": "6.21.2", "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.21.2.tgz", @@ -7079,6 +7716,28 @@ "react-dom": ">=16.8" } }, + "node_modules/react-style-singleton": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.1.tgz", + "integrity": "sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==", + "dependencies": { + "get-nonce": "^1.0.0", + "invariant": "^2.2.4", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/react-transition-group": { "version": "4.4.5", "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", @@ -8117,6 +8776,37 @@ "punycode": "^2.1.0" } }, + "node_modules/use-callback-ref": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.1.tgz", + "integrity": "sha512-Lg4Vx1XZQauB42Hw3kK7JM6yjVjgFmFC5/Ab797s79aARomD2nEErc4mCgM8EZrARLmmbWpi5DGCadmK50DcAQ==", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-debounce": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/use-debounce/-/use-debounce-10.0.0.tgz", + "integrity": "sha512-XRjvlvCB46bah9IBXVnq/ACP2lxqXyZj0D9hj4K5OzNroMDpTEBg8Anuh1/UfRTRs7pLhQ+RiNxxwZu9+MVl1A==", + "engines": { + "node": ">= 16.0.0" + }, + "peerDependencies": { + "react": ">=16.8.0" + } + }, "node_modules/use-isomorphic-layout-effect": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.2.tgz", @@ -8141,6 +8831,27 @@ "react": "^16.8.0 || ^17.0.0 || ^18.0.0" } }, + "node_modules/use-sidecar": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.2.tgz", + "integrity": "sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==", + "dependencies": { + "detect-node-es": "^1.1.0", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.9.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", diff --git a/package.json b/package.json index b610b80..0cc512f 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "version": "0.0.0", "type": "module", "scripts": { - "dev": "vite", + "dev": "vite --host", "build": "tsc && vite build", "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0", "preview": "vite preview" @@ -12,6 +12,7 @@ "dependencies": { "@emotion/react": "^11.11.3", "@emotion/styled": "^11.11.0", + "@radix-ui/react-context-menu": "^2.1.5", "@remirror/pm": "^2.0.8", "@remirror/react": "^2.0.35", "@remirror/react-editors": "^1.0.40", @@ -20,9 +21,11 @@ "react": "^18.2.0", "react-dom": "^18.2.0", "react-router-dom": "^6.21.2", - "remirror": "^2.0.38" + "remirror": "^2.0.38", + "use-debounce": "^10.0.0" }, "devDependencies": { + "@tailwindcss/typography": "^0.5.10", "@types/react": "^18.2.43", "@types/react-dom": "^18.2.17", "@typescript-eslint/eslint-plugin": "^6.14.0", diff --git a/sample-markdown-folder copy/.obsidian/app.json b/sample-markdown-folder copy/.obsidian/app.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/sample-markdown-folder copy/.obsidian/app.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/sample-markdown-folder copy/.obsidian/appearance.json b/sample-markdown-folder copy/.obsidian/appearance.json new file mode 100644 index 0000000..c8c365d --- /dev/null +++ b/sample-markdown-folder copy/.obsidian/appearance.json @@ -0,0 +1,3 @@ +{ + "accentColor": "" +} \ No newline at end of file diff --git a/sample-markdown-folder copy/.obsidian/core-plugins-migration.json b/sample-markdown-folder copy/.obsidian/core-plugins-migration.json new file mode 100644 index 0000000..436f43c --- /dev/null +++ b/sample-markdown-folder copy/.obsidian/core-plugins-migration.json @@ -0,0 +1,30 @@ +{ + "file-explorer": true, + "global-search": true, + "switcher": true, + "graph": true, + "backlink": true, + "canvas": true, + "outgoing-link": true, + "tag-pane": true, + "properties": false, + "page-preview": true, + "daily-notes": true, + "templates": true, + "note-composer": true, + "command-palette": true, + "slash-command": false, + "editor-status": true, + "bookmarks": true, + "markdown-importer": false, + "zk-prefixer": false, + "random-note": false, + "outline": true, + "word-count": true, + "slides": false, + "audio-recorder": false, + "workspaces": false, + "file-recovery": true, + "publish": false, + "sync": false +} \ No newline at end of file diff --git a/sample-markdown-folder copy/.obsidian/core-plugins.json b/sample-markdown-folder copy/.obsidian/core-plugins.json new file mode 100644 index 0000000..9405bfd --- /dev/null +++ b/sample-markdown-folder copy/.obsidian/core-plugins.json @@ -0,0 +1,20 @@ +[ + "file-explorer", + "global-search", + "switcher", + "graph", + "backlink", + "canvas", + "outgoing-link", + "tag-pane", + "page-preview", + "daily-notes", + "templates", + "note-composer", + "command-palette", + "editor-status", + "bookmarks", + "outline", + "word-count", + "file-recovery" +] \ No newline at end of file diff --git a/sample-markdown-folder copy/.obsidian/graph.json b/sample-markdown-folder copy/.obsidian/graph.json new file mode 100644 index 0000000..e21a18d --- /dev/null +++ b/sample-markdown-folder copy/.obsidian/graph.json @@ -0,0 +1,22 @@ +{ + "collapse-filter": true, + "search": "", + "showTags": false, + "showAttachments": false, + "hideUnresolved": false, + "showOrphans": true, + "collapse-color-groups": true, + "colorGroups": [], + "collapse-display": true, + "showArrow": false, + "textFadeMultiplier": 0, + "nodeSizeMultiplier": 1, + "lineSizeMultiplier": 1, + "collapse-forces": true, + "centerStrength": 0.518713248970312, + "repelStrength": 10, + "linkStrength": 1, + "linkDistance": 250, + "scale": 1, + "close": false +} \ No newline at end of file diff --git a/sample-markdown-folder copy/.obsidian/workspace.json b/sample-markdown-folder copy/.obsidian/workspace.json new file mode 100644 index 0000000..5fd1936 --- /dev/null +++ b/sample-markdown-folder copy/.obsidian/workspace.json @@ -0,0 +1,161 @@ +{ + "main": { + "id": "8d4e0d7b1d235c77", + "type": "split", + "children": [ + { + "id": "9e21d6ab2d48227d", + "type": "tabs", + "children": [ + { + "id": "aa18295d66dc0f82", + "type": "leaf", + "state": { + "type": "markdown", + "state": { + "file": "folder/subfolder/test66.md", + "mode": "source", + "source": false + } + } + } + ] + } + ], + "direction": "vertical" + }, + "left": { + "id": "998e02dba9179cfc", + "type": "split", + "children": [ + { + "id": "4e6b8086a6104914", + "type": "tabs", + "children": [ + { + "id": "ca0bafc2d5792509", + "type": "leaf", + "state": { + "type": "file-explorer", + "state": { + "sortOrder": "alphabetical" + } + } + }, + { + "id": "e1705145d52813ef", + "type": "leaf", + "state": { + "type": "search", + "state": { + "query": "", + "matchingCase": false, + "explainSearch": false, + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical" + } + } + }, + { + "id": "a92a326292eb8a13", + "type": "leaf", + "state": { + "type": "bookmarks", + "state": {} + } + } + ] + } + ], + "direction": "horizontal", + "width": 300 + }, + "right": { + "id": "5b0aafda22173b8b", + "type": "split", + "children": [ + { + "id": "415a8742e586990c", + "type": "tabs", + "children": [ + { + "id": "ecaa4a612c4324f0", + "type": "leaf", + "state": { + "type": "backlink", + "state": { + "file": "folder/subfolder/test66.md", + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical", + "showSearch": false, + "searchQuery": "", + "backlinkCollapsed": false, + "unlinkedCollapsed": true + } + } + }, + { + "id": "24d734be5e8f0959", + "type": "leaf", + "state": { + "type": "outgoing-link", + "state": { + "file": "folder/subfolder/test66.md", + "linksCollapsed": false, + "unlinkedCollapsed": true + } + } + }, + { + "id": "44acc73aabc3df82", + "type": "leaf", + "state": { + "type": "tag", + "state": { + "sortOrder": "frequency", + "useHierarchy": true + } + } + }, + { + "id": "66ac4ddd7b6a46bd", + "type": "leaf", + "state": { + "type": "outline", + "state": { + "file": "folder/subfolder/test66.md" + } + } + } + ] + } + ], + "direction": "horizontal", + "width": 300, + "collapsed": true + }, + "left-ribbon": { + "hiddenItems": { + "switcher:Open quick switcher": false, + "graph:Open graph view": false, + "canvas:Create new canvas": false, + "daily-notes:Open today's daily note": false, + "templates:Insert template": false, + "command-palette:Open command palette": false + } + }, + "active": "aa18295d66dc0f82", + "lastOpenFiles": [ + "folder/subfolder/test55.md", + "folder/subfolder/test66.md", + "This is a test o k...sdffdsafd .md", + "Todo list ✅.md", + "Untitled.canvas", + "Untitled 1.canvas", + "1200x627 - Glowing.png", + "2024-01-21.md", + "folder/hmm .. pretty cool✅.md" + ] +} \ No newline at end of file diff --git a/sample-markdown-folder copy/1200x627 - Glowing.png b/sample-markdown-folder copy/1200x627 - Glowing.png new file mode 100644 index 0000000..92bdbb0 Binary files /dev/null and b/sample-markdown-folder copy/1200x627 - Glowing.png differ diff --git a/sample-markdown-folder copy/2024-01-21.md b/sample-markdown-folder copy/2024-01-21.md new file mode 100644 index 0000000..e69de29 diff --git a/sample-markdown-folder copy/This is a test o k...sdffdsafd .md b/sample-markdown-folder copy/This is a test o k...sdffdsafd .md new file mode 100644 index 0000000..1a8dad0 --- /dev/null +++ b/sample-markdown-folder copy/This is a test o k...sdffdsafd .md @@ -0,0 +1,3 @@ +this is a tesr this is a test this is a test sdfasdsadfads asdfsadf + +thisi this is a test erterstrete dasf sdgfasdf this is a test sdfgsdfg sdafdfs asdfasdf \ No newline at end of file diff --git "a/sample-markdown-folder copy/Todo list \342\234\205.md" "b/sample-markdown-folder copy/Todo list \342\234\205.md" new file mode 100644 index 0000000..6580546 --- /dev/null +++ "b/sample-markdown-folder copy/Todo list \342\234\205.md" @@ -0,0 +1,10 @@ +* add support for images + interesteing + +* add support for links + +* add menu bar + +* fix styling for bullet points, etc. + +Ok so it's pretty basic, cool got it sdfasdf!![[1200x627 - Glowing.png]] \ No newline at end of file diff --git a/sample-markdown-folder copy/Untitled 1.canvas b/sample-markdown-folder copy/Untitled 1.canvas new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/sample-markdown-folder copy/Untitled 1.canvas @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/sample-markdown-folder copy/Untitled.canvas b/sample-markdown-folder copy/Untitled.canvas new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/sample-markdown-folder copy/Untitled.canvas @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git "a/sample-markdown-folder copy/folder/hmm .. pretty cool\342\234\205.md" "b/sample-markdown-folder copy/folder/hmm .. pretty cool\342\234\205.md" new file mode 100644 index 0000000..ee122c8 --- /dev/null +++ "b/sample-markdown-folder copy/folder/hmm .. pretty cool\342\234\205.md" @@ -0,0 +1,17 @@ +hello this is a **test** + +# This is a testasdfasdf + +hello this is a **test** + +# This is a testasdfasd sdafasdfasdfsad asdfasdfa sdfasdf asdf aasdf asdf asd asdf asdf asd asdf asdf asd asdf asdf asd asdf asdf asd asdf asdf asd sdf asd fsadfasdsad ffsddsfsad fasdfasd fassdfa sad fasd fsasdasdfasdfsadfasdfasdfsadfasdfasdff asdfsadfasdfsdfasdf + +hello this is a **test** + +# This is a testasdfasdf asdfsadfasdfsdfasdf + +hello this is a **test** + +# This is a testasdfasdf asdfsadfasdfsdfasdf + +# asdfsadfasdfsdfasdf \ No newline at end of file diff --git a/sample-markdown-folder/folder/subfolder/test5.md b/sample-markdown-folder copy/folder/subfolder/test55.md similarity index 56% rename from sample-markdown-folder/folder/subfolder/test5.md rename to sample-markdown-folder copy/folder/subfolder/test55.md index 0b60c41..372006e 100644 --- a/sample-markdown-folder/folder/subfolder/test5.md +++ b/sample-markdown-folder copy/folder/subfolder/test55.md @@ -1,3 +1,3 @@ hello this is a test -# test 5test \ No newline at end of file +# test 4 asdfsadf \ No newline at end of file diff --git a/sample-markdown-folder copy/folder/subfolder/test66.md b/sample-markdown-folder copy/folder/subfolder/test66.md new file mode 100644 index 0000000..c2bd329 --- /dev/null +++ b/sample-markdown-folder copy/folder/subfolder/test66.md @@ -0,0 +1,6 @@ +this is a test +[link](./test55) + +[test] + +[[test55]] diff --git "a/sample-markdown-folder copy/folder/subfolder/thi si a test TESt \342\234\205" "b/sample-markdown-folder copy/folder/subfolder/thi si a test TESt \342\234\205" new file mode 100644 index 0000000..e69de29 diff --git "a/sample-markdown-folder/Todo list \342\234\205.md" "b/sample-markdown-folder/Todo list \342\234\205.md" new file mode 100644 index 0000000..5427467 --- /dev/null +++ "b/sample-markdown-folder/Todo list \342\234\205.md" @@ -0,0 +1,49 @@ +* ✅ add support for images + +* ✅ added ability for images reading + + * ✅ added ability to insert images + +* ✅ add support for delete files/folders + +* ✅ add support for new files/folders + +* ✅ add support for links + + * ❌ add support to add links + +* add menu bar + +* ✅show only png, webp, jpeg, jpg, svg, md files + + * prevent the upload of images that aren't in this list + + * make it save when adding an image + + * make it support adding (1) after an image if needed + +* ✅ fix styling for bullet points, etc. + +* add directory/project picker + + * improve permissions / add ability for indexdb? + + * add intro screen to select 'directory' with option to start new, or select an existing list of directories + +* better support conflict in names + +* support folder renames + +* ✅ better handle folder open/tree structure after create file + +* add refresh for files, either button or automatic + +* have a create modal with the create and open existing + +* ✅ when changing to page, it should not auto-focus + +* ✅ add scroll to filetree + +* ❌ styling for mobile + + * local file system doesn't even work on mobile... \ No newline at end of file diff --git a/sample-markdown-folder/folder/Untitled Folder (1)/Maybe I need to debounce more.md b/sample-markdown-folder/folder/Untitled Folder (1)/Maybe I need to debounce more.md new file mode 100644 index 0000000..e69de29 diff --git a/sample-markdown-folder/folder/Untitled Folder (1)/This is a test.md b/sample-markdown-folder/folder/Untitled Folder (1)/This is a test.md new file mode 100644 index 0000000..b3da463 --- /dev/null +++ b/sample-markdown-folder/folder/Untitled Folder (1)/This is a test.md @@ -0,0 +1,18 @@ +Interesting, it's not that bad + +## He's a prick + +### How long since you spoke + +**Ok pretty cool** + +* Where are my + + +1. Where are my numbers + +2. Test + + +Tes +test \ No newline at end of file diff --git a/sample-markdown-folder/folder/Untitled Folder (1)/Untitled Folder/Happy thanksgiving!.md b/sample-markdown-folder/folder/Untitled Folder (1)/Untitled Folder/Happy thanksgiving!.md new file mode 100644 index 0000000..3596890 --- /dev/null +++ b/sample-markdown-folder/folder/Untitled Folder (1)/Untitled Folder/Happy thanksgiving!.md @@ -0,0 +1 @@ +**Hey** _there_! Happy thanksgiving! :D \ No newline at end of file diff --git a/sample-markdown-folder/folder/Untitled Folder (1)/Untitled Folder/Untitled Folder/Test.md b/sample-markdown-folder/folder/Untitled Folder (1)/Untitled Folder/Untitled Folder/Test.md new file mode 100644 index 0000000..4b7f922 --- /dev/null +++ b/sample-markdown-folder/folder/Untitled Folder (1)/Untitled Folder/Untitled Folder/Test.md @@ -0,0 +1 @@ +This is a test, who can guess how it works \ No newline at end of file diff --git a/sample-markdown-folder/folder/Untitled Folder (1)/Untitled Folder/Untitled Folder/We'll see you at Christmas!.md b/sample-markdown-folder/folder/Untitled Folder (1)/Untitled Folder/Untitled Folder/We'll see you at Christmas!.md new file mode 100644 index 0000000..4cbaf6f --- /dev/null +++ b/sample-markdown-folder/folder/Untitled Folder (1)/Untitled Folder/Untitled Folder/We'll see you at Christmas!.md @@ -0,0 +1 @@ +❤️ diff --git a/sample-markdown-folder/folder/Untitled Folder (1)/Untitled Folder/Untitled.md b/sample-markdown-folder/folder/Untitled Folder (1)/Untitled Folder/Untitled.md new file mode 100644 index 0000000..3d5316f --- /dev/null +++ b/sample-markdown-folder/folder/Untitled Folder (1)/Untitled Folder/Untitled.md @@ -0,0 +1,17 @@ +this is a [link](./Happy%20thanksgiving!.md) re + +this is a [test](./Happy%20thanksgiving!.md) + +\[test\](./Happy%20thanksgiving!) + +this is **_another_** [test](../Untitled%20Folder/Happy%20thanksgiving!.md) + +[google.com](google.com) + +test ./test.md test.md\\ + +[google.co](https:////google.co). google.md + +remirror doesn't link to relative files... what to do what to do + +goog.com this is a test google.com \ No newline at end of file diff --git a/sample-markdown-folder/folder/Untitled.md b/sample-markdown-folder/folder/Untitled.md new file mode 100644 index 0000000..2a8cd99 --- /dev/null +++ b/sample-markdown-folder/folder/Untitled.md @@ -0,0 +1,5 @@ +This is a test + +Where is the only disruption + +Why can't I see \ No newline at end of file diff --git a/sample-markdown-folder/folder/subfolder/4 differences!.png b/sample-markdown-folder/folder/subfolder/4 differences!.png new file mode 100644 index 0000000..096a23f Binary files /dev/null and b/sample-markdown-folder/folder/subfolder/4 differences!.png differ diff --git a/sample-markdown-folder/folder/subfolder/advocacy-2023-b.png b/sample-markdown-folder/folder/subfolder/advocacy-2023-b.png new file mode 100644 index 0000000..cddd17c Binary files /dev/null and b/sample-markdown-folder/folder/subfolder/advocacy-2023-b.png differ diff --git a/sample-markdown-folder/folder/subfolder/alex rider books.jpeg b/sample-markdown-folder/folder/subfolder/alex rider books.jpeg new file mode 100644 index 0000000..d746d18 Binary files /dev/null and b/sample-markdown-folder/folder/subfolder/alex rider books.jpeg differ diff --git a/sample-markdown-folder/folder/subfolder/angular.png b/sample-markdown-folder/folder/subfolder/angular.png new file mode 100644 index 0000000..45f6380 Binary files /dev/null and b/sample-markdown-folder/folder/subfolder/angular.png differ diff --git a/sample-markdown-folder/folder/subfolder/astro.png b/sample-markdown-folder/folder/subfolder/astro.png new file mode 100644 index 0000000..38e0125 Binary files /dev/null and b/sample-markdown-folder/folder/subfolder/astro.png differ diff --git a/sample-markdown-folder/folder/subfolder/azure.png b/sample-markdown-folder/folder/subfolder/azure.png new file mode 100644 index 0000000..7c75031 Binary files /dev/null and b/sample-markdown-folder/folder/subfolder/azure.png differ diff --git a/sample-markdown-folder/folder/subfolder/remix.png b/sample-markdown-folder/folder/subfolder/remix.png new file mode 100644 index 0000000..92bdbb0 Binary files /dev/null and b/sample-markdown-folder/folder/subfolder/remix.png differ diff --git a/sample-markdown-folder/folder/subfolder/test4.md b/sample-markdown-folder/folder/subfolder/test55.md similarity index 70% rename from sample-markdown-folder/folder/subfolder/test4.md rename to sample-markdown-folder/folder/subfolder/test55.md index 6203a5f..9489fdd 100644 --- a/sample-markdown-folder/folder/subfolder/test4.md +++ b/sample-markdown-folder/folder/subfolder/test55.md @@ -1,3 +1,3 @@ hello this is a test -# test 4 +# test 4 \ No newline at end of file diff --git "a/sample-markdown-folder/folder/subfolder/thi si a test TESt \342\234\205 \360\237\247\220.md" "b/sample-markdown-folder/folder/subfolder/thi si a test TESt \342\234\205 \360\237\247\220.md" new file mode 100644 index 0000000..0f18c71 --- /dev/null +++ "b/sample-markdown-folder/folder/subfolder/thi si a test TESt \342\234\205 \360\237\247\220.md" @@ -0,0 +1,7 @@ +this is a link + +[test55.md](./test55.md) + + + + diff --git a/sample-markdown-folder/folder/test3.md b/sample-markdown-folder/folder/test3.md deleted file mode 100644 index 37d9102..0000000 --- a/sample-markdown-folder/folder/test3.md +++ /dev/null @@ -1,3 +0,0 @@ -hello this is a **test** - -# This is a test \ No newline at end of file diff --git a/sample-markdown-folder/folder/wait renaming works!.md b/sample-markdown-folder/folder/wait renaming works!.md new file mode 100644 index 0000000..dc4286f --- /dev/null +++ b/sample-markdown-folder/folder/wait renaming works!.md @@ -0,0 +1,6 @@ +asdfdf + +1. so numbering works. + + +* but bullet points doesn't work \ No newline at end of file diff --git a/sample-markdown-folder/test.md b/sample-markdown-folder/test.md deleted file mode 100644 index 84daa74..0000000 --- a/sample-markdown-folder/test.md +++ /dev/null @@ -1,3 +0,0 @@ -hello this is a test - -# test twerk \ No newline at end of file diff --git a/sample-markdown-folder/test2.md b/sample-markdown-folder/test2.md deleted file mode 100644 index b18c361..0000000 --- a/sample-markdown-folder/test2.md +++ /dev/null @@ -1,11 +0,0 @@ -hello this is a test - -# test 2asdfsadoohtest - -this is a new test - -**intersteingasdfasd** - -## this is another test asdf - -sadfasdojasljfsad \ No newline at end of file diff --git a/src/components/FileSystemAdapters/FileSystem/Folder.tsx b/src/components/FileSystemAdapters/FileSystem/Folder.tsx index 6dd4a48..87e33bd 100644 --- a/src/components/FileSystemAdapters/FileSystem/Folder.tsx +++ b/src/components/FileSystemAdapters/FileSystem/Folder.tsx @@ -1,34 +1,70 @@ import { useState } from "react"; import DirectoryNode from "../../../models/DirectoryNode"; -import { ChevronDown, ChevronRight, ChevronUp } from "lucide-react"; +import { ChevronDown, ChevronRight, FilePlus, FolderPlus } from "lucide-react"; +import RightClickMenu from "./RightClickMenu"; +import * as ContextMenu from "@radix-ui/react-context-menu"; export function Folder({ node, depth, handleFileSelect, + currentlySelectedFile, + handleDeleteFile, + handleCreateFile, + handleCreateFolder, }: { - node: DirectoryNode | null; + node: DirectoryNode; depth: number; handleFileSelect: (file: DirectoryNode) => void; + currentlySelectedFile: DirectoryNode | null; + handleDeleteFile: (node: DirectoryNode) => void; + handleCreateFile: (node: DirectoryNode) => void; + handleCreateFolder: (node: DirectoryNode) => void; }) { const [expanded, setExpanded] = useState(depth === 0); - if (!node) return null; return ( -