1// analysis/cellsystems — the founding family of the analysis lane.2//3// A cell system divides a ground into an exact hierarchy a reader can4// telescope through. This package is the whole of that: one contract5// (contract.ts), two systems keeping it (geohash.ts, s2.ts), a registry, and6// the two contractual outputs — the plan and the style tokens.7//8// The lane's rules, from issue #5 §3.2 and §5.4:9//10// - Pure. Every function is a function of its declared inputs. A Ground11// descriptor goes in; plans and tokens come out. No DOM, no fetch, no12// application imports, no shared client state.13// - Renderer-neutral. Outputs are plans and pure style tokens. Renderers14// adapt them; no renderer owns a cell rule.15// - Session-free. The active system, the held cell and whether the16// subdivision shows are session state, and they arrive as arguments.17//18// The contract is written down in `docs/analysis.md`, including the19// walkthrough for adding a third system. `analysis/testdata/cells/` is the20// judge: the shared contract vectors both this lane and the server's Go twin21// (internal/app/cells, via tests/cells) answer, so the two copies of the22// arithmetic are held to one set of numbers.2324export type {25 CellID,26 CellLabel,27 CellSystem,28 GroundedCellSystem,29 LocatedCell,30 Pole,31 Ring,32} from "./contract.ts";3334export type { Coordinate, Extent, Ground, Lens, Rect } from "./ground.ts";35export { extentArea, surfaceExtent, surfaceWidth } from "./ground.ts";3637export type { GeoMapping, ProjectedWindow, World, WorldAttrs } from "../semconv/geometry.ts";38export {39 equirectMapping,40 geoMapping,41 mercatorMapping,42 mercatorWindow,43 worldSurface,44} from "../semconv/geometry.ts";4546export { CellSystemRegistry, applicableSystems, cellSystems, equivalentCell } from "./registry.ts";4748export {49 geohashAlphabet,50 geohashBaseDepth,51 geohashCellAt,52 geohashDepth,53 geohashExtent,54 geohashMaxDepth,55 geohashSystem,56} from "./geohash.ts";57export { s2System } from "./s2.ts";5859export type { PlanCell } from "./plan.ts";60export { ancestorChain, cellPlan } from "./plan.ts";6162export { cellRings, clipRingX, ringClosesOn, ringIsClosed, samePoint } from "./ring.ts";6364export type {65 CellVisual,66 FillTokens,67 LabelTokens,68 LineTokens,69 VisualOptions,70} from "./visual.ts";71export { gridCellVisual } from "./visual.ts";7273export type { CellRole, GridTheme } from "./tokens.ts";74export { gridTheme, palette, paletteColor } from "./tokens.ts";