From ab3dc37052e2ed81211540afb7f5effdb43f424a Mon Sep 17 00:00:00 2001 From: Micheal Parks Date: Sat, 22 Jun 2024 13:35:54 -0400 Subject: [PATCH 1/4] cleanup --- README.md | 8 +- package-lock.json | 442 ++++++++++-------- package.json | 6 +- src/lib/components/AddHandlers.svelte | 20 +- src/lib/components/Container.svelte | 20 +- src/lib/components/Content.svelte | 19 +- src/lib/components/Image.svelte | 16 +- src/lib/components/Root.svelte | 5 +- src/lib/components/Svg.svelte | 15 +- src/lib/components/Text.svelte | 15 +- .../__tests__/Providers.spec.svelte | 8 +- src/lib/index.ts | 4 +- src/lib/useDefaultProperties.ts | 2 +- src/lib/useFontFamilies.ts | 2 +- src/lib/useInternals.ts | 26 +- src/lib/useParent.ts | 11 +- src/lib/usePropSignals.ts | 11 +- src/routes/Fullscreen.svelte | 10 +- src/routes/Portal/Portal.svelte | 18 + src/routes/Portal/PortalTarget.svelte | 21 + src/routes/Portal/index.ts | 2 + src/routes/Portal/usePortal.svelte.ts | 53 +++ src/routes/Scene.svelte | 16 +- vite.config.ts | 3 - 24 files changed, 469 insertions(+), 284 deletions(-) create mode 100644 src/routes/Portal/Portal.svelte create mode 100644 src/routes/Portal/PortalTarget.svelte create mode 100644 src/routes/Portal/index.ts create mode 100644 src/routes/Portal/usePortal.svelte.ts diff --git a/README.md b/README.md index c6ed1c3..ed3936a 100644 --- a/README.md +++ b/README.md @@ -54,22 +54,22 @@ The vanilla object may be accessed via the `ref` property. ## Context providers -- `createDefaultProperties()` +- `provideDefaultProperties()` Allows overriding the default properties for all UIKit components and children components of the component in which it is called. ```ts -createDefaultProperties({ +provideDefaultProperties({ margin: 10, }) ``` -- `createFontFamilies()` +- `provideFontFamilies()` Provides new font families to all children. Instructions for creating fonts that can be consumed by UIKit can be found [here](https://docs.pmnd.rs/uikit/tutorials/custom-fonts). ```ts -createFontFamilies({ +provideFontFamilies({ roboto: { light: 'url-to-json', medium: 'url-to-json', diff --git a/package-lock.json b/package-lock.json index f3a739e..718fd91 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "threlte-uikit", - "version": "0.0.4", + "version": "0.1.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "threlte-uikit", - "version": "0.0.4", + "version": "0.1.0", "license": "MIT", "dependencies": { "@pmndrs/uikit": "^0.3.6" @@ -18,8 +18,8 @@ "@sveltejs/kit": "^2.5.17", "@sveltejs/package": "^2.3.2", "@sveltejs/vite-plugin-svelte": "^3.1.1", - "@threlte/core": "^7.3.0", - "@threlte/extras": "^8.11.3", + "@threlte/core": "^8.0.0-next.5", + "@threlte/extras": "^9.0.0-next.9", "@threlte/test": "^0.2.4", "@types/eslint": "^8.56.10", "@types/three": "^0.165.0", @@ -30,7 +30,7 @@ "prettier": "^3.3.2", "prettier-plugin-svelte": "^3.2.5", "publint": "^0.2.8", - "svelte": "^4.2.18", + "svelte": "5.0.0-next.162", "svelte-check": "^3.8.1", "three": "^0.165.0", "three-inspect": "^0.7.0", @@ -1986,32 +1986,32 @@ } }, "node_modules/@threlte/core": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/@threlte/core/-/core-7.3.0.tgz", - "integrity": "sha512-yedstu5kcjV1/V1W0xNjkFQmL8A+n57NzjxBK+cPC1fdUtOvBtmOPxvOZ0b/TlhTyZM8XkEv4BiKrGibOrBzyA==", + "version": "8.0.0-next.5", + "resolved": "https://registry.npmjs.org/@threlte/core/-/core-8.0.0-next.5.tgz", + "integrity": "sha512-1zerfgW+QTATTdYJxqZ4KGmPd3XXSwqYHPjxY8NlD153FfHga+z3ju7Sy57j24XVt8ZgcH+PLLwg/ZA3V7Aj8w==", "dev": true, "dependencies": { "mitt": "^3.0.1" }, "peerDependencies": { - "svelte": ">=4", - "three": ">=0.152" + "svelte": ">=5", + "three": ">=0.155" } }, "node_modules/@threlte/extras": { - "version": "8.11.3", - "resolved": "https://registry.npmjs.org/@threlte/extras/-/extras-8.11.3.tgz", - "integrity": "sha512-4KWPmHbWKCsVLZvQOnTamBhxefy5JWwUmkxWTuKnD+e/dwe8Dy6qGIXN3tBtM3XMf1x9u2fhsu8ZkhiGJPbZvA==", + "version": "9.0.0-next.9", + "resolved": "https://registry.npmjs.org/@threlte/extras/-/extras-9.0.0-next.9.tgz", + "integrity": "sha512-azHBfLyG74MRkBBoeQfoGSBQvDL4yxWLFv7SQhf5ndaDYdWKsSOG6CEF19bVvH3idHSNVSRGvh1FJDsjqi/wOw==", "dev": true, "dependencies": { "@threejs-kit/instanced-sprite-mesh": "^2.4.6", - "three-mesh-bvh": "^0.7.1", + "three-mesh-bvh": "^0.7.4", "three-perf": "^1.0.10", - "troika-three-text": "^0.49.0" + "troika-three-text": "^0.49.1" }, "peerDependencies": { - "svelte": ">=4", - "three": ">=0.152" + "svelte": ">=5", + "three": ">=0.155" } }, "node_modules/@threlte/test": { @@ -2463,6 +2463,15 @@ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, + "node_modules/acorn-typescript": { + "version": "1.4.13", + "resolved": "https://registry.npmjs.org/acorn-typescript/-/acorn-typescript-1.4.13.tgz", + "integrity": "sha512-xsc9Xv0xlVfwp2o7sQ+GCQ1PgbkdcpWdTzrwXxO3xDMTAywVS3oXVOcOHuRjAPkS4P9b+yc/qNF15460v+jp4Q==", + "dev": true, + "peerDependencies": { + "acorn": ">=8.9.0" + } + }, "node_modules/acorn-walk": { "version": "8.3.2", "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz", @@ -3950,6 +3959,16 @@ "node": ">=0.10" } }, + "node_modules/esrap": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/esrap/-/esrap-1.2.2.tgz", + "integrity": "sha512-F2pSJklxx1BlQIQgooczXCPHmcWpn6EsP5oo73LQfonG9fIlIENQ8vMmfGXeojP9MrkzUNAfyU5vdFlR9shHAw==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15", + "@types/estree": "^1.0.1" + } + }, "node_modules/esrecurse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", @@ -7808,28 +7827,27 @@ } }, "node_modules/svelte": { - "version": "4.2.18", - "resolved": "https://registry.npmjs.org/svelte/-/svelte-4.2.18.tgz", - "integrity": "sha512-d0FdzYIiAePqRJEb90WlJDkjUEx42xhivxN8muUBmfZnP+tzUgz12DJ2hRJi8sIHCME7jeK1PTMgKPSfTd8JrA==", + "version": "5.0.0-next.162", + "resolved": "https://registry.npmjs.org/svelte/-/svelte-5.0.0-next.162.tgz", + "integrity": "sha512-CRAbvitTa5EjJf4Ls/1Y5hHll8GsZtIaNeCRC13viig+OnRD25qvwBYYsmxBe3xqaBt9FIFHS76WDwrOBcDnWA==", "dev": true, "dependencies": { "@ampproject/remapping": "^2.2.1", "@jridgewell/sourcemap-codec": "^1.4.15", - "@jridgewell/trace-mapping": "^0.3.18", - "@types/estree": "^1.0.1", - "acorn": "^8.9.0", + "@types/estree": "^1.0.5", + "acorn": "^8.11.3", + "acorn-typescript": "^1.4.13", "aria-query": "^5.3.0", "axobject-query": "^4.0.0", - "code-red": "^1.0.3", - "css-tree": "^2.3.1", - "estree-walker": "^3.0.3", - "is-reference": "^3.0.1", + "esm-env": "^1.0.0", + "esrap": "^1.2.2", + "is-reference": "^3.0.2", "locate-character": "^3.0.0", - "magic-string": "^0.30.4", - "periscopic": "^3.1.0" + "magic-string": "^0.30.5", + "zimmerframe": "^1.1.2" }, "engines": { - "node": ">=16" + "node": ">=18" } }, "node_modules/svelte-check": { @@ -7926,18 +7944,6 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/svelte-local-storage-store": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/svelte-local-storage-store/-/svelte-local-storage-store-0.6.4.tgz", - "integrity": "sha512-45WoY2vSGPQM1sIQJ9jTkPPj20hYeqm+af6mUGRFSPP5WglZf36YYoZqwmZZ8Dt/2SU8lem+BTA8/Z/8TkqNLg==", - "dev": true, - "engines": { - "node": ">=0.14" - }, - "peerDependencies": { - "svelte": "^3.48.0 || >4.0.0" - } - }, "node_modules/svelte-preprocess": { "version": "5.1.4", "resolved": "https://registry.npmjs.org/svelte-preprocess/-/svelte-preprocess-5.1.4.tgz", @@ -8000,146 +8006,6 @@ } } }, - "node_modules/svelte-tweakpane-ui": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/svelte-tweakpane-ui/-/svelte-tweakpane-ui-1.3.0.tgz", - "integrity": "sha512-LeJxKU+z8kDpsrTjjJtrg55F6OoLx06owQWaAPHQu7gsYZeFjf1YQ+8DnA+YP24aJE/B1A3ZkJ+qRi24lL9f3A==", - "dev": true, - "dependencies": { - "@kitschpatrol/tweakpane-plugin-camerakit": "^0.3.0", - "@kitschpatrol/tweakpane-plugin-essentials": "^0.2.1", - "@kitschpatrol/tweakpane-plugin-image": "^2.0.0", - "@kitschpatrol/tweakpane-plugin-profiler": "^0.4.1", - "@kitschpatrol/tweakpane-plugin-rotation": "^0.2.0", - "@kitschpatrol/tweakpane-plugin-textarea": "^2.0.0", - "@kitschpatrol/tweakpane-plugin-waveform": "^1.0.3", - "@tweakpane/core": "2.0.3", - "esm-env": "1.0.0", - "fast-copy": "3.0.1", - "fast-equals": "5.0.1", - "nanoid": "5.0.6", - "svelte-local-storage-store": "0.6.4", - "tweakpane": "4.0.3" - }, - "engines": { - "node": ">=18.0.0", - "pnpm": ">=8.0.0" - }, - "peerDependencies": { - "svelte": "^4.0.0" - } - }, - "node_modules/svelte-tweakpane-ui/node_modules/@kitschpatrol/tweakpane-plugin-camerakit": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@kitschpatrol/tweakpane-plugin-camerakit/-/tweakpane-plugin-camerakit-0.3.0.tgz", - "integrity": "sha512-Rj1puvx5dzr04REfMz6DDMjoNxidA98n/j4RljLs4Hql8JqblPTeioQLjNnaRGTlDkmwhoEmhKJXtX26NtPAQQ==", - "dev": true, - "dependencies": { - "@tweakpane/core": "^2.0.3" - }, - "peerDependencies": { - "tweakpane": "^4.0.3" - } - }, - "node_modules/svelte-tweakpane-ui/node_modules/@kitschpatrol/tweakpane-plugin-essentials": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@kitschpatrol/tweakpane-plugin-essentials/-/tweakpane-plugin-essentials-0.2.1.tgz", - "integrity": "sha512-0V7ANWmcOb+oWNssIqa+KtBt8+Lqtqk++wiBZ8g8DjJ9z1v8Q3VLluVekSzZb2Mhu1rytWsXmzMknnRWsfzqBg==", - "dev": true, - "dependencies": { - "@tweakpane/core": "^2.0.3" - }, - "peerDependencies": { - "tweakpane": "^4.0.3" - } - }, - "node_modules/svelte-tweakpane-ui/node_modules/@kitschpatrol/tweakpane-plugin-image": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@kitschpatrol/tweakpane-plugin-image/-/tweakpane-plugin-image-2.0.0.tgz", - "integrity": "sha512-7gnWKCBIJtcBus4JhvBCGU3q4NL+Tfgo7Bnxb30ORsqnYI/D6W8Kuty/NbUrPVL6fx1E3zulgH6lmBkmv0JhDA==", - "dev": true, - "dependencies": { - "@tweakpane/core": "^2.0.3" - }, - "peerDependencies": { - "tweakpane": "^4.0.3" - } - }, - "node_modules/svelte-tweakpane-ui/node_modules/@kitschpatrol/tweakpane-plugin-profiler": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@kitschpatrol/tweakpane-plugin-profiler/-/tweakpane-plugin-profiler-0.4.1.tgz", - "integrity": "sha512-dPPLvaHUBpZM8upzudMforfMw/h6j9jscZsHkt+LjSrrmXH2OUM5adR4Dd7WUCc/OGjgMx9hxsSjiptIZqxA+g==", - "dev": true, - "dependencies": { - "@tweakpane/core": "^2.0.3" - }, - "peerDependencies": { - "tweakpane": "^4.0.3" - } - }, - "node_modules/svelte-tweakpane-ui/node_modules/@kitschpatrol/tweakpane-plugin-rotation": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@kitschpatrol/tweakpane-plugin-rotation/-/tweakpane-plugin-rotation-0.2.0.tgz", - "integrity": "sha512-bXGR2WO84zlXeafk/r4PRy6mhpuGdXX9AiQHWAwcCchzyYGvXtqNK0QjCZQfLTTBHbp8y1wDxU2Idd2qAKBq2Q==", - "dev": true, - "dependencies": { - "@tweakpane/core": "^2.0.3" - }, - "peerDependencies": { - "tweakpane": "^4.0.3" - } - }, - "node_modules/svelte-tweakpane-ui/node_modules/@kitschpatrol/tweakpane-plugin-textarea": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@kitschpatrol/tweakpane-plugin-textarea/-/tweakpane-plugin-textarea-2.0.0.tgz", - "integrity": "sha512-h68Eo9gKbeZ9AYyaFy/HSVFzYeMsN+WTlOk+QO1prqDs56yqw0DJKDHffK2sdlGd8wThtGF359TiV8UEsCa3dA==", - "dev": true, - "dependencies": { - "@tweakpane/core": "^2.0.3" - }, - "peerDependencies": { - "tweakpane": "^4.0.3" - } - }, - "node_modules/svelte-tweakpane-ui/node_modules/@kitschpatrol/tweakpane-plugin-waveform": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@kitschpatrol/tweakpane-plugin-waveform/-/tweakpane-plugin-waveform-1.0.3.tgz", - "integrity": "sha512-litDHX36MXbaw92stzTxua0MqS8INOkq0kGIhqxuRlyjOom7JJsO0bkSgNSbSNAQxJTHmo9NRjO6PzBbFR2Dsw==", - "dev": true, - "dependencies": { - "@tweakpane/core": "^2.0.3" - }, - "peerDependencies": { - "tweakpane": "^4.0.3" - } - }, - "node_modules/svelte-tweakpane-ui/node_modules/nanoid": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-5.0.6.tgz", - "integrity": "sha512-rRq0eMHoGZxlvaFOUdK1Ev83Bd1IgzzR+WJ3IbDJ7QOSdAxYjlurSPqFs9s4lJg29RT6nPwizFtJhQS6V5xgiA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "bin": { - "nanoid": "bin/nanoid.js" - }, - "engines": { - "node": "^18 || >=20" - } - }, - "node_modules/svelte-tweakpane-ui/node_modules/tweakpane": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/tweakpane/-/tweakpane-4.0.3.tgz", - "integrity": "sha512-BlcWOAe8oe4c+k9pmLBARGdWB6MVZMszayekkixQXTgkxTaYoTUpHpwVEp+3HkoamZkomodpbBf0CkguIHTgLg==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/cocopon" - } - }, "node_modules/svelte2tsx": { "version": "0.7.9", "resolved": "https://registry.npmjs.org/svelte2tsx/-/svelte2tsx-0.7.9.tgz", @@ -8326,6 +8192,212 @@ "three": ">=0.140" } }, + "node_modules/three-inspect/node_modules/@kitschpatrol/tweakpane-plugin-camerakit": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@kitschpatrol/tweakpane-plugin-camerakit/-/tweakpane-plugin-camerakit-0.3.0.tgz", + "integrity": "sha512-Rj1puvx5dzr04REfMz6DDMjoNxidA98n/j4RljLs4Hql8JqblPTeioQLjNnaRGTlDkmwhoEmhKJXtX26NtPAQQ==", + "dev": true, + "dependencies": { + "@tweakpane/core": "^2.0.3" + }, + "peerDependencies": { + "tweakpane": "^4.0.3" + } + }, + "node_modules/three-inspect/node_modules/@kitschpatrol/tweakpane-plugin-essentials": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@kitschpatrol/tweakpane-plugin-essentials/-/tweakpane-plugin-essentials-0.2.1.tgz", + "integrity": "sha512-0V7ANWmcOb+oWNssIqa+KtBt8+Lqtqk++wiBZ8g8DjJ9z1v8Q3VLluVekSzZb2Mhu1rytWsXmzMknnRWsfzqBg==", + "dev": true, + "dependencies": { + "@tweakpane/core": "^2.0.3" + }, + "peerDependencies": { + "tweakpane": "^4.0.3" + } + }, + "node_modules/three-inspect/node_modules/@kitschpatrol/tweakpane-plugin-image": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@kitschpatrol/tweakpane-plugin-image/-/tweakpane-plugin-image-2.0.0.tgz", + "integrity": "sha512-7gnWKCBIJtcBus4JhvBCGU3q4NL+Tfgo7Bnxb30ORsqnYI/D6W8Kuty/NbUrPVL6fx1E3zulgH6lmBkmv0JhDA==", + "dev": true, + "dependencies": { + "@tweakpane/core": "^2.0.3" + }, + "peerDependencies": { + "tweakpane": "^4.0.3" + } + }, + "node_modules/three-inspect/node_modules/@kitschpatrol/tweakpane-plugin-profiler": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@kitschpatrol/tweakpane-plugin-profiler/-/tweakpane-plugin-profiler-0.4.1.tgz", + "integrity": "sha512-dPPLvaHUBpZM8upzudMforfMw/h6j9jscZsHkt+LjSrrmXH2OUM5adR4Dd7WUCc/OGjgMx9hxsSjiptIZqxA+g==", + "dev": true, + "dependencies": { + "@tweakpane/core": "^2.0.3" + }, + "peerDependencies": { + "tweakpane": "^4.0.3" + } + }, + "node_modules/three-inspect/node_modules/@kitschpatrol/tweakpane-plugin-rotation": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@kitschpatrol/tweakpane-plugin-rotation/-/tweakpane-plugin-rotation-0.2.0.tgz", + "integrity": "sha512-bXGR2WO84zlXeafk/r4PRy6mhpuGdXX9AiQHWAwcCchzyYGvXtqNK0QjCZQfLTTBHbp8y1wDxU2Idd2qAKBq2Q==", + "dev": true, + "dependencies": { + "@tweakpane/core": "^2.0.3" + }, + "peerDependencies": { + "tweakpane": "^4.0.3" + } + }, + "node_modules/three-inspect/node_modules/@kitschpatrol/tweakpane-plugin-textarea": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@kitschpatrol/tweakpane-plugin-textarea/-/tweakpane-plugin-textarea-2.0.0.tgz", + "integrity": "sha512-h68Eo9gKbeZ9AYyaFy/HSVFzYeMsN+WTlOk+QO1prqDs56yqw0DJKDHffK2sdlGd8wThtGF359TiV8UEsCa3dA==", + "dev": true, + "dependencies": { + "@tweakpane/core": "^2.0.3" + }, + "peerDependencies": { + "tweakpane": "^4.0.3" + } + }, + "node_modules/three-inspect/node_modules/@kitschpatrol/tweakpane-plugin-waveform": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@kitschpatrol/tweakpane-plugin-waveform/-/tweakpane-plugin-waveform-1.0.3.tgz", + "integrity": "sha512-litDHX36MXbaw92stzTxua0MqS8INOkq0kGIhqxuRlyjOom7JJsO0bkSgNSbSNAQxJTHmo9NRjO6PzBbFR2Dsw==", + "dev": true, + "dependencies": { + "@tweakpane/core": "^2.0.3" + }, + "peerDependencies": { + "tweakpane": "^4.0.3" + } + }, + "node_modules/three-inspect/node_modules/@threlte/core": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/@threlte/core/-/core-7.3.0.tgz", + "integrity": "sha512-yedstu5kcjV1/V1W0xNjkFQmL8A+n57NzjxBK+cPC1fdUtOvBtmOPxvOZ0b/TlhTyZM8XkEv4BiKrGibOrBzyA==", + "dev": true, + "dependencies": { + "mitt": "^3.0.1" + }, + "peerDependencies": { + "svelte": ">=4", + "three": ">=0.152" + } + }, + "node_modules/three-inspect/node_modules/@threlte/extras": { + "version": "8.11.3", + "resolved": "https://registry.npmjs.org/@threlte/extras/-/extras-8.11.3.tgz", + "integrity": "sha512-4KWPmHbWKCsVLZvQOnTamBhxefy5JWwUmkxWTuKnD+e/dwe8Dy6qGIXN3tBtM3XMf1x9u2fhsu8ZkhiGJPbZvA==", + "dev": true, + "dependencies": { + "@threejs-kit/instanced-sprite-mesh": "^2.4.6", + "three-mesh-bvh": "^0.7.1", + "three-perf": "^1.0.10", + "troika-three-text": "^0.49.0" + }, + "peerDependencies": { + "svelte": ">=4", + "three": ">=0.152" + } + }, + "node_modules/three-inspect/node_modules/nanoid": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-5.0.6.tgz", + "integrity": "sha512-rRq0eMHoGZxlvaFOUdK1Ev83Bd1IgzzR+WJ3IbDJ7QOSdAxYjlurSPqFs9s4lJg29RT6nPwizFtJhQS6V5xgiA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.js" + }, + "engines": { + "node": "^18 || >=20" + } + }, + "node_modules/three-inspect/node_modules/svelte": { + "version": "4.2.18", + "resolved": "https://registry.npmjs.org/svelte/-/svelte-4.2.18.tgz", + "integrity": "sha512-d0FdzYIiAePqRJEb90WlJDkjUEx42xhivxN8muUBmfZnP+tzUgz12DJ2hRJi8sIHCME7jeK1PTMgKPSfTd8JrA==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.1", + "@jridgewell/sourcemap-codec": "^1.4.15", + "@jridgewell/trace-mapping": "^0.3.18", + "@types/estree": "^1.0.1", + "acorn": "^8.9.0", + "aria-query": "^5.3.0", + "axobject-query": "^4.0.0", + "code-red": "^1.0.3", + "css-tree": "^2.3.1", + "estree-walker": "^3.0.3", + "is-reference": "^3.0.1", + "locate-character": "^3.0.0", + "magic-string": "^0.30.4", + "periscopic": "^3.1.0" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/three-inspect/node_modules/svelte-local-storage-store": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/svelte-local-storage-store/-/svelte-local-storage-store-0.6.4.tgz", + "integrity": "sha512-45WoY2vSGPQM1sIQJ9jTkPPj20hYeqm+af6mUGRFSPP5WglZf36YYoZqwmZZ8Dt/2SU8lem+BTA8/Z/8TkqNLg==", + "dev": true, + "engines": { + "node": ">=0.14" + }, + "peerDependencies": { + "svelte": "^3.48.0 || >4.0.0" + } + }, + "node_modules/three-inspect/node_modules/svelte-tweakpane-ui": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/svelte-tweakpane-ui/-/svelte-tweakpane-ui-1.3.0.tgz", + "integrity": "sha512-LeJxKU+z8kDpsrTjjJtrg55F6OoLx06owQWaAPHQu7gsYZeFjf1YQ+8DnA+YP24aJE/B1A3ZkJ+qRi24lL9f3A==", + "dev": true, + "dependencies": { + "@kitschpatrol/tweakpane-plugin-camerakit": "^0.3.0", + "@kitschpatrol/tweakpane-plugin-essentials": "^0.2.1", + "@kitschpatrol/tweakpane-plugin-image": "^2.0.0", + "@kitschpatrol/tweakpane-plugin-profiler": "^0.4.1", + "@kitschpatrol/tweakpane-plugin-rotation": "^0.2.0", + "@kitschpatrol/tweakpane-plugin-textarea": "^2.0.0", + "@kitschpatrol/tweakpane-plugin-waveform": "^1.0.3", + "@tweakpane/core": "2.0.3", + "esm-env": "1.0.0", + "fast-copy": "3.0.1", + "fast-equals": "5.0.1", + "nanoid": "5.0.6", + "svelte-local-storage-store": "0.6.4", + "tweakpane": "4.0.3" + }, + "engines": { + "node": ">=18.0.0", + "pnpm": ">=8.0.0" + }, + "peerDependencies": { + "svelte": "^4.0.0" + } + }, + "node_modules/three-inspect/node_modules/tweakpane": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/tweakpane/-/tweakpane-4.0.3.tgz", + "integrity": "sha512-BlcWOAe8oe4c+k9pmLBARGdWB6MVZMszayekkixQXTgkxTaYoTUpHpwVEp+3HkoamZkomodpbBf0CkguIHTgLg==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/cocopon" + } + }, "node_modules/three-instanced-uniforms-mesh": { "version": "0.49.1", "resolved": "https://registry.npmjs.org/three-instanced-uniforms-mesh/-/three-instanced-uniforms-mesh-0.49.1.tgz", @@ -9389,6 +9461,12 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/yoga-layout/-/yoga-layout-3.0.4.tgz", "integrity": "sha512-mNmdkofwKGSXUYvo4sDTNI9BXTLAXw/LsBsftEmelPtS/PeePzs4yWe2Q0Y+p5NqadPSAMhAGuIiXs1QiZ+lBg==" + }, + "node_modules/zimmerframe": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/zimmerframe/-/zimmerframe-1.1.2.tgz", + "integrity": "sha512-rAbqEGa8ovJy4pyBxZM70hg4pE6gDgaQ0Sl9M3enG3I0d6H4XSAM3GeNGLKnsBpuijUow064sf7ww1nutC5/3w==", + "dev": true } } } diff --git a/package.json b/package.json index 6911ad0..33f33c0 100644 --- a/package.json +++ b/package.json @@ -42,8 +42,8 @@ "@sveltejs/kit": "^2.5.17", "@sveltejs/package": "^2.3.2", "@sveltejs/vite-plugin-svelte": "^3.1.1", - "@threlte/core": "^7.3.0", - "@threlte/extras": "^8.11.3", + "@threlte/core": "^8.0.0-next.5", + "@threlte/extras": "^9.0.0-next.9", "@threlte/test": "^0.2.4", "@types/eslint": "^8.56.10", "@types/three": "^0.165.0", @@ -54,7 +54,7 @@ "prettier": "^3.3.2", "prettier-plugin-svelte": "^3.2.5", "publint": "^0.2.8", - "svelte": "^4.2.18", + "svelte": "5.0.0-next.162", "svelte-check": "^3.8.1", "three": "^0.165.0", "three-inspect": "^0.7.0", diff --git a/src/lib/components/AddHandlers.svelte b/src/lib/components/AddHandlers.svelte index 3e6dafc..463657b 100644 --- a/src/lib/components/AddHandlers.svelte +++ b/src/lib/components/AddHandlers.svelte @@ -1,5 +1,5 @@ -{#if allHandlers === undefined} - - - -{:else} +{#if allHandlers !== undefined} +{:else} + + + {/if} diff --git a/src/lib/components/Container.svelte b/src/lib/components/Container.svelte index c43aac7..7c02f70 100644 --- a/src/lib/components/Container.svelte +++ b/src/lib/components/Container.svelte @@ -21,11 +21,12 @@ const parent = useParent() const outerRef = currentWritable(new Group()) const innerRef = currentWritable(new Group()) - const propertySignals = usePropertySignals($$restProps) - $: propertySignals.properties.value = $$restProps + const propertySignals = usePropertySignals({ ...$$restProps }) + $: props = { ...$$restProps } + $: propertySignals.properties.value = props - const internals = createContainer( - parent, + $: internals = createContainer( + $parent, propertySignals.style, propertySignals.properties, propertySignals.default, @@ -34,17 +35,20 @@ ) $: internals.interactionPanel.name = name ?? '' - export let ref = useInternals( + export let ref: ContainerRef | undefined = undefined + + $: ref = useInternals( internals, propertySignals.style, - parent.root.pixelSize + $parent.root.pixelSize ) - createParent(internals) + const parentContext = createParent(internals) + $: parentContext.set(internals) diff --git a/src/lib/components/Content.svelte b/src/lib/components/Content.svelte index eac22fe..04bc6a6 100644 --- a/src/lib/components/Content.svelte +++ b/src/lib/components/Content.svelte @@ -21,11 +21,12 @@ const parent = useParent() const outerRef = currentWritable(new Object3D()) const innerRef = currentWritable(new Object3D()) - const propertySignals = usePropertySignals($$restProps) - $: propertySignals.properties.value = $$restProps + const propertySignals = usePropertySignals({ ...$$restProps }) + $: props = { ...$$restProps } + $: propertySignals.properties.value = props - const internals = createContent( - parent, + $: internals = createContent( + $parent, propertySignals.style, propertySignals.properties, propertySignals.default, @@ -34,17 +35,15 @@ ) $: internals.interactionPanel.name = name ?? '' - export let ref = useInternals( - internals, - propertySignals.style, - parent.root.pixelSize - ) + export let ref: ContentRef | undefined = undefined + + $: ref = useInternals(internals, propertySignals.style, $parent.root.pixelSize) createParent(undefined!) diff --git a/src/lib/components/Image.svelte b/src/lib/components/Image.svelte index eba4ac8..5d153f6 100644 --- a/src/lib/components/Image.svelte +++ b/src/lib/components/Image.svelte @@ -18,11 +18,12 @@ const parent = useParent() const outerRef = currentWritable(new Group()) const innerRef = currentWritable(new Group()) - const propertySignals = usePropertySignals($$restProps) + const propertySignals = usePropertySignals({ ...$$restProps }) + $: props = { ...$$restProps } $: propertySignals.properties.value = $$restProps - const internals = createImage( - parent, + $: internals = createImage( + $parent, propertySignals.style, propertySignals.properties, propertySignals.default, @@ -31,13 +32,16 @@ ) $: internals.interactionPanel.name = name ?? '' - export let ref = useInternals(internals, propertySignals.style, parent.root.pixelSize) + export let ref: ImageRef | undefined = undefined - createParent(internals) + $: ref = useInternals(internals, propertySignals.style, $parent.root.pixelSize) + + const parentContext = createParent(internals) + $: parentContext.set(internals) diff --git a/src/lib/components/Root.svelte b/src/lib/components/Root.svelte index 4fd426e..1c8ca9e 100644 --- a/src/lib/components/Root.svelte +++ b/src/lib/components/Root.svelte @@ -39,7 +39,8 @@ let innerRef = currentWritable(new Group()) const propertySignals = usePropertySignals($$restProps) - $: propertySignals.properties.value = $$restProps + $: props = { ...$$restProps } + $: propertySignals.properties.value = props const pixelSizeSignal = signal | number | undefined>(undefined) $: pixelSizeSignal.value = pixelSize @@ -90,7 +91,7 @@ diff --git a/src/lib/components/Svg.svelte b/src/lib/components/Svg.svelte index 52d3fe5..c0fcbf2 100644 --- a/src/lib/components/Svg.svelte +++ b/src/lib/components/Svg.svelte @@ -18,11 +18,12 @@ const parent = useParent() const outerRef = currentWritable(new Object3D()) const innerRef = currentWritable(new Object3D()) - const propertySignals = usePropertySignals($$restProps) - $: propertySignals.properties.value = $$restProps + const propertySignals = usePropertySignals({ ...$$restProps }) + $: props = { ...$$restProps } + $: propertySignals.properties.value = props - const internals = createSvg( - parent, + $: internals = createSvg( + $parent, propertySignals.style, propertySignals.properties, propertySignals.default, @@ -31,13 +32,15 @@ ) $: internals.interactionPanel.name = name ?? '' - export let ref = useInternals(internals, propertySignals.style, parent.root.pixelSize) + export let ref: SvgRef | undefined = undefined + + $: ref = useInternals(internals, propertySignals.style, $parent.root.pixelSize) createParent(internals) diff --git a/src/lib/components/Text.svelte b/src/lib/components/Text.svelte index 199cc89..17d8f33 100644 --- a/src/lib/components/Text.svelte +++ b/src/lib/components/Text.svelte @@ -26,8 +26,9 @@ const parent = useParent() const outerRef = currentWritable(new Group()) - const propertySignals = usePropertySignals($$restProps) - $: propertySignals.properties.value = $$restProps + const propertySignals = usePropertySignals({ ...$$restProps }) + $: props = { ...$$restProps } + $: propertySignals.properties.value = props const textSignal = signal(text) $: textSignal.value = text @@ -36,8 +37,8 @@ const fontFamilies = signal(fontContext) $: fontFamilies.value = fontContext - const internals = createText( - parent, + $: internals = createText( + $parent, textSignal, fontFamilies, propertySignals.style, @@ -47,11 +48,13 @@ ) $: internals.interactionPanel.name = name ?? '' - export let ref = useInternals(internals, propertySignals.style, parent.root.pixelSize) + export let ref: TextRef | undefined = undefined + + $: ref = useInternals(internals, propertySignals.style, $parent.root.pixelSize) diff --git a/src/lib/components/__tests__/Providers.spec.svelte b/src/lib/components/__tests__/Providers.spec.svelte index 8856af2..56030cc 100644 --- a/src/lib/components/__tests__/Providers.spec.svelte +++ b/src/lib/components/__tests__/Providers.spec.svelte @@ -5,8 +5,8 @@ Root, Container, Text, - createDefaultProperties, - createFontFamilies, + provideDefaultProperties, + provideFontFamilies, type AllOptionalProperties, type FontFamilies, type RootRef, @@ -22,11 +22,11 @@ export let text: TextRef if (style) { - createDefaultProperties(style) + provideDefaultProperties(style) } if (fontFamilies) { - createFontFamilies(fontFamilies) + provideFontFamilies(fontFamilies) } diff --git a/src/lib/index.ts b/src/lib/index.ts index d3e0e17..ec7d6f4 100644 --- a/src/lib/index.ts +++ b/src/lib/index.ts @@ -1,6 +1,6 @@ // Contexts -export { createDefaultProperties } from './useDefaultProperties' -export { createFontFamilies } from './useFontFamilies' +export { provideDefaultProperties } from './useDefaultProperties' +export { provideFontFamilies } from './useFontFamilies' export { basedOnPreferredColorScheme, diff --git a/src/lib/useDefaultProperties.ts b/src/lib/useDefaultProperties.ts index 37a32da..f2e14cc 100644 --- a/src/lib/useDefaultProperties.ts +++ b/src/lib/useDefaultProperties.ts @@ -3,7 +3,7 @@ import type { AllOptionalProperties } from '@pmndrs/uikit/internals' const contextKey = Symbol('default-props-context') -export const createDefaultProperties = (defaults: AllOptionalProperties) => { +export const provideDefaultProperties = (defaults: AllOptionalProperties) => { setContext(contextKey, defaults) } diff --git a/src/lib/useFontFamilies.ts b/src/lib/useFontFamilies.ts index 624b510..2fe7038 100644 --- a/src/lib/useFontFamilies.ts +++ b/src/lib/useFontFamilies.ts @@ -3,7 +3,7 @@ import type { FontFamilies } from '@pmndrs/uikit/internals' const contextKey = Symbol('font-family-context') -export const createFontFamilies = (fontFamilies: FontFamilies) => { +export const provideFontFamilies = (fontFamilies: FontFamilies) => { setContext(contextKey, fontFamilies) } diff --git a/src/lib/useInternals.ts b/src/lib/useInternals.ts index 7bf5e01..7369b52 100644 --- a/src/lib/useInternals.ts +++ b/src/lib/useInternals.ts @@ -103,21 +103,13 @@ export const useInternals = ( additional?: Additional ): ComponentInternals => { const subscriptions: Subscriptions = [] + initialize(internals.initializers, subscriptions) + onMount(() => { return () => unsubscribeSubscriptions(subscriptions) }) - const { - scrollPosition, - paddingInset, - borderInset, - relativeCenter, - size, - maxScrollPosition, - interactionPanel, - } = internals - return { setStyle: (style: T | undefined) => (styleSignal.value = style), getStyle: () => styleSignal.peek(), @@ -126,15 +118,15 @@ export const useInternals = ( internals.mergedProperties.value.read(key as string, undefined) ), pixelSize, - borderInset, - paddingInset, - center: relativeCenter, - maxScrollPosition, - size, + borderInset: internals.borderInset, + paddingInset: internals.paddingInset, + center: internals.relativeCenter, + maxScrollPosition: internals.maxScrollPosition, + size: internals.size, get interactionPanel() { - return 'isMesh' in interactionPanel ? interactionPanel : interactionPanel.current + return internals.interactionPanel }, - scrollPosition, + scrollPosition: internals.scrollPosition, isClipped: internals.isClipped, ...additional, } diff --git a/src/lib/useParent.ts b/src/lib/useParent.ts index 0d52c2d..4828e23 100644 --- a/src/lib/useParent.ts +++ b/src/lib/useParent.ts @@ -1,12 +1,15 @@ import type { ParentContext } from '@pmndrs/uikit/internals' +import { currentWritable, type CurrentWritable } from '@threlte/core' import { getContext, setContext } from 'svelte' const key = Symbol('uikit-parent-context') -export const createParent = (context: ParentContext) => { - setContext(key, context) +export const createParent = (parent: ParentContext) => { + const context = currentWritable(parent) + setContext>(key, context) + return context } -export const useParent = (): ParentContext => { - return getContext(key) +export const useParent = (): CurrentWritable => { + return getContext>(key) } diff --git a/src/lib/usePropSignals.ts b/src/lib/usePropSignals.ts index f2c6a44..ed64d8d 100644 --- a/src/lib/usePropSignals.ts +++ b/src/lib/usePropSignals.ts @@ -3,14 +3,9 @@ import { type AllOptionalProperties } from '@pmndrs/uikit/internals' import { useDefaultProperties } from './useDefaultProperties' export const usePropertySignals = (properties: T) => { - const propertySignals = { + return { style: signal(undefined), - properties: signal(undefined), - default: signal(undefined), + properties: signal(properties), + default: signal(useDefaultProperties()), } - - propertySignals.properties.value = properties - propertySignals.default.value = useDefaultProperties() - - return propertySignals } diff --git a/src/routes/Fullscreen.svelte b/src/routes/Fullscreen.svelte index f14a459..d54e04b 100644 --- a/src/routes/Fullscreen.svelte +++ b/src/routes/Fullscreen.svelte @@ -1,13 +1,11 @@ - + + + + + diff --git a/src/routes/Portal/Portal.svelte b/src/routes/Portal/Portal.svelte new file mode 100644 index 0000000..c52523d --- /dev/null +++ b/src/routes/Portal/Portal.svelte @@ -0,0 +1,18 @@ + diff --git a/src/routes/Portal/PortalTarget.svelte b/src/routes/Portal/PortalTarget.svelte new file mode 100644 index 0000000..12e2b05 --- /dev/null +++ b/src/routes/Portal/PortalTarget.svelte @@ -0,0 +1,21 @@ + + +{#each snippets.value as snippet} + {@render snippet()} +{/each} diff --git a/src/routes/Portal/index.ts b/src/routes/Portal/index.ts new file mode 100644 index 0000000..6b34ad4 --- /dev/null +++ b/src/routes/Portal/index.ts @@ -0,0 +1,2 @@ +export { default as Portal } from './Portal.svelte' +export { default as PortalTarget } from './PortalTarget.svelte' diff --git a/src/routes/Portal/usePortal.svelte.ts b/src/routes/Portal/usePortal.svelte.ts new file mode 100644 index 0000000..59e72ff --- /dev/null +++ b/src/routes/Portal/usePortal.svelte.ts @@ -0,0 +1,53 @@ +import { useThrelteUserContext } from '@threlte/core' +import type { Snippet } from 'svelte' + +type PortalContext = { + addPortal: (id: string) => { value: Snippet[] } + addSnippet: (id: string, snippet: Snippet) => void + removeSnippet: (id: string, snippet: Snippet) => void + removePortal: (id: string) => void +} + +const createPortalContext = (): PortalContext => { + const portals = $state>({}) + + const addPortal = (id: string) => { + if (portals[id]) { + console.warn(`Portal with id ${id} already exists. Skipping portal creation.`) + return { value: portals[id] } + } else { + portals[id] = [] + return { value: portals[id] } + } + } + + const addSnippet = (portalId: string, snippet: Snippet) => { + const portal = portals[portalId] + portal?.push(snippet) + } + + const removeSnippet = (portalId: string, snippet: Snippet) => { + const portal = portals[portalId] + portal?.splice(portal.indexOf(snippet), 1) + } + + const removePortal = (id: string) => { + if (!portals[id]) { + console.warn(`Portal with id ${id} does not exist. Skipping portal removal.`) + } else { + delete portals[id] + } + return portals + } + + return { + addPortal, + addSnippet, + removeSnippet, + removePortal, + } +} + +export const usePortal = () => { + return useThrelteUserContext('threlte-portals', createPortalContext()) +} diff --git a/src/routes/Scene.svelte b/src/routes/Scene.svelte index 10f2d2f..316c1d9 100644 --- a/src/routes/Scene.svelte +++ b/src/routes/Scene.svelte @@ -1,15 +1,17 @@ + + + alert('hi')}> + + + @@ -47,7 +55,7 @@ backgroundColor: '#ccc', }} > - Date: Sat, 22 Jun 2024 13:37:11 -0400 Subject: [PATCH 2/4] cleanup --- src/lib/components/AddHandlers.svelte | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/lib/components/AddHandlers.svelte b/src/lib/components/AddHandlers.svelte index 463657b..d5f1dff 100644 --- a/src/lib/components/AddHandlers.svelte +++ b/src/lib/components/AddHandlers.svelte @@ -1,5 +1,5 @@ {#if allHandlers !== undefined} From 0bebe26b0b406912f3e47ba9262e492eb267dbce Mon Sep 17 00:00:00 2001 From: Micheal Parks Date: Sat, 22 Jun 2024 13:47:58 -0400 Subject: [PATCH 3/4] cleanup --- src/routes/Fullscreen.svelte | 7 +--- src/routes/Portal/Portal.svelte | 18 --------- src/routes/Portal/PortalTarget.svelte | 21 ----------- src/routes/Portal/index.ts | 2 - src/routes/Portal/usePortal.svelte.ts | 53 --------------------------- src/routes/Scene.svelte | 4 -- 6 files changed, 1 insertion(+), 104 deletions(-) delete mode 100644 src/routes/Portal/Portal.svelte delete mode 100644 src/routes/Portal/PortalTarget.svelte delete mode 100644 src/routes/Portal/index.ts delete mode 100644 src/routes/Portal/usePortal.svelte.ts diff --git a/src/routes/Fullscreen.svelte b/src/routes/Fullscreen.svelte index d54e04b..cf7490d 100644 --- a/src/routes/Fullscreen.svelte +++ b/src/routes/Fullscreen.svelte @@ -1,11 +1,10 @@ - + - - - - diff --git a/src/routes/Portal/Portal.svelte b/src/routes/Portal/Portal.svelte deleted file mode 100644 index c52523d..0000000 --- a/src/routes/Portal/Portal.svelte +++ /dev/null @@ -1,18 +0,0 @@ - diff --git a/src/routes/Portal/PortalTarget.svelte b/src/routes/Portal/PortalTarget.svelte deleted file mode 100644 index 12e2b05..0000000 --- a/src/routes/Portal/PortalTarget.svelte +++ /dev/null @@ -1,21 +0,0 @@ - - -{#each snippets.value as snippet} - {@render snippet()} -{/each} diff --git a/src/routes/Portal/index.ts b/src/routes/Portal/index.ts deleted file mode 100644 index 6b34ad4..0000000 --- a/src/routes/Portal/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export { default as Portal } from './Portal.svelte' -export { default as PortalTarget } from './PortalTarget.svelte' diff --git a/src/routes/Portal/usePortal.svelte.ts b/src/routes/Portal/usePortal.svelte.ts deleted file mode 100644 index 59e72ff..0000000 --- a/src/routes/Portal/usePortal.svelte.ts +++ /dev/null @@ -1,53 +0,0 @@ -import { useThrelteUserContext } from '@threlte/core' -import type { Snippet } from 'svelte' - -type PortalContext = { - addPortal: (id: string) => { value: Snippet[] } - addSnippet: (id: string, snippet: Snippet) => void - removeSnippet: (id: string, snippet: Snippet) => void - removePortal: (id: string) => void -} - -const createPortalContext = (): PortalContext => { - const portals = $state>({}) - - const addPortal = (id: string) => { - if (portals[id]) { - console.warn(`Portal with id ${id} already exists. Skipping portal creation.`) - return { value: portals[id] } - } else { - portals[id] = [] - return { value: portals[id] } - } - } - - const addSnippet = (portalId: string, snippet: Snippet) => { - const portal = portals[portalId] - portal?.push(snippet) - } - - const removeSnippet = (portalId: string, snippet: Snippet) => { - const portal = portals[portalId] - portal?.splice(portal.indexOf(snippet), 1) - } - - const removePortal = (id: string) => { - if (!portals[id]) { - console.warn(`Portal with id ${id} does not exist. Skipping portal removal.`) - } else { - delete portals[id] - } - return portals - } - - return { - addPortal, - addSnippet, - removeSnippet, - removePortal, - } -} - -export const usePortal = () => { - return useThrelteUserContext('threlte-portals', createPortalContext()) -} diff --git a/src/routes/Scene.svelte b/src/routes/Scene.svelte index 316c1d9..0aa0c05 100644 --- a/src/routes/Scene.svelte +++ b/src/routes/Scene.svelte @@ -35,10 +35,6 @@ - alert('hi')}> - - - From b36248709ecbbbc9fff9fbcba274d1bc37e9cc04 Mon Sep 17 00:00:00 2001 From: Micheal Parks Date: Sat, 22 Jun 2024 13:48:46 -0400 Subject: [PATCH 4/4] changeset --- .changeset/sour-zebras-itch.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/sour-zebras-itch.md diff --git a/.changeset/sour-zebras-itch.md b/.changeset/sour-zebras-itch.md new file mode 100644 index 0000000..d7cfb7d --- /dev/null +++ b/.changeset/sour-zebras-itch.md @@ -0,0 +1,5 @@ +--- +'threlte-uikit': minor +--- + +Rename providers, fix Svelte 5 reactivity issues