Six thin alias wrappers, same prop APIs as the underlying components. Lets pages migrate imports from $lib/components/* to $lib/ui/* one file at a time without touching markup, and gives Phase 5+ a place to tighten grammar without churning every call site. LumotiaCard → Card.svelte LumotiaStatusPill → StatusPill.svelte LumotiaToggle → Toggle.svelte (forwards bind:checked, bind:loading) LumotiaSettingsGroup → SettingsGroup.svelte (typed Props for svelte-check) LumotiaEmptyState → EmptyState.svelte LumotiaPostCaptureCard → PostCaptureCard.svelte Per the plan, the underlying components in src/lib/components/ are untouched. They get retired during the per-page migrations in Phase 7 once no consumer remains. LumotiaSettingsGroup mirrors the underlying Props interface explicitly because Svelte 5's spread-into-typed-component caught a real missing- `title` error during svelte-check. The mirrored interface keeps call sites type-safe when importing via $lib/ui/. Phase 4 per-phase gate green: npm run check (0/0/4135 files), npm test (all green), npm run test:e2e (16/16), npm run guard:no-skeleton (clean). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
14 lines
499 B
Svelte
14 lines
499 B
Svelte
<script lang="ts">
|
|
// v0.2 Phase 4 alias wrapper around $lib/components/Card.svelte.
|
|
// Same prop API; exists so pages can migrate imports progressively
|
|
// and so Phase 5+ can tighten grammar without churning every call
|
|
// site. Tone (default | subtle | danger) and elevation (flat | raised)
|
|
// pass through unchanged.
|
|
import Card from "$lib/components/Card.svelte";
|
|
const { children, ...rest } = $props();
|
|
</script>
|
|
|
|
<Card {...rest}>
|
|
{#if children}{@render children()}{/if}
|
|
</Card>
|