Fix Styles
This commit is contained in:
@@ -37,13 +37,9 @@
|
|||||||
<p>{t("status.loading")}</p>
|
<p>{t("status.loading")}</p>
|
||||||
{:then user}
|
{:then user}
|
||||||
<UserInfo {user} />
|
<UserInfo {user} />
|
||||||
<hr>
|
<SWButton onclick={() => uploadOpen = true}>
|
||||||
|
|
||||||
<div class="flex flex-col justify-center">
|
|
||||||
<SWButton on:click={() => uploadOpen = true}>
|
|
||||||
{t("dashboard.schematic.upload")}
|
{t("dashboard.schematic.upload")}
|
||||||
</SWButton>
|
</SWButton>
|
||||||
</div>
|
|
||||||
{:catch error}
|
{:catch error}
|
||||||
<p>error: {error.message}</p>
|
<p>error: {error.message}</p>
|
||||||
{/await}
|
{/await}
|
||||||
|
|||||||
@@ -18,19 +18,17 @@
|
|||||||
-->
|
-->
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { createBubbler } from 'svelte/legacy';
|
|
||||||
|
|
||||||
const bubble = createBubbler();
|
|
||||||
import "@styles/button.css"
|
import "@styles/button.css"
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
type?: "primary" | "ghost" | "gray";
|
type?: "primary" | "ghost" | "gray";
|
||||||
children?: import('svelte').Snippet;
|
children: import('svelte').Snippet;
|
||||||
|
onclick: () => void;
|
||||||
}
|
}
|
||||||
|
|
||||||
let { type = "primary", children }: Props = $props();
|
let { type = "primary", onclick, children }: Props = $props();
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<button onclick={bubble('click')} class="btn" class:btn-gray={type === "gray"} class:btn-text={type === "ghost"}>
|
<button onclick={onclick} class="btn" class:btn-gray={type === "gray"} class:btn-text={type === "ghost"}>
|
||||||
{@render children?.()}
|
{@render children()}
|
||||||
</button>
|
</button>
|
||||||
@@ -18,28 +18,28 @@
|
|||||||
-->
|
-->
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { run, createBubbler, stopPropagation } from 'svelte/legacy';
|
import {onMount} from "svelte";
|
||||||
|
|
||||||
const bubble = createBubbler();
|
|
||||||
import {createEventDispatcher, onMount} from "svelte";
|
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
title: string;
|
title: string;
|
||||||
open: boolean;
|
open: boolean;
|
||||||
children?: import('svelte').Snippet;
|
children?: import('svelte').Snippet;
|
||||||
footer?: import('svelte').Snippet;
|
footer?: import('svelte').Snippet;
|
||||||
|
onclose?: () => void;
|
||||||
|
onclick?: () => void;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
let {
|
let {
|
||||||
title,
|
title,
|
||||||
open = $bindable(),
|
open = $bindable(),
|
||||||
children,
|
children,
|
||||||
footer
|
footer,
|
||||||
|
onclose = () => {},
|
||||||
|
onclick = () => {}
|
||||||
}: Props = $props();
|
}: Props = $props();
|
||||||
let internalOpen = $state(open);
|
let internalOpen = $state(open);
|
||||||
|
|
||||||
const dispatch = createEventDispatcher();
|
|
||||||
|
|
||||||
|
|
||||||
let dialog: HTMLDialogElement = $state();
|
let dialog: HTMLDialogElement = $state();
|
||||||
|
|
||||||
@@ -53,9 +53,10 @@
|
|||||||
function close() {
|
function close() {
|
||||||
open = false;
|
open = false;
|
||||||
internalOpen = false;
|
internalOpen = false;
|
||||||
dispatch("close");
|
onclose()
|
||||||
}
|
}
|
||||||
run(() => {
|
|
||||||
|
$effect(() => {
|
||||||
if (open && !internalOpen) {
|
if (open && !internalOpen) {
|
||||||
dialog.showModal();
|
dialog.showModal();
|
||||||
internalOpen = true;
|
internalOpen = true;
|
||||||
@@ -63,42 +64,19 @@
|
|||||||
dialog.close();
|
dialog.close();
|
||||||
internalOpen = false;
|
internalOpen = false;
|
||||||
}
|
}
|
||||||
});
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<dialog bind:this={dialog} onclose={close} oncancel={close} onclick={() => dialog.close()} aria-hidden="true">
|
<dialog bind:this={dialog} onclose={close} oncancel={close} onclick={() => dialog.close()} aria-hidden="true" class="max-h-full max-w-md w-full rounded-lg shadow-lg dark:bg-neutral-800 dark:text-neutral-100">
|
||||||
<div onclick={stopPropagation(bubble('click'))} aria-hidden="true">
|
<div onclick={onclick} aria-hidden="true">
|
||||||
<div class="spaced bordered">
|
<div class="p-6 border-b border-neutral-200 dark:border-neutral-700">
|
||||||
<h1>{title}</h1>
|
<h1 class="text-4xl font-bold">{title}</h1>
|
||||||
</div>
|
</div>
|
||||||
<div class="spaced main bordered">
|
<div class="p-6 main border-b border-neutral-200 dark:border-neutral-700">
|
||||||
{@render children?.()}
|
{@render children?.()}
|
||||||
</div>
|
</div>
|
||||||
<div class="footer spaced" onclick={() => dialog.close()} aria-hidden="true">
|
<div class="flex mx-4 my-2 p-6" onclick={() => dialog.close()} aria-hidden="true">
|
||||||
{@render footer?.()}
|
{@render footer?.()}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</dialog>
|
</dialog>
|
||||||
|
|
||||||
<style lang="scss">
|
|
||||||
h1 {
|
|
||||||
@apply text-4xl font-bold;
|
|
||||||
}
|
|
||||||
|
|
||||||
dialog {
|
|
||||||
@apply max-h-full max-w-md w-full rounded-lg shadow-lg
|
|
||||||
dark:bg-neutral-800 dark:text-neutral-100;
|
|
||||||
}
|
|
||||||
|
|
||||||
.spaced {
|
|
||||||
@apply p-6;
|
|
||||||
}
|
|
||||||
|
|
||||||
.bordered {
|
|
||||||
@apply border-b border-neutral-200 dark:border-neutral-700;
|
|
||||||
}
|
|
||||||
|
|
||||||
.footer {
|
|
||||||
@apply flex mx-4 my-2;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
@@ -168,7 +168,7 @@ const prefixColorMap: {
|
|||||||
<Card extraClasses={`pt-8 pb-10 px-8 w-fit shadow-md ${prefixColorMap[prefix]}`} client:idle>
|
<Card extraClasses={`pt-8 pb-10 px-8 w-fit shadow-md ${prefixColorMap[prefix]}`} client:idle>
|
||||||
<figure class="flex flex-col items-center" style="width: 150px">
|
<figure class="flex flex-col items-center" style="width: 150px">
|
||||||
<figcaption class="text-center mb-4 text-2xl">{v.name}</figcaption>
|
<figcaption class="text-center mb-4 text-2xl">{v.name}</figcaption>
|
||||||
<Image src={`${import.meta.env.PUBLIC_API_SERVER}/data/skin/${v.uuid}`}
|
<Image src={`https://vzge.me/bust/150/${v.uuid}`}
|
||||||
class="transition duration-300 ease-in-out hover:scale-110 hover:backdrop-blur-lg hover:drop-shadow-2xl"
|
class="transition duration-300 ease-in-out hover:scale-110 hover:backdrop-blur-lg hover:drop-shadow-2xl"
|
||||||
alt={v.name + "s bust"} width="150" height="150"/>
|
alt={v.name + "s bust"} width="150" height="150"/>
|
||||||
</figure>
|
</figure>
|
||||||
|
|||||||
Reference in New Issue
Block a user