From 96037f22b63444142dc423188c8da8cd6b886147 Mon Sep 17 00:00:00 2001 From: Buddy Date: Tue, 9 Jun 2026 11:08:15 -0700 Subject: [PATCH] refactor: switch component exports from named to default All 21 component files export exactly one class. Change to export default so consumers can import them without named braces. Update src/index.ts re-exports from "export *" to "export { default as LeafletXxx }". Fix the two type-only imports of LeafletLine to use default import syntax. --- src/components/leaflet-circle-marker.ts | 2 +- src/components/leaflet-circle.ts | 2 +- src/components/leaflet-control-attribution.ts | 2 +- src/components/leaflet-control-scale.ts | 2 +- src/components/leaflet-control-zoom.ts | 2 +- src/components/leaflet-feature-group.ts | 2 +- src/components/leaflet-geojson.ts | 2 +- src/components/leaflet-image-overlay.ts | 2 +- src/components/leaflet-layer-group.ts | 2 +- src/components/leaflet-line.ts | 2 +- src/components/leaflet-map.ts | 2 +- src/components/leaflet-marker.ts | 2 +- src/components/leaflet-polygon.ts | 4 +- src/components/leaflet-polyline.ts | 4 +- src/components/leaflet-popup.ts | 2 +- src/components/leaflet-rectangle.ts | 2 +- src/components/leaflet-svg-overlay.ts | 2 +- src/components/leaflet-tile-layer-wms.ts | 2 +- src/components/leaflet-tile-layer.ts | 2 +- src/components/leaflet-tooltip.ts | 2 +- src/components/leaflet-video-overlay.ts | 2 +- src/index.ts | 42 +++++++++---------- 22 files changed, 44 insertions(+), 44 deletions(-) diff --git a/src/components/leaflet-circle-marker.ts b/src/components/leaflet-circle-marker.ts index e6b331c..bd14f9e 100644 --- a/src/components/leaflet-circle-marker.ts +++ b/src/components/leaflet-circle-marker.ts @@ -18,7 +18,7 @@ const PROPS = { fillOpacity: { kind: 'num', attr: 'fill-opacity', default: 0.2 }, } satisfies Record; -export class LeafletCircleMarker extends withProps(HTMLElement, PROPS) { +export default class LeafletCircleMarker extends withProps(HTMLElement, PROPS) { #obj?: CircleMarker; connectedCallback() { diff --git a/src/components/leaflet-circle.ts b/src/components/leaflet-circle.ts index b891d35..c3465a5 100644 --- a/src/components/leaflet-circle.ts +++ b/src/components/leaflet-circle.ts @@ -18,7 +18,7 @@ const PROPS = { fillOpacity: { kind: 'num', attr: 'fill-opacity', default: 0.2 }, } satisfies Record; -export class LeafletCircle extends withProps(HTMLElement, PROPS) { +export default class LeafletCircle extends withProps(HTMLElement, PROPS) { #obj?: Circle; connectedCallback() { diff --git a/src/components/leaflet-control-attribution.ts b/src/components/leaflet-control-attribution.ts index b21b36e..4cfb46f 100644 --- a/src/components/leaflet-control-attribution.ts +++ b/src/components/leaflet-control-attribution.ts @@ -9,7 +9,7 @@ const PROPS = { prefix: { kind: 'str', attr: 'prefix', default: '' }, } satisfies Record; -export class LeafletControlAttribution extends withProps(HTMLElement, PROPS) { +export default class LeafletControlAttribution extends withProps(HTMLElement, PROPS) { #obj?: Control.Attribution; connectedCallback() { diff --git a/src/components/leaflet-control-scale.ts b/src/components/leaflet-control-scale.ts index 0fecc3c..2827090 100644 --- a/src/components/leaflet-control-scale.ts +++ b/src/components/leaflet-control-scale.ts @@ -12,7 +12,7 @@ const PROPS = { updateWhenIdle: { kind: 'bool-on', attr: 'update-when-idle' }, } satisfies Record; -export class LeafletControlScale extends withProps(HTMLElement, PROPS) { +export default class LeafletControlScale extends withProps(HTMLElement, PROPS) { #obj?: Control.Scale; connectedCallback() { diff --git a/src/components/leaflet-control-zoom.ts b/src/components/leaflet-control-zoom.ts index 247de6c..7eed9a2 100644 --- a/src/components/leaflet-control-zoom.ts +++ b/src/components/leaflet-control-zoom.ts @@ -12,7 +12,7 @@ const PROPS = { zoomOutTitle: { kind: 'str', attr: 'zoom-out-title', default: 'Zoom out' }, } satisfies Record; -export class LeafletControlZoom extends withProps(HTMLElement, PROPS) { +export default class LeafletControlZoom extends withProps(HTMLElement, PROPS) { #obj?: Control.Zoom; connectedCallback() { diff --git a/src/components/leaflet-feature-group.ts b/src/components/leaflet-feature-group.ts index d85df28..0469a6b 100644 --- a/src/components/leaflet-feature-group.ts +++ b/src/components/leaflet-feature-group.ts @@ -2,7 +2,7 @@ import { FeatureGroup, Layer } from 'leaflet'; import { buildOptions } from '../core/utils.ts'; import { registerChildren, unregisterChildren, getChildren } from '../core/register.ts'; -export class LeafletFeatureGroup extends HTMLElement { +export default class LeafletFeatureGroup extends HTMLElement { #obj?: FeatureGroup; static get observedAttributes() { diff --git a/src/components/leaflet-geojson.ts b/src/components/leaflet-geojson.ts index 1402cd6..df0f183 100644 --- a/src/components/leaflet-geojson.ts +++ b/src/components/leaflet-geojson.ts @@ -25,7 +25,7 @@ const PROP_BY_ATTR = new Map( Object.entries(PROPS).map(([name, spec]) => [spec.attr, name]), ); -export class LeafletGeoJSON extends withProps(HTMLElement, PROPS) { +export default class LeafletGeoJSON extends withProps(HTMLElement, PROPS) { #obj?: GeoJSON; connectedCallback() { diff --git a/src/components/leaflet-image-overlay.ts b/src/components/leaflet-image-overlay.ts index b2cc9b0..a746652 100644 --- a/src/components/leaflet-image-overlay.ts +++ b/src/components/leaflet-image-overlay.ts @@ -20,7 +20,7 @@ const PROPS = { const PROP_BY_ATTR = buildAttrMap(PROPS); -export class LeafletImageOverlay extends withProps(HTMLElement, PROPS) { +export default class LeafletImageOverlay extends withProps(HTMLElement, PROPS) { #obj?: ImageOverlay; connectedCallback() { diff --git a/src/components/leaflet-layer-group.ts b/src/components/leaflet-layer-group.ts index 51ff034..8686fcf 100644 --- a/src/components/leaflet-layer-group.ts +++ b/src/components/leaflet-layer-group.ts @@ -2,7 +2,7 @@ import { LayerGroup, Layer } from 'leaflet'; import { buildOptions } from '../core/utils.ts'; import { registerChildren, unregisterChildren, getChildren } from '../core/register.ts'; -export class LeafletLayerGroup extends HTMLElement { +export default class LeafletLayerGroup extends HTMLElement { #obj?: LayerGroup; static get observedAttributes() { diff --git a/src/components/leaflet-line.ts b/src/components/leaflet-line.ts index 4df61ab..a4dcd49 100644 --- a/src/components/leaflet-line.ts +++ b/src/components/leaflet-line.ts @@ -1,4 +1,4 @@ -export class LeafletLine extends HTMLElement { +export default class LeafletLine extends HTMLElement { static get observedAttributes() { return ['lat', 'lng']; } diff --git a/src/components/leaflet-map.ts b/src/components/leaflet-map.ts index ae1aada..9c19756 100644 --- a/src/components/leaflet-map.ts +++ b/src/components/leaflet-map.ts @@ -185,7 +185,7 @@ type PropTypes = { // runtime still extends HTMLElement, and no interface merge is required. const TypedBase = HTMLElement as unknown as new () => HTMLElement & PropTypes; -export class LeafletMap extends TypedBase { +export default class LeafletMap extends TypedBase { #map?: LMap; #container!: HTMLDivElement; #cssLink?: HTMLLinkElement; diff --git a/src/components/leaflet-marker.ts b/src/components/leaflet-marker.ts index 7ec8cf7..adb6a66 100644 --- a/src/components/leaflet-marker.ts +++ b/src/components/leaflet-marker.ts @@ -17,7 +17,7 @@ const PROPS = { const PROP_BY_ATTR = buildAttrMap(PROPS); -export class LeafletMarker extends withProps(HTMLElement, PROPS) { +export default class LeafletMarker extends withProps(HTMLElement, PROPS) { #obj?: Marker; #syncing = false; diff --git a/src/components/leaflet-polygon.ts b/src/components/leaflet-polygon.ts index e3e07f6..03f966f 100644 --- a/src/components/leaflet-polygon.ts +++ b/src/components/leaflet-polygon.ts @@ -5,7 +5,7 @@ import { withProps } from '../core/with-props.ts'; import { registerChildren, unregisterChildren } from '../core/register.ts'; import { isPathStyleAttr, updatePathStyle } from '../core/path-style.ts'; import type { PropDef } from '../core/props.ts'; -import type { LeafletLine } from './leaflet-line.ts'; +import type LeafletLine from './leaflet-line.ts'; const PROPS = { color: { kind: 'str', attr: 'color', default: '#3388ff' }, @@ -16,7 +16,7 @@ const PROPS = { fillOpacity: { kind: 'num', attr: 'fill-opacity', default: 0.2 }, } satisfies Record; -export class LeafletPolygon extends withProps(HTMLElement, PROPS) { +export default class LeafletPolygon extends withProps(HTMLElement, PROPS) { #obj?: Polygon; #observer?: MutationObserver; diff --git a/src/components/leaflet-polyline.ts b/src/components/leaflet-polyline.ts index 45fb4f2..353544e 100644 --- a/src/components/leaflet-polyline.ts +++ b/src/components/leaflet-polyline.ts @@ -5,7 +5,7 @@ import { withProps } from '../core/with-props.ts'; import { registerChildren, unregisterChildren } from '../core/register.ts'; import { isPathStyleAttr, updatePathStyle } from '../core/path-style.ts'; import type { PropDef } from '../core/props.ts'; -import type { LeafletLine } from './leaflet-line.ts'; +import type LeafletLine from './leaflet-line.ts'; const PROPS = { color: { kind: 'str', attr: 'color', default: '#3388ff' }, @@ -16,7 +16,7 @@ const PROPS = { fillOpacity: { kind: 'num', attr: 'fill-opacity', default: 0.2 }, } satisfies Record; -export class LeafletPolyline extends withProps(HTMLElement, PROPS) { +export default class LeafletPolyline extends withProps(HTMLElement, PROPS) { #obj?: Polyline; #observer?: MutationObserver; diff --git a/src/components/leaflet-popup.ts b/src/components/leaflet-popup.ts index dba3026..f7d9a8b 100644 --- a/src/components/leaflet-popup.ts +++ b/src/components/leaflet-popup.ts @@ -15,7 +15,7 @@ const PROPS = { autoClose: { kind: 'bool-on', attr: 'auto-close' }, } satisfies Record; -export class LeafletPopup extends withProps(HTMLElement, PROPS) { +export default class LeafletPopup extends withProps(HTMLElement, PROPS) { #obj?: Popup; #observer?: MutationObserver; diff --git a/src/components/leaflet-rectangle.ts b/src/components/leaflet-rectangle.ts index 05d350c..17f9beb 100644 --- a/src/components/leaflet-rectangle.ts +++ b/src/components/leaflet-rectangle.ts @@ -16,7 +16,7 @@ const PROPS = { fillOpacity: { kind: 'num', attr: 'fill-opacity', default: 0.2 }, } satisfies Record; -export class LeafletRectangle extends withProps(HTMLElement, PROPS) { +export default class LeafletRectangle extends withProps(HTMLElement, PROPS) { #obj?: Rectangle; connectedCallback() { diff --git a/src/components/leaflet-svg-overlay.ts b/src/components/leaflet-svg-overlay.ts index a2a472c..ac76e97 100644 --- a/src/components/leaflet-svg-overlay.ts +++ b/src/components/leaflet-svg-overlay.ts @@ -17,7 +17,7 @@ const PROPS = { const PROP_BY_ATTR = buildAttrMap(PROPS); -export class LeafletSVGOverlay extends withProps(HTMLElement, PROPS) { +export default class LeafletSVGOverlay extends withProps(HTMLElement, PROPS) { #obj?: SVGOverlay; connectedCallback() { diff --git a/src/components/leaflet-tile-layer-wms.ts b/src/components/leaflet-tile-layer-wms.ts index dc624f9..67db6a4 100644 --- a/src/components/leaflet-tile-layer-wms.ts +++ b/src/components/leaflet-tile-layer-wms.ts @@ -17,7 +17,7 @@ const PROPS = { const PROP_BY_ATTR = buildAttrMap(PROPS); -export class LeafletTileLayerWMS extends withProps(HTMLElement, PROPS) { +export default class LeafletTileLayerWMS extends withProps(HTMLElement, PROPS) { #obj?: TileLayer.WMS; connectedCallback() { diff --git a/src/components/leaflet-tile-layer.ts b/src/components/leaflet-tile-layer.ts index bc363a5..1d6595b 100644 --- a/src/components/leaflet-tile-layer.ts +++ b/src/components/leaflet-tile-layer.ts @@ -16,7 +16,7 @@ const PROPS = { const PROP_BY_ATTR = buildAttrMap(PROPS); -export class LeafletTileLayer extends withProps(HTMLElement, PROPS) { +export default class LeafletTileLayer extends withProps(HTMLElement, PROPS) { #obj?: TileLayer; connectedCallback() { diff --git a/src/components/leaflet-tooltip.ts b/src/components/leaflet-tooltip.ts index ce8fcd5..d835b3d 100644 --- a/src/components/leaflet-tooltip.ts +++ b/src/components/leaflet-tooltip.ts @@ -16,7 +16,7 @@ const PROPS = { opacity: { kind: 'num', attr: 'opacity', default: 1.0 }, } satisfies Record; -export class LeafletTooltip extends withProps(HTMLElement, PROPS) { +export default class LeafletTooltip extends withProps(HTMLElement, PROPS) { #obj?: Tooltip; #observer?: MutationObserver; diff --git a/src/components/leaflet-video-overlay.ts b/src/components/leaflet-video-overlay.ts index 88fe63a..1ff1a64 100644 --- a/src/components/leaflet-video-overlay.ts +++ b/src/components/leaflet-video-overlay.ts @@ -21,7 +21,7 @@ const PROPS = { const PROP_BY_ATTR = buildAttrMap(PROPS); -export class LeafletVideoOverlay extends withProps(HTMLElement, PROPS) { +export default class LeafletVideoOverlay extends withProps(HTMLElement, PROPS) { #obj?: VideoOverlay; connectedCallback() { diff --git a/src/index.ts b/src/index.ts index 669fd29..d53ccd6 100644 --- a/src/index.ts +++ b/src/index.ts @@ -3,24 +3,24 @@ export * from './core/with-props.ts'; export * from './core/path-style.ts'; export * from './core/register.ts'; export * from './core/props.ts'; -export * from './components/leaflet-map.ts'; -export * from './components/leaflet-marker.ts'; -export * from './components/leaflet-circle.ts'; -export * from './components/leaflet-circle-marker.ts'; -export * from './components/leaflet-line.ts'; -export * from './components/leaflet-polygon.ts'; -export * from './components/leaflet-polyline.ts'; -export * from './components/leaflet-rectangle.ts'; -export * from './components/leaflet-tile-layer.ts'; -export * from './components/leaflet-tile-layer-wms.ts'; -export * from './components/leaflet-image-overlay.ts'; -export * from './components/leaflet-video-overlay.ts'; -export * from './components/leaflet-svg-overlay.ts'; -export * from './components/leaflet-layer-group.ts'; -export * from './components/leaflet-feature-group.ts'; -export * from './components/leaflet-geojson.ts'; -export * from './components/leaflet-control-zoom.ts'; -export * from './components/leaflet-control-attribution.ts'; -export * from './components/leaflet-control-scale.ts'; -export * from './components/leaflet-popup.ts'; -export * from './components/leaflet-tooltip.ts'; +export { default as LeafletMap } from './components/leaflet-map.ts'; +export { default as LeafletMarker } from './components/leaflet-marker.ts'; +export { default as LeafletCircle } from './components/leaflet-circle.ts'; +export { default as LeafletCircleMarker } from './components/leaflet-circle-marker.ts'; +export { default as LeafletLine } from './components/leaflet-line.ts'; +export { default as LeafletPolygon } from './components/leaflet-polygon.ts'; +export { default as LeafletPolyline } from './components/leaflet-polyline.ts'; +export { default as LeafletRectangle } from './components/leaflet-rectangle.ts'; +export { default as LeafletTileLayer } from './components/leaflet-tile-layer.ts'; +export { default as LeafletTileLayerWMS } from './components/leaflet-tile-layer-wms.ts'; +export { default as LeafletImageOverlay } from './components/leaflet-image-overlay.ts'; +export { default as LeafletVideoOverlay } from './components/leaflet-video-overlay.ts'; +export { default as LeafletSVGOverlay } from './components/leaflet-svg-overlay.ts'; +export { default as LeafletLayerGroup } from './components/leaflet-layer-group.ts'; +export { default as LeafletFeatureGroup } from './components/leaflet-feature-group.ts'; +export { default as LeafletGeoJSON } from './components/leaflet-geojson.ts'; +export { default as LeafletControlZoom } from './components/leaflet-control-zoom.ts'; +export { default as LeafletControlAttribution } from './components/leaflet-control-attribution.ts'; +export { default as LeafletControlScale } from './components/leaflet-control-scale.ts'; +export { default as LeafletPopup } from './components/leaflet-popup.ts'; +export { default as LeafletTooltip } from './components/leaflet-tooltip.ts';