Files
meshstream/web/src/lib/mapStyle.ts
Daniel Pupius c54e4a6a21 Improve map and node detail UI
Map:
- Fix __publicField error by setting esbuild target to esnext
- Replace react-map-gl with direct maplibre-gl imperative API across all map components
- Add dark theme styling for MapLibre popup, attribution, and navigation controls
- Add NavigationControl to NetworkMap and NodeLocationMap
- Fix auto-zoom race condition using mapLoaded state
- Fix node click popup being immediately dismissed
- Add MQTT links as separate dashed purple layer
- Reduce node/dot sizes on NetworkMap
- Switch glyph CDN to fonts.openmaptiles.org
- Extend map legend with SNR line color key and MQTT indicator

Node detail:
- Extract shared ConnectionRow and ConnectionList components
- Compact connections table: single row per entry with color-coded SNR, badges, short time
- Apply same compact style to NeighborInfoPacket neighbor list
- Move Connections section into right column below Last Activity
- Split Gateway Node out of Device Information into its own card
- Fold observed node count into "Recently observed nodes (N)" subtext
- Add formatLastSeenShort for compact time display

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-16 03:20:27 +00:00

32 lines
1.1 KiB
TypeScript

import type { StyleSpecification } from "maplibre-gl";
const CARTO_TILES = [
"https://a.basemaps.cartocdn.com/dark_all/{z}/{x}/{y}.png",
"https://b.basemaps.cartocdn.com/dark_all/{z}/{x}/{y}.png",
"https://c.basemaps.cartocdn.com/dark_all/{z}/{x}/{y}.png",
];
const CARTO_SOURCE = {
type: "raster" as const,
tiles: CARTO_TILES,
tileSize: 256,
attribution:
'© <a href="https://carto.com/attributions">CARTO</a> © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>',
maxzoom: 19,
};
/** Base CartoDB Dark Matter style — raster tiles, no labels */
export const CARTO_DARK_STYLE: StyleSpecification = {
version: 8,
sources: { carto: CARTO_SOURCE },
layers: [{ id: "carto-dark", type: "raster", source: "carto" }],
};
/** CartoDB Dark Matter style with glyph support for GL text labels */
export const CARTO_DARK_STYLE_LABELLED: StyleSpecification = {
version: 8,
glyphs: "https://fonts.openmaptiles.org/{fontstack}/{range}.pbf",
sources: { carto: CARTO_SOURCE },
layers: [{ id: "carto-dark", type: "raster", source: "carto" }],
};