regions

The geometry behind the map: ~450 polygons, each tagged with the IANA timezone it belongs to. This is the only static data in the package — about 30kB of coordinates — and the reason the component needs no timezone dataset.

interface Region {
  timezone: string // IANA name — may be a deprecated one, see timezoneAliases
  country: string  // ISO 3166-1 alpha-2
  abbr: string     // the abbreviation the source data recorded
  points: string   // SVG polygon points, in a 500 x 250 viewBox
  offset: number   // hours from GMT — NOT in the source data; see below
}

offset is derived, not stored

The literals in regions.ts carry no offset. At import time each region is resolved through zoneFromRegion and stamped with that zone's current offset, so the bands on the map follow daylight saving without any data to maintain.

Two consequences worth knowing:

Exports

The coordinates come from Keval Bhatt's timezone-picker; polygons.ts holds the simplification helpers used to clean them up.