diff --git a/_examples/multiple-dropdowns/home.templ b/_examples/multiple-dropdowns/home.templ
new file mode 100644
index 0000000..2924c2f
--- /dev/null
+++ b/_examples/multiple-dropdowns/home.templ
@@ -0,0 +1,119 @@
+package main
+
+import "github.com/indaco/gropdown"
+
+const (
+ profileIcon = `
+`
+ settingsIcon = `
+`
+
+ globeIcon = ``
+
+ clickIcon = `
+`
+)
+
+templ HomePage() {
+
+
+
+
+
+ gropdown - multiple dropdowns
+
+ @gropdown.GropdownCSS()
+
+
+
+
+
+
+ @gropdown.Root("menu-1") {
+ @gropdown.Button("Menu")
+ @gropdown.Content() {
+ @gropdown.Item("Profile",
+ gropdown.ItemOptions{
+ Href: "/profile",
+ Icon: profileIcon,
+ },
+ )
+ @gropdown.Item("Settings",
+ gropdown.ItemOptions{
+ Href: "/settings",
+ Icon: settingsIcon,
+ },
+ )
+ @gropdown.Divider()
+ @gropdown.Item("GitHub",
+ gropdown.ItemOptions{
+ Href: "https://github.com",
+ External: true,
+ Icon: globeIcon,
+ },
+ )
+ @gropdown.Divider()
+ @gropdown.Item("Button",
+ gropdown.ItemOptions{
+ Icon: clickIcon,
+ Attrs: templ.Attributes{"onclick": "alert('Hello gropdown');"},
+ },
+ )
+ }
+ }
+
+
+ @gropdown.Root("menu-2") {
+ @gropdown.Button("Menu")
+ @gropdown.Content() {
+ @gropdown.Item("Profile",
+ gropdown.ItemOptions{
+ Href: "/profile",
+ Icon: profileIcon,
+ },
+ )
+ @gropdown.Item("Settings",
+ gropdown.ItemOptions{
+ Href: "/settings",
+ Icon: settingsIcon,
+ },
+ )
+ @gropdown.Divider()
+ @gropdown.Item("GitHub",
+ gropdown.ItemOptions{
+ Href: "https://github.com",
+ External: true,
+ Icon: globeIcon,
+ },
+ )
+ @gropdown.Divider()
+ @gropdown.Item("Button",
+ gropdown.ItemOptions{
+ Icon: clickIcon,
+ Attrs: templ.Attributes{"onclick": "alert('Hello gropdown');"},
+ },
+ )
+ }
+ }
+
+
+ @gropdown.GropdownJS(gropdown.GetConfigMapFromContext(ctx))
+
+
+}
diff --git a/_examples/multiple-dropdowns/main.go b/_examples/multiple-dropdowns/main.go
new file mode 100644
index 0000000..01504f3
--- /dev/null
+++ b/_examples/multiple-dropdowns/main.go
@@ -0,0 +1,36 @@
+package main
+
+import (
+ "context"
+ "log"
+ "net/http"
+ "os"
+
+ "github.com/indaco/gropdown"
+)
+
+func HandleHome(w http.ResponseWriter, r *http.Request) {
+ configOne := gropdown.NewConfigBuilder().WithPosition(gropdown.Top).Build()
+ configTwo := gropdown.NewConfigBuilder().WithCloseOnOutsideClick(false).Build()
+ configMap := gropdown.NewConfigMap()
+ configMap.Add("menu-1", configOne)
+ configMap.Add("menu-2", configTwo)
+
+ ctx := context.WithValue(r.Context(), gropdown.ConfigContextKey, configMap)
+ err := HomePage().Render(ctx, w)
+ if err != nil {
+ return
+ }
+}
+
+func main() {
+ mux := http.NewServeMux()
+ mux.HandleFunc("GET /", HandleHome)
+
+ port := ":3300"
+ log.Printf("Listening on %s", port)
+ if err := http.ListenAndServe(port, mux); err != nil {
+ log.Printf("failed to start server: %v", err)
+ os.Exit(1)
+ }
+}