diff --git a/src/App.svelte b/src/App.svelte
index db386f8ce..2190c072c 100644
--- a/src/App.svelte
+++ b/src/App.svelte
@@ -67,6 +67,8 @@
import SculptToolbar from './components/menu/SculptToolbar.svelte'
import SplineToolbar from './components/menu/SplineToolbar.svelte'
import MeasureToolbar from './components/menu/MeasureToolbar.svelte' // 47 M1
+ import UnderlayWindow from './components/menu/UnderlayWindow.svelte' // 60 Q5
+ import { underlayDropMenu } from '$lib/underlays'
import ModuleToolboxLayer from './components/ui/ModuleToolboxLayer.svelte'
// 48 D1: the node graph debugger's panel (loaded the first time it opens)
import { debugOpen } from '$lib/flowDebug.js'
@@ -388,6 +390,13 @@ import { startMusicToolbox } from './lib/musicToolbox'
// an unsupported file — importFile pairs them up.
const companionExt = /\.(mtl|png|jpe?g|webp|bmp|gif)$/i
const companions = files.filter((file) => companionExt.test(file.name))
+ // 60 Q5: a drop of nothing but images is not a model's companions — they used to be
+ // dropped silently. Ask what they are for: a reference image to build over, or the Explorer.
+ const imageExt = /\.(png|jpe?g|webp|bmp|gif)$/i
+ if (files.every((file) => imageExt.test(file.name))) {
+ underlayDropMenu.set({ x: event.clientX, y: event.clientY, files })
+ return
+ }
files.forEach((file) => {
const name = file.name.toLowerCase()
if (modelExt.test(name)) importFile(file, file.name.replace(modelExt, ''), undefined, undefined, companions)
@@ -451,6 +460,8 @@ import { startMusicToolbox } from './lib/musicToolbox'
+
+
diff --git a/src/components/Scene.svelte b/src/components/Scene.svelte
index 9065cea28..b507495ab 100644
--- a/src/components/Scene.svelte
+++ b/src/components/Scene.svelte
@@ -105,6 +105,7 @@
// 36 A2: the headset browser's own "Enter VR" offer — decided by us, not threlte's default
import { xrOfferMode } from '$lib/xrOffer';
import MeasureOverlay from './MeasureOverlay.svelte';
+ import UnderlayLayer from './UnderlayLayer.svelte'; // 60 Q5
import AnnotationPins from './AnnotationPins.svelte';
import PingMarkers from './PingMarkers.svelte';
import PingHighlights from './PingHighlights.svelte';
@@ -1811,6 +1812,10 @@
+
+
+