A Adminator v4.4.0

Calendar & maps

FullCalendar 7.1 and jsvectormap 1.7 integration, mount points, styling, and lazy loading.

Last updated October 13, 2026

Calendar and world-map integrations are real libraries loaded only when their mount points exist.

FullCalendar 7

calendar.js looks for <div data-fc></div> and lazily imports vendor-fullcalendar.js. FullCalendar 7 uses one fullcalendar package with subpath exports for daygrid, timegrid, list, interaction, and themes/classic. The old @fullcalendar/* package layout does not apply.

The vendor entry loads skeleton.css and classic theme.css, while _fullcalendar.scss supplies the token-driven palette instead of importing the library’s palette CSS.

Toolbar and views

Keep the mount inside .cal-main. The first two .cal-nav-btn elements navigate backward/forward, .cal-today-btn selects today, .cal-month displays the title, and .cal-view-tab labels select views:

Label View
Month dayGridMonth
Week timeGridWeek
Day timeGridDay
Agenda listWeek

The initial demo date and its 24 sample events are in April 2026. Replace SEED_EVENTS and initialDate for your application; the calendar’s Today action uses the current date.

Events and category colors

FullCalendar 7 uses a singular className string for these category classes:

{ title: 'Design review', start: '2026-04-02T11:00', className: 'fc-cat-team' }

Use fc-cat-work, fc-cat-team, fc-cat-personal, fc-cat-travel, fc-cat-finance, or fc-cat-birthday. Category styles set classic theme variables, for example:

.fc-cat-team {
  --fc-classic-event: var(--success-soft);
  --fc-classic-event-contrast: var(--success);
}

Do not style FullCalendar’s generated hashed class names. Set its theme variables or supply a content callback that emits a stable class, as Adminator does with .fc-dow day headers. Inline event colors reference --fc-classic-event; overriding --fc-event-color in a class does not override that inline mapping. eventDisplay: 'block' creates the filled month-view pills.

Theme changes trigger a redraw; CSS tokens supply the colors. Real event data can replace the sample array through FullCalendar’s event-source API.

World map

maps.js looks for a [data-vmap] container and imports vendor-jsvectormap.js, which groups the library, world-map data, and CSS in one async chunk:

<div data-vmap style="height: 360px"></div>

The default map uses ten city markers. Edit MARKERS with { name, coords: [latitude, longitude] } entries to customize them. tokens() reads current background, border, primary, and hover colors. A theme change destroys the previous map and rebuilds it with the new palette.

Verification

npm run test:browser checks calendar views and rendered world-map paths in light/dark mode at desktop/mobile widths. It also asserts that pages without these mount points do not download the libraries. No calendar or map bundle is part of the initial dashboard payload.