Some checks failed
Test and deploy staging / staging (push) Failing after 14s
- run sv migrate sveltekit-3: config moves into vite.config.ts, $lib becomes #lib, $env/dynamic becomes $app/env/private via src/env.ts, $app/environment becomes $app/env, hook types move to @sveltejs/kit/hooks - env vars stay optional (the migrator defaulted them to ''), and BANCHO_MODE, which it missed, is declared and passed to simulatorEnabled - handleError only logs and masks unknown errors; Kit 3 now routes 404s and error(...) through it too - json()/text() become Response.json()/new Response(); goto keepFocus/noScroll becomes reset: false; invalidateAll becomes refreshAll; page.url is copied before mutating - replace adapter-node with @sveltejs/adapter-bun; prod-server.ts wraps Bun.serve to add native WebSockets (bunSockets) for /ws paths, since the generated server has no websocket option - drop the Kit readdir patch: Kit 3 sorts route entries itself - match view and broadcast pages use the live score modules BREAKING CHANGE: requires SvelteKit 3, TypeScript 6 and Bun 1.4; the build output is build/index.js from adapter-bun, started through prod-server.ts. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
49 lines
1.6 KiB
Svelte
49 lines
1.6 KiB
Svelte
<script lang="ts">
|
|
import { Dialog as DialogPrimitive } from 'bits-ui';
|
|
import XIcon from '@lucide/svelte/icons/x';
|
|
import { Button } from '#lib/components/ui/button/index.js';
|
|
import { cn, type WithoutChildrenOrChild } from '#lib/utils.js';
|
|
import * as Dialog from './index.js';
|
|
import DialogPortal from './dialog-portal.svelte';
|
|
import type { Snippet } from 'svelte';
|
|
import type { ComponentProps } from 'svelte';
|
|
|
|
let {
|
|
ref = $bindable(null),
|
|
class: className,
|
|
portalProps,
|
|
children,
|
|
showCloseButton = true,
|
|
...restProps
|
|
}: WithoutChildrenOrChild<DialogPrimitive.ContentProps> & {
|
|
portalProps?: WithoutChildrenOrChild<ComponentProps<typeof DialogPortal>>;
|
|
children: Snippet;
|
|
showCloseButton?: boolean;
|
|
} = $props();
|
|
</script>
|
|
|
|
<DialogPortal {...portalProps}>
|
|
<Dialog.Overlay />
|
|
<DialogPrimitive.Content
|
|
bind:ref
|
|
data-slot="dialog-content"
|
|
class={cn(
|
|
'fixed top-1/2 left-1/2 z-50 grid w-full max-w-[calc(100%_-_2rem)] -translate-x-1/2 -translate-y-1/2 gap-6 rounded-xl bg-popover p-6 text-sm text-popover-foreground ring-1 ring-foreground/10 duration-100 outline-none sm:max-w-md data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95',
|
|
className
|
|
)}
|
|
{...restProps}
|
|
>
|
|
{@render children?.()}
|
|
{#if showCloseButton}
|
|
<DialogPrimitive.Close data-slot="dialog-close">
|
|
{#snippet child({ props })}
|
|
<Button variant="ghost" class="absolute top-4 right-4" size="icon-sm" {...props}>
|
|
<XIcon />
|
|
<span class="sr-only">Close</span>
|
|
</Button>
|
|
{/snippet}
|
|
</DialogPrimitive.Close>
|
|
{/if}
|
|
</DialogPrimitive.Content>
|
|
</DialogPortal>
|