v0.2 Phase 4: wrapper alias layer (src/lib/ui/)
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>
This commit is contained in:
13
src/lib/ui/LumotiaCard.svelte
Normal file
13
src/lib/ui/LumotiaCard.svelte
Normal file
@@ -0,0 +1,13 @@
|
||||
<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>
|
||||
Reference in New Issue
Block a user