Merge pull request #108 from utopia-os/export-all-types

fix(source): export all types
This commit is contained in:
antontranelis 2025-02-09 21:03:01 +00:00 committed by GitHub
commit 1de3f3e271
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
83 changed files with 606 additions and 360 deletions

621
package-lock.json generated
View File

@ -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,

View File

@ -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",

View File

@ -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$/],
},
]

View File

@ -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,

View File

@ -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()

View File

@ -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,

View File

@ -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

View File

@ -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<typeof useAssetsManager>

View File

@ -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

View File

@ -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()

View File

@ -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,

View File

@ -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 (

View File

@ -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 = ({

View File

@ -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,

View File

@ -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()

View File

@ -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)

View File

@ -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,

View File

@ -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,

View File

@ -1,4 +1,4 @@
import type { Item } from '#types/Item'
import type { Item } from '#src/types/Item'
export const PopupCheckboxInput = ({
dataField,

View File

@ -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

View File

@ -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,

View File

@ -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,

View File

@ -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 (

View File

@ -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,

View File

@ -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

View File

@ -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<Tag> }) {
const setTagData = useSetTagData()

View File

@ -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({

View File

@ -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({

View File

@ -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 }

View File

@ -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 }

View File

@ -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'

View File

@ -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 {

View File

@ -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 }

View File

@ -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'

View File

@ -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 }

View File

@ -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({

View File

@ -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<any> }) {
const [item, setItem] = useState<Item>()

View File

@ -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,

View File

@ -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,

View File

@ -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()

View File

@ -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)

View File

@ -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,

View File

@ -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: {

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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 (

View File

@ -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,

View File

@ -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,

View File

@ -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 }) => {

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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 (

View File

@ -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 (

View File

@ -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,

View File

@ -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()

View File

@ -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))

View File

@ -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<unknown> }) => {
const items = useItems()

View File

@ -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<boolean>(false)

View File

@ -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,

View File

@ -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) => {

View File

@ -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,

View File

@ -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,

View File

@ -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: {

9
src/types/index.ts Normal file
View File

@ -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'

View File

@ -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/*": ["./*"]
}
},