+ {/* Layers — grouped popover (matches the mobile Layers control).
+ Replaces four separate entity-toggle buttons to declutter the
+ desktop toolbar while keeping the entity color language. */}
+
+
+
+
+ Layers
+
+ {mobileLayerCount}
+
+
+
+
+ Show on Map
+
+ {[
+ { key: 'spots', label: 'Spots', dot: '#ff0040', active: showSpots, toggle: () => setShowSpots(v => !v) },
+ { key: 'shops', label: 'Shops', dot: '#9333ea', active: showShops, toggle: () => setShowShops(v => !v) },
+ { key: 'gear', label: 'Gear', dot: '#f97316', active: showGear, toggle: () => setShowGear(v => !v) },
+ { key: 'tours', label: 'Tours', dot: '#06b6d4', active: showTours, toggle: () => setShowTours(v => !v) },
+ ].map(({ key, label, dot, active, toggle }) => (
+
+
+ {label}
+
+ {active && }
+
+
+ ))}
+
+
+
@@ -1548,7 +1553,7 @@ export default function MapPage() {
{[
{ key: 'spots', label: 'Spots', dot: '#ff0040', active: showSpots, toggle: () => setShowSpots(v => !v) },
- { key: 'shops', label: 'Shops', dot: '#a855f7', active: showShops, toggle: () => setShowShops(v => !v) },
+ { key: 'shops', label: 'Shops', dot: '#9333ea', active: showShops, toggle: () => setShowShops(v => !v) },
{ key: 'gear', label: 'Gear', dot: '#f97316', active: showGear, toggle: () => setShowGear(v => !v) },
{ key: 'tours', label: 'Tours', dot: '#06b6d4', active: showTours, toggle: () => setShowTours(v => !v) },
].map(({ key, label, dot, active, toggle }) => (
@@ -1594,7 +1599,7 @@ export default function MapPage() {
<>
{[
{ label: 'Add Spot', to: '/create-spot', bg: 'bg-[#ff0040]', icon: },
- { label: 'Add Shop', to: '/create-shop', bg: 'bg-[#a855f7]', icon: },
+ { label: 'Add Shop', to: '/create-shop', bg: 'bg-[#9333ea]', icon: },
{ label: 'Offer Tour', to: '/create-tour', bg: 'bg-[#06b6d4]', icon: },
].map((a, i) => (