managarten/packages/shared-ui/src/molecules/DataCard.stories.svelte
Till JS ce923bbdc7 shared-ui: Sync auf mana/shared-ui v1.0.0 + AppSlider tot weg
Workspace-Kopie in packages/shared-ui synchronisiert mit
mana@1dc8a98 (Compat-Layer für alle v0.1.x-Patterns). 219 Files
geändert — alter Code (Charts, Quick-Input-Originale, Help, Onboarding,
Settings, Bottom-Stack, Search-Core, ColorPicker, Actions) entfällt;
neue v1.0.0-Komponenten kommen rein.

tsconfig.json self-contained (kein extends auf nicht-existierenden
managarten/tsconfig.base.json).

pnpm check ergibt jetzt 0 Errors über alle 10086 Files
(Stand vorher: 204 Errors mit dem unverarbeiteten Sync). Zwei
non-blocking Warnings stehen offen (SSR-nested-button bei TagChip,
ARIA-Role bei Pill mit click-handler).

AppSlider toter Code in apps/mana/apps/web/src/lib/components/
AppSlider.svelte entfernt — der Wrapper hatte keine Aufrufer mehr.

mana-internal Configs (Storybook, lost-pixel, vite.config, Dockerfile,
infrastructure, PORTING_PLAN.md) bewusst NICHT gesynced — die wandern
nur im mana-Repo. managarten-shared-ui ist eingefrorene Kopie, kein
publish-target.

scripts/validate-disziplin.mjs: ungenutzte lines-Variable entfernt
(ESLint no-unused-vars).
2026-05-21 14:56:54 +02:00

53 lines
1.4 KiB
Svelte
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<script module lang="ts">
import { defineMeta } from '@storybook/addon-svelte-csf';
import DataCard from './DataCard.svelte';
import DynamicIcon from '../atoms/DynamicIcon.svelte';
const { Story } = defineMeta({
title: 'Molecules/DataCard',
component: DataCard,
tags: ['autodocs'],
});
</script>
<Story name="Default">
{#snippet children()}
<div style="width:14rem;">
<DataCard label="Reviews heute" value={42} />
</div>
{/snippet}
</Story>
<Story name="WithChange">
{#snippet children()}
<div style="display:grid; grid-template-columns:repeat(3, 14rem); gap:1rem;">
<DataCard label="Reviews heute" value={42} change="+12" trend="up" hint="vs gestern" />
<DataCard label="Streak" value="7 Tage" change="1" trend="down" hint="vs Ziel" />
<DataCard label="Karten gelernt" value={234} change="±0" trend="flat" hint="diese Woche" />
</div>
{/snippet}
</Story>
<Story name="WithIcon">
{#snippet children()}
<div style="width:14rem;">
<DataCard label="Stapel" value={12} hint="3 mit fälligen Karten">
{#snippet icon()}<DynamicIcon name="tag" size="sm" />{/snippet}
</DataCard>
</div>
{/snippet}
</Story>
<Story name="LongLabel">
{#snippet children()}
<div style="width:14rem;">
<DataCard
label="Durchschnittliche Antwortzeit"
value="2.4s"
change="0.3s"
trend="up"
hint="schneller als Vorwoche"
/>
</div>
{/snippet}
</Story>