# Interactive Map of Tamilnadu

This package generates an interactive SVG map of Tamilnadu. It allows users to highlight districts on hover and retrieve the value of the selected district.

![Preview](https://raw.githubusercontent.com/arav-ind/svgmaps-india/refs/heads/master/gifs/tamilnadu.gif)

## Installation

Install the package via npm:

```bash
pnpm install svgmap-tamilnadu
```

## District List

The following are the districts mapped with its ID.

```js
export const districtNames = {
    ARI: 'Ariyalur',
    CHE: 'Chennai',
    CHN: 'Chengalpattu',
    CBE: 'Coimbatore',
    CUD: 'Cuddalore',
    DHAM: 'Dharmapuri',
    DIN: 'Dindigul',
    ERO: 'Erode',
    KAN: 'Kanchipuram',
    KAL: 'Kallakurichi',
    KKN: 'Kanyakumari',
    KKL: 'Karaikal',
    KAR: 'Karur',
    KRI: 'Krishnagiri',
    MAD: 'Madurai',
    MAY: 'Mayiladuthurai',
    NAG: 'Nagapattinam',
    NAM: 'Namakkal',
    NIL: 'Nilgiris',
    PER: 'Perambalur',
    PUD: 'Pudukkottai',
    RAM: 'Ramanathapuram',
    RAN: 'Ranipet',
    SAL: 'Salem',
    SIV: 'Sivagangai',
    TEN: 'Tenkasi',
    TAN: 'Tanjavur',
    THE: 'Theni',
    THI: 'Thiruvarur',
    TPR: 'Tiruppur',
    THO: 'Thoothukudi',
    TRI: 'Tiruchirappalli',
    TNE: 'Tirunelveli',
    TIR: 'Tirupattur',
    TVL: 'Tiruvallur',
    TVM: 'Tiruvannamalai',
    VEL: 'Vellore',
    VIL: 'Viluppuram',
    VIR: 'Virudhunagar',
}
```

## Usage

```jsx

'use client'

import React, { useState } from 'react'
import TamilnaduMap, { districtNames } from 'svgmap-tamilnadu'

const App = () => {
    const [selectedValue, setSelectedValue] = useState<string | null>(null)

    return (
        <div>
            <h3 style={{ position: 'absolute' }}>
                {
                    selectedValue ? `${selectedValue}: ${districtNames[selectedValue]}` : 'None'
                }
            </h3>
            <TamilnaduMap
                onClick={(value: string) => setSelectedValue(value)}
                size="600px"
                mapColor="white"
                strokeColor="black"
                strokeWidth="1"
                hoverColor="rgb(80 80 80)"
            />
        </div>
    )
}

export default App

```

## Props Available

| Props       | Description                                        | Requirement | Default Value |
| ----------- | -------------------------------------------------- | ----------- | ------------- |
| onClick     | Callback function to get the selected state value. | Required    | NA            |
| className   | Custom classname for the map component.            | Optional    | "svgmap"      |
| size        | Width of the map.                                  | Optional    | "inherit"     |
| mapColor    | Color of the map.                                  | Optional    | "#ffffff"     |
| strokeColor | Border color of each state.                        | Optional    | "#000000"     |
| strokeWidth | Border width of each state.                        | Optional    | "0.5"         |
| hoverColor  | Color of the state while hovering on it.           | Optional    | "#303030"     |

## Contributing

Pull requests are welcome.
