@blueharford/scrypted-spatial-awareness 0.1.7 → 0.1.8

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/plugin.zip CHANGED
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@blueharford/scrypted-spatial-awareness",
3
- "version": "0.1.7",
3
+ "version": "0.1.8",
4
4
  "description": "Cross-camera object tracking for Scrypted NVR with spatial awareness",
5
5
  "author": "Joshua Seidel <blueharford>",
6
6
  "license": "Apache-2.0",
package/src/main.ts CHANGED
@@ -335,63 +335,13 @@ export class SpatialAwarenessPlugin extends ScryptedDeviceBase
335
335
  async getSettings(): Promise<Setting[]> {
336
336
  const settings = await this.storageSettings.getSettings();
337
337
 
338
- // Topology editor button that opens modal overlay
338
+ // Topology editor button that opens modal overlay (appended to body for proper z-index)
339
339
  settings.push({
340
340
  key: 'topologyEditor',
341
341
  title: 'Topology Editor',
342
342
  type: 'html' as any,
343
343
  value: `
344
344
  <style>
345
- .sa-modal-overlay {
346
- display: none;
347
- position: fixed;
348
- top: 0;
349
- left: 0;
350
- right: 0;
351
- bottom: 0;
352
- background: rgba(0, 0, 0, 0.85);
353
- z-index: 999999;
354
- align-items: center;
355
- justify-content: center;
356
- }
357
- .sa-modal-overlay.active {
358
- display: flex;
359
- }
360
- .sa-modal-container {
361
- width: 95vw;
362
- height: 90vh;
363
- max-width: 1600px;
364
- background: #1a1a2e;
365
- border-radius: 12px;
366
- overflow: hidden;
367
- position: relative;
368
- box-shadow: 0 25px 50px rgba(0, 0, 0, 0.5);
369
- }
370
- .sa-modal-close {
371
- position: absolute;
372
- top: 10px;
373
- right: 10px;
374
- z-index: 1000000;
375
- background: #e94560;
376
- color: white;
377
- border: none;
378
- width: 36px;
379
- height: 36px;
380
- border-radius: 50%;
381
- font-size: 20px;
382
- cursor: pointer;
383
- display: flex;
384
- align-items: center;
385
- justify-content: center;
386
- }
387
- .sa-modal-close:hover {
388
- background: #ff6b6b;
389
- }
390
- .sa-modal-iframe {
391
- width: 100%;
392
- height: 100%;
393
- border: none;
394
- }
395
345
  .sa-open-btn {
396
346
  background: linear-gradient(135deg, #e94560 0%, #0f3460 100%);
397
347
  color: white;
@@ -424,16 +374,30 @@ export class SpatialAwarenessPlugin extends ScryptedDeviceBase
424
374
  </style>
425
375
  <div class="sa-btn-container">
426
376
  <p class="sa-btn-desc">Configure camera positions, connections, and transit times</p>
427
- <button class="sa-open-btn" onclick="document.getElementById('sa-topology-modal').classList.add('active')">
377
+ <button class="sa-open-btn" onclick="window.openSATopologyEditor()">
428
378
  <span>&#9881;</span> Open Topology Editor
429
379
  </button>
430
380
  </div>
431
- <div id="sa-topology-modal" class="sa-modal-overlay" onclick="if(event.target===this)this.classList.remove('active')">
432
- <div class="sa-modal-container">
433
- <button class="sa-modal-close" onclick="document.getElementById('sa-topology-modal').classList.remove('active')">&times;</button>
434
- <iframe class="sa-modal-iframe" src="/endpoint/@blueharford/scrypted-spatial-awareness/ui/editor"></iframe>
435
- </div>
436
- </div>
381
+ <script>
382
+ window.openSATopologyEditor = function() {
383
+ // Remove existing modal if any
384
+ const existing = document.getElementById('sa-topology-modal');
385
+ if (existing) existing.remove();
386
+
387
+ // Create modal and append to body
388
+ const modal = document.createElement('div');
389
+ modal.id = 'sa-topology-modal';
390
+ modal.style.cssText = 'position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,0.9);z-index:2147483647;display:flex;align-items:center;justify-content:center;';
391
+ modal.innerHTML = \`
392
+ <div style="width:95vw;height:92vh;max-width:1800px;background:#1a1a2e;border-radius:12px;overflow:hidden;position:relative;box-shadow:0 25px 50px rgba(0,0,0,0.5);">
393
+ <button onclick="document.getElementById('sa-topology-modal').remove()" style="position:absolute;top:15px;right:15px;z-index:2147483647;background:#e94560;color:white;border:none;width:40px;height:40px;border-radius:50%;font-size:24px;cursor:pointer;display:flex;align-items:center;justify-content:center;">&times;</button>
394
+ <iframe src="/endpoint/@blueharford/scrypted-spatial-awareness/ui/editor" style="width:100%;height:100%;border:none;"></iframe>
395
+ </div>
396
+ \`;
397
+ modal.onclick = function(e) { if (e.target === modal) modal.remove(); };
398
+ document.body.appendChild(modal);
399
+ };
400
+ </script>
437
401
  `,
438
402
  group: 'Topology',
439
403
  });