@cocoar/vue-map

Interactive Leaflet map component for Vue 3. Data-driven and standalone — it knows nothing about markdown or any embedding layer; a consumer feeds it resolved map data.
3,355
Install
npm install @cocoar/vue-map
Latest Version:3.1.0
Vue:3
License:Apache-2.0
Last Updated:Sep 14, 2026
Links: GitHub  ·  npm
Maintainer: windischb

Coar Design System — Vue

Documentation: docs.cocoar.dev/cocoar-ui-vue — live demos, API reference, and design foundations.

Tech Stack

Concern Tool
Package manager pnpm (workspaces)
Task orchestration Turborepo
Framework Vue 3
Language TypeScript
Build Vite (library mode)
Testing Vitest + @vue/test-utils
Documentation VitePress
Linting ESLint (flat config) + Prettier

Repository Structure

cocoar-ui-vue/
├── packages/
│   ├── ui/                  @cocoar/vue-ui                  Main component library
│   ├── localization/        @cocoar/vue-localization        i18n, L10n, and timezone support
│   ├── data-grid/           @cocoar/vue-data-grid           Data grid component
│   ├── calendar/            @cocoar/vue-calendar            Calendar & timeline views
│   ├── page-builder/        @cocoar/vue-page-builder        Visual page builder + renderer
│   ├── document-viewer/     @cocoar/vue-document-viewer     PDF / image document viewer
│   ├── script-editor/       @cocoar/vue-script-editor       Monaco-based TS/JS editor
│   ├── markdown/            @cocoar/vue-markdown            Markdown viewer component
│   ├── markdown-core/       @cocoar/vue-markdown-core       Markdown parser
│   ├── markdown-editor/     @cocoar/vue-markdown-editor     Milkdown-based markdown editor
│   ├── markdown-mermaid/    @cocoar/vue-markdown-mermaid    Mermaid fence-renderer adapter
│   ├── mermaid/             @cocoar/vue-mermaid             Standalone Mermaid diagrams
│   ├── map/                 @cocoar/vue-map                 Interactive Leaflet map
│   ├── file-explorer-core/  @cocoar/vue-file-explorer-core  Headless file-explorer engine
│   ├── fragment-parser/     @cocoar/vue-fragment-parser     URL fragment routing utilities
│   └── icons/               @cocoar/icons-cli               Icon generation CLI
├── apps/
│   ├── docs/              VitePress documentation      Component docs & demos
│   └── playground/        Vue Router playground        Component debugging app
├── assets/
│   └── icons/             Source SVG icon set
├── scripts/
│   └── icons/             Icon build tooling
├── turbo.json             Turborepo pipeline config
├── tsconfig.base.json     Shared TypeScript config
├── eslint.config.js       ESLint flat config
└── vitest.config.ts       Vitest multi-package config

Components (@cocoar/vue-ui)

Category Components
Inputs CoarButton, CoarCheckbox, CoarNumberInput, CoarPasswordInput, CoarRadioGroup, CoarSelect, CoarMultiSelect, CoarTagSelect, CoarSwitch, CoarTextInput
Date & Time CoarPlainDatePicker, CoarPlainDateTimePicker, CoarZonedDateTimePicker, CoarTimePicker, CoarScrollableCalendar
Navigation CoarMenu, CoarNavbar, CoarSidebar, CoarBreadcrumb, CoarTabs, CoarPagination
Overlays CoarDialog, CoarPopover, CoarPopconfirm, CoarToast, CoarTooltip
Display CoarAvatar, CoarBadge, CoarCard, CoarCodeBlock, CoarDivider, CoarLabel, CoarLink, CoarNote, CoarProgressBar, CoarSpinner, CoarTable, CoarTag
Utilities CoarIcon, CoarScrollbar

CoarMarkdown is in the optional @cocoar/vue-markdown package.

Agent skill

@cocoar/vue-ui ships an Agent Skill: the documentation, page by page, with every demo inlined and an index that says which page answers what. Install it into a project and Claude Code, Cursor, Codex or Copilot know the library:

npx @cocoar/vue-ui skill

That is the version you have installed, handed to the skills CLI (options such as -g or -a claude-code pass through). Alternatives: npx skills add cocoar-dev/cocoar-ui-vue for the latest docs straight from GitHub, or agentskills-cli add @cocoar/vue-ui with agentskills-cli.

The skill is generated from apps/docs by pnpm skill:sync into skills/cocoar-vue-ui/ (the only hand-written part is apps/docs/skill/SKILL.header.md); CI fails when the docs and the skill drift. The docs site also serves llms.txt for assistants that read documentation by URL.

Getting Started

Prerequisites

Install

pnpm install

Scripts

Command Description
pnpm build Build all packages (topological order)
pnpm test Run all tests
pnpm lint Lint all packages
pnpm docs Start VitePress docs dev server
pnpm build:icons Rebuild icon components from SVG sources
pnpm format Format all files with Prettier
pnpm format:check Check formatting without writing

Adding a New Package

  1. Copy an existing package directory (e.g. packages/localization/)
  2. Rename and update package.json (name, dependencies)
  3. Update tsconfig.json if needed
  4. Run pnpm install to link the new package

Cross-Package Dependencies

Use the workspace protocol for inter-library dependencies:

{
  "dependencies": {
    "@cocoar/vue-localization": "workspace:*"
  }
}

Turborepo ensures packages build in the correct topological order.

Contributing

See CONTRIBUTING.md for development guidelines.

License

Apache License 2.0 — Copyright (c) 2026 COCOAR e.U.

Related Packages

vue-use-leaflet

Vue composition utilities for leaflet map

15,495 5
j-offline-map

Vue 3 offline PMTiles map component based on Leaflet

1,484
vue2-leaflet-freedraw

A Vue2Leaflet wrapper for Freedraw

4,435 13
vue-map-ui

Map component library based on leaflet for Vue 3

15,119 7
vue2-leaflet

Vue2 leaflet library

1,578,765 1,952

Version History

Version Released Vue License
3.1.0 ^3.5.0 Apache-2.0
3.0.0 ^3.5.0 Apache-2.0
2.19.0 ^3.5.0 Apache-2.0
2.18.0 ^3.5.0 Apache-2.0
2.17.1 ^3.5.0 Apache-2.0
Pre-releases (11)
Version Released Vue License
3.2.0-beta.12 ^3.5.0 Apache-2.0
3.2.0-beta.11 ^3.5.0 Apache-2.0
3.2.0-beta.9 ^3.5.0 Apache-2.0
3.2.0-beta.8 ^3.5.0 Apache-2.0
3.2.0-beta.7 ^3.5.0 Apache-2.0