Svelte / SvelteKit
Svelte, öznitelikleri sanal DOM katmanı olmadan doğrudan DOM’a ilettiği için özel elementler doğal bir uyum sağlar. SvelteKit (SSR) için CDN’i onMount içinde yükleyin veya browser kontrolü ile koruyun.
@wink/elements npm paketi TypeScript tipleri ile CDN paketini yükleyin ve kurun.
Kurulum
Section titled “Kurulum”npm install @wink/elementsSvelteKit — kök düzen
Section titled “SvelteKit — kök düzen”import { browser } from '$app/environment';import { load as loadWink } from '@wink/elements';
export function load() { if (browser) { loadWink({ clientId: import.meta.env.PUBLIC_WINK_CLIENT_ID }); }}Alternatif olarak, +layout.svelte içinde onMount içinde yükleyin:
<script> import { onMount } from 'svelte'; import { load } from '@wink/elements';
onMount(() => { load({ clientId: import.meta.env.PUBLIC_WINK_CLIENT_ID }); });</script>
<slot />Bileşenlerde kullanımı
Section titled “Bileşenlerde kullanımı”Svelte, bilinmeyen tüm öznitelikleri doğrudan DOM’a ilettiği için ekstra yapılandırmaya gerek yoktur:
<script> export let layoutId = 'YOUR_LAYOUT_ID';</script>
<main> <wink-content-loader layout="HOTEL" id={layoutId} /> <wink-lookup /></main>Svelte 5 (runes sözdizimi)
Section titled “Svelte 5 (runes sözdizimi)”<script lang="ts"> import { onMount } from 'svelte'; import { load } from '@wink/elements';
let { layoutId }: { layoutId: string } = $props();
onMount(() => { load({ clientId: import.meta.env.PUBLIC_WINK_CLIENT_ID }); });</script>
<wink-content-loader layout="HOTEL" id={layoutId} />Ortam değişkenleri
Section titled “Ortam değişkenleri”SvelteKit, yalnızca PUBLIC_ ile başlayan değişkenleri tarayıcıya açar:
PUBLIC_WINK_CLIENT_ID=your-client-id<script> import { browser } from '$app/environment';</script>
{#if browser} <wink-content-loader layout="HOTEL" id="YOUR_LAYOUT_ID" />{/if}Saf Svelte (Vite, SvelteKit yok)
Section titled “Saf Svelte (Vite, SvelteKit yok)”<script> import { onMount } from 'svelte'; import { load } from '@wink/elements';
onMount(() => { load({ clientId: import.meta.env.VITE_WINK_CLIENT_ID }); });</script>
<wink-content-loader layout="HOTEL" id="YOUR_LAYOUT_ID" />