Spaces:
Runtime error
Runtime error
| <script lang="ts"> | |
| import { PRESETS } from '../data'; | |
| import { selectedParams, generateMap } from '$lib/store'; | |
| import type { FormElements } from '../types'; | |
| import { randomSeed } from '$lib/utils'; | |
| function submit() { | |
| const elements: FormElements = form.elements as FormElements; | |
| $selectedParams = { | |
| prompt: elements.prompt.value, | |
| seed: BigInt(elements.seed.value), | |
| steps: parseInt(elements.steps.value) | |
| }; | |
| } | |
| let form: HTMLFormElement; | |
| let seed: bigint = $selectedParams.seed; | |
| let sampleSteps: number = $selectedParams.steps; | |
| let prompt: string = $selectedParams.prompt; | |
| </script> | |
| <form bind:this={form} on:input={submit}> | |
| <h4 class="font-bold mt-6 mb-2 my-6 leading-6">Prompt</h4> | |
| <input | |
| bind:value={prompt} | |
| name="prompt" | |
| placeholder="Aerial view of ..., France." | |
| disabled={$generateMap === true} | |
| style="width: 500px;" | |
| /> | |
| <select | |
| name="presets" | |
| disabled={$generateMap === true} | |
| on:change={(event) => { | |
| prompt = event.currentTarget.value; | |
| }}> | |
| <option disabled selected>preset</option> | |
| {#each PRESETS as preset} | |
| <option value={preset[0]}>{preset[1]}</option>` | |
| {/each} | |
| </select> | |
| <h4 class="font-bold mt-6 mb-2 my-6 leading-6">Random Seed</h4> | |
| <input | |
| bind:value={seed} | |
| type="Number" | |
| name="seed" | |
| placeholder="Integer Seed" | |
| disabled={$generateMap === true} | |
| /> | |
| <button | |
| on:click|preventDefault={() => { | |
| seed = randomSeed(); | |
| submit(); | |
| }} | |
| disabled={$generateMap === true} | |
| > | |
| Random | |
| </button> | |
| <h4 class="font-bold mt-6 mb-2 my-6 leading-6">Sample Steps</h4> | |
| <div class="flex"> | |
| <input | |
| bind:value={sampleSteps} | |
| type="range" | |
| name="steps" | |
| min="10" | |
| max="30" | |
| step="1" | |
| disabled={$generateMap === true} | |
| /> | |
| <label class="pl-2" for="steps">{sampleSteps}</label> | |
| </div> | |
| </form> | |
| <style lang="postcss" scoped> | |
| .sections { | |
| @apply flex sm:flex-row flex-col gap-1 sm:gap-3; | |
| } | |
| select, | |
| button, | |
| input { | |
| @apply p-1 disabled:opacity-50 bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500; | |
| } | |
| input:disabled + label { | |
| @apply opacity-50; | |
| } | |
| input { | |
| @apply pl-3; | |
| } | |
| </style> | |