Registry components enhanced with proper DreamStack patterns: - Card: conditional title/subtitle/footer via when guards, slot for children - Button: variant as string prop, disabled support - Dialog: when-guarded overlay, slot for content, close button - Progress: conditional label, variant support - Input: conditional label, error state, helper text - Alert: variant prop, slot for custom content - Toggle: when-guarded label display - Toast: when-guarded visibility - Avatar: initials with variant - Badge: label with variant prop - Separator: optional centered label New components: - Stat: dashboard metric card (label, value, change delta) - Tabs: tab switcher supporting 2-3 tabs - Select: button-based option selector New example: - component-gallery.ds (89KB): imports 12 components, uses Card+Button, Input+Alert, Progress, Badge+when/else, match expressions, Stat metrics, Toggle, Avatar, Toast, Separator, every timer All 10 examples pass. Browser-tested with zero errors.
16 lines
440 B
Text
16 lines
440 B
Text
-- DreamStack Dialog Component
|
|
-- Modal with overlay, title, slot content, and close button
|
|
|
|
import { Button } from "./button"
|
|
|
|
export component Dialog(title, open, onClose) =
|
|
when open ->
|
|
column [
|
|
column [
|
|
row [
|
|
text title { variant: "title" }
|
|
Button { label: "✕", variant: "ghost", onClick: onClose }
|
|
]
|
|
slot
|
|
] { variant: "dialog-panel" }
|
|
] { variant: "dialog-overlay" }
|