@htmlbricks/hb-bundle
Version:
Single IIFE loader for all HTML Bricks hb-* web components from the jsDelivr CDN, with optional Subresource Integrity; includes agent/LLM docs and theme CSS variables.
95 lines (93 loc) • 2.68 kB
TypeScript
export type Component = {
id?: string;
style?: string;
zoom: number;
center: number[];
data: {
marker?: {
lngLat: number[];
icon?: {
uri: string;
scale?: number;
anchor?: number[];
opacity?: number;
color?: string;
};
id?: string;
popupHtml?: string;
text?: string;
text_position?: "top" | "right" | "bottom" | "left";
text_offset?: number;
};
point?: {
lngLat: number[];
icon?: {
uri: string;
scale?: number;
anchor?: number[];
opacity?: number;
color?: string;
};
id?: string;
popupHtml?: string;
};
line?: {
lngLat: number[];
icon?: {
uri: string;
scale?: number;
anchor?: number[];
opacity?: number;
color?: string;
};
id?: string;
popupHtml?: string;
}[];
}[];
source: {
type: string;
url?: string;
/**
* Basemap palette for light UI. In dark color scheme (`prefers-color-scheme: dark` or
* `data-theme="dark"` / `.theme-dark` on host or document), `dark_matter` is always used.
*/
style?: "positron" | "dark_matter" | "voyager";
/** When `true`, only the vector `boundary` layer is drawn (no land, roads, water fill, etc.). */
boundaries_only?: boolean;
/**
* Optional JSON array string of OSM `admin_level` values to keep for `boundary` features,
* e.g. `"[2]"` for country borders, `"[2,4]"` for countries plus common internal divisions.
* Omit or empty to show all boundaries present in the tiles at the current zoom.
*/
boundary_admin_levels?: string;
/**
* When `true`, only international / country boundaries (`admin_level` 2) are drawn; internal
* regional lines are hidden. Combines with `boundary_admin_levels` by intersection (e.g. if
* the JSON list excludes `2`, no boundaries render). National lines use a solid stroke;
* when `false`, level 2 stays solid and other levels stay dashed.
*/
national_boundaries_only?: boolean;
};
options: {
centerFromGeometries?: boolean;
text_position?: "top" | "right" | "bottom" | "left";
text_offset?: number;
text_scale?: number;
};
screenshot?: string;
};
export type Events = {
pointClickCoordinates: {
coordinates: { latitude: number; longitude: number };
zoom: number;
center: number[];
};
markerClick: {
coordinates: { latitude: number; longitude: number };
/** From feature metadata when `marker.id` is set; may be missing. */
id?: string;
};
screenshotTaken: {
base64: string;
};
};