addCircle(
		item,
		name,
		circleOptions,
		selectedOptions,
		coords,
		onclick,
		setInput,
		unsetInput,
		link,
		ignoreZoom
	) {
		if (!Leaflet) throw new Error('Leaflet is not yet available');

		//other panes start at z-index 400
		if (!this.#map.getPane(circleOptions.pane)) {
			this.#map.createPane(circleOptions.pane);

			this.#paneArray.forEach((pane, index) => {
				if (pane === circleOptions.pane) {
					this.#map.getPane(pane).style.zIndex = 400 + index;
				}
			});
		}

		// Create the marker with the appropriate pane
		const marker = Leaflet.circleMarker(coords, circleOptions);
		marker.ignoreZoom = ignoreZoom;
		marker.addTo(this.#map);

		this.updateMarkerStyle(marker, circleOptions); // Initial style setting and storage

		marker.on('click', () => {
			onclick();
			if (this.#lastClickedMarker === marker) {
				// Revert to the original style
				const originalStyle = { ...this.#markerStyles.get(marker) }; // Clone to ensure no reference issues
				this.updateMarkerStyle(marker, originalStyle);
				this.#lastClickedMarker = null;
				unsetInput(name);
				onclick(null);
			} else {
				if (this.#lastClickedMarker) {
					const originalStyle = { ...this.#markerStyles.get(this.#lastClickedMarker) };
					this.updateMarkerStyle(this.#lastClickedMarker, originalStyle);
				}
				this.updateMarkerStyle(marker, selectedOptions);
				this.#lastClickedMarker = marker;
				setInput(item, name);
				onclick(marker);
			}
			marker.bringToFront();

			if (link) {
				window.location.href = link;
			}
		});

		// Extend bounds only if coords are valid
		if (coords && Array.isArray(coords) && coords.length === 2 && !this.#initialViewSet) {
			this.#bounds.extend(coords);
			this.updateBounds();
		} else {
			this.#map.setZoom(this.#initZoom ?? 5);
		}

		return marker;
	}
Adds a circle marker to the map.
@param {object} item - The data item associated with the marker.
@param {string} name - The identifier used for input interaction.
@param {NonNullable<Pick<import('leaflet').CircleMarkerOptions, 'fillColor' | 'radius'>> & Partial<import('leaflet').CircleMarkerOptions>} circleOptions - Options for the circle marker.
@param {object} selectedOptions - Styling options for when the marker is selected.
@param {import('leaflet').LatLngExpression} coords - The coordinates for the circle marker.
@param {Function} onclick - Function to execute when the marker is clicked.
@param {Function} setInput - Function to set input data when a marker is selected.
@param {Function} unsetInput - Function to clear input data when a marker is deselected.
@param {string} [link] - URL to navigate to on marker click.
@returns {import('leaflet').Marker} The created circle marker.