package register

import (
	"github.com/labstack/echo/v4"
	"github.com/onsonr/sonr/pkg/nebula/components/blocks"
	"github.com/onsonr/sonr/pkg/nebula/models/formstate"
)

templ Modal(c echo.Context) {
	<div
		x-data="{ modalOpen: true }"
		@keydown.escape.window="modalOpen = false"
		:class="{ 'z-40': modalOpen }"
		class="relative w-auto h-auto"
	>
		<button @click="modalOpen=true" class="inline-flex items-center justify-center h-10 px-4 py-2 text-sm font-medium transition-colors bg-white border rounded-md hover:bg-neutral-100 active:bg-white focus:bg-white focus:outline-none focus:ring-2 focus:ring-neutral-200/60 focus:ring-offset-2 disabled:opacity-50 disabled:pointer-events-none">Open</button>
		<template x-teleport="body">
			<div x-show="modalOpen" class="fixed top-0 left-0 z-[99] flex items-center justify-center w-screen h-screen" x-cloak>
				<div
					x-show="modalOpen"
					x-transition:enter="ease-out duration-300"
					x-transition:enter-start="opacity-0"
					x-transition:enter-end="opacity-100"
					x-transition:leave="ease-in duration-300"
					x-transition:leave-start="opacity-100"
					x-transition:leave-end="opacity-0"
					@click="modalOpen=false"
					class="absolute inset-0 w-full h-full bg-gray-900 bg-opacity-50 backdrop-blur-sm"
				></div>
				<div
					x-show="modalOpen"
					x-trap.inert.noscroll="modalOpen"
					x-transition:enter="ease-out duration-300"
					x-transition:enter-start="opacity-0 scale-90"
					x-transition:enter-end="opacity-100 scale-100"
					x-transition:leave="ease-in duration-200"
					x-transition:leave-start="opacity-100 scale-100"
					x-transition:leave-end="opacity-0 scale-90"
					class="relative w-full py-6 bg-white shadow-md px-7 bg-opacity-90 drop-shadow-md backdrop-blur-sm sm:max-w-lg sm:rounded-lg"
				>
					<div class="flex items-center justify-between pb-3">
						<h3 class="text-lg font-semibold">Modal Title</h3>
						<button @click="modalOpen=false" class="absolute top-0 right-0 flex items-center justify-center w-8 h-8 mt-5 mr-5 text-gray-600 rounded-full hover:text-gray-800 hover:bg-gray-50">
							<svg class="w-5 h-5" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"></path></svg>
						</button>
					</div>
					<div class="relative w-auto pb-8">
						<p>This is placeholder text. Replace it with your own content.</p>
					</div>
					@blocks.H2("Account Registration")
					@blocks.Spacer()
					@blocks.Breadcrumbs()
					@basicInfoForm(formstate.Initial)
					@blocks.Spacer()
					@blocks.Button(blocks.GET("/", "#register-view")) {
						@blocks.Text("Cancel")
					}
					<div class="flex flex-col-reverse sm:flex-row sm:justify-between sm:space-x-2">
						<button @click="modalOpen=false" type="button" class="inline-flex items-center justify-center h-10 px-4 py-2 text-sm font-medium transition-colors border rounded-md focus:outline-none focus:ring-2 focus:ring-neutral-100 focus:ring-offset-2">Previous</button>
						<button @click="modalOpen=false" type="button" class="inline-flex items-center justify-center h-10 px-4 py-2 text-sm font-medium text-white transition-colors border border-transparent rounded-md focus:outline-none focus:ring-2 focus:ring-neutral-900 focus:ring-offset-2 bg-neutral-950 hover:bg-neutral-900">Next</button>
					</div>
				</div>
			</div>
		</template>
	</div>
}
