{{ template "header" .}}
<div class="py-10">
    <header>

        <h1 class="text-2xl font-bold leading-tight text-slate-700 dark:text-slate-300">
            {{ .locale.Tr "gist.new.new_gist"}}
        </h1>

    </header>
    <main class="mt-4">
        <form id="create" class="space-y-4" method="post" action="{{ $.c.ExternalUrl }}/">
            <div>
                <p class="cursor-pointer select-none" id="gist-metadata-btn">Metadata {{ if .dto.HasMetadata }}▲{{ else }}▼{{ end }}</p>
                <div class="grid grid-cols-12 gap-x-4 mt-1 {{ if not .dto.HasMetadata }}hidden{{ end }}" id="gist-metadata">
                    <div class="col-span-8 sm:col-span-4">
                        <div class="mt-1">
                            <input type="text" placeholder="{{ .locale.Tr "gist.new.title" }}" value="{{ .dto.Title }}" name="title" id="title" class="bg-white dark:bg-black shadow-sm focus:ring-primary-500 focus:border-primary-500 block w-full sm:text-sm border-gray-200 dark:border-gray-700 rounded-md" maxlength="250">
                        </div>
                    </div>
                    <div class="col-span-12 sm:col-span-8">
                        <div class="mt-1">
                            <input type="text" placeholder="{{ .locale.Tr "gist.new.description" }}" value="{{ .dto.Description }}" name="description" id="description" class="bg-white dark:bg-black shadow-sm focus:ring-primary-500 focus:border-primary-500 block w-full sm:text-sm border-gray-200 dark:border-gray-700 rounded-md" maxlength="1000">
                        </div>
                    </div>
                    <div class="col-span-6 sm:col-span-3 mt-2">
                        <input type="text" placeholder="{{ .locale.Tr "gist.new.url" }}" value="{{ .dto.URL }}" name="url" id="url" class="bg-white dark:bg-black shadow-sm focus:ring-primary-500 focus:border-primary-500 block w-full sm:text-sm border-gray-200 dark:border-gray-700 rounded-md" maxlength="32">
                    </div>

                    <div class="col-span-12 sm:col-span-9 mt-2">
                        <input type="text" placeholder="{{ .locale.Tr "gist.new.topics" }}" value="{{ .dto.Topics }}" name="topics" id="topics" class="bg-white dark:bg-black shadow-sm focus:ring-primary-500 focus:border-primary-500 block w-full sm:text-sm border-gray-200 dark:border-gray-700 rounded-md">
                    </div>
                </div>
            </div>
            <div id="editors" class="space-y-4">
                {{ if .dto.Files }}
                    {{ range .dto.Files }}
                        {{ template "_editor" dict "Filename" .Filename "Content" .Content "locale" $.locale }}
                    {{ end }}
                {{ else }}
                    {{ template "_editor" . }}
                {{ end }}
            </div>

            <div id="file-upload-zone" class="space-y-4">
                <label for="file-upload" class="cursor-pointer block">
                    <div class="border-2 border-dashed border-gray-300 dark:border-gray-600 rounded-lg p-6 text-center hover:border-primary-400 dark:hover:border-primary-500 transition-colors">
                        <svg class="mx-auto h-12 w-12 text-gray-400" stroke="currentColor" fill="none" viewBox="0 0 48 48">
                            <path d="M28 8H12a4 4 0 00-4 4v20m32-12v8m0 0v8a4 4 0 01-4 4H12a4 4 0 01-4-4v-4m32-4l-3.172-3.172a4 4 0 00-5.656 0L28 28M8 32l9.172-9.172a4 4 0 015.656 0L28 28m0 0l4 4m4-24h8m-4-4v8m-12 4h.02" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
                        </svg>
                        <div class="mt-4">
                            <span class="mt-2 block text-sm font-medium text-gray-900 dark:text-gray-300">
                                {{ .locale.Tr "gist.new.drop-files" }}
                            </span>
                        </div>
                        <p class="mt-2 text-xs text-gray-500">{{ .locale.Tr "gist.new.any-file-type" }}</p>
                    </div>
                    <input id="file-upload" name="file-upload" type="file" class="sr-only" multiple accept="*/*">
                </label>
                <div id="uploaded-files" class="space-y-2"></div>
            </div>

            <div class="flex">
                <button type="button" id="add-file" class="inline-flex items-center px-4 py-2 border border-transparent border-gray-200 dark:border-gray-700 text-sm font-medium rounded-md shadow-sm text-gray-700 dark:text-white bg-gray-100 dark:bg-gray-600 hover:bg-gray-200 dark:hover:bg-gray-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-gray-500">{{ .locale.Tr "gist.new.add-file" }}</button>

                <div class="ml-auto inline-flex ">
                    <button id="submit-gist" type="submit" name="private" value="0" class="ml-2 items-center px-4 py-2 border border-transparent border-primary-200 dark:border-primary-700 text-sm font-medium rounded-l-md shadow-sm text-white dark:text-white bg-primary-500 hover:bg-primary-600 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-primary-500 z-20">{{ .locale.Tr "gist.new.create-public-button" }}</button>
                    <div class="relative -ml-px block">
                        <button type="button" class="relative inline-flex items-center rounded-r-md bg-primary-500 hover:bg-primary-600 px-2 py-2 text-gray-400 border border-transparent border-primary-200 dark:border-primary-700 focus:z-10" id="gist-visibility-menu-button">
                            <svg class="h-5 w-5" viewBox="0 0 20 20" fill="white" aria-hidden="true">
                                <path fill-rule="evenodd" d="M5.23 7.21a.75.75 0 011.06.02L10 11.168l3.71-3.938a.75.75 0 111.08 1.04l-4.25 4.5a.75.75 0 01-1.08 0l-4.25-4.5a.75.75 0 01.02-1.06z" clip-rule="evenodd" />
                            </svg>
                        </button>
                        <div id="gist-menu-visibility" class="hidden absolute right-0 z-10 mt-2 origin-top-right rounded-md bg-white shadow-lg ring-1 ring-black ring-opacity-5 focus:outline-none" role="menu" aria-orientation="vertical" aria-labelledby="gist-visibility-menu-button">
                            <div class="rounded-md dark:bg-gray-800 bg-white shadow-lg ring-1 ring-gray-50 dark:ring-gray-700 focus:outline-none" role="none" style="word-break: keep-all">
                                <span class="text-gray-700 block px-4 py-2 text-sm cursor-pointer dark:text-slate-300 hover:text-slate-500 dark:hover:text-slate-400 gist-visibility-option" data-btntext="{{ .locale.Tr "gist.new.create-public-button" }}" data-visibility="0" role="menuitem">{{ .locale.Tr "gist.public" }}</span>
                                <span class="text-gray-700 block px-4 py-2 text-sm cursor-pointer dark:text-slate-300 hover:text-slate-500 dark:hover:text-slate-400 gist-visibility-option" data-btntext="{{ .locale.Tr "gist.new.create-unlisted-button" }}" data-visibility="1" role="menuitem">{{ .locale.Tr "gist.unlisted" }}</span>
                                <span class="text-gray-700 block px-4 py-2 text-sm cursor-pointer dark:text-slate-300 hover:text-slate-500 dark:hover:text-slate-400 gist-visibility-option" data-btntext="{{ .locale.Tr "gist.new.create-private-button" }}" data-visibility="2" role="menuitem">{{ .locale.Tr "gist.private" }}</span>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
            {{ .csrfHtml }}
        </form>

        <!-- Hidden template for new text editors -->
        <div id="editor-template" class="hidden">
            {{ template "_editor" dict "Filename" "" "Content" "" "Binary" false "locale" .locale }}
        </div>

    </main>
</div>

<script type="module" src="{{ asset "ts/editor.ts" }}"></script>

{{ template "footer" .}}
