@eyeon/map 2.0.15 → 2.0.17

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.
Files changed (95) hide show
  1. package/dist/assets/MapViewer.css +1 -1
  2. package/dist/assets/index.css +1 -1
  3. package/dist/chunks/MapViewer.js +2353 -2096
  4. package/dist/chunks/MapViewer.js.map +1 -1
  5. package/dist/chunks/responsive.js +2534 -0
  6. package/dist/chunks/responsive.js.map +1 -0
  7. package/dist/chunks/wheelZoom.js +162 -176
  8. package/dist/chunks/wheelZoom.js.map +1 -1
  9. package/dist/core/assignment.d.ts +19 -2
  10. package/dist/core/assignment.d.ts.map +1 -1
  11. package/dist/core/entranceIcon.d.ts +17 -3
  12. package/dist/core/entranceIcon.d.ts.map +1 -1
  13. package/dist/core/hostChrome.d.ts +13 -2
  14. package/dist/core/hostChrome.d.ts.map +1 -1
  15. package/dist/core/hoverTooltip.d.ts +37 -0
  16. package/dist/core/hoverTooltip.d.ts.map +1 -0
  17. package/dist/core/import/index.d.ts +10 -1
  18. package/dist/core/import/index.d.ts.map +1 -1
  19. package/dist/core/index.d.ts +3 -0
  20. package/dist/core/index.d.ts.map +1 -1
  21. package/dist/core/index.js +226 -185
  22. package/dist/core/layerStyles.d.ts +32 -0
  23. package/dist/core/layerStyles.d.ts.map +1 -1
  24. package/dist/core/outdoorDecoration.d.ts.map +1 -1
  25. package/dist/core/publicShapes.d.ts +14 -0
  26. package/dist/core/publicShapes.d.ts.map +1 -1
  27. package/dist/core/responsive.d.ts +6 -0
  28. package/dist/core/responsive.d.ts.map +1 -1
  29. package/dist/core/routing/graph-tools.d.ts +6 -5
  30. package/dist/core/routing/graph-tools.d.ts.map +1 -1
  31. package/dist/core/routing/pathfinding.d.ts +36 -0
  32. package/dist/core/routing/pathfinding.d.ts.map +1 -1
  33. package/dist/core/shapeFill.d.ts +40 -0
  34. package/dist/core/shapeFill.d.ts.map +1 -0
  35. package/dist/core/stacking.d.ts +4 -0
  36. package/dist/core/stacking.d.ts.map +1 -1
  37. package/dist/core/types.d.ts +14 -3
  38. package/dist/core/types.d.ts.map +1 -1
  39. package/dist/core/viewerReset.d.ts +24 -0
  40. package/dist/core/viewerReset.d.ts.map +1 -0
  41. package/dist/editor/MapEditor.d.ts.map +1 -1
  42. package/dist/editor/assignmentOverlay.d.ts +37 -0
  43. package/dist/editor/assignmentOverlay.d.ts.map +1 -0
  44. package/dist/editor/canvas/AssignedShapeOverlay.d.ts +8 -0
  45. package/dist/editor/canvas/AssignedShapeOverlay.d.ts.map +1 -0
  46. package/dist/editor/canvas/EditorCanvas.d.ts +6 -1
  47. package/dist/editor/canvas/EditorCanvas.d.ts.map +1 -1
  48. package/dist/editor/canvas/coords.d.ts +9 -0
  49. package/dist/editor/canvas/coords.d.ts.map +1 -1
  50. package/dist/editor/canvas/editorFill.d.ts.map +1 -1
  51. package/dist/editor/draftOps.d.ts.map +1 -1
  52. package/dist/editor/entranceIcon.d.ts +2 -2
  53. package/dist/editor/entranceIcon.d.ts.map +1 -1
  54. package/dist/editor/index.css +259 -29
  55. package/dist/editor/index.js +4780 -4355
  56. package/dist/editor/index.js.map +1 -1
  57. package/dist/editor/panels/AssignForm.d.ts +3 -1
  58. package/dist/editor/panels/AssignForm.d.ts.map +1 -1
  59. package/dist/editor/panels/BulkAssignForm.d.ts +3 -1
  60. package/dist/editor/panels/BulkAssignForm.d.ts.map +1 -1
  61. package/dist/editor/panels/ConnectorAssign.d.ts.map +1 -1
  62. package/dist/editor/panels/FloorsPanel.d.ts.map +1 -1
  63. package/dist/editor/panels/Inspector.d.ts +3 -1
  64. package/dist/editor/panels/Inspector.d.ts.map +1 -1
  65. package/dist/editor/panels/LeftRail.d.ts.map +1 -1
  66. package/dist/editor/routeStubs.d.ts +11 -0
  67. package/dist/editor/routeStubs.d.ts.map +1 -1
  68. package/dist/test-maps/LF - Shops At South Town.ai +4468 -1
  69. package/dist/test-maps/LF - Shops At South Town.svg +245 -0
  70. package/dist/viewer/MapViewer.d.ts.map +1 -1
  71. package/dist/viewer/camera.d.ts +10 -0
  72. package/dist/viewer/camera.d.ts.map +1 -1
  73. package/dist/viewer/components/CameraRig.d.ts.map +1 -1
  74. package/dist/viewer/components/LevelMeshes.d.ts +10 -2
  75. package/dist/viewer/components/LevelMeshes.d.ts.map +1 -1
  76. package/dist/viewer/components/MapScene.d.ts +5 -2
  77. package/dist/viewer/components/MapScene.d.ts.map +1 -1
  78. package/dist/viewer/components/RouteLine.d.ts +1 -8
  79. package/dist/viewer/components/RouteLine.d.ts.map +1 -1
  80. package/dist/viewer/components/SvgVectorLayer.d.ts +1 -1
  81. package/dist/viewer/components/SvgVectorLayer.d.ts.map +1 -1
  82. package/dist/viewer/index.css +242 -29
  83. package/dist/viewer/index.js +1 -1
  84. package/dist/viewer/pointer.d.ts +40 -4
  85. package/dist/viewer/pointer.d.ts.map +1 -1
  86. package/dist/viewer/routeFloorChanges.d.ts +35 -0
  87. package/dist/viewer/routeFloorChanges.d.ts.map +1 -0
  88. package/dist/viewer/ui/HoverTooltip.d.ts +6 -0
  89. package/dist/viewer/ui/HoverTooltip.d.ts.map +1 -0
  90. package/dist/viewer/ui/MapControls.d.ts.map +1 -1
  91. package/dist/viewer/ui/RuntimeChrome.d.ts +2 -1
  92. package/dist/viewer/ui/RuntimeChrome.d.ts.map +1 -1
  93. package/package.json +1 -1
  94. package/dist/chunks/stacking.js +0 -2243
  95. package/dist/chunks/stacking.js.map +0 -1
@@ -52,6 +52,76 @@
52
52
  cursor: pointer;
53
53
  }
54
54
 
55
+ /* Store / amenity hover pop-out — follows the pointer, arrow on the bottom. */
56
+ .eyeon-map-hover-tooltip {
57
+ position: absolute;
58
+ left: 0;
59
+ top: 0;
60
+ z-index: 4;
61
+ pointer-events: none;
62
+ }
63
+
64
+ .eyeon-map-hover-tooltip__pop {
65
+ position: relative;
66
+ display: flex;
67
+ flex-direction: column;
68
+ align-items: center;
69
+ padding-bottom: 6px;
70
+ transform: translate(-50%, calc(-100% - 10px));
71
+ transform-origin: 50% 100%;
72
+ filter:
73
+ drop-shadow(0 10px 24px rgba(15, 23, 42, 0.18))
74
+ drop-shadow(0 2px 6px rgba(15, 23, 42, 0.12));
75
+ animation: eyeon-map-tooltip-pop 160ms cubic-bezier(0.22, 1, 0.36, 1);
76
+ }
77
+
78
+ .eyeon-map-hover-tooltip__label {
79
+ position: relative;
80
+ z-index: 1;
81
+ display: block;
82
+ max-width: min(280px, 70vw);
83
+ padding: 8px 12px;
84
+ overflow: hidden;
85
+ border-radius: 10px;
86
+ background: #fff;
87
+ color: #0f172a;
88
+ font-size: 13px;
89
+ font-weight: 600;
90
+ letter-spacing: 0.01em;
91
+ line-height: 1.3;
92
+ text-overflow: ellipsis;
93
+ white-space: nowrap;
94
+ }
95
+
96
+ .eyeon-map-hover-tooltip__arrow {
97
+ position: absolute;
98
+ z-index: 0;
99
+ left: 50%;
100
+ bottom: 1px;
101
+ width: 12px;
102
+ height: 12px;
103
+ border-radius: 2px;
104
+ background: #fff;
105
+ transform: translateX(-50%) rotate(45deg);
106
+ }
107
+
108
+ @keyframes eyeon-map-tooltip-pop {
109
+ from {
110
+ opacity: 0;
111
+ transform: translate(-50%, calc(-100% - 2px)) scale(0.94);
112
+ }
113
+ to {
114
+ opacity: 1;
115
+ transform: translate(-50%, calc(-100% - 10px)) scale(1);
116
+ }
117
+ }
118
+
119
+ @media (prefers-reduced-motion: reduce) {
120
+ .eyeon-map-hover-tooltip__pop {
121
+ animation: none;
122
+ }
123
+ }
124
+
55
125
  @keyframes eyeon-map-current-location-pulse {
56
126
  0% {
57
127
  transform: scale(0.8);
@@ -428,24 +498,62 @@
428
498
  box-shadow: 0 16px 40px rgba(15, 23, 42, 0.24);
429
499
  }
430
500
 
431
- .eyeon-map-info-modal__close {
501
+ /*
502
+ The store/amenity modal is portaled to document.body, so the
503
+ .eyeon-map-viewer button reset does not apply. Hello Elementor and
504
+ Elementor kit rules (`button:hover`, `button:focus`) would otherwise
505
+ paint the close control with the site accent color.
506
+ */
507
+ .eyeon-map-info-modal button,
508
+ .eyeon-map-info-modal button:hover,
509
+ .eyeon-map-info-modal button:focus,
510
+ .eyeon-map-info-modal button:focus-visible,
511
+ .eyeon-map-info-modal button:active {
512
+ outline: none !important;
513
+ box-shadow: none !important;
514
+ }
515
+
516
+ .eyeon-map-info-modal button.eyeon-map-info-modal__close,
517
+ .eyeon-map-info-modal button.eyeon-map-info-modal__close:hover,
518
+ .eyeon-map-info-modal button.eyeon-map-info-modal__close:focus,
519
+ .eyeon-map-info-modal button.eyeon-map-info-modal__close:focus-visible,
520
+ .eyeon-map-info-modal button.eyeon-map-info-modal__close:active {
432
521
  position: absolute;
433
522
  top: 0;
434
523
  right: 0;
435
524
  width: 24px;
436
525
  height: 24px;
437
526
  padding: 0;
438
- border: 0;
439
- background: transparent;
527
+ border: 0 !important;
528
+ background: transparent !important;
529
+ background-color: transparent !important;
530
+ color: #000 !important;
440
531
  transform: translate(50%, -50%);
441
532
  cursor: pointer;
442
533
  z-index: 2;
534
+ filter: none !important;
443
535
  }
444
536
 
445
537
  .eyeon-map-info-modal__close svg {
446
538
  display: block;
447
539
  }
448
540
 
541
+ .eyeon-map-info-modal__close svg,
542
+ .eyeon-map-info-modal button.eyeon-map-info-modal__close:hover svg,
543
+ .eyeon-map-info-modal button.eyeon-map-info-modal__close:focus svg {
544
+ color: #000 !important;
545
+ fill: #000 !important;
546
+ }
547
+
548
+ .eyeon-map-info-modal__close circle {
549
+ fill: #000 !important;
550
+ }
551
+
552
+ .eyeon-map-info-modal__close path {
553
+ stroke: #fff !important;
554
+ fill: none !important;
555
+ }
556
+
449
557
  .eyeon-map-info-modal__body {
450
558
  display: flex;
451
559
  flex-direction: column;
@@ -509,21 +617,29 @@
509
617
  font-size: 13px;
510
618
  }
511
619
 
512
- .eyeon-map-info-modal__map-it {
620
+ .eyeon-map-info-modal button.eyeon-map-info-modal__map-it,
621
+ .eyeon-map-info-modal button.eyeon-map-info-modal__map-it:hover,
622
+ .eyeon-map-info-modal button.eyeon-map-info-modal__map-it:focus,
623
+ .eyeon-map-info-modal button.eyeon-map-info-modal__map-it:focus-visible,
624
+ .eyeon-map-info-modal button.eyeon-map-info-modal__map-it:active {
513
625
  flex-shrink: 0;
514
- background: #0763b1;
515
- color: #fff;
516
- border: 0;
626
+ background: #0763b1 !important;
627
+ background-color: #0763b1 !important;
628
+ color: #fff !important;
629
+ border: 0 !important;
517
630
  padding: 8px 16px;
518
631
  border-radius: 4px;
519
632
  cursor: pointer;
520
633
  font-size: 16px;
521
634
  font-weight: 500;
522
635
  white-space: nowrap;
636
+ opacity: 1 !important;
523
637
  }
524
638
 
525
- .eyeon-map-info-modal__map-it:disabled {
526
- opacity: 0.45;
639
+ .eyeon-map-info-modal button.eyeon-map-info-modal__map-it:disabled,
640
+ .eyeon-map-info-modal button.eyeon-map-info-modal__map-it:disabled:hover,
641
+ .eyeon-map-info-modal button.eyeon-map-info-modal__map-it:disabled:focus {
642
+ opacity: 0.45 !important;
527
643
  cursor: default;
528
644
  }
529
645
 
@@ -541,6 +657,39 @@
541
657
  font: inherit;
542
658
  }
543
659
 
660
+ .eyeon-map-route-change--forward {
661
+ z-index: 2;
662
+ border-color: #fff;
663
+ box-shadow: 0 0 0 3px #0763b1, 2px 2px 8px rgba(0, 0, 0, 0.25);
664
+ }
665
+
666
+ .eyeon-map-route-change--back {
667
+ background: #7aa8d4;
668
+ border-color: #e2e8f0;
669
+ }
670
+
671
+ .eyeon-map-route-change__intent {
672
+ position: absolute;
673
+ right: -4px;
674
+ bottom: -4px;
675
+ display: flex;
676
+ width: 18px;
677
+ height: 18px;
678
+ align-items: center;
679
+ justify-content: center;
680
+ border-radius: 50%;
681
+ background: #0763b1;
682
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.35);
683
+ color: #fff;
684
+ font-size: 12px;
685
+ font-weight: 700;
686
+ line-height: 1;
687
+ }
688
+
689
+ .eyeon-map-route-change--back .eyeon-map-route-change__intent {
690
+ background: #475569;
691
+ }
692
+
544
693
  .eyeon-map-route-change__icon {
545
694
  display: flex;
546
695
  width: 100%;
@@ -1432,6 +1581,23 @@
1432
1581
  .eyeon-map-canvas__view {
1433
1582
  /* Consumer styles must not move the translate/scale pivot off the SVG origin. */
1434
1583
  transform-origin: 0 0;
1584
+ --map-handle-scale: 1;
1585
+ }
1586
+
1587
+ /* Inverse of live zoom vs last React handle size — see editorHandleScale(). */
1588
+ .eyeon-map-screen-const {
1589
+ transform-box: fill-box;
1590
+ transform-origin: center;
1591
+ transform: scale(var(--map-handle-scale));
1592
+ }
1593
+
1594
+ /*
1595
+ * Route lines keep the React stroke (8/zoom, worldPx) and multiply by the
1596
+ * same live counter-scale as anchors. Do not use non-scaling-stroke — it
1597
+ * ignores viewBox scale and makes lines and the snap halo look huge.
1598
+ */
1599
+ .eyeon-map-screen-stroke {
1600
+ stroke-width: calc(var(--map-stroke-width) * var(--map-handle-scale));
1435
1601
  }
1436
1602
 
1437
1603
  .eyeon-map-canvas__svg.is-adding-route-point,
@@ -2454,6 +2620,18 @@
2454
2620
  border-color: #cbd5e1;
2455
2621
  }
2456
2622
 
2623
+ .eyeon-map-select button.eyeon-map-select__trigger,
2624
+ .eyeon-map-select button.eyeon-map-select__trigger:hover,
2625
+ .eyeon-map-select button.eyeon-map-select__trigger:focus,
2626
+ .eyeon-map-select button.eyeon-map-select__trigger:focus-visible,
2627
+ .eyeon-map-select button.eyeon-map-select__trigger:active {
2628
+ background: #fff !important;
2629
+ background-color: #fff !important;
2630
+ color: #0f172a !important;
2631
+ box-shadow: none !important;
2632
+ outline: none !important;
2633
+ }
2634
+
2457
2635
  .eyeon-map-select__trigger.is-open {
2458
2636
  border-color: #0763b1;
2459
2637
  }
@@ -2493,7 +2671,15 @@
2493
2671
  font-weight: 400;
2494
2672
  }
2495
2673
 
2496
- .eyeon-map-select__chevron-btn {
2674
+ /*
2675
+ Hello Elementor / Elementor kit `button:hover|focus` would otherwise
2676
+ recolor this chevron to the site accent. Keep the arrow slate.
2677
+ */
2678
+ .eyeon-map-select button.eyeon-map-select__chevron-btn,
2679
+ .eyeon-map-select button.eyeon-map-select__chevron-btn:hover,
2680
+ .eyeon-map-select button.eyeon-map-select__chevron-btn:focus,
2681
+ .eyeon-map-select button.eyeon-map-select__chevron-btn:focus-visible,
2682
+ .eyeon-map-select button.eyeon-map-select__chevron-btn:active {
2497
2683
  position: absolute;
2498
2684
  top: 0;
2499
2685
  right: 0;
@@ -2505,9 +2691,12 @@
2505
2691
  width: 28px;
2506
2692
  margin: 0;
2507
2693
  padding: 0;
2508
- border: 0;
2509
- background: transparent;
2510
- color: inherit;
2694
+ border: 0 !important;
2695
+ background: transparent !important;
2696
+ background-color: transparent !important;
2697
+ color: #64748b !important;
2698
+ box-shadow: none !important;
2699
+ outline: none !important;
2511
2700
  cursor: pointer;
2512
2701
  }
2513
2702
 
@@ -2516,12 +2705,22 @@
2516
2705
  font-weight: 400;
2517
2706
  }
2518
2707
 
2519
- .eyeon-map-select__chevron {
2708
+ .eyeon-map-select__chevron,
2709
+ .eyeon-map-select button.eyeon-map-select__chevron-btn:hover .eyeon-map-select__chevron,
2710
+ .eyeon-map-select button.eyeon-map-select__chevron-btn:focus .eyeon-map-select__chevron,
2711
+ .eyeon-map-select__trigger:hover .eyeon-map-select__chevron {
2520
2712
  flex-shrink: 0;
2521
- color: #64748b;
2713
+ color: #64748b !important;
2714
+ fill: none !important;
2715
+ stroke: currentColor !important;
2522
2716
  opacity: 0.7;
2523
2717
  }
2524
2718
 
2719
+ .eyeon-map-select__chevron path {
2720
+ stroke: currentColor !important;
2721
+ fill: none !important;
2722
+ }
2723
+
2525
2724
  .eyeon-map-select__trigger[aria-expanded='true'] .eyeon-map-select__chevron,
2526
2725
  .eyeon-map-select__trigger.is-open .eyeon-map-select__chevron {
2527
2726
  transform: rotate(180deg);
@@ -2553,19 +2752,36 @@
2553
2752
  min-width: 0;
2554
2753
  }
2555
2754
 
2556
- .eyeon-map-select__option {
2755
+ /*
2756
+ Option rows are <button>s portaled to document.body. Host themes restyle
2757
+ `button:hover` to white/gray text (hard to read). Keep labels black and
2758
+ use only a light-gray background on hover.
2759
+ */
2760
+ .eyeon-map-select__menu button.eyeon-map-select__option,
2761
+ .eyeon-map-select__menu button.eyeon-map-select__option:hover,
2762
+ .eyeon-map-select__menu button.eyeon-map-select__option:focus,
2763
+ .eyeon-map-select__menu button.eyeon-map-select__option:focus-visible,
2764
+ .eyeon-map-select__menu button.eyeon-map-select__option:active,
2765
+ .eyeon-map-select button.eyeon-map-select__option,
2766
+ .eyeon-map-select button.eyeon-map-select__option:hover,
2767
+ .eyeon-map-select button.eyeon-map-select__option:focus,
2768
+ .eyeon-map-select button.eyeon-map-select__option:focus-visible,
2769
+ .eyeon-map-select button.eyeon-map-select__option:active {
2557
2770
  display: flex;
2558
2771
  align-items: center;
2559
2772
  gap: 8px;
2560
2773
  width: 100%;
2561
2774
  padding: 7px 10px;
2562
- border: 0;
2775
+ border: 0 !important;
2563
2776
  border-radius: 6px;
2564
- background: transparent;
2565
- color: #0f172a;
2777
+ background: transparent !important;
2778
+ background-color: transparent !important;
2779
+ color: #000 !important;
2566
2780
  font: inherit;
2567
2781
  font-size: 12px;
2568
2782
  text-align: left;
2783
+ box-shadow: none !important;
2784
+ outline: none !important;
2569
2785
  cursor: pointer;
2570
2786
  }
2571
2787
 
@@ -2587,28 +2803,42 @@
2587
2803
  gap: 8px;
2588
2804
  min-width: 0;
2589
2805
  flex: 1;
2806
+ color: #000 !important;
2590
2807
  }
2591
2808
 
2592
- .eyeon-map-select__option-hint {
2593
- color: #64748b;
2809
+ .eyeon-map-select__menu button.eyeon-map-select__option:hover .eyeon-map-select__option-copy,
2810
+ .eyeon-map-select__menu button.eyeon-map-select__option:hover .eyeon-map-select__option-copy > span:not(.eyeon-map-select__option-hint) {
2811
+ color: #000 !important;
2812
+ }
2813
+
2814
+ .eyeon-map-select__option-hint,
2815
+ .eyeon-map-select__menu button.eyeon-map-select__option:hover .eyeon-map-select__option-hint,
2816
+ .eyeon-map-select__menu button.eyeon-map-select__option:focus .eyeon-map-select__option-hint {
2817
+ color: #334155 !important;
2594
2818
  font-size: 11px;
2595
2819
  font-weight: 600;
2596
2820
  flex-shrink: 0;
2597
2821
  }
2598
2822
 
2599
- .eyeon-map-select__option:hover {
2600
- background: #f1f5f9;
2823
+ .eyeon-map-select__menu button.eyeon-map-select__option:hover,
2824
+ .eyeon-map-select__menu button.eyeon-map-select__option.is-highlight:not(.is-active),
2825
+ .eyeon-map-select button.eyeon-map-select__option:hover,
2826
+ .eyeon-map-select button.eyeon-map-select__option.is-highlight:not(.is-active) {
2827
+ background: #f1f5f9 !important;
2828
+ background-color: #f1f5f9 !important;
2829
+ color: #000 !important;
2601
2830
  }
2602
2831
 
2603
- .eyeon-map-select__option.is-active {
2604
- background: #e0f2fe;
2832
+ .eyeon-map-select__menu button.eyeon-map-select__option.is-active,
2833
+ .eyeon-map-select__menu button.eyeon-map-select__option.is-active:hover,
2834
+ .eyeon-map-select button.eyeon-map-select__option.is-active,
2835
+ .eyeon-map-select button.eyeon-map-select__option.is-active:hover {
2836
+ background: #f1f5f9 !important;
2837
+ background-color: #f1f5f9 !important;
2838
+ color: #000 !important;
2605
2839
  font-weight: 600;
2606
2840
  }
2607
2841
 
2608
- .eyeon-map-select__option.is-highlight:not(.is-active) {
2609
- background: #f1f5f9;
2610
- }
2611
-
2612
2842
  .eyeon-map-select__empty {
2613
2843
  padding: 8px 10px;
2614
2844
  color: #94a3b8;