sa2kit 1.6.78 → 1.6.80
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ai/llm/electron/index.js +2 -2
- package/dist/ai/llm/electron/index.js.map +1 -1
- package/dist/ai/llm/electron/index.mjs +2 -2
- package/dist/ai/llm/electron/index.mjs.map +1 -1
- package/dist/ai/llm/ui/electron/index.js +2 -2
- package/dist/ai/llm/ui/electron/index.js.map +1 -1
- package/dist/ai/llm/ui/electron/index.mjs +2 -2
- package/dist/ai/llm/ui/electron/index.mjs.map +1 -1
- package/dist/ai/llm/ui/web/index.js +2 -2
- package/dist/ai/llm/ui/web/index.js.map +1 -1
- package/dist/ai/llm/ui/web/index.mjs +2 -2
- package/dist/ai/llm/ui/web/index.mjs.map +1 -1
- package/dist/ai/llm/web/index.js +2 -2
- package/dist/ai/llm/web/index.js.map +1 -1
- package/dist/ai/llm/web/index.mjs +2 -2
- package/dist/ai/llm/web/index.mjs.map +1 -1
- package/dist/ar/index.d.mts +2 -2
- package/dist/ar/index.d.ts +2 -2
- package/dist/ar/index.js +43 -4
- package/dist/ar/index.js.map +1 -1
- package/dist/ar/index.mjs +43 -4
- package/dist/ar/index.mjs.map +1 -1
- package/dist/{booking-BX_0AXU6.d.mts → booking-473Db8Bo.d.mts} +6 -0
- package/dist/{booking-BX_0AXU6.d.ts → booking-473Db8Bo.d.ts} +6 -0
- package/dist/{bookingAdminService-ChzuoCUx.d.ts → bookingAdminService-DqQ7hEGw.d.ts} +1 -1
- package/dist/{bookingAdminService-B_D_Jq1W.d.mts → bookingAdminService-SBX4JA_U.d.mts} +1 -1
- package/dist/calendar/index.js +8 -4
- package/dist/calendar/index.js.map +1 -1
- package/dist/calendar/index.mjs +8 -4
- package/dist/calendar/index.mjs.map +1 -1
- package/dist/calendar/web/index.js +8 -4
- package/dist/calendar/web/index.js.map +1 -1
- package/dist/calendar/web/index.mjs +8 -4
- package/dist/calendar/web/index.mjs.map +1 -1
- package/dist/{client-B6JtOkEq.d.ts → client-Bkn6mRI7.d.ts} +1 -1
- package/dist/{client-DkSveTk-.d.mts → client-exYn2Qla.d.mts} +1 -1
- package/dist/components/index.d.mts +2 -0
- package/dist/components/index.d.ts +2 -0
- package/dist/components/index.js +8 -4
- package/dist/components/index.js.map +1 -1
- package/dist/components/index.mjs +8 -4
- package/dist/components/index.mjs.map +1 -1
- package/dist/{index-B9vIHUEv.d.ts → index-BJpxvH7X.d.ts} +1 -1
- package/dist/{index-C3_UPPdv.d.ts → index-CdTIsNsy.d.ts} +2 -2
- package/dist/{index-DDuTPOHu.d.mts → index-Cum2EknK.d.mts} +1 -1
- package/dist/{index-D6ZIkvt-.d.mts → index-DyxLpkmm.d.mts} +2 -2
- package/dist/{index-BjYZSfZa.d.ts → index-XTV6IU-M.d.ts} +2 -2
- package/dist/{index-3qQN9Lh_.d.mts → index-z15F7afa.d.mts} +2 -2
- package/dist/index.js +8 -4
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +8 -4
- package/dist/index.mjs.map +1 -1
- package/dist/mmd/index.d.mts +9 -3
- package/dist/mmd/index.d.ts +9 -3
- package/dist/mmd/index.js +95 -13
- package/dist/mmd/index.js.map +1 -1
- package/dist/mmd/index.mjs +95 -13
- package/dist/mmd/index.mjs.map +1 -1
- package/dist/portfolio/index.js +2 -2
- package/dist/portfolio/index.js.map +1 -1
- package/dist/portfolio/index.mjs +2 -2
- package/dist/portfolio/index.mjs.map +1 -1
- package/dist/showmasterpiece/core.d.mts +3 -3
- package/dist/showmasterpiece/core.d.ts +3 -3
- package/dist/showmasterpiece/db.d.mts +25 -0
- package/dist/showmasterpiece/db.d.ts +25 -0
- package/dist/showmasterpiece/db.js +35 -0
- package/dist/showmasterpiece/db.js.map +1 -1
- package/dist/showmasterpiece/db.mjs +35 -0
- package/dist/showmasterpiece/db.mjs.map +1 -1
- package/dist/showmasterpiece/index.js +279 -226
- package/dist/showmasterpiece/index.js.map +1 -1
- package/dist/showmasterpiece/index.mjs +279 -226
- package/dist/showmasterpiece/index.mjs.map +1 -1
- package/dist/showmasterpiece/logic/index.d.mts +2 -2
- package/dist/showmasterpiece/logic/index.d.ts +2 -2
- package/dist/showmasterpiece/server/index.js +35 -0
- package/dist/showmasterpiece/server/index.js.map +1 -1
- package/dist/showmasterpiece/server/index.mjs +35 -0
- package/dist/showmasterpiece/server/index.mjs.map +1 -1
- package/dist/showmasterpiece/service/api/index.d.mts +1 -1
- package/dist/showmasterpiece/service/api/index.d.ts +1 -1
- package/dist/showmasterpiece/service/client-business/index.d.mts +3 -3
- package/dist/showmasterpiece/service/client-business/index.d.ts +3 -3
- package/dist/showmasterpiece/service/index.d.mts +6 -6
- package/dist/showmasterpiece/service/index.d.ts +6 -6
- package/dist/showmasterpiece/service/miniapp/index.d.mts +2 -2
- package/dist/showmasterpiece/service/miniapp/index.d.ts +2 -2
- package/dist/showmasterpiece/service/web/index.d.mts +4 -4
- package/dist/showmasterpiece/service/web/index.d.ts +4 -4
- package/dist/showmasterpiece/ui/miniapp/index.d.mts +2 -2
- package/dist/showmasterpiece/ui/miniapp/index.d.ts +2 -2
- package/dist/showmasterpiece/ui/miniapp/index.js +38 -8
- package/dist/showmasterpiece/ui/miniapp/index.js.map +1 -1
- package/dist/showmasterpiece/ui/miniapp/index.mjs +38 -8
- package/dist/showmasterpiece/ui/miniapp/index.mjs.map +1 -1
- package/dist/showmasterpiece/ui/web/index.js +279 -226
- package/dist/showmasterpiece/ui/web/index.js.map +1 -1
- package/dist/showmasterpiece/ui/web/index.mjs +279 -226
- package/dist/showmasterpiece/ui/web/index.mjs.map +1 -1
- package/dist/showmasterpiece/web/index.js +279 -226
- package/dist/showmasterpiece/web/index.js.map +1 -1
- package/dist/showmasterpiece/web/index.mjs +279 -226
- package/dist/showmasterpiece/web/index.mjs.map +1 -1
- package/dist/{types-CvKvpyN8.d.mts → types-D4vSK3AJ.d.mts} +2 -1
- package/dist/{types-CvKvpyN8.d.ts → types-D4vSK3AJ.d.ts} +2 -1
- package/package.json +1 -1
package/dist/mmd/index.mjs
CHANGED
|
@@ -7105,6 +7105,42 @@ var DEFAULT_AR_ASSETS = {
|
|
|
7105
7105
|
|
|
7106
7106
|
// src/ar/load-arjs.ts
|
|
7107
7107
|
var loadPromise = null;
|
|
7108
|
+
function isTHREExNamespace(value) {
|
|
7109
|
+
if (!value || typeof value !== "object") return false;
|
|
7110
|
+
const candidate = value;
|
|
7111
|
+
return typeof candidate.ArToolkitSource === "function" && typeof candidate.ArToolkitContext === "function" && typeof candidate.ArMarkerControls === "function";
|
|
7112
|
+
}
|
|
7113
|
+
function resolveTHREExNamespace(moduleExports) {
|
|
7114
|
+
const arWindow = window;
|
|
7115
|
+
const globalTHREEx = arWindow.THREEx;
|
|
7116
|
+
if (isTHREExNamespace(globalTHREEx)) {
|
|
7117
|
+
return globalTHREEx;
|
|
7118
|
+
}
|
|
7119
|
+
if (isTHREExNamespace(moduleExports)) {
|
|
7120
|
+
return moduleExports;
|
|
7121
|
+
}
|
|
7122
|
+
const record = moduleExports;
|
|
7123
|
+
const defaultExport = record?.default;
|
|
7124
|
+
if (isTHREExNamespace(defaultExport)) {
|
|
7125
|
+
return defaultExport;
|
|
7126
|
+
}
|
|
7127
|
+
if (isTHREExNamespace(record?.THREEx)) {
|
|
7128
|
+
return record?.THREEx;
|
|
7129
|
+
}
|
|
7130
|
+
const arjsCandidate = record?.ARjs ?? defaultExport ?? record ?? arWindow.ARjs;
|
|
7131
|
+
const arjsRecord = arjsCandidate;
|
|
7132
|
+
const source = arjsRecord?.Source;
|
|
7133
|
+
const context = arjsRecord?.Context;
|
|
7134
|
+
const markerControls = arjsRecord?.MarkerControls;
|
|
7135
|
+
if (typeof source === "function" && typeof context === "function" && typeof markerControls === "function") {
|
|
7136
|
+
return {
|
|
7137
|
+
ArToolkitSource: source,
|
|
7138
|
+
ArToolkitContext: context,
|
|
7139
|
+
ArMarkerControls: markerControls
|
|
7140
|
+
};
|
|
7141
|
+
}
|
|
7142
|
+
return void 0;
|
|
7143
|
+
}
|
|
7108
7144
|
async function loadARJS(options = {}) {
|
|
7109
7145
|
if (typeof window === "undefined") {
|
|
7110
7146
|
throw new Error("AR.js can only be loaded in a browser environment.");
|
|
@@ -7114,15 +7150,18 @@ async function loadARJS(options = {}) {
|
|
|
7114
7150
|
}
|
|
7115
7151
|
const existing = window.THREEx;
|
|
7116
7152
|
if (existing && !options.forceReload) {
|
|
7117
|
-
|
|
7153
|
+
if (isTHREExNamespace(existing)) {
|
|
7154
|
+
return existing;
|
|
7155
|
+
}
|
|
7118
7156
|
}
|
|
7119
7157
|
if (!loadPromise || options.forceReload) {
|
|
7120
7158
|
const importPromise = options.locationOnly ? import('@ar-js-org/ar.js/three.js/build/ar-threex-location-only.js') : import('@ar-js-org/ar.js/three.js/build/ar-threex.js');
|
|
7121
|
-
loadPromise = importPromise.then(() => {
|
|
7122
|
-
const THREEx =
|
|
7159
|
+
loadPromise = importPromise.then((loadedModule) => {
|
|
7160
|
+
const THREEx = resolveTHREExNamespace(loadedModule);
|
|
7123
7161
|
if (!THREEx) {
|
|
7124
|
-
throw new Error("AR.js loaded, but THREEx namespace was not found.");
|
|
7162
|
+
throw new Error("AR.js loaded, but THREEx namespace was not found in module exports or window.");
|
|
7125
7163
|
}
|
|
7164
|
+
window.THREEx = THREEx;
|
|
7126
7165
|
return THREEx;
|
|
7127
7166
|
});
|
|
7128
7167
|
}
|
|
@@ -7165,6 +7204,7 @@ var MMDARApp = forwardRef((props, ref) => {
|
|
|
7165
7204
|
cameraConfig,
|
|
7166
7205
|
cameraParametersUrl,
|
|
7167
7206
|
markerConfig,
|
|
7207
|
+
markerPlacementMode = "manual",
|
|
7168
7208
|
mirrored = false,
|
|
7169
7209
|
showSettings,
|
|
7170
7210
|
modelPresets,
|
|
@@ -7206,6 +7246,7 @@ var MMDARApp = forwardRef((props, ref) => {
|
|
|
7206
7246
|
const mmdMeshRef = useRef(null);
|
|
7207
7247
|
const animationFrameRef = useRef(null);
|
|
7208
7248
|
const markerDetectedRef = useRef(false);
|
|
7249
|
+
const markerPlacedOnceRef = useRef(false);
|
|
7209
7250
|
const audioRef = useRef(null);
|
|
7210
7251
|
const autoPlayRef = useRef(autoPlay);
|
|
7211
7252
|
const [isLoading, setIsLoading] = useState(true);
|
|
@@ -7236,6 +7277,7 @@ var MMDARApp = forwardRef((props, ref) => {
|
|
|
7236
7277
|
return {
|
|
7237
7278
|
type: markerConfig?.type ?? "pattern",
|
|
7238
7279
|
patternUrl: markerConfig?.patternUrl ?? DEFAULT_AR_ASSETS.patternUrl,
|
|
7280
|
+
descriptorsUrl: markerConfig?.descriptorsUrl,
|
|
7239
7281
|
barcodeValue: markerConfig?.barcodeValue ?? 0,
|
|
7240
7282
|
changeMatrixMode: markerConfig?.changeMatrixMode ?? "modelViewMatrix"
|
|
7241
7283
|
};
|
|
@@ -7308,14 +7350,24 @@ var MMDARApp = forwardRef((props, ref) => {
|
|
|
7308
7350
|
modelRootRef.current.quaternion.identity();
|
|
7309
7351
|
updateModelPlacement(true);
|
|
7310
7352
|
} else {
|
|
7311
|
-
if (
|
|
7312
|
-
modelRootRef.current.parent
|
|
7313
|
-
|
|
7353
|
+
if (markerPlacementMode === "follow-marker" && markerRootRef.current) {
|
|
7354
|
+
if (modelRootRef.current.parent !== markerRootRef.current) {
|
|
7355
|
+
modelRootRef.current.parent?.remove(modelRootRef.current);
|
|
7356
|
+
markerRootRef.current.add(modelRootRef.current);
|
|
7357
|
+
}
|
|
7358
|
+
modelRootRef.current.position.set(0, 0, 0);
|
|
7359
|
+
modelRootRef.current.quaternion.identity();
|
|
7360
|
+
updateModelPlacement(markerDetectedRef.current);
|
|
7361
|
+
} else {
|
|
7362
|
+
if (modelRootRef.current.parent !== sceneRef.current) {
|
|
7363
|
+
modelRootRef.current.parent?.remove(modelRootRef.current);
|
|
7364
|
+
sceneRef.current.add(modelRootRef.current);
|
|
7365
|
+
}
|
|
7366
|
+
updateModelPlacement(initialModelVisible);
|
|
7314
7367
|
}
|
|
7315
|
-
updateModelPlacement(initialModelVisible);
|
|
7316
7368
|
}
|
|
7317
7369
|
},
|
|
7318
|
-
[initialModelVisible, updateModelPlacement]
|
|
7370
|
+
[initialModelVisible, markerPlacementMode, updateModelPlacement]
|
|
7319
7371
|
);
|
|
7320
7372
|
const stopCameraStream = useCallback(() => {
|
|
7321
7373
|
const source = arToolkitSourceRef.current;
|
|
@@ -7342,6 +7394,7 @@ var MMDARApp = forwardRef((props, ref) => {
|
|
|
7342
7394
|
arToolkitSourceRef.current = null;
|
|
7343
7395
|
arToolkitContextRef.current = null;
|
|
7344
7396
|
markerDetectedRef.current = false;
|
|
7397
|
+
markerPlacedOnceRef.current = false;
|
|
7345
7398
|
setMarkerDetected(false);
|
|
7346
7399
|
setCameraReady(false);
|
|
7347
7400
|
setArReady(false);
|
|
@@ -7417,6 +7470,13 @@ var MMDARApp = forwardRef((props, ref) => {
|
|
|
7417
7470
|
if (isVisible !== markerDetectedRef.current) {
|
|
7418
7471
|
markerDetectedRef.current = isVisible;
|
|
7419
7472
|
setMarkerDetected(isVisible);
|
|
7473
|
+
if (resolvedARMode !== "overlay" /* Overlay */ && markerPlacementMode === "follow-marker") {
|
|
7474
|
+
updateModelPlacement(isVisible);
|
|
7475
|
+
if (isVisible && !markerPlacedOnceRef.current) {
|
|
7476
|
+
markerPlacedOnceRef.current = true;
|
|
7477
|
+
onModelPlaced?.();
|
|
7478
|
+
}
|
|
7479
|
+
}
|
|
7420
7480
|
}
|
|
7421
7481
|
}
|
|
7422
7482
|
}
|
|
@@ -7427,10 +7487,15 @@ var MMDARApp = forwardRef((props, ref) => {
|
|
|
7427
7487
|
renderer.render(scene, camera);
|
|
7428
7488
|
};
|
|
7429
7489
|
render();
|
|
7430
|
-
}, []);
|
|
7490
|
+
}, [markerPlacementMode, onModelPlaced, resolvedARMode, updateModelPlacement]);
|
|
7431
7491
|
const setupAR = useCallback(async (facingOverride) => {
|
|
7432
7492
|
if (!sceneRef.current || !cameraRef.current) return;
|
|
7433
7493
|
const THREEx = await loadARJS({ three: THREE2 });
|
|
7494
|
+
if (resolvedMarkerConfig.type === "nft" && !resolvedMarkerConfig.descriptorsUrl) {
|
|
7495
|
+
throw new Error(
|
|
7496
|
+
'markerConfig.descriptorsUrl is required when markerConfig.type is "nft".'
|
|
7497
|
+
);
|
|
7498
|
+
}
|
|
7434
7499
|
const facingMode = facingOverride ?? cameraFacing;
|
|
7435
7500
|
const sourceWidth = typeof cameraConfig?.width === "number" ? cameraConfig.width : cameraConfig?.width?.ideal;
|
|
7436
7501
|
const sourceHeight = typeof cameraConfig?.height === "number" ? cameraConfig.height : cameraConfig?.height?.ideal;
|
|
@@ -7450,6 +7515,7 @@ var MMDARApp = forwardRef((props, ref) => {
|
|
|
7450
7515
|
const markerRoot = new THREE2.Group();
|
|
7451
7516
|
markerRootRef.current = markerRoot;
|
|
7452
7517
|
sceneRef.current.add(markerRoot);
|
|
7518
|
+
attachModelRoot(resolvedARMode);
|
|
7453
7519
|
markerControlsRef.current = new THREEx.ArMarkerControls(
|
|
7454
7520
|
arToolkitContext,
|
|
7455
7521
|
markerRoot,
|
|
@@ -7490,6 +7556,8 @@ var MMDARApp = forwardRef((props, ref) => {
|
|
|
7490
7556
|
mirrored,
|
|
7491
7557
|
onCameraReady,
|
|
7492
7558
|
resize,
|
|
7559
|
+
attachModelRoot,
|
|
7560
|
+
resolvedARMode,
|
|
7493
7561
|
resolvedMarkerConfig
|
|
7494
7562
|
]);
|
|
7495
7563
|
const loadMMDResources = useCallback(async () => {
|
|
@@ -7583,12 +7651,19 @@ var MMDARApp = forwardRef((props, ref) => {
|
|
|
7583
7651
|
onModelPlaced?.();
|
|
7584
7652
|
return;
|
|
7585
7653
|
}
|
|
7654
|
+
if (markerPlacementMode === "follow-marker") {
|
|
7655
|
+
updateModelPlacement(markerDetectedRef.current);
|
|
7656
|
+
if (markerDetectedRef.current) {
|
|
7657
|
+
onModelPlaced?.();
|
|
7658
|
+
}
|
|
7659
|
+
return;
|
|
7660
|
+
}
|
|
7586
7661
|
if (!markerRootRef.current) return;
|
|
7587
7662
|
modelRootRef.current.position.copy(markerRootRef.current.position);
|
|
7588
7663
|
modelRootRef.current.quaternion.copy(markerRootRef.current.quaternion);
|
|
7589
7664
|
updateModelPlacement(true);
|
|
7590
7665
|
onModelPlaced?.();
|
|
7591
|
-
}, [onModelPlaced, resolvedARMode, updateModelPlacement]);
|
|
7666
|
+
}, [markerPlacementMode, onModelPlaced, resolvedARMode, updateModelPlacement]);
|
|
7592
7667
|
const removeModel = useCallback(() => {
|
|
7593
7668
|
updateModelPlacement(false);
|
|
7594
7669
|
}, [updateModelPlacement]);
|
|
@@ -7741,7 +7816,7 @@ var MMDARApp = forwardRef((props, ref) => {
|
|
|
7741
7816
|
/* @__PURE__ */ React10.createElement("canvas", { ref: canvasRef, className: "absolute inset-0 w-full h-full", style: mirroredStyle }),
|
|
7742
7817
|
isLoading && /* @__PURE__ */ React10.createElement("div", { className: "absolute inset-0 flex items-center justify-center bg-black/70 text-white z-20" }, /* @__PURE__ */ React10.createElement("div", { className: "text-center" }, /* @__PURE__ */ React10.createElement("div", { className: "h-10 w-10 animate-spin rounded-full border-b-2 border-white mx-auto mb-3" }), /* @__PURE__ */ React10.createElement("div", null, "Initializing AR..."))),
|
|
7743
7818
|
error && /* @__PURE__ */ React10.createElement("div", { className: "absolute inset-0 flex items-center justify-center bg-red-950/80 text-white z-20" }, /* @__PURE__ */ React10.createElement("div", { className: "text-center max-w-sm px-4" }, /* @__PURE__ */ React10.createElement("div", { className: "text-lg font-semibold mb-2" }, "AR Error"), /* @__PURE__ */ React10.createElement("div", { className: "text-sm text-red-200" }, error))),
|
|
7744
|
-
arReady && !error && /* @__PURE__ */ React10.createElement(React10.Fragment, null, resolvedARMode !== "overlay" /* Overlay */ && !modelPlaced && /* @__PURE__ */ React10.createElement("div", { className: "absolute top-4 left-4 right-4 bg-black/70 text-white p-3 rounded-lg text-sm z-10" }, /* @__PURE__ */ React10.createElement("div", { className: "font-semibold mb-1" }, "Marker Placement"), /* @__PURE__ */ React10.createElement("div", { className: "text-gray-200" },
|
|
7819
|
+
arReady && !error && /* @__PURE__ */ React10.createElement(React10.Fragment, null, resolvedARMode !== "overlay" /* Overlay */ && !modelPlaced && /* @__PURE__ */ React10.createElement("div", { className: "absolute top-4 left-4 right-4 bg-black/70 text-white p-3 rounded-lg text-sm z-10" }, /* @__PURE__ */ React10.createElement("div", { className: "font-semibold mb-1" }, "Marker Placement"), /* @__PURE__ */ React10.createElement("div", { className: "text-gray-200" }, markerPlacementMode === "follow-marker" ? "Align the marker in view, model will be placed automatically." : `Align the marker in view, then tap "${placementText}" to place the model.`), /* @__PURE__ */ React10.createElement("div", { className: "mt-2" }, markerDetected ? /* @__PURE__ */ React10.createElement("span", { className: "text-green-400" }, "Marker detected") : /* @__PURE__ */ React10.createElement("span", { className: "text-yellow-400" }, "Waiting for marker..."))), /* @__PURE__ */ React10.createElement("div", { className: "absolute top-4 right-4 flex items-center space-x-2 z-10" }, /* @__PURE__ */ React10.createElement(
|
|
7745
7820
|
"span",
|
|
7746
7821
|
{
|
|
7747
7822
|
className: clsx("h-2.5 w-2.5 rounded-full", cameraReady ? "bg-green-400" : "bg-red-400"),
|
|
@@ -7766,7 +7841,7 @@ var MMDARApp = forwardRef((props, ref) => {
|
|
|
7766
7841
|
className: "px-4 py-2 rounded-lg bg-gray-700 text-white hover:bg-gray-600"
|
|
7767
7842
|
},
|
|
7768
7843
|
"Settings"
|
|
7769
|
-
), resolvedARMode !== "overlay" /* Overlay */ && !modelPlaced && /* @__PURE__ */ React10.createElement(
|
|
7844
|
+
), resolvedARMode !== "overlay" /* Overlay */ && markerPlacementMode === "manual" && !modelPlaced && /* @__PURE__ */ React10.createElement(
|
|
7770
7845
|
"button",
|
|
7771
7846
|
{
|
|
7772
7847
|
onClick: placeModel,
|
|
@@ -7833,6 +7908,13 @@ var MMDARApp = forwardRef((props, ref) => {
|
|
|
7833
7908
|
},
|
|
7834
7909
|
/* @__PURE__ */ React10.createElement("option", { value: "overlay" /* Overlay */ }, "Overlay"),
|
|
7835
7910
|
/* @__PURE__ */ React10.createElement("option", { value: "world-fixed" /* WorldFixed */ }, "World Fixed")
|
|
7911
|
+
)), /* @__PURE__ */ React10.createElement("label", { className: "block text-xs text-gray-300" }, "Marker Placement", /* @__PURE__ */ React10.createElement(
|
|
7912
|
+
"input",
|
|
7913
|
+
{
|
|
7914
|
+
value: markerPlacementMode === "follow-marker" ? "Auto Follow" : "Manual Place",
|
|
7915
|
+
readOnly: true,
|
|
7916
|
+
className: "mt-1 w-full bg-gray-700 text-white text-sm rounded px-2 py-1 opacity-70"
|
|
7917
|
+
}
|
|
7836
7918
|
)), /* @__PURE__ */ React10.createElement("label", { className: "block text-xs text-gray-300" }, "Camera", /* @__PURE__ */ React10.createElement(
|
|
7837
7919
|
"select",
|
|
7838
7920
|
{
|