diff --git a/package-lock.json b/package-lock.json index f2f3f0c3..31fb4f35 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "utopia-ui", - "version": "3.0.40", + "version": "3.0.58", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "utopia-ui", - "version": "3.0.40", + "version": "3.0.58", "license": "GPL-3.0-only", "dependencies": { "@heroicons/react": "^2.0.17", @@ -32,6 +32,9 @@ }, "devDependencies": { "@eslint-community/eslint-plugin-eslint-comments": "^4.4.1", + "@rollup/plugin-alias": "^5.1.1", + "@rollup/plugin-node-resolve": "^16.0.0", + "@rollup/plugin-typescript": "^12.1.2", "@testing-library/jest-dom": "^6.6.3", "@testing-library/react": "^16.2.0", "@types/geojson": "^7946.0.14", @@ -64,9 +67,9 @@ "prettier": "^3.3.3", "react": "^18.3.1", "react-dom": "^18.3.1", - "rollup": "^2.75.7", + "rollup": "^4.34.6", + "rollup-plugin-dts": "^6.1.1", "rollup-plugin-postcss": "^4.0.2", - "rollup-plugin-typescript2": "^0.32.1", "tailwindcss": "^3.3.1", "typedoc": "^0.27.6", "typedoc-plugin-coverage": "^3.4.1", @@ -714,30 +717,354 @@ "node": ">=14.0.0" } }, - "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.34.1", + "node_modules/@rollup/plugin-alias": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-alias/-/plugin-alias-5.1.1.tgz", + "integrity": "sha512-PR9zDb+rOzkRb2VD+EuKB7UC41vU5DIwZ5qqCpk0KJudcWAyi8rvYOhS7+L5aZCspw1stTViLgN5v6FF1p5cgQ==", + "dev": true, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-node-resolve": { + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-16.0.0.tgz", + "integrity": "sha512-0FPvAeVUT/zdWoO0jnb/V5BlBsUSNfkIOtFHzMO4H9MOklrmQFY6FduVHKucNb/aTFxvnGhj4MNj/T1oNdDfNg==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "@types/resolve": "1.20.2", + "deepmerge": "^4.2.2", + "is-module": "^1.0.0", + "resolve": "^1.22.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.78.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-typescript": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-12.1.2.tgz", + "integrity": "sha512-cdtSp154H5sv637uMr1a8OTWB0L1SWDSm1rDGiyfcGcvQ6cuTs4MDk2BVEBGysUWago4OJN4EQZqOTl/QY3Jgg==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^5.1.0", + "resolve": "^1.22.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.14.0||^3.0.0||^4.0.0", + "tslib": "*", + "typescript": ">=3.7.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + }, + "tslib": { + "optional": true + } + } + }, + "node_modules/@rollup/pluginutils": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.4.tgz", + "integrity": "sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==", + "dev": true, + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/pluginutils/node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.34.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.34.6.tgz", + "integrity": "sha512-+GcCXtOQoWuC7hhX1P00LqjjIiS/iOouHXhMdiDSnq/1DGTox4SpUvO52Xm+div6+106r+TcvOeo/cxvyEyTgg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.34.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.34.6.tgz", + "integrity": "sha512-E8+2qCIjciYUnCa1AiVF1BkRgqIGW9KzJeesQqVfyRITGQN+dFuoivO0hnro1DjT74wXLRZ7QF8MIbz+luGaJA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.34.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.34.6.tgz", + "integrity": "sha512-z9Ib+OzqN3DZEjX7PDQMHEhtF+t6Mi2z/ueChQPLS/qUMKY7Ybn5A2ggFoKRNRh1q1T03YTQfBTQCJZiepESAg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.34.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.34.6.tgz", + "integrity": "sha512-PShKVY4u0FDAR7jskyFIYVyHEPCPnIQY8s5OcXkdU8mz3Y7eXDJPdyM/ZWjkYdR2m0izD9HHWA8sGcXn+Qrsyg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.34.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.34.6.tgz", + "integrity": "sha512-YSwyOqlDAdKqs0iKuqvRHLN4SrD2TiswfoLfvYXseKbL47ht1grQpq46MSiQAx6rQEN8o8URtpXARCpqabqxGQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.34.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.34.6.tgz", + "integrity": "sha512-HEP4CgPAY1RxXwwL5sPFv6BBM3tVeLnshF03HMhJYCNc6kvSqBgTMmsEjb72RkZBAWIqiPUyF1JpEBv5XT9wKQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.34.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.34.6.tgz", + "integrity": "sha512-88fSzjC5xeH9S2Vg3rPgXJULkHcLYMkh8faix8DX4h4TIAL65ekwuQMA/g2CXq8W+NJC43V6fUpYZNjaX3+IIg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.34.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.34.6.tgz", + "integrity": "sha512-wM4ztnutBqYFyvNeR7Av+reWI/enK9tDOTKNF+6Kk2Q96k9bwhDDOlnCUNRPvromlVXo04riSliMBs/Z7RteEg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.34.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.34.6.tgz", + "integrity": "sha512-9RyprECbRa9zEjXLtvvshhw4CMrRa3K+0wcp3KME0zmBe1ILmvcVHnypZ/aIDXpRyfhSYSuN4EPdCCj5Du8FIA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.34.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.34.6.tgz", + "integrity": "sha512-qTmklhCTyaJSB05S+iSovfo++EwnIEZxHkzv5dep4qoszUMX5Ca4WM4zAVUMbfdviLgCSQOu5oU8YoGk1s6M9Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loongarch64-gnu": { + "version": "4.34.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.34.6.tgz", + "integrity": "sha512-4Qmkaps9yqmpjY5pvpkfOerYgKNUGzQpFxV6rnS7c/JfYbDSU0y6WpbbredB5cCpLFGJEqYX40WUmxMkwhWCjw==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.34.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.34.6.tgz", + "integrity": "sha512-Zsrtux3PuaxuBTX/zHdLaFmcofWGzaWW1scwLU3ZbW/X+hSsFbz9wDIp6XvnT7pzYRl9MezWqEqKy7ssmDEnuQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.34.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.34.6.tgz", + "integrity": "sha512-aK+Zp+CRM55iPrlyKiU3/zyhgzWBxLVrw2mwiQSYJRobCURb781+XstzvA8Gkjg/hbdQFuDw44aUOxVQFycrAg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.34.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.34.6.tgz", + "integrity": "sha512-WoKLVrY9ogmaYPXwTH326+ErlCIgMmsoRSx6bO+l68YgJnlOXhygDYSZe/qbUJCSiCiZAQ+tKm88NcWuUXqOzw==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.34.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.34.6.tgz", + "integrity": "sha512-Sht4aFvmA4ToHd2vFzwMFaQCiYm2lDFho5rPcvPBT5pCdC+GwHG6CMch4GQfmWTQ1SwRKS0dhDYb54khSrjDWw==", "cpu": [ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.34.1", + "version": "4.34.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.34.6.tgz", + "integrity": "sha512-zmmpOQh8vXc2QITsnCiODCDGXFC8LMi64+/oPpPx5qz3pqv0s6x46ps4xoycfUiVZps5PFn1gksZzo4RGTKT+A==", "cpu": [ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" ] }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.34.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.34.6.tgz", + "integrity": "sha512-3/q1qUsO/tLqGBaD4uXsB6coVGB3usxw3qyeVb59aArCgedSF66MPdgRStUd7vbZOsko/CgVaY5fo2vkvPLWiA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.34.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.34.6.tgz", + "integrity": "sha512-oLHxuyywc6efdKVTxvc0135zPrRdtYVjtVD5GUm55I3ODxhU/PwkQFD97z16Xzxa1Fz0AEe4W/2hzRtd+IfpOA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.34.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.34.6.tgz", + "integrity": "sha512-0PVwmgzZ8+TZ9oGBmdZoQVXflbvuwzN/HRclujpl4N/q3i+y0lqLw8n1bXA8ru3sApDjlmONaNAuYr38y1Kr9w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, "node_modules/@rtsao/scc": { "version": "1.1.0", "dev": true, @@ -1033,6 +1360,12 @@ "@types/react": "*" } }, + "node_modules/@types/resolve": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz", + "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==", + "dev": true + }, "node_modules/@types/semver": { "version": "7.5.8", "dev": true, @@ -2000,11 +2333,6 @@ "node": ">= 10" } }, - "node_modules/commondir": { - "version": "1.0.1", - "dev": true, - "license": "MIT" - }, "node_modules/concat-map": { "version": "0.0.1", "license": "MIT" @@ -3507,34 +3835,6 @@ "node": ">=8" } }, - "node_modules/find-cache-dir": { - "version": "3.3.2", - "dev": true, - "license": "MIT", - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/avajs/find-cache-dir?sponsor=1" - } - }, - "node_modules/find-up": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/flat-cache": { "version": "3.0.4", "dev": true, @@ -3617,23 +3917,23 @@ "url": "https://www.patreon.com/infusion" } }, - "node_modules/fs-extra": { - "version": "10.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/fs.realpath": { "version": "1.0.0", "license": "ISC" }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, "node_modules/function-bind": { "version": "1.1.2", "license": "MIT", @@ -4273,6 +4573,12 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", + "dev": true + }, "node_modules/is-negative-zero": { "version": "2.0.3", "dev": true, @@ -4559,17 +4865,6 @@ "dev": true, "license": "MIT" }, - "node_modules/jsonfile": { - "version": "6.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, "node_modules/jsx-ast-utils": { "version": "3.3.3", "dev": true, @@ -4638,17 +4933,6 @@ "node": ">= 12.13.0" } }, - "node_modules/locate-path": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/lodash": { "version": "4.17.21", "dev": true, @@ -4742,20 +5026,6 @@ "source-map-js": "^1.2.0" } }, - "node_modules/make-dir": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/markdown-it": { "version": "14.1.0", "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz", @@ -5663,31 +5933,6 @@ "node": ">=4" } }, - "node_modules/p-limit": { - "version": "2.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/p-queue": { "version": "6.6.2", "dev": true, @@ -5714,14 +5959,6 @@ "node": ">=8" } }, - "node_modules/p-try": { - "version": "2.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/package-json-from-dist": { "version": "1.0.1", "dev": true, @@ -5864,17 +6101,6 @@ "node": ">= 6" } }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/possible-typed-array-names": { "version": "1.0.0", "dev": true, @@ -6930,19 +7156,65 @@ } }, "node_modules/rollup": { - "version": "2.79.2", + "version": "4.34.6", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.34.6.tgz", + "integrity": "sha512-wc2cBWqJgkU3Iz5oztRkQbfVkbxoz5EhnCGOrnJvnLnQ7O0WhQUYyv18qQI79O8L7DdHrrlJNeCHd4VGpnaXKQ==", "dev": true, - "license": "MIT", + "dependencies": { + "@types/estree": "1.0.6" + }, "bin": { "rollup": "dist/bin/rollup" }, "engines": { - "node": ">=10.0.0" + "node": ">=18.0.0", + "npm": ">=8.0.0" }, "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.34.6", + "@rollup/rollup-android-arm64": "4.34.6", + "@rollup/rollup-darwin-arm64": "4.34.6", + "@rollup/rollup-darwin-x64": "4.34.6", + "@rollup/rollup-freebsd-arm64": "4.34.6", + "@rollup/rollup-freebsd-x64": "4.34.6", + "@rollup/rollup-linux-arm-gnueabihf": "4.34.6", + "@rollup/rollup-linux-arm-musleabihf": "4.34.6", + "@rollup/rollup-linux-arm64-gnu": "4.34.6", + "@rollup/rollup-linux-arm64-musl": "4.34.6", + "@rollup/rollup-linux-loongarch64-gnu": "4.34.6", + "@rollup/rollup-linux-powerpc64le-gnu": "4.34.6", + "@rollup/rollup-linux-riscv64-gnu": "4.34.6", + "@rollup/rollup-linux-s390x-gnu": "4.34.6", + "@rollup/rollup-linux-x64-gnu": "4.34.6", + "@rollup/rollup-linux-x64-musl": "4.34.6", + "@rollup/rollup-win32-arm64-msvc": "4.34.6", + "@rollup/rollup-win32-ia32-msvc": "4.34.6", + "@rollup/rollup-win32-x64-msvc": "4.34.6", "fsevents": "~2.3.2" } }, + "node_modules/rollup-plugin-dts": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/rollup-plugin-dts/-/rollup-plugin-dts-6.1.1.tgz", + "integrity": "sha512-aSHRcJ6KG2IHIioYlvAOcEq6U99sVtqDDKVhnwt70rW6tsz3tv5OSjEiWcgzfsHdLyGXZ/3b/7b/+Za3Y6r1XA==", + "dev": true, + "dependencies": { + "magic-string": "^0.30.10" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/Swatinem" + }, + "optionalDependencies": { + "@babel/code-frame": "^7.24.2" + }, + "peerDependencies": { + "rollup": "^3.29.4 || ^4", + "typescript": "^4.5 || ^5.0" + } + }, "node_modules/rollup-plugin-postcss": { "version": "4.0.2", "dev": true, @@ -6969,34 +7241,6 @@ "postcss": "8.x" } }, - "node_modules/rollup-plugin-typescript2": { - "version": "0.32.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@rollup/pluginutils": "^4.1.2", - "find-cache-dir": "^3.3.2", - "fs-extra": "^10.0.0", - "resolve": "^1.20.0", - "tslib": "^2.4.0" - }, - "peerDependencies": { - "rollup": ">=1.26.3", - "typescript": ">=2.4.0" - } - }, - "node_modules/rollup-plugin-typescript2/node_modules/@rollup/pluginutils": { - "version": "4.2.1", - "dev": true, - "license": "MIT", - "dependencies": { - "estree-walker": "^2.0.1", - "picomatch": "^2.2.2" - }, - "engines": { - "node": ">= 8.0.0" - } - }, "node_modules/rollup-pluginutils": { "version": "2.8.2", "dev": true, @@ -8135,14 +8379,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/universalify": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 10.0.0" - } - }, "node_modules/update-browserslist-db": { "version": "1.1.2", "dev": true, @@ -8300,43 +8536,6 @@ "url": "https://opencollective.com/vitest" } }, - "node_modules/vite/node_modules/rollup": { - "version": "4.34.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/estree": "1.0.6" - }, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=18.0.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.34.1", - "@rollup/rollup-android-arm64": "4.34.1", - "@rollup/rollup-darwin-arm64": "4.34.1", - "@rollup/rollup-darwin-x64": "4.34.1", - "@rollup/rollup-freebsd-arm64": "4.34.1", - "@rollup/rollup-freebsd-x64": "4.34.1", - "@rollup/rollup-linux-arm-gnueabihf": "4.34.1", - "@rollup/rollup-linux-arm-musleabihf": "4.34.1", - "@rollup/rollup-linux-arm64-gnu": "4.34.1", - "@rollup/rollup-linux-arm64-musl": "4.34.1", - "@rollup/rollup-linux-loongarch64-gnu": "4.34.1", - "@rollup/rollup-linux-powerpc64le-gnu": "4.34.1", - "@rollup/rollup-linux-riscv64-gnu": "4.34.1", - "@rollup/rollup-linux-s390x-gnu": "4.34.1", - "@rollup/rollup-linux-x64-gnu": "4.34.1", - "@rollup/rollup-linux-x64-musl": "4.34.1", - "@rollup/rollup-win32-arm64-msvc": "4.34.1", - "@rollup/rollup-win32-ia32-msvc": "4.34.1", - "@rollup/rollup-win32-x64-msvc": "4.34.1", - "fsevents": "~2.3.2" - } - }, "node_modules/vitest": { "version": "3.0.5", "dev": true, diff --git a/package.json b/package.json index e3a4867f..568f49c6 100644 --- a/package.json +++ b/package.json @@ -1,11 +1,19 @@ { "name": "utopia-ui", - "version": "3.0.40", + "version": "3.0.58", "description": "Reuseable React Components to build mapping apps for real life communities and networks", "repository": "https://github.com/utopia-os/utopia-ui", - "homepage:": "https://utopia-os.org/", - "module": "dist/index.js", - "types": "dist/index.d.ts", + "homepage": "https://utopia-os.org/", + "module": "./dist/index.esm.js", + "main": "./dist/index.cjs", + "types": "./dist/index.d.ts", + "exports": { + ".": { + "import": "./dist/index.esm.js", + "require": "./dist/index.cjs", + "types": "./dist/index.d.ts" + } + }, "type": "module", "scripts": { "build": "rollup -c", @@ -24,6 +32,9 @@ "license": "GPL-3.0-only", "devDependencies": { "@eslint-community/eslint-plugin-eslint-comments": "^4.4.1", + "@rollup/plugin-alias": "^5.1.1", + "@rollup/plugin-node-resolve": "^16.0.0", + "@rollup/plugin-typescript": "^12.1.2", "@testing-library/jest-dom": "^6.6.3", "@testing-library/react": "^16.2.0", "@types/geojson": "^7946.0.14", @@ -56,9 +67,9 @@ "prettier": "^3.3.3", "react": "^18.3.1", "react-dom": "^18.3.1", - "rollup": "^2.75.7", + "rollup": "^4.34.6", + "rollup-plugin-dts": "^6.1.1", "rollup-plugin-postcss": "^4.0.2", - "rollup-plugin-typescript2": "^0.32.1", "tailwindcss": "^3.3.1", "typedoc": "^0.27.6", "typedoc-plugin-coverage": "^3.4.1", diff --git a/rollup.config.js b/rollup.config.js index d3dd649f..0ad2545b 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -1,52 +1,76 @@ -import postcss from 'rollup-plugin-postcss' -import typescript from 'rollup-plugin-typescript2' +import path from 'path' +import { fileURLToPath } from 'url' -export default { - input: 'src/index.tsx', - output: [ - { - dir: 'dist/', - format: 'esm', - exports: 'named', - sourcemap: true, - strict: false, - }, - ], - plugins: [ - postcss({ - plugins: [], - }), - typescript(), - ], - external: [ - 'react', - 'react-dom', - 'react-markdown', - 'react/jsx-runtime', - 'remark-breaks', - 'leaflet', - 'react-leaflet', - 'react-toastify', - 'react-string-replace', - 'react-toastify/dist/ReactToastify.css', - 'tw-elements', - 'react-router-dom', - 'react-leaflet-cluster', - '@tanstack/react-query', - 'tributejs', - 'prop-types', - 'leaflet/dist/leaflet.css', - '@heroicons/react/20/solid', - '@heroicons/react/24/outline/ChevronRightIcon', - '@heroicons/react/24/outline', - 'date-fns', - '@heroicons/react/24/outline/InformationCircleIcon', - '@heroicons/react/24/outline/QuestionMarkCircleIcon', - '@heroicons/react/24/outline/ChevronDownIcon', - 'axios', - 'react-image-crop', - 'react-image-crop/dist/ReactCrop.css', - 'react-colorful', - 'leaflet.locatecontrol/dist/L.Control.Locate.css', - ], -} +import alias from '@rollup/plugin-alias' +import typescript from '@rollup/plugin-typescript' +import { dts } from 'rollup-plugin-dts' +import postcss from 'rollup-plugin-postcss' + +const __filename = fileURLToPath(import.meta.url) +const __dirname = path.dirname(__filename) + +const aliasConfig = alias({ + entries: [{ find: '#types', replacement: path.resolve(__dirname, 'src/types') }], +}) + +export default [ + { + input: 'src/index.tsx', + output: [ + { + file: 'dist/index.esm.js', + format: 'esm', + }, + { + file: 'dist/index.cjs', + format: 'cjs', + }, + ], + plugins: [ + aliasConfig, + postcss({ + plugins: [], + }), + typescript({ + tsconfig: './tsconfig.json', + }), + ], + external: [ + 'react', + 'react-dom', + 'react-markdown', + 'react/jsx-runtime', + 'remark-breaks', + 'leaflet', + 'react-leaflet', + 'react-toastify', + 'react-string-replace', + 'react-toastify/dist/ReactToastify.css', + 'tw-elements', + 'react-router-dom', + 'react-leaflet-cluster', + '@tanstack/react-query', + 'tributejs', + 'prop-types', + 'leaflet/dist/leaflet.css', + '@heroicons/react/20/solid', + '@heroicons/react/24/outline/ChevronRightIcon', + '@heroicons/react/24/outline', + 'date-fns', + '@heroicons/react/24/outline/InformationCircleIcon', + '@heroicons/react/24/outline/QuestionMarkCircleIcon', + '@heroicons/react/24/outline/ChevronDownIcon', + 'axios', + 'react-image-crop', + 'react-image-crop/dist/ReactCrop.css', + 'react-colorful', + 'leaflet.locatecontrol/dist/L.Control.Locate.css', + ], + }, + { + input: 'src/index.tsx', + output: [{ file: 'dist/index.d.ts', format: 'es' }], + plugins: [aliasConfig, dts()], + external: [/\.css$/], + }, +] diff --git a/src/Components/AppShell/AppShell.tsx b/src/Components/AppShell/AppShell.tsx index 0421a302..5267a48d 100644 --- a/src/Components/AppShell/AppShell.tsx +++ b/src/Components/AppShell/AppShell.tsx @@ -2,7 +2,7 @@ import { ContextWrapper } from './ContextWrapper' import NavBar from './NavBar' import { SetAppState } from './SetAppState' -import type { AssetsApi } from '#types/AssetsApi' +import type { AssetsApi } from '#src/types/AssetsApi' export function AppShell({ appName, diff --git a/src/Components/AppShell/NavBar.tsx b/src/Components/AppShell/NavBar.tsx index 08971877..f25d532a 100644 --- a/src/Components/AppShell/NavBar.tsx +++ b/src/Components/AppShell/NavBar.tsx @@ -6,7 +6,7 @@ import { toast } from 'react-toastify' import { useAuth } from '#components/Auth' import { useItems } from '#components/Map/hooks/useItems' -import type { Item } from '#types/Item' +import type { Item } from '#src/types/Item' export default function NavBar({ appName, userType }: { appName: string; userType: string }) { const { isAuthenticated, user, logout } = useAuth() diff --git a/src/Components/AppShell/SetAppState.tsx b/src/Components/AppShell/SetAppState.tsx index eb537911..a84ec067 100644 --- a/src/Components/AppShell/SetAppState.tsx +++ b/src/Components/AppShell/SetAppState.tsx @@ -2,7 +2,7 @@ import { useEffect } from 'react' import { useSetAppState } from './hooks/useAppState' -import type { AssetsApi } from '#types/AssetsApi' +import type { AssetsApi } from '#src/types/AssetsApi' export const SetAppState = ({ assetsApi, diff --git a/src/Components/AppShell/hooks/useAppState.tsx b/src/Components/AppShell/hooks/useAppState.tsx index c338d8c4..f0ffd76d 100644 --- a/src/Components/AppShell/hooks/useAppState.tsx +++ b/src/Components/AppShell/hooks/useAppState.tsx @@ -2,7 +2,7 @@ /* eslint-disable @typescript-eslint/no-empty-function */ import { useCallback, useState, createContext, useContext } from 'react' -import type { AssetsApi } from '#types/AssetsApi' +import type { AssetsApi } from '#src/types/AssetsApi' interface AppState { assetsApi: AssetsApi diff --git a/src/Components/AppShell/hooks/useAssets.tsx b/src/Components/AppShell/hooks/useAssets.tsx index 6c04d6ab..04b3d3f2 100644 --- a/src/Components/AppShell/hooks/useAssets.tsx +++ b/src/Components/AppShell/hooks/useAssets.tsx @@ -3,7 +3,7 @@ /* eslint-disable @typescript-eslint/no-empty-function */ import { useCallback, useState, createContext, useContext } from 'react' -import type { AssetsApi } from '#types/AssetsApi' +import type { AssetsApi } from '#src/types/AssetsApi' type UseAssetManagerResult = ReturnType diff --git a/src/Components/Auth/useAuth.tsx b/src/Components/Auth/useAuth.tsx index e892a0c6..767ce700 100644 --- a/src/Components/Auth/useAuth.tsx +++ b/src/Components/Auth/useAuth.tsx @@ -5,8 +5,8 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ import { createContext, useState, useContext, useEffect } from 'react' -import type { UserApi } from '#types/UserApi' -import type { UserItem } from '#types/UserItem' +import type { UserApi } from '#src/types/UserApi' +import type { UserItem } from '#src/types/UserItem' interface AuthProviderProps { userApi: UserApi diff --git a/src/Components/Gaming/Quests.tsx b/src/Components/Gaming/Quests.tsx index 0e669c6f..61303c30 100644 --- a/src/Components/Gaming/Quests.tsx +++ b/src/Components/Gaming/Quests.tsx @@ -5,7 +5,7 @@ import { useItems } from '#components/Map/hooks/useItems' import { useQuestsOpen, useSetQuestOpen } from './hooks/useQuests' -import type { Item } from '#types/Item' +import type { Item } from '#src/types/Item' export function Quests() { const questsOpen = useQuestsOpen() diff --git a/src/Components/Map/ItemForm.tsx b/src/Components/Map/ItemForm.tsx index d48b33ce..f9ad282f 100644 --- a/src/Components/Map/ItemForm.tsx +++ b/src/Components/Map/ItemForm.tsx @@ -1,7 +1,7 @@ import { node, string } from 'prop-types' import { Children, cloneElement, isValidElement, useEffect } from 'react' -import type { Item } from '#types/Item' +import type { Item } from '#src/types/Item' export const ItemForm = ({ children, diff --git a/src/Components/Map/ItemView.tsx b/src/Components/Map/ItemView.tsx index 63a241d6..9a674504 100644 --- a/src/Components/Map/ItemView.tsx +++ b/src/Components/Map/ItemView.tsx @@ -1,7 +1,7 @@ import { node, string } from 'prop-types' import { Children, cloneElement, isValidElement } from 'react' -import type { Item } from '#types/Item' +import type { Item } from '#src/types/Item' export const ItemView = ({ children, item }: { children?: React.ReactNode; item?: Item }) => { return ( diff --git a/src/Components/Map/Layer.tsx b/src/Components/Map/Layer.tsx index 0ce40aef..d2525df8 100644 --- a/src/Components/Map/Layer.tsx +++ b/src/Components/Map/Layer.tsx @@ -28,9 +28,9 @@ import { useAddTag, useAllTagsLoaded, useGetItemTags, useTags } from './hooks/us import { ItemFormPopup } from './Subcomponents/ItemFormPopup' import { ItemViewPopup } from './Subcomponents/ItemViewPopup' -import type { Item } from '#types/Item' -import type { LayerProps } from '#types/LayerProps' -import type { Tag } from '#types/Tag' +import type { Item } from '#src/types/Item' +import type { LayerProps } from '#src/types/LayerProps' +import type { Tag } from '#src/types/Tag' import type { Popup } from 'leaflet' export const Layer = ({ diff --git a/src/Components/Map/Permissions.tsx b/src/Components/Map/Permissions.tsx index cac67cf2..90ba458f 100644 --- a/src/Components/Map/Permissions.tsx +++ b/src/Components/Map/Permissions.tsx @@ -4,8 +4,8 @@ import { useAuth } from '#components/Auth' import { useSetPermissionData, useSetPermissionApi, useSetAdminRole } from './hooks/usePermissions' -import type { ItemsApi } from '#types/ItemsApi' -import type { Permission } from '#types/Permission' +import type { ItemsApi } from '#src/types/ItemsApi' +import type { Permission } from '#src/types/Permission' export function Permissions({ data, diff --git a/src/Components/Map/Subcomponents/Controls/SearchControl.tsx b/src/Components/Map/Subcomponents/Controls/SearchControl.tsx index 323d8c5c..615527ac 100644 --- a/src/Components/Map/Subcomponents/Controls/SearchControl.tsx +++ b/src/Components/Map/Subcomponents/Controls/SearchControl.tsx @@ -29,7 +29,7 @@ import MarkerIconFactory from '#utils/MarkerIconFactory' import { LocateControl } from './LocateControl' import { SidebarControl } from './SidebarControl' -import type { Item } from '#types/Item' +import type { Item } from '#src/types/Item' export const SearchControl = () => { const windowDimensions = useWindowDimensions() diff --git a/src/Components/Map/Subcomponents/ItemFormPopup.tsx b/src/Components/Map/Subcomponents/ItemFormPopup.tsx index ed35d861..a8557695 100644 --- a/src/Components/Map/Subcomponents/ItemFormPopup.tsx +++ b/src/Components/Map/Subcomponents/ItemFormPopup.tsx @@ -19,8 +19,8 @@ import { useAddTag, useTags } from '#components/Map/hooks/useTags' import { hashTagRegex } from '#utils/HashTagRegex' import { randomColor } from '#utils/RandomColor' -import type { Item } from '#types/Item' -import type { ItemFormPopupProps } from '#types/ItemFormPopupProps' +import type { Item } from '#src/types/Item' +import type { ItemFormPopupProps } from '#src/types/ItemFormPopupProps' export function ItemFormPopup(props: ItemFormPopupProps) { const [spinner, setSpinner] = useState(false) diff --git a/src/Components/Map/Subcomponents/ItemPopupComponents/HeaderView.tsx b/src/Components/Map/Subcomponents/ItemPopupComponents/HeaderView.tsx index b7602afc..e948b396 100644 --- a/src/Components/Map/Subcomponents/ItemPopupComponents/HeaderView.tsx +++ b/src/Components/Map/Subcomponents/ItemPopupComponents/HeaderView.tsx @@ -17,8 +17,8 @@ import { useHasUserPermission } from '#components/Map/hooks/usePermissions' import DialogModal from '#components/Templates/DialogModal' import { getValue } from '#utils/GetValue' -import type { Item } from '#types/Item' -import type { ItemsApi } from '#types/ItemsApi' +import type { Item } from '#src/types/Item' +import type { ItemsApi } from '#src/types/ItemsApi' export function HeaderView({ item, diff --git a/src/Components/Map/Subcomponents/ItemPopupComponents/PopupButton.tsx b/src/Components/Map/Subcomponents/ItemPopupComponents/PopupButton.tsx index 3f3bf2da..7ef100ab 100644 --- a/src/Components/Map/Subcomponents/ItemPopupComponents/PopupButton.tsx +++ b/src/Components/Map/Subcomponents/ItemPopupComponents/PopupButton.tsx @@ -5,7 +5,7 @@ import { Link } from 'react-router-dom' import { useGetItemTags } from '#components/Map/hooks/useTags' import { getValue } from '#utils/GetValue' -import type { Item } from '#types/Item' +import type { Item } from '#src/types/Item' export const PopupButton = ({ url, diff --git a/src/Components/Map/Subcomponents/ItemPopupComponents/PopupCheckboxInput.tsx b/src/Components/Map/Subcomponents/ItemPopupComponents/PopupCheckboxInput.tsx index 42a1d6ca..87a28c1f 100644 --- a/src/Components/Map/Subcomponents/ItemPopupComponents/PopupCheckboxInput.tsx +++ b/src/Components/Map/Subcomponents/ItemPopupComponents/PopupCheckboxInput.tsx @@ -1,4 +1,4 @@ -import type { Item } from '#types/Item' +import type { Item } from '#src/types/Item' export const PopupCheckboxInput = ({ dataField, diff --git a/src/Components/Map/Subcomponents/ItemPopupComponents/PopupStartEndInput.tsx b/src/Components/Map/Subcomponents/ItemPopupComponents/PopupStartEndInput.tsx index 819182d6..5c87b01e 100644 --- a/src/Components/Map/Subcomponents/ItemPopupComponents/PopupStartEndInput.tsx +++ b/src/Components/Map/Subcomponents/ItemPopupComponents/PopupStartEndInput.tsx @@ -1,7 +1,7 @@ /* eslint-disable @typescript-eslint/prefer-optional-chain */ import { TextInput } from '#components/Input' -import type { Item } from '#types/Item' +import type { Item } from '#src/types/Item' interface StartEndInputProps { item?: Item diff --git a/src/Components/Map/Subcomponents/ItemPopupComponents/PopupTextAreaInput.tsx b/src/Components/Map/Subcomponents/ItemPopupComponents/PopupTextAreaInput.tsx index c07b6b26..b403bc31 100644 --- a/src/Components/Map/Subcomponents/ItemPopupComponents/PopupTextAreaInput.tsx +++ b/src/Components/Map/Subcomponents/ItemPopupComponents/PopupTextAreaInput.tsx @@ -1,6 +1,6 @@ import { TextAreaInput } from '#components/Input' -import type { Item } from '#types/Item' +import type { Item } from '#src/types/Item' export const PopupTextAreaInput = ({ dataField, diff --git a/src/Components/Map/Subcomponents/ItemPopupComponents/PopupTextInput.tsx b/src/Components/Map/Subcomponents/ItemPopupComponents/PopupTextInput.tsx index 4030769f..ce957842 100644 --- a/src/Components/Map/Subcomponents/ItemPopupComponents/PopupTextInput.tsx +++ b/src/Components/Map/Subcomponents/ItemPopupComponents/PopupTextInput.tsx @@ -1,6 +1,6 @@ import { TextInput } from '#components/Input' -import type { Item } from '#types/Item' +import type { Item } from '#src/types/Item' export const PopupTextInput = ({ dataField, diff --git a/src/Components/Map/Subcomponents/ItemPopupComponents/StartEndView.tsx b/src/Components/Map/Subcomponents/ItemPopupComponents/StartEndView.tsx index c41d86f4..02b21cb1 100644 --- a/src/Components/Map/Subcomponents/ItemPopupComponents/StartEndView.tsx +++ b/src/Components/Map/Subcomponents/ItemPopupComponents/StartEndView.tsx @@ -1,5 +1,5 @@ /* eslint-disable @typescript-eslint/prefer-optional-chain */ -import type { Item } from '#types/Item' +import type { Item } from '#src/types/Item' export const StartEndView = ({ item }: { item?: Item }) => { return ( diff --git a/src/Components/Map/Subcomponents/ItemPopupComponents/TextView.tsx b/src/Components/Map/Subcomponents/ItemPopupComponents/TextView.tsx index 59115151..0dbb3ffc 100644 --- a/src/Components/Map/Subcomponents/ItemPopupComponents/TextView.tsx +++ b/src/Components/Map/Subcomponents/ItemPopupComponents/TextView.tsx @@ -16,8 +16,8 @@ import { getValue } from '#utils/GetValue' import { hashTagRegex } from '#utils/HashTagRegex' import { fixUrls, mailRegex } from '#utils/ReplaceURLs' -import type { Item } from '#types/Item' -import type { Tag } from '#types/Tag' +import type { Item } from '#src/types/Item' +import type { Tag } from '#src/types/Tag' export const TextView = ({ item, diff --git a/src/Components/Map/Subcomponents/ItemViewPopup.tsx b/src/Components/Map/Subcomponents/ItemViewPopup.tsx index 2a935e48..ac484ad3 100644 --- a/src/Components/Map/Subcomponents/ItemViewPopup.tsx +++ b/src/Components/Map/Subcomponents/ItemViewPopup.tsx @@ -20,8 +20,8 @@ import { timeAgo } from '#utils/TimeAgo' import { HeaderView } from './ItemPopupComponents/HeaderView' import { TextView } from './ItemPopupComponents/TextView' -import type { Item } from '#types/Item' -import type { ItemFormPopupProps } from '#types/ItemFormPopupProps' +import type { Item } from '#src/types/Item' +import type { ItemFormPopupProps } from '#src/types/ItemFormPopupProps' export interface ItemViewPopupProps { item: Item diff --git a/src/Components/Map/Tags.tsx b/src/Components/Map/Tags.tsx index ff77a3ff..1195a0c2 100644 --- a/src/Components/Map/Tags.tsx +++ b/src/Components/Map/Tags.tsx @@ -4,8 +4,8 @@ import { useLocation } from 'react-router-dom' import { useAddFilterTag, useFilterTags, useResetFilterTags } from './hooks/useFilter' import { useSetTagData, useSetTagApi, useTags } from './hooks/useTags' -import type { ItemsApi } from '#types/ItemsApi' -import type { Tag } from '#types/Tag' +import type { ItemsApi } from '#src/types/ItemsApi' +import type { Tag } from '#src/types/Tag' export function Tags({ data, api }: { data?: Tag[]; api?: ItemsApi }) { const setTagData = useSetTagData() diff --git a/src/Components/Map/UtopiaMap.tsx b/src/Components/Map/UtopiaMap.tsx index 5fcb292d..1991df87 100644 --- a/src/Components/Map/UtopiaMap.tsx +++ b/src/Components/Map/UtopiaMap.tsx @@ -5,7 +5,7 @@ import { ContextWrapper } from '#components/AppShell/ContextWrapper' import { UtopiaMapInner } from './UtopiaMapInner' -import type { UtopiaMapProps } from '#types/UtopiaMapProps' +import type { UtopiaMapProps } from '#src/types/UtopiaMapProps' import 'react-toastify/dist/ReactToastify.css' function UtopiaMap({ diff --git a/src/Components/Map/UtopiaMapInner.tsx b/src/Components/Map/UtopiaMapInner.tsx index 6cdf9106..bd17434c 100644 --- a/src/Components/Map/UtopiaMapInner.tsx +++ b/src/Components/Map/UtopiaMapInner.tsx @@ -36,8 +36,8 @@ import { TagsControl } from './Subcomponents/Controls/TagsControl' import { TextView } from './Subcomponents/ItemPopupComponents/TextView' import { SelectPosition } from './Subcomponents/SelectPosition' -import type { ItemFormPopupProps } from '#types/ItemFormPopupProps' -import type { UtopiaMapProps } from '#types/UtopiaMapProps' +import type { ItemFormPopupProps } from '#src/types/ItemFormPopupProps' +import type { UtopiaMapProps } from '#src/types/UtopiaMapProps' import type { Feature, Geometry as GeoJSONGeometry } from 'geojson' export function UtopiaMapInner({ diff --git a/src/Components/Map/hooks/useFilter.tsx b/src/Components/Map/hooks/useFilter.tsx index febc6bfd..e05bc542 100644 --- a/src/Components/Map/hooks/useFilter.tsx +++ b/src/Components/Map/hooks/useFilter.tsx @@ -10,8 +10,8 @@ import { useNavigate } from 'react-router-dom' import { useLayers } from './useLayers' import useWindowDimensions from './useWindowDimension' -import type { LayerProps } from '#types/LayerProps' -import type { Tag } from '#types/Tag' +import type { LayerProps } from '#src/types/LayerProps' +import type { Tag } from '#src/types/Tag' type ActionType = | { type: 'ADD_TAG'; tag: Tag } diff --git a/src/Components/Map/hooks/useItems.tsx b/src/Components/Map/hooks/useItems.tsx index db174e77..9517ef78 100644 --- a/src/Components/Map/hooks/useItems.tsx +++ b/src/Components/Map/hooks/useItems.tsx @@ -10,8 +10,8 @@ import { toast } from 'react-toastify' import { useAddLayer } from './useLayers' -import type { Item } from '#types/Item' -import type { LayerProps } from '#types/LayerProps' +import type { Item } from '#src/types/Item' +import type { LayerProps } from '#src/types/LayerProps' type ActionType = | { type: 'ADD'; item: Item } diff --git a/src/Components/Map/hooks/useLayers.tsx b/src/Components/Map/hooks/useLayers.tsx index 477ffc64..711a95be 100644 --- a/src/Components/Map/hooks/useLayers.tsx +++ b/src/Components/Map/hooks/useLayers.tsx @@ -2,7 +2,7 @@ /* eslint-disable @typescript-eslint/no-empty-function */ import { useCallback, useReducer, createContext, useContext } from 'react' -import type { LayerProps } from '#types/LayerProps' +import type { LayerProps } from '#src/types/LayerProps' interface ActionType { type: 'ADD LAYER' diff --git a/src/Components/Map/hooks/useLeafletRefs.tsx b/src/Components/Map/hooks/useLeafletRefs.tsx index a092d98e..93a1c130 100644 --- a/src/Components/Map/hooks/useLeafletRefs.tsx +++ b/src/Components/Map/hooks/useLeafletRefs.tsx @@ -3,7 +3,7 @@ /* eslint-disable @typescript-eslint/no-empty-function */ import { useCallback, useReducer, createContext, useContext } from 'react' -import type { Item } from '#types/Item' +import type { Item } from '#src/types/Item' import type { Marker, Popup } from 'leaflet' interface LeafletRef { diff --git a/src/Components/Map/hooks/usePermissions.tsx b/src/Components/Map/hooks/usePermissions.tsx index 5d149eb3..6d413b7c 100644 --- a/src/Components/Map/hooks/usePermissions.tsx +++ b/src/Components/Map/hooks/usePermissions.tsx @@ -10,11 +10,11 @@ import { useCallback, useReducer, createContext, useContext, useState } from 're import { useAuth } from '#components/Auth/useAuth' -import type { Item } from '#types/Item' -import type { ItemsApi } from '#types/ItemsApi' -import type { LayerProps } from '#types/LayerProps' -import type { Permission } from '#types/Permission' -import type { PermissionAction } from '#types/PermissionAction' +import type { Item } from '#src/types/Item' +import type { ItemsApi } from '#src/types/ItemsApi' +import type { LayerProps } from '#src/types/LayerProps' +import type { Permission } from '#src/types/Permission' +import type { PermissionAction } from '#src/types/PermissionAction' type ActionType = { type: 'ADD'; permission: Permission } | { type: 'REMOVE'; id: string } diff --git a/src/Components/Map/hooks/useSelectPosition.tsx b/src/Components/Map/hooks/useSelectPosition.tsx index d00fa4d9..982a3962 100644 --- a/src/Components/Map/hooks/useSelectPosition.tsx +++ b/src/Components/Map/hooks/useSelectPosition.tsx @@ -14,9 +14,9 @@ import { toast } from 'react-toastify' import { useUpdateItem } from './useItems' import { useHasUserPermission } from './usePermissions' -import type { Item } from '#types/Item' -import type { ItemFormPopupProps } from '#types/ItemFormPopupProps' -import type { LayerProps } from '#types/LayerProps' +import type { Item } from '#src/types/Item' +import type { ItemFormPopupProps } from '#src/types/ItemFormPopupProps' +import type { LayerProps } from '#src/types/LayerProps' import type { Point } from 'geojson' import type { LatLng } from 'leaflet' diff --git a/src/Components/Map/hooks/useTags.tsx b/src/Components/Map/hooks/useTags.tsx index f80e96ad..9420ce01 100644 --- a/src/Components/Map/hooks/useTags.tsx +++ b/src/Components/Map/hooks/useTags.tsx @@ -13,9 +13,9 @@ import { useCallback, useReducer, createContext, useContext, useState } from 're import { getValue } from '#utils/GetValue' import { hashTagRegex } from '#utils/HashTagRegex' -import type { Item } from '#types/Item' -import type { ItemsApi } from '#types/ItemsApi' -import type { Tag } from '#types/Tag' +import type { Item } from '#src/types/Item' +import type { ItemsApi } from '#src/types/ItemsApi' +import type { Tag } from '#src/types/Tag' type ActionType = { type: 'ADD'; tag: Tag } | { type: 'REMOVE'; id: string } diff --git a/src/Components/Profile/ProfileForm.tsx b/src/Components/Profile/ProfileForm.tsx index c5339657..c4eb2c6a 100644 --- a/src/Components/Profile/ProfileForm.tsx +++ b/src/Components/Profile/ProfileForm.tsx @@ -23,8 +23,8 @@ import { OnepagerForm } from './Templates/OnepagerForm' import { SimpleForm } from './Templates/SimpleForm' import { TabsForm } from './Templates/TabsForm' -import type { Item } from '#types/Item' -import type { Tag } from '#types/Tag' +import type { Item } from '#src/types/Item' +import type { Tag } from '#src/types/Tag' export function ProfileForm() { const [state, setState] = useState({ diff --git a/src/Components/Profile/ProfileView.tsx b/src/Components/Profile/ProfileView.tsx index 76c42aec..ca9e072d 100644 --- a/src/Components/Profile/ProfileView.tsx +++ b/src/Components/Profile/ProfileView.tsx @@ -29,9 +29,9 @@ import { OnepagerView } from './Templates/OnepagerView' import { SimpleView } from './Templates/SimpleView' import { TabsView } from './Templates/TabsView' -import type { Item } from '#types/Item' -import type { ItemsApi } from '#types/ItemsApi' -import type { Tag } from '#types/Tag' +import type { Item } from '#src/types/Item' +import type { ItemsApi } from '#src/types/ItemsApi' +import type { Tag } from '#src/types/Tag' export function ProfileView({ attestationApi }: { attestationApi?: ItemsApi }) { const [item, setItem] = useState() diff --git a/src/Components/Profile/Subcomponents/ActionsButton.tsx b/src/Components/Profile/Subcomponents/ActionsButton.tsx index 7eea5e44..6452f741 100644 --- a/src/Components/Profile/Subcomponents/ActionsButton.tsx +++ b/src/Components/Profile/Subcomponents/ActionsButton.tsx @@ -12,7 +12,7 @@ import { HeaderView } from '#components/Map/Subcomponents/ItemPopupComponents/He import DialogModal from '#components/Templates/DialogModal' import { getValue } from '#utils/GetValue' -import type { Item } from '#types/Item' +import type { Item } from '#src/types/Item' export function ActionButton({ item, diff --git a/src/Components/Profile/Subcomponents/ContactInfoForm.tsx b/src/Components/Profile/Subcomponents/ContactInfoForm.tsx index 7f129d01..2081567e 100644 --- a/src/Components/Profile/Subcomponents/ContactInfoForm.tsx +++ b/src/Components/Profile/Subcomponents/ContactInfoForm.tsx @@ -2,7 +2,7 @@ /* eslint-disable @typescript-eslint/no-unsafe-return */ import { TextInput } from '#components/Input' -import type { FormState } from '#types/FormState' +import type { FormState } from '#src/types/FormState' export const ContactInfoForm = ({ state, diff --git a/src/Components/Profile/Subcomponents/ContactInfoView.tsx b/src/Components/Profile/Subcomponents/ContactInfoView.tsx index a8368d24..01f2dfb5 100644 --- a/src/Components/Profile/Subcomponents/ContactInfoView.tsx +++ b/src/Components/Profile/Subcomponents/ContactInfoView.tsx @@ -8,7 +8,7 @@ import { Link } from 'react-router-dom' import { useAppState } from '#components/AppShell/hooks/useAppState' import { useItems } from '#components/Map/hooks/useItems' -import type { Item } from '#types/Item' +import type { Item } from '#src/types/Item' export const ContactInfoView = ({ item, heading }: { item: Item; heading: string }) => { const appState = useAppState() diff --git a/src/Components/Profile/Subcomponents/GalleryView.tsx b/src/Components/Profile/Subcomponents/GalleryView.tsx index 7cf2bc37..f6fee269 100644 --- a/src/Components/Profile/Subcomponents/GalleryView.tsx +++ b/src/Components/Profile/Subcomponents/GalleryView.tsx @@ -10,7 +10,7 @@ import 'react-photo-album/rows.css' import { useAppState } from '#components/AppShell/hooks/useAppState' -import type { Item } from '#types/Item' +import type { Item } from '#src/types/Item' export const GalleryView = ({ item }: { item: Item }) => { const [index, setIndex] = useState(-1) diff --git a/src/Components/Profile/Subcomponents/GroupSubHeaderView.tsx b/src/Components/Profile/Subcomponents/GroupSubHeaderView.tsx index 7718b075..6c808314 100644 --- a/src/Components/Profile/Subcomponents/GroupSubHeaderView.tsx +++ b/src/Components/Profile/Subcomponents/GroupSubHeaderView.tsx @@ -1,6 +1,6 @@ import SocialShareBar from './SocialShareBar' -import type { Item } from '#types/Item' +import type { Item } from '#src/types/Item' export const GroupSubHeaderView = ({ item, diff --git a/src/Components/Profile/Subcomponents/GroupSubheaderForm.tsx b/src/Components/Profile/Subcomponents/GroupSubheaderForm.tsx index 55b8c58f..db2e663b 100644 --- a/src/Components/Profile/Subcomponents/GroupSubheaderForm.tsx +++ b/src/Components/Profile/Subcomponents/GroupSubheaderForm.tsx @@ -5,8 +5,8 @@ import { useEffect } from 'react' import ComboBoxInput from '#components/Input/ComboBoxInput' -import type { FormState } from '#types/FormState' -import type { Item } from '#types/Item' +import type { FormState } from '#src/types/FormState' +import type { Item } from '#src/types/Item' interface groupType { groupTypes_id: { diff --git a/src/Components/Profile/Subcomponents/LinkedItemsHeaderView.tsx b/src/Components/Profile/Subcomponents/LinkedItemsHeaderView.tsx index 57dd0ce9..626f0ba7 100644 --- a/src/Components/Profile/Subcomponents/LinkedItemsHeaderView.tsx +++ b/src/Components/Profile/Subcomponents/LinkedItemsHeaderView.tsx @@ -10,7 +10,7 @@ import { useEffect } from 'react' import { useAppState } from '#components/AppShell/hooks/useAppState' import { getValue } from '#utils/GetValue' -import type { Item } from '#types/Item' +import type { Item } from '#src/types/Item' export function LinkedItemsHeaderView({ item, diff --git a/src/Components/Profile/Subcomponents/PlusButton.tsx b/src/Components/Profile/Subcomponents/PlusButton.tsx index c8122d95..06fa6e34 100644 --- a/src/Components/Profile/Subcomponents/PlusButton.tsx +++ b/src/Components/Profile/Subcomponents/PlusButton.tsx @@ -2,7 +2,7 @@ /* eslint-disable @typescript-eslint/no-unsafe-call */ import { useHasUserPermission } from '#components/Map/hooks/usePermissions' -import type { LayerProps } from '#types/LayerProps' +import type { LayerProps } from '#src/types/LayerProps' export function PlusButton({ layer, diff --git a/src/Components/Profile/Subcomponents/ProfileStartEndForm.tsx b/src/Components/Profile/Subcomponents/ProfileStartEndForm.tsx index e5f67ffe..5ccc1384 100644 --- a/src/Components/Profile/Subcomponents/ProfileStartEndForm.tsx +++ b/src/Components/Profile/Subcomponents/ProfileStartEndForm.tsx @@ -2,7 +2,7 @@ /* eslint-disable @typescript-eslint/no-unsafe-return */ import { PopupStartEndInput } from '#components/Map' -import type { Item } from '#types/Item' +import type { Item } from '#src/types/Item' export const ProfileStartEndForm = ({ item, diff --git a/src/Components/Profile/Subcomponents/ProfileStartEndView.tsx b/src/Components/Profile/Subcomponents/ProfileStartEndView.tsx index 8d64e55d..95425563 100644 --- a/src/Components/Profile/Subcomponents/ProfileStartEndView.tsx +++ b/src/Components/Profile/Subcomponents/ProfileStartEndView.tsx @@ -1,6 +1,6 @@ import { StartEndView } from '#components/Map' -import type { Item } from '#types/Item' +import type { Item } from '#src/types/Item' export const ProfileStartEndView = ({ item }: { item: Item }) => { return ( diff --git a/src/Components/Profile/Subcomponents/ProfileTextForm.tsx b/src/Components/Profile/Subcomponents/ProfileTextForm.tsx index 1d72a3b3..b74c01d4 100644 --- a/src/Components/Profile/Subcomponents/ProfileTextForm.tsx +++ b/src/Components/Profile/Subcomponents/ProfileTextForm.tsx @@ -9,7 +9,7 @@ import { getValue } from '#utils/GetValue' import { MarkdownHint } from './MarkdownHint' -import type { FormState } from '#types/FormState' +import type { FormState } from '#src/types/FormState' export const ProfileTextForm = ({ state, diff --git a/src/Components/Profile/Subcomponents/ProfileTextView.tsx b/src/Components/Profile/Subcomponents/ProfileTextView.tsx index 8a2725ce..75dc8ca1 100644 --- a/src/Components/Profile/Subcomponents/ProfileTextView.tsx +++ b/src/Components/Profile/Subcomponents/ProfileTextView.tsx @@ -2,7 +2,7 @@ import { TextView } from '#components/Map' import { getValue } from '#utils/GetValue' -import type { Item } from '#types/Item' +import type { Item } from '#src/types/Item' export const ProfileTextView = ({ item, diff --git a/src/Components/Profile/Subcomponents/TagsWidget.tsx b/src/Components/Profile/Subcomponents/TagsWidget.tsx index b1a03ad1..48850c0c 100644 --- a/src/Components/Profile/Subcomponents/TagsWidget.tsx +++ b/src/Components/Profile/Subcomponents/TagsWidget.tsx @@ -11,7 +11,7 @@ import { useTags } from '#components/Map/hooks/useTags' import { decodeTag, encodeTag } from '#utils/FormatTags' import { randomColor } from '#utils/RandomColor' -import type { Tag } from '#types/Tag' +import type { Tag } from '#src/types/Tag' // eslint-disable-next-line react/prop-types export const TagsWidget = ({ placeholder, containerStyle, defaultTags, onUpdate }) => { diff --git a/src/Components/Profile/Templates/FlexForm.tsx b/src/Components/Profile/Templates/FlexForm.tsx index 56f14eac..0d6aa9c6 100644 --- a/src/Components/Profile/Templates/FlexForm.tsx +++ b/src/Components/Profile/Templates/FlexForm.tsx @@ -8,8 +8,8 @@ import { GroupSubheaderForm } from '#components/Profile/Subcomponents/GroupSubhe import { ProfileStartEndForm } from '#components/Profile/Subcomponents/ProfileStartEndForm' import { ProfileTextForm } from '#components/Profile/Subcomponents/ProfileTextForm' -import type { FormState } from '#types/FormState' -import type { Item } from '#types/Item' +import type { FormState } from '#src/types/FormState' +import type { Item } from '#src/types/Item' const componentMap = { groupSubheaders: GroupSubheaderForm, diff --git a/src/Components/Profile/Templates/FlexView.tsx b/src/Components/Profile/Templates/FlexView.tsx index 608b0fdf..08c35f26 100644 --- a/src/Components/Profile/Templates/FlexView.tsx +++ b/src/Components/Profile/Templates/FlexView.tsx @@ -8,7 +8,7 @@ import { GroupSubHeaderView } from '#components/Profile/Subcomponents/GroupSubHe import { ProfileStartEndView } from '#components/Profile/Subcomponents/ProfileStartEndView' import { ProfileTextView } from '#components/Profile/Subcomponents/ProfileTextView' -import type { Item } from '#types/Item' +import type { Item } from '#src/types/Item' const componentMap = { groupSubheaders: GroupSubHeaderView, diff --git a/src/Components/Profile/Templates/OnepagerForm.tsx b/src/Components/Profile/Templates/OnepagerForm.tsx index 163cae4e..9e4a1783 100644 --- a/src/Components/Profile/Templates/OnepagerForm.tsx +++ b/src/Components/Profile/Templates/OnepagerForm.tsx @@ -4,8 +4,8 @@ import { TextAreaInput } from '#components/Input' import { ContactInfoForm } from '#components/Profile/Subcomponents/ContactInfoForm' import { GroupSubheaderForm } from '#components/Profile/Subcomponents/GroupSubheaderForm' -import type { FormState } from '#types/FormState' -import type { Item } from '#types/Item' +import type { FormState } from '#src/types/FormState' +import type { Item } from '#src/types/Item' export const OnepagerForm = ({ item, diff --git a/src/Components/Profile/Templates/OnepagerView.tsx b/src/Components/Profile/Templates/OnepagerView.tsx index 32a786ee..b26f0303 100644 --- a/src/Components/Profile/Templates/OnepagerView.tsx +++ b/src/Components/Profile/Templates/OnepagerView.tsx @@ -4,7 +4,7 @@ import { TextView } from '#components/Map' import { ContactInfoView } from '#components/Profile/Subcomponents/ContactInfoView' import { GroupSubHeaderView } from '#components/Profile/Subcomponents/GroupSubHeaderView' -import type { Item } from '#types/Item' +import type { Item } from '#src/types/Item' export const OnepagerView = ({ item }: { item: Item }) => { return ( diff --git a/src/Components/Profile/Templates/SimpleView.tsx b/src/Components/Profile/Templates/SimpleView.tsx index dca6d079..6553cb77 100644 --- a/src/Components/Profile/Templates/SimpleView.tsx +++ b/src/Components/Profile/Templates/SimpleView.tsx @@ -1,6 +1,6 @@ import { TextView } from '#components/Map' -import type { Item } from '#types/Item' +import type { Item } from '#src/types/Item' export const SimpleView = ({ item }: { item: Item }) => { return ( diff --git a/src/Components/Profile/Templates/TabsView.tsx b/src/Components/Profile/Templates/TabsView.tsx index d7554b94..51df5ec2 100644 --- a/src/Components/Profile/Templates/TabsView.tsx +++ b/src/Components/Profile/Templates/TabsView.tsx @@ -18,8 +18,8 @@ import { LinkedItemsHeaderView } from '#components/Profile/Subcomponents/LinkedI import { TagView } from '#components/Templates/TagView' import { timeAgo } from '#utils/TimeAgo' -import type { Item } from '#types/Item' -import type { Tag } from '#types/Tag' +import type { Item } from '#src/types/Item' +import type { Tag } from '#src/types/Tag' export const TabsView = ({ attestations, diff --git a/src/Components/Profile/UserSettings.tsx b/src/Components/Profile/UserSettings.tsx index 9f602f63..2da3d54d 100644 --- a/src/Components/Profile/UserSettings.tsx +++ b/src/Components/Profile/UserSettings.tsx @@ -8,7 +8,7 @@ import { useAuth } from '#components/Auth' import { TextInput } from '#components/Input' import { MapOverlayPage } from '#components/Templates' -import type { UserItem } from '#types/UserItem' +import type { UserItem } from '#src/types/UserItem' export function UserSettings() { const { user, updateUser, loading /* token */ } = useAuth() diff --git a/src/Components/Profile/itemFunctions.ts b/src/Components/Profile/itemFunctions.ts index ad11c536..5d4ca6dc 100644 --- a/src/Components/Profile/itemFunctions.ts +++ b/src/Components/Profile/itemFunctions.ts @@ -15,7 +15,7 @@ import { encodeTag } from '#utils/FormatTags' import { hashTagRegex } from '#utils/HashTagRegex' import { randomColor } from '#utils/RandomColor' -import type { Item } from '#types/Item' +import type { Item } from '#src/types/Item' // eslint-disable-next-line promise/avoid-new const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms)) diff --git a/src/Components/Templates/AttestationForm.tsx b/src/Components/Templates/AttestationForm.tsx index ce5994ad..a4d84aea 100644 --- a/src/Components/Templates/AttestationForm.tsx +++ b/src/Components/Templates/AttestationForm.tsx @@ -8,8 +8,8 @@ import { useItems } from '#components/Map/hooks/useItems' import { EmojiPicker } from './EmojiPicker' import { MapOverlayPage } from './MapOverlayPage' -import type { Item } from '#types/Item' -import type { ItemsApi } from '#types/ItemsApi' +import type { Item } from '#src/types/Item' +import type { ItemsApi } from '#src/types/ItemsApi' export const AttestationForm = ({ api }: { api?: ItemsApi }) => { const items = useItems() diff --git a/src/Components/Templates/DateUserInfo.tsx b/src/Components/Templates/DateUserInfo.tsx index 4243a9c0..358764bf 100644 --- a/src/Components/Templates/DateUserInfo.tsx +++ b/src/Components/Templates/DateUserInfo.tsx @@ -5,7 +5,7 @@ import { useState } from 'react' import { timeAgo } from '#utils/TimeAgo' -import type { Item } from '#types/Item' +import type { Item } from '#src/types/Item' export const DateUserInfo = ({ item }: { item: Item }) => { const [infoExpanded, setInfoExpanded] = useState(false) diff --git a/src/Components/Templates/ItemCard.tsx b/src/Components/Templates/ItemCard.tsx index 585d18ae..1e5938d8 100644 --- a/src/Components/Templates/ItemCard.tsx +++ b/src/Components/Templates/ItemCard.tsx @@ -13,7 +13,7 @@ import { getValue } from '#utils/GetValue' import { DateUserInfo } from './DateUserInfo' -import type { Item } from '#types/Item' +import type { Item } from '#src/types/Item' export const ItemCard = ({ i, diff --git a/src/Components/Templates/MarketView.tsx b/src/Components/Templates/MarketView.tsx index 18822755..f2339540 100644 --- a/src/Components/Templates/MarketView.tsx +++ b/src/Components/Templates/MarketView.tsx @@ -13,7 +13,7 @@ import { getValue } from '#utils/GetValue' import { MapOverlayPage } from './MapOverlayPage' import { TagView } from './TagView' -import type { Tag } from '#types/Tag' +import type { Tag } from '#src/types/Tag' function groupAndCount(arr) { const grouped = arr.reduce((acc, obj) => { diff --git a/src/Components/Templates/OverlayItemsIndexPage.tsx b/src/Components/Templates/OverlayItemsIndexPage.tsx index 3388cddc..052ad27c 100644 --- a/src/Components/Templates/OverlayItemsIndexPage.tsx +++ b/src/Components/Templates/OverlayItemsIndexPage.tsx @@ -25,7 +25,7 @@ import { randomColor } from '#utils/RandomColor' import { ItemCard } from './ItemCard' import { MapOverlayPage } from './MapOverlayPage' -import type { Item } from '#types/Item' +import type { Item } from '#src/types/Item' export const OverlayItemsIndexPage = ({ url, diff --git a/src/Components/Templates/TagView.tsx b/src/Components/Templates/TagView.tsx index f19c5adc..f103d533 100644 --- a/src/Components/Templates/TagView.tsx +++ b/src/Components/Templates/TagView.tsx @@ -2,7 +2,7 @@ import { decodeTag } from '#utils/FormatTags' -import type { Tag } from '#types/Tag' +import type { Tag } from '#src/types/Tag' export const TagView = ({ tag, diff --git a/src/index.tsx b/src/index.tsx index 145d1719..1446e5a5 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -37,6 +37,8 @@ export { } from './Components/Templates' export { TextInput, TextAreaInput, SelectBox } from './Components/Input' +export * from './types' + declare global { interface Window { my_modal_3: { diff --git a/types/AssetsApi.d.ts b/src/types/AssetsApi.d.ts similarity index 100% rename from types/AssetsApi.d.ts rename to src/types/AssetsApi.d.ts diff --git a/types/FormState.d.ts b/src/types/FormState.d.ts similarity index 100% rename from types/FormState.d.ts rename to src/types/FormState.d.ts diff --git a/types/Item.d.ts b/src/types/Item.d.ts similarity index 100% rename from types/Item.d.ts rename to src/types/Item.d.ts diff --git a/types/ItemFormPopupProps.d.ts b/src/types/ItemFormPopupProps.d.ts similarity index 100% rename from types/ItemFormPopupProps.d.ts rename to src/types/ItemFormPopupProps.d.ts diff --git a/types/ItemType.d.ts b/src/types/ItemType.d.ts similarity index 100% rename from types/ItemType.d.ts rename to src/types/ItemType.d.ts diff --git a/types/ItemsApi.d.ts b/src/types/ItemsApi.d.ts similarity index 100% rename from types/ItemsApi.d.ts rename to src/types/ItemsApi.d.ts diff --git a/types/LayerProps.d.ts b/src/types/LayerProps.d.ts similarity index 100% rename from types/LayerProps.d.ts rename to src/types/LayerProps.d.ts diff --git a/types/Permission.d.ts b/src/types/Permission.d.ts similarity index 100% rename from types/Permission.d.ts rename to src/types/Permission.d.ts diff --git a/types/PermissionAction.d.ts b/src/types/PermissionAction.d.ts similarity index 100% rename from types/PermissionAction.d.ts rename to src/types/PermissionAction.d.ts diff --git a/types/PermissionCondition.d.ts b/src/types/PermissionCondition.d.ts similarity index 100% rename from types/PermissionCondition.d.ts rename to src/types/PermissionCondition.d.ts diff --git a/types/Profile.d.ts b/src/types/Profile.d.ts similarity index 100% rename from types/Profile.d.ts rename to src/types/Profile.d.ts diff --git a/types/Relation.d.ts b/src/types/Relation.d.ts similarity index 100% rename from types/Relation.d.ts rename to src/types/Relation.d.ts diff --git a/types/Tag.d.ts b/src/types/Tag.d.ts similarity index 100% rename from types/Tag.d.ts rename to src/types/Tag.d.ts diff --git a/types/UserApi.d.ts b/src/types/UserApi.d.ts similarity index 100% rename from types/UserApi.d.ts rename to src/types/UserApi.d.ts diff --git a/types/UserItem.d.ts b/src/types/UserItem.d.ts similarity index 100% rename from types/UserItem.d.ts rename to src/types/UserItem.d.ts diff --git a/types/UtopiaMapProps.d.ts b/src/types/UtopiaMapProps.d.ts similarity index 100% rename from types/UtopiaMapProps.d.ts rename to src/types/UtopiaMapProps.d.ts diff --git a/src/types/index.ts b/src/types/index.ts new file mode 100644 index 00000000..42cb2117 --- /dev/null +++ b/src/types/index.ts @@ -0,0 +1,9 @@ +export type { ItemsApi } from './ItemsApi' +export type { Tag } from './Tag' +export type { Item } from './Item' +export type { Permission } from './Permission' +export type { LayerProps } from './LayerProps' +export type { UserApi } from './UserApi' +export type { UserItem } from './UserItem' +export type { UtopiaMapProps } from './UtopiaMapProps' +export type { AssetsApi } from './AssetsApi' diff --git a/tsconfig.json b/tsconfig.json index b0d11e50..dc2c4663 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,14 +1,15 @@ { "compilerOptions": { "outDir": "dist", + "declaration": true, + "declarationDir": "dist/types", // 🔹 Muss innerhalb von dist/ liegen + "emitDeclarationOnly": true, // Nur `.d.ts` generieren, kein JavaScript "module": "esnext", "target": "ESNext", "lib": ["es6", "dom","es2015", "es2016", "es2017", "es2020"], "sourceMap": true, "allowJs": false, "jsx": "react-jsx", - "declaration": true, - "declarationDir": "./types", "moduleResolution": "node", "forceConsistentCasingInFileNames": true, "noImplicitReturns": true, @@ -22,7 +23,7 @@ "#components/*": ["./src/Components/*"], "#utils/*": ["./src/Utils/*"], "#src/*": ["./src/*"], - "#types/*": ["./types/*"], + "#types/*": ["./src/types/*"], "#root/*": ["./*"] } },