feat(frontend): add MapLibre GL map components

Reusable Svelte map component library wrapping MapLibre GL JS: Map, MapMarker, MapControls, MapPopup, MapRoute, MapClusterLayer, MapArc, and supporting components. Features theme auto-detection, controlled/uncontrolled viewport, drag support, and context API. useMap hook provides reactive access. Integrated on contact page for salon location display.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
2026-06-04 01:07:25 +01:00
co-authored by Sisyphus
parent 584c02ac6c
commit 4c26db81db
15 changed files with 2152 additions and 31 deletions
@@ -0,0 +1,13 @@
export { default as Map } from "./Map.svelte";
export type { MapViewport } from "./Map.svelte";
export { default as MapMarker } from "./MapMarker.svelte";
export { default as MarkerContent } from "./MarkerContent.svelte";
export { default as MarkerPopup } from "./MarkerPopup.svelte";
export { default as MarkerTooltip } from "./MarkerTooltip.svelte";
export { default as MarkerLabel } from "./MarkerLabel.svelte";
export { default as MapControls } from "./MapControls.svelte";
export { default as MapPopup } from "./MapPopup.svelte";
export { default as MapRoute } from "./MapRoute.svelte";
export { default as MapClusterLayer } from "./MapClusterLayer.svelte";
export { default as MapArc } from "./MapArc.svelte";
export type { MapArcDatum, MapArcEvent, MapArcProps } from "./MapArc.svelte";