API reference
The public contract of active-geo - the package's own reference, and every export of both entries generated from the source.
First the package's own docs/, included unchanged: the contract. Then
an index of every export of both entry points, generated from the source, with
a page per topic.
The supported contract of @workspace/ since the public switch to P1 (P1e, [Unreleased]): the P1 projection of the API-first design v0.5 (D-42 to D-47). Two entries: the runtime . and the optional starter collection ./ (§ 15); both export lists are pinned by src/__. Version 0.x: workable, not yet stable. V1 is not accepted. The 0.4 API (the presentation prop, the object card, the footer's Table and Export, the layer value fields, state v1 as output, CSV v1) is gone; the migration table maps every part of it.
Phases. P1 publishes only what works. An input of a later phase does not exist in these types, and a JavaScript caller that passes one gets Geo with GEO_ (§ 9): symbols and shapes, rotation, paint, shared scales (scales), the legend filter (legend., filter props), legend overflow (P2); line layers, use, project/invert, a React tooltip (P3); continuous colour, image symbols, clusters, insets (P4). OUTPUT types keep the full target unions (a line layer type, the channels shape/rotation/color/width, gradient and line keys, cluster targets), so an exhaustive switch keeps compiling when a later phase makes them live; P1 never produces them.
| Export | Kind |
|---|---|
Geo, Geo, Geo, Geo, Geo | Component |
use | Hook |
english | Function |
english | Constant |
Geo, Geo | Class |
Geo, Geo, Geo, Geo, Geo | Types |
Layers and data: Geo, Geo, Geo, Geo, Geo, Geo, Geo, Geo, Geo, Geo, Geo, Geo, Geo, Geo, Geo, Geo, Geo, Geo, Geo, Geo | Types |
Encodings: Geo, Geo, Geo, Geo, Geo, Geo, Geo, Geo, Geo, Geo, Geo | Types |
Readings (output): Geo, Geo, Geo, Geo, Geo, Geo, Geo, Geo | Types |
Legend: Geo, Geo, Geo, Geo, Geo, Geo, Geo, Geo, Geo, Geo, Geo, Geo, Geo, Geo, Geo, Geo, Geo, Geo | Types |
Options: Geo, Geo, Geo, Geo, Geo, Geo, Geo, Geo, Geo, Geo, Geo, Geo, Geo, Geo, Geo, Geo, Geo, Geo, Geo, Geo, Feature, Resettable, Geo, Geo | Types |
View and events: Geo, Geo, Geo, Geo, Geo, Geo, Geo, Geo, Geo, Geo | Types |
Rows: Geo, Geo, Geo, Geo, Geo, Geo, Geo, Geo, Geo, Geo, Geo, Geo | Types |
Handle and state: Geo, Geo, Geo, Geo, Geo, Geo, Geo, Geo, Geo, Geo, Geo, Geo, Geo, Geo, Geo, Geo | Types |
Export: Geo, Geo, Geo, Geo, Geo, Geo, Geo, Geo, Geo, Geo, Geo, Geo, Geo, Geo, Geo | Types |
Geometry and projection: Geo, Geo, Geo, Geo, Geo, Geo, Geo, Geo, Geo, Geo, Geo | Types |
Words, notation, diagnostics, levels: Geo, Geo, Geo, Geo, Geo, Geo, Geo, Geo, Geo, Geo, Geo, Geo | Types |
1. Geo Map#
<GeoMap title="…" // the map's accessible name; shown in the header by default; required subtitle="…" // a short visible line under the title (header.subtitle) description="…" // for assistive technology, and the export's description layers={[…]} // GeoLayer[], bottom first (§ 2) projection="conic-equal-area" height={420} // CSS px of the stage (default 420); the width follows the container graticule // meridians and parallels locale="nl-NL" // the notation of numbers; prop, else GeoDefaults; required t={translate} // the host's words; prop, else GeoDefaults; required (§ 7) diagnostics={sink} // prop, else GeoDefaults, else the console (§ 8) // configuration (each also from GeoDefaults, § 6): header legend tooltip zoom contextMenu table export attribution selection components // state, controlled or not (§ 4): selectedItems defaultSelectedItems onSelectionChange view defaultView home onViewChange highlight defaultHighlight onHighlightChange onLegendActivate onItemActivate onTableRequest dataset levelPath onLevelRequest onExportComplete onExportError ref={handle} // GeoMapHandle (§ 5) className="…"/>The package default is quiet (D-45). In rest: the title (and subtitle) above the map, the map, and the source line (attribution); nothing else. The navigation appears on demand (pointer over the map, keyboard focus, a touch) in a corner over the map, keeps its place and its tab stop, and never shifts the layout. The legend appears only when there is something to explain (an encoding, a status). The menu opens on a right click, a long press, Shift+F10 or the ContextMenu key; export and the table live in the menu and the handle (D-44), never in a mandatory footer. Every part is configurable or replaceable by the host (§ 3, § 11).
Keyboard. The map is one tab stop with aria- over the drawn objects in walking order (also Canvas points, through proxies). Arrows move, Home and End go to the first and last object, Space selects (when selection is on), Enter activates (on; also selects when selection is on), Shift+F10 and the ContextMenu key open the menu on the object (or the map), Escape closes the tooltip and then clears a highlight, + and − zoom (zoom.). A key typed in the menu, the legend or the table is theirs, never the map's. One announcement per action; a controlled map that refuses a change announces nothing.
Pointer and touch. A click on an object selects (when on) and shows its tooltip; one finger belongs to the page (touch-), two fingers pan and zoom; the wheel zooms with Ctrl or Command by default (zoom.); a hint says how when a gesture is not the map's. Picking follows the drawn symbol plus a tolerance (D-19); several objects at one place are offered in the menu (at).
Failure. A configuration the map cannot run with throws a Geo during render (§ 9). Data problems never throw: they exclude objects with a reason, shown in the table's "not on the map" tab and the data alternative, and reported once to the diagnostics sink.
2. Layers, measures and encodings#
type GeoLayer = GeoAreaLayer | GeoPointLayer | GeoContextLayer;Every data layer has id, title, and optionally visible, fit, measures, detail, tooltip, label, legend (boolean | {title?: string | false}) and describe.
Area layer (
type: 'area'):features: {key, name?, geometry, values?, details?, meta?}[], optionaldata: {key, values?, details?}[](records joined by key; never together with inlinevalues:GEO_),DATA_ SOURCE_ CONFLICT convention(rfc7946default, orspherical),fill(a colour or aGeo),Color Mapping stroke.Point layer (
type: 'point'):points: {key, latitude, longitude, name?, values?, details?, meta?}[],marker: {size?, fill?, stroke?, opacity?}(circles in P1),renderer('auto'default,'svg','canvas'; Canvas above the threshold of D-18).Context layer (
type: 'context'):geometriesof areas and lines; drawn, never interactive, never in the legend or the table.
Measures (W-1, D-43). A layer knows measures: {id, label, semantics?} (a number; semantics is the family's Geo, § 13) or {id, label, kind: 'category', categories: [{id, label?}]}. A value per object (or record) in values, keyed by measure id: a number, a category id, null/absent (missing) or {suppressed: true} (withheld). Ids are Geos (/, GEO_). A reading is value (with its formatted text), missing, invalid (with a reason) or suppressed. A withheld value is never shown as a number anywhere: not in the map, the tooltip, labels, the table, the copied text, CSV or an export.
Encodings. Areas encode fill; points marker. and marker..
fill: {measure, scale, palette?, legend?}with an own classed scale:{type: 'threshold', thresholds, class,Labels?} {type: 'quantize', classes, domain?, class,Labels?} {type: 'category'}, or diverging ({type: 'diverging', reference, …}, D-28). End classes are open.paletteoverrides the token colours (an array by class, or a record by category id).size: {measure, domain: the AREA of a circle is proportional to the value; zero, missing, withheld and negative sizes draw a hollow marker at the hollow radius.Max?, max Radius?, legend?} A constant is a plain value (
fill: '#2a6',size: 6).An encoding's status is separate from the measurement:
encoded, the special statuses,unrepresentable(with a reason) orconstant.
Text fields. Tooltip, labels and describe read the same fields: 'name', {measure}, {encoding: 'fill' | 'size', show?: 'class' | 'value-, {detail}, 'details'. tooltip: {title?: 'name' | false, fields?} per layer; label: {fields?, max?, placement?} per layer (area labels D-30; point labels D-31; placement order end, start, above, below by default); describe(context) => {name?, description?} overrides an object's accessible name and description (a throwing callback falls back to the default and is reported once). A label never shows a withheld value.
3. Configuration props#
Every one is a Feature: absent inherits, false switches the part off, true switches it on with its defaults, an object refines.
| Prop | P1 fields (package default) |
|---|---|
header | {subtitle} (true). false hides the visible header; title stays the accessible name and the export title |
legend | position (bottom; top, start, end, a corner over the map, outlet), offset, align (start), arrangement (row/stack), sections (explanations, status blocks, custom entries), order, unplaced (append), explanations (title, parts, statuses, counts, display compact/list, direction, samples), custom (swatch or circle), interaction (highlight; none, host), highlight (auto) |
tooltip | anchor (object; pointer), delay (0), pin (true) |
zoom | controls: {visibility: 'on-, {visibility: 'always', …} or false; gestures (wheel: 'modifier', drag, pinch, double); keyboard (true); min (1), max (32) |
context | items(context) => Geo (the host's items, first by default), features (copy, table, navigation, export, level: all true), group (host, copy, table, navigation, level, export), trigger (none; button adds a menu button) |
table | position (below; outlet), open/default (false), on, layers. false: no table; the hidden data alternative stays |
export | formats (png, svg, csv), image (theme: 'light', extent: 'current', legend: 'presentation', attribution: true, background: 'theme', labels: true, scale: 2, title, description), csv (details: true, text: false), limits, themes |
attribution | a text, or {text, position: corner | 'below' | 'none'}; always under an exported image |
selection | false by default; true or {enabled?, mode: 'single' | 'multiple'} |
components | the host's Button, Toggle, Input (§ 11) |
The menu (D-44). The family's menu (the shared menu- pipeline of Charts and Grid) on Base UI's context menu, composed from one frozen Geo per opening (target: an object with every object at its place, the map at a position, or a legend entry; source; selected; view; level; get). Groups: host (the host's items), copy (an object's values in words; a withheld value is its status word), table ("Show in table", "Show the table"/"Hide the table"), navigation (place-bound only: "Zoom to …", "Zoom in here", "Fit the map", the starting view; never a second zoom in/out), level (the levels above the current one), export (the allowed formats, current view or whole map, one CSV per data layer, all records or the selection). An item that exists but cannot run now stays, disabled with its reason. A host item: {label, action?(context), icon?, variant?, disabled?, disabled or 'separator'. A keyboard opening focuses the first item; focus returns to the opener, or to the target an action claims (a table row).
The table (D-46). The package's own accessible table: one tab per data layer plus "not on the map", search, pages of 100 rows, "Show on map", reasons in words, end-aligned number columns; the hidden data alternative reads the same rows. Opened from the menu, by table./default, or by reveal. Escape in a row returns the focus to its object on the map.
4. State, events and the controlled pattern#
Each piece of interactive state is uncontrolled (default…) or controlled (the value prop). A controlled value is the host's: the map draws the prop and only ASKS (requested: true in the change); get right after a refused request still reports the prop.
Selection:
selected/Items default,Selected Items on;Selection Change(selection, change) change.issource pointer,keyboard,update(objects that left the data, withremoved),restoreorapi.View (W-9):
view/default:View {mode: 'frame'}(fitted to the layers) or{mode: 'free', center, zoom};on.View Change(view, {cause, requested}) home:'frame', a fixed view, or{fit: 'layers', layers}(wherehome()goes;fit()is always the frame).Highlight:
highlight/default(Highlight Geo: legend entry targets with their meaning fingerprints),Highlight | null on. The callback value can be fed back into the prop without a cast. A target whose MEANING changed (a different scale) is cleared withHighlight Change(highlight, {cause, requested}) cause: 'reconcile'; mere absence keeps it dormant.Legend activation:
onruns before the effect of a legend entry, Geo's own or a host legend's (Legend Activate(activation) use,Geo Legend activate), and mayLegend Entry prevent.Default() Items:
onon Enter (keyboard) or the pointer and touch activation of an object.Item Activate(item, source) Host table:
on(Table Request(request) {item, focus, source, request) returns or resolvesId, revision, dataset, signal, return Focus} {status: 'shown', focus: 'host' | 'none' | 'package'}or{status: 'unavailable', reason?}. Withfocus: falsethe host must not move the focus. A newer request or unmounting abortssignal; every reveal settles exactly once (revealed, orunavailablewithno-,table item-,unknown host-,refused host-,failed not-,opened outlet-,hidden not-,focusable superseded,unmounted,stale-).data Levels (D-25):
level(top first; the last is current) andPath on; the request carriesLevel Request(request) {level, item?, source, request; applying the answer is the host's.Id, signal} Exports:
on,Export Complete(format) on.Export Error(format, error)
Callbacks are read at the moment of the event (a new callback after a re-render receives the next event); a re-render with equal props reports nothing.
5. The handle#
interface GeoMapHandle { zoomIn(): void; zoomOut(): void; fit(options?: {layers?}): void; home(): void; pan(direction: 'up' | 'down' | 'left' | 'right'): void; zoomTo(items: GeoItemRef | readonly GeoItemRef[]): boolean; focusItem(item: GeoItemRef): boolean; revealInTable( item: GeoItemRef, options?: {focus?: boolean}, ): Promise<GeoTableRevealResult>; exportAsPng(options?: GeoImageExportOptions): Promise<GeoExportResult>; exportAsSvg(options?: GeoImageExportOptions): Promise<GeoExportResult>; exportAsCsv(options: GeoCsvExportOptions): Promise<GeoExportResult>; getFeatures(query?: GeoFeatureQuery): GeoFeatureSnapshot; getLegendModel(): GeoLegendModel; activateLegendEntry(entryId: string): boolean; getEffectivePresentation(): GeoEffectivePresentation; getState(): GeoMapState; applyState( state: unknown, options?: GeoApplyStateOptions, ): GeoApplyStateResult; requestLevel(level: GeoLevel, options?: {item?: GeoItemRef}): void;}Every method runs the same route as the package's own control for it (one route per action: a button, a key, a menu item and the handle produce the same events). In a controlled map the navigation methods are requests. get returns the one row model (§ 10) the table, the data alternative, the tooltip and CSV read. get says what is shown after defaults, fallbacks and the container width.
State v2 (D-47). get returns {version: 2, dataset, level, view, selection, layers, encodings, scales, highlight, filter} (filter is always empty in P1). apply validates unknown input, the schema, the version (a version 1 state is migrated: reason: 'migrated-) and the dataset (is; default: equal identity), then restores field by field and reports per field (applied, adjusted, delegated, dropped, unchanged, with a reason) and per entry. Without fields: every restorable field present in the state. A controlled field is delegated as a request. A non-empty filter is dropped with capability- (per target and as a field) while other fields restore (partial); filter: [] is "no filter" (unchanged). A highlight with a later-phase target is dropped as a whole group. The result status is applied, partial or rejected.
6. Geo Defaults#
<Geo: defaults for every map below, nested. The map hands every provider's source (outermost first) and its own props to one schema-aware merge (v0.5 § 8): undefined inherits; false switches a feature off and clears the inherited feature configuration; true switches it on; arrays replace; [] is explicitly empty; the declared records merge field by field (legend./counts, zoom., context, export./csv, tooltip, header); a zoom. of another variant replaces the whole variant (foreign variant fields are dropped with variant-). null resets a declared Resettable path to the package (or instance) default past every provider; an undeclared null is GEO_. locale, t, diagnostics and components are atomic. There is no default language and no default notation.
7. Words and notation#
The package owns the keys (Geo), the host the words: t(key, variables); count selects the plural form (one/other). t is required: there is no default language and no hidden English fallback. english is the package's English, passed on purpose. english is the complete catalogue (every key with its English words, a plural key as {one, other}), for a host that writes its own translator: the keys and their {{variables}} are versioned public contract. Wherever the map joins a label and a value, or several texts, it asks the language (geo., geo.); it never concatenates words with its own punctuation. Host data (layer titles, measure and category labels, names, details) is the host's text and is never sent through t.
locale is the notation (Geo, the family's Value: a BCP 47 tag or a presentation object with its number format); words and notation are independent: a German translator with an English notation is legitimate. Formatting runs through the inlined @workspace/; the same declaration and value give the same text as in Charts.
Direction. The map takes the page's dir. Controls, legend, menu, table and the reading side of point labels follow it; the geography and the order of the host's objects never mirror. Every visible text run is an isolated run; no bidi control character is inserted. An image export is a left-to-right document.
P1e adds the keys geo., geo., geo., geo., geo., geo., geo., geo., geo., geo.; removed keys are listed in the CHANGELOG.
8. Diagnostics#
Geo to the sink, once per (code, path, value), never per render; data carries the code and the configuration path, never keys, names or values. Codes: presentation- (a configuration value outside its contract, ignored), variant-, reference- (a legend section names an explanation that is not there yet), text-, data-, table- (a host moved the focus while asked not to), table-, outlet-, scope-, export-.
9. Errors#
Geo, thrown during render. Codes: GEO_ (no locale), GEO_ (no t), GEO_, GEO_, GEO_, GEO_, GEO_, GEO_, GEO_, GEO_, GEO_, GEO_, GEO_, GEO_, GEO_, GEO_ (an input of a later phase; constraint names the phase).
Geo rejects an export (and reaches on): EXPORT_, EXPORT_, EXPORT_, EXPORT_, EXPORT_, EXPORT_ (§ 12).
10. Rows, identity and exclusions#
One row model (v0.5 § 11) for the snapshot, the table, the data alternative, the tooltip, CSV and a host grid: per data layer {layer; an object row {kind: 'object', row; a record row (a value record without a drawn object) {kind: 'record', …, link, link. row is stable within one revision.
Keys (D-9). Geo: a non-empty string (exact, case-sensitive) or a finite number; 1 and "1" are two objects; 0 and -0 one. The machine identity is v1: plus the JSON of the typed key (key). Every holder of a key repeated within a layer is excluded (duplicate-).
Exclusion reasons: missing-, invalid-, duplicate-, missing-, unsupported-, ring-, non-, position-, ring-, antimeridian-, ring-, hole-, densify-, object-, invalid-, latitude-, longitude-, not-. A degenerate exterior part is excluded from its area (partial); a degenerate hole is dropped.
11. Host composition#
Host components (D-36). components: {Button?, Toggle?, Input?} render the map's own controls (navigation buttons, legend toggles, the table's search and pager, the menu button) in the host's design system. The map owns every action, its state, words, ARIA, keyboard and focus routes and layout, and checks an unavailable action again before it acts; the component owns only how the control looks. Spread the DOM props onto ONE interactive element and send ref to it; render disabled as aria- (focusable), never native disabled; keep the given class; define the components once, at module scope. The menu, the tooltip, the table's tabs and rows, the steps of a compact scale and labels are Geo's own and not replaceable. Datyx's adapters for the Active UI Button, Toggle and Input: apps/.
| Slot | Props (besides ref, id, class, aria-, data-) |
|---|---|
Button | children, appearance: 'outline' | 'quiet', size: 'default' | 'icon', disabled, on, on, tab |
Toggle | children, pressed, on |
Input | type: 'search', value, on, placeholder |
Outlets (D-41). Geo binds one map to a Geo and a Geo anywhere inside it (legend: {position: 'outlet'}, table: {position: 'outlet'}). The map renders its own legend and table there through a portal: the same part, the same state and ARIA, never a copy; an image export never reads an outlet. One map per scope (a second one is reported, scope-). A missing outlet makes the part fall back to the map's own layout and is reported (outlet-); a hidden outlet answers a reveal with outlet- and takes no focus.
A host legend. Inside a Geo, use returns {model, activate}: the map's own resolved legend model (sections, entries with id, role, label, description, key, count, interactive, highlighted) and the map's own activation route (on first, cancellable, then the effect). null model outside a scope or before the first frame.
A host toolbar. Switch the package parts off (zoom: {controls: false}, context) and call the handle; every handle method is the same route as the package's control.
<GeoMapScope> <nav> <button onClick={() => void map.current?.exportAsPng()}>PNG</button> <button onClick={() => map.current?.home()}>Home</button> </nav> <GeoMap ref={map} title="Sales" projection="conic-equal-area" layers={layers} zoom={{controls: false}} contextMenu={{features: {export: false}}} legend={{position: 'outlet'}} table={{position: 'outlet'}} /> <aside> <GeoLegendOutlet /> </aside> <HostTab title="Table"> <GeoTableOutlet /> </HostTab></GeoMapScope>12. Export#
export/export and export, and the menu's export group, which runs the same operation. One export at a time (a second one while one runs rejects with Geo EXPORT_; the menu shows its items disabled meanwhile).
Image (
Geo: theImage Export Options export.fields plusimage filenameanddownload, defaulttrue): the current view or the fitted map; the title, description and attribution; the legend'presentation'(what the screen explains),'all',false, or a layout{content, position: 'bottom' | 'end', arrangement, sections}; labels placed by the export's own placement (D-30, W-7); an explicit theme (light,dark,current;export.declares how a host's mode is an attribute);themes scale(PNG pixel ratio); system fonts only (D-32). A PNG withinlimits., an SVG withinpng Max Pixels limits.(elsesvg Max Bytes GeoExport Error EXPORT_; the menu shows the item disabled with its reason).TOO_ LARGE CSV v2 (D-43): one file per data layer, one row per snapshot row. Columns
csv_(2),version layer,level,row_(kind object,record),key,key_,type key_,encoded name,geometry,geometry_,reason link_,status link_,reason issues,longitude,latitude; per measuremeasure:<id>:value,:unit(money and price: the currency; percent: its source),:status, and withtext: true:text; withdetails: trueonedetail:<id>per detail id. Text passes the family's delimited-text boundary (quoting, formula neutralisation); numbers the machine number form; a category is written as its id; a withheld value is never written.scope: 'selected'exports the selected objects.Result
{format, filename, blob, download: the revisions captured. An export captures one consistent frame: props that change while it runs do not mix into it.Started, frame?, revision, presentation Revision, warnings}
13. Geo Value Semantics#
Exactly the shape of Chart (active-charts): number (format?), count, money (currency, decimals?), price (currency, decimals), percent (source, preset?). Without it: integer or two decimals.
14. Styling#
One stylesheet, imported by the entry (a side effect, as in Charts), every rule under .; the private defaults on :root and .. Colour tokens and the font are listed in the README. The package defaults follow the host's . class; any host value for a --geo- token wins. States never share a cue (D-27): selection is a solid line over the halo, focus a dashed line, highlight dims the rest of the layer, a missing value is hatched, a withheld value has its own pattern. On-demand controls are transparent and without pointer events in rest but keep their place and tab stop; reduced motion switches transitions off; forced colours map strokes, selection and focus to system colours. A host restyles the map through tokens and components, never by hiding package parts with its own CSS.
15. Starter collection (D-26)#
An optional second entry, @workspace/: Natural Earth Admin 0 – Countries at 1:50m (theme version 5.1.1, release tag v5.1.2), 242 areas. The runtime entry . never reaches it; a host that does not import it carries no geography.
| Export | Kind |
|---|---|
world50m | Constant |
load | Function |
Geo, Geo, Geo, Geo, Geo, Geo, Geo | Types |
import {GeoMap, englishGeoTranslator} from '@workspace/active-geo';import { loadWorld50m, world50m,} from '@workspace/active-geo/collections/world-50m';
const features = await loadWorld50m();<GeoMap title="Sales by country" projection="equal-earth" locale="en-US" t={englishGeoTranslator} dataset={world50m.dataset} attribution={world50m.attribution} layers={[ { type: 'area', id: 'world', title: 'Countries', features, measures: [{id: 'sales', label: 'Sales'}], data: records, // [{key: 'NLD', values: {sales: 120}}, …], joined by key fill: {measure: 'sales', scale: {type: 'quantize', classes: 5}}, }, ]}/>;Metadata, no geometry. world50m is available synchronously and loads no geometry: dataset ({id: 'active-, for dataset and restorable state), source, rights (public domain), attribution, boundary, feature (242), bounds, crs, convention (rfc7946), key and transformation.
Loading. load imports the geometry on its first call (a separate chunk with a code-splitting bundler, about 236 KB gzip) and resolves to the 242 areas in source order. Every call resolves to the same frozen array. A failed load rejects; the next call tries again. The package makes no network request of its own.
Areas and joining. A Geo is an area feature: key (ADM0_, the join key), name (English, display only), geometry, codes (ne, iso, iso, iso, wikidata), attributes. Records join by key only: no name matching, no code translation. The codes are no key (iso AUS belongs to three areas). The collection follows Natural Earth's default de facto representation and takes no position on sovereignty. Known limits: 1:50m generalisation; no names in other languages.
Rebuilding. node packages/ (sources and rights: scripts/).
16. Environment and distribution#
Modern browsers with ES2022, Resize, Canvas 2D, Path2 and Intl.; a client component (SSR renders the container, the map draws after hydration). Peer dependencies React and React DOM 19; runtime d3-, d3-, @base- (menu, direction), and date- and @date-, which the formatter owner reaches (standard RPS-). The owner entries @workspace/, @workspace/ and / are the closure lint- guards (D-1, v0.5 § 14). In another repository the owners arrive as managed packages through rps:transfer and rps-, active- as the compatibility selection portable-; @workspace/ is not required. Not yet proved: an external example consumer and a recorded release (ROADMAP R-69); the manifest is private: true with source exports. Transfer: docs/ (source repository: docs/).
All exports, from the source#
@workspace/ active- geo#
GeoMap(component)GeoMapProps(interface)GeoDefaults(component): Supplies configuration to every map rendered in its subtree.GeoDefaultsProps(interface)useGeoLegend(hook)
GeoLegendOutlet(component): Where the scope's map shows its legend (placement: 'outlet').GeoMapScope(component): Binds one map to the legend and table outlets placed anywhere inside it.GeoTableOutlet(component): Where the scope's map shows its table (table: 'outlet').GeoMapScopeProps(interface)GeoOutletProps(interface)GeoAreaGeometry(type): The geometry of an area: a polygon or a multipolygon.GeoButtonSlotProps(interface): What the map hands a host BUTTON.GeoComponents(interface): Host components for the map's standard controls.GeoContextGeometry(type): The geometry a context layer draws: areas and lines, nothing else.GeoContextLayer(interface): Geographic context: drawn, never interactive, never in the legend.GeoDatasetIdentity(interface): The identity of the data a map shows, declared by the host.GeoDivergingScale(interface): Classes on either side of a reference value the host names.GeoExportFormat(type): The formats a map exports.GeoExportLimits(interface): The limits of the map's exports.GeoExportTheme(type): The colours of an exported image:light(default) anddarkare explicit export themes, independent of what the screen shows;currentis the theme the map shows now.GeoExportThemeMarker(interface): How a host whose colour modes are an ATTRIBUTE (for exampledata-theme="dark"on the document root) expresses one mode, so an explicitlightordarkexport can reproduce it.GeoExportThemes(interface): The host's attribute for each colour mode (exportThemes).GeoInputSlotProps(interface): What the map hands a host text INPUT (the table's search).GeoItemRef(interface): A reference to one map object: its layer and its key in that layer.GeoKey(type): The key of a map object: a non-empty string or a finite number.GeoLevel(interface): One level of the host's geographic hierarchy, as the map names it.GeoLevelRequest(interface): The map asks the host for a level: from the level path, or from the host's own action (requestLevel, for example an object action that drills into an area).GeoLineString(interface): A GeoJSONLineStringof at least two positions.GeoMultiLineString(interface): A GeoJSONMultiLineString.GeoMultiPolygon(interface): A GeoJSONMultiPolygon: one or more polygons.GeoPointRenderer(type): How a point layer is drawn.GeoPolygon(interface): A GeoJSONPolygon: an exterior ring followed by its holes.GeoPosition(type): A GeoJSON position:[longitude, latitude]in degrees.GeoPresentation(type): How values and coordinates are formatted: a BCP 47 locale tag or an explicit presentation context (@workspace/active-format).GeoProjection(type): The projection of a map.GeoRing(type): A closed ring: the first and last position are equal.GeoRingConvention(type): How the rings and edges of a layer are meant, declared by the host:GeoSelectionOptions(interface): Selection behaviour of a map.GeoToggleSlotProps(interface): What the map hands a host TOGGLE (a two-state button: a legend entry).GeoValueSemantics(type): What a numeric value means, declared once per layer.
FeatureOption(type):trueon (the farther object kept),falseoff, an object refines.GeoApplyStateOptions(interface)GeoApplyStateResult(interface)GeoAreaFeature(interface)GeoAreaLayer(interface)GeoAttribution(type)GeoCategoryDefinition(interface)GeoCategoryMeasure(interface)GeoChannel(type): Every channel.GeoClassScale(type): Classed colour scales;classLabelsby class index.GeoClusterSnapshot(interface): OUTPUT, dormant before P4: a cluster as a menu target and in events.GeoColor(type)GeoColorMapping(interface): P1 colour: an own classed scale (no continuous, no shared reference).GeoConfigSource(interface): The configuration a source (package, provider, props) can carry.GeoContextMenuOptions(interface)GeoCorner(type)GeoCsvExportOptions(interface)GeoCustomLegendEntry(interface): P1 custom key: a swatch or a circle.GeoDataLayerType(type)GeoDataRecord(interface): A value record joined by key; never together with inlinevalues.GeoDescribe(type)GeoDetail(interface)GeoEffectivePresentation(interface): WhatgetEffectivePresentation()reports.GeoEncodingReading(type)GeoEncodingSnapshot(interface)GeoEncodingStatus(type)GeoExplanationOptions(interface)GeoExplanationPart(type)GeoExplanationRef(type)GeoExplanationRefInput(type): The explanation references a P1 host can write.GeoExportLegendLayout(interface)GeoExportOptions(interface)GeoExportResult(interface)GeoExportWarning(interface)GeoExportWarningCode(type)GeoFeatureQuery(interface)GeoFeatureSnapshot(interface)GeoFill(type)GeoFocusReturn(interface)GeoGeometryStatus(type)GeoHeaderOptions(interface)GeoHighlight(interface): A non-empty set of targets;fingerprintsbinds them to their meaning.GeoHighlightChange(interface)GeoHighlightTarget(interface): One highlight target a P1 host can write: an entry of an own explanation (encoding,layer,custom).GeoHome(type): Wherehome()goes;fit()is always the frame.GeoId(type): A host-chosen identifier (measures, categories, details, sections, custom entries, status blocks):/^[A-Za-z0-9_][A-Za-z0-9_.-]{0,63}$/.GeoImageExportDefaults(interface)GeoImageExportOptions(interface): One image export of the handle or the menu (P1 projection of § 15).GeoInputChannel(type): The channels a P1 host can encode.GeoInvalidReason(type)GeoItem(interface): A map object as reported.GeoKeyReading(interface): A key with its machine identity (v1:+ JSON).GeoLabelOptions(interface)GeoLayer(type)GeoLayerSnapshot(interface)GeoLayerTooltipOptions(interface)GeoLegendActivation(interface): Activation of one resolved legend entry, cancellable.GeoLegendEntryRef(interface)GeoLegendHook(interface): Inside aGeoMapScope: the legend model and its action, for a host legend.GeoLegendKey(type): OUTPUT:lineandgradientkeys dormant in P1.GeoLegendModel(interface)GeoLegendModelEntry(interface)GeoLegendOptions(interface)GeoLegendPosition(type)GeoLegendSection(interface)GeoLegendSectionItem(type)GeoLinkStatus(type)GeoMapHandle(interface): The map's handle (P1 projection: noproject/invert).GeoMapState(interface)GeoMarker(interface): P1 marker: circles only.GeoMeasure(type)GeoMeasurementReading(type)GeoMeasurementStatus(type)GeoMenuContext(interface): One opening of the menu, frozen while it stays open.GeoMenuFeatures(interface)GeoMenuGroup(type)GeoMenuItem(type): One item of the map's menu: the family's item (active-helpersmenu-items), acting on the opening'sGeoMenuContext.GeoMenuTarget(type): OUTPUT: what a menu was opened on;clusteris dormant before P4.GeoNavigationAction(type)GeoNumberMeasure(interface)GeoObjectSnapshot(interface)GeoObjectTextContext(interface): What a text callback sees.GeoPalette(type)GeoPointDatum(interface)GeoPointLayer(interface)GeoRecordLink(type)GeoRecordSnapshot(interface)GeoResolvedVectorSymbol(interface): OUTPUT: the vector form of a symbol, fully resolved.GeoRowIssue(type)GeoRowSnapshot(type)GeoScaleEntry(type)GeoSelectionChange(type): OUTPUT:clusteris dormant in P1.GeoSizeMapping(interface): Area ∝ value; the radius of the equal-area circle.GeoSpecialStatus(type)GeoStateDisposition(type)GeoStateEntryResult(type)GeoStateField(type)GeoStateFieldResult(interface)GeoStateReason(type)GeoSuppressed(interface)GeoTableOptions(interface)GeoTableRequest(interface)GeoTableRequestOutcome(type)GeoTableRevealFailure(type)GeoTableRevealResult(type): Every reveal settles exactly once with one of these.GeoTextField(type): P1 text fields: encoding fields on P1 channels only.GeoTooltipOptions(interface)GeoUnrepresentableReason(type): OUTPUT:negative-widthandnot-rotatabledormant in P1.GeoValueInput(type): A number, a category id,null/absent (missing) or{suppressed: true}.GeoValues(type)GeoView(type): One value for coordinates AND mode, controlled or uncontrolled.GeoViewCause(type)GeoViewChange(interface)GeoViewMode(type)GeoVisualValue(type): OUTPUT:width,shape,rotationdormant in P1.GeoZoomControls(type)GeoZoomOptions(interface)Resettable(type):nullon a declared path resets it to the package or instance default.
GeoConfigurationError(class): A map configuration the map cannot run with.GeoConfigurationErrorCode(type): The closed set of configuration mistakes the map refuses.GeoConfigurationErrorOptions(interface)
GeoExportError(class): An export that produced no file.GeoExportErrorCode(type)GeoExportErrorOptions(interface)
englishGeoMessages(constant): The package's key catalogue with its English words, for a host that writes its own translator: every key, its{{variables}}, and a plural key asone/other.englishGeoTranslator(function): The package's English, with{{name}}interpolation and one/other plurals.GeoTranslateFn(type)GeoTranslationKey(type): Every key the package asks for.GeoTranslationVariables(type): Interpolation values;countalso selects a plural form.
GeoDiagnostic(interface)GeoDiagnosticLevel(type): Diagnostics go to a sink the host passes (diagnosticson the map), the same contract as the Active chart and grid packages.GeoDiagnosticSink(type)
@workspace/ active- geo/ collections/ world- 50m#
GeoCountryAttributes(interface): Source attributes with their Natural Earth meaning; no hierarchy.GeoCountryCodes(interface): Codes of the source, for a host that maps its own records to keys.GeoCountryFeature(interface): One area of the collection.GeoCountryGeometry(type)GeoCountryPosition(type): The public shapes of the world-50m collection.GeoCountryRing(type)GeoWorld50mMetadata(type): The collection's provenance and identity; loads no geometry.world50m(constant): Source, version, rights, boundary policy, bounds and build of the collection.loadWorld50m(function): Loads and decodes the collection's 242 areas, in source order.